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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10699|回復: 2
收起左側

單片機驅動LCD1602只能顯示一行,第二行無顯示,初始化0x38兩次也試過

[復制鏈接]
ID:195069 發表于 2018-1-25 13:06 | 顯示全部樓層 |閱讀模式
LCD1602只能顯示一行,第二行無顯示,初始化0x38兩次也試過,單獨寫第二行也試過,代碼如下
  1. /**************************************************************************************
  2. *功能:LCD1602液晶顯示                                                                                                                           *
  3. *說明:第一行顯示:Crazy Electronic 第二行顯示: TEL:0530-2897239                                          *
  4.          1           ---->         16                                                                                                                          *
  5.            -------------------------------                                                                                                  *
  6.            - ****************                         - LCD1602引腳                                                                          *
  7.            - Crazy Electronic                         - 第一行                                                                                  *
  8.            - TEL:0530-2897239                         - 第二行                                                                                  *
  9.            -------------------------------                                                                                                  *
  10. *注意:液晶屏過暗或過亮,請調節R6電位器                                                                                                  *
  11. *硬件連接:                LCD1602  RS                 -->P2.0                                                                                          *
  12. *                                                 RW                 -->P2.1                                                                                            *
  13. *                                                 E                 -->P2.2                                                                                            *
  14. *                                                 D0--D7  -->P0                                                                                   *
  15. *                                                                                                                                                   *
  16. *作者:研發中心                                                                                                                                                  *
  17. *公司:科睿電子產品有限公司                                                                                                                   *
  18. *電話:0530-2897239   15192459227                                                                                                            *
  19. *地址:菏澤市開發區廣州路與淮河路交叉口科睿電子產品有限公司                                                   *
  20. ***************************************************************************************/
  21. #include "reg52.h"
  22. #define uchar unsigned char
  23. #define uint unsigned int

  24. sbit rs=P2^0;//H數據,L命令
  25. sbit lcden=P2^2;//高脈沖使能,使能脈寬最小150ns
  26. sbit rw=P2^1;
  27. uchar code table[]= "Crazy Electronic";
  28. uchar code table1[]="TEL:0530-2897239";
  29. /********************************************************************
  30. * 名稱 : delay(uchar x)
  31. * 功能 : 延時函數
  32. * 輸入 : x
  33. * 輸出 : 無
  34. ***********************************************************************/
  35. void delay(uchar x)
  36. {        uint y;
  37.         for(;x>0;x--)
  38.          {                                                                        
  39.                 for(y=100;y>0;y--)
  40.                                 {};
  41.          }
  42. }
  43. /********************************************************************
  44. * 名稱 : lcdwrcom(uchar cdat)
  45. * 功能 : LCD1602寫數據到LCD1602
  46. * 輸入 : cdat
  47. * 輸出 : 無
  48. ***********************************************************************/
  49. void lcdwrdata(uchar dat)
  50. {
  51.    //dat = ((dat&0x01)<<7)|((dat&0x02)<<5)|((dat&0x04)<<3)|((dat&0x08)<<1)|((dat&0x10)>>1)|((dat&0x20)>>3)|((dat&0x40)>>5)|((dat&0x80)>>7);
  52.         rs=1;//寫數據時RS拉高
  53.         lcden=1;
  54.         P0=dat;
  55.         delay(6);
  56.         lcden=0;
  57.         delay(6);
  58. }
  59. /********************************************************************
  60. * 名稱 : lcdwrcom(uchar cdat)
  61. * 功能 : LCD1602寫命令到LCD1602
  62. * 輸入 : cdat
  63. * 輸出 : 無
  64. ***********************************************************************/
  65. void lcdwrcom(uchar cdat)//寫指令數據到LCD  
  66. {        
  67.    //cdat = ((cdat&0x01)<<7)|((cdat&0x02)<<5)|((cdat&0x04)<<3)|((cdat&0x08)<<1)|((cdat&0x10)>>1)|((cdat&0x20)>>3)|((cdat&0x40)>>5)|((cdat&0x80)>>7);
  68.     rs=0;//寫指令時RS拉低
  69.         lcden=1;
  70.     P0=cdat;//
  71.         delay(6);//不加此延時將導致不能寫入指令,但能寫入顯示數據
  72.         lcden=0;
  73.         delay(6);
  74. }
  75. /********************************************************************
  76. * 名稱 : lcd_init()
  77. * 功能 : LCD1602初始化
  78. * 輸入 : 無
  79. * 輸出 : 無
  80. ***********************************************************************/
  81. void lcd_init()
  82. {
  83.         lcdwrcom(0x38);//0x38設置顯示模式為:16X2 顯示,5X7 點陣,8 位數據接口
  84.         lcdwrcom(0x0c);//打開顯示光標閃爍
  85.         lcdwrcom(0x06);//
  86.         lcdwrcom(0x01);//
  87. }
  88. /********************************************************************
  89. * 名稱 : main()
  90. * 功能 : 主函數
  91. * 輸入 : 無
  92. * 輸出 : 無
  93. ***********************************************************************/
  94. void main()
  95. {
  96.         uchar n;
  97.     rw=0;
  98.         delay(200);
  99.         lcden=0;
  100.         lcd_init();
  101.         lcdwrcom(0x00|0x80);
  102.         for(n=0;n<16;n++)
  103.         {
  104.                 lcdwrdata(table[n]);
  105.                 delay(100);
  106.         }
  107.         lcdwrcom(0x40|0x80);
  108.         for(n=0;n<16;n++)
  109.         {
  110.                 lcdwrdata(table1[n]);
  111.                 delay(100);
  112.         }
  113.         while(1)
  114.         {
  115.         }
  116. }
復制代碼


回復

使用道具 舉報

ID:111634 發表于 2018-1-25 17:55 | 顯示全部樓層
本帖最后由 zl2168 于 2018-1-25 17:59 編輯

實例67  LCD1602顯示屏顯示
void  main ( ) {                                 //主函數
unsigned char  x[16]={"0123456789"};                 //定義第一行顯示數組x
unsigned char  y[16]={"ABCDEFGHIJKLMNOP"};              //定義第二行顯示數組y
E=0;                                 //使能端E低電平,1602準備
init1602 ( );                                   //1602初始化設置
wr1602 (x, 0x80);                                 //寫1602第一行數據
wr1602 (y, 0xc0);                                 //寫1602第二行數據
while(1);}                              //原地等待


本例編制的LCD 1602顯示程序標準化程度很好,若要顯示其他字符,只需給數組x[16]y[16]重新賦值即可。
Proteus仿真一下,確認有效。
實例61 LCD1602顯示屏顯示.rar (49.26 KB, 下載次數: 105)
回復

使用道具 舉報

ID:269211 發表于 2018-1-27 17:24 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩国产精品 | 国产精品一区二区在线播放 | 国产精品久久久久久久久免费软件 | 久久久久黄 | 国产精品视频在线观看 | 日韩精品一区二区三区中文字幕 | 亚洲成人网在线播放 | 蜜桃精品视频在线 | 在线观看成人精品 | 免费av手机在线观看 | 亚洲草草视频 | 91视频正在播放 | 国产视频一区二区在线观看 | 天堂成人av | jav成人av免费播放 | 黄色成人在线 | 一级免费毛片 | 97精品超碰一区二区三区 | 色橹橹欧美在线观看视频高清 | 国产精品久久久久久福利一牛影视 | 亚洲一区二区三区视频免费观看 | 亚洲精品日韩一区二区电影 | 亚洲视频在线观看一区二区三区 | 亚洲伦理自拍 | 欧美久 | 人人爽人人爽人人片av | 中文字幕日韩在线观看 | 亚洲欧美一区二区三区在线 | 91视频在线观看 | 欧美精品成人影院 | 免费成人在线网 | 国产一区二区在线播放 | 久久99精品久久久久久 | 91九色在线观看 | 超碰在线免费 | 免费一区在线观看 | 久久国产99 | 91av视频在线播放 | 美国黄色毛片 | 免费在线观看av的网站 | 在线色网|