標(biāo)題: 51單片機(jī)LCD1602顯示程序源碼 [打印本頁(yè)]

作者: lyczli    時(shí)間: 2020-9-18 09:45
標(biāo)題: 51單片機(jī)LCD1602顯示程序源碼
LCD EN 用P3.4;LCD RS用P3.5;
LCD R/W在仿真的硬件電路上接地;

仿真電路參考圖片;


單片機(jī)源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. sbit lcden=P3^4;
  4. sbit lcdrs=P3^5;
  5. unsigned int const ad1=0x80;
  6. unsigned int const ad2=0x80+0x40;
  7. void delay(unsigned char j)
  8. {
  9.         unsigned char i=60;
  10.         for(;j>0;j--)
  11.         {
  12.                 while(--i); i=59;
  13.                 while(--i); i=60;
  14.         }
  15.                
  16. }
  17. void w_date(unsigned char date)
  18. {
  19.         lcden=0;
  20.         lcdrs=1;
  21.         P0=date;
  22.         delay(5);
  23.         lcden=1;        
  24.         _nop_();
  25.         lcden=0;
  26.         delay(1);
  27. }

  28. void w_com(unsigned char com)
  29. {
  30.         lcden=0;
  31.         lcdrs=0;
  32.         P0=com;
  33.         delay(5);
  34.         lcden=1;        
  35.         _nop_();
  36.         lcden=0;
  37.         delay(1);
  38. }
  39. void string(unsigned char ad,unsigned char *s)
  40. {
  41.         w_com(ad);
  42.         while(*s>0)
  43.         {
  44.                 w_date(*s++);delay(100);
  45.         }
  46. }
  47. void lcd_ini()
  48. {
  49.         w_com(0x38);//16*2顯示;5*7點(diǎn)陣;8位數(shù)據(jù)口
  50.         w_com(0x0c);//開(kāi)顯示,不顯示光標(biāo)
  51.         w_com(0x06);//寫(xiě)一個(gè)字符后地址加1;
  52.         w_com(0x01);//clear screen
  53.         delay(1);
  54. }
  55. unsigned char code table1[]={"hellow "};
  56. unsigned char code table2[]={"hellow word"};
  57. int main()
  58. {
  59.         lcd_ini();
  60.         while(1)
  61.         {
  62.                 string(0x80,table1);
  63.                 string(0x80+0x40,table2);
  64.                 delay(100);        
  65.         }
  66. }
復(fù)制代碼







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1