资源简介
基于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 test\HARDWARE\LCD\lcd.c
文件 1165 2012-03-15 19:52 test\HARDWARE\LCD\lcd.h
文件 1221 2012-03-14 09:59 test\HARDWARE\LED\led.c
文件 229 2012-03-09 15:02 test\HARDWARE\LED\led.h
文件 2038 2011-01-12 20:34 test\SYSTEM\delay\delay.c
文件 876 2011-01-12 20:34 test\SYSTEM\delay\delay.h
文件 6885 2011-01-12 20:34 test\SYSTEM\sys\sys.c
文件 3839 2011-01-12 20:34 test\SYSTEM\sys\sys.h
文件 3342 2011-04-17 15:42 test\SYSTEM\usart\usart.c
文件 1054 2011-04-17 15:45 test\SYSTEM\usart\usart.h
文件 148560 2012-03-15 20:17 test\USER\delay.crf
文件 2021 2012-03-15 20:17 test\USER\delay.d
文件 172724 2012-03-15 20:17 test\USER\delay.o
文件 19 2012-03-15 19:32 test\USER\ExtDll.iex
文件 28886 2012-03-15 19:54 test\USER\Jli
文件 154654 2012-03-15 20:17 test\USER\lcd.crf
文件 2017 2012-03-15 20:17 test\USER\lcd.d
文件 180716 2012-03-15 20:17 test\USER\lcd.o
文件 150240 2012-03-15 20:17 test\USER\led.crf
文件 1985 2012-03-15 20:17 test\USER\led.d
文件 173828 2012-03-15 20:17 test\USER\led.o
文件 35249 2012-03-15 20:17 test\USER\STM32F10x.lst
文件 5176 2012-03-15 20:17 test\USER\STM32F10x.o
文件 11307 2009-05-07 14:40 test\USER\STM32F10x.s
文件 152134 2012-03-15 20:17 test\USER\sys.crf
文件 1953 2012-03-15 20:17 test\USER\sys.d
文件 177848 2012-03-15 20:17 test\USER\sys.o
文件 35036 2012-03-15 20:17 test\USER\test.axf
文件 899 2012-03-15 20:17 test\USER\test.c
文件 156353 2012-03-15 20:17 test\USER\test.crf
............此处省略34个文件信息
- 上一篇:PlayMaker_中文手册
- 下一篇:intel ipp6.1 许可证
相关资源
- STM32F103RC+ADC+DMA多通道采样LCD显示
- I2C读写AT24C02 基于STM32F103 cube116540
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- LCD显示温度+串口接收温度.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- Img2Lcd(将图片转换为数组的工具)
- NRF24L01实现51与STM32双向通讯
- 基于c8051f020的AD转换程序及LCD显示程序
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- [免费]msp430f149控制PS2键盘并用1602显示
- stm32官方例程
- STM32F103定时器中断程序
- arm触摸屏与LCD校准程序三点校准法
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- vhdl与lcd1602实现的多控制电子钟
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
评论
共有 条评论