做毕业设计c语言不太会,有个基于51单片机ds1302的1602显示驱动程序帮忙改下

/******************************************************************************///LCD... /******************************************************************************/
//LCD驱动(1602L液晶显示屏并口驱动程序)
/******************************************************************************/
void chk_busy(){//检查忙位(底层)
RS=0;
RW=1;
E=1;
Lcd_Bus=0xff;
while((Lcd_Bus&0x80)==0x80);
E=0;
}
/******************************************************************************/
void write_com(unsigned char cmdcode){//写命令到LCD(底层)
chk_busy();
RS=0;
RW=0;
E=1;
Lcd_Bus=cmdcode;
E=0;
}
/******************************************************************************/
void write_data(unsigned char Dispdata){//写数据到LCD(底层)
chk_busy();
RS=1;
RW=0;
E=1;
Lcd_Bus=Dispdata;
E=0;
}
/******************************************************************************
//初始化LCD屏(被调用层)
/******************************************************************************/
void lcm_init(void){
write_com(0x30); //选择8bit数据流
write_com(0x0c); //开显示(无游标、不反白)
write_com(0x01); //清除显示,并且设定地址指针为00H
}
/******************************************************************************
//向LCM发送一个字符串,长度64字符之内。(被调用层)
/*****************************************************************************/
void lcm_w_word(unsigned char *s){//应用例:lcm_w_word("您好!");
while(*s>0){
write_data(*s);
s++;
}
}
/******************************************************************************
//写指令或数据(被调用层)
/******************************************************************************/
void lcm_w_test(bit i,unsigned char word){
if(i == 0){
write_com(word);//写指令或数据(0,指令)
}else{
write_data(word);//写指令或数据(1,数据)
}
}
/******************************************************************************

/******************************************************************************
//指定显示位置// (设置LCD显示的起始位置)(被调用层)
/******************************************************************************/
void LCD_set_xy( unsigned char x, //X为行(1~4)
unsigned char y ){ //Y为列(0~7)
unsigned char address;
switch(x){
case 0: address = 0x80 + y; break;
case 1: address = 0x80 + y; break;
case 2: address = 0x90 + y; break;
case 3: address = 0x88 + y; break;
case 4: address = 0x98 + y; break;
default:address = 0x80 + y; break;
}
lcm_w_test(0, address);
}
展开
 我来答
宇宙跳跃
2012-05-26 · 超过23用户采纳过TA的回答
知道答主
回答量:89
采纳率:100%
帮助的人:40.3万
展开全部
使能端E之间最好延时,初始化时写一下输入方式,第二行好像是0xc0
勤安锅J
2012-05-31
知道答主
回答量:2
采纳率:0%
帮助的人:2.9万
展开全部
我现在也再做这个,程序能发给我么,我的qq 237061586 真的很着急,谢谢你了。
更多追问追答
追问
我有改好的,不过为什么要给你啊,你给我50积分我就给你发一个,我也是花了代价找人改的
追答
分有,但你的保证我能硬件通过吧,我是最小系统的开发板,1602已经定义好了。我估计你得把程序改一下,你看行么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式