欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 51單片機(jī)驅(qū)動(dòng)IIC LCD1602顯示程序 (4針) [打印本頁]

作者: 我叫小大打    時(shí)間: 2020-5-3 18:50
標(biāo)題: 51單片機(jī)驅(qū)動(dòng)IIC LCD1602顯示程序 (4針)
需要就拿去用吧

單片機(jī)源程序如下:
  1. #include "IIC.h"

  2. #define adress_1602 0x4e  


  3. unsigned char LCD_data=0x08;



  4. //********************液晶屏使能*********************
  5. void Enable_LCD_write()
  6. {
  7.         LCD_data|=(1<<(3-1));//E=1;
  8.         Write_Random_Address_Byte(adress_1602,LCD_data);  //
  9.         Delay1us(2);
  10.         LCD_data&=~(1<<(3-1));//E=0;
  11.         Write_Random_Address_Byte(adress_1602,LCD_data);
  12. }
  13. /*------------------------------------------------
  14.               寫入命令函數(shù)
  15. ------------------------------------------------*/
  16. void LCD_write_command(unsigned char command)
  17. {
  18.         Delay1us(16);
  19.         LCD_data&=~(1<<(1-1));//RS=0;
  20.         LCD_data&=~(1<<(2-1));//RW=0;
  21.         //LCD_data&=~(1<<(4-1));
  22.         Write_Random_Address_Byte(adress_1602,LCD_data);
  23.        
  24.         LCD_data&=0X0f; //清高四位
  25.         LCD_data|=command & 0xf0; //寫高四位
  26.         Write_Random_Address_Byte(adress_1602,LCD_data);
  27.         Enable_LCD_write();
  28.        
  29.         command=command<<4; //低四位移到高四位
  30.         LCD_data&=0x0f; //清高四位
  31.         LCD_data|=command&0xf0; //寫低四位
  32.         Write_Random_Address_Byte(adress_1602,LCD_data);
  33.         Enable_LCD_write();
  34. }
  35. /*------------------------------------------------
  36.               寫入數(shù)據(jù)函數(shù)
  37. ------------------------------------------------*/
  38. void LCD_write_dat(unsigned char value)
  39. {
  40.         Delay1us(16);
  41.         LCD_data|=(1<<(1-1));//RS=1;
  42.         LCD_data&=~(1<<(2-1));//RW=0;
  43.         Write_Random_Address_Byte(adress_1602,LCD_data);
  44.        
  45.         LCD_data&=0X0f; //清高四位
  46.         LCD_data|=value&0xf0; //寫高四位
  47.         Write_Random_Address_Byte(adress_1602,LCD_data);
  48.         Enable_LCD_write();         
  49.        
  50.         value=value<<4; //低四位移到高四位
  51.         LCD_data&=0x0f; //清高四位
  52.         LCD_data|=value&0xf0; //寫低四位
  53.         Write_Random_Address_Byte(adress_1602,LCD_data);
  54.         Enable_LCD_write();
  55. }

  56. /*------------------------------------------------
  57.                 清屏函數(shù)
  58. ------------------------------------------------*/
  59. void LCD_Clear(void)
  60. {
  61.         LCD_write_command(0x01);
  62.         Delay1ms(2);
  63. }

  64. /*------------------------------------------------
  65.                 設(shè)置顯示位置
  66. ------------------------------------------------*/
  67. void LCD_set_xy( unsigned char x, unsigned char y )
  68. {
  69.         unsigned char address;
  70.         if (y == 1)
  71.         address = 0x80 + x;
  72.         else
  73.         address =0xc0+ x;
  74.         LCD_write_command(address);
  75. }

  76. /*------------------------------------------------
  77.                 顯示一個(gè)字符
  78. ------------------------------------------------*/
  79. void LCD_dsp_char( unsigned x,unsigned char y,unsigned char dat)
  80. {
  81.         LCD_set_xy( x, y );
  82.         LCD_write_dat(dat);
  83. }

  84. /*------------------------------------------------
  85.                 顯示字符串函數(shù)
  86. ------------------------------------------------*/
  87. void LCD_dsp_string(unsigned char X,unsigned char Y,unsigned char *s)
  88. {
  89.         LCD_set_xy( X, Y );
  90.         while (*s)
  91.         {
  92.                 LCD_write_dat(*s);   
  93.                 s ++;
  94.         }
  95. }
  96. /*------------------------------------------------
  97.               把特殊字符數(shù)據(jù)寫入顯存
  98. ------------------------------------------------*/
  99. //void WriteCGRAM()
  100. //{
  101. //        unsigned char i,j,k,tmp;
  102. //        tmp=0x40;//設(shè)置CGRAM地址的格式字
  103. //        k=0;
  104. //       
  105. //        for(j=0;j<8;j++)
  106. //        {
  107. //                for(i=0;i<8;i++)
  108. //                {
  109. //                        LCD_write_command(tmp+i); // 設(shè)置自定義字符的 CGRAM 地址
  110. //                        Delay1us(50);
  111. //                        LCD_write_dat(table0[k]); // 向CGRAM寫入自定義字符表的數(shù)據(jù)
  112. //                        k++;
  113. //                        Delay1us(50);
  114. //                }
  115. //                tmp=tmp+8;
  116. //        }
  117. //}
  118. /*------------------------------------------------
  119.               初始化函數(shù)
  120. ------------------------------------------------*/
  121. void LCD_Init(void)
  122. {
  123.         LCD_write_command(0x02);
  124.         Delay1us(40);
  125.         LCD_write_command(0x28); //4位顯示!!!!!!!!!!!!!!!!!!
  126.         LCD_write_command(0x0c); //顯示開
  127.         LCD_write_command(0x01); //清屏
  128.         Delay1ms(10);
  129. }
復(fù)制代碼

所有資料51hei提供下載:
51單片機(jī)驅(qū)動(dòng)IIC1602程序(4針).7z (48.77 KB, 下載次數(shù): 288)



作者: joinxp    時(shí)間: 2022-5-25 21:31
正在找這個(gè),先用用,謝謝
作者: GEECGYJ    時(shí)間: 2022-5-27 08:51
可以省I/O!!
作者: 李某人。    時(shí)間: 2022-5-27 11:29
正好需要這個(gè)而且還可以省I/O
作者: hnll    時(shí)間: 2023-3-11 01:31
用的是哪些引腳?沒有電路圖啊
作者: 370008208    時(shí)間: 2023-3-13 08:41
應(yīng)該需要PCF8574做轉(zhuǎn)接
作者: 15031773670    時(shí)間: 2023-4-12 16:56
我用的是1602的IIC通信方式,單片機(jī)stc15w204S用的下載頻率是11.0592M已經(jīng)調(diào)了很久了。地是共地,也是共電源。地址換了好多次了,依然是什么也沒有。求指教
作者: ansonjimli    時(shí)間: 2023-4-12 19:32
有一定的參考意義。




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