標題: LCD1602基本顯示注意事項與單片機程序 [打印本頁]

作者: 916878329    時間: 2017-12-21 14:57
標題: LCD1602基本顯示注意事項與單片機程序
LCD1602液晶顯示:
Welcome!
LCD1602 display
使用方法(注意事項):
1、先插接好LCD1602液晶,插接到LCD1602排針上(位于數(shù)碼管上方16個孔的排母)
插接方向:插接完成后液晶屏幕處于開發(fā)板內(nèi)(蓋住數(shù)碼管)
一定要把排針全部插入16P排母,插接是注意不能錯位。
如果排針有歪斜,用戶可以用手慢慢的掰正即可,不會斷掉或影響使用,因為排針受外力很容易歪斜,但韌性好。
2、打開開發(fā)板電源,燒入配套LCD1602顯示的程序。
3、如果沒有顯示字符,或者出現(xiàn)全黑的方格和字跡不清晰,可以找一個合適的工具,有螺絲刀最好,調(diào)節(jié)16P排母左邊的“液晶對比度電位器”順時針慢慢調(diào)節(jié),直到顯示清楚,順時針調(diào)節(jié)增加對比度,逆時針減小對比度。接插示意圖如下:


單片機源程序如下:
  1. /*********************************************************************************
  2. * 【作    者】: 清翔電子:03
  3. * 【外部晶振】: 11.0592mhz       
  4. * 【主控芯片】: STC89C52
  5. * 【編譯環(huán)境】: Keil μVisio3       
  6. * 【程序功能】: LCD1602顯示                                                                                   
  7. * 【使用說明】: 正確接上LCD1602液晶并調(diào)節(jié)好對比度
  8. *  說明:免費開源,不提供源代碼分析.
  9. **********************************************************************************/
  10. #include <reg52.h>

  11. /*=================================================
  12. *自定義數(shù)據(jù)類型
  13. =================================================*/
  14. typedef unsigned char uchar;
  15. typedef unsigned int uint;

  16. #define LCD1602_DB P0        //LCD1602數(shù)據(jù)總線

  17. sbit LCD1602_RS = P3^5;         //RS端
  18. sbit LCD1602_RW = P3^6;         //RW端
  19. sbit LCD1602_EN = P3^4;         //EN端
  20. sbit DU = P2^6;//
  21. sbit WE = P2^7;//數(shù)碼管位選段選用于關(guān)閉數(shù)碼管顯示

  22. /*=================================================
  23. *函數(shù)名稱:Read_Busy
  24. *函數(shù)功能:判斷1602液晶忙,并等待
  25. =================================================*/
  26. void Read_Busy()
  27. {
  28.         uchar busy;
  29.         LCD1602_DB = 0xff;//復(fù)位數(shù)據(jù)總線
  30.         LCD1602_RS = 0;          //拉低RS
  31.         LCD1602_RW = 1;          //拉高RW讀
  32.         do
  33.         {
  34.                 LCD1602_EN = 1;//使能EN
  35.                 busy = LCD1602_DB;//讀回數(shù)據(jù)
  36.                 LCD1602_EN = 0;         //拉低使能以便于下一次產(chǎn)生上升沿
  37.         }while(busy & 0x80); //判斷狀態(tài)字BIT7位是否為1,為1則表示忙,程序等待
  38. }
  39. /*=================================================
  40. *函數(shù)名稱:LCD1602_Write_Cmd
  41. *函數(shù)功能:寫LCD1602命令
  42. *調(diào)用:Read_Busy();
  43. *輸入:cmd:要寫的命令
  44. =================================================*/
  45. void LCD1602_Write_Cmd(uchar cmd)
  46. {
  47.         Read_Busy();         //判斷忙,忙則等待
  48.         LCD1602_RS = 0;
  49.         LCD1602_RW = 0;        //拉低RS、RW操作時序情況1602課件下中文使用說明基本操作時序章節(jié)
  50.         LCD1602_DB = cmd;//寫入命令
  51.         LCD1602_EN = 1;         //拉高使能端 數(shù)據(jù)被傳輸?shù)絃CD1602內(nèi)
  52.         LCD1602_EN = 0;         //拉低使能以便于下一次產(chǎn)生上升沿
  53. }
  54. /*=================================================
  55. *函數(shù)名稱:LCD1602_Write_Dat
  56. *函數(shù)功能:寫LCD1602數(shù)據(jù)
  57. *調(diào)用:Read_Busy();
  58. *輸入:dat:需要寫入的數(shù)據(jù)
  59. =================================================*/
  60. void LCD1602_Write_Dat(uchar dat)
  61. {
  62.         Read_Busy();
  63.         LCD1602_RS = 1;
  64.         LCD1602_RW = 0;
  65.         LCD1602_DB = dat;
  66.         LCD1602_EN = 1;
  67.         LCD1602_EN = 0;
  68. }
  69. /*=================================================
  70. *函數(shù)名稱:LCD1602_Dis_OneChar
  71. *函數(shù)功能:在指定位置顯示一個字符
  72. *調(diào)用:LCD1602_Write_Cmd(); LCD1602_Write_Dat();       
  73. *輸入:x:要顯示的橫坐標取值0-40,y:要顯示的行坐標取值0-1(0為第一行,1為第二行)
  74.                 dat:需要顯示的數(shù)據(jù)以ASCLL形式顯示
  75. =================================================*/
  76. void LCD1602_Dis_OneChar(uchar x, uchar y,uchar dat)
  77. {
  78.         if(y)        x |= 0x40;
  79.         x |= 0x80;
  80.         LCD1602_Write_Cmd(x);
  81.         LCD1602_Write_Dat(dat);               
  82. }
  83. /*=================================================
  84. *函數(shù)名稱:LCD1602_Dis_Str
  85. *函數(shù)功能:在指定位置顯示字符串
  86. *調(diào)用:LCD1602_Write_Cmd(); LCD1602_Write_Dat();
  87. *輸入:x:要顯示的橫坐標取值0-40,y:要顯示的行坐標取值0-1(0為第一行,1為第二行)
  88.                 *str:需要顯示的字符串
  89. =================================================*/
  90. void LCD1602_Dis_Str(uchar x, uchar y, uchar *str)
  91. {
  92.         if(y) x |= 0x40;
  93.         x |= 0x80;
  94.         LCD1602_Write_Cmd(x);
  95.         while(*str != '\0')
  96.         {
  97.                 LCD1602_Write_Dat(*str++);
  98.         }
  99. }
  100. /*=================================================
  101. *函數(shù)名稱:Init_LCD1602
  102. *函數(shù)功能:1602初始化
  103. *調(diào)用:        LCD1602_Write_Cmd();
  104. =================================================*/
  105. void Init_LCD1602()
  106. {
  107.         LCD1602_Write_Cmd(0x38); //        設(shè)置16*2顯示,5*7點陣,8位數(shù)據(jù)接口
  108.         LCD1602_Write_Cmd(0x0c); //開顯示
  109. ……………………

  110. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
17_LCD1602基本顯示程序.rar (1.26 MB, 下載次數(shù): 320)





作者: yangg12    時間: 2018-4-29 18:55
我覺得挺有幫助的,真的
作者: yangg12    時間: 2018-4-29 18:56
對于新手的幫助很大
作者: xjw123    時間: 2018-5-5 13:15
我要我要
作者: zssss    時間: 2018-5-9 11:06
為什么沒有主函數(shù)?
作者: doney    時間: 2018-5-9 16:18
新手正在學(xué)習(xí),感謝分享
作者: 發(fā)貨威女    時間: 2018-5-29 13:15
手動點贊,感謝分享。
作者: sch3462    時間: 2018-5-29 15:45
黑幣不足,怎么辦?下不了。
作者: ptlantu    時間: 2018-6-19 09:15
感謝分享。
作者: 風(fēng)游兮    時間: 2018-6-19 10:15
sch3462 發(fā)表于 2018-5-29 15:45
黑幣不足,怎么辦?下不了。

多評論或者發(fā)貼
作者: feiji666    時間: 2018-6-19 17:41
感謝分享,你這PCB板子怎么做的,有資料嗎
作者: t1304623861    時間: 2018-6-28 11:29
感謝分享
作者: hujiyu777    時間: 2018-7-5 09:36
很給力
作者: stephen_pro    時間: 2018-7-14 13:28
謝謝了
作者: 嘉立創(chuàng)科技    時間: 2018-7-14 15:11
謝謝分享~~~~~~~~~~~~~
作者: ccc1001    時間: 2018-9-3 09:06
贊一個!
作者: Sandra333    時間: 2018-9-8 21:48
我覺的挺有幫助的,對于一個小白來說,這就是個指導(dǎo)程序呀
作者: hj0787    時間: 2018-10-1 10:35
感謝分享,嘿嘿,程序代碼清晰

作者: ximliu    時間: 2018-11-30 15:10
下載看看
作者: 天空之城01    時間: 2018-12-29 11:20
萬分感謝
作者: 小小電子前行者    時間: 2019-3-14 21:21
為什么我下了程序后還是不會顯示

作者: 峰峰風(fēng)    時間: 2019-6-12 14:15
很不錯
謝謝!
作者: 曹家祥    時間: 2019-6-13 14:05
感謝分享~~~
作者: 祁舞紛飛    時間: 2019-6-22 22:57
我覺得非常有幫助
作者: spendell    時間: 2019-9-23 21:22
弄好后屏幕第一行全黑,是不是說我的屏幕壞了?
作者: ouccuo    時間: 2019-10-2 21:04
試了幾個1602程序,這個是最好用的,注釋非常詳細,贊
作者: RandomM    時間: 2020-3-25 18:42
感謝分享




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