光闹钟枕巾.doc

上传人:hw****26 文档编号:3844080 上传时间:2019-08-07 格式:DOC 页数:6 大小:40.50KB
下载 相关 举报
光闹钟枕巾.doc_第1页
第1页 / 共6页
光闹钟枕巾.doc_第2页
第2页 / 共6页
光闹钟枕巾.doc_第3页
第3页 / 共6页
光闹钟枕巾.doc_第4页
第4页 / 共6页
光闹钟枕巾.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、/*1、按键可以调整当时时间2、按键可以调节定时时间3、定时时间到继电器吸合*8位数码管显示 时间格式格式 05-59-00 标示 05点 59分 00秒S1 用于小时 加 1操作 S2 用于小时减 1操作S3 用于分钟 加 1操作S4 用于分钟减 1操作*/*-名称:光时钟枕巾日期:2011.3.6编写:董鲁北内容:RT-*/#include /包含头文件sbit KEY1=P30; /定义端口参数sbit KEY2=P31;sbit KEY3=P32;sbit KEY4=P33;sbit SPK=P34; /定义蜂鸣器code unsigned char tab=0xc0,0xf9,0xa

2、4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /共阴数码管 0-9unsigned char StrTab8; /定义缓冲区unsigned char minute=59,hour=5,second; /定义并且初始化值 12:30:00/*/* 延时函数 */*/void delay(unsigned int cnt)while(-cnt);void delay1()unsigned int i,j;for(i=0;i1000;i+)for(j=0;j1000;j+);/*/* 显示处理函数 */*/void Displaypro(void)StrTab0=ta

3、bhour/10; /显示小时StrTab1=tabhour%10;StrTab2=0xbf; /显示“-“StrTab3=tabminute/10; /显示分钟StrTab4=tabminute%10;StrTab5=0xbf; /显示“-“StrTab6=tabsecond/10; /显示秒StrTab7=tabsecond%10;void time(void)unsigned int i;P1=0x7e;delay1();P1=0x3c;delay1();P1=0x18;delay1();P1=0x00;delay1();P1=0xff;delay(10000);for(i=0;i160

4、;i+)P1=0x00;delay(10000);P1=0xff;delay(10000);while(1)for(i=0;i200;i+)/喇叭发声的时间循环,改变大小可以改变发声时间长短delay(100); /参数决定发声的频率,估算值,可以自行更改参数并SPK=!SPK;SPK=1; /喇叭停止工作,间歇的时间,可更改delay(20000);/*/* 主函数 */*/main()/主函数TMOD |=0x01;/定时器 0 10ms in 12M crystal 用于计时TH0=0xd8; /初值TL0=0xf0;ET0=1;TR0=1;TMOD |=0x10; /定时器 1用于动态

5、扫描TH1=0xF8; /初值TL1=0xf0;ET1=1;TR1=1;EA =1;Displaypro(); /调用显示处理while(1)/主循环if(!KEY1) /按键 1去抖以及动作delay(10000);if(!KEY1) hour+;if(hour=24)hour=0; /正常时间 小时 加 1Displaypro();if(!KEY2) /按键 2去抖以及动作delay(10000);if(!KEY2)hour-;if(hour=255)hour=23; /正常时间 小时减 1Displaypro();if(!KEY3) /按键去抖以及动作delay(10000);if(!K

6、EY3)minute+;if(minute=60)minute=0;/分加 1Displaypro();if(!KEY4) /按键去抖以及动作delay(10000);if(!KEY4)minute-;if(minute=255)minute=59; /分减 1Displaypro();if(hour=6/*/* 定时器 1中断 */*/void time1_isr(void) interrupt 3 using 0/定时器 1用来动态扫描static unsigned char num;TH1=0xF8;/重入初值TL1=0xf0;switch (num)case 0:P2=0xfe;P0=

7、StrTabnum;break; /分别调用缓冲区的值进行扫描case 1:P2=0xfd;P0=StrTabnum;break;case 2:P2=0xfb;P0=StrTabnum;break;case 3:P2=0xf7;P0=StrTabnum;break;case 4:P2=0xef;P0=StrTabnum;break;case 5:P2=0xdf;P0=StrTabnum;break;case 6:P2=0xbf;P0=StrTabnum;break;case 7:P2=0x7f;P0=StrTabnum;break;default:break;num+; /扫描 8次,使用 8

8、个数码管if(num=8)num=0; /*/* 定时器 0中断 */*/void tim(void) interrupt 1 using 1static unsigned char count;/定义内部静态变量TH0=0xd8; /重新赋值TL0=0xf0;count+;switch (count)case 0:case 20:case 40:case 60:case 80:Displaypro(); /隔一定时间调用显示处理break;default:break;if (count=100)count=0;second+; /秒加 1if(second=60)second=0;minute+; /分加 1if(minute=60)minute=0;hour+; /时加 1if(hour=24)hour=0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。