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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 20498|回復: 12
打印 上一主題 下一主題
收起左側

12864串口接線方式與實例程序分享

  [復制鏈接]
跳轉到指定樓層
樓主
百度了好長時間都沒有找到帶字庫的12864使用串口如何接線,后來參閱了一下12864的產品說明,終于摸索出來了,本人是剛入門單片機,還有好多的不懂的,我把接線的方式還有實例程序分享出來,只要對大家有一丁點的幫助就滿足了。首先看引腳定義

  RS=CS;   R/W=SID;  E=CLK; FSB高電平為并行接口,用并口時接高電平,FSB接低電平時為串口,高低電平可以直接接VCC或者GND也可以用軟件去控制,實現并口和串口的切換。RET不接線也能使用,用串口時除了DB0--DB7就不再使用外,其他的接口按手冊上說明使用。下面是測試代碼,也是參閱從51黑電子論壇的不過有些錯誤無法顯示,已經更改。
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint  unsigned int
  5. sbit CS=P3^5;     //片選信號
  6. sbit SID=P3^6;  //數據信號
  7. sbit SCLK=P3^4;  //時鐘信號
  8. sbit RST=P2^2;  //復位信號
  9. sbit CH = P3^7;  //并行、串行選擇信號
  10. /********************************************************************
  11. * 名稱 : delay()
  12. * 功能 : 延時,延時時間為 100us * t。這是通過軟件延時,有一定誤差。
  13. * 輸入 : t
  14. * 輸出 : 無
  15. ***********************************************************************/
  16. void delay(unsigned int t)
  17. {
  18. unsigned int i,j;
  19. for(i=0; i<t;  i++)
  20.     for(j=0; j<10; j++);
  21. }
  22. /********************************************************************
  23. * 名稱 : sendbyte()
  24. * 功能 : 按照液晶的串口通信協議,發送數據
  25. * 輸入 : zdata
  26. * 輸出 : 無
  27. ***********************************************************************/
  28. void sendbyte(unsigned char zdata)
  29. {
  30. unsigned int i;
  31. for(i=0; i<8; i++)
  32. {
  33.   if((zdata << i) & 0x80)
  34.   {
  35.    SID = 1;
  36.   }
  37.   else
  38.   {
  39.    SID = 0;
  40.   }
  41.   SCLK = 0;
  42.   SCLK = 1;
  43. }
  44. }
  45. /********************************************************************
  46. * 名稱 : write_com()
  47. * 功能 : 寫串口指令
  48. * 輸入 : cmdcode
  49. * 輸出 : 無
  50. ***********************************************************************/
  51. void write_com(unsigned char cmdcode)
  52. {
  53. CS = 1;
  54. sendbyte(0xf8);
  55. sendbyte(cmdcode & 0xf0);
  56. sendbyte((cmdcode << 4) & 0xf0);
  57. delay(2);
  58. }
  59. /********************************************************************
  60. * 名稱 : write_data()
  61. * 功能 : 寫串口指令
  62. * 輸入 : cmdcode
  63. * 輸出 : 無
  64. ***********************************************************************/
  65. void write_data(unsigned char Dispdata)
  66. {
  67. CS = 1;
  68. sendbyte(0xfa);
  69. sendbyte(Dispdata & 0xf0);
  70. sendbyte((Dispdata << 4) & 0xf0);
  71. delay(2);
  72. }
  73. /********************************************************************
  74. * 名稱 : lcdinit()
  75. * 功能 : 初始化函數
  76. * 輸入 : cmdcode
  77. * 輸出 : 無
  78. ***********************************************************************/
  79. void lcdinit()
  80. {  
  81. RST = 0;
  82. delay(100);
  83. RST = 1;
  84. delay(20000);
  85. write_com(0x30);
  86. delay(50);
  87. write_com(0x0c);
  88. delay(50);
  89. }
  90. /********************************************************************
  91. * 名稱 : hzkdis()
  92. * 功能 : 顯示字符串
  93. * 輸入 : *s
  94. * 輸出 : 無
  95. ***********************************************************************/
  96. void hzkdis(unsigned char code *s)
  97. {  
  98. while(*s > 0)
  99.     {
  100.   write_data(*s);
  101.   s++;
  102.   delay(50);
  103.     }
  104. }

  105. /********************************************************************
  106. * 名稱 : Test()
  107. * 功能 : 顯示子函數
  108. * 輸入 : 無
  109. * 輸出 : 無
  110. ***********************************************************************/
  111. void Test()
  112. {  
  113. write_com(0x03);
  114. delay(50);   

  115. write_com(0x80);
  116. hzkdis("鉛酸電池放電儀");
  117. write_com(0x90);
  118. hzkdis("電壓");
  119. write_com(0x92);
  120. hzkdis("16.8v 13.2v");
  121. write_com(0x98);
  122. hzkdis("  電子愛好者");
  123. }

  124. /********************************************************************
  125. * 名稱 : Main()
  126. * 功能 : 主函數
  127. * 輸入 : 無
  128. * 輸出 : 無
  129. ***********************************************************************/
  130. void Main()
  131. {
  132. CH = 0;
  133. delay(1);
  134. lcdinit();
  135. delay(10);
  136. while(1)
  137. {
  138.   Test();  a++;
  139.   delay(5000);
  140. }
  141. }
復制代碼



評分

參與人數 3黑幣 +56 收起 理由
謝小康4 + 1 淡定
機智勝理智 + 5 贊一個!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:435886 發表于 2018-11-29 17:33 | 只看該作者
MARK,MARK,學習了,小白還是不太明白串行和并行
回復

使用道具 舉報

板凳
ID:436147 發表于 2018-12-17 20:19 | 只看該作者
請教下,如果程序中顯示內容里面的hzkdis("16.8v 13.2v");這兩個電壓值是根據外部電壓測量,采集得到的模擬量,實時變化的,程序該怎么寫
回復

使用道具 舉報

地板
ID:461428 發表于 2019-1-8 22:12 | 只看該作者
編譯都通不過。。。。
回復

使用道具 舉報

5#
ID:461428 發表于 2019-1-8 22:32 | 只看該作者
void write_com(unsigned char cmdcode)。這個cmdcode干啥的  咋來的?
回復

使用道具 舉報

6#
ID:333678 發表于 2019-2-10 16:50 | 只看該作者
學習一下。
回復

使用道具 舉報

7#
ID:59185 發表于 2019-6-2 22:46 | 只看該作者
V0和VOUT怎么接  沒有可變電阻
回復

使用道具 舉報

8#
ID:633290 發表于 2019-10-31 14:53 | 只看該作者
不錯,我用avr,改改下就可以用
回復

使用道具 舉報

9#
ID:164988 發表于 2019-10-31 16:44 | 只看該作者
很好,謝謝分享,就想找12864和19264屏的51驅動程序,
回復

使用道具 舉報

10#
ID:165291 發表于 2019-11-2 08:04 來自觸屏版 | 只看該作者
好使,就是不太會用
回復

使用道具 舉報

11#
ID:165291 發表于 2019-11-2 08:11 來自觸屏版 | 只看該作者
灬chang 發表于 2018-12-17 20:19
請教下,如果程序中顯示內容里面的hzkdis("16.8v 13.2v");這兩個電壓值是根據外部電壓測量,采集得到的模擬 ...

uchar shuzu[];
hzkdis(shuzu[]);
定義個數組試試!
回復

使用道具 舉報

12#
ID:454897 發表于 2019-12-5 19:48 | 只看該作者
你好,請問一下為什么我的背光沒有亮?
回復

使用道具 舉報

13#
ID:878048 發表于 2021-2-5 16:58 | 只看該作者
學習了,這個程序是我見過最簡單的了,程序也少好用贊一個
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕在线观看精品 | 久久久2o19精品 | 欧美成年人视频在线观看 | 国产精品久久久久久久久久久久久久 | 激情在线视频网站 | 性一交一乱一伦视频免费观看 | 国产精品一区二区三区四区五区 | 精品美女视频在线观看免费软件 | 免费av手机在线观看 | 中文字幕一区二区三区四区 | 一级黄色片日本 | www.国产精 | 亚洲欧美中文日韩在线 | 天天操天天玩 | 欧美人人 | 免费黄色片在线观看 | 国产999精品久久久久久 | 亚洲网站在线观看 | 污免费网站| 免费黄色a级毛片 | 人人干人人舔 | 国产美女一区 | 国产精品免费播放 | 免费国产一区二区视频 | 在线日韩中文字幕 | 特黄级国产片 | 亚洲国产成人av好男人在线观看 | 中文字幕在线播放第一页 | 天天在线操 | 精品久久久久久久久久久久久 | 亚洲国产视频一区 | 成人av电影天堂 | 99久久精品国产麻豆演员表 | 欧美黄色小视频 | 懂色中文一区二区三区在线视频 | 99reav| 色婷婷综合久久久久中文一区二区 | 亚洲一区精品在线 | 精品久久不卡 | 久久精品性视频 | 亚洲国产精品成人综合久久久 |