基于51单片机的24小时定时控制系统
基于51单片机的24小时定时控制系统

姓名:余明永学号:E01214308 专业:网络工程完成时间:2014/12/31基于51单片机的24小时定时控制系统E01214308 余明永安徽大学计算机科学与技术学院,安徽合肥230061摘要:定时开关控制器在工业方面的自动控制,办公场所的电器控制等有着极为广泛的用途;本文利用89C51单片机的定时器计数器时钟电路设计一套24小时范围内的定时控制系统;可方便的实现对家庭电器和工业方面的自动控制;该定时开关控制器具有简单易制、价格低廉、控制时间可精确到秒等优点,还可以实时显示时间,具有较高的应用价值。
关键字:单片机时钟定时控制开关Timing Control System of 24h Designing Based on 51MCUE01214308 YU Ming-yongDepartment of Computer Science and Technology, Anhui University, Hefei 230601, China Abstract: Automatic control timing controller has a very wide range of uses in the industry and office applicant control. In this paper, we designed the timing control system including a set of 24 hours within the scope of using the timer counter clock circuit based on mcs-51; It can realize the automatic control of household appliances and industrial aspects very conveniently; the timing switch controller has the very simple and easy preparation, and it is also very cheap, It can control the time very accurately to seconds. Also show the time on time. This application is of great value.Keywords: MCU; Clock; Timing; Control; Switch0引言电子定时器在家用电器中经常用于延时自动关机、定时。
基于51单片机实现的门禁控制系统设计

题目门禁控制系统设计【摘要】本设计是利用T7122M-I工业级ID读卡模块实现的门禁控制器,具有存储一张管理卡和多张用户卡的功能,同时管理人员还可以通过按键更改管理卡,增加、删除用户卡等操作,门禁刷卡控制刷卡距离约为5—12CM。
关键词:门禁系统、T7122M-I工业级读卡模块。
目录摘要 (2)第1章门禁系统的概述 (4)1.1 门禁系统概念 (4)1.2 门禁系统的特点 (4)第2章门禁系统的设计要求 (4)2.1 设计要求 (4)第3章门禁系统的方案论证 (4)3.1门禁系统的总体方案 (4)3.2门禁系统的各个方案论证 (5)3.2.1.单片机控制芯片模块 (5)3.2.1.键盘控制块 (5)第4章门禁系统的硬件部分 (6)4.1主控芯片部分 (6)4.2键盘控制部分 (7)4.3蜂鸣器控制部分 (8)4.4T7122M-I工业读卡模块 (8)第5章门禁系统的软件部分 (9)第6章门禁系统的软、硬件调试 (12)6.1硬件调试 (12)6.2软件调试 (12)6.3软、硬件设计注意事项 (12)结论 (13)致谢 (13)参考文献 (14)附录1:系统程序。
(15)第1章门禁系统的概述1.1 门禁系统概念出入口门禁控制系统采取以感应卡来取代用钥匙开门的方式。
使用者用一张卡可以打开多把门锁, 对门锁的开启也可以有一定的时间限制。
如果卡丢失了,不必更换门锁,只需将其从控制主机中注销。
出入口门禁控制系统是通过对出入口的准入情况进行控制、管理和记录的设备,对何人何时在何地进行详细跟踪,以实现中心对出入口的24小时控制、监视及管理。
1.2 门禁系统的特点系统将ID卡技术、计算机控制技术与电子门锁有机结合,用ID卡替代钥匙,配合计算机实现智能化门禁控制和管理,有效的解决了传统门锁的使用繁琐和无法信息记录等不足,利用数据控制器采集的数据实现数字化管理可为内部人力资源的有效管理等带来意想不到的效果。
电子钥匙:授权后的ID卡即可当作电子钥匙,将此电子钥匙感应器前一晃, 控制器对该卡进行身份验证,验证合法后即控制电子门锁自动打开。
基于51单片机的智能家居控制系统设计

基于51单⽚机的智能家居控制系统设计摘要智能家居是时代发展的产物,是住户想享受快速⽹上冲浪、便捷实时的通讯、安全防范、丰富娱乐⽣活、便捷的⽣活家居管理,优质物业管理等智能化住宅所特有的⽣活⽅式,使忙碌⼀天的⼈们真正体会到智慧家带来的⽣活乐趣。
本设计以STC89C52RC单⽚机为核⼼设计数字时钟和智能窗帘:通过光敏电阻检测光线强弱,当光线强度达到⼀定的程度时,通过单⽚机控制电机将窗帘拉上,否则打开窗帘。
另外⽤点阵显⽰时间和当前室内温度,由于下午⼗点后基本属于睡眠时间,故忽略光线强度,拉上窗帘并⾃动切换到⼿动模式,以节约电能,待第⼆天起床再将其切换⾄⾃动模式。
由于⼀般电机⽆法⾃主精确定位,需要辅助器件构成⼀个闭环系统才能精确的控制窗帘的张合程度,故本设计采⽤步进电机控制,通过齿轮变速,精确控制窗帘的张合程度,避免窗帘由于过度的张合造成损害,同时由于减少了辅助器件,节省了能源。
同时,本设计还选⽤DS12C887时钟芯⽚,该芯⽚内部⾃带锂电池,即使在断电的情况下仍然能继续⼯作。
该芯⽚有内置晶振,能够提供准确的时间,正常⼯作状态下⼯作⼀个⽉误差为+ 1分钟。
芯⽚内部带有闹钟功能,带有世纪寄存器,能够解决世纪问题,还有闰年补偿能多项功能。
⽐只利⽤晶振驱动的电⼦时钟功能更强⼤,时间更准确。
关键词:单⽚机;智能窗帘;时钟芯⽚AbstractIntelligent furniture is outcome of the developing time. It is a special lifestyle with which residents can enjoy fast online surfing, convenient communication, safety guard and which can enrich residents’ entertainment, make their furnishing management more convenient and which can optimize their property management. It can provide people who have been busy for a whole day with entertainment that intelligent ones bring to them. These are designs called digital clock and intelligent curtain that center on STC89C52RC MCU. It detects whether the light is hard or not through photosensitive electric resistance. When light is hard to some level, the curtain is closed under the control of the MCU on the generator, and is opened on the contrary. In addition, it shows time and the present indoor’s temperature with dot matrix. Light can be neglected after 10 o’clock pm when most people have fallen asleep. At this time, the curtain is closed and get to be under manual mode, so as to cut down electricity consumption, it was not turned to automatic mode until residents’ getting up in the morning. Commonly seen generators are not able to fix precisely, they can form a closed loop system to realize precise control on curtains only with the help of some assistant devices. Thus, this design precisely controls curtains under the control of steering engines and with gears to alter the speed. By that, curtains are protected from damages by over-operation. At the same time, less assistant devices are used and energy consumption is cut down. Meanwhile, the design selectsDS12C887 chips which contain lithium cells themselves and which can continue operating even when it is out of electricity. Such chips contain some internally installed crystal that can provide precise time with only one minute’s error within one month when operating normally. Such chips also have alarm function and century register. Thus, they can solve century problem. This design is much stronger and preciser than any electric clocks using only crystal to operate.Keywords: MCU; intelligent curtain; clock chip设计说明基于单⽚机的智能家居控制系统设计是在指导⽼师给出的任务书并在其指导下完成的。
作息时间控制器(基于51单片机和DS1302的时钟).

课程设计(论文)题目:作息时间控制器院(系):电子工程与自动化学院专业:测控技术与仪器学生姓名:吉哲学号: 0900820413指导教师:徐翠锋职称:讲师2012年12月27日摘要本次作息时间控制器设计是采用AT89S52单片机作为系统的核心元件,在其最小系统基础上与DS1302时钟芯片配合,四个独立按键控制,六位七段数码管显示,无源蜂鸣器发声。
单片机最小系统作为核心处理和控制单元;时钟芯片用来实现实时时间的精准输出和闹钟信息的存储,并可用纽扣电池供电以保持时间的连续运行;独立按键用于进行时间及闹钟的设定;数码管用于显示时间及闹钟信息;蜂鸣器用于在达到设定的时间后进行及时提醒。
关键词:时间控制;AT89S52;单片机;DS1302;时钟芯片;闹铃;定时报警AbstractThis work and rest time controller design is to use AT89S52 SCM as the core of the system components, in its minimum system with DS1302 clock chip based on coordination, four independent key control, six seven period of digital tube display, passive buzzer sound. Single chip microcomputer minimum system as the core processing and control unit; Clock chip to realize real-time time accurate output and alarm information storage, and use button batteries to keep continuous operation time, Independent key for time and alarm clock Settings; Digital tube is used to display the time and alarm information; Buzzer to reach a set time for timely remind.Key words:Time control; AT89S52 devices; SCM; DS1302; Clock chip; Alarm; Timing alarm目录引言 (1)1 课程设计任务及要求 (1)2 硬件设计 (1)2.1 总体设计思路及系统框图 (1)2.2 中央处理控制器 (2)2.3 晶振电路 (3)2.4 时钟信号产生电路 (3)2.5 显示电路 (4)2.6 控制电路 (6)2.7 闹铃电路 (8)2.8 电源及下载电路 (8)3 程序设计 (9)3.1 主程序流程图 (9)3.2 按键扫描程序流程图 (9)3.3 响铃扫描程序 (10)4 制板、组装与调试 (11)4.1 PCB制作 (11)4.2 制作PCB板流程 (11)4.3 调试 (11)5 方案总结 (11)心得体会 (12)谢辞 (13)参考文献 (14)附录 (15)引言时间是人类生活必不可少的重要元素,从古至今它都扮演着一个非常重要的角色。
基于C51单片机的数字时钟课程设计(C语言带闹钟)

单片机技术课程设计数字电子钟学院:班级:姓名:学号:教师:摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。
所以设计一个简易数字电子钟很有必要。
本电子钟采用AT89C52单片机为核心,使用12MHz 晶振与单片机AT89C52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。
该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEY5键,进行相应的操作就可实现校时、定时、复位功能。
具有时间显示、整点报时、校正等功能。
走时准确、显示直观、运行稳定等优点。
具有极高的推广应用价值。
关键词:电子钟 AT89C52 硬件设计软件设计目录NO TABLE OF CONTENTS ENTRIES FOUND.一、数字电子钟设计任务、功能要求说明及方案介绍1.1 设计课题设计任务设计一个具有特定功能的电子钟。
具有时间显示,并有时间设定,时间调整功能。
1.2 设计课题的功能要求说明设计一个具有特定功能的电子钟。
该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时59分0秒开始运行,进入时钟运行状态;按电子钟S5键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按S5键再次进入时钟运行状态。
1.3 设计课的设计总体方案介绍及工作原理说明本电子钟主要由单片机、键盘、显示接口电路和复位电路构成,设计课题的总体方案如图1所示:图1-1总体设计方案图本电子钟的所有的软件、参数均存放在AT89C52的Flash ROM和内部RAM 中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。
键盘采用动态扫描方式。
利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。
基于51单片机的智能定时控制器系统设计

一、课题条件:随着电子工业的发展,数字电子技术已经深入到了人们生活的各个层面,各种各样的电子产品也正在日新月异地向着高精尖技术发展。
数字电子时钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。
二、毕业论文(设计)主要内容:1、时间显示:用4位数码管显示当前小时和分钟,秒功能用两LED灯代替(每秒闪烁一次)。
2、可手动设定时间。
3、开机流程:系统有红色和蓝色指示灯,上电10S内,每秒红色指示灯闪烁一次,并伴有蜂鸣声,作为开机/重启提醒,此时绿色指示灯灭。
10S后红色指示灯灭,若光线较强则绿色指示灯亮,若光线较弱则绿色指示灯亮度减半进入节能模式。
3、具有整点报时功能(四短一长),可自行设定报时时间段;三、计划进度:1. 资料的收集撰写开题报告6月20日至9月8日2. 方案设计9月9日至9月15日3. 电路的设计指标分析与确定;后期的电路优化元器件的选择与参数确定9月16日至11月2日4. 毕业设计论文的修改、完善11月3日至11月10日5. 毕业设计答辩11月15 日至11月20日四、主要参考文献:a) 康光华主编.电子技术基础.北京:高等教育出版社,1999.6b) b)何宏主编.单片机原理与接口技术.北京:国防工业出版社.2006.07c) c)杨西明,朱骐主编.单片机编程与应用入门.北京:机械工业出版社.2004.06d) d)先锋工作室编著.单片机程序设计实例.北京:清华大学出版社.2003.01摘要本次设计以AT89C51芯片为核心,辅以必要的外围电路,设计了一个简易的电子时钟,它由5V直流电源供电。
在硬件方面,除了CPU外,使用四个七段LED数码管来进行显示,LED采用的是动态扫描显示。
通过LED能够比较准确显示时、分。
三个简单的按键实现对时间的调整。
软件方面采用汇编语言编程。
整个电子钟系统能完成时间的显示,调时,定时闹钟,报警等功能。
基于STC89C51单片机作息时间控制钟控制系统

目录目录 (1)1、摘要 (2)重庆科技学院 (3)课程设计任务书(专题实验) (3)2、方案设计 (5)2.1 整体方案设计 (5)2.2 硬件方案设计 (5)2.3 硬件方案原理图 (5)3、硬件电路设计与分析 (7)3.1 CPU时钟电路 (7)3.2 复位电路 (7)3.3 数码管显示电路 (8)3.4 按键接口电路 (9)3.5 LED指示电路 (9)3.6 蜂鸣器接口电路 (10)3.7 RS-232接口电路 (11)3.8 电源电路 (12)4、软件设计 (13)4.1 总体软件程序设计 (13)4.2 主程序设计 (14)4.3 数码管显示程序设计 (14)4.4 时钟程序设计 (15)4.5 闹铃程序设计 (17)4. 6 模式程序设计 (18)5 调试与测试 (21)5.1 调试方法 (21)5.2测试结果 (21)6、技术总结 (22)6.1硬件方面 (22)6.2方案设计方面 (22)6.3编写延时程序方面 (22)6.4电路图方面 (22)6.5闹钟设计方面 (23)7、参考文献 (24)附录源程序 (25)1、摘要随着计算机技术的和控制系统的广泛应用,以及设备向小型化、智能化发展,单片机作为高新技术之一,以其体积小、功能强、价格低、使用灵活等优势,显示出了很强的生命力。
进入21世纪以来,开发推出单片机的公司很多,各种高性能单片机芯片市场异常活跃,新技术的不断采用,更加使单片机的种类、性能以及应用领域不断扩大和提高。
因其功耗低、超高型、低成本、功能完整,在国内越来越受到用户的重视和广泛使用。
本设计是一个具有报时功能的作息时间控制钟,它以AT89C51单片机为cpu,由蜂鸣器、LED灯、按键、4位数码管组成。
4们数码管上可以显示五种模式,分别是北京时间显示模式、修改北京时间小时模式、修改北京时间分钟模式、修改闹钟小时模式、修改闹钟分钟模式。
前三种模式显示的是北京时间,后两种模式显示的是闹钟时间。
51单片机的24c02电子时钟程序和电路图

fen++;
if(fen==60)fen=0;
write_sfm(shi,fen,miao);
write_cmd(0xc0+7);
write_add(2,fen);
}
if(s1num==3)
{
shi++;
if(shi==60)shi=0;
write_sfm(shi,fen,miao);
write_cmd(0xc0+4);
}
void keyscan()
{
if(s1==0)//如果功能按键1按下
{
delayms(5);//去抖动
if(s1==0)
{
while(!s1);//等待松手
s1num++;//主要还是记下次数
di();//蜂鸣器响
if(s1num==1)//按一下秒钟
{
TR0=0;
write_cmd(0xc0+10);//指针显示闪烁
sbit lcdrs=P2^4;//液晶的控制角
sbit lcdrw=P2^5;
sbit lcden=P2^6;
sbit s1=P3^0;//三个调时钟的按键
sbit s2=P3^1;
sbit s3=P3^2;
sbit beep=P2^3;//蜂鸣器
uchar count,s1num;
char miao,shi,fen;
delayms(1);
}
void write_sfm(uchar s,uchar f,uchar m)//数据在液晶显示
{
uchar ss,sg,fs,fg,ms,mg;
ss=s/10;sg=s%10;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
姓名:余明永学号:E01214308 专业:网络工程完成时间:2014/12/31基于51单片机的24小时定时控制系统E01214308 余明永安徽大学计算机科学与技术学院,安徽合肥230061摘要:定时开关控制器在工业方面的自动控制,办公场所的电器控制等有着极为广泛的用途;本文利用89C51单片机的定时器计数器时钟电路设计一套24小时范围内的定时控制系统;可方便的实现对家庭电器和工业方面的自动控制;该定时开关控制器具有简单易制、价格低廉、控制时间可精确到秒等优点,还可以实时显示时间,具有较高的应用价值。
关键字:单片机时钟定时控制开关Timing Control System of 24h Designing Based on 51MCUE01214308 YU Ming-yongDepartment of Computer Science and Technology, Anhui University, Hefei 230601, China Abstract: Automatic control timing controller has a very wide range of uses in the industry and office applicant control. In this paper, we designed the timing control system including a set of 24 hours within the scope of using the timer counter clock circuit based on mcs-51; It can realize the automatic control of household appliances and industrial aspects very conveniently; the timing switch controller has the very simple and easy preparation, and it is also very cheap, It can control the time very accurately to seconds. Also show the time on time. This application is of great value.Keywords: MCU; Clock; Timing; Control; Switch0引言电子定时器在家用电器中经常用于延时自动关机、定时。
延时自动关机可用于:收音机、电视机、录音机、催眠器、门灯、路灯、汽车头灯、转弯灯以及其他电器的延时断电及延时自停电源等。
定时可用于:照相定时曝光、定时闪光、定时放大、定时调速、定时烘箱、冰箱门开定时报警、水位定时报警、延时催眠器、延时电铃、延时电子锁、触摸定时开关等。
例如:空调中的定时器,在工作一段时间之后便能自动切断电源停止工作。
夏季夜间使用,入睡前先顶好时间,等睡熟后到了预定时间,空调自动关机。
方便节能。
定时器除了应用于家用电器外,还广泛地用于工业农业生产和服务设施,甚至军事等。
单片机的定时器是单片机里最“活跃”的部件之一,很多程序、应用系统都离不开定时器。
由于定时器的应用与单片机的其他硬件相关,存在着一定的复杂性。
而定时器也是单片机应用中解决某类复杂问题的最为有效的方法,应用非常广泛。
本文设计了基于单片机系统的一个简单的定时开关控制系统。
可以灵活的承载多方面有定时控制需求的设备的控制。
1整体方案设计整个系统由51单片机,时钟电路,复位电路,独立按键,显示电路,报警器以及继电器等部分组成[1](结构图如图一)。
定时开关控制系统设计主要以STC89C51单片机为核心[2],通过DS1302进行精准的时间控制[3],独立按键控制设置实时时间以及定时开、关时间,由8个8段LED数码管显示实时的系统时间,并实现交互的设置开关定时时间。
报警器用蜂鸣器当到定时时间时蜂鸣器发出十秒左右报警声以提示用户。
继电器、受控电器插座及受控电器组成一个执行机构,当定时时间到时,单片机向继电器输出一个高电平使继电器工作,继电器常开触点闭合接通受控电器插座,使受控电器通电加以工作,从而完成定时开关电器的功能。
[4]图一定时开关系统构成图2硬件系统设计硬件系统设计采用所学习单片机开发板的设计电路做些简要的修改,并添加继电器电路,电路原理图见图二。
独立按键与单片机K1,K2,K3,K4分别与51单片机的P3^0,P3^1,P3^2,P3^3口相接。
K3采用中断方式按下切换实时时间的设置状态和运行状态;K4切换选择显示实时时间,定时开时间点,定时关时间点,在定时时间点图二定时开关系统硬件结构图可进行设置改变定时时间;K1在设置状态下起作用,进行选择设置时分秒;K2在设置状态下起作用对设置项的值进行加一。
显示时间的八个LED八段数码管通过一个74138译码器进行选择,数码管输入口通过74573与单片机P0口相连;138译码器的输入口为P2^2,P2^3,P2^4。
本系统采用了两个LED灯区分设置选项,两灯都不亮数码管显示为实时时间,两灯亮一灯为开关关闭定时时间,两灯全亮为开关开启定时时间,占用P2^0,P2^1两个接口。
蜂鸣器报警装置接单片机P1^5口,通过P1^5口的高低电平不断变化产生交流信号使蜂鸣器发声。
继电器与单片机的P1^0口相接,输出1时继电器使电源接通控制电器正常工作,输出0时继电器使电源断开控制电器停止工作。
3软件系统设计定时开关控制软件实现较为简单,主程序主要是在单片机的控制下,对键盘的输入信息进行存储分析,驱动LED数码管显示出相关信息,并通过对比分析定时时间与时钟,控制继电器的通、断,从而达到控制电器通断电。
在这个过程中,单片机首先进行初始化,显示值初始化、继电器断开、以及单片机振荡频率的校准等。
单片机每执行一次循环对定时时间和时钟进行一次比较。
[5]为了实现时钟走时与所在地时间一致和满足要求,设定了时钟设置和定时设置的功能。
时钟设置和定时设置都在主函数里的while循环中实现,对于设置的按键采用扫面检测的方法,而进入设置状态是用中断方法进入设置状态。
程序设计的流程图如图三。
图三定时开关系统设计流程图程序初始化后,设置定时器T0工作在方式1用于计时,同时设置开关定时时间,执行显示程序。
当定时时间设置好后,系统不断的查询定时时间到否,定时开关开时间到时P1^0=1,继电器闭合,受控电器工作,同时是控制蜂鸣器报警变量设置时间值,使蜂鸣器控制P1^5电平高低不断交替变化产生交流信号使蜂鸣器报警。
在程序执行过程中中断0控制着定时器的启动和暂停,当暂停时可修改实时时钟的时间,程序查询检查K1和K2按键是否按下,K1选择设定位“时、分、秒”,K2设置当前选择的设定位数值加一。
K4切换显示模式:实时时钟,定时关时间,定时开时间。
在模式切换时对应LED1,LED0显示灯改变,实时时钟两灯都灭,定时关时间显示一个灯,定时开时间显示两个灯。
在定时开关状态下即可由K1,K2键设置定时的时间值,K1,K2的功能与实时时钟设置相同。
具体软件实现代码如下:#include<reg51.h>sbit K1=P3^0;sbit K2=P3^1;sbit K3=P3^2;sbit K4=P3^3;unsigned char Time=0;//用来计时间的值#define DIG P0sbit LSA=P2^2;sbit LSB=P2^3;sbit LSC=P2^4;sbit LED0=P2^0;sbit LED1=P2^1;sbit Beep=P1^5;sbit Switch=P1^0;unsigned char codeDIG_CODE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x 6d,0x7d,0x07,0x7f,0x6f};//0123456789 unsigned char Num=0;unsigned intdisp[8]={0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x 3f,0x3f};unsigned char hour=0,minit=0,second=0; unsigned charThour[2]={0,0},Tminit[2]={0,0},Tsecond[2] ={0,0};unsigned char Count=0;//设定选择设置项unsigned char SetPlace;//设置位选择unsigned int CT=0;//设定值闪烁控制void Delay1ms(unsigned int c);void TimerConfiguration();void Int0Configuration();void Int1Configuration(); unsigned char ReSet=1;/**************************************** * 函数名 : main* 函数功能 : 主函数* 输入 : 无* 输出 : 无**************************************/ void main(void){unsigned char i=0;unsigned char m;unsigned BCT=0;//报警时长设定Switch=0;TimerConfiguration();Int0Configuration();Int1Configuration();while(1){if(Count==0){if(TR0==0){CT++;if(CT>2000)CT=0;if(K1==0) //检测按键K2是否按下{Delay1ms(10); //消除抖动if(K1==0){SetPlace++;if(SetPlace>=3)SetPlace=0;}while((i<50)&&(K1==0)) //检测按键是否松开{Delay1ms(10);i++;}i=0;}if(K2==0) //检测按键K3是否按下{Delay1ms(10); //消除抖动if(K2==0){if(SetPlace==0){second++;if(second>=60)second=0;}elseif(SetPlace==1){minit++;if(minit>=60)minit=0;}else{hour++;if(hour>=24)hour=0;}}while((i<50)&&(K2==0)) //检测按键是否松开{Delay1ms(10);i++;}i=0;}}//数值转换为LED数码管显示if(SetPlace==0&&CT>1000){disp[7] = 0;disp[6] = 0;}else{disp[7] =DIG_CODE[second%10];disp[6] =DIG_CODE[second/10];}disp[5] = 0X40;if(SetPlace==1&&CT>1000){disp[4] = 0;disp[3] = 0;}else{disp[4] =DIG_CODE[minit%10];disp[3] =DIG_CODE[minit/10];}disp[2] = 0X40;if(SetPlace==2&&CT>1000){disp[1] = 0;disp[0] = 0;}else{disp[1] =DIG_CODE[hour%10];disp[0] =DIG_CODE[hour/10];}}else//设定定时时间{ //设置定时点m=Count-1;CT++;if(CT>2000)CT=0;if(K1==0) //检测按键K2是否按下{Delay1ms(10); //消除抖动if(K1==0){SetPlace++;if(SetPlace>=3)SetPlace=0;}while((i<50)&&(K1==0)) //检测按键是否松开{Delay1ms(10);i++;}i=0;}if(K2==0) //检测按键K3是否按下{Delay1ms(10); //消除抖动if(K2==0){if(SetPlace==0){Tsecond[m]=Tsecond[m]+1;if(Tsecond[m]>=60)Tsecond[m]=0;}elseif(SetPlace==1){Tminit[m]=Tminit[m]+1;if(Tminit[m]>=60)Tminit[m]=0;}else{Thour[m]=Thour[m]+1;if(Thour[m]>=24)Thour[m]=0;}}while((i<50)&&(K2==0)) //检测按键是否松开{Delay1ms(10);i++;}i=0;}//数值转换为LED数码管显示if(SetPlace==0&&CT>1000){disp[7] = 0;disp[6] = 0;}else{disp[7] =DIG_CODE[Tsecond[m]%10];disp[6] =DIG_CODE[Tsecond[m]/10];}disp[5] = 0X40;if(SetPlace==1&&CT>1000){disp[4] = 0;disp[3] = 0;}else{disp[4] =DIG_CODE[Tminit[m]%10];disp[3] =DIG_CODE[Tminit[m]/10];}disp[2] = 0X40;if(SetPlace==2&&CT>1000){disp[1] = 0;disp[0] = 0;}else{disp[1] =DIG_CODE[Thour[m]%10];disp[0] =DIG_CODE[Thour[m]/10];}}//检测是否到设定的时间if(TR0==1){if(hour==Thour[1])if(minit==Tminit[1])if(second==Tsecond[1]){Switch=1;BCT=4000; //值为4000报警时长十秒钟左右}if(hour==Thour[0])if(minit==Tminit[0])if(second==Tsecond[0]){Switch=0;BCT=2000;}if(BCT>0){BCT--;Beep= 1;Delay1ms(1);Beep= 0;Delay1ms(1);}}//--显示时钟--//DIG=0; //消隐switch(Num) //位选,选择点亮的数码管,{case(7):LSA=0;LSB=0;LSC=0; break;case(6):LSA=1;LSB=0;LSC=0; break;case(5):LSA=0;LSB=1;LSC=0; break;case(4):LSA=1;LSB=1;LSC=0; break;case(3):LSA=0;LSB=0;LSC=1; break;case(2):LSA=1;LSB=0;LSC=1; break;case(1):LSA=0;LSB=1;LSC=1; break;case(0):LSA=1;LSB=1;LSC=1; break;}DIG=disp[Num]; //段选,选择显示的数字。