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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

stm32串行控制lcd12864液晶顯示器 程序

  [復制鏈接]
跳轉到指定樓層
樓主
   手里有一塊12864的液晶顯示器,今天拿起來用stm32F103做了一個工程,方便大家參考,希望對大家能夠有用。PDF文檔僅共參考,我使用的LCD的核心與pdf上的有所不同。






  1. #include "12864.h"

  2. GPIO_InitTypeDef GPIO_InitStructure;
  3. void Delay(__IO uint32_t nCount)
  4. {
  5.    for(; nCount != 0; nCount--);
  6. }


  7. void send_dat(unsigned char dat)
  8. {
  9.     unsigned char i;
  10.         //GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  11.     for(i=0;i<8;i++)
  12.     {
  13.                 if((dat&0x80)==0x80) SID_1;
  14.                 if((dat&0x80)==0x00) SID_0;
  15.         CLK_0;
  16.                 Delay(35);
  17.         CLK_1;
  18.                 dat<<=1;
  19.     }
  20. }


  21. unsigned char get_byte()
  22. {
  23.      unsigned char i,temp1=0,temp2=0;
  24.          //GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;     
  25.      for(i=0;i<8;i++)   
  26.      {   
  27.            temp1=temp1<<1;   
  28.            CLK_0;  
  29.                    Delay(25);
  30.            CLK_1;  
  31.                    Delay(20);              
  32.            CLK_0;   
  33.            if(GPIO_ReadOutputDataBit(GPIOE,GPIO_Pin_3)) temp1++;   
  34.      }   
  35.      for(i=0;i<8;i++)   
  36.      {   
  37.            temp2=temp2<<1;   
  38.            CLK_0;  
  39.                    Delay(25);  
  40.            CLK_1;
  41.                    Delay(25);   
  42.            CLK_0;   
  43.            if(GPIO_ReadOutputDataBit(GPIOE,GPIO_Pin_3))  temp2++;   
  44.      }   
  45.          //GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  46.      return ((0xf0&temp1)+(0x0f&temp2));   
  47. }

  48. void check_busy()
  49. {
  50.     do
  51.     {
  52.         send_dat(0xfc);
  53.     }
  54.     while((get_byte()&0x8000)==0x8000);
  55. }

  56. void send_cmd(unsigned char cmd)
  57. {
  58.     check_busy();
  59.     send_dat(0xf8);    //
  60.     send_dat(cmd&0xf0); //
  61.     send_dat((cmd&0x0f)<<4); //
  62. }

  63. void write_char(unsigned char dat)
  64. {
  65.     check_busy();
  66.     send_dat(0xfa);//rw=0;rs=1
  67.     send_dat(dat&0xf0);
  68.     send_dat((dat&0x0f)<<4);
  69. }

  70. void lcd_clear()        //清除顯示
  71. {
  72.     send_cmd(0x01);
  73. }


  74. void lcd_pos(unsigned char y_add , unsigned char x_add)
  75. {
  76.     switch(y_add)
  77.     {
  78.         case 1:
  79.         send_cmd(0X80|x_add);break;
  80.         case 2:
  81.         send_cmd(0X90|x_add);break;
  82.         case 3:
  83.         send_cmd(0X88|x_add);break;
  84.         case 4:
  85.         send_cmd(0X98|x_add);break;
  86.         default:break;
  87.     }   
  88. }


  89. void lcd_wstr(unsigned char y_add , unsigned char x_add , unsigned char *str)    //
  90. {
  91.     unsigned char i;
  92.     lcd_pos(y_add , x_add);
  93.     for(i=0;str[i]!='\0';i++)
  94.     {
  95.         write_char(str[i]);  
  96.     }

  97. }

  98. void write_figer(unsigned char y_add , unsigned char x_add , unsigned int figer)//在任何位置寫數字
  99. {
  100.     unsigned char d[5],i,j;
  101.     lcd_pos(y_add , x_add);
  102.     d[4]=figer%10;
  103.     d[3]=figer%100/10;
  104.     d[2]=figer%1000/100;
  105.     d[1]=figer%10000/1000;
  106.     d[0]=figer/10000;
  107.     for(i=0;i<5;i++)
  108.     {
  109.         if(d[i]!=0)break;
  110.     }

  111.     if(i==5)i--;

  112.     if(i==4)send_dat(0x30);//數據裝完,準備發送

  113.     for(j=i;j<5;j++)
  114.     {
  115.        send_dat(d[j]|0x30);//取得的數字加上0x30也即得到該數字的ASCII碼,再將該數字發送去顯示
  116.     }

  117. }

  118. void lcd_init()     //
  119. {  

  120.     Delay(0xfff);
  121.     send_cmd(0x30);
  122.     send_cmd(0x0C);//0000,1100 整體顯示,游標off,游標位置off
  123.     send_cmd(0x01);//0000,0001 清DDRAM
  124.     send_cmd(0x02);//0000,0010 DDRAM地址歸位
  125.     send_cmd(0x80);//1000,0000 設定DDRAM 7位地址000,0000到地址計數器A
  126. }


  127. /******************* (C) COPYRIGHT 2011 奮斗STM32 *****END OF FILE****/
復制代碼



12864.zip

1.16 MB, 下載次數: 828, 下載積分: 黑幣 -5

評分

參與人數 2黑幣 +10 收起 理由
00XIAOXU00 + 5 很給力!
shenlan121 + 5 贊一個!

查看全部評分

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

使用道具 舉報

來自 2#
ID:196399 發表于 2017-5-9 19:03 | 只看該作者
從串行時序圖中可以看出,發送一個指令需要三個字節,第一個是0xf8或者0xfa這個根據你要發送的是命令還是數據而定,然后發送下一個數據的高四位和第四位,但是數據都是在高四位上面,用51的話我們要分三次發送,但是32的話一個字節可以是32位的/所以我們一次就能完成,這也是為什么下面的i<24的原因因為最后的8位沒有用,

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

來自 3#
ID:274187 發表于 2018-1-11 15:05 | 只看該作者
請問該模式是串口版硬件配置的程序嗎?   PSB端口沒用到的那個
回復

使用道具 舉報

來自 4#
ID:302850 發表于 2018-8-20 18:38 | 只看該作者
這個似乎是目前為止能找到的最好的12864串行驅動程序了
回復

使用道具 舉報

5#
ID:152510 發表于 2016-12-6 13:36 | 只看該作者
感謝分享
回復

使用道具 舉報

6#
ID:105206 發表于 2016-12-15 04:39 | 只看該作者
謝謝樓主分享,學習了。
回復

使用道具 舉報

7#
ID:143525 發表于 2016-12-15 08:10 | 只看該作者
謝謝分享
回復

使用道具 舉報

8#
ID:159847 發表于 2017-1-4 13:06 | 只看該作者
louzh1iahdahoiewjfiaelbf
回復

使用道具 舉報

9#
ID:45457 發表于 2017-1-28 00:07 | 只看該作者
學習了
回復

使用道具 舉報

10#
ID:165013 發表于 2017-3-11 19:54 | 只看該作者
下來研究研究
回復

使用道具 舉報

11#
ID:190079 發表于 2017-4-16 14:15 | 只看該作者
我按照這個做不顯示
回復

使用道具 舉報

12#
ID:190786 發表于 2017-4-18 13:27 | 只看該作者
感謝樓主分享
回復

使用道具 舉報

13#
ID:148444 發表于 2017-4-18 16:34 | 只看該作者
謝謝分享,學習了
回復

使用道具 舉報

14#
ID:148444 發表于 2017-4-18 16:35 | 只看該作者
謝謝分享,學習了
回復

使用道具 舉報

15#
ID:187303 發表于 2017-4-24 08:09 | 只看該作者
是有些區別 感謝作者的奉獻 可以幫助很多初學者
回復

使用道具 舉報

16#
ID:196399 發表于 2017-5-9 19:03 | 只看該作者
值得擁有!
回復

使用道具 舉報

17#
ID:199351 發表于 2017-5-10 23:37 | 只看該作者
謝謝分享,學習了
回復

使用道具 舉報

18#
ID:199732 發表于 2017-5-11 21:27 | 只看該作者
謝謝樓主分享,學習了。
回復

使用道具 舉報

19#
ID:155842 發表于 2017-7-17 17:36 | 只看該作者
樓主,有硬件原理圖嗎
回復

使用道具 舉報

20#
ID:220577 發表于 2017-7-18 16:09 | 只看該作者
還ok,謝謝分享
回復

使用道具 舉報

21#
ID:222817 發表于 2017-7-28 14:26 | 只看該作者
LCD12864 DB0-DB7是接的哪個Io口
回復

使用道具 舉報

22#
ID:153282 發表于 2017-8-31 11:23 | 只看該作者
謝謝分享
回復

使用道具 舉報

23#
ID:230697 發表于 2017-9-3 15:33 | 只看該作者
謝謝分享,一生平安
回復

使用道具 舉報

24#
ID:77669 發表于 2017-9-12 16:27 | 只看該作者
好東西啊,可惜下載幣不夠
回復

使用道具 舉報

25#
ID:232682 發表于 2017-9-12 17:02 | 只看該作者
不錯,看看
回復

使用道具 舉報

26#
ID:240989 發表于 2017-10-19 16:53 | 只看該作者
謝謝樓主的分享
回復

使用道具 舉報

27#
ID:262564 發表于 2017-12-17 09:33 | 只看該作者
贊一個,順便那個資料
回復

使用道具 舉報

28#
ID:276061 發表于 2018-3-7 15:11 | 只看該作者
看看怎么樣?
回復

使用道具 舉報

29#
ID:295369 發表于 2018-3-22 10:24 | 只看該作者
很給力
回復

使用道具 舉報

30#
ID:197780 發表于 2018-4-3 00:39 | 只看該作者
加油,沒有錢下載啊
回復

使用道具 舉報

31#
ID:197780 發表于 2018-4-3 00:40 | 只看該作者
深夜頂帖,望開源
回復

使用道具 舉報

32#
ID:351564 發表于 2018-6-14 08:45 | 只看該作者
好東西,幫頂,看看參考
回復

使用道具 舉報

33#
ID:346034 發表于 2018-7-15 14:15 | 只看該作者
謝謝樓主分享資源
回復

使用道具 舉報

34#
ID:374464 發表于 2018-7-18 23:26 | 只看該作者
tm32串行控制lcd12864液晶顯示器
回復

使用道具 舉報

35#
ID:281804 發表于 2018-7-20 11:44 | 只看該作者
之前用51做過應用12864點陣液晶屏的東西,現在試試用STM32來
回復

使用道具 舉報

36#
ID:294123 發表于 2018-7-22 00:26 | 只看該作者
學習了 謝樓主
回復

使用道具 舉報

37#
ID:46517 發表于 2018-7-28 11:23 | 只看該作者
黑幣扣了,彈出來,服務器故障,重新點,沒黑幣了,這是咋回事?
回復

使用道具 舉報

38#
ID:380691 發表于 2018-7-30 09:02 | 只看該作者
謝謝lz分享,我一直就沒有搞明白液晶屏咋驅動
回復

使用道具 舉報

39#
ID:382798 發表于 2018-8-6 15:12 | 只看該作者
想下載來學習一下,,黑幣不夠
回復

使用道具 舉報

40#
ID:390544 發表于 2018-8-27 20:44 | 只看該作者
謝謝分享
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品免费 | 中文字字幕一区二区三区四区五区 | 中文字幕亚洲精品 | 久久久久国产视频 | 久久久久亚洲精品 | 国产精品国产馆在线真实露脸 | 91最新视频 | 91在线电影 | 久久免费资源 | 欧美区日韩区 | 中文字幕在线电影观看 | 久久亚洲一区二区三区四区 | 中文字幕在线一区 | 国产日韩欧美 | wwww.8888久久爱站网 | 午夜影院在线观看视频 | 91成人精品 | 亚洲一区二区久久 | 97国产在线观看 | 日韩精品福利 | 亚洲另类春色偷拍在线观看 | 成人av网站在线观看 | av中文在线观看 | xxx国产精品视频 | 中文在线一区 | 欧美激情精品久久久久 | 久久蜜桃av一区二区天堂 | 日韩爱爱网 | 欧美乱大交xxxxx另类电影 | 国产精品一区二区三区四区 | 精品二区| 国产精品久久777777 | 欧美精品一二区 | 成人在线免费电影 | 一区二区在线免费播放 | 日韩免费三级 | 国产精品亚洲成在人线 | 亚洲网在线 | 久久久久国产 | 欧美国产精品 | 中文字幕日韩欧美一区二区三区 |