电子时钟基于 AT89c51 单片机的设计电子时钟原理图开机显示仿真图: 当按下仿真键时电子时钟开机页面显示第一行显示 JD12102Class--16,第二行显示动态 TINE:12:00:04。 电子时钟调时间仿真图:当按下 K1 为 1 次时,光标直接跳到电子时钟的秒,可以按下K2 进行调节。当按下 K1 为 2 次时,光标直接跳到电子时钟的分,可以按下 K2 进行调节。当按下 K1 为 3 次时,光标直接跳到电子时钟的时,可以按下 K2 进行调节。当按下 K1 为 4 次时,光标直接跳完,电子时钟可以进行正常计时。电子时钟闹钟调节仿真:当按下 K3 为 1 次时,直接跳到闹钟显示界面 00:00:00,按下 K2可以对闹钟的秒进行调节。当按下 K3 为 2 次时,可以调到分,按下 K2 可以对闹钟的分进行调节。当按下 K3 为 3 次时,可以调到时,按下 K2 可以对闹钟的时进行调节。当按下 K3 为 4 次时,直接跳到计时界面,对闹钟进行到计时,时间到可以发出滴滴声。#include#define uchar unsigned char //预定义一下#define uint unsigned intuchar table[]="JD12102Class--21";//显示内容sbit lcden=P3^4; //寄存器 EN 片选引脚sbit lcdrs=P3^5; //寄存器 RS 选择引脚sbit beep=P3^6; //接蜂鸣器extern void key1();extern void key2();extern void key3();uchar num,hour=12,minite,second,ahour,aminite,asecond,a,F_k1,F_k2,F_k3; //定义变量void delay(uint z) //延时{ uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);} void write_com(uchar com){lcdrs=0;P0=com; //送出指令,写指令时序delay(5);lcden=1;delay(5);lcden=0;}void write_data(uchar date){lcdrs=1;P0=date;//送出数据,写指令程序delay(5);lcden=1;delay(5);lcden=0;}void write_add(uchar add,uchar date){uchar aa,bb;aa=date/10;bb=date%10;write_com(0x80+add);write_data(0x30+aa);write_data(0x30+bb);}void init() //初始化{lcden=0;write_com(0x38); //设置 16*2 显示,5*7 点阵write_com(0x0c); //开显示,不显示光标write_com(0x06);//地址加 1,写入数据是光标右移 1 位write_com(0x01); //清屏write_com(0x80); //起点为第一行第一个字符开始}void display(uchar h,uchar m,uchar s) //显示设计程序{{write_com(0x80+0x16);}{write_com(0xC0+0x00);write_data('T');write_data('I');w...