刚刚用C语言写的单片机程序,帮忙看看哪里错了.

#include<reg52.h>sbitrs=P2^6;sbitrw=P2^5;sbitlcde=P2^7;unsignedcharcodetable[]="2013-... #include<reg52.h>
sbit rs=P2^6;
sbit rw=P2^5;
sbit lcde=P2^7;
unsigned char code table[]="2013-02-11 Mon";
unsigned char code table1[]="00:00:00";
unsigned char num=0,num1=0,numb,hour,hour1,hour2,min,min1,min2,sec,sec1,sec2;
void delay(unsigned char c)
{
unsigned char a,b;
for(a=0;a<c;a++)
for(b=0;b<123;b++);
}
void wcmd(unsigned char cmd)
{
rs=0;
rw=0;
lcde=0;
delay(3);
lcde=1;
delay(3);
P0=cmd;
delay(3);
lcde=0;
delay(2);
}
void wdat(unsigned char dat)
{
rs=1;
rw=0;
lcde=0;
delay(3);
lcde=1;
delay(3);
P0=dat;
delay(3);
lcde=0;
delay(2);
}
void init()
{
wcmd(0x38);
wcmd(0x0e);
delay(5);
wcmd(0x80+1);
for(num=0;num<14;num++)
{
wdat(table[num]);
delay(5);
}
wcmd(0x80+0x40+4);
for(num1=0;num1<8;num1++)
{
wdat(table1[num1]);
delay(5);
}

TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}

void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
numb++;
if(numb==18)
{
numb=0;
sec++;
if(sec==60)
{
sec=0;
min++;
if(min==60)
{
min=0;
hour++;
if(hour==24)
{
hour=0;
}
hour2=hour%10;
hour1=hour/10;
wcmd(0x80+0x40+6);
wdat(0x30+hour2);
wcmd(0x80+0x40+5);
wdat(0x30+hour1);
}
min2=min%10;
min1=min/10;
wcmd(0x80+0x40+9);
wdat(0x30+min2);
wcmd(0x80+0x40+8);
wdat(0x30+min1);
}
sec2=sec%10;
sec1=sec/10;
wcmd(0x80+0x40+12);
wdat(0x30+sec2);
wcmd(0x80+0x40+11);
wdat(0x30+sec1);
}
}
void main()
{
init();
}
有没有高人,看看我写的LCD1602电子表 程序,写进去怎么数不走呢?只显示 00:00:00.。。
展开
 我来答
zhxiufan
2013-02-11 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38398
国家科技进步奖

向TA提问 私信TA
展开全部
主程序改一下:
void main()
{
init();
while(1);
}
更多追问追答
追问
先谢谢了,5点多就起来帮我解答。在凌晨2:00的时候我找出问题了,解决了。不过还有个问题 :
秒数到59后,分钟能进上去。分钟到59后,小时还是维持初始化的。另外,分钟变为01,而不是00,。。。
追答
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
numb++;
if(numb==18)
{
numb=0;
sec++;
if(sec==60)
{
sec=0;
min++;
if(min==60)
{
min=0;
hour++;
if(hour==24)
{
hour=0;
}
}
}
hour2=hour%10;
hour1=hour/10;
wcmd(0x80+0x40+6);
wdat(0x30+hour2);
wcmd(0x80+0x40+5);
wdat(0x30+hour1);

min2=min%10;
min1=min/10;
wcmd(0x80+0x40+9);
wdat(0x30+min2);
wcmd(0x80+0x40+8);
wdat(0x30+min1);

sec2=sec%10;
sec1=sec/10;
wcmd(0x80+0x40+12);
wdat(0x30+sec2);
wcmd(0x80+0x40+11);
wdat(0x30+sec1);
}
}
小谢
2025-08-18 广告
深圳市金创图电子设备有限公司,联系电话:18928465613。金创图是一家集研发、生产、营销、服务为一体的高新技术企业。致力于生产:管装烧录机,编带烧录机,托盘烧录机,通用型烧录机、自动一体化烧录机等;设备产品具有高速率、高刚性、高性能、... 点击进入详情页
本回答由小谢提供
目头小子
2013-02-11 · 超过25用户采纳过TA的回答
知道答主
回答量:105
采纳率:0%
帮助的人:45.3万
展开全部
确实和楼上说的一样,要不程序直接退出了。O(∩_∩)O哈!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Lsy_lii
2013-02-11 · TA获得超过184个赞
知道小有建树答主
回答量:134
采纳率:0%
帮助的人:130万
展开全部
1楼不厚道。。5点就起来帮助他人。。。1楼正解,鉴定完毕!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式