电子时钟基于AT89c51单片机设计电路图及程序Word文件下载.docx

上传人:b****1 文档编号:4414884 上传时间:2023-05-03 格式:DOCX 页数:15 大小:972.63KB
下载 相关 举报
电子时钟基于AT89c51单片机设计电路图及程序Word文件下载.docx_第1页
第1页 / 共15页
电子时钟基于AT89c51单片机设计电路图及程序Word文件下载.docx_第2页
第2页 / 共15页
电子时钟基于AT89c51单片机设计电路图及程序Word文件下载.docx_第3页
第3页 / 共15页
电子时钟基于AT89c51单片机设计电路图及程序Word文件下载.docx_第4页
第4页 / 共15页
电子时钟基于AT89c51单片机设计电路图及程序Word文件下载.docx_第5页
第5页 / 共15页
电子时钟基于AT89c51单片机设计电路图及程序Word文件下载.docx_第6页
第6页 / 共15页
电子时钟基于AT89c51单片机设计电路图及程序Word文件下载.docx_第7页
第7页 / 共15页
电子时钟基于AT89c51单片机设计电路图及程序Word文件下载.docx_第8页
第8页 / 共15页
电子时钟基于AT89c51单片机设计电路图及程序Word文件下载.docx_第9页
第9页 / 共15页
电子时钟基于AT89c51单片机设计电路图及程序Word文件下载.docx_第10页
第10页 / 共15页
电子时钟基于AT89c51单片机设计电路图及程序Word文件下载.docx_第11页
第11页 / 共15页
电子时钟基于AT89c51单片机设计电路图及程序Word文件下载.docx_第12页
第12页 / 共15页
电子时钟基于AT89c51单片机设计电路图及程序Word文件下载.docx_第13页
第13页 / 共15页
电子时钟基于AT89c51单片机设计电路图及程序Word文件下载.docx_第14页
第14页 / 共15页
电子时钟基于AT89c51单片机设计电路图及程序Word文件下载.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

电子时钟基于AT89c51单片机设计电路图及程序Word文件下载.docx

《电子时钟基于AT89c51单片机设计电路图及程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《电子时钟基于AT89c51单片机设计电路图及程序Word文件下载.docx(15页珍藏版)》请在冰点文库上搜索。

电子时钟基于AT89c51单片机设计电路图及程序Word文件下载.docx

reg51.h>

#defineucharunsignedchar//预定义一下

#defineuintunsignedint

uchartable[]="

JD12102Class--21"

;

//显示容

sbitlcden=P3^4;

//寄存器EN片选引脚

sbitlcdrs=P3^5;

//寄存器RS选择引脚

sbitbeep=P3^6;

//接蜂鸣器

externvoidkey1();

externvoidkey2();

externvoidkey3();

ucharnum,hour=12,minite,second,ahour,aminite,asecond,a,F_k1,F_k2,F_k3;

//定义变量

voiddelay(uintz)//延时

{

uintx,y;

for(x=z;

x>

0;

x--)

for(y=110;

y>

y--);

}

voidwrite_(uchar)

{

lcdrs=0;

P0=;

//送出指令,写指令时序

delay(5);

lcden=1;

lcden=0;

voidwrite_data(uchardate)

lcdrs=1;

P0=date;

//送出数据,写指令程序

voidwrite_add(ucharadd,uchardate)

ucharaa,bb;

aa=date/10;

bb=date%10;

write_(0x80+add);

write_data(0x30+aa);

write_data(0x30+bb);

voidinit()//初始化

{lcden=0;

write_(0x38);

//设置16*2显示,5*7点阵

write_(0x0c);

//开显示,不显示光标

write_(0x06);

//地址加1,写入数据是光标右移1位

write_(0x01);

//清屏

write_(0x80);

//起点为第一行第一个字符开始

voiddisplay(ucharh,ucharm,uchars)//显示设计程序

{{

write_(0x80+0x16);

{write_(0xC0+0x00);

write_data('

T'

);

I'

M'

E'

:

'

write_data(0x30+(h/10));

write_data(0x30+(h%10));

write_data(0x30+(m/10));

write_data(0x30+(m%10));

write_data(0x30+(s/10));

write_data(0x30+(s%10));

'

}}

voidmain()

{init();

TMOD=0X01;

//设置T0定时方式1

TH0=(65535-50000)/256;

//设置初值

TL0=(65535-50000)%256;

EA=1;

//开总中断

TR0=1;

//启动T0

ET0=1;

for(num=0;

num<

16;

num++)//依次读出数据

write_data(table[num]);

while

(1)

key1();

key2();

key3();

if(ahour==hour&

&

aminite==minite&

second<

10)//时间到闹钟响

beep=~beep;

if(F_k1==0&

F_k3==0)//K1和K3按下次数为零就直接显示时分秒

display(hour,minite,second);

voidtimer0()interrupt1//T0中断函数

TH0=(65535-50000)/256;

//装载计数器初值

TL0=(65535-50000)%256;

a++;

if(a==20)

{//进位设置60秒进1分,60分进1时,24时进0时

a=0;

second++;

if(second==60)

second=0;

minite++;

if(minite==60)

minite=0;

hour++;

if(hour==24)

hour=0;

}

#include<

//调时间程序

#defineucharunsignedchar

sbitk1=P1^0;

//定义3个变量

sbitk2=P1^1;

sbitk3=P1^2;

externucharF_k1,F_k3,second,minite,hour,ahour,aminite,asecond;

//预定义变量

externvoidwrite_(uchar);

externvoidwrite_add(ucharadd,uchardate);

externvoiddisplay(ucharh,ucharm,uchars);

voiddelay_key(inti)

{while(i--);

voidkey1()

if(k1==0)//按下K1零次时,直接计时与开机显示

delay_key(100);

if(k1==0)

TR0=0;

while(!

k1);

F_k1++;

if(F_k1==4)

F_k1=0;

if(F_k1==1|F_k3==1)

write_(0xC0+0x0c);

write_(0x0f);

if(F_k1==2|F_k3==2)

write_(0xC0+0x09);

if(F_k1==3|F_k3==3)

write_(0xC0+0x06);

voidkey2()

if(k2==0)

k2);

if(F_k1==1)//按下K1一次时设置闹钟的秒

write_add(0x4b,second);

if(F_k1==2)//按下K3两次时设置闹钟的分

write_add(0x48,minite);

if(F_k1==3)//按下K1三次时设置闹钟的时

write_add(0x45,hour);

if(F_k3==1)//按下K3一次时设置闹钟的秒

{

asecond++;

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)//按下K3三次时设置闹钟的时

ahour++;

if(ahour==24)

ahour=0;

write_add(0x45,ahour);

voidkey3()

if(k3==0)

k3);

F_k3++;

if(F_k3==4)//K3等于四次时直接跳入闹钟显示

F_k3=0;

if(F_k3==1)

display(ahour,aminite,asecond);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2