南邮单片机试验——小型定时开关控制系统设计
基于单片机的定时开关控制器的设计与实现毕业设计论文

目录摘要----------------------------------------------------------------- I关键词--------------------------------------------------------------- I Abstract ------------------------------------------------------------- I Key words ------------------------------------------------------------ I 1 引言--------------------------------------------------------------- 1 1.1研究背景与应用------------------------------------------------- 11.2主要研究内容--------------------------------------------------- 22 系统基本方案的选择与论证-------------------------------------------3 2.1本设计方案思路------------------------------------------------- 3 2.2可控开关设计的选择---------------------------------------------4 2.3时钟信号的实现------------------------------------------------- 52.4译码方案的选择------------------------------------------------- 73 硬件设计---------------------------------------------------------- 10 3.1可控开关电路-------------------------------------------------- 113.2电平转换电路-------------------------------------------------- 12 3.2.1 LM7805稳压电路------------------------------------------- 12 3.2.2 RS232电平转换电路---------------------------------------- 13 3.3单片机系统电路------------------------------------------------ 13 3.3.1单片机P89V51简介----------------------------------------- 13 3.3.2 P89V51RD2的时钟电路-------------------------------------- 153.4显示电路------------------------------------------------------ 164 软件设计---------------------------------------------------------- 17 4.1总体方案------------------------------------------------------ 17 4.2主程序流图---------------------------------------------------- 174.3中断模块说明-------------------------------------------------- 195 制作与调试-------------------------------------------------------- 19 5.1硬件电路的布线与焊接------------------------------------------ 19 5.1.1总体特点-------------------------------------------------- 19 5.1.2 电路划分与PCB的制作-------------------------------------- 19 5.1.3 焊接------------------------------------------------------ 20 5.2调试---------------------------------------------------------- 215.3改进与扩展---------------------------------------------------- 216 结论-------------------------------------------------------------- 21 参考文献------------------------------------------------------------ 22致谢---------------------------------------------------------------- 24 附录---------------------------------------------------------------- 24基于单片机的定时开关控制器的设计与实现摘要随着时代的进步,电子行业的发展,定时器的应用也越来越广泛。
基于单片机的简易智能定时电源开关

SCM Technology •单片机技术Electronic Technology & Software Engineering 电子技术与软件工程• 235【关键词】STC89C52RC 数码管 定时器 继电器智能家居是通过网络技术和硬件服务协同合作,将电子产品接入互联网,实现个性化的自定义操作。
智能设备是常见设备安装了更复杂的计算机处理系统,以实现提供更多功能。
有线宽带、DSL 、蓝牙和无线技术提供了一种接入方法使家庭联网,并使设备能够相互通信以及接入互联网,这些技术为智能家居的运营奠定了基础。
对于家电而言,可以通过智能供电达到一定的智能管理。
例如,家庭的空调若可以独立来设置开启和关闭的时间,便可大幅减少用电量、节约电能。
智能电源定时开关不仅可以广泛应用于家用电器、仪器仪表、航空航天、医用设备、专用设备的智能化管理以及过程控制等多个领域。
此外,还为各个领域的发展做出了贡献,其不仅体积小、重量轻,且电源效率较高,效率甚至可达90%以上。
智能电源定时开关的高效率不仅节省了大量材料且还节省了电能,给人们的生活带来了便利。
因此,高效率的定时开关电源成为了各种设备可靠工作的重要保障。
1 系统分析与框架设计1.1 研究目标智能定时电源开关是智能家居控制系统的基础组成部分,同时也是高效能源利用网络基于单片机的简易智能定时电源开关文/刘艳竹的组成部分之一。
在家庭设备的自动监控、控制和数据采集上,通过对电路系统中部分组件供电电源进行智能开合控制,是对家庭设备实现智能控制的一种简易部署方式。
(1)监控家用电器,按照预先设定的程序要求对家用电器进行监控,减少家庭安全隐患。
(2)照明设备、取暖设备、制冷设备的个性化控制,让户主进屋之后减少等待时间。
(3)起居室幕帘的自动控制,伴随着主人以及当地日照的信息,智能打开/关闭幕帘。
可以发现,针对智能家居的定时管理,智能供电是其中较为基础的模块与实现方法。
因此,本文围绕此设计简易的定时电源开关系统。
毕业设计(论文)-无线遥控定时开关插座设计

精选文档无线遥控定时开关插座设计Design of Timing Switch Socket usingWireless Remote Control Technology学 院:信息科学与工程学院专 业 班 级:测控技术与仪器1204班学 号:学 生 姓 名:指 导 教 师:)2016 年 06月毕业设计(论文)指导教师审阅意见题目:无线遥控定时开关插座设计毕业设计(论文)评阅教师审阅意见题目:无线遥控定时开关插座设计毕业设计(论文)成绩评定专业毕业设计(论文)第答辩委员会于年月日审阅了班级同学的毕业设计(论文),听取了该生的报告,并进行了答辩。
毕业设计(论文)题目:毕业设计(论文)答辩委员会意见:经答辩委员会无记名投票表决,通过同学本科毕业设计(论文)答辩。
根据学校相关规定,经答辩委员会认定,该生的毕业设计(论文)成绩为。
专业毕业设计(论文)答辩委员会主任委员(签字)年月日摘要随着家用电器的越来越普及和人们生活节奏的加快,人们对电器的依赖性进一步提高,对电器的定时需求也进一步增大。
定时开关插座可用于电饭煲、饮水机、电视机、电脑、电动车电池的充电、定时开关电热毯等需要定时供电的场合。
定时开关插座的使用能够做到节能、安全、方便等。
本文设计了一种基于STC89C52单片机的定时开关插座设计方案。
设计一款以STC89C52单片机、DS1302、LCD1602液晶显示、38kHz红外遥控发射接收器为主体,可以工作在预设时间段的远程定时开关。
本设计可以利用红外线对开关进行远程控制,总的系统分为红外遥控发射端和接收端,中间涉及到进行红外的编码与解码,矩阵键盘,电源电路,液晶屏显示的设计。
发射端和接收端都是采用STC89C52单片机作为核心芯片。
程序采用C语言编写,具有更好的移植性和可读性,便于修改和增减功能。
该遥控定时开关可以通过红外按键设置一天内5组任意开关定时时间段。
该系统的时间正确可靠,可扩展性强,既能达到远程智能控制的目的,又在很大程度上降低能源的消耗。
南京工业大学-电子系统设计实验报告

南京工业大学电气工程与控制科学学院课程名称:电子系统设计姓名:XXX学号:XX号班级:自XXXX任课教师:XXX基于STC89C51的数字定时器主要负责部分:一.功能概述:11定时时间的设置范围为1~99min,开机上电后的隐含值为10min。
22实用0.5in红色LED数码管显示时间。
33定时时间可以用按键或其他方式输入。
44定时器控制一个交流220v、1A的用电设备,上电时不允许用电设备瞬时通电。
55定时时间设定后,启动计时,用电设备通电,同时显示器逐分倒计时。
期间,分个位数码管的小数点每2秒闪亮一次。
66计时到0分时,切断用电设备电源。
77计时误差:100min<士10s。
88由用电设备提供+5v电源。
9.低价位。
二.整体方案调研在中文科技期刊数据库(VIP)、中国期刊全文数据库上,利用“数字定时器”词条,在VIP 上“模糊”搜索,共查到3篇相关文章:《一种基于CPLD的多功能数字定时器》、《RFC中分频器/数字定时器的设计》和《用AT89C2051单片机组成的数字定时器》。
前两篇均以CPLD为核心器件构成数字定时器。
第一篇为多功能电路能基本满足课题要求,但缺强电接口。
第二篇为射频控制应用,与课题要求不符。
第三篇最符合课题要求,但还有进一步优化的必要,例如减少按键数、去除LED驱动等。
三.整体方案论证根据设计题目的功能要求,采用自顶向下的拼凑法可以构成如图所示的方框图。
电路的核心应该是一个100进位的可预置数的减法计数器,工作时逐分倒计时。
起始时间由预置数输入之装置加载到计数器。
当前时间由译码驱动电路驱动两位笔段型LED数码管显示。
分减法计数器的分信号由秒/分信号发生器经过启/停控制电路获得。
秒/分信号发生器必须采用石英晶体振荡器用分频的办法分别产生秒和分时钟信号以保证走时精度,前者在计时开始后,使分个位LED数码管的小数点闪亮。
后者在计时启动后,一方面通过驱动电路使继电器动作,用电设备通电,一方面使分信号到计数器。
基于单片机的定时开关控制器

VCC——供电电压。
GND——接地。
P0口——8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被
定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
时钟电路是产生CPU校准时序,是单片机的控制核心。STC89C51RC的时钟信号可通过内部振荡方式和外部振荡方式两种方式得到。本次设计使用的是片内振荡方式,通过外接12MHz的晶振来实现时钟电路的时序控制。在使用片内振荡器时,XTAL1和XTAL2分别为反向放大器的输入端和输出端。外接晶体以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。当使用外部时钟驱动时,XTAL2引脚应悬空,而由XTAL1引脚上的信号驱动,或者XTAL1引脚应悬空,而由XTAL2引脚上的信号驱动。外部振荡器再通过一个2分频的触发器来形成内部时钟所需要的信号。在电容器C1、C2选择时方面,一般选择其值为5~30pF。本系统中所用的电容值为22pF,具体的电路接法如图2-2所示。
附录2中六个独立按键分别和P2.0--P2.5相连接,通过上拉电阻和电源相连接,当按键没有按下时,P2.0--P2.5端口输入为“1”,表示没有信号输入。这六个按键只要有一个按键按下时,8输入与非门74HC30的输出端必然输出高电平(它的逻辑功能为:全1出0,由0出1),经非门电路74LS04倒相后,按键按下时输出为低电平,该低电平信号接单片机的外部中断信号输入端 (即P3.2引脚),从而引起单片机中断正常执行的主程序,转而去执行中断服务程序。
基于单片机的定时开关控制器
摘要:本实验基于STC89C51RC为核心,设计具备按键功能和数码管显示功能的外围硬件电路,以便控制器能够在设定的开关时刻控制输出继电器的动作,进而控制负载电源的启闭,并完成软件程序设计。可以实现电源的直接启动/关闭;也可以通过按键设置负载电源的启动时间,最大预约时间为12小时。
定时开关控制器设计

1.开始键:按下该键,电源接通。或当调时结束后按下该键,电源将在设定时间到达后接通。
2.关闭键:按下该键,切断电源。
3.预约键:第一次按下该键,可以对电源的接通时间进行“小时”调整;第二次按下该键,可以对电源的接通时间进行“分钟”调整。
4.加“1”键:按下该键,调“小时”时间加1,最可加到11;调“分钟”时加1,最大可加到59。即最长定时时间为11小时59分。
程序开始首先对按键变量和小时、分钟变量进行定义,对共阴极数码管的段码(字型码)以一维数组方式定义。另外对延时函数、定时器初始化子函数、求按键子函数、按键处理子函数、计时子函数、显示子函数进行声明。
图3-5 中断触发电路
3.5继电器控制电路
继电器控制电路如图3-6所示。
由于单片机I/O口输出电流小驱动能力有限,从图中可以看出我们利用三极管来控制,通过如图的连接方式,可以提高驱动负载的能力,利用三极管截止和饱和导通去控制继电器的闭合/断开。因为P3.6口作为控制信号的输出口,控制继电器吸合与释放,所以当定时时间未到时,P3.6引脚输出的是高电平,三极管处于截止状态,继电器无动作,开关不会闭合,负载不工作。当定时时间到,P3.6引脚输出的是低电平,三极管饱和导通,继电器动作,开关闭合,负载得电运行。电路如图3-6所示。
2.工作频率范围:0~40MHZ,相当于普通8051的0~80MHZ;
3.STC89C5xRC对应Flash空间:4KB\8KB\15KB;
4.内部存储器(RAM):512B;
5.定时器\计数器:3个16位;
6.通用异步通信口(UART)1个;
7.中断源:8个;
8.有ISP(在系统可编程)\IAP(在应用可编程),无需专用编程器\仿真器;
定时开关控制器设计

定时开关控制器设计设计一个定时开关控制器,主要功能是在指定时间段对电器设备进行开关控制。
下面是一个基于微控制器的设计示例:1.系统概述定时开关控制器主要由具有实时时钟(RTC),电源控制电路,开关电路和控制程序组成。
RTC用于保持系统时间和日期。
电源控制电路用于稳定和保护供电电源。
开关电路用于与外部设备连接,例如灯、电视机等。
控制程序负责处理用户输入和执行开关控制逻辑。
2.硬件设计2.1微控制器选择选择一款带有RTC功能的微控制器,例如ATmega328P。
该微控制器具有较低成本、低功耗和丰富的外设,适合本应用场景。
2.2时钟电路时钟电路由晶体和电容构成,用于为微控制器提供时钟脉冲。
选择合适的晶体和电容值以确保精确的时间计数。
2.3电源电路电源电路由稳压电路和电源适配器构成,用于稳定和保护系统供电。
稳压电路可以使用LM7805线性稳压芯片。
电源适配器需要提供所需的电压和电流。
2.4开关电路开关电路由继电器和相关电路构成,用于与外部设备连接。
选择适当的继电器以匹配所需的电流和电压。
使用继电器驱动电路来控制继电器的开关。
3.软件设计3.1主程序框架主程序循环执行以下步骤:a)读取系统时间和日期。
b)比较系统时间和预设时间,决定是否开关设备。
c)更新系统时间。
d)等待片刻。
3.2用户界面用户可以通过按钮和显示屏与控制器进行交互。
按钮用于设置和修改预设时间。
显示屏用于显示当前时间和日期以及操作状态。
3.3开关控制逻辑开关控制逻辑由用户设置的预设时间决定。
用户可以设置多个时间段和相应的开关状态。
根据当前时间和这些预设时间段的比较,控制程序将决定是否开关设备。
4.性能和功能4.1定时精度通过使用RTC芯片和晶体时钟电路,可以实现相对较高的定时精度。
4.2节能功能可以设置设备在特定时间段保持关闭状态,从而节省能源。
4.3多种模式选择可以设置不同的模式,如自动模式、手动模式和节能模式等。
5.总结本文设计了一个定时开关控制器,利用微控制器和RTC芯片实现了对电器设备的定时开关控制。
毕业设计基于单片机的电源开关的定时控制

目录第1章绪论 (1)1.1单片机发展背景及意义 (1)1.1单片机国内外研究概况 (2)1.2本论文主要研究内容 (4)第2章51单片机基本原理 (6)2.1MCS-51单片机的组成原理 (7)2.2MCS-51单片机的引脚功能 (7)2.3中断 (11)2.4定时器与计数器 (15)2.5本章小结 (13)第3章系统总体设计方案 (13)3.1采用STC89C52为核心的单片机控制方案 (13)3.2方案图 (13)3.3数码管 (18)3.4硬件电路设计 (15)3.5数码管显示电路 (17)3.6设定时间电路设计 (17)3.7继电器控制电源电路 (18)3.8本章小结 (25)第4章软件设计 (26)4.1定时控制软件总体设计 (25)4.2键盘输入程序设计 (25)4.3显示子程序设计 (25)4.4中断程序设计 (25)第5章系统调试分析 (30)5.1系统调试 (30)5.2系统调试结果 (30)5.3本章小结 (30)结论 (32)参考文献 (33)致谢 (34)附录1 软件设计程序 (35)附录2 设计原理图 (40)附录3 系统设计PCB图 (41)第1章绪论1.1单片机发展背景及意义1、单片机与单片机系统1.2 单片机国内外研究概况(1)、单片机的产生(2)、单片机的发展第一阶段(1971~1974年)1第二阶段(1974~1978年):初级单片机阶段第三阶段(1978~1983年):高性能单片机阶段第四阶段(1983年~):8位单片机巩固发展及16位单片机推出阶段单片机应用领域1、在智能仪器仪表的应用2、在家用电器中的应用当3、在工业控制中的应用4、在计算机网络和通信领域中的应用5、单片机在医用设备、军用领域中的应用6、单片机在汽车设备领域中的应用单片机的生产厂家和机型1.2论文主要研究内容定时控制电源开关的主要过程是数码管显示时间倒计时,通过键盘可以修改定时时间,在倒计时时间到时,继电器闭合,连接继电器的LED 亮,蜂鸣器响。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告(2017 / 2018学年第学期)课程名称单片机原理及应用实验名称小型定时开关控制系统设计实验时间年月日指导单位指导教师学生姓名学院(系)班级学号专业实验报告一、实验目的和要求1.掌握行列式键盘、LED、数码管、蜂鸣器、继电器等人机接口和机电设备的工作原理,以及使用单片机C语言对其进行控制的方法;2.掌握基于状态转移及定时调度的系统分析方法,并使用此方法对系统软件结构进行分析和设计,实现所要求的功能;3.掌握使用集成开发环境Keil进行单片机程序的设计、开发及调试的方法和过程。
二、实验要求1.通过单片机的IO端口控制人机接口及机电设备,完成一个定时开关的设计;2.定时开关的工作方式可设置为定时开或定时关;3.系统通过行列式键盘接受用户的按键输入,设置工作方式和定时时长;4.系统通过控制LED、数码管及蜂鸣器对用户的操作提供反馈和提示;5.当用户控制计时启动时,系统对用户设定的时长进行倒计时;6.如用户设置系统工作在定时开方式,则倒计时结束(计数到0)时控制继电器吸合;7.如用户设置系统工作在定时关方式,则倒计时开始时继电器吸合,倒计时结束(计数到0)时继电器断开。
三、实验环境(实验设备)PC机、Keil C51集成开发环境、STC增强型51单片机,继电器。
图3.1硬件实物图四、实验原理及内容4.1程序主体流程分析程序^析程序可以分为两个大循环,一个是main函数的循环,一个是定时器1的定时中断任务(T0ISR 函数)。
Main函数的任务主要有3个:1、完成系统初始化。
2、处理定时中断传来的按键任务。
3、处理定时结束的事件(开关继电器、蜂鸣器)。
定时中断任务主要有5个(1ms的定时时长):1、根据任务减小当前剩余时间。
2、刷新键盘。
3、刷新数码管。
4、响蜂鸣器.5、刷新led灯main函数和定时中断的流程如下:代码设计Main函数代码:void main()(〃1、初始化2、处理按键3、处理定时结束事件Init();while(1)( if(keysolved==0) 〃有按键要处理( solveKey(); keysolved=1; //已处理) if(TimeOut==1) 〃定时事件结束( if(Timetype==0) 〃定时开(Open();)else if(Timetype==1) 〃定时关(Close();)TimeOut=0;Laststate=0; )))定时中断服务程序代码如下,其中XXTH通过宏定义为0xFC, XXTL通过宏定义为0X18:void T0ISR() interrupt 1 //1ms 一次(〃1、根据任务减当前剩余时间2、刷新键盘3、刷新显示器4、蜂鸣器TH0=XXTH;TL0=XXTL;cnt++;if(beepOn==1) //如果蜂鸣器开,响蜂鸣器(beep=~beep;)if(cnt==1000)(cnt=0;if(state==2 || state==3)(second--;if(second<0)(minite--;second+=60;if(minite<0)(hour--;minite+=60;if(hour<0)(TimeOut=1; 〃通知主程序处理Laststate=state; 〃保存上一个状态,供主程序处理state=0;hour=minite=second=0;)))))RefreshKey();RefreshBoard();RefreshLedState(); 〃刷新led)4.2系统初始化初始化^析系统初始化主要为初始化定时器,打开定时器中断,初始化相关字段:1、上一次的键盘按压状态和本次键盘按压状态为0xf0。
键盘有没有按压是通过相邻两次定时中断的过程中,如果上一次定时中断没有检测到键盘按压,而本次定时中断服务程序检测到了键盘的按压,则认为键盘被按压了。
有没有检测到键盘的按压是通过采集键盘的输入线状态来实现的,输入线为P0 口的高4位。
如果P0 口高4 位全1,则没有按压,如果高4位有一个是0,则键盘被按压。
采集P0 口的时候注意屏蔽低4位,通过与0xf0相与实现屏蔽低4位。
2、系统的初始化状态。
刚刚进入系统后,系统初始化为状态0.也就是空闲状态。
3、定时任务完成标识TimeOut。
此标识当定时任务计时完成后置1(在中断服务程序内).main函数不断检测此标志,当TimeOut为1的时候,检测当前是定时开还是定时关,并启动相应的函数。
函数执行完成后,置TimeOut为0,表示定时任务处理完成。
4、Keysolved标志,即当前按键已处理完成标志。
在定时中断服务程序中,通过相邻两次的键盘输入线扫描结果是否相同来判断有没有按键按下,一旦有按键按下,则扫描当前行线,采集按键,将按键代码保存到keycode全局变量中,并将Keysolved 设置为0,通知主程序处理。
主程序main函数中不断检测keysolved变量是不是0,来判断当前有没有新的按键要处理,如果keysolved为0,则启动按键处理函数。
程序开始的时候keysolved应该被设置为1.•初始化程序代码其中,XXTH通过宏定义为0xFC, XXTL通过宏定义为0X18:void Init()(TH0=XXTH;TL0=XXTL;TMOD=0x01;ET0=1;TR0=1;EA=1;lastKeyState=0xf0;nowkeyState=0xf0;state=0; 〃初始化为空闲状态TimeOut=0;keysolved=1;)•定时器初值计算定时器采用定时器0的方式1,即16位定时器。
不具备自动重装功能,所以每次在中断服务程序中首先要软件重设定时器初值。
定时器的初值可根据定时公式计算,由于定时器为对机器周期递增计数,定时时长公式可表示如下:定时时长=(216—N) x机器周期由上式解出初值N为:N二216一定时时长机器周期其中,定时时长设置为1ms,晶振频率为12MHZ,所以机器周期为1us。
初值N计算过程如下:N = 216 —1ms = 216 —1000 = 64536 = FC18H 1us所以,定时器高8位TH0位FCH,低8位TL0位18H。
4.3系统状态介绍系统中一共设置了4种状态,通过state全局变量进行记录。
各个状态以及对应的数值如下:State==0:状态0,空闲状态State==1:状态1,设置状态State==2:状态2,定时开(正在运行)State==3:状态3,定时关(正在运行)各个状态的切换条件如下:图4.3.1系统模式切换条件4.4按键处理按键的检测是在定时器0的中断服务程序中进行的,中断服务程序通过调用RefreshKey函数(后面介绍)实现。
当有按键按下的时候,定时中断服务程序通过keycode 全局变量记录下当前的按键代码。
通过keysolved设置为0表明当前按键还没被处理过。
Main函数一旦检测到keysolved为0,即调用solveKey()函数处理当前按键。
并在处理完成后,设置keysolved为1,表明当前keycode里面的按键代码已经被处理过了。
系统的按键采用矩阵键盘,连接在P1端口。
键盘的电路图如下(按键获取查看4.7节)图4.4.1矩阵键盘电路图相关细节设计按键操作限制:每个按键只有在特定的系统状态下才可以被按下,例如+1s按键只能在系统设置状态下被按下,如果不在系统设置状态而被按下,蜂鸣器会发出0.1s的响声提示用户错误操作。
确认键的两个功能:确认键除了在设置状态确认后进入定时状态,还有个功能是在定时结束后关闭的提醒用户的蜂鸣器。
加1与减1的进位与借位:加1s和减1s,加1分,减1分,都要考虑到进位和借位的问题,即59秒加一秒后变为00秒,并且分钟+1, 59分+1分后,变为00分,并且小时加1,。
减一的时候同理。
且要考虑到小时数大于99或者小于0 (由于借位或者本身减去)的时候要提醒用户错误操作(通过蜂鸣器),并设置为临界值(大于99设置为99,小于0设置为0)。
程序代码void solveKey()(if(keycode==0x11) 〃力口1s(if(state==1) 〃只有设置状态才可以+I S(second++;if(second>=60)(second-=60;minite++;if(minite>=60) (minite-=60;hour++;if(hour>=99)(hour=99;beepcnt=BEEPLEN; 〃操作错误,蜂鸣器提示)) ) else (〃操作错误,响蜂鸣器提示beepcnt=BEEPLEN;))else if(keycode==0x12) 〃减1s(if(state==1) 〃只有设置状态才可以-I S (second--;if(second<0) (second+=60;minite--;if(minite<0)minite+=60;hour--;if(hour<0) 〃出现错误,蜂鸣器相(hour=0;beepcnt=BEEPLEN;))))else(beepcnt=BEEPLEN;))else if(keycode==0x21) //+1 分钟(if(state==1) 〃只有设置状态才可以+1分钟(minite++;if(minite>=60)(minite-=60;hour++;if(hour>=99)(hour=99;beepcnt=BEEPLEN; 〃操作错误,蜂鸣器提示)))else(beepcnt=BEEPLEN;))else if(keycode==0x22) //-1 分钟(if(state==1) 〃只有设置状态才可以-1分钟(minite--;if(minite<0)minite+=60;hour--;if(hour<0) 〃出现错误,蜂鸣器提示(hour=0;beepcnt=BEEPLEN;)))else(beepcnt=BEEPLEN;))else if(keycode==0x31) //+1 小时(hour++;if(hour>=99)(hour=99;beepcnt=BEEPLEN; 〃操作错误,蜂鸣器提示))else if(keycode==0x32) //-1 小时(hour--;if(hour<0)(hour=0;beepcnt=BEEPLEN; 〃操作错误,蜂鸣器提示))else if(keycode==0x13) //切换系统状态,只有空闲状态和设置状态可以互相切换,定时状态要在设置状态下按下确认键进入(if(state==0 || state==1)(state++;if(state==2)(state=0;)else (beepcnt=BEEPLEN; 〃操作错误,蜂鸣器提示))else if(keycode==0x14) 〃确认( if(state==1) 〃设置状态可以确认(if(Timetype==0) 〃定时类型0--定时关(state=3;)else 〃1--定时开(state=2;) ) else if(state==0) 〃定时完成跳转到空闲状态,并蜂鸣器报警,按下确认键关闭蜂鸣器(beepOn=0;) else( beepcnt=BEEPLEN; 〃操作错误,蜂鸣器提示))else if(keycode==0x23) //切换定时开还是定时关( if(state==1) 〃设置状态可以互相切换(Timetype++;if(Timetype==2) (Timetype=0;) ) else (beepcnt=BEEPLEN; 〃操作错误,蜂鸣器提示))else if(keycode==0x24) 〃取消当前定时if(state==2 || state==3) 〃定时状态才可以取消(state=0;)else(beepcnt=BEEPLEN; 〃操作错误,蜂鸣器提示))else 〃按键按错了,蜂鸣器提醒(beepcnt=BEEPLEN;))4.5蜂鸣器的用户错误操作提醒功能•蜂鸣器错误提醒的设计思路此功能借助定时器实现,如果当前需要通过蜂鸣器提醒用户按下了错误的按键,则将一个全局变量beepcnt设置为BEEPLEN,BEEPLEN通过宏定义定义为100.在定时器0的定时中断服务程序T0ISR函数中,由于T0ISR函数每1ms执行一次,则执行的时候检测beepcnt是不是大于0,如果大于0,则将beepcnt减一,并将beep取反。