分享
分享赚钱 收藏 举报 版权申诉 / 12

类型电子时钟基于AT89c51单片机设计电路图及程序.doc

  • 上传人:精品资料
  • 文档编号:8020175
  • 上传时间:2019-06-04
  • 格式:DOC
  • 页数:12
  • 大小:1.25MB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    电子时钟基于AT89c51单片机设计电路图及程序.doc
    资源描述:

    1、电子时钟基于 AT89c51 单片机的设计电子时钟原理图开机显示仿真图: 当按下仿真键时电子时钟开机页面显示第一行显示 JD12102Class-16,第二行显示动态 TINE:12:00:04。电子时钟调时间仿真图:当按下 K1 为 1 次时,光标直接跳到电子时钟的秒,可以按下K2 进行调节。当按下 K1 为 2 次时,光标直接跳到电子时钟的分,可以按下 K2 进行调节。当按下 K1 为 3 次时,光标直接跳到电子时钟的时,可以按下 K2 进行调节。当按下 K1 为 4 次时,光标直接跳完,电子时钟可以进行正常计时。电子时钟闹钟调节仿真:当按下 K3 为 1 次时,直接跳到闹钟显示界面 00

    2、: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=P34; /寄存器 EN 片选引脚sbit lcdrs=P35; /寄存器 RS 选择

    3、引脚sbit beep=P36; /接蜂鸣器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;x0;x-)for(y=110;y0;y-);void write_com(uchar com)lcdrs=0;P0=com; /送出指令,写指令时序delay(5);lcden=1;delay(5);lcd

    4、en=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);

    5、/开显示,不显示光标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);write_data(M);write_data(E); write_data(:);write_data(0x30+(h/10);write_data(0x30+(h%10

    6、);write_data(:);write_data(0x30+(m/10);write_data(0x30+(m%10);write_data(:);write_data(0x30+(s/10);write_data(0x30+(s%10);write_data( );write_data( );write_data( ); void main()init();TMOD=0X01; /设置 T0 定时方式 1TH0=(65535-50000)/256; /设置初值TL0=(65535-50000)%256;EA=1; /开总中断TR0=1; /启动 T0ET0=1;for(num=0;num

    7、 /调时间程序#define uchar unsigned char#define uint unsigned intsbit k1=P10; /定义 3 个变量sbit k2=P11;sbit k3=P12;extern uchar F_k1,F_k3,second,minite,hour,ahour,aminite,asecond; /预定义变量extern void write_com(uchar com);extern void write_add(uchar add,uchar date);extern void display(uchar h,uchar m,uchar s);vo

    8、id delay_key(int i)while(i-);void key1()if(k1=0) /按下 K1 零次时,直接计时与开机显示delay_key(100);if(k1=0)TR0=0;while(!k1);F_k1+;if(F_k1=4)F_k1=0; write_com(0x0c);TR0=1;if(F_k1=1|F_k3=1)write_com(0xC0+0x0c);write_com(0x0f);if(F_k1=2|F_k3=2)write_com(0xC0+0x09);if(F_k1=3|F_k3=3)write_com(0xC0+0x06);void key2()if(k

    9、2=0)delay_key(100);while(!k2);if(F_k1=1) /按下 K1 一次时设置闹钟的秒second+;if(second=60)second=0;write_add(0x4b,second);if(F_k1=2) /按下 K3 两次时设置闹钟的分minite+;if(minite=60)minite=0;write_add(0x48,minite);if(F_k1=3) / 按下 K1 三次时设置闹钟的时hour+;if(hour=24)hour=0;write_add(0x45,hour);if(F_k3=1) /按下 K3 一次时设置闹钟的秒 asecond+;

    10、 if(asecond=60)asecond=0; write_add(0x4b,asecond);if(F_k3=2) /按下 K3 两次时设置闹钟的分aminite+;if(aminite=60)aminite=0;write_add(0x48,aminite);if(F_k3=3) /按下3 三次时设置闹钟的时ahour+;if(ahour=24)ahour=0;write_add(0x45,ahour);void key3() if(k3=0)delay_key(100);if(k3=0)while(!k3);F_k3+;if(F_k3=4) /K3 等于四次时直接跳入闹钟显示F_k3=0;write_com(0x0c);if(F_k3=1)display(ahour,aminite,asecond);

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:电子时钟基于AT89c51单片机设计电路图及程序.doc
    链接地址:https://www.docduoduo.com/p-8020175.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开