久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1174|回復: 0
收起左側(cè)

使用PROUEUS仿真一線串口屏MILFORD-2X16-BKP

[復制鏈接]
ID:237044 發(fā)表于 2024-6-4 15:14 | 顯示全部樓層 |閱讀模式
  1. /********************************************************
  2. *           一線串口屏顯示示例,未經(jīng)過實物屏測試  
  3. *          MILFORD-2X16-BKP__proteue仿真軟件自帶屏幕
  4. *                                        波特率9600、晶振頻率11.0592
  5. *********************************************************/

  6. #include <REGX51.H>
  7. #include <intrins.h>
  8. #include <string.h>
  9. /********************************************************/

  10. void SendOneByte(unsigned char c);

  11. /********************************************************/
  12. #define   uart      1  //1:硬件串口;     0:模擬串口。   

  13. sbit  TX = P3^1;            

  14. /********************************************************/

  15. #define   LCD_CLR        0x01                //清屏命令
  16. #define   LINE1          0x80                //第1行地址
  17. #define   LINE2          0xC0                //第2行地址
  18. #define   COMMAND        0xFE                //命令碼

  19. /********************************************************/

  20. #define   LCD_COMMAND(m)    LCD_TX(COMMAND);LCD_TX(m)                                                                                                
  21. #define   LCD_CLEAR()       LCD_COMMAND(LCD_CLR);Delay_ms(2)

  22. /********************************************************/
  23. char  *str="123123123";

  24. #ifdef uart           
  25. #else                 
  26. void Delay_nus(char n)
  27. {              
  28.                 while(n--)
  29.                 {        
  30.                                 _nop_();_nop_();_nop_();_nop_();
  31.                 }
  32. }
  33. #endif

  34. void Delay_ms(unsigned int n)
  35. {      
  36.         unsigned char a,b,c;
  37.     for(c=0;c<n;c++)
  38.         for(b=4;b>0;b--)
  39.             for(a=113;a>0;a--);
  40. }

  41. void LCD_TX(unsigned char str)         
  42. {        
  43. #ifdef  uart                    //硬件串口
  44.        SendOneByte(str);
  45. #else                            //模擬串口
  46.                         char i=8;

  47.        TX=0;                        
  48.        Delay_nus(6);  //延時
  49.        while(i--)
  50.        {      
  51.             TX= (str&0x01);      
  52.             Delay_nus(6);  // 此延時要精確調(diào)整!!!   
  53.             str=str>>1;        
  54.        }
  55.         TX=1;
  56.         Delay_nus(6);  //延時;  
  57. #endif                        
  58. }
  59. void LCD_Init(void)
  60. {        
  61.                 LCD_COMMAND(0xC0);   //  D(d2) = 1,打開顯示;C(dl)= 0,光標關(guān)閉;B(dO)= 0,光標不閃(0b00001100)   
  62.     LCD_COMMAND(0x01);   //  清除顯示   
  63.     Delay_ms(2);                                 
  64.     LCD_COMMAND(0x06);   // 輸入模式,I/D(dl)= 1,地址加1;S(dO) = 1,顯示移位關(guān)閉
  65.     Delay_ms(200);                 //延時不能太短
  66. }

  67. //串口配置:波特率9600、晶振頻率11.0592
  68. void InitUART(void)  
  69. {
  70.     TMOD = 0x20;
  71.     SCON = 0x50;
  72.     TH1 = 0xFD;
  73.     TL1 = TH1;
  74.     PCON = 0x00;
  75.     TR1 = 1;
  76. }
  77. //串口發(fā)送1BYTE
  78. void SendOneByte(unsigned char c)
  79. {
  80.     SBUF = c;
  81.     while(!TI);
  82.     TI = 0;
  83. }

  84. //串口顯示字符串,字符為常數(shù)數(shù)組
  85. void LCD_LINE1( char *S)
  86. {      
  87.         char i,N=3;
  88.               N = strlen(S);               
  89.         
  90.         for(i=0;i<N;i++)                           
  91. #ifdef  uart
  92.                 SendOneByte(S[i]);
  93. #else                                          
  94.                 LCD_TX(S[i]);
  95. #endif                                       
  96. }

  97. //*********************************************************************/
  98. void main(void)
  99. {
  100.         
  101.                 LCD_Init();
  102.                 InitUART();
  103.         
  104.           LCD_COMMAND(0x80);      //LCD屏第1行第1列顯示(0x82為第3列)
  105.           LCD_LINE1("ABCDEFGHIJKLMNOP");        
  106.          
  107.                   
  108.           while(1)
  109.                 {        
  110.                                 LCD_COMMAND(0xc0); //LCD屏第2行第1列顯示        
  111.                           LCD_LINE1(str);
  112.                 }

  113. }
  114. /*
  115. *end
  116. */
復制代碼
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 岛国av免费看 | 国产精品久久久久久久久 | 国产日韩欧美在线观看 | 欧美一级欧美三级在线观看 | 亚洲欧美综合 | 先锋资源亚洲 | 狠狠色综合欧美激情 | 久久精品国产99国产精品 | 国产成人精品亚洲日本在线观看 | 在线婷婷| 在线观看中文字幕 | 国产91亚洲精品一区二区三区 | 久久国内 | 一本大道久久a久久精二百 国产成人免费在线 | 日韩午夜 | 香蕉91| 色婷婷综合网 | 瑟瑟视频在线看 | 成人久久18免费网站图片 | 极品久久 | 成人在线中文字幕 | 国产精品久久久一区二区三区 | 国产欧美久久一区二区三区 | 成人三级视频 | 久久小视频 | 成人不卡视频 | 欧美aaaaa | 在线精品亚洲欧美日韩国产 | 亚洲国产成人精品女人久久久 | 日本福利一区 | 欧美日韩精品 | 伊人影院99 | 国产综合久久 | 国产精品久久久久久网站 | 日韩中文字幕第一页 | 国产精品久久久久久吹潮 | 亚洲视频中文字幕 | 亚洲午夜av久久乱码 | 91看国产| 精品美女久久久 | 超碰人人爱 |