用89C52单片机驱动1602液晶,怎么才能瞬间显示一行字母?(用汇编和用C,有区别吗)

别人做好的1602驱动程序,是瞬间显示一行(16个字母)而我做的程序是逐字显示。知道是什么原因吗?最好能说下原因... 别人做好的1602驱动程序,是瞬间显示一行(16个字母)
而我做的程序是逐字显示。知道是什么原因吗?
最好能说下原因
展开
 我来答
freego_88
2010-09-05 · 超过30用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:66.3万
展开全部
啥叫瞬间显示啊?

如果是闪一下,可以先显示再擦除。(不过有啥用呢?测试相机?)

如果问题是不知道如何显示,方法一般是:先使能;再进行模块初始化;再写控制字;再写数据;写操作不要忘记判忙(busy=1)。

汇编与c对于但片机没有任何区别,对于使用者,比如你,也不应该有本质的区别。好的工程师是应该知道一条c语句编译出什么样的汇编语句的,所以他们在写c语句的时候是在选择更高效率的语句和结构。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhaoyanchina
2010-09-07
知道答主
回答量:46
采纳率:0%
帮助的人:12.7万
展开全部
#include<reg51.h>
#include <intrins.h>

typedef unsigned char BYTE;
typedef bit BOOL;

sbit LCD_RS = P2^5;
sbit LCD_RW = P2^6;
sbit LCD_EP = P2^7;
char num;
unsigned char code table[]="I Love Yuo";
unsigned char code table1[]="Do You Love Me?";

/*延时程序*/
void delay2(unsigned char i)
{while(--i);}

void delay8(unsigned int t)
{while(--t);}

void delay_50ms(unsigned int i)
{
int j;
while(--i)
for(j=6245;j>0;j--)
{;}
}

BOOL lcd_bz()
{ // 测试LCD忙碌状态
BOOL result;
LCD_RS = 0;
LCD_RW = 1;
LCD_EP = 1;
delay2(2);
result = (BOOL)(P0 & 0x80);
LCD_EP = 0;
return (result);
}

lcd_wcmd(BYTE cmd)
{ // 写入指令数据到LCD
while(lcd_bz());
LCD_RS = 0;
LCD_RW = 0;
LCD_EP = 0;
P0 = cmd;
//delay2(2);
LCD_EP=1;
delay2(4);
LCD_EP=0;
}
/* lcd_pos(BYTE pos)
{ //设定显示位置
lcd_wcmd(pos | 0x80);
} */

lcd_wdat(BYTE dat)
{ //写入字符显示数据到LCD
while(lcd_bz());
LCD_RS = 1;
LCD_RW = 0;
LCD_EP = 0;
P0 = dat;
LCD_EP=1;
delay2(4);
LCD_EP=0;
}

lcd_init()
{
delay8(1900); //LCD初始化设定
lcd_wcmd(0x38); //16*2显示,5*7点阵,8位数据
delay8(625);
lcd_wcmd(0x0c); //显示开,关光标
delay8(625);
lcd_wcmd(0x06); //移动光标
delay8(625);
lcd_wcmd(0x01); //清除LCD的显示内容
delay8(625);
}

/*main()
{
delay8(1900);
lcd_init();
lcd_wdat(tab[1]);
delay8(1000);
{
while(1);
}

} */
void main()
{
lcd_init();

for(num=0;num<11;num++)
{
lcd_wdat(table[num]);
delay_50ms(10);
}
lcd_wcmd(0x80+0x40);
for(num=0;num<16;num++)
{
lcd_wdat(table1[num]);
delay_50ms(10);

}
delay_50ms(10);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e779228
2012-09-26
知道答主
回答量:6
采纳率:0%
帮助的人:8721
展开全部
用C很方便 逐字和一起都可以!!!有需要可以给个程序给你参考
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
华录_起点
2010-09-06 · TA获得超过1055个赞
知道小有建树答主
回答量:533
采纳率:0%
帮助的人:0
展开全部
在你的延时程序上吧

将显示每个字符后的延时时间缩短,试试吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
657132868
2010-09-15
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
把QQ告诉我,Q上谈
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式