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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1055|回復: 0
收起左側

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

[復制鏈接]
ID:237044 發表于 2024-6-4 15:14 | 顯示全部樓層 |閱讀模式
  1. /********************************************************
  2. *           一線串口屏顯示示例,未經過實物屏測試  
  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);  // 此延時要精確調整。!   
  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,光標關閉;B(dO)= 0,光標不閃(0b00001100)   
  62.     LCD_COMMAND(0x01);   //  清除顯示   
  63.     Delay_ms(2);                                 
  64.     LCD_COMMAND(0x06);   // 輸入模式,I/D(dl)= 1,地址加1;S(dO) = 1,顯示移位關閉
  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. //串口發送1BYTE
  78. void SendOneByte(unsigned char c)
  79. {
  80.     SBUF = c;
  81.     while(!TI);
  82.     TI = 0;
  83. }

  84. //串口顯示字符串,字符為常數數組
  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. */
復制代碼
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: av一区二区三区 | 亚州激情 | 亚洲男人天堂2024 | 1204国产成人精品视频 | 日韩免费网站 | 亚洲欧美一区二区三区情侣bbw | 免费簧片视频 | 伊人久久免费 | 色爱综合 | 欧美性区 | 一区二区三区四区不卡视频 | 在线精品亚洲欧美日韩国产 | 自拍中文字幕 | 毛片国产 | 青青操av| 少妇一级淫片免费播放 | 黄色香蕉视频在线观看 | 99精品久久久 | 成人网av| 91精品国产综合久久久久 | 国产一区三区在线 | 午夜电影网| 亚洲日本中文字幕在线 | 日韩国产精品一区二区三区 | 色综合色综合色综合 | 成人黄色在线 | 另类亚洲视频 | 一级午夜aaa免费看三区 | 午夜性色a√在线视频观看9 | 精品国产欧美 | 日本二区 | 日本一区二区三区免费观看 | av中文在线 | 精品久久久久久亚洲精品 | 亚洲综合色站 | 久久99精品久久久久久狂牛 | 国产永久免费 | 久草在线在线精品观看 | 亚洲成人www | 国产福利资源 | 精品国产乱码久久久久久牛牛 |