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

標(biāo)題: 用51單片機(jī)控制LCD12864顯示屏源程序 [打印本頁(yè)]

作者: 桐閣竹韻    時(shí)間: 2018-8-1 17:35
標(biāo)題: 用51單片機(jī)控制LCD12864顯示屏源程序
12864液晶在出廠時(shí)其對(duì)比度已經(jīng)調(diào)好,所以用戶在使用的時(shí)候第三管腳可不用接任何東西,本實(shí)驗(yàn)板上為了兼容多家12864液晶所以加了液晶對(duì)比度調(diào)節(jié)電位器,若用戶使用我們配套的12864液晶可不用管它,液晶的第三管腳懸空就可以。有些液晶功耗比較大,用戶在使用的時(shí)候可將液晶的第19、20引腳的背光不接,這樣字體會(huì)很清楚。



單片機(jī)源程序如下:
  1. /**********************BST-V51實(shí)驗(yàn)開(kāi)發(fā)板例程************************
  2. *  平臺(tái):BST-V51 + Keil U3 + STC89C52
  3. *  名稱:
  4. *  晶振:11.0592MHZ
  5. *  說(shuō)明:免費(fèi)開(kāi)源,不提供源代碼分析.
  6. ******************************************************************/
  7. /*******************************************************************/
  8. /*                                                                 */
  9. /* 單片機(jī)開(kāi)發(fā)系統(tǒng)演示程序 - 128*64LCD顯示顯示  */
  10. /*                                                                 */
  11. //;*  LCD型號(hào):TS12864A-3(帶漢字庫(kù))或兼容型號(hào)    控制器ST7920      */
  12. //;*  MCU:AT89S52 ,晶體頻率:11.0592MHz                              */
  13. /*                                                                 */
  14. /*******************************************************************/

  15. #include <reg51.h>
  16. #include <intrins.h>
  17.        
  18. #define uchar unsigned char
  19. #define uint  unsigned int
  20. /*12864端口定義*/
  21. #define LCD_data  P0             //數(shù)據(jù)口
  22. sbit LCD_RS  =  P2^6;            //寄存器選擇輸入
  23. sbit LCD_RW  =  P2^5;            //液晶讀/寫控制
  24. sbit LCD_EN  =  P2^7;            //液晶使能控制
  25. sbit LCD_PSB =  P1^2;            //串/并方式控制
  26. sbit wela    =  P2^6;
  27. sbit dula    =  P2^7;

  28. uchar code dis1[] = {"看什么看!"};
  29. uchar code dis2[] = {"顯示屏而已!"};
  30. uchar code dis3[] = {"少見(jiàn)多怪!"};
  31. uchar code dis4[] = {"那涼哪呆著!"};                  

  32. #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};
  33. uchar IRDIS[2];
  34. uchar IRCOM[4];
  35. void delay0(uchar x);  //x*0.14MS
  36. void beep();
  37. void  dataconv();
  38. void lcd_pos(uchar X,uchar Y);  //確定顯示位置
  39. /*******************************************************************/
  40. /*                                                                 */
  41. /*  延時(shí)函數(shù)                                                       */
  42. /*                                                                 */
  43. /*******************************************************************/
  44. void delay(int ms)
  45. {
  46.     while(ms--)
  47.         {
  48.       uchar i;
  49.           for(i=0;i<250;i++)  
  50.            {
  51.             _nop_();                          
  52.                 _nop_();
  53.                 _nop_();
  54.                 _nop_();
  55.            }
  56.         }
  57. }               
  58. /*******************************************************************/
  59. /*                                                                 */
  60. /*檢查L(zhǎng)CD忙狀態(tài)                                                    */
  61. /*lcd_busy為1時(shí),忙,等待。lcd-busy為0時(shí),閑,可寫指令與數(shù)據(jù)。      */
  62. /*                                                                 */
  63. /*******************************************************************/
  64. bit lcd_busy()
  65. {                          
  66.     bit result;
  67.     LCD_RS = 0;
  68.     LCD_RW = 1;
  69.     LCD_EN = 1;
  70.     delayNOP();
  71.     result = (bit)(P0&0x80);
  72.     LCD_EN = 0;
  73.     return(result);
  74. }
  75. /*******************************************************************/
  76. /*                                                                 */
  77. /*寫指令數(shù)據(jù)到LCD                                                  */
  78. /*RS=L,RW=L,E=高脈沖,D0-D7=指令碼。                             */
  79. /*                                                                 */
  80. /*******************************************************************/
  81. void lcd_wcmd(uchar cmd)
  82. {                          
  83.    while(lcd_busy());
  84.     LCD_RS = 0;
  85.     LCD_RW = 0;
  86.     LCD_EN = 0;
  87.     _nop_();
  88.     _nop_();
  89.     P0 = cmd;
  90.     delayNOP();
  91.     LCD_EN = 1;
  92.     delayNOP();
  93.     LCD_EN = 0;  
  94. }
  95. /*******************************************************************/
  96. /*                                                                 */
  97. /*寫顯示數(shù)據(jù)到LCD                                                  */
  98. /*RS=H,RW=L,E=高脈沖,D0-D7=數(shù)據(jù)。                               */
  99. /*                                                                 */
  100. /*******************************************************************/
  101. void lcd_wdat(uchar dat)
  102. {                          
  103.    while(lcd_busy());
  104.     LCD_RS = 1;
  105.     LCD_RW = 0;
  106.     LCD_EN = 0;
  107.     P0 = dat;
  108.     delayNOP();
  109.     LCD_EN = 1;
  110.     delayNOP();
  111.     LCD_EN = 0;
  112. }
  113. /*******************************************************************/
  114. /*                                                                 */
  115. /*  LCD初始化設(shè)定                                                  */
  116. /*                                                                 */
  117. /*******************************************************************/
  118. void lcd_init()
  119. {

  120.     LCD_PSB = 1;         //并口方式
  121.    
  122.     lcd_wcmd(0x34);      //擴(kuò)充指令操作
  123.     delay(5);
  124.     lcd_wcmd(0x30);      //基本指令操作
  125.     delay(5);
  126.     lcd_wcmd(0x0C);      //顯示開(kāi),關(guān)光標(biāo)
  127.     delay(5);
  128.     lcd_wcmd(0x01);      //清除LCD的顯示內(nèi)容
  129.     delay(5);
  130. }
  131. /*********************************************************/
  132. /*                                                                                                                 */
  133. /* 主程序                                                                                    */
  134. /*                                                       */
  135. /*********************************************************/
  136.   main()
  137. {
  138.     uchar i;
  139.     delay(10);                 //延時(shí)
  140.     wela=0;
  141.         dula=0;
  142.     lcd_init();                //初始化LCD            
  143.   
  144.     lcd_pos(0,0);             //設(shè)置顯示位置為第一行的第1個(gè)字符
  145.      i = 0;
  146.     while(dis1[i] != '\0')
  147.      {                         //顯示字符
  148.        lcd_wdat(dis1[i]);
  149.        i++;
  150.      }
  151.     lcd_pos(1,0);             //設(shè)置顯示位置為第二行的第1個(gè)字符
  152.      i = 0;
  153.     while(dis2[i] != '\0')
  154.      {
  155.        lcd_wdat(dis2[i]);      //顯示字符
  156.        i++;
  157.      }
  158.          lcd_pos(2,0);             //設(shè)置顯示位置為第三行的第1個(gè)字符
  159.      i = 0;
  160.     while(dis3[i] != '\0')
  161.      {
  162.        lcd_wdat(dis3[i]);      //顯示字符
  163.        i++;
  164.      }
  165.          lcd_pos(3,0);             //設(shè)置顯示位置為第四行的第1個(gè)字符
  166.      i = 0;
  167.     while(dis4[i] != '\0')
  168.      {
  169.        lcd_wdat(dis4[i]);      //顯示字符
  170.        i++;
  171.      }
  172.      while(1);
  173. }



  174. /*********************************************************/
  175. /*                                                                                                                 */
  176. /* 延時(shí)x*0.14ms子程序                                                                         */
  177. /*                                                       */
  178. /*********************************************************/

  179. void delay0(uchar x)    //x*0.14MS
  180. {
  181.   uchar i;
  182. ……………………

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

所有資料51hei提供下載:
12864顯示字符.rar (19.33 KB, 下載次數(shù): 1635)



作者: 10650815    時(shí)間: 2018-8-4 15:43
頭文件是自己編寫的嗎
作者: zhangcj0818    時(shí)間: 2018-9-10 17:12
謝謝樓主了
作者: liangwei2017    時(shí)間: 2018-10-2 09:09
好好學(xué)習(xí),日后有用之處
作者: gavin1985bb    時(shí)間: 2018-10-27 17:55
好東西,收藏了,自己做小玩具的時(shí)候一定用得到。
作者: samdcn    時(shí)間: 2018-11-14 14:56
學(xué)習(xí)前輩~~~
作者: ZKBG    時(shí)間: 2018-11-30 15:40
厲害。
作者: zxcv789654123    時(shí)間: 2018-12-21 10:26
這文件好像在哪見(jiàn)過(guò)
作者: 無(wú)色的風(fēng)格    時(shí)間: 2018-12-21 14:04
學(xué)習(xí)學(xué)習(xí)
作者: 藍(lán)琪    時(shí)間: 2018-12-23 10:13
sbit wela    =  P2^6;
sbit dula    =  P2^7;這兩個(gè)是定義啥
作者: Wholala    時(shí)間: 2019-1-27 00:10
收藏
作者: 一扥的家    時(shí)間: 2019-3-14 16:39
感謝樓主大大,好人一生平安!!!
作者: 溫酒斬華騰    時(shí)間: 2019-4-3 08:47
十分感謝

作者: z65856365    時(shí)間: 2019-5-13 23:04
感謝樓主分享
作者: 單片機(jī)之王啊    時(shí)間: 2019-7-30 10:20
非常好用,感謝分享
作者: asd1026    時(shí)間: 2019-9-18 10:30
感謝樓主分享
作者: xixia001    時(shí)間: 2019-10-3 21:31
下載對(duì)話框總是一閃而過(guò),怎么回事
作者: 黃呵呵    時(shí)間: 2019-10-6 23:54
藍(lán)琪 發(fā)表于 2018-12-23 10:13
sbit wela    =  P2^6;
sbit dula    =  P2^7;這兩個(gè)是定義啥

樓主的開(kāi)發(fā)板上P2^6,P2^7.有與數(shù)碼管鏈接,所以需要定義這兩個(gè)引腳,然后在初始化中關(guān)閉數(shù)碼管。
作者: lvzimu5210    時(shí)間: 2019-10-8 22:00
有下載的嗎,求一份1273176424@qq.com
作者: Gods    時(shí)間: 2019-10-21 00:01
感謝樓主分享,小白我拿去研究一下
作者: zxy2266    時(shí)間: 2019-10-22 17:15
學(xué)習(xí)一下,注釋比較詳細(xì),適合初學(xué)者
作者: 1046298390    時(shí)間: 2019-11-19 19:29
感謝分享
作者: 嵐風(fēng)    時(shí)間: 2019-11-19 23:28
感謝分享
作者: 不安全    時(shí)間: 2019-11-26 11:26
原理圖啥樣呀
作者: 俊哥在了    時(shí)間: 2019-12-3 01:27
求仿真電路圖
作者: waas1987    時(shí)間: 2020-2-12 22:31
好好學(xué)習(xí),日后有用之處
作者: sick    時(shí)間: 2020-3-10 20:46
藍(lán)琪 發(fā)表于 2018-12-23 10:13
sbit wela    =  P2^6;
sbit dula    =  P2^7;這兩個(gè)是定義啥

數(shù)碼管位選 段選
作者: yy3900636    時(shí)間: 2020-4-3 19:37
回帖是一種美德~~~~感謝分享
作者: qiangzi777    時(shí)間: 2020-4-14 08:42
感謝分享
作者: zxcb123321    時(shí)間: 2020-4-29 15:12

頭文件是自己編寫的嗎
作者: diyfl    時(shí)間: 2020-4-30 09:58
我要二維碼的,正在到處找!
作者: 阿迪H    時(shí)間: 2020-5-2 09:56
壓縮包里有原理圖嗎?
作者: 對(duì)瀟瀟暮雨    時(shí)間: 2020-5-9 00:13
感謝樓主,。。。。
作者: fatelili    時(shí)間: 2020-5-11 16:22
感謝樓主,頭文件要自己編寫嗎?
作者: lys666    時(shí)間: 2020-5-19 21:24
這跟劉清翔51單片機(jī)的教程源碼一樣
作者: tjpxp    時(shí)間: 2020-6-26 13:38
用來(lái)測(cè)試新買的屏,非常好用!謝謝分享!
作者: qqqqqaq    時(shí)間: 2020-12-8 13:54
用譜中的沒(méi)運(yùn)行成功
作者: 要好好學(xué)習(xí)    時(shí)間: 2021-1-12 20:35
請(qǐng)問(wèn)有仿真圖嗎?
作者: 獨(dú)帥    時(shí)間: 2021-1-25 15:25
運(yùn)行不成功,屏上什么也沒(méi)有

作者: 獨(dú)帥    時(shí)間: 2021-1-25 15:42
額!我人傻了,我自己沒(méi)搞清楚開(kāi)發(fā)板上接口的位置順序,導(dǎo)致顯示不出來(lái),還以為是程序的問(wèn)題。樓主的程序是對(duì)的,感謝樓主大大,這對(duì)我非常有用,救我于水火之中!
作者: 2413299692    時(shí)間: 2021-4-21 20:51
藍(lán)琪 發(fā)表于 2018-12-23 10:13
sbit wela    =  P2^6;
sbit dula    =  P2^7;這兩個(gè)是定義啥

dula 段選  wela  位選

作者: h168168    時(shí)間: 2021-10-3 14:05
收藏了,自己做小玩具的時(shí)候一定用得到
作者: w18278023119    時(shí)間: 2021-12-4 19:31
獨(dú)帥 發(fā)表于 2021-1-25 15:42
額!我人傻了,我自己沒(méi)搞清楚開(kāi)發(fā)板上接口的位置順序,導(dǎo)致顯示不出來(lái),還以為是程序的問(wèn)題。樓主的程序是 ...

請(qǐng)問(wèn)最后怎么顯示出來(lái)呢!我就是顯示不出來(lái)!!
作者: 2928345798    時(shí)間: 2022-11-26 17:02
很好,有用




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 91麻豆精品国产91久久久久久久久 | 一区二区三区免费 | 伊人久操| 一本色道久久综合亚洲精品高清 | 欧美精品日韩 | 欧美日韩国产在线 | 九九热精品在线 | 日韩精品| 91一区二区三区在线观看 | 一区二区三区久久 | 不卡的av在线 | 亚洲视频二区 | 亚洲精品在线免费观看视频 | 久久精品高清视频 | 欧美性一区二区三区 | 操操操操操 | 国产区在线看 | 色毛片 | 一级黄色夫妻生活 | 成人三级网址 | 在线亚洲精品 | 玖玖国产精品视频 | 性高朝久久久久久久3小时 av一区二区三区四区 | 中日字幕大片在线播放 | 欧美在线a | 日韩视频国产 | 国产精品黄色 | 久久精品久久久久久 | 五月天激情综合网 | 欧美中文字幕一区二区三区 | 亚洲精品一区二区三区中文字幕 | 亚洲成人综合在线 | 精品久久久久久亚洲国产800 | av中文字幕在线观看 | 9999精品视频 | 日日操操| 精品久久久久一区二区国产 | 亚洲成人av在线播放 | 国产一级在线视频 | 国产一区在线视频 | 99热精品久久|