STM32的ST7541驱动


基于STM32F103单片机驱动控制器为ST7541的驱动代码,使用软件为KEIL uVision 4.0
资源截图
代码片段和文件信息
#include 	   
#include “lcd.h“
//#include “pic.h“
void check_busy(void)
{
u8 read_data=0xff;
data_busout(0xff);

GPIOB->CRH&=0X00000000;
GPIOB->CRH|=0X88888888;

CD(0);
RW(1);
CSB(0);
while((read_data&0x80)==0x80)
{
LCDEN(1);
__nop();
__nop();
// delay_us(2);
read_data=data_busin;
LCDEN(0);
}
LCDEN(0);
CSB(1);
GPIOB->CRH&=0X00000000;
GPIOB->CRH|=0X33333333;
}
//写命令到寄存器
void write_com(u8 cmd)
{
check_busy();
CD(0);
CSB(0);
RW(0);
data_busout(cmd);
LCDEN(1);
__nop();
__nop();
// delay_us(2);
LCDEN(0);
__nop();
__nop();
// delay_us(2);
CSB(1);
}
//写数据到DDRAM
void write_data(u8 data)
{
check_busy();
CD(1);
RW(0);
CSB(0);
data_busout(data);
LCDEN(1);
__nop();
__nop();
// delay_us(2);
LCDEN(0);
__nop();
__nop();
// delay_us(2);
CSB(1);
}
//写页地址
void Set_Page_Address(unsigned char dat)
{
u8 temp;
temp=0x0f&dat;
write_com(0xb0|temp);
}
//写列地址
void Set_Colume_Address(unsigned char dat)
{
unsigned char temp;
temp=dat>>4;
temp=0x07&temp;
write_com(0x10|temp);  //送列地址高三位
temp=0x0f&dat; 
write_com(temp);       //送列地址低四位
}
//显示点阵
void Display_Grid(u8 data1u8 data2)
{
u8 ij;
for(i=0;i<16;i++)
{
Set_Page_Address(i);
Set_Colume_Address(0x00);
for(j=0;j<64;j++)
{
write_data(data1);
write_data(data1);
write_data(data2);
write_data(data2);
}
}
}
//设置页列地址
//说明:X为地址(值0~16),y为列地址(值0~128列)
void Set_XY_Address(u8 xu8 y)
{
Set_Page_Address(x);
Set_Colume_Address(y);
}

//清屏幕
void LCD_CLR(void)
{
unsigned char ij;
for(i=0;i<0x10;i++)
{
Set_XY_Address(i0);
for(j=0;j<0x80;j++)
{
write_data(0x00);
write_data(0x00);
}
}
}
//显示图形
//说明:此函数已经假设了pic数组大小为128*16=2048
void Display_Picture(u8  *pic)
{
unsigned char ij;
for(i=0;i<0x10;i++)   //写16页数据
{
Set_Page_Address(i);
Set_Colume_Address(0x00);
for(j=0;j<0x80;j++)   //写128列数据
{
write_data(*(pic+0x80*i+j));
write_data(*(pic+0x80*i+j));
}
}
}
//显示汉字(位置:x0y0 字体大小:xy 行列数:ylxl)
// 说明:
// 位置:x0为页地址(0~15),y0为列地址(0~127)
// 字体大小:x为16列(汉字大小为16X16竖直方向为16列);y为2页,其值为2
// 对于英文和数字,大小为宽X高=8X16,因此x=8,y=2
void Display_Chinese(u8 x0u8 y0u8 xu8 yu8 xlu8 ylu8 *chn)
{
unsigned char ijnm;
for(n=0;n
for(m=0;m {
for(i=0;i {
Set_XY_Address(x0+i+n*yy0+m*x); //设置地址,每个汉字之间有间隔
for(j=0;j {
write_data(*(chn+j+x*i+m*x*y+n*xl*x*y));
write_data(*(chn+j+x*i+m*x*y+n*xl*x*y));
}

}
}
}


//显示ASCII码(8X16点阵)
void Display_Char(u8 x0u8 y0u8 *pt)
{
unsigned char ij;
for(i=0;i<2;i++)    //执行两次,写完一个ASCII码
{
Set_XY_Address(x0+iy0);
for(j=0;j<8;j++) //执行一次,写完一列宽X高=1*8的最小操作单元,执行八次写完一个ASCII码上半部分
{
write_data(*(pt+j+8*i));
write_data(*(pt+j

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       9239  2012-03-15 19:53  testHARDWARELCDlcd.c

     文件       1165  2012-03-15 19:52  testHARDWARELCDlcd.h

     文件       1221  2012-03-14 09:59  testHARDWARELEDled.c

     文件        229  2012-03-09 15:02  testHARDWARELEDled.h

     文件       2038  2011-01-12 20:34  testSYSTEMdelaydelay.c

     文件        876  2011-01-12 20:34  testSYSTEMdelaydelay.h

     文件       6885  2011-01-12 20:34  testSYSTEMsyssys.c

     文件       3839  2011-01-12 20:34  testSYSTEMsyssys.h

     文件       3342  2011-04-17 15:42  testSYSTEMusartusart.c

     文件       1054  2011-04-17 15:45  testSYSTEMusartusart.h

     文件     148560  2012-03-15 20:17  testUSERdelay.crf

     文件       2021  2012-03-15 20:17  testUSERdelay.d

     文件     172724  2012-03-15 20:17  testUSERdelay.o

     文件         19  2012-03-15 19:32  testUSERExtDll.iex

     文件      28886  2012-03-15 19:54  testUSERJlinkLog.txt

     文件     154654  2012-03-15 20:17  testUSERlcd.crf

     文件       2017  2012-03-15 20:17  testUSERlcd.d

     文件     180716  2012-03-15 20:17  testUSERlcd.o

     文件     150240  2012-03-15 20:17  testUSERled.crf

     文件       1985  2012-03-15 20:17  testUSERled.d

     文件     173828  2012-03-15 20:17  testUSERled.o

     文件      35249  2012-03-15 20:17  testUSERSTM32F10x.lst

     文件       5176  2012-03-15 20:17  testUSERSTM32F10x.o

     文件      11307  2009-05-07 14:40  testUSERSTM32F10x.s

     文件     152134  2012-03-15 20:17  testUSERsys.crf

     文件       1953  2012-03-15 20:17  testUSERsys.d

     文件     177848  2012-03-15 20:17  testUSERsys.o

     文件      35036  2012-03-15 20:17  testUSER est.axf

     文件        899  2012-03-15 20:17  testUSER est.c

     文件     156353  2012-03-15 20:17  testUSER est.crf

............此处省略34个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)