单片机课程设计基于单片机的温度控制智能电风扇.doc

上传人:laozhun 文档编号:4147480 上传时间:2023-04-07 格式:DOC 页数:43 大小:422.50KB
返回 下载 相关 举报
单片机课程设计基于单片机的温度控制智能电风扇.doc_第1页
第1页 / 共43页
单片机课程设计基于单片机的温度控制智能电风扇.doc_第2页
第2页 / 共43页
单片机课程设计基于单片机的温度控制智能电风扇.doc_第3页
第3页 / 共43页
单片机课程设计基于单片机的温度控制智能电风扇.doc_第4页
第4页 / 共43页
单片机课程设计基于单片机的温度控制智能电风扇.doc_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《单片机课程设计基于单片机的温度控制智能电风扇.doc》由会员分享,可在线阅读,更多相关《单片机课程设计基于单片机的温度控制智能电风扇.doc(43页珍藏版)》请在三一办公上搜索。

1、新疆工业高等专科学校电气与信息工程系课程设计基于单片机的温度控制智能电风扇专业班级: 电力系统自动化10-10(1)班学生姓名: 指导教师: 完成日期: 2012-6-8 新疆工业高等专科学校电气与信息工程系系课程设计任务书 11/12学年 下 学期 2012 年 6 月 4 日专业电力系统自动化班级电力10-10(1)课程名称单片机课程设计设计题目基于单片机的温度控制智能电风扇指导教师陈晓云老师起止时间2012.6.42012.6.8周数1周设计地点电气系机房设计目的:1. 掌握keil编程软件及proteus单片机仿真软件的使用;2. 学习掌握单片机的特性及单片机的应用;3. 熟悉掌握单片

2、机的编程语言。设计任务或主要技术指标:本设计是以51单片机为主要控制核心,用51单片机系统对用户设定信号数据的采集以及分析,能通过温度传感器对环境温度进行数据采集,并用各种可控型电子元器件对电风扇各种工作状态,实现“温度高,风力大,温度低,风力弱”的性能的控制,以达到用户需求从而建立一个控制系统。设计进度与要求:1. 先确定设计方案并查阅相关资料;2. 学习keil编程软件及proteus单片机仿真软件并开始绘制电路原理图;3. 编写程序并调试;4. 要求在proteus单片机仿真软件上调试出预定结果,作出报告。主要参考书及参考资料:1 张鑫.单片机原理及应用.电子工业出版社1 明德刚.DS1

3、8B20在单片机温控系统中的应用.贵州大学学报,2006,2 2 黄朝民,肖明清,吴志强.单片机原理与应用.现代电子技术,2006,12 3 刘进山.基于MCS-51电风扇智能调速器的设计.电子质量,2004,10教研室主任(签名) 系(部)主任(签名) 年 月 日新疆工业高等专科学校电气与信息工程系课程设计评定意见设计题目: 基于单片机的温度控制智能电风扇 学生姓名: 张玉杰 专业:电力系统自动化 班级:电力10-10(1)班 评定意见:评定成绩: 指导教师(签名): 年 月 日评定意见参考提纲:1.学生完成的工作量与内容是否符合任务书的要求。2.学生的勤勉态度。3.设计或说明书的优缺点,包

4、括:学生对理论知识的掌握程度、实践工作能力、表现出的创造性和综合应用能力等。摘要风扇和空调的降温效果不同空调有强大的制冷功能,可以快速有效地降低环境温度,但电风扇的风更温和,更加适合老人儿童和体质较弱的人使用;电风扇有价格优势,价格低廉而且相对省电,安装和使用都非常简单。传统电风扇还是有许多地方应当进行改良的,最突出的缺点是它不能根据温度的变化适时调节风力大小,对于夜间温差大的地区,人们在夏夜使用电风扇时可能遇到这样的问题:当凌晨降温的时候电风扇依然在工作,可是人们因为熟睡而无法察觉,既浪费电资源又容易引起感冒,传统的机械定时器虽然能够控制电风扇在工作一定后关闭,但定时范围有限,且无法对温度变

5、化灵活处理。本设计以AT89C51单片机为核心,通过温度传感器对环境温度进行数据采集,从而建立一个控制系统,使电风扇随温度的变化而自动变换档位,实现“温度高,风力大,温度低,风力弱”的性能。另外,通过键盘控制面板,用户可以在一定范围内设置电风扇的最低工作温度,当温度低于所设置温度时,电风扇将自动关闭,当高于此温度时电风扇又将重新启动。 关键词:单片机、程序控制、自动调温、智能调速1设计任务本设计以AT89C51单片机为核心,通过温度传感器对环境温度进行数据采集,从而建立一个控制系统,使电风扇随温度的变化而自动变换档位,实现“温度高,风力大,温度低,风力弱”的性能。另外,通过键盘控制面板,用户可

6、以在一定范围内设置电风扇的最低工作温度,当温度低于所设置温度时,电风扇将自动关闭,当高于此温度时电风扇又将重新启动。1.1设计主要内容本设计主要内容如下: 风速设为从高到低5个档位,可由用户通过键盘手动设定。 当温度每降低2则电风扇风速自动下降一个档位。 当温度每升高2则电风扇风速自动上升一个档位。 用户可设定电风扇最低工作温度,当低于该温度时,电风扇自动停转。2总体设计方案2.1.总体硬件设计系统总体设计框图如图2.1所示键盘输入热释电红外传感器温度传感器(DS18B20)AT89C51数码管发光二极管蜂鸣器继电器图2.1 系统框图对于单片机中央处理系统的方案设计,根据要求,我们可以选用AT

7、89C51单片机作为中央处理器。作为整个控制系统的核心,单片机内部已包含了定时器、程序存储器、数据存储器等硬件,其硬件能符合整个控制系统的要求,不需要外接其他存储器芯片和定时器件,方便地构成一个最小系统。整个系统结构紧凑,抗干扰能力强,性价比高,是比较合适的方案。本系统实现风扇的温度控制,需要有较高的温度变化分辨率和稳定可靠的换档停机控制部件。2.2芯片及主要器件选择2.2.1 控制核心的选择 采用8051单片机作为控制核心。以软件编程的方法进行温度判断,并在端口输出控制信号。 以单片机作为控制器,通过编写程序不但能将传感器感测到的温度通过显示电路显示出来,而且用户能通过键盘接口,自由设置上下

8、限动作温度值,满足全方位的需求.并且通过程序判断温度具有极高的精准度,能精确把握环境稳度的微小变化。2.2.2 温度传感器的选用 采用数字式集成温度传感器 DS18B20作为感测温度的核心元件,直接输出数字温度信号供单片机处理2.2.3 显示电路 采用液晶显示屏LCD显示温度 液晶体显示屏具有显示字符优美,不但能显示数字还能显示字符甚至图形的优点,这是LED数码管无法比拟的。但是液晶显示模块价格昂贵,驱动程序复杂。2.3芯片及器件介绍2.3.1 AT89C51单片机AT89C51是美国Atmel公司生产的低电压、高性能CMOS 8位单片机,片内含8KB的可反复檫写的程序存储器和12B的随机存取

9、数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内配置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C52单片机可灵活应用于各种控制领域。AT89C52单片机属于AT89C51单片机的增强型,与Intel公司的80C52在引脚排列、硬件组成、工作特点和指令系统等方面兼容。其主要工作特性是: 片内程序存储器内含8KB的Flash程序存储器,可擦写寿命为1000次; 片内数据存储器内含256字节的RAM; 具有32根可编程I/O口线; 具有3个可编程定时器; 中断系统是具有8个中断源、6个中断矢量、2个级优先权的中断

10、结构; 串行口是具有一个全双工的可编程串行通信口; 具有一个数据指针DPTR; 低功耗工作模式有空闲模式和掉电模式; 具有可编程的3级程序锁定位; AT89C51工作电源电压为5(1+0.2)V,且典型值为5V; AT89C51最高工作频率为24MHz。 单片机正常工作时,都需要有一个时钟电路和一个复位电路。本设计中选择了内部时钟方式和按键电平复位电路,来构成单片机的最小电路。功能特性描述AT89C51是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程

11、序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89C51具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作

12、停止,直到下一个中断或硬件复位为止。8 位微控制器8K 字节在系统可编程。AT89C51是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C51单片机可为您提供许多较复杂系统控制应用场合。AT89C51有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT8

13、9C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。AT89C51有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。芯片封装及管脚如图2.2图2.2AT89C51引脚功能说明:VCC(40引脚):电源正VSS(20引脚):接地P0端口(P0.0P0.7,3932引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用

14、总线。此时,P0口内部上拉电阻有效。在Flash ROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。P1端口(P1.0P1.7,18引脚):P1口是一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1口作 输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。P2端口(P2.0P2.

15、7,2128引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。P3端口(P3.0P3.7,1017引脚):P3是一个带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。在对Flash

16、 ROM编程和程序校验时,P1接收低8位地址。2.3.2 L298芯片介绍L298驱动芯片是SGS公司的产品,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内包含二个H桥的高压大电六双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。实物图如图2.3所示。图2.4管脚图图2.3实物图L298有两路电源分别为逻辑电源6V和动力电源12V,ENA、ENB直接接入5V电源使电机进入使能状态,IN1和IN2用来控制电路的逻辑功能状态。由于使用的电机是线圈式,在从运行状态突然转到停止状态和从顺时状态突然转换到逆时针状态时会形成很大的方向电流,在电路中加入二极管就是

17、在产生方向电流的时候进行泄流,保护芯片的安全。L298的逻辑功能状态见表2.1。表2.1表1.12.3.3 DS18B20单线数字温度传感器简介 DS18820单线数字温度传感器是Dallas半导体公司开发的世界上第一片支持“一线总线”接口的温度传感器。它具有3引脚TO-92小体积封装形式。温度测量范围为一55C+125C;工作电压支持3V5. 5V的电压范围,既可在远端引入,也可采用寄生电源方式产生;可编程为9位12位A/D转换精度,测温分辨率可达0. 06250C;被测温度用符号扩展的16位数字量方式串行输出;DS18B20还支持“一线总线”接口,多个DS18B20可以并联到3根或2根线上

18、,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路;DS18820内部结构主要由4部分组成:64位ROM;温度传感器、非挥发的温度报警触发器TH和TL,配置寄存器;其管脚排列如图2.5所示,DQ为数字信号端,GND为电源地,VDD为电源输入端口。 图2.5DS18B20直接将测量温度值转化为数字量提交给单片机,工作时必须严格遵守单总线器件的工作时序。23.4 液晶1602显示模块的特性字符型液晶模块1602是一种用57点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等,常用2行16个字的1602

19、液晶模块。1602采用标准的16脚接口,其中:第 1脚:VSS为地电源;第2 脚:VDD接5V正电源;第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第 5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第 6 脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执

20、行命令。第714脚:D0D7为8位双向数据线。第1516脚:空脚。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到“A”。它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址

21、,也就是告诉模块在哪里显示字符,如表2.2。12345678910111213141516000102030405060708090A0B0C0D0E0F第一行404142434445464748494A4B4C4D4E4F第二行表2.23.总体硬件设计3.1温度传感器及显示模块设计本模块以DS18B20作为温度传感器,STC89C51作为处理器,配以温度显示作为温度控制输出单元。整个系统力求结构简单,功能完善。电路图如图3.1所示, 图中相同标识代表电气连接。DS18B20进行现场温度测量,将测量数据送入STC89C51的P3.3口,经过单片机处理后显示温度值,并与设定温度值的上下限值比较,

22、若高于设定上限值或低于设定下限值则控制电机转速进行调整。图3.1 温度传感器模块3.2单片机最小系统设计单片机最小系统如图3.2所示图3.23.3电机调速模块设计3.3.1 电机调速模块设计 根据图3.3所示连接好电路图,A/B接入单片机上通过程序来控制L298输出来控制直流电机的转动。PWM1赋值为1时,使能直流电机转动。图3.33.3.2PWM调速原理我们采用的是PWM来实现直流电动机的调速,优点:控制原理简单,输出波动小,线性好,对邻近电路干扰小。缺点是:功率低,散热问题严重。PWM调速原理:输出电压UO=(ton/T)U 式(3.1) ton+toff=T 式(3.2)式2.1中ton

23、/T=D称为占空比。占空比D表示了在一个周期T里开关管导通的时间与周期的比值。D的变化范围为0=D=1。当电源电压U不变的情况下,输出电压的平均值U取决与占空比D的大小,改变D值也就改变了输出电压的平均值,从而达到控制电动机转速的目的,即实现PWM调速。3.4键盘模块设计3.4.1 键盘方式选择常用的键识别方法有:行扫描法、线翻转法和利用8279键盘接口的中断法。在本系统中,完全可以不使用中断法完成键盘接口,这是由系统的特殊性决定的。首先,对于本系统而言,要实现便携式的设计,硬件电路使用的器件越少越好。其次,被测信号由外中断引脚输入,未占用单片机4个并行I/O口中的任何一个,系统有足够的资源利

24、用自身I/O口完成接口。3.4.2实现方案本单片机系统使用简单的键盘和液晶显示器件来完成输入/输出操作的人机界面。键盘输入信息的主要过程是:CPU判断是否有健按下。确定按下的是哪一个健。把此键代表的信息翻译成计算机所能识别的代码,如ASCII或其他特征码。键盘上有很多键,每一个键对应一个键码,以便根据键码转到相应的键处理子程序,进一步实现数据输入和命令处理的功能。键盘识别的流程如图3.4所示。 图3.43.4.3键盘模块 键盘模块接口电路如图3.5所示图3.54软件设计4.1程序流程图4.1.1主程序流程图主程序流程图如图4.1所示YN键盘识别有键按下去抖动确定按键物理位置功能键A功能键D键盘

25、输入测量电压计算键码显示测量结果等待键释放显示设定值功能键B系统初始化液晶初始化功能键C清屏测量温度超出域值?显示out of range显示测量结果启动图4.14.1.2定时器0中断流程图定时器0中断流程图如图4.2所示图4.24.1.3定时器1中断流程图定时器1中断流程图如图4.3所示图4.34.2程序清单4.2.1主程序主程序为一个.c文件,使用#include语句把所有.h子程序包含进来,主函数为一个循环语句一直在调用子程序、按键扫描。程序如下:#include #include LCD1602.H#include ds18b20.H#include keyq.H#include ti

26、me.H#include time00.H/*主函数*void main(void) time0(); LCD_init();while(1) display(); scan(); 所有.h子程序包见附录A总结通过此次单片机课程设计,我把学过的单片机理论用到设计当中去,让学过的知识更加牢固,更学会了学单片机语言的用武之地。首先,通过这次应用系统设计,在很大程度上提高了自己的思考能力和灵活应用单片机的专业知识的能力;其次,也增强了我们团结合作的精神;最后,通过此次实训,我们搜集各种资料也了解到了当今社会中单片机应用的广泛性,着也激励我们要好好重视这门学科。 我们组编写的系统主要是根据目前节智能化

27、电风扇技术的发展趋势和国内实际的应用特点和要求,采用了自动化的结构形式,实现对电风扇转速的自动控制。 系统以单片机AT89C51为核心部件,单片机系统完成对环境温度信号的采集、处理、显示等功能;用Protues软件进行访真测试,利用MCS51汇编语言编制,最终程序运行适应性强,成本低廉,操作简单,实现对最式适温度的实时监控。在当今提倡人性化设计和健康产品的环境下本系统具有非常好的市场前景。 致谢 在这次实训中,能够设计成功离不开老师的精心辅导以及老师对我们教学上的严谨,在设计的研究其及整理期,老师给了我很大的支持和鼓励,每当遇到问题是陈老师都能一一耐心解答,才使得设计顺利完成。在此向陈老师表示

28、真诚感谢和崇高的敬意。同时,我们组的亢欢同学花了很多时间研究程序设计,设计的顺利完成离不开我们小组成员的共同努力,在此谨向大家致以衷心的感谢。参考文献1 张鑫.单片机原理及应用.电子工业出版社1 明德刚.DS18B20在单片机温控系统中的应用.贵州大学学报,2006,2 2 黄朝民,肖明清,吴志强.单片机原理与应用.现代电子技术,2006,12 3 刘进山.基于MCS-51电风扇智能调速器的设计.电子质量,2004,10附录1数字温度传感器模块程序设计 主要程序如下(以下程序为一个ds18b20.h的程序包):/*ds18b20子程序*/#ifndef _ds18b20_H_#define _

29、ds18b20_H_ /sbit DQ = P23; /定义通信端口 sbit DQ = P33; void delay(unsigned int i)while(i-);/*初始化函数*/Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ复位 delay(4); /稍做延时 DQ = 0; /单片机将DQ拉低 delay(80); /精确延时 大于 480us DQ = 1; /拉高总线 delay(20); x=DQ; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay(20);/*读一个字节 */RChar(void)un

30、signed char i=0;unsigned char dat = 0;for (i=8;i0;i-)DQ = 0; / 给脉冲信号dat=1;DQ = 1; / 给脉冲信号if(DQ)dat|=0x80;delay(10);return(dat);/*写一个字节 */WChar(unsigned char dat)unsigned char i=0;for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; delay(10); DQ = 1; dat=1;/*读取温度*/ReadTemp(void)unsigned char a=0;unsigned char b

31、=0;unsigned int t=0;Init_DS18B20();WChar(0xCC); / 跳过读序号列号的操作WChar(0x44); / 启动温度转换delay(100);Init_DS18B20();WChar(0xCC); /跳过读序号列号的操作WChar(0xBE); /(读取温度寄存器) 前两个就是温度a=RChar(); /低八位b=RChar(); /高八位t = (b*256+a)*25; /传感器返回值除16得实际温度值/为了得到2位小数位,先乘100,再除1 6 (先乘以25再除以4)return( t 2 );#endif2 液晶显示模块程序设计程序如下(以下程

32、序为一个LCD1602.h的程序包):#ifndef _ _H_#define _LCD1602_H_ #define LCD_DB P0sbit LCD_RS=P20;/命令数据端口sbit LCD_RW=P21;/读写控制端口sbit LCD_E=P22;/使能端口/*定义函数*/void LCD_init(void);/初始化函数void LCD_write_command(unsigned char command);/写指令函数aovoid LCD_write_data(unsigned char dat);/写数据函数void LCD_disp_char(unsigned char

33、 x,unsigned char y,unsigned char dat);/在某个屏幕位置上显示一个字符,X(0-16),y(1-2)void delay_n40us(unsigned int n);/延时函数/*初始化函数*/void LCD_init(void) LCD_write_command(0x01);/清除屏幕显示delay_n40us(100);/实践证明,我的LCD1602上,用for循环100次就能可靠完成清屏指令。LCD_write_command(0x38);/设置8位格式,2行,5x7LCD_write_command(0x0c);/整体显示,关光标,不闪烁LCD_

34、write_command(0x06);/设定输入方式,增量不移位/*写指令函数*void LCD_write_command(unsigned char dat)LCD_DB=dat;LCD_RS=0;/指令LCD_RW=0;/写入LCD_E=1;/允许LCD_E=0;delay_n40us(2);/实践证明,我的LCD1602上,用for循环2次就能完成普通写指令。/*写数据函数*void LCD_write_data(unsigned char dat)LCD_DB=dat;LCD_RS=1;/数据LCD_RW=0;/写入LCD_E=1;/允许LCD_E=0;delay_n40us(2)

35、;/*显示一个字符函数*void LCD_disp_char(unsigned char x,unsigned char y,unsigned char dat)unsigned char address;if(y=1)address=0x80+x;elseaddress=0xc0+x;LCD_write_command(address);LCD_write_data(dat);/*延时函数*void delay_n40us(unsigned int n) unsigned int i; unsigned char j; for(i=n;i0;i-) for(j=0;j=80) m_secon

36、d_1=0;second+;if(second=1) change=1;if(second=60)second=0;g_minute+;if(g_minute=10) s_minute+;g_minute=0; if(s_minute=6) g_hour+;s_minute=0;g_minute=0;if(g_hour=10) s_hour+;g_hour=0;if(s_hour=2)&(g_hour=4) g_day+;g_hour=0;s_hour=0;if(g_day=10) s_day+;g_day=0;if(s_day=3)&(g_day=1) g_mouth+;g_day=0;s_

37、day=0;if(g_mouth=10) s_mouth+;g_mouth=0;if(s_mouth=1)&(g_mouth=3) g_year+;g_mouth=0;s_mouth=0;if(g_year=10) s_year+;g_year=0;if(s_year=2)&(g_year=0) s_year=0;g_year=0;#endif万年历程序(以下程序为time00.h的程序包):#ifndef _time00_H_#define _time00_H_void t0() interrupt 3TR1=0;TH1 = (65535-1)/255;TL1 = (65535-1 )%255;TR1=1;if(temp0temp) fl=0;Vo1=0;pwm=0;else m_second+;if(m_second=Vo2) fl=1;Vo1=0; pwm=1; else if(m_second=Vo3) fl=0;Vo1=0;m_second=0;pwm=1;#endif注:通过Vo2、Vo3的值来控制PWM输出。4按键总控制模块程序设计按键程序(以下程序为key.h的程序包):#ifndef _key_H_#define _key_H_unsigned int tmp;unsigned ch

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号