找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

用stm32F103做12864的液晶顯示器

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:205348 發(fā)表于 2017-5-29 18:45 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
   手里有一塊12864的液晶顯示器,今天拿起來用stm32F103做了一個(gè)工程,方便大家參考,希望對大家能夠有用。PDF文檔僅共參考,我使用的LCD的核心與pdf上的有所不同。






  • #include "12864.h"
  • GPIO_InitTypeDef GPIO_InitStructure;
  • void Delay(__IO uint32_t nCount)
  • {
  •    for(; nCount != 0; nCount--);
  • }
  • void send_dat(unsigned char dat)
  • {
  •     unsigned char i;
  •         //GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  •     for(i=0;i<8;i++)
  •     {
  •                 if((dat&0x80)==0x80) SID_1;
  •                 if((dat&0x80)==0x00) SID_0;
  •         CLK_0;
  •                 Delay(35);
  •         CLK_1;
  •                 dat<<=1;
  •     }
  • }
  • unsigned char get_byte()
  • {
  •      unsigned char i,temp1=0,temp2=0;
  •          //GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  •      for(i=0;i<8;i++)
  •      {
  •            temp1=temp1<<1;
  •            CLK_0;
  •                    Delay(25);
  •            CLK_1;
  •                    Delay(20);
  •            CLK_0;
  •            if(GPIO_ReadOutputDataBit(GPIOE,GPIO_Pin_3)) temp1++;
  •      }
  •      for(i=0;i<8;i++)
  •      {
  •            temp2=temp2<<1;
  •            CLK_0;
  •                    Delay(25);
  •            CLK_1;
  •                    Delay(25);
  •            CLK_0;
  •            if(GPIO_ReadOutputDataBit(GPIOE,GPIO_Pin_3))  temp2++;
  •      }
  •          //GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  •      return ((0xf0&temp1)+(0x0f&temp2));
  • }
  • void check_busy()
  • {
  •     do
  •     {
  •         send_dat(0xfc);
  •     }
  •     while((get_byte()&0x8000)==0x8000);
  • }
  • void send_cmd(unsigned char cmd)
  • {
  •     check_busy();
  •     send_dat(0xf8);    //
  •     send_dat(cmd&0xf0); //
  •     send_dat((cmd&0x0f)<<4); //
  • }
  • void write_char(unsigned char dat)
  • {
  •     check_busy();
  •     send_dat(0xfa);//rw=0;rs=1
  •     send_dat(dat&0xf0);
  •     send_dat((dat&0x0f)<<4);
  • }
  • void lcd_clear()        //清除顯示
  • {
  •     send_cmd(0x01);
  • }
  • void lcd_pos(unsigned char y_add , unsigned char x_add)
  • {
  •     switch(y_add)
  •     {
  •         case 1:
  •         send_cmd(0X80|x_add);break;
  •         case 2:
  •         send_cmd(0X90|x_add);break;
  •         case 3:
  •         send_cmd(0X88|x_add);break;
  •         case 4:
  •         send_cmd(0X98|x_add);break;
  •         default:break;
  •     }
  • }
  • void lcd_wstr(unsigned char y_add , unsigned char x_add , unsigned char *str)    //
  • {
  •     unsigned char i;
  •     lcd_pos(y_add , x_add);
  •     for(i=0;str!='\0';i++)
  •     {
  •         write_char(str);
  •     }
  • }
  • void write_figer(unsigned char y_add , unsigned char x_add , unsigned int figer)//在任何位置寫數(shù)字
  • {
  •     unsigned char d[5],i,j;
  •     lcd_pos(y_add , x_add);
  •     d[4]=figer%10;
  •     d[3]=figer%100/10;
  •     d[2]=figer%1000/100;
  •     d[1]=figer%10000/1000;
  •     d[0]=figer/10000;
  •     for(i=0;i<5;i++)
  •     {
  •         if(d!=0)break;
  •     }
  •     if(i==5)i--;
  •     if(i==4)send_dat(0x30);//數(shù)據(jù)裝完,準(zhǔn)備發(fā)送
  •     for(j=i;j<5;j++)
  •     {
  •        send_dat(d[j]|0x30);//取得的數(shù)字加上0x30也即得到該數(shù)字的ASCII碼,再將該數(shù)字發(fā)送去顯示
  •     }
  • }
  • void lcd_init()     //
  • {
  •     Delay(0xfff);
  •     send_cmd(0x30);
  •     send_cmd(0x0C);//0000,1100 整體顯示,游標(biāo)off,游標(biāo)位置off
  •     send_cmd(0x01);//0000,0001 清DDRAM
  •     send_cmd(0x02);//0000,0010 DDRAM地址歸位
  •     send_cmd(0x80);//1000,0000 設(shè)定DDRAM 7位地址000,0000到地址計(jì)數(shù)器A
  • }
  • /******************* (C) COPYRIGHT 2011 奮斗STM32 *****END OF FILE****/




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

使用道具 舉報(bào)

沙發(fā)
ID:206177 發(fā)表于 2017-5-30 21:40 | 只看該作者
很想學(xué)習(xí)怎么制作的
回復(fù)

使用道具 舉報(bào)

板凳
ID:146960 發(fā)表于 2017-8-26 11:02 | 只看該作者
程序中任意位置寫數(shù)字的函數(shù)不能用呀
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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