资源简介
基于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 许可证
相关资源
- uCOS-III 3.04 +uc-USBD for STM32F4
- stm32取模播放表情包.rar
- 校园一卡通.docx
- MG995舵机基于STM32的驱动源代码
- stm32f103 通过485方式读取数据
- STM32 PMSM电机库 英文版 建议中英文对
- LCD12864B使用
- stm32-PN532串口驱动
- STM32F446程序
- STM32F103程序例程
- 基于STM32F103+SI4463的无线传输工程
- stm32f10x_stdperiph_lib_um.chm
- stm32中文数据手册
- STM32ISP程序烧录工具
- STM32F10xxx最全中文参考手册
- STM32 SPI方式驱动SH1106 OLED屏幕
- STM32-MPU6050DMP欧拉角输出
- 基于STM32的SCARA机器人控制电路研究与
- AD9959驱动代码工程
- STM32L1系列的LoRa驱动
- 基于STM32F407语音芯片程序
- STM32F767数据手册
- stm32f103的stop模式测试例程
- STM32_USB收发例程,内含USB上位机和下
- 基于STM32平台的智能药箱系统包含文件
- Max7219显示程序基于STM32CubeMX
- stm32f103示波器代码LCD屏
- STM32之间的串口通信
- STM32 HAL库版本 4线1602A程序
- STM32F4+W5500 利用SPI_DMA以太网进行通讯
评论
共有 条评论