STM32液晶屏驱动程序.docx
- 文档编号:29171142
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:39
- 大小:1.04MB
STM32液晶屏驱动程序.docx
《STM32液晶屏驱动程序.docx》由会员分享,可在线阅读,更多相关《STM32液晶屏驱动程序.docx(39页珍藏版)》请在冰豆网上搜索。
STM32液晶屏驱动程序
附录2
整个设计全部源程序:
/*以下是32x64点阵LED电子显示屏的源程序,采用C语言编写,在KeilμVisionV2.38a(C51.ExeV7.06)以及MedWin3.0版环境下均测试通过。
*/
#include
unsignedintzimo,xx=0;//zimo是字模计数器,xx为分屏显示的时候的字数。
unsignedcharyid,h;//yid为移动计数器,h为行段计数器
unsignedcharcodehanzi[];//汉字字模
unsignedcharBUFF[18],BUFF2[18];//左移显示的缓存
voidqing(void);voidxianshi(void);
voidfen(void);voidzuo(void);
voidin_data(void);//调整数据
voidrxd_data(void);//左移发送数据
voidout_rxd(unsignedchar*d);//分屏、上移发送数据
charcodesw[]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x00};/*8行段码*/
/***********主程序******************/
voidmain(void)
{unsignedcharee;
SCON=0;P1=0;yid=0;zimo=0;
while
(1)
{fen();//分屏显示
for(ee=30;ee>0;ee--)//清屏幕3秒
{qing();}
zuo();//左移显示
for(ee=30;ee>0;ee--)
{qing();}
}
}
/**********清屏幕*******************/
voidqing(void)
{unsignedcharzz,xx=0x0ff;
for(zz=33;zz>0;zz--)
{out_rxd(&xx);}
P1=0xff;P1=0;//锁存为高,74HC595锁存信号
P2=0;//清74LS138的使能端
}
/**********分屏显示***********/
voidfen(void)
{do{xianshi();}while(xx++<=5);//调用单屏显示
xx=0;
}
/************单屏显示*************/
voidxianshi(void)
{unsignedcharii,jj;unsignedintkk,aa;
for(kk=500;kk>0;kk--)//每屏显示500次
{for(ii=1;ii<16;ii+=2)//每个汉字分8行扫描
{for(jj=0;jj<8;jj++)//每次要发送8个汉字的2个字节,发送8次
{aa=(xx*8+jj)*32+ii;
out_rxd(&hanzi[aa]);//从串口输出第1个字的第1字节。
out_rxd(&hanzi[aa-1]);//从串口输出第1个字的第1字节。
}
for(jj=0;jj<8;jj++)//每次要发送8个汉字的2个字节,发送8次
{aa=(xx*8+jj)*32+ii;
out_rxd(&hanzi[aa+16]);//从串口输出第1个字的第17字节。
out_rxd(&hanzi[aa+15]);//从串口输出第1个字的第18字节
}
P2=0x0ff;
P1=0xff;P1=0;//锁存为高,74HC595锁存信号
P2=sw[h];//输出行信号
h++;//行加一
if(h==8)h=0;
}
}
}
/***************左移显示************/
voidzuo(void)
{unsignedchari,d=5;//d为移动的时候一个汉字的扫描显示次数
xianshi();//调用单屏显示
while(zimo<=1450)
{while(yid<16)//数据移位。
{for(i=0;i {for(h=0;h<8;h++)//8行扫描 {in_data();//调整数据 rxd_data();//串口发送数据 P2=sw[h];//送段码 P1=0xff;//锁存为高,595锁存信号 P1=0; } } yid++;//移动一步 } yid=0;zimo=zimo+32;//后移一个字, } zimo=0; } /*************分屏显示的数据发送************/ voidout_rxd(unsignedchar*d)/*从串口发送数据*/ {SBUF=*d;while(! TI);//等待发送完毕 TI=0; } /*******左移显示读取数据并调整**************/ voidin_data(void) {chars,w;unsignedintqqq; for(s=8;s>=0;s--) {w=s+s; qqq=zimo+h+h+s*32; BUFF[w+1]=hanzi[qqq]; BUFF[w]=hanzi[qqq+1]; BUFF2[w+1]=hanzi[qqq+16]; BUFF2[w]=hanzi[qqq+17]; } } /**********左移显示的数据调整发送***************/ voidrxd_data(void)//串行发送数据 {unsignedcharinc,s,tempyid,temp; if(yid<8)inc=0; elseinc=1; for(s=0+inc;s<16+inc;s++)//发送数据 {if(yid<8)tempyid=yid; elsetempyid=yid-8; temp=(BUFF[s]>>tempyid)|(BUFF[s+1]<<(8-tempyid)); SBUF=temp;//把BUFF中的字节从大到小移位相或后发送输出。 while(! TI);TI=0;//等待发送中断 } for(s=0+inc;s<16+inc;s++)//发送8字节数据 {if(yid<8)tempyid=yid; elsetempyid=yid-8; temp=(BUFF2[s]>>tempyid)|(BUFF2[s+1]<<(8-tempyid)); SBUF=temp;//把BUFF中的字节从大到小移位相或后发送输出。 while(! TI);TI=0;//等待发送中断 } } /*************汉字编码信息*************/ unsignedcharcodehanzi[]={/*--文字: 勤--*/ 0xFB,0xBB,0xFA,0x00,0xFB,0xBB,0xFB,0x83,0xC0,0xEF,0xDB,0x01,0xDB,0x6D,0xDB,0x01,0xDB,0xEF,0xDB,0x01,0xDB,0xEF,0xDB,0x83,0xDD,0xEF,0xDD,0x0F,0xD6,0xE0,0xEF,0x7D,/*--文字: 奋--*/ 0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x80,0x00,0xFE,0xBF,0xFD,0xDF,0xF3,0xEF,0x8F,0xF3,0xD0,0x04,0xF7,0x77,0xF7,0x77,0xF0,0x07,0xF7,0x77,0xF7,0x77,0xF0,0x07,0xF7,0xF7,/*--文字: 求--*/ 0xFB,0x7F,0xF7,0x7F,0xF7,0x7F,0xC0,0x01,0xFF,0x7F,0xEF,0x7B,0xF7,0x77,0xFA,0x6F,0xFD,0x7F,0xFB,0x5F,0xF7,0x6F,0x8F,0x77,0xDF,0x79,0xFF,0x7F,0xFF,0x5F,0xFF,0xBF,/*--文字: 实--*/ 0xFF,0x7F,0xFE,0xFF,0x80,0x01,0xDF,0xFD,0xEE,0xEE,0xFE,0xDF,0xFE,0xDF,0xFE,0xF7,0xFE,0xEF,0xFE,0xEF,0xC0,0x01,0xFD,0x7F,0xFB,0xBF,0xF7,0xDF,0xCF,0xE7,0xDF,0xF9,/*--文字: 献--*/ 0xF7,0xEF,0xF7,0xEF,0xE7,0xEF,0xD6,0x00,0xD7,0xEF,0xF7,0xEF,0x81,0x01,0xF7,0x55,0xF7,0x6D,0xF7,0x01,0xEB,0x6D,0xEB,0x01,0xEB,0x6D,0xDD,0x6D,0xDD,0x4D,0xBE,0xBD,/*--文字: 身--*/ 0xFF,0x7F,0xFF,0xBF,0xF0,0x0F,0xF7,0xEF,0xF0,0x0F,0xF7,0xEF,0xB0,0x0F,0xD7,0xEF,0xE7,0xEF,0xF0,0x01,0xF5,0xFF,0xF6,0xFF,0xF7,0x3F,0xF7,0xC7,0xF5,0xF8,0xFB,0xFF,/*--文字: 开--*/ 0xFF,0xFF,0xC0,0x03,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0x80,0x01,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xEF,0xFB,0xEF,0xFB,0xF7,0xFB,0xFB,/*--文字: 拓--*/ 0xFF,0xF7,0xFF,0xF7,0x80,0x37,0xFD,0xF7,0xFD,0xC0,0xFE,0xF7,0xFE,0xD7,0xC0,0x67,0xDE,0xB3,0xDE,0xD4,0xDE,0xF7,0xDE,0xF7,0xDE,0xF7,0xC0,0xF7,0xDE,0xF5,0xFF,0xFB,/*--文字: 桂--*/ 0xFB,0xF7,0xFB,0xF7,0xC0,0x77,0xFB,0xF7,0xFB,0xC0,0xFB,0xF7,0x80,0x33,0xFB,0xE3,0xFB,0xD5,0xFB,0xD5,0xC0,0x76,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0x80,0x37,0xFF,0xF7,/*--文字: 林--*/ 0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,0xC0,0x81,0xFB,0xEF,0xF9,0xE7,0xF1,0xC7,0xEA,0xAB,0xEA,0xAB,0xDB,0x6D,0xBB,0xAE,0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,/*--文字: 工--*/ 0xFF,0xFF,0xFF,0xFF,0xC0,0x01,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x80,0x00,0xFF,0xFF,0xFF,0xFF,/*--文字: 学--*/ 0xF7,0xBB,0xF7,0x77,0xFB,0x77,0xFD,0xFF,0x80,0x01,0xDF,0xFD,0xEF,0xFE,0xF8,0x07,0xFD,0xFF,0xFE,0x7F,0x80,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x5F,0xFF,0xBF,/*--文字: 院--*/ 0xFD,0xFF,0xFB,0xC1,0x80,0x1D,0xBF,0xAD,0xFF,0xED,0xC0,0x75,0xFF,0xED,0xFF,0xED,0x80,0x1D,0xF6,0xDD,0xF6,0xDD,0xF6,0xE9,0xB6,0xF5,0xB7,0x7D,0x8F,0x7D,0xFF,0xBD,/*--文字: 电--*/ 0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xF0,0x01,0xF7,0xBD,0xF7,0xBD,0xF0,0x01,0xF7,0xBD,0xF7,0xBD,0xF0,0x01,0xF7,0xBD,0xDF,0xBF,0xDF,0xBF,0xDF,0xBF,0xC0,0x7F,/*--文字: 计--*/ 0xFB,0xFF,0xFB,0xF7,0xFB,0xEF,0xFB,0xEF,0xFB,0xFF,0xFB,0xFF,0x80,0x21,0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,0xFB,0x6F,0xFB,0xAF,0xFB,0xCF,0xFB,0xEF,0xFB,0xFF,/*--文字: 系--*/ 0xE1,0xFF,0xFE,0x01,0xFF,0xBF,0xFB,0xDF,0xFD,0xEF,0xFE,0x03,0xFF,0x7F,0xFB,0x9F,0xF7,0xEF,0xE0,0x03,0xEF,0x77,0xFF,0x7F,0xF7,0x77,0xEF,0x7B,0xEF,0x5D,0xFF,0xBF,/*--文字: 电--*/ 0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xF0,0x01,0xF7,0xBD,0xF7,0xBD,0xF0,0x01,0xF7,0xBD,0xF7,0xBD,0xF0,0x01,0xF7,0xBD,0xDF,0xBF,0xDF,0xBF,0xDF,0xBF,0xC0,0x7F,/*--文字: 信--*/ 0xFE,0xEF,0xFD,0xEF,0xFD,0xEF,0xC0,0x17,0xFF,0xF7,0xFF,0xF3,0xE0,0x35,0xFF,0xF6,0xE0,0x37,0xFF,0xF7,0xE0,0x37,0xEF,0xB7,0xEF,0xB7,0xEF,0xB7,0xE0,0x37,0xEF,0xB7,/*--文字: 0--*/ 0xFC,0x1F,0xFB,0xEF,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xFB,0xEF,0xFC,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*--文字: 2--*/ 0xFE,0x1F,0xFD,0xEF,0xFB,0xF7,0xFB,0xFF,0xFB,0xFF,0xFD,0xFF,0xFE,0xFF,0xFF,0x7F,0xFF,0xBF,0xFF,0xDF,0xFF,0xEF,0xF0,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*--文字: ---*/ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*--文字: 3--*/ 0xF0,0x0F,0xFB,0xFF,0xFD,0xFF,0xFE,0xFF,0xFC,0x7F,0xFB,0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xFB,0xEF,0xFC,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*--文字: 班--*/ 0xFE,0xFF,0xFE,0xFF,0x82,0xC0,0xEE,0xF7,0xEE,0xF7,0xEE,0xB7,0xEE,0xA1,0x82,0xB7,0xEE,0xD7,0xEE,0xF7,0xEE,0xF7,0xEF,0x47,0xEF,0x70,0x81,0xBD,0xFF,0xDF,0xFF,0xE7,/*--文字: 张--*/ 0xFF,0x7F,0xEF,0x60,0xEF,0x6F,0xF7,0x6F,0xFB,0x6F,0xFD,0x61,0xFF,0x7D,0x80,0x1D,0xFD,0x7D,0xFD,0x61,0xFB,0x6F,0xFB,0x6F,0xF7,0x6F,0x8D,0x6F,0xDE,0x75,0xFF,0x7B,/*--文字: 涛--*/ 0xFE,0xFF,0xFE,0xFB,0xC0,0x17,0xFE,0xF7,0xE0,0x3E,0xFE,0xFD,0x80,0x0D,0xEF,0x7F,0xEF,0x77,0x80,0x3B,0xEF,0xB8,0xEF,0x5B,0xEE,0xEB,0xEE,0xF3,0xEB,0xFB,0xF7,0xFF,/*--文字: 制--*/ 0xDF,0xDF,0xDF,0xDB,0xDF,0xDB,0xDA,0x03,0xDB,0xDB,0xDB,0xDD,0xD8,0x00,0xDB,0xDF,0xDB,0xDF,0xDA,0x03,0xDA,0xDB,0xDE,0xDB,0xDE,0x9B,0xDF,0x5B,0xD7,0xDF,0xEF,0xDF,/*--文字: 作--*/ 0xFF,0x6F,0xFF,0x6F,0xFF,0x6F,0x80,0x77,0xFE,0xB7,0xFE,0xB3,0xFE,0xD5,0xE0,0xE6,0xFE,0xF7,0xFE,0xF7,0xFE,0xF7,0xC0,0xF7,0xFE,0xF7,0xFE,0xF7,0xFE,0xF7,0xFE,0xF7,/*--文字: 谢--*/ 0xEF,0x7F,0xEF,0xBD,0xEE,0x13,0xEE,0xDB,0x80,0x1F,0xEE,0xDF,0xEC,0x18,0xEA,0xDB,0xEA,0x0B,0xEE,0x7B,0xEE,0xBB,0xEE,0xAB,0xEE,0xD3,0xEE,0xEB,0xEA,0xB7,0xF7,0x7F,/*--文字: 谢--*/ 0xEF,0x7F,0xEF,0xBD,0xEE,0x13,0xEE,0xDB,0x80,0x1F,0xEE,0xDF,0xEC,0x18,0xEA,0xDB,0xEA,0x0B,0xEE,0x7B,0xEE,0xBB,0xEE,0xAB,0xEE,0xD3,0xEE,0xEB,0xEA,0xB7,0xF7,0x7F,/*--文字: 各--*/ 0xFF,0xDF,0xFF,0xDF,0xF0,0x1F,0xFB,0xCF,0xFB,0xB7,0xFD,0xB9,0xFE,0x7F,0xF9,0x9F,0x87,0xE7,0xD0,0x08,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xF0,0x0F,0xFF,0xFF,/*--文字: 位--*/ 0xFF,0x6F,0xFC,0xCF,0xFD,0xF7,0xC0,0x17,0xFF,0xFB,0xF7,0xD3,0xE7,0xB5,0xF7,0xB5,0xF7,0x76,0xFB,0x77,0xFB,0x77,0xFB,0xF7,0xFD,0xF7,0x80,0x07,0xFF,0xF7,0xFF,0xFF,/*--文字: 老--*/ 0xFF,0xBF,0xEF,0xBF,0xC0,0x01,0xEF,0xBF,0xF7,0xBF,0xFB,0xBF,0x80,0x00,0xFE,0x7F,0xFF,0xBF,0xF3,0xCF,0xFC,0xD3,0xFF,0x1C,0xDF,0xDF,0xDF,0xDF,0xC0,0x3F,0xFF,0xFF,/*--文字: 师--*/ 0xFF,0xEF,0x80,0x2F,0xFB,0xED,0xFB,0xED,0x80,0x2D,0xBB,0xAD,0xBB,0xAD,0xBB,0xAD,0xBB,0xAD,0xBB,0xB5,0xAB,0xB5,0xDB,0xB7,0xFB,0xFB,0xFB,0xFD,0xFB,0xFE,0xFB,0xFF,/*--文字: ! --*/ 0xFE,0x3F,0xFC,0x1F,0xFC,0x1F,0xFC,0x1F,0xFC,0x1F,0xFC,0x1F,0xFC,0x1F,0xFE,0x3F,0xFE,0x3F,0xFF,0x7F,0xFF,0xFF,0xFF,0x7F,0xFE,0x3F,0xFE,0x3F,0xFF, 0x7F,0xFF,0xFF}; stm32_19264液晶LCD驱动程序 /****************************lcd.h********************************************/ #ifndef__LCD_H #define__LCD_H #include"sys.h" #defineLCD_RS PFout(0)//PF.0 #defineLCD_E PFout (1)//PF.1 #defineLCD_CS1PFout (2)//PF.2 #defineLCD_RSTPFout(3)//PF.3 #defineLCD_CS2PFout(4)//PF.4 #defineLCD_CS3PFout(5)//PF.5 #defineLCD_DATA(x) GPIOE->ODR=(GPIOB->ODR&0x807F)|((x&0x00FF)<<7)//PE7~14,作为数据线 #defineLCD_PAGE_ADDR0xb8 #defineLCD_COL_ADDR 0x40 voidLCDPortSet(void);//LCDIO口配置 voidLcdInit(void); //初始化程序 voidLcdClear(void);//清屏程序 voidWriteChr16x16(u8pag,u8col,u8 *chr);//写一个汉字 #endif /******************************************************lc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM32 液晶屏 驱动程序
![提示](https://static.bdocx.com/images/bang_tan.gif)