ZKX's LAB

c51单片机数字时钟LCD显示时有时候切换到设置时间,屏幕卡住不显示是怎么回事 单片机数字时钟lcd

2020-07-25知识21

单片机89C51用LCD做的数字时钟,时分秒正常运行,可调,并有闹钟,响时十秒 /*用1602液晶显示电子时钟,通过P1口连接独立按键可以调整时间*/includedefine uint unsigned intdefine uchar unsigned charuchar code table[]=\"2010-05-18;uchar code time[]=\"23:58:00;uchar code xi1[]=\"mon;uchar code xi2[]=\"tue;uchar code xi3[]=\"wed;uchar code xi4[]=\"thu;uchar code xi5[]=\"fri;uchar code xi6[]=\"sat;uchar code xi7[]=\"sun;sbit wr=P2^5;sbit rd=P2^6;sbit lcde=P2^7;sbit k1=P1^7;sbit k2=P1^6;sbit k3=P1^5;sbit k4=P1^4;uint i,shi,fen,miao,nian,yue,ri,count,num,x;void delay(uint z){uint x,y;for(x=z;x>;0;x-)for(y=110;y>;0;y-);}void write_add(uchar add){rd=0;P0=add;lcde=1;delay(5);lcde=0;}void write_date(uchar date){rd=1;P0=date;lcde=1;delay(5);lcde=0;}void writesfm(uchar add,uchar date){uchar s,g;s=date/10;g=date%10;write_add(0x80+0x40+add);write_date(0x30+s);write_date(0x30+g);}void writenyr(uchar add,uchar date){uchar s,g;s=date/10;g=date%10;write_add(0x80+0x00+add);write_date(0x30+s);write_date(0x30+g);}void xi(uchar a){if(a=1){write_add(0x80+0x00+10);for。急需要一个基于89c51单片机关于lcd1602液晶显示的数字时钟程序并且可以用按键调整的,谢谢 基于89c51单片机关于lcd1602液晶显示的数字时钟程序并且可以用按键调整的难度不大,我稍微指点你。求教一个51单片机程序。。(LCD电子时钟) 你的单片机信息和单片机原理图都没提供,源代码是没法写的啊,要的话留邮箱,我这有stc89c52的源程序,功能差不多,你可以修改一下如何用51单片机和lcd1602做一个能够定时报警的数字时钟? 既然会调整时间了,就在调整时间的过程中,当调到报警时间时,再按下一个设定报警时间的按键,可以再增加一个按键,按下后就保存这个时间作为报警时间,但不改变当前时钟的时间,只是保存报警时间,而时钟继续计时,同时,可以结束调整操作。设定了报警时间后,在正常计数时,当时钟每加一分,就与设定的报警时间比较,要比较小时相同,分相同。如果还要精确到秒,就要设定报警时间精确到秒,那就得每一秒就要比较一下设定的时间了。如果比较两个时间相同,就报警了。报警会吧,就是响铃就行了。当处于报警状态下,可设置一个标志位,报警了,标志位为1,当标志位为1时,再按下设定报警键时就停止报警状态了。急需要一个基于89c51单片机关于lcd1602液晶显示的数字时钟程序,谢谢 用汇编做lcd数字时钟(单片机) #include<;at89x52.h>;#define uchar unsigned char/0~255define uint unsigned int/0~65535define ulong unsigned long/0~4294967295sbit gewei=P2^3;sbit shiwei=P2^2;sbit baiwei=P2^1;sbit qianwei=P2^0;num[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};uchar keytable[16]={0x0A,0x0B,0x0C,0x0D,0x03,0x06,0x09,0x0E,0x02,0x05,0x08,0x0F,0x01,0x04,0x07,0x00};键值表uchar minute=0;uchar hour=0;uint m=0;延时Xms*/void delay_xms(unsigned int m)/延时程序{ unsigned int i,j;for(i=m;i>;0;i-)for(j=122;j>;0;j-);}初使化*/void init(){P1=0xf0;EX0=1;TMOD=0x01;TH0=0x3c;TL0=0x3c;ET0=1;TR0=1;EA=1;}等待释放键盘*/uchar testkey(){P1=0xf0;return(~P1&0xf0);}主函数*/void main(){init();while(1){P0=num[hour/10];qianwei=0;delay_xms(8);qianwei=1;P0=num[hour%10];baiwei=0;delay_xms(8);baiwei=1;P0=num[minute/10];shiwei=0;delay_xms(8);shiwei=1;P0=num[minute%10];gewei=0;delay_xms(8);gewei=1;}}void table()interrupt 0{uchar sccode,recode,keycode,linenum,jianma,rownum=0x00;rownum为列值计数器,置初值。

#89c51#lcd1602#单片机#液晶显示#date

随机阅读

qrcode
访问手机版