找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

LCD1602的單片機庫文件

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:370473 發(fā)表于 2020-2-13 12:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
寫了一個1602 庫希望可以方便大家開發(fā)
有不足之處請指出,謝謝!
測試機型STC8A8K64S4A12

單片機源程序如下:
  1. #include "delay.h"
  2. #include "stc8.h"


  3. sbit rs=P3^5;
  4. sbit rw=P3^6;    //1602 IO口定義  這里用的數(shù)據(jù)口是P0口
  5. sbit ep=P3^7;

  6. unsigned char lcd_busy()               //查忙 這部很重要 否則有的顯示容易出現(xiàn)亂碼                                             
  7. {                                                                          
  8.     unsigned char result;                                                            
  9.     rs = 0;
  10.         delay(100);                                                         
  11.     rw = 1;   
  12.         delay(100);                                                         
  13.     ep = 1;   
  14.         delay(100);                                                                                                                 
  15.     result = (P0&0x80);
  16.         delay(100);                                             
  17.     ep = 0;   
  18.         delay(100);                                                   
  19.     return result;             //返回值                                            
  20. }

  21. void lcd_com(unsigned char com)//  地址
  22. {
  23. while(lcd_busy());
  24. rs=0;
  25. delay(100);
  26. ep=0;  
  27. delay(100);
  28. rw=0;
  29. delay(100);                 
  30. P0=com;
  31. delay(100);
  32. ep=1;
  33. delay(100);
  34. ep=0;
  35. delay(100);
  36. }

  37. void lcd_date(unsigned char date)//采集輸出數(shù)據(jù)
  38. {
  39. while(lcd_busy());
  40. rs=1;   //1是些數(shù)據(jù) 0是寫指令
  41. delay(100);
  42. rw=0;    // 1是讀  0是寫
  43. delay(100);
  44. ep=0;    //E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令
  45. delay(100);      
  46. P0=date;
  47. delay(100);
  48. ep=1;
  49. delay(100);
  50. ep=0;
  51. delay(100);
  52. }

  53. void lcd_pos(unsigned char pos)                                                   
  54. {                                                                          
  55.    lcd_com(pos+0x80);      //數(shù)據(jù)指針=80+地址變量                     
  56. }   



  57. void lcddisplay(int posision,char e[]){
  58. int i=0;
  59. delay(300);
  60. lcd_pos(posision);
  61. while(e[i]!='\0')         //顯示字母
  62. {
  63. lcd_date(e[i]);
  64. i++;
  65. }
  66. }

  67. void lcddisplayl2(int posision,char e[]){
  68. lcddisplay(0x40+posision,e);

  69. }
  70. void lcddisplaycodel2(int posision,char e){
  71. delay(300);
  72. lcd_pos(0x40+posision);
  73. delay(300);
  74. lcd_date(e);
  75. }
  76. void lcddisplaycode(int posision,char e){
  77. delay(300);
  78. lcd_pos(posision);
  79. delay(300);
  80. lcd_date(e);
  81. }

  82. void init()//1602初始化
  83. {
  84. unsigned char code v[]={""};                                                               
  85. lcd_com(0x38);
  86. delay(50);                                                              
  87. lcd_com(0x38);
  88. delay(50);

  89. lcd_com(0x38);
  90. delay(50);
  91. lcd_com(0x0c);
  92. delay(50);
  93. lcd_com(0x06);
  94. delay(50);
  95. lcd_com(0x01);

  96. delay(600);
  97. lcddisplay(0,v);
  98. }
復(fù)制代碼

所有資料51hei提供下載:
LCD - 副本.rar (59.97 KB, 下載次數(shù): 6)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:370473 發(fā)表于 2020-2-15 18:38 | 只看該作者
代碼更新
lcd lib v2添加屏幕清除
u 上
d下
其他 全清

添加延時函數(shù)



LCD lib v2.rar

188.79 KB, 下載次數(shù): 10, 下載積分: 黑幣 -5

LCD lib v2.rar

回復(fù)

使用道具 舉報

板凳
ID:24810 發(fā)表于 2020-2-15 21:12 | 只看該作者
代碼有特色,下來學(xué)下。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表