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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4888|回復: 2
打印 上一主題 下一主題
收起左側(cè)

LCD1602 2×16 字符型液晶驅(qū)動程序的研究與試寫

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:71407 發(fā)表于 2014-12-31 00:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
       這段時間放假,因此終于有時間來做些小東西了,最近準備做一個恒溫烙鐵,要用到LCD液晶,由于以前買了一個一直沒用過,所以在液晶模塊編程方面的經(jīng)驗為0.剛好了,今天花了半天的時間研究終于有了研究成果。




        本人研究步驟如下:
        1、翻箱底,找出多年前買的液晶模塊。
        2、查詢模塊的數(shù)據(jù)手冊(datasheet),確定信號引腳
        3、根據(jù)手冊信息建立供電電路連接和數(shù)據(jù)信號的鏈接
        4、閱讀模塊手冊中的時序操作,編寫出讀寫底層函數(shù)
        5、閱讀命令控制字描述,確定控制字數(shù)值
        6、參考網(wǎng)絡(luò)上其他人的程序,驗證自己的閱讀結(jié)果是否有方向性錯誤
        7、編寫測試程序,讓液晶模塊顯示出想要顯示的數(shù)值、
以下即為研究結(jié)果。
  1. #include <reg51.h>
  2. sbit rs=P3^3;//指令數(shù)據(jù)選擇
  3. sbit rw=P3^4;//讀寫選擇
  4. sbit clk=P3^5;//使能脈沖
  5. unsigned char code Code1[]="0123456789ABCDEF";//文字數(shù)組
  6. sbit clear = P2^0;//清屏按鈕
  7. sbit key1 = P2^1;//寫第一行按鈕
  8. sbit key2 = P2^2;//寫第二行按鈕
  9. sbit key3 = P2^3;//顯示模式變更測試按鈕
  10. void delay2ms()//2064周期延時
  11. {
  12. unsigned char temp1;
  13. while(--temp1);
  14. while(--temp1);
  15. while(--temp1);
  16. while(--temp1);
  17. }
  18. void check_busy()//忙檢測
  19. {
  20. unsigned char busy;//臨時字節(jié)
  21. do
  22. {
  23. rs=0;//選擇寄存器
  24. rw=1;//讀取
  25. clk=1;//LCD將數(shù)據(jù)放到總線
  26. busy=P1;//讀入總線數(shù)據(jù)
  27. clk=0;//關(guān)閉總線
  28. busy=busy&0x80;//保留最高位
  29. }while(busy);//判斷是否為忙
  30. }
  31. void instructions(unsigned char INS)//寫指令函數(shù)
  32. {
  33. check_busy();//寫之前檢測忙
  34. rs=0;//選擇指令寄存器
  35. rw=0;//寫操作
  36. clk=1;//準備下降沿
  37. P1=INS;//數(shù)據(jù)放到總線上
  38. clk=0;//下降沿,數(shù)據(jù)寫入LCD
  39. }
  40. void write_data(unsigned char dat)//寫數(shù)據(jù)函數(shù)
  41. {
  42. check_busy();//寫之前檢測忙
  43. rs=1;//選擇數(shù)據(jù)寄存器
  44. rw=0;//寫操作
  45. clk=1;//準備下降沿
  46. P1=dat;//數(shù)據(jù)放到總線上
  47. clk=0;//下降沿,數(shù)據(jù)寫入LCD
  48. }
  49. void lcd_clear()//清除顯示函數(shù)
  50. {
  51. instructions(0x01);//清除顯示
  52. delay2ms();//清屏后,按手冊至少應(yīng)延時1.53ms
  53. }
  54. void lcd_init()
  55. {
  56. rw=0;//寫操作
  57. instructions(0x38);//設(shè)置顯示模式為2行,16字符,5×8點陣
  58. delay2ms();//按手冊應(yīng)至少延時39us,但由于執(zhí)行次數(shù)不多,統(tǒng)一使用2ms延時
  59. instructions(0x0f);//設(shè)置輸入模式為8位數(shù)據(jù)總線,光標增量移動,顯示不移位
  60. delay2ms();//按手冊應(yīng)至少延時39us,但由于執(zhí)行次數(shù)不多,統(tǒng)一使用2ms延時
  61. instructions(0x06);//開顯示,關(guān)閉光標,不閃爍
  62. delay2ms();//按手冊應(yīng)至少延時39us,但由于執(zhí)行次數(shù)不多,統(tǒng)一使用2ms延時
  63. }
  64. void main()
  65. {
  66. unsigned char m;//輔助尋址指針變量
  67. lcd_init();//LCD初始化
  68. while(1)
  69. {
  70. if(!key1)//判斷按鍵是否按下
  71.     {
  72. instructions(0x80+0x00);//寫入顯示緩沖區(qū)起始地址為1行1列
  73.     delay2ms();//按手冊應(yīng)至少延時39us,但由于執(zhí)行次數(shù)不多,統(tǒng)一使用2ms延時
  74. for(m=0;m<16;m++)//將預先定義好的字符連續(xù)發(fā)送到LCD
  75.    {
  76.    write_data(Code1
  77. ????);//通過輔助變量查詢數(shù)組并寫入LCD
  78.    }
  79. }
  80. if(!key2)//判斷按鍵是否按下
  81.     {
  82. instructions(0x80+0x40);//寫入顯示緩沖區(qū)起始地址為2行1列
  83.     delay2ms();//按手冊應(yīng)至少延時39us,但由于執(zhí)行次數(shù)不多,統(tǒng)一使用2ms延時
  84. for(m=0;m<16;m++)//將預先定義好的字符連續(xù)發(fā)送到LCD
  85.    {
  86.    write_data(Code1
  87. ??);//通過輔助變量查詢數(shù)組并寫入LCD
  88.    }
  89. }
  90. if(!clear)//判斷按鍵是否按下
  91.     {
  92. lcd_clear();//調(diào)用清屏函數(shù)
  93. }
  94. if(!key3)//判斷按鍵是否按下
  95.     {
  96. instructions(0x0c);//改變顯示模式
  97.     delay2ms();//按手冊應(yīng)至少延時39us,但由于執(zhí)行次數(shù)不多,統(tǒng)一使用2ms延時
  98. }
  99. }
  100. }
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:72901 發(fā)表于 2015-1-28 12:23 | 只看該作者
不錯值得學習
回復

使用道具 舉報

板凳
ID:43559 發(fā)表于 2015-3-7 20:02 | 只看該作者
編譯燒錄試驗。
在按鈕控制下倆行咋都顯示“j”?
回復

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人1区2区| 天天草夜夜骑 | 国产欧美一区二区三区在线播放 | 在线看h| 亚洲国产成人av好男人在线观看 | 欧美一区二区视频 | 久草精品视频 | 成人免费看片网 | 欧美国产精品一区二区三区 | 日韩在线免费视频 | 高清18麻豆| 免费精品视频一区 | 大学生a级毛片免费视频 | 亚洲成人一区二区三区 | 国产精品一区二区不卡 | 久久免费精品视频 | 久久久精品国产 | 日韩一区二区三区在线观看 | 午夜精品一区二区三区在线 | 一区二区三区四区在线视频 | 国产精品视频网站 | 久久久精品欧美 | 玖玖色在线视频 | 日日干夜夜操天天操 | 亚洲精品在线免费看 | 国产日韩视频在线 | 黄色毛片在线观看 | 成人在线中文字幕 | 成年网站在线观看 | 澳门永久av免费网站 | 久久一级 | 精品视频www | 久久精品一级 | 亚洲成人国产精品 | 久久一区二区三区四区五区 | 成人综合久久 | 欧美一区二区在线观看 | 日韩精品在线网站 | 亚洲草草视频 | 91免费电影 | 91av在线电影 |