毕业设计(论文)-口语控制的多路电子开关.doc_第1页
毕业设计(论文)-口语控制的多路电子开关.doc_第2页
毕业设计(论文)-口语控制的多路电子开关.doc_第3页
毕业设计(论文)-口语控制的多路电子开关.doc_第4页
毕业设计(论文)-口语控制的多路电子开关.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南理工学院毕业设计(论文)学业论文题目:口语控制的多路电子开关作 者: 届 别: 2015 院 别: 机械学院 专 业: 机械电子工程 指导教师: 职 称: 副教授 完成时间: 2015年5月8日 V毕业论文诚信声明我声明, 所呈交的毕业设计(论文)是本人在老师指导下进行的研究工作及取得的研究成果。据我查证,除了特别加以标注和致谢的地方外,设计(论文)中不包含其他人已经发表或撰写过的研究成果。也不包含为获得其他教育机构的学位或证书而使用过的材料。我承诺,设计(论文)中的所有内容均真实、可信。 毕业设计(论文)作者签名: 年 月 日 毕业设计(论文)指导教师签名: 年 月 日摘要 本文设计的是一种语音控制的多路电子开关,用于家庭智能家居的电源开关。该开关既可以象传统开关一样手动操作,用户还可以通过口语发出开关闭合和断开的命令,控制家用照明灯等电气产品。本论文研究内容包含对所学的控制工程基础、电子线路、计算机应用技术、检测技术和机电传动技术等相关知识进行灵活运用,包括对编程设置单片机I/O口的输出,从而控制电子开关的开启与关闭。本电子开关还具有万年历功能,使用方便快捷、安全,为家庭智能家居的电源开关的一种新型电子产品。关键字:LD3320;电子开关;光电隔离;语音识别AbstractThis paper is the design of a multi-channel voice controlled electronic switch, power switch for the smart home Home Furnishing. The switch can be the same as the traditional manual switch, users can also send commands through oral switch and disconnect, control home lighting and other electrical products. The content of this paper includes the study of control engineering and electronic circuit, computer application technology, detection technology and electromechanical transmission technology and other related knowledge flexibly, including setting the output of the microcontroller I/O port programming, so as to control the opening and closing of the electronic switch. The electronic switch also has a calendar function, convenient use, safety, a new type of electronic products for the power switch of the intelligent home of the family.Keywords: LD3320; electronic switch; photoelectric isolation; speech recognition目录摘要II目录第一部分 口语控制的多路电子开关硬件的各部分组成1第1节 口语控制的短路电子开关概述11.1.1 多路电子开关概述11.1.2 本论文设计任务1第2节 多路电子开关的硬件设计11.2.1 硬件构成及其功能11.2.2 关于AT89C51单片机及其引脚的介绍21.2.3 键盘控制和实时显示电路41.2.4 光电隔离器51.2.5 电磁继电器61.2.6 电源电路61.2.7故障报警7第三节 LDCC20语音芯片71.3.1 简介71.3.2 LD332X芯片的参数描述如下:81.3.3 语音芯片工作原理9第二部分 口语控制的多路电子开关的控制部分10第一节电子时钟设计102.1.1由单片机AT89C51、LCD1602和外围元件组成的电子时钟102.1.2单片机的选择112.1.3显示模块的选择112.1.4系统的控制器件122.1.5 电源电路基本要求122.1.6整体方案的选择:132.1.7软件的流程图13第2节 按键即控制模块142.2.1主函数:142.2.2秒脉冲发生器142.2.3时间的处理:152.2.4键盘中断:152.2.5星期的设置与计算:152.2.6天数的设置与计算:16第3节 语音芯片162.3.1语音芯片的驱动调试步骤17第四节 开关控制部分182.4.1光电隔离器的驱动电路182.4.2 继电器驱动动电路182.4.3单片机定时器定时开关19参考文献22致谢23附录124附录233第一部分 口语控制的多路电子开关硬件的各部分组成第1节 口语控制的短路电子开关概述1. 1.1 多路电子开关概述 多路电子开关是由单片机AT89C51控制电路、按键电路与LCD显示电路和光电隔离以及开关电路组成,电路比较复杂,主要由单片机C51芯片编程来实现的,功能齐全,时间精度非常高,是一款很实用的家庭智能家居的电源开关。1.1.2 本论文设计任务 控制要求: 控制方式: 手动方式:手动操作开关的断、合; 语音命令方式:通过发口语命令控制开关的断、合; 程序控制方式:通过程序定时、预约控制开关的断、合。性能与技术要求:*开关路数:6路; *开关通断电流:1A;*电源AC220V10%; *3路开关设有掉电保护功能第2节 多路电子开关的硬件设计1. 2.1 硬件构成及其功能智能开关控制的原理框图如图1所示。根据电子开关的控制要求,确定整个系统的输入、输出设备的数量,确定单片机的人机接口界面,从而确定单片机的I/O端口数,以及对单片机特殊功能模块(语音模块)的需求,进行单片机的选型及方案论证并完成语音多路电子开关的设计。图1-11.22 关于AT89C51单片机及其引脚的介绍 我们常用的AT89C51单片机是51系列单片机中的其中一种与Intel MCS-51系列单片机的指令和输出管脚相兼容,内部4K字节可编程FLASH可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)属于低电压、高性能微处理器,与Intel MCS-51系列单片机的指令和输出管脚相兼容。此单片机机构十分简单,价格便宜,属于效率高,功能强大的一种微控制系统,具有很高的性价比。 AT89C51有40个引脚,基本结构如下图1-2图1-2 AT80C51 AT89C51芯片的部分引脚功能如下(图1-2):RST:复位输入。当RST变为高电平维持2个周期是,I/O引脚复位至“1”。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡放大器的输出。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 P1口8位准双向I/O口(“准双向”是指该口内部有固定的上拉电阻)。位结构如图2-5所示。 P1口能驱动为4个LSTTL门。 P2口8位准双向I/O口。在不并行扩展外存储器(包括并行扩展I/O口)时, P2口可用作双向I/O口。在并行扩展外存储器(包括并行扩展I/O口)时, P2口可用于传送高8位地址(属地址总线) 。P2口能驱动4个LSTTL门。P2口的位结构如图2-6所示,引脚上拉电阻同P1口。在结构上,P2口比P1口多一个 P3口8位准双向I/O口。可作一般I/O口用,同时P3口每一引脚还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。P3口驱动能力为4个LSTTL门。表1 P3口特殊功能 P3口引脚特殊功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通) 电路主要是利用单片机AT89C51作为其中的主控制元件,通过外围电路来控制机械元件,以达到定时打开和闭合的目的。AT89C51具有体积小、功能强大、运行速度快、价格低廉等优点,非常适合制作集成度较高的控制电路。1.23 键盘控制和实时显示电路如图1-3采用独立按键,分别与计算机的I/O口进行连接。但是为了减少单片机I/O口的使用,本次采用了4X2式键盘,如下图3所示图1-3 开关电路 如图1-4 控制部分采用了AT89C51,显示部分为1602LCD液晶显示,1602LCD可以减小系统的功耗,从而不推荐使用数码管作为显示器,并且1602LCD芯片接通电源可以直接用单片机编程对它进行操作。下图为控制电路以及显示电路原理图4。图1-4 显示电路1.2.4 光电隔离器如图1-5光电隔离器OC,也称光耦合器,简称光耦。光耦合器以光为媒介输入电信号,它对电信号具有良好的隔离作用,所以,它在各种电路中使用比较广泛。光耦合器一般组成:如图5图1-5 光电耦合器光发射光接收信号放大目前,在A/D模拟转换开关,交流继电器等很多方面都应用广泛。1.2.5 电磁继电器如图1-6电磁继电器一般由触点片,铁芯,线圈,衔铁等四部分组成。在线圈两端加上一定的电压,产生电流,别可以产生电磁效应,从而使常开触点闭合,断电则电磁效应消失,常闭触点闭合。如图6图1-6 电磁继电器1.2.6 电源电路该系统应该自行设计一个稳压电源模块,采用5V固定输出,用来减轻有过流、过热和调整管安全工作区的影响,以防过载而是设备损坏。从而为整个系统的工作提供了可靠稳定的环境1.2.7故障报警图1-7 报警器如图1-7该次仿真采用ls1发生器,当系统遇到短路或者过载时给现场人员警示作用,以便维修人员查找故障。第三节 LDCC20语音芯片1.3.1 简介LD3320是一颗基于非特定人语音识别技术的语音识别/声控芯片。真正的提供了语音识别的解决方案。LD3320的芯片上覆盖高精度的A/D,D/A接口,不再需要外接辅助的FLASH以及RAM,即可实现语音识别和人机对话功能。重要的是可识别的关键词语列表时可以动态编辑的。在产品中,包括最简单的C51单片机为主的控制系统中,可以容易的实现语音识别/人机对话功能。LD332X芯片是一款“语音识别”专用芯片。该芯片集成了语音识别处理器和一些外部电路,包括AD、DA转换器、麦克风接口、声音输出接口等。不需要外接任何的辅助芯片如Flash、RAM等,直接集成在现有的产品中即可以实现语音识别/声控/人机对话功能。真正提供了单芯片的语音识别解决方案。这是一款有关语音识别开发的的专用芯片,在LD3320的内部,固化有高效完整的非特定人语音识别特征库以及非特定人语音识别搜索引擎模块,具有语音识别的硬件加速设备不仅仅提供了DSP来运行外部语音识别的各种软件软件算法。由此: LD3320不需要外接的Flash存放语音识别Code和语音特征库。 LD3320不需要外接的RAM来运算语音识别。 LD3320不需要外接的管理芯片或者加密芯片或者其他特别芯片来协同运行。 LD3320不需要连接PC机或者其他HOST机下载语音特征库或者HMM特征库。 LD3320同样不需要外接其他芯片和设备来完成MP3播放功能。语音识别可以对用户进行多重处理,所以在LD3320芯片内部集成了高精度16bit的AD,DA的高效率的转换器,我们不但可以在芯片的AD输入PIN上,也可以将耳机等语音设备接在芯片的DA输出PIN上。所以并不需要其他的AD/DA相关的辅助芯片来完成音频输入输出的 工作。由于LD332X芯片的这些专用设计,用户只需要把LD332X一颗芯片集成进产品中,就可以实现语音识别功能。真正提供了单芯片的语音识别解决方案。1.3.2 LD332X芯片的参数描述如下:内置单声道 mono 16-bit A/D 模数转换内置双声道 stereo 16-bit D/A数模转换内置20mW双声道耳机放大器输出内置550mW单声道扬声器放大器输出支持并行接口或者SPI接口内置锁相电路PLL,输入主控时钟频率为2MHz - 34MHz工作电压: 3.3V48pin的QFN 标准封装 (7*7*0.85mm)省电模式耗电:1uA内置PLL电路,芯片接受的外部频率为234MHz1.3.3 语音芯片工作原理LD3320提供的语音识别技术,是基于关键词语列表的识别技术:ASR技术。语音识别芯片完成的工作就是:把通过MIC输入的声音进行频谱分析-提取语音特征-和关键词语列表中的关键词语进行对比匹配-找出得分最高的关键词语作为识别结果输出。LD3320语音芯片可以进行频谱分析,然后进行信息的提取,在输入到语音识别系统,与关键词进行比较,同意整理信息,进行拼音串处理。如图所示图1-8 LD3320第二部分 口语控制的多路电子开关的控制部分 口语控制的多路电子开关可以有多种应用,不仅仅局限于控制电路的打开与闭合,更可以用来当做家庭智能家居的一种扩展。此次口语控制的多路电子开关的设计主要拥有两方面的日常应用。第一部分为计时部分,即可应用于家用的万年历,可以为房屋节约空间,美化房间的设计;第二部分主要是口语控制的电子开关部分,用于人机交互,口语控制方面。第一节电子时钟设计2.1.1由单片机AT89C51、LCD1602和外围元件组成的电子时钟。见表2表 2电源 5VAT89C51 单片机1开关按钮4LCD1602显示器1NPN三极管1电阻 10K1滑动变阻器 10K1电容10uF1电容30pF2晶振12MHZ12.1.2单片机的选择单片机采用AT89C52,为12M的晶振频率,通过计算1s=1M*1*106,即106个机器周期是1s,所以在使用定时计数器中断得过程中,选择50000个指令周期为一个完整的中断周期,然后再设置一个flag,即当flag=20时表示时间是1s,在通过控制进位键,来控制中断的形式,通过这种方式来控制键盘的中断信号。2.1.3显示模块的选择图2-1如图2-1 LCD接口引脚功能表3LCD接口引脚功能表引脚号符号状态功 能1Vss电源地2Vdd+5V逻辑电源3V0液晶驱动电源4RS输入寄存器选择1:数据;0:指令5R/W输入读、写操作选择1:读;0:写6E输入使能信号7-14DB0三态数据总线(LSB-HSB)15LEDA输入背光+5V 16LEDK输入背光地采用LCD作为此次的显示器件。选择LCD作为主要显示模块主要因为它经济实惠,并且完全能够满足要求。2.1.4系统的控制器件图2-2如图2-2主要是按键的选择。此次应用的是微动开关,也是单片机仿真中比较常用的一种开关。微控开关的连接点间隔和快动机构很微小,它的外部具有拉动杆的以后总开关。所以也可以称它为灵敏开关。当传动元件上的作用力消失后,其中的簧片产生反向动作力,当传动元件反向距离达到一定程度后,会瞬时完成反向动作。微动开关的触点之间距的小、动作行程路程短、反应迅速等特点。其动触点的动作速度同传动元件动作速度时没有无关的。2.1.5 电源电路基本要求为保证数据采集系统有一个比较稳定的工作环境,本文为此系统设计了一个稳压电源模块,电路原理如下图所示,开关电源模块为5V固定输出,采用了稳压模块7805,该集成稳压模块具有过流保护、过热保护和调整管安全工作区保护的作用,以防止过载而损坏。为整个系统提供了可靠性能和稳定性能。2.1.6整体方案的选择: 按系统的设计要求,系统主要分为主控模块、显示模块、按键三个部分。主控模块为单片机,显示部分为LCD1602,按键为3个微动开关。图2-3 显示电路仿真图2.1.7软件的流程图图2-4第2节 按键即控制模块2.2.1主函数:主要是初始化数据与各个I/O口和LCD显示的,所以main()函数中,除了初始化的语句以外最后只有一个while(1)着是使单片机进入循环中,目的是等待中断信号并且及时处理它2.2.2秒脉冲发生器秒脉冲发生器是由定时器T0和内存空间TT0配合完成的。T0工作于16位计数器模式,当T0向上计数由全1变为全0时产生中断,本程序中T0的初值为0DC00H,大约0.01秒中断一次。这里使用的晶振频率为11.0592MHz,由此可计算出日误差约为0.78S。工作过程:如图4流程图所示,产生中断后,首先保存ACC和PSW的值,然后为T0重装初值,判断中断次数是否小于100,是则转出中断服务,反之则为秒计数器加1,秒计数器如果大于59,则为分计数器加1,同时秒计数器清0。同样分计数器如大于59则为时计数器加1,同时分计数器清0,时计数器如大于23则清0并转出中断服务。T0中断100次的时间刚好为1秒钟。2.2.3时间的处理: Q1为NPN三极管,通过Q1来实现中断与按键的监测。图中三个按键(由上到下)为菜单(mean)、确定(ok)、设置键(set)。Mean键与单片机P1.0口相连,ok键与P1.1口连接,set键与P1.2口相接。另一端与三极管相连。Mean键为菜单键,ok为确定键,set为设置键。按下mean并在1s内按下ok键进入设置菜单,使用set键选择需要设置的目标,使用ok键确定,再按set设置时间。例如设置小时:首先进入菜单,点击set选择小时选项,点击ok确定小时的选择,再次点击set设置小时的数据,最后点击ok键确定设置并退出。2.2.4键盘中断:三个按键都通过NPN三极管相连,当按键首次接通,先判断接通的是哪一个按键,mean键被按下时,键盘flag_en_key=1,否则flag_en_key=0(禁止)程序则一直停在此按键部位,而其他按键则被屏蔽。Set键则有两种效能,与ok键配合使用。当flag_ok=0时set键用来选择设置对象(即对年月日时分秒的选择),当flag=1时set键则会被用来处理数据使用,当置的对象已经被确定,再次按下ok键是退出设置模式。2.2.5星期的设置与计算:预定程序中时间的起始点是2000-01-01(周六)。所以需要那天就是与2000-01-01的天数之差在除以7所求得余数。2.2.6天数的设置与计算:总体方法为年+月+天 。计算年差,把年的天数加上。加上前一年的天数,注意区分闰年与平年的差别。计算月份的天数。加上此月以前的月份天数。2月比较特殊,与年计算有关。先判断闰年平年,再计算天数。5-6日,则+6天。第3节 语音芯片图2-5 LD3320仿真电路2.3.1语音芯片的驱动调试步骤图2-6 LD3320模块(1)写时序步骤:l 并行数据端口设置为输出,送写入地址;-功能端口A0拉高,-CSB拉低,-WRB拉低,-WRB拉高,-CSB拉高,-A0拉低;l 往并行数据端口送写入数据,-A0拉低,-CSB拉低,-WRB拉低,-WRB拉高,-CSB拉高,-AO拉高,延时一下。l B0口 仅仅是11中断口作为输入 其余都是输出 中断口默认输入时高电平 001 带上拉的输入引脚 l 12口 是测试效果灯 低电平输出l LD_INDEX_Data 是接到了A口的最高位上 815l LD_INDEX_Data端口设置为输出,往LD3320写数据和地址l 读时序步骤:(自己在这里感觉问题还是蛮多的,是否有些信号需要重复写,直接返回单片机的IO口,能够读到数据吗) l 并行数据端口设置为输出,送写入地址;-功能端口A0拉高,-CSB拉低,-WRB拉低,-RD拉高,-WRB拉高,-CSB拉高,-A0拉低;-单片机并行端口设置为输入,返回8位端口直接获取端口的数值(这里有问题吗?)-A0拉低,-CSB拉低,-WRB再次拉高(感觉前面已经拉高了,觉得是多余的),-RD拉低,-RD拉高,-WRB拉高,-CSB拉高,-A0拉高,延时;l 将并行端口设置为输入,从LD3320上获取数据。与单片机上数据相匹配。第四节 开关控制部分2.4.1光电隔离器的驱动电路图2-7如图2-7为部分光电隔离器。K0-K7分别于单片机的P0.0-P0.7相连,由单片机的P0口发出信号,当P0.0为高电平时,在1和2两端都为高电平,则发光二极管之间没有电流通过,发光二极管不导通,导致4和5 的电位无法相同,所以在这种情快下P0.0信号无法发送给电磁继电器,所以电路不导通,指示灯不亮;当P0.0为低电平时,在1端为高电平,在2端为低电平,则发光二极管之间有电流通过,发光二极管导通,导致4和5 的电位相同,所以在这种情快下P0.0信号发送给电磁继电器,电路导通,指示灯亮。2.4.2 继电器驱动动电路图2-8如图2-8所谓的继电器其实就是电子机械开关,他的工作原理如下: 当线圈中有电流流过时,铁芯中产生了磁场,然后把与之相对应的铁片相吸引,使继电器的铁片与另一个接口相接处,即,使常闭开关断开,常开开关闭合,是电路导通。 当线圈中没有电流流过时,铁芯中无法产生了磁场,不能把与之相对应的铁片相吸引,所以继电器的铁片与另一个接口相无法接触,即,使常开开关断开,常闭开关闭合,是电路断开。 AT89S51单片机的P0.0口输出的为低电平时,5V电源加到继电器线圈两端,继电器吸合,继电器的常开触点闭合,则开关闭合。 当AT89S51单片机的P0.0口输出高电平时,光电耦合器截止,继电器线圈两端不产生电位差,继电器衔铁不产生电磁感应,继电器的常开触点释放,则开关断开。注意的是,在光电耦合器截止的瞬间,线圈中的感应电流不能突变为0,而会使继电器线圈的两端产生较高电压的感应电动势E,容易使电磁继电器过载而烧毁,所以光电耦合器同时也具有保护的作用。2.4.3单片机定时器定时开关图2-9开关电路调试步骤l 开始-变量初始化-定时器初始化-中断初始化-调用显示子函数(反复调用)。定时器T0、T1初始化与外部中断0()相对应的子函数中,定时器T0、T1的工作模式为方式1,定时时间为50ms。然而定时器的工作在中断方式的过程中,即定时时间到达之后,会立即停止执行主函数,转而去执行中断服务函数部分。l 当定时时间设置好后,系统则不断的查询该情况下是否到所预定的时间,定时开关开所接端口P00=1,则电磁继电器闭合,指示灯亮,同时是控制蜂鸣器报警变量设置时间值开始变化,蜂鸣器两端高低点位不断交替变化产生交流信号使蜂鸣器报警。当程序执行过程中的中断为0控制着定时器的启动和暂停,当暂停时可修改实时时钟的时间,程序查询检查mean键和set按键是否按下,set键选择设定位“时、分、秒”,mean键则控制主菜单。Key键与mean键配合来切换显示模式,包括3方面:实时时钟,定时关时间,定时开时间。在模式切换时对应LCD显示,当I/O为低电位是,在定时开关状态下即可由mean键set键和key键设置定时的时间值,mean键与set键的功能与实时时钟设置相同。图2-10如图2-10外部中断0中断服务函数以上显示的函数中,通电复位后位数码管显示“-”。包括时钟转换函数,定时器数据转换为分的十位和个位,但数字超过60的时候再转换为小时的十位和个位。l同时在计时的子函数中,规定为50ms中断1次,计数器中计数值=1200时,大约为1分钟。分钟计数器计数值=60时,时间为1小时.。预约时间到,单片机PP0.0-P0.7引脚输出低电平,使光电耦合器导通,继电器的线圈两端产生高低点位,产生电磁效应,是电圈对铁片产生吸合的动作,电路接通,显示灯来亮。参考文献1曾繁泰,陈美金.VHDL程序设计M.北京:清华大学出版社,2000.2 李及.MCS-96系列单片机原理与应用M.长春:吉林科学出版社,1996.3 何立民.单片机应用技术选编M.北京:北京航空航天大学出版社,1997.4 王洪庆 主编.微型计算机控制技术 机械工业出版社 .2012.95 王静霞 主编. 杨宏丽 刘俐 副主编.单片机应用技术 C语言版电子工业出版社.20126朱定华.单片机原理及接口技术实验M.北京:北方交通大学出版社,20027何立民.MCS51系列单片机应用系统设计系统配置与接口技术M.北京:北京航空航天大学出 .版社,1999.8李光.单片机基础.北京:北京航空航天大学出版社,1994 9倪晓军.单片机原理与接口技术教程.北京:清华大学出版社,2009 10姚年春.向华Protel99SE基础教程.北京:人民名邮电出版社,2009 11韩颖.Proteus在单片机技术实训中的应用J;中国科教创新导刊,2008,31期12李广弟等.单片机基础M.北京航空航天出版社,2001. 13王东峰等.单片机C语言应用100例M.电子工业出版社,2009. 14陈海宴.51单片机原理及应用M.北京航空航天大学出版社,2010. 15刘守义等.单片机技术基础M.西安电子科技大学出版社,2007. 16钟富昭等.8051单片机典型模块设计与应用M.人民邮电出版社,2007. 17李平等.单片机入门与开发M.机械工业出版社,2008.致谢大学的生活转眼即逝,我的毕业论文口语控制的多路电子开关终于完成了。在大学期间,我在学习上和思想上受益非浅,这既包含自身的努力,更离不开各位老师、同学和朋友的关心、支持和照顾。在论文的写作过程中,我的导师余老师给予我们很大的帮助,无论是从选题到开题报告,还是到从写作提纲,一遍又一遍地指出每稿中的具体问题,严格把关,悉心教导,在此我衷心感谢余老师的无微不至的照顾。同时我还要感谢在我学习期间给我极大关心和支持的其他老师以及关心我的同学和朋友。 写作毕业论文是再次学习的过程,也是一次重要的实践。通过完成毕业论文的这个过程,也同时意味着新的学习与工作生活的开始。无论我将来做什么工作,或学习,或奔波,都会在今后的工作中把余老师无私奉献,悉心教导的优良传统发扬光大。36附录1程序清单#includesbit K1=P30;sbit K2=P31;sbit K3=P32;sbit K4=P33;unsigned char Time=0;/用来计时间的值#define DIGP0sbit LSA=P22;sbit LSB=P23;sbit LSC=P24;sbit LED0=P20;sbit LED1=P21;sbit Beep=P15;sbit Switch=P10;unsigned char code DIG_CODE10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/0123456789unsigned char Num=0;unsigned int disp8=0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f;unsigned char hour=0,minit=0,second=0;unsigned char Thour2=0,0,Tminit2=0,0,Tsecond2=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(CT2000)CT=0;if(K1=0)/检测按键K2是否按下Delay1ms(10);/消除抖动if(K1=0)SetPlace+;if(SetPlace=3)SetPlace=0;while(i=60)second=0;else if(SetPlace=1)minit+;if(minit=60)minit=0;elsehour+;if(hour=24)hour=0;while(i1000)disp7 = 0;disp6 = 0;elsedisp7 = DIG_CODEsecond%10;disp6 = DIG_CODEsecond/10;disp5 = 0X40;if(SetPlace=1&CT1000)disp4 = 0;disp3 = 0;elsedisp4 = DIG_CODEminit%10;disp3 = DIG_CODEminit/10;disp2 = 0X40;if(SetPlace=2&CT1000)disp1 = 0;disp0 = 0;elsedisp1 = DIG_CODEhour%10;disp0 = DIG_CODEhour/10;else/设定定时时间 /设置定时点m=Count-1;CT+;if(CT2000)CT=0;if(K1=0)/检测按键K2是否按下Delay1ms(10);/消除抖动if(K1=0)SetPlace+;if(SetPlace=3)SetPlace=0;while(i=60)Tsecondm=0;else if(SetPlace=1)Tminitm=Tminitm+1;if(Tminitm=60)Tminitm=0;elseThourm=Thourm+1;if(Thourm=24)Thourm=0;while(i1000)disp7 = 0;disp6 = 0;elsedisp7 = DIG_CODETsecondm%10;disp6 = DIG_CODETsecondm/10;disp5 = 0X40;if(SetPlace=1&CT1000)disp4 = 0;disp3 = 0;elsedisp4 = DIG_CODETminitm%10;disp3 = DIG_CODETminitm/10;disp2 = 0X40;if(SetPlace=2&CT1000)disp1 = 0;disp0 = 0;elsedisp1 = DIG_CODEThourm%10;disp0 = DIG_CODEThourm/10;/检测是否到设定的时间if(TR0=1)if(hour=Thour1)if(minit=Tminit1)if(second=Tsecond1)Switch=1;BCT=4000; /值为4000报警时长十秒钟左右if(hour=Thour0)if(minit=Tminit0)if(second=Tsecond0)Switch=0;BCT=2000;if(BCT0)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=dispNum; /段选,选择显示的数字。Num+;if(Num7)Num=0;/* 函 数 名 : Delay

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论