找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于51單片機12864液晶顯示

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:309715 發(fā)表于 2018-8-20 10:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
基于51單片機12864液晶顯示
  1. /*========================LCD12864液晶并行驅(qū)動程序==========================
  2. 程序名稱:12864液晶驅(qū)動程序(并行模式)
  3. ============================================================================*/
  4. #include <at89x52.h>
  5. #define uchar unsigned char
  6. #define uint unsigned int
  7. uchar t,p;
  8. /********************************引腳定義***********************************/
  9. #define RS P1_0 //RS=0為執(zhí)行指令;RS=1為執(zhí)行數(shù)據(jù);
  10. #define RW P1_1 //讀寫
  11. #define E P1_2 //使能
  12. #define PSB P1_3 //低電平(串口驅(qū)動);高電平(并口驅(qū)動)
  13. #define RST P1_4 //LCD復(fù)位
  14. /********************************定義數(shù)組***********************************/
  15. uchar code title[] = {"LCD 并行接口測試"};
  16. uchar code website[]={"qwertyuioopplkjh"};
  17. uchar code dig[]={"0123456789"};
  18. uchar code dig2[]={0,1,2,3,':'}; //
  19. /*******************************相關(guān)子程序**********************************/
  20. void Init_lcd(); //初始化液晶
  21. void lcd_busy(); //忙標(biāo)志查詢
  22. void delay100us(); //100us延時程序
  23. void write(uchar x,uchar Data); //寫單字節(jié)函數(shù)
  24. void Show(uchar address,uchar L,uchar STR1[]);
  25. void Show_dig(uchar address,uint number);
  26. /*******************************延時子程序**********************************/
  27. void delay100(int n)
  28. {
  29. unsigned char i;
  30. while(n--)
  31. for(i=0;i<100;i++);
  32. }
  33. /*******************************LCD 忙標(biāo)志查詢******************************/
  34. void lcd_busy(void)
  35. {
  36. uchar busy;
  37. P0=0xff;
  38. RS=0;
  39. RW=1;
  40. do{
  41. E=1;
  42. busy=P0;
  43. E=0;
  44. }
  45. while(busy>0x7f);
  46. }
  47. /*****************************寫指令或數(shù)據(jù)**********************************/
  48. void write(uchar x,uchar Data)
  49. {
  50. lcd_busy(); //忙查詢
  51. if(x==0)
  52. {
  53. RS=0;
  54. RW=0; //寫單字節(jié)命令字
  55. }
  56. else if(x==1)
  57. {
  58. RS=1;
  59. RW=0; //寫單字節(jié)數(shù)據(jù)
  60. }
  61. E=1;
  62. P0=Data;
  63. E=0;
  64. P0=0xff;
  65. }
  66. /*******************************初始化LCD **********************************/
  67. void Init_lcd(void)
  68. {
  69. delay100(20); //啟動等待,等LCM講入工作狀態(tài)
  70. PSB=1; //并口驅(qū)動模式
  71. RST=0;
  72. delay100(4);
  73. RST=1; // 復(fù)位LCD
  74. write(0,0x30); //8 位介面,基本指令集
  75. write(0,0x0c); //顯示打開,光標(biāo)關(guān),反白關(guān)
  76. write(0,0x01); //清屏,將DDRAM的地址計數(shù)器歸零
  77. }
  78. /*******漢字和字符顯示,參數(shù)入口:Show(地址,顯示寬度,漢字?jǐn)?shù)組)************/
  79. void Show(uchar address,uchar L,uchar STR1[])
  80. {
  81. uchar i;
  82. write(0,address);
  83. for(i=0;i<L;i++)
  84. write(1,STR1[i]);
  85. }
  86. /************純阿拉伯?dāng)?shù)字顯示,參數(shù)入口:Show_dig(地址,數(shù)字)**************/
  87. void Show_dig(uchar address,uint number)
  88. {
  89. uchar shi,ge;
  90. shi=number/10;
  91. ge=number%10;
  92. write(0,address);
  93. delay100(20);
  94. write(1,dig[shi]);
  95. delay100(20);
  96. wri
  97. te(1,dig[ge]);
  98. }
  99. /************************************主程序**********************************/
  100. void main(void)
  101. {
  102. Init_lcd();
  103. TMOD=0X01;
  104. TH0=0xdc;
  105. TL0=0x00;
  106. ET0=1;
  107. TR0=1;
  108. EA=1;
  109. P3_6=0;
  110. delay100(30);
  111. Show(0x83,4,"梁浩"); //寫數(shù)組里的內(nèi)容
  112. write(0,0x0d);
  113. delay100(30);
  114. Show(0x90,16,"電子科技協(xié)會會長");
  115. delay100(30);
  116. Show(0x88,16,"TEL 15281642659"); //寫英文
  117. delay100(30);
  118. while(1)
  119. {
  120. Show_dig(0x99,p); //寫實時數(shù)組
  121. }
  122. }
  123. void exter() interrupt 1
  124. {
  125. TH0=0xdc;
  126. TL0=0x00;
  127. t++;
  128. if(t==20)
  129. {
  130. t=0;
  131. p++;
  132. }
  133. if(p==60)
  134. p=0;
  135. }
  136. /***************************************end***********************************/

復(fù)制代碼


51單片機-12864液晶顯示程序.doc

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

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

使用道具 舉報

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

本版積分規(guī)則

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

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

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