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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

12864B串行通訊stm32源程序和原理圖

  [復制鏈接]
跳轉到指定樓層
樓主
最近弄了個12864串行通訊顯示,如附件,供大家交流學習。

12864液晶屏的stm32單片機驅動源碼和原理圖下載:
12864B串行通訊stm32源程序和原理圖.rar (1.43 MB, 下載次數: 477)





STM32F103系列 串行點亮LCD12864B部分源程序預覽:
  1. #include "12864.h"
  2. #include "delay.h"        


  3. #define uchar unsigned char
  4. #define uint  unsigned int




  5. uchar const TABLE[]=
  6.    {   
  7.     0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,         
  8.     0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,         
  9.     0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,        
  10.     0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,      
  11.   };


  12. void SendByte(uchar Dbyte)   
  13. {   
  14.       uchar i;   
  15.       for(i=0;i<8;i++)   
  16.       {   
  17.                          GPIO_ResetBits(LCD_CLK);
  18.                         if(Dbyte&0x80)
  19.                                  GPIO_SetBits(LCD_DATA);
  20.                          else
  21.                                  GPIO_ResetBits(LCD_DATA);
  22.                          Dbyte=Dbyte<<1;      
  23.                    delay_us(10);        
  24.                         GPIO_SetBits(LCD_CLK);
  25.                         delay_us(10);        
  26.                         GPIO_ResetBits(LCD_CLK);
  27.                          delay_us(10);
  28.       }   
  29. }  


  30. uchar ReceiveByte(void)
  31. {
  32.       uchar i,temp1,temp2;
  33.      temp1 = 0;
  34.       temp2 = 0;
  35.       for(i=0;i<8;i++)
  36.       {
  37.             temp1=temp1<<1;
  38.             GPIO_ResetBits(LCD_CLK);
  39.                     delay_us(10);
  40.             GPIO_SetBits(LCD_CLK);
  41.                    delay_us(10);
  42.             GPIO_ResetBits(LCD_CLK);
  43.             if(GPIO_ReadInputDataBit(LCD_DATA)) temp1++;
  44.       }
  45.       for(i=0;i<8;i++)
  46.       {
  47.             temp2=temp2<<1;
  48.             GPIO_ResetBits(LCD_CLK);
  49.                     delay_us(5);
  50.             GPIO_SetBits(LCD_CLK);
  51.                    delay_us(5);
  52.             GPIO_ResetBits(LCD_CLK);
  53.             if(GPIO_ReadInputDataBit(LCD_DATA)) temp2++;
  54.       }
  55.       return ((0xf0&temp1)+(0x0f&temp2));
  56. }


  57. void CheckBusy(void)
  58. {
  59.       do  SendByte(0xfc);         
  60.      while(0x80&ReceiveByte());        
  61. }


  62. void WriteCommand(uchar Cbyte )   
  63. {   
  64.          GPIO_SetBits(LCD_CS);      
  65.          delay_ms(1);
  66.          SendByte(0xf8);              
  67.          SendByte(0xf0&Cbyte);         
  68.         SendByte(0xf0&Cbyte<<4);     
  69.          GPIO_ResetBits(LCD_CS);
  70.         delay_ms(2);
  71. }


  72. void WriteData(uchar Dbyte )   
  73. {   
  74.       GPIO_SetBits(LCD_CS);  
  75.      delay_ms(1);  
  76.       SendByte(0xfa);              
  77.       SendByte(0xf0&Dbyte);        
  78.       SendByte(0xf0&Dbyte<<4);     
  79.       GPIO_ResetBits(LCD_CS);   
  80.       delay_ms(2);
  81. }


  82. void LCD_GPIO_Config(void)
  83. {
  84.          GPIO_InitTypeDef  GPIO_InitStructure;  
  85.          
  86.          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);
  87.          
  88.          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9; //對結構體的GPIO_Pin對象賦值,聲明要操作的是1,2,3,4端口
  89.          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//對結構體的GPIO_Mode對象賦值,聲明IO口的模式是輸出
  90.          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//對結構體的GPIO_OType對象賦值,聲明IO口的結構是推挽輸出
  91.          GPIO_Init(GPIOB, &GPIO_InitStructure);
  92.          GPIO_ResetBits(GPIOB,GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9);
  93. }


  94. void lcd_init(void)  
  95. {
  96.          LCD_GPIO_Config();
  97.          delay_ms(5);
  98.     //   GPIO_ResetBits(LCD_PSB); //L 串口方式   
  99.          GPIO_ResetBits(LCD_RST); // 復位端,低電位有效        
  100.          delay_ms(100);
  101.          GPIO_SetBits(LCD_RST);         
  102.          delay_ms(5);


  103.         WriteCommand(0x30);      
  104.         WriteCommand(0x30);         
  105.         WriteCommand(0x0C);         
  106.         WriteCommand(0x01);      
  107.         delay_ms(20);
  108.         WriteCommand(0x06);     
  109. }


  110. void LcmClearTXT( void )   
  111. {   
  112.       uchar i;   
  113.       WriteCommand(0x30);      
  114.      WriteCommand(0x80);      
  115.      for(i=0;i<64;i++)   
  116.       WriteData(0x20);   
  117. }   
  118.    


  119. void LcmClearBMP( void )   
  120. {   
  121.       uchar i,j;   
  122.       WriteCommand(0x34);      
  123.      WriteCommand(0x36);      
  124.      for(i=0;i<32;i++)            
  125.      {   
  126.             WriteCommand(0x80|i);      
  127.            WriteCommand(0x80);         
  128.             for(j=0;j<32;j++)           
  129.             WriteData(0);   
  130.       }   
  131. }   
  132.    
  133. void LCD_ShowString(uchar row,uchar col,uchar *puts)   
  134. {   
  135.       WriteCommand(0x30);      
  136.      WriteCommand(TABLE[8*row+col]);      
  137.       while(*puts != '\0')     
  138.       {   
  139.             if(col==8)            
  140.            {              
  141.                   col=0;   
  142.                   row++;   
  143.             }   
  144.             if(row==4) row=0;      
  145.            WriteCommand(TABLE[8*row+col]);   
  146.             WriteData(*puts);      
  147.             puts++;   
  148.             WriteData(*puts);   
  149.             puts++;   
  150.             col++;   
  151.       }   
  152. }


  153. void PutBMP(uchar *puts)   
  154. {   
  155.       uint x=0;   
  156.       uchar i,j;   
  157.       WriteCommand(0x34);        
  158.       WriteCommand(0x36);        
  159.       for(i=0;i<32;i++)               
  160.       {   
  161.             WriteCommand(0x80|i);        
  162.             WriteCommand(0x80);        
  163.             for(j=0;j<32;j++)         
  164.             {            
  165.                  WriteData(puts[x]);   
  166.                   x++;   
  167.             }   
  168.       }   
  169. }   


  170. void DisplayDots(uchar DotByte)   
  171. {   
  172.       uchar i,j;   
  173.       WriteCommand(0x34);      
  174.      WriteCommand(0x36);         
  175.       for(i=0;i<32;i++)               
  176.      {   
  177.             WriteCommand(0x80|i);        
  178.             WriteCommand(0x80);        
  179.             for(j=0;j<32;j++)         
  180.             {           
  181.                WriteData(DotByte);                     
  182.             }   
  183.             DotByte=~DotByte;   
  184.       }   
  185. }
復制代碼



評分

參與人數 2黑幣 +6 收起 理由
訇雨由此 + 1 很好 就是沒給硬件連接,希望大佬解答硬件.
wxq987113431 + 5 很給力!

查看全部評分

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

使用道具 舉報

沙發
ID:79034 發表于 2016-11-21 08:25 | 只看該作者
謝謝樓主分享,下載了就頂貼,養成良好的習慣。
回復

使用道具 舉報

板凳
ID:146960 發表于 2017-5-3 16:55 | 只看該作者
DB0到D87定以在那個口?
回復

使用道具 舉報

地板
ID:146960 發表于 2017-5-3 16:56 | 只看該作者
DB0-7定義在哪個口?
回復

使用道具 舉報

5#
ID:167529 發表于 2017-6-21 01:08 | 只看該作者
謝謝樓主
回復

使用道具 舉報

6#
ID:239119 發表于 2017-10-13 11:17 | 只看該作者
謝謝樓主分享
回復

使用道具 舉報

7#
ID:277370 發表于 2018-7-5 17:12 | 只看該作者
學習學習,可惜沒分下載
回復

使用道具 舉報

8#
ID:296216 發表于 2018-7-11 20:10 | 只看該作者
大佬 我想問一下那個硬件連接和引腳定義是什么吶?
回復

使用道具 舉報

9#
ID:294123 發表于 2018-7-22 11:03 | 只看該作者
謝謝樓主 F103C8已經下載進去了
回復

使用道具 舉報

10#
ID:377502 發表于 2018-7-22 19:17 | 只看該作者
正好趕上用 謝謝分享
回復

使用道具 舉報

11#
ID:221557 發表于 2018-7-28 16:30 | 只看該作者
沒時間寫了,正好要用到,
回復

使用道具 舉報

12#
ID:393176 發表于 2018-9-3 21:06 | 只看該作者
東西不錯,謝謝分享
回復

使用道具 舉報

13#
ID:254431 發表于 2018-9-11 20:32 | 只看該作者
頂一下,最近在學習
回復

使用道具 舉報

14#
ID:389852 發表于 2018-9-29 11:13 | 只看該作者
感謝啊,正好需要,stm剛入手
回復

使用道具 舉報

15#
ID:393181 發表于 2018-11-2 15:06 | 只看該作者
沒點亮是什么原因呢,程序沒改直接測試的
回復

使用道具 舉報

16#
ID:143930 發表于 2019-1-30 11:38 | 只看該作者
非常感謝,正在學習這方面的。
回復

使用道具 舉報

17#
ID:474348 發表于 2019-1-31 14:36 | 只看該作者
謝謝分享
回復

使用道具 舉報

18#
ID:496679 發表于 2019-3-23 14:12 來自觸屏版 | 只看該作者
誰有程序給我發一下,我自己寫了好久.都沒出來,謝謝大佬,郵箱596752284@qq.com
回復

使用道具 舉報

19#
ID:514580 發表于 2019-4-17 14:53 | 只看該作者
非常需要,正在學習中
回復

使用道具 舉報

20#
ID:530137 發表于 2019-5-7 22:48 | 只看該作者
最近電設要用到這個,學習一下!
回復

使用道具 舉報

21#
ID:197515 發表于 2019-6-30 10:42 | 只看該作者
感謝分享,成功點亮12864B串行通訊。樓上沒點亮的注意跳線,有個跳線是選擇串行通訊還是并行通訊,我的屏是R9R10為跳點,這里用的是串行通訊。包括樓上還有問D0-D7,那并行通訊方式才用到的,串行不需要。多看產品資料啊,樓主的壓縮包里也包含了12864B的文檔。
回復

使用道具 舉報

22#
ID:463265 發表于 2019-7-1 16:55 | 只看該作者
下載來學習學習
回復

使用道具 舉報

23#
ID:587963 發表于 2019-7-22 09:43 | 只看該作者
厲害,
回復

使用道具 舉報

24#
ID:593999 發表于 2019-8-2 11:33 | 只看該作者

您好
我想問一下關于12864B的問你
如果你看到麻煩加我QQ1963664468,非常感謝
回復

使用道具 舉報

25#
ID:545952 發表于 2019-8-3 01:22 | 只看該作者
謝謝樓主分享
回復

使用道具 舉報

26#
ID:381820 發表于 2019-8-5 10:06 | 只看該作者
剛入手32學習
回復

使用道具 舉報

27#
ID:136633 發表于 2019-8-26 17:21 | 只看該作者
謝謝分享
回復

使用道具 舉報

28#
ID:86901 發表于 2019-12-23 14:15 | 只看該作者
謝謝!!!很給力!
回復

使用道具 舉報

29#
ID:658039 發表于 2019-12-24 18:54 | 只看該作者
程世龍 發表于 2017-5-3 16:56
DB0-7定義在哪個口?

標題已經說了,是用串口,PB0~7是并口,就不用定義。
回復

使用道具 舉報

30#
ID:694424 發表于 2020-2-17 19:06 | 只看該作者
我也是來找原因的,,,,51那邊可以用。。。換了STM電壓不一樣就不好搞
回復

使用道具 舉報

31#
ID:473635 發表于 2020-3-20 16:36 | 只看該作者
感謝分享,現在正好有用到這個資料
回復

使用道具 舉報

32#
ID:252148 發表于 2020-6-18 10:56 | 只看該作者

正好趕上用 謝謝分享
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 超碰成人免费观看 | 国产精品久久久久久久久大全 | 亚洲国产成人精品女人久久久 | 国产一级电影在线 | 国产精品一区二区久久 | 91深夜福利视频 | 国产精品久久久久久久 | 国产二区三区 | 亚洲电影在线播放 | 成人婷婷 | 久久不卡区 | 视频在线亚洲 | 亚洲一区二区三区免费视频 | 中文在线亚洲 | 日本黄色影片在线观看 | 天天曰天天曰 | 免费麻豆视频 | 国产精品三级 | 一区二区三区中文字幕 | 在线观看亚洲欧美 | 久久久久久国产精品久久 | 亚洲一区在线日韩在线深爱 | 久久综合伊人一区二区三 | 亚洲免费观看视频网站 | 久久久在线视频 | a在线观看免费 | 91九色在线观看 | www国产成人免费观看视频,深夜成人网 | 激情五月婷婷综合 | 久久精品国产亚洲一区二区 | 欧美乱操| 精品久久一 | 欧美精品1区2区3区 精品国产欧美一区二区 | 成人免费在线小视频 | 日韩手机在线视频 | 99re在线视频 | 五月婷婷在线播放 | 精品久久久久久久久久久久久久久久久 | 男女羞羞在线观看 | 午夜爽爽爽男女免费观看影院 | 丝袜美腿一区二区三区 |