希望提供给我1602液晶的驱动程序
那位老兄有能够使用的1602B液晶的驱动程序,还望给小弟提供一下,网站上提供的我调试不出来,我自己写的呢?在VMLAB上能仿真,但是速度只有32K而且也不好,希望能提供给我1602B驱动程序,并且代码说明要详细!谢谢 网站上 的我 测试过,没有问题啊
http://cache.amobbs.com/bbs_upload782111/files_3/armok0161107.jpg 非原创,摘自《AVR单片机与CPLD/FPGA综合应用入门》,可以使用!
希望对你有帮助!
LCD.h:
#define LCDPORT PORTB//数据总线接在PB口
#define LCDDDR DDRB
#define LCDPIN PINB
#define En_H sbi(PORTD,5)//En接PD5
#define En_L cbi(PORTD,5)
#define RW_R sbi(PORTD,4)//R/W接PD4
#define RW_W cbi(PORTD,4)
#define RS_H sbi(PORTD,3)//RS接PD3
#define RS_L cbi(PORTD,3)
#define DelaytE delay(10)
#define Clear_Screen Write_Command(0x01)
void delay(uint16_t time)
{
while(time>0)
{time--;}
}
void En_Toggle(void)//产生一个使能脉冲
{
En_H;
DelaytE;
En_L;
DelaytE;
}
/*不断检测LCD的忙标志BF,直到其为0,表示可以执行下一条指令*/
void Wait_Until_Ready(void)
{
RW_R;//读状态
RS_L;//读状态位
LCDDDR=0x00;//输入
LCDPORT=0x00;
En_H;
DelaytE;
loop_until_bit_is_clear(LCDPIN,7);//不断循环,直至BF=0
En_L;
}
void Write_Command(uint8_t Command)//向LCD写入命令字
{
RW_W;//写状态
RS_L;//写入命令字
LCDDDR=0xFF;//输出
LCDPORT=Command;
En_Toggle();
Wait_Until_Ready();
}
void Write_Data(uint8_t Data)//写入数据
{
RW_W;
RS_H;//写入数据
LCDDDR=0xFF;
LCDPORT=Data;
En_Toggle();
Wait_Until_Ready();
}
void Write_Position(uint8_t row,uint8_t colum)//设字符位置
{
uint8_t p;
if(row==1)
{p=0x80+colum-1;
Write_Command(p);
}
else
{p=0xC0+colum-1;
Write_Command(p);
}
}
void Write_String(uint8_t *s)//写入字符串
{
for(;*s!='\0';s++) Write_Data(*s);
}
void Initialize_LCD(void)//LCD初始化
{
DDRD=0xFF;//PD口,输出,控制信号
Write_Command(0x38);
Write_Command(0x06);
Write_Command(0x0C);
Clear_Screen;
} 希望能提供给我1602B驱动程序,并且代码说明要详细!!!!!
希望提这种要求的帖子的人,自己先提供一份。 试试我修改的吧!点击此处下载armok0161706.rar 我刚刚上传了一份,有详细的说明,希望对你有帮助!
http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=485345&bbs_page_no=1&bbs_id=1000 在五楼的兄弟所说的乱码主要是该程序要求赋值的是字符串,而不是123等字符!
应该将想显示的东西转换为字符串的形式!比如说 1 应该输入的为‘1’~~~~~~ 要是用mega16等单片机,用系统的库文件就可以直接显示了,包含lcd.h头文件即可。 我也是过来找这个驱动的,明天开始调试。谢谢
页:
[1]