还剩23页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
基于单片机智能温控风扇设计毕业设计XX职业技术学院毕业设计论文___学号系部电子信息学院专业物联网应用技术题目基于单片机的智能温控风扇设计指导教师评阅教师完成时间xx年X月X日摘要本次设计的单片机系统是基于单片机的智能电风扇设计使用的控制芯片是AT___C51,用数字温度传感器DS18B20检测温度并通过数码管显示,通过继电器来实现小电流的单片机控制大电流的电风扇电机工作,利用单片机内部定时器实现电风扇定时时间的设定本套系统的软件程序思想主要是通过实时温度与设定的温度上下限值进行比较后,控制电风扇启停、强弱挡,最终使环境维持让人舒适的温度用户可以根据自身需求自行设定温度上下限值、电风扇启停及工作时间用户设定的温度上下限值通过软件程序自动保存在数字温度传感器DS18B20内部的EPPROM内存单元中,掉电后数据不会丢失,不必劳烦用户每次启动风扇反复重新设定温度上下限值【关键词】智能,传感器,温控,风扇ABSTRACTThedesignisbasedonsingle-chipcontrolthermostatfandesignedtosensitivesensingtemperaturesensinganddisplaythedesignAT___C51control___nterasthetemperaturesensorDS18B20sensorsensesthetemperatureoftheinternaltimersettimesetthelengthtocontroltheintensityandwindspeedfanswitchThedesignofsinglechipmicroputersystemisbasedonsinglechipmicroputerin___igenttemperaturecontrolfandesign.Throughtherelaytoachieves___llcurrentSCMcontrollargecurrentoftheelectricfanmotorworkrealizeelectricfantimingtimeofinternalmicrocontrollertimersetting.Thissetofsystemsoftwareprogramthought___inlythroughreal-timetemperatureandsettingtemperatureupperandlowerlimitvalueafterparisonstrongorweakandeventually___ketheenviro___entto___intainafortabletemperature.Theusercanaordingtotheirownneedstosettemperatureupperandlowerlimitelectricfanstart-stopandworkingtime.Userstosetthetemperatureoftheupperandlowerlimitvalueauto___ticallybythesoftwareprogramstoredinthedigitaltemperaturesensorDS18B20theinternalEPPROMmemoryunitdon'tneedtobothertheuserwitheachfanlaunchedagainandagaintoresettemperaturelimitupanddown.【KEYWORD】:In___igen___sensorstemperaturefan目录
1、引言
12、总体设计
13、硬件设计
23.1AT___C51单片机概述
23.
1.1AT___C51单片机组成
33.
1.2.AT___C51单片机的引脚结构
43.2DS18B20单线数字温度传感器
54、系统电路设计
64.1单片机最小系统电路设计
64.
1.1AT___C51单片机的最小系统
64.2按键电路设计
74.3控制电路设计
84.
3.1温度控制电路设计
84.
3.2声响控制电路设计
84.4温控自动电路设计
94.
4.1双向晶闸管介绍
94.
4.2继电器介绍
94.
4.3电路设计
94.5数码显示电路设计
104.6电源电路设计
114.
6.1LM7805集成稳压器介绍
114.
6.2电路设计
115、软件设计
125.1总体设计思想
125.2各部分的软件框图和程序
125.
2.1主程序流程图
125.
2.2温度显示子程序流程图13总结13附录14附录一电路原理图14附录二源程序15致谢31___
321、引言电扇是人们日常生活中常用的降温工具,从开始的吊扇到现在的USB风扇,无处不见电扇的踪迹虽然如今空调已经走进千家万户,但是电扇的低位还是无可取代,作为一种节能环保,并且廉价简单的降温工具,电扇还在很多人家发挥着自己独特的作用顺应时代潮流,各种多功能的风扇逐渐在取代传统风扇单片机作为一种智能化程度高,控制精度高,操作简单,廉价易得,抗干扰能力强等特点,越来越多的应用于智能化产品之中市场上智能风扇产品相继问世,制作方法也多种多样,功能也逐渐完善,普遍都具有了手动变速和定时关闭等功能,相对而言,具备人性化,智能化的风扇还是很少,使用也并不广泛,而且在电子工艺高度发展的今天,智能化的步伐也越来越快,尤其是中国这个高速发展的国家,电扇的智能化也该向前迈进一个步伐在中国市场上风扇还是有一定的市场份额的,几乎每个家庭都有风扇,具备___便宜,摆放轻便,体积灵巧等特点,使得风扇在中小城市以及乡村将来一段时间内仍然会占有市场的大部分份额,为提高风扇的市场竞争力,使之在技术含量上有所提高,满足智能化的要求,智能风扇很具竞争力大学四年即将结束,为了检验自己的学习情况,我决定使用之前所学习到的硬件只是结合相关的软件基础来制作一个基于单片机的智能温控风扇基于对人性化与智能化相结合的考虑,同时基于对___的考虑,本设计决定制作一个基于51单片机的智能温控风扇,该风扇具有随温度自动调节风速的功能,并且在无人时可以自动关闭,而且可以根据每个人的不同情况来设定基准温度,从而实现了人性化与智能化的双重目标
2、总体设计本设计的整体思路是利用温度传感器DS18B20来检测环境温度,并直接输出数字温度给51单片机进行处理,并将实时温度、设置温度、风速显示在液晶12864上设置温度辅以2个可调按键,一个提高设置温度,一个降低设置温度,设置温度只能是整数型式,检测到的环境温度可以精确到小数点后一位本系统还配备一个红外探头,探测出风范围内是否有人,若无人则自动关闭风扇如图2-1所示图2-1硬件总体框图
3、硬件设计
3.1AT___C51单片机概述在20世纪70年代时,当时的微电子技术正处在一个发展阶段,集成电路也属于中规模的发展时期,对于新材料新工艺尚未进入成熟阶段,单片机也是如此,仍处在一个初级的发展阶段,元件集成规模还比较小,功能也比较简单,一般包括CPU、RAM,有的还包括了一些比较简单的I/O口,将I/O口集成到芯片上,单片机还组要将一些___的其他处理电路共同构成一个完整的计算系统类似的单片机还有Z80微处理器1976年由INTEL公司推出的MCS-48单片机,这个时期的单片机才是真正的8位单片微型计算机,因此逐渐推向了市场MCS-48单片机由于它的体积小,功能全,___低在市场上得到了广泛的应用,这为单片机的发展奠定了基础,在单片机的发展史上增添了亮丽的一笔,一个重要的里程碑其后单片机进入多功能强大的发展阶段,由若干但公司研发约有几十个品种,将近300多个系列,此时才算是真正进入单片机时代,普遍的单片机均集成CPU、RAM、ROM、I/O接口也很多、中断系统相当丰富,并且部分单片机还自带A/D转换器,功能性很强大强大,RAM和ROM的容量也日趋增长,寻址空间可达64kB,此时的单片机发展到了一个新___,应用领域也日趋广泛,单片机控制的智能化的电器也便走上了发展道路上个世纪90年代单片机如雨后春笋一般,MOTOROLA公司推出MC68HC系列单片机,随后NTEL公司推出了80960超级32位单片机并且将相关产品投放市场,成为单片机发展历史上的一个里程碑
3.
1.1AT___C51单片机组成如图3-1所示图3-1AT___C51单片机组成结构图目前使用较为广泛的主要是___C5X系列的单片机,都采用了标准的MCS-51控制内核,并且此系列单片机品种齐全、性能可靠、小体积、___便宜、供货充足、调试和编程都十分方便,所以应用比较广泛AT___C51是CMOS结构8位单片机,具有低功耗、电压低、性能好等优点,该单片机内部具有一个内存大小为8KB的FLASHEPPROM,可反复擦除程序___次,设计时采用了CMOS和ATMEL公司的高集成度、数据不易丢失的存储器技术,片内FLASH存储器可以使用常规的非易失性存储编程器进行编写因此,STC___C52是一种功能强大,使用灵活并且___低廉的单片机,可广泛应用于各个控制领域AT___C51单片机的主要特性如下
1.8KB可反复擦写程序的FLASH存储器;
2.全表态工作0~24HZ;
3.256x8字节的内部RAM;
4.32个外部双向输入、输出IO口;
3.
1.2.AT___C51单片机的引脚结构如图3-2所示图3-2AT___C51单片机的管脚分布表3-1AT___C51单片机的引脚功能引脚引脚功能VCC电源电压GND接地P0口P0口是双向8位三态IO口,每个IO口都可以___控制,它不带上拉电路,主要用作数据和地址的输入输出P1P1口试一个普通的输入输出口,其内部带有上拉电阻,也就是说不需要外接上拉电阻在对其进行数据读写操作时方法同P0口P2P2口与P1口功能相同,在使用时除像P1口做驱动口外还与P0口构成地址的高8位,与P0口形成16位地址的输入输出数据操作P3P3端口除普通IO口功能外,还有第二功能RST单片机复位引脚,当RST复位引脚上出现两个或两个以上机器周期高电平再变为低电平,单片机将完成复位动作表3-2P3口的第二功能表端口引脚第二功能P
3.0RXD串行输出口P
3.1TXD串行输入口P
3.2INT0(外部中断0)P
3.3INT1(外部中断1)P
3.4T0定时/计数器0P
3.5T1定时/计数器1P
3.6WR外部数据写P
3.7RD外部数据读XTAL1外接时钟引脚单片机外接晶振电路的输入端片内震荡电路的输入端XTAL2外接时钟引脚单片机外接晶振电路的输出端片内震荡电路的输出端
3.2DS18B20单线数字温度传感器温度传感器介绍DS18B20是数字温度传感器其主要优点是体积小、___低、精度高用它做温度测量系统的设计时,可以使电路更简单,在一根通信线以上,可以挂很多的DS18B20温度传感器,使用非常方便数字温度传感器DS18B20的实物图如图3-3所示图3-3DS18B20实物图DS18B20数字温度传感器主要由4部分组成64位的ROM、温度传感器、非挥发的温度___触发器TH和TL及配置寄存器数字温度传感器DS18B20的内部结构如图3-4所示图3-4DS18B20内部结构图表3-3DS18B20传感器引脚图序号名称DS18B20引脚功能说明1GND地___2DQ数据输入/输出引脚,单总线接口3VDD可选择的VDD引脚
4、系统电路设计
4.1单片机最小系统电路设计
4.
1.1AT___C51单片机的最小系统如图4-1所示图4-1AT___C51单片机的组成结构图1时钟电路时钟电路是能够为AT___C51单片机产生工作所必须的时钟___,AT___C51单片机本身就是一个复杂的同步时序电路AT___C51单片机在唯一的时钟___的严格控制下按时序执行指令,MCU时钟频率会影响速度和稳定性通常时钟有两种外部时钟和内部时钟本系统使用的内部时钟系统提供时钟___AT___C51单片机内部自带的震荡器是一个高增益反向放大器,XTAL1和XTAL2分别为芯片外部时钟的输入输出端口,它们跨接在晶体振荡器和微调电容之间使用对于晶振电路电容的选择,如果所选电容太小,就会影响系统的快速性、稳定性及振荡的频率,所以C
1、C2电容一般选在30pf左右晶振一般选用范围为
1.2MHZ到12MHZ,单片机使用越高的晶振频率就可以得到越高的运行速度,但是这对存储器的存储速度提出了更高的要求为了提升晶振电路的稳定性,一般选用温度稳定性好的瓷片电容及频率为12MHZ的晶振时钟电路图如图4-2所示图4-2时钟电路图
(2)复位电路AT___C51单片机可以通过RST复位引脚进行初始化操作,其原理是让单片机程序从指定初始化地址开始执行程序只要让AT___C51单片机的RST复位引脚上出现两个或两个以上机器周期的高电平,就可以使单片机程序复位,但是如果保持RST复位引脚一直是高电平,那么AT___C51单片机就一直循环复位,一旦RST复位引脚由高电平变为低电平后,单片机便复位成功复位电路如图4-3所示图4-3复位电路图
4.2按键电路设计K1是功能键,第一次按下时,可以对下限温度进行设置第二次按下时,可以对上限温度进行设置第三次按下时,恢复温度显示K2是加一键,可以对上下限温度进行加一调整,长按时执行快速加一操作K3是减一键,可以对上下限温度进行减一调整,长按时执行快速减一操作按键电路如图4-4所示图4-4按键电路图
4.3控制电路设计
4.
3.1温度控制电路设计温度采集电路主要是由数字温度传感器DS18B20组成的它能够把采集的温度数据转化成二进制数,经过单片机处理后变为十进制,最后通过数码管显示如图4-5温控传感器电路图4-5传感器电路图
4.
3.2声响控制电路设计该电路主要由数字温度传感器DS18B
20、三个按键、一个PNP型三极管和一个蜂鸣器等组成的声响电路在每按下按键时会响一声,当没DS18B20数字温度传感器数值超过或低于温度上下限时,单片机就会通过蜂鸣器发出警报声音声音电路会在每个按键的按下时响一声,当数字温度传感器DS18B20没有温度数据输出时,单片机将通过蜂鸣器发出___声音上下限温度值主要是通过按键K
1、K
2、K3来设定按键K
1、K
2、K3分别接入单片机的P
1.
4、P
1.
5、P
1.6脚电路如图4-6所示图4-6声响控制电路图
4.4温控自动电路
4.
4.1双向晶闸管介绍双向晶闸管,具有对称性的特点,使它能够在两个方向上导通,是一种理想的交流开关装置双向晶闸管由N-P-N-P-N五层半导体制成的,从中引出了三个电极双向晶闸管也可以视为两个单向晶闸管反向并联,但它只有一个控制极
4.
4.2继电器介绍继电器是一种电气控制器件它具有控制系统和被控制系统经常用在自动控制电路中,它的基本原理是用小电流控制大电流运作,相当于一种“自动开关”因此继电器在电路中得到了广泛应用,如用于自动调节、安全保护、转换电路等
4.
4.3电路设计该电路的主要功能是根据单片机给出的___来控制继电器,从而控制电风扇正常情况下,电风扇工作状态默认为弱风挡,当实时温度低于温度下限TL时,继电器1吸合,关闭风扇;当实时温度高于温度上限时,继电器2吸合,切换到强风档电路如图4-7所示图4-7温控自动电路
4.5数码显示电路显示电路部分包括5个共阳极八段数码管,PNP型晶体管,电阻器等用单片机的P0端口连接共阳极数码管的8位数据端用来提供段选数据,用单片机的P2端口的P
2.3—P
2.7连接数码管的片选端用来提供片选___输,用8550(PNP型)三极管搭建驱动电路驱动来驱动数码管显示因为P0口内部没有上拉电阻所以在P0接一个10K的排阻到电源为防止对数码管的损坏,在P0端口各加一个300欧姆的限流电阻过P0口把要显示的数据通送给数码管,并且通过P
2.7—P
2.3五个端口轮流打开数码管的位选通,由于每位数码管刷新显示的时间十分短(扫描周期在20ms左右)和人眼视觉暂留,所以我们基本看不出它的闪烁,而是固定同步显示各数据电路如图4-8所示图4-8数码管显示电路
4.6电源电路
4.
6.1LM7805集成稳压器介绍三端稳压器LM7805是常见的,可以提供5V直流输出电压,其应用范围非常广泛,包含的调节器的过流保护电路和过载保护电路如果使用散热器,可以继续提供1A的输出电流,如果使用周边设备相互配合,可以提供不同的电压和电流电路如图4-9所示图4-9LM7805引脚图
4.
6.2电路设计本系统设计的电源电路采用9V变压器将220V交流电变为9V交流电,然后经过整流电路、2200uf电解电容滤波后变为较平稳的直流电,再送给LM7805稳压器变为平整的直流电,最后通过220uf电解电容、104pf瓷片电容滤去电压中的毛刺电压,最后得到5V稳压电源电路如图4-10所示图4-10电源电路图
5、软件设计
5.1总体设计思想本系统是基于AT___C51单片机设计的首先是软件检测数字温度传感器DS18B20工作是否正常,如果发现系统检测不到数字温度传感器DS18B20采集的温度数据时,蜂鸣器发出___信息,提示用户检查系统或更换数字温度传感器DS18B20系统检测正常时,通过3个功能按键K
1、K
2、K3来设定好系统温度上下限值后,按确认键,系统进入正常运行状态通过对数字温度传感器DS18B20进行数据采集,用数码管显示实时温度当实时温度低于或高于设定温度上下限时,通过单片机输出___控制继电器关断从而控制电风扇启停、强弱风挡的切换,从而达到环境温度的调控目的
5.2各部分的软件框图和程序
5.
2.1主程序流程图主程序流程图如图5-1所示图5-1主程序流程图
5.
2.2温度显示子程序流程图数码管显示子程序流程图如图5-2所示图5-2DS18B20复位与检测子程序流程图总结到目前为止,我的论文基本完成从最初的无从下手,毫无头绪,再到对思路的清晰,整个设计过程都是对我的考验因为我对电路一直都挺感兴趣的,我开始思考我的论文题目,从定下论文题目后,我开始收集材料,尽量让我的资料更加完整,在之后在写作的过程中,我也遇到了许多的问题,多亏了老师的指导和同学们的帮助,我才能把论文慢慢成形当我终于完成了所有的任务之后,看着我的论文,我觉得一切都是值得的这次毕业论文的制作过程让我更加了解了自己,知道了___思考的重要性我不会忘记这次在毕业设计中所___到的一切,这让我知道今后无论遇到任何事,都需要脚踏实地、认真谨慎,更要有不怕困难,坚持不懈的精神附录附录一电路原理图附录二源程序;********************************************************************;精准温度显示温控自动风扇系统*;*说明:;*
1、K1→按第一次进入设定低温动作温度值TL状态:;*
2、K1→按第二次进入设定高温动作温度值TH状态:;*
3、K1→按第三次显示当前温度值;*
4、设定过程K2→加键,K3→减键,可快速调;
5、当实时温度值在TL和TH之间时,开启弱风档;当实时温度低于TL时,关闭风扇;当实时温度高于TH时,开启大风档每次设置的TH和TL均被保存在DS18B20的ROM;内掉不需重新设置.*;********************************************************************TIMER_LDATA23HTIMER_HDATA24HTIMER_COUNDATA25HTEMPLDATA26HTEMPHDATA27HTEMP_THDATA28HTEMP_TLDATA29HTEMPHCDATA2AHTEMPLCDATA2BHTEMP_ZHDATA2CHBEEPEQUP
3.7DATA_LINEEQUP
3.3C1EQUP
3.4;C1控制口接继电器1C2EQUP
3.5;C2控制口接继电器2FLAG1EQU20H.0FLAG2EQU20H.1;-------------------------------------------------K1EQUP
1.4K2EQUP
1.5K3EQUP
1.6;=================================================ORG0000HJMPMAINORG000BHAJMPINT_T0;--------------------------------------------------MAIN:MOVSP#30HMOVTMOD#01H;T0方式1MOVTIMER_L#00H;50ms定时值MOVTIMER_H#4CHMOVTIMER_COUN#00H;中断计数MOVIE#82H;EA=1ET0=1LCALLREAD_E2MOV20H#00HSETBBEEPSETBC1setbC2MOV7FH#0AH;熄灭符CALLRESET;复位与检测DS18B20JNBFLAG1MAIN1JMPSTARTMAIN1:CALLRESETJBFLAG1STARTLCALLBEEP_BLJMPMAIN1START:MOVA#0CCH;跳过ROM匹配CALLWRITEMOVA#044H;发出温度转换命令CALLWRITECALLRESETMOVA#0CCH;跳过ROM匹配CALLWRITEMOVA#0BEH;发出读温度命令CALLWRITECALLREAD;读温度数据CALLCONVTEMPCALLDISPBCDCALLDISP1CALLSCANKEYLCALLTEMP_PJMPMAIN1;====================================================;功能键扫描子程序;====================================================SCANKEY:MOVP1#0F0HJBK1SCAN_K2CALLBEEP_BLSCAN_K1:CALLALERT_TLCALLALERT_PLAYJBK1SCAN_K1CALLBEEP_BLSCAN_K11:CALLALERT_THCALLALERT_PLAYJBK1SCAN_K11CALLBEEP_BLSCAN_K2:JBK2SCAN_K3CALLBEEP_BLSCAN_K3:JBK3SCAN_ENDCALLBEEP_BLLCALLRESET_ALERTLCALLRE_18B20LCALLWRITE_E2SCAN_END:RET;================================================;设置动作温度值TL,TH;================================================RESET_ALERT:CALLALERT_TLCALLALERT_PLAYJNBK3$;K3为位移键SETBTR0RESET_TL:CALLALERT_PLAYJNBFLAG2R_TL01mov75H7fh;消影mov76H7fhCALLALERT_PLAYJMPR_TL02R_TL01:CALLALERT_TLmov75h7Eh;送设定值mov76h7DhCALLALERT_PLAYR_TL02:JNBK1K011AJNBK2K011BJNBK3RESET_THJMPRESET_TLK011A:INCTEMP_TLMOVATEMP_TLCJNEA#120K012A;没有到设定上限值,转MOVTEMP_TL#0K012A:CALLTL_DELJMPRESET_TLK011B:MOVATEMP_TLCJNEA#00HK;没有到设定下限值,转MOVTEMP_TL#120K:DECTEMP_TLK012B:CALLTL_DELJMPRESET_TL;-------------------------------------------------------RESET_TH:CALLBEEP_BLJNBK3$RESET_TH1:CALLALERT_PLAYJNBFLAG2R_TH01mov75H7fh;消影mov76H7fhCALLALERT_PLAYJMPR_TH02R_TH01:CALLALERT_THmov75h7Eh;mov76h7DhCALLALERT_PLAYR_TH02:JNBK1K021AJNBK2K021BJNBK3K002JMPRESET_TH1K021A:INCTEMP_THMOVATEMP_THCJNEA#120K022A;没有到设定上限值,转MOVTEMP_TH#0K022A:CALLTH_DELJMPRESET_TH1K021B:MOVATEMP_THCJNEA#00HK023B;没有到设定下限值,转MOVTEMP_TH#120K023B:DECTEMP_THK022B:CALLTH_DELJMPRESET_TH1K002:CALLBEEP_BLCLRTR0;关闭中断RET;-----------------------------------------------------;键延时子程序;-----------------------------------------------------TL_DEL:;设定温度低值TL延时MOVR2#0AHTL_DEL1:CALLALERT_TLCALLALERT_PLAYDJNZR2TL_DEL1RETTH_DEL:;设定温度高值TH延时MOVR2#0AHTH_DEL1:CALLALERT_THCALLALERT_PLAYDJNZR2TH_DEL1RET;====================================================;闪动显示标记符H、L、O;====================================================TEMP_P:SETBTR0;启动中断MOVATEMP_THSUBBA#01HSUBBATEMP_ZHJCCHULI1MOVATEMP_ZHSUBBATEMP_TLJCCHULI2JNBFLAG2T_P1;FLAG2=0显示标记字符MOV74H#0AH;熄灭符LCALLDISP1JMPT_P2T_P1:MOV74H#00HLCALLDISP1;显示“O“T_P2:SETBC1;继电器1断开SETBC2;继电器2断开CLRTR0;关闭中断RET;---------------------------------------------;超温处理;---------------------------------------------CHULI1:CLRC1CLRC2;继电器2吸合JNBFLAG2CHULI10MOV74H#0AH;熄灭符LCALLDISP1JMPCHULI11CHULI10:MOV74H#0DHLCALLDISP1;显示“H“CHULI11:CLRTR0;关闭中断RET;---------------------------------------------;欠温处理;---------------------------------------------CHULI2:CLRC1SETBC2;继电器2断开JNBFLAG2CHULI20MOV74H#0AH;熄灭符LCALLDISP1JMPCHULI21CHULI20:MOV74H#0CHLCALLDISP1;显示“L“CHULI21:CLRTR0RET;------------------------------------------------------------WRITE_E2:CALLRESETMOVA#0CCH;跳过ROM匹配LCALLWRITEMOVA#48H;动作温度设定值拷贝到EEROMLCALLWRITERET;-------------------------------------------------------------READ_E2:CALLRESETMOVA#0CCH;跳过ROM匹配LCALLWRITEMOVA#0B8H;动作温度值拷贝回暂存器CALLWRITERET;*****************************************************;处理温度BCD码子程序;****************************************************CONVTEMP:MOVATEMPHANLA#80HJZTEMPC1;温度零上转CLRCMOVATEMPL;二进制数求补(双字节)CPLA;取反加1ADDA#01HMOVTEMPLAMOVATEMPH;-CPLAADDCA#00HMOVTEMPHA;TEMPHCHI=符号位MOVTEMPHC#0BHSJMPTEMPC11TEMPC1:MOVTEMPHC#0AH;TEMPC11:MOVATEMPHCSWAPAMOVTEMPHCAMOVATEMPLANLA#0FH;乘
0.0625MOVDPTR#TEMPDOTTABMOVCA@A+DPTRMOVTEMPLCAMOVATEMPL;整数部分ANLA#0F0HSWAPAMOVTEMPLAMOVATEMPHANLA#0FHSWAPAORLATEMPLMOVTEMP_ZHA;组合后的值存入TEMP_ZHLCALLHEX2BCD1MOVTEMPLAANLA#0F0HSWAPAORLATEMPHCMOVTEMPHCAMOVATEMPLANLA#0FHSWAPA;TEMPLCHI=个位数BCDORLATEMPLCMOVTEMPLCAMOVAR7JZTEMPC12ANLA#0FHSWAPAMOVR7AMOVATEMPHCANLA#0FHORLAR7MOVTEMPHCATEMPC12:RET;-----------------------------------------------------------;小数部分码表;-----------------------------------------------------------TEMPDOTTAB:DB00H01H01H02H03H03H04H04H05H06HDB06H07H08H08H09H09H;===========================================================DISPBCD:MOVATEMPLCANLA#0FHMOV70HA;小数位MOVATEMPLCSWAPAANLA#0FHMOV71HA;个位MOVATEMPHCANLA#0FHMOV72HA;十位MOVATEMPHCSWAPAANLA#0FHMOV73HA;百位MOVATEMPHCANLA#0F0HCJNEA#010HDISPBCD0SJMPDISPBCD2DISPBCD0:MOVATEMPHCANLA#0FHJNZDISPBCD2;十位数是0MOVATEMPHCSWAPAANLA#0FHMOV73H#0AH;符号位不显示MOV72HA;十位数显示符号DISPBCD2:RET;***************************************************************;温度显示子程序;***************************************************************DISP1:MOVR1#70H;指向显示数据首址MOVR5#7FH;扫描控制字初值PLAY:MOVP0#0FFHMOVAR5MOVP2AMOVA@R1;取显示数据到AMOVDPTR#TAB;取段码表地址MOVCA@A+DPTR;查显示数据对应段码MOVP0A;段码放入P0口MOVAR5JBACC.6LOOP5CLRP
0.7LOOP5:LCALLDL_MSINCR1;指向下一个地址MOVAR5;放回R5内JNBACC.3ENDOUTRRA;A中数据循环左移MOVR5A;放入R5中AJMPPLAY;跳回PLAY循环ENDOUT:MOVP0#0FFH;一次显示结束,P0口复位MOVP2#0FFH;P2口复位RETTAB:DB0C0H0F9H0A4H0B0H99H92H82H0F8H80H90H0FFH0BFH0C7H___HDL_MS:MOVR6#0AHDL1:MOVR7#64HDL2:DJNZR7DL2DJNZR6DL1RET;******************************************************;单字节十六进制转BCD;******************************************************HEX2BCD1:MOVB#064HDIVABMOVR7AMOVA#0AHXCHABDIVABSWAPAORLABRET;===============================================;___值TH、TL数据转换;===============================================ALERT_TL:MOV79H#0CHMOV78H#0BHMOVATEMP_TLMOVR0#77HMOVB#064HDIVABCJNEA#01HALERT_TL1MOV@R0AJMPALERT_TL2ALERT_TL1:MOVA#0BH;显示“-”MOV@R0AALERT_TL2:MOVA#0AHXCHABDIVABDECR0MOV@R0AMOV7DHADECR0MOV@R0BMOV7EHBRET;-----------------------------------------------ALERT_TH:MOV79H#0DHMOV78H#0BHMOVATEMP_THMOVR0#77HMOVB#064HDIVABCJNEA#01HALERT_TH1MOV@R0AJMPALERT_TH2ALERT_TH1:MOVA#0BH;显示“-”MOV@R0AALERT_TH2:MOVA#0AHXCHABDIVABDECR0MOV@R0AMOV7DHADECR0MOV@R0BMOV7EHBRET;===============================================;动作温度设定值显示子程序;===============================================ALERT_PLAY:MOVR1#75H;指向显示数据首址MOVR5#7FH;扫描控制字初值A_PLAY:MOVP0#0FFHMOVAR5;扫描字放入AMOVP2AMOVA@R1;取显示数据到AMOVDPTR#ALERT_TAB;取段码表地址MOVCA@A+DPTR;查显示数据对应段码MOVP0A;段码放入P0口LCALLDL_MS1INCR1;指向下一个地址MOVAR5JNBACC.3ENDOUT1RRA;A中数据循环左移MOVR5A;放入R5中AJMPA_PLAY;跳回PLAY循环ENDOUT1:MOVP0#0FFH;一次显示结束,P0口复位MOVP2#0FFH;P2口复位RETALERT_TAB:DB0C0H0F9H0A4H0B0H99H92H82H0F8H80H90H0FFH0BFH0C7H___H;共阳段码表“0““1““2““3““4““5““6““7““8““9““灭““-“DL_MS1:MOVR6#0AHADL1:MOVR7#64HADL2:DJNZR7ADL2DJNZR6ADL1RET;===============================================致谢在本次制作毕业设计的过程中,通过实践,我学到了很多实用的专业知识技能,充分实现了理论与实践的结合,这也使我对于单片机的知识及应用有了更深层次的了解这次的毕业设计不仅锻炼了我的实践能力,而且也让我知道做任何事都需要理论结合实际,通过实践来验证自己的观点,对于专业知识的积累也有很大的帮助最后感谢我的老师,并感谢一路陪伴我走来的同学们,是他们的帮助成就了我今天的成绩经过这段时间的努力及老师同学们的帮助,毕业设计也将近尾声了我相信通过这次的设计,以及在这个过程中老师的点拨和帮助,在今后的过程中我一定努力做到更好在此感谢老师的指导和建议,同时也感谢在设计过程中同学的帮助___
[1]胡汉才.单片机原理及其接口技术.北京:清华大学出版社xx
[2]刘国钧,陈绍业,王凤翥.图书馆目录.第1版.北京高等教育出版社,1957
[3]求是科技.单片机典型模块设计实例导航.北京:人民邮电出版社xx
[4]王化详张淑英.传感器原理.天津:天津大学出版社xx
[5]荣俊昌.新型电风扇原理与维修.北京:高等教育出版社xx
[6]王港元.电工电子实践指导.江西:江西科学技术出版社xx
[7]余小平,奚大顺.电子系统设计[M].北京______大学出版社,xx.37-53
[8]来清民.传感器与单片机接口及实例[M].北京______大学出版社,xx.90-92
[9]刘健,徐炜,伊均萍,刘良成.电路分析[M].北京:电子工业出版社,xx.75-79
[10]郑海春、姜月.智能无线防盗___系统.西化:微计算机信息xx
2.21-43
[11]童诗白、华成英.模拟电子技术基础(第三版).北京高等教育出版社,xx.12模板内容仅供参考。