• 1.33 MB
  • 2022-04-22 13:43:10 发布

基于单片机的温度控制风扇的设计.doc

  • 70页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'山东科技大学学士学位论文摘要基于单片机的温度控制风扇的设计摘要基于温度传感器和51系列单片机控制技术,设计了一种智能温控调速风扇。本毕业设计的温控风扇利用温度传感器DS18B20来检测外界环境的温度,利用数码管显示外界环境温度、设定的开启温度以及温度差和档位,可以通过控制按键调节设定的开启温度以及温度差,风扇共有五个档位,根据PWM(PulseWidthModulation)可以控制调节风扇速度。本论文阐述了智能温控调速风扇的工作原理、硬件设计、软件实现的过程。电风扇的自动控制,可以更加便于人们对风扇的使用。克服了普通电风扇无法根据外界温度自动调节转速困难。因此,智能电风扇的设计具有重要的现实意义。关键词单片机;温度传感器;直流电机;PWM1 山东科技大学学士学位论文ABSTRACTABSTRACTBasedonthetemperaturesensorand51seriessingle-chipmicrocomputercontroltechnology,wedesignedakindofintelligenttemperaturecontrolfan.InthiscoursedesignoftemperaturecontrolfanweusetemperaturesensorDS18B20totestthetemperatureoftheexternalenvironment.Weusedthedigitaltubetodisplaytheoutsidetemperatureandsetthetemperatureandthetemperaturedifferenceandgears.ThefancanberegulatedbycontrollingthebuttonstosetthetemperatureandthetemperaturedifferenceInthisdesignweexpoundtheintelligenttemperaturecontrolfan,andtheworkingprinciple,hardwaredesign,softwareimplementationprocess.ThefanhasfivegearsbasedonPWM(PulseWidthModulation)tocontrolthefan’sspeed.Theautomaticcontrolofelectricfancanbemoreconvenientforpeopletotheuseofthefan.Anditovercometheproblemthatordinaryelectricfancan"tadjustmentspeedaccordingtotheambienttemperatureautomatic.Therefore,thedesignofintelligentelectricfanhasimportantpracticalsignificance.Keywords:single-chipmicrocomputer,temperaturesensor,continuouscurrentmotor,PWM1 山东科技大学学士学位论文目录1 山东科技大学学士学位论文引言1引言1.1研究背景风扇是一种我们在日常生活中经常使用的设备,但是传统的风扇设备通常是由人为设定风扇的档速,春夏(夏秋)交替时节,白天温度依旧很高,电风扇应高转速、大风量,使人感到清凉;到了晚上,气温降低,当人入睡后,应该逐步减小转速,以免使人感冒。虽然电风扇都有调节不同档位的功能,但必须要人手动换档,但人们在睡眠时通常无法去改变风扇的转速,而普遍采用的定时器关闭的做法,一方面是定时时间长短有限制,一般是一两个小时;另一方面可能在一两个小时后气温依旧没有降低很多,而风扇就关闭了,使人在睡梦中热醒而不得不起床重新打开风扇,增加定时器时间,非常麻烦,而且可能多次定时后最后一次定时时间太长,在温度降低以后风扇依旧继续吹风,使人感冒;又比如在较大功率的电子产品散热方面,现在绝大多数都采用了风冷系统,利用风扇引起空气流动,带走热量,使电子产品不至于发热烧坏。要使电子产品保持较低的温度,必须用大功率、高转速、大风量的风扇,而风扇的噪音与其功率成正比。如果要低噪音,则要减小风扇转速,又会引起电子设备温度上升,不能两全其美。电风扇在我国已有五十多年的生产历史,不管是在城市和农村的普及率都比较高,2008年产量超过1亿台,除了国内市场外,还大批量的出口到世界各地,占全球市场的绝大部分份额。由于电风扇结构较为简单,技术含量相对较低。3 山东科技大学学士学位论文引言1.2论文研究意义为解决上述问题,我们设计了这套温控自动风扇系统。本系统采用高精度集成温度传感器,由温度传感器来检测当前环境所处的温度用51系列单片机控制,能显示实时检测温度,使用者可以设定开启温度以及自己每变速一档所需要的温度差。风扇的转速可以根据温度的变化而改变,在温度比较低的时候可以自动减速,温度降低的时候可以加快速度,这样的智能化控制比起传统的风扇能够更好地适应人们的需要。当今社会已经完全进入了电子信息化,温度控制器在各行各业中已经得到了充分的利用。具有对温度进行实时监控的功能,以保证工业仪器,测量工具,农业种植的正常运作,它的最大特点是能实时监控周围温度的高低,并能同时控制电机运作来改变温度。它的广泛应用和普及给人们的日常生活带来了方便[1]。基于单片机的温度控制风扇是利用单片机系统来完成的一个小型的控制系统。现阶段运用与国内大部分家庭,系统效率越来越高,成本也越来越低。其发展趋势可以根据其性质进行相应的改进可以运用与不同场合的温度监测控制,并带来大量的经济效益。它可以广泛应用于城市、农村、各种工业生产,在一定情况下亦适用于太阳能、锅炉及对温度敏感的产业的自动控制和温度报警,是实现无人值守的理想产品,市场极为广阔,需求量大。并且使用寿命长,适用范围广,安装极其容易。3 山东科技大学学士学位论文引言1.3研究内容及结构1.3.1研究内容本文主要设计了由AT89C52单片机控制的温控风扇,首先进行设计方案的有关论证,设计温度控制风扇的整体硬件电路,并对各模块电路进行有关的软件调试和实物部分的调试。1.3.2基本结构(1)引言:主要是问题的提出及研究的意义,并阐述本文的主要内容和基本结构。(2)设计思路及方案论证:阐述了主要的研究思路以及对核心器件的选择和设计方案的论证。(3)各个单元模块的硬件设计:对各个使用的器件进行有关的介绍并对主要的模块进行设计。(4)软件设计:首先使用KeilC进行程序的设计,程序设计完成后,将生成的文件导入到Proteus中,并进行软件的仿真。(5)系统调试:设计实物并将所用的电路板焊好,进行有关实物的调试。(6)总结与建议。3 山东科技大学学士学位论文设计思路及方案论证2设计思路及方案论证2.1设计思路本设计的整体思路是:首先利用温度传感器DS18B20检测环境温度并直接输出数字温度信号给单片机AT89C52进行处理,在LED数码管上显示当前环境温度值、预设温度值、使用者设定的温度差以及目前风扇所处的档位。其中预设温度值只能为整数形式,检测到的当前环境温度可精确到小数点后一位。同时采用PWM脉宽调制方式来改变直流风扇电机的转速。并通过两个按键改变预设温度值,一个提高预设温度,另一个降低预设温度值。通过另一个按键控制温度差的大小。第三个按键可以改变所需要设定的温度差。系统结构框图如图2.1所示:AT89C52温度显示档位显示温度差显示独立按键PWM驱动电路直流电机DS18B20复位晶振图2.1系统构成框图7 山东科技大学学士学位论文设计思路及方案论证2.2方案论证本设计要实现风扇直流电机的温度控制,使风扇电机能根据环境温度的变化自动启停及改变转速,需要比较高的温度变化分辨率以及稳定可靠的换挡停机控制部件。2.2.1温度传感器的选择在本设计中,温度传感器的选择有以下两种方案:方案一:采用热敏电阻作为检测温度的核心元件,并通过运算放大器放大,由于热敏电阻会随温度变化而变化,进而产生输出电压变化的微弱电压变化信号,再经模数转换芯片ADC0809将微弱电压变化信号转化为数字信号输入单片机处理。方案二:采用数字式的集成温度传感器DS18B20作为温度检测的核心元件,由其检测并直接输出数字温度信号给单片机进行处理。对于方案一,采用热敏电阻作为温度检测元件,有价格便宜,元件易购的优点,但热敏电阻对温度的细微变化不太敏感。在信号采集、放大以及转换的过程中还会产生失真和误差,并且由于热敏电阻的R-T关系的非线性,其自身电阻对温度的变化存在较大误差,虽然可以通过一定电路来修正,但这不仅将使电路变得更加复杂,而且在人体所处环境温度变化过程中难以检测到小的温度变化。故该方案不适合本系统。对于方案二,由于数字式集成温度传感器DS18B20的高度集成化,大大降低了外接放大转化等电路的误差因数,温度误差变得很小,并且由于其检测温度的原理与热敏电阻检测的原理有着本质的不同,使得其温度分辨力极高。温度值在器件内部转化成数字量直接输出,简化了系统程序设计,又由于该温度传感器采用先进的单总线技术,与单片机的接口变得非常简洁,抗干扰能力强,因此该方案适用于本系统。7 山东科技大学学士学位论文设计思路及方案论证2.2.2控制核心的选择在本设计中采用AT89C52单片机作为控制核心,通过软件编程的方法进行温度检测和判断,并在其I/O口输出控制信号[2]。AT89C52单片机工作电压低,性能高,片内含8k字节的只读程序存储器ROM和256字节的随机数据存储器RAM,它兼容标准的MCS-51指令系统,单片机价格也不贵,适合本设计系统。2.2.3温度显示器件的选择方案一:应用动态扫描的方式,采用LED共阴极数码管显示温度。方案二:采用LCD液晶显示屏显示温度。对于方案一,该方案成本很低,显示温度明确醒目,功耗极低,同时温度显示程序的编写也相对简单,因而这种显示方式得到了广泛应用。但不足的地方是它采用动态扫描的显示方式,各个LED数码管是逐个点亮的,因此会产生闪烁,但由于人眼的视觉暂留时间为20MS,故当数码管扫描周期小于这个时间时,人眼不会感觉到闪烁。因此只要频率设置得当了即可采用该方案。对于方案二,液晶显示屏具有显示字符优美,其不仅能显示数字还能显示字符甚至图形,这是LED数码管无法达到的。但是液晶显示模块的元件价格昂贵,显示驱动程序的编写也较复杂,从简单实用的原则考虑,本系统采用方案一。2.2.4调速方式的选择方案一:采用数模转换芯片DAC0832来控制,由单片机根据当前环境温度值输出相应数字量到DAC0832中,再由DAC0832产生相应模拟信号控制晶闸管的导通角,从而通过无级调速电路实现风扇电机转速的自动调节。方案二:采用单片机软件编程实现PWM(脉冲宽度调制)调速的方法。PWM是英文PulseWidth7 山东科技大学学士学位论文设计思路及方案论证Modulation的缩写,它是按一定的规律改变脉冲序列的脉冲宽度,以调节输出量和波形的一种调节方式,在PWM驱动控制的调节系统中,最常用的是矩形波PWM信号,在控制时需要调节PWM波的占空比。占空比是指高电平持续时间在一个周期时间内的百分比。在控制电机的转速时,占空比越大,转速就越快,若全为高电平,占空比为100%时,转速达到最大。用单片机I/O口输出PWM信号时,有如下三种方法:(1)利用软件延时。当高电平延时时间到时,对I/O口电平取反,使其变成低电平,然后再延时一定时间;当低电平延时时间到时,再对该I/O口电平取反,如此循环即可得到PWM信号。在本设计中应用了此方法。(2)利用定时器。控制方法与(1)相同,只是在该方法中利用单片机的定时器来定时进行高低电平的转变,而不是用软件延时。应用此方法时编程相对复杂。(3)利用单片机自带的PWM控制器。在STC12系列单片机中自身带有PWM控制器,但本系统所用到得AT89系列单片机无此功能。对于方案一,该方案能够实现对直流风扇电机的无级调速,速度变化灵敏,但是D/A转换芯片的价格较高,与其温控状态下无级调速功能相比性价比不高。对于方案二,相对于其他用硬件或者软硬件相结合的方法实现对电机进行调速而言,采用PWM用纯软件的方法来实现调速过程,具有更大的灵活性,并可大大降低成本,能够充分发挥单片机的功能,对于简单速度控制系统的实现提供了一种有效的途径。综合考虑选用方案二。7 山东科技大学学士学位论文各个单元模块的硬件设计3各个单元模块的硬件设计系统主要器件包括DS18B20温度传感器、AT89C52单片机、八位LED共阴极数码管、风扇、直流电机、达林顿反向驱动器ULN2803。辅助元件包括电阻电容、晶振、电源、按键等。3.1系统器件及理论简介3.1.1单片机的种类及选择当今世界上的单片机种类繁多,厂商琳琅满目,产品性能各异。其种类如下:(1)AVR单片机:ATMEL公司的AVR单片机,是增强型RISC内载Flash的单片机,芯片上的Flash存储器附在用户的产品中,可随时编程,再编程,使用户的产品设计容易,更新换代方便。AVR单片机采用增强的RISC结构,使其具有高速处理能力,在一个时钟周期内可执行复杂的指令,每MHz可实现1MIPS的处理能力[3]。AVR单片机工作电压为2.7~6.0V,可以实现耗电最优化。AVR的单片机广泛应用于计算机外部设备,工业实时控制,仪器仪表,通讯设备,家用电器,宇航设备等各个领域。(2)Motorola单片机:Motorola是世界上最大的单片机厂商。从M6800开始,开发了广泛的品种,4位,8位,16位,32位的单片机都能生产,其中典型的代表有:8位机M6805,M68HC05系列,8位增强型M68HC11,M68HC12,16位机M68HC16,32位机M683XX。Motorola单片机的特点之一是在同样的速度下所用的时钟频率较Intel类单片机低得多,因而使得高频噪声低,抗干扰能力强,更适合于工控领域及恶劣的环境。24 山东科技大学学士学位论文各个单元模块的硬件设计(3)MicroChip单片机:MicroChip单片机的主要产品是PIC16C系列和17C系列8位单片机,CPU采用RISC结构,分别仅有33,35,58条指令,采用Harvard双总线结构,运行速度快,低工作电压,低功耗,较大的输入输出直接驱动能力,价格低,一次性编程,小体积。适用于用量大,档次低,价格敏感的产品。在办公自动化设备,消费电子产品,电讯通信,智能仪器仪表,汽车电子,金融电子,工业控制不同领域都有广泛的应用,PIC系列单片机在世界单片机市场份额排名中逐年提高,发展非常迅速。(4)MDT20XX系列单片机:工业级OTP单片机,Micon麦肯公司生产,与PIC单片机管脚完全一致,海尔集团的电冰箱控制器,TCL通信产品,长安奥拓铃木小轿车功率分配器就采用这种单片机。(5)Scenix单片机:Scenix公司推出的8位RISC结构SX系列单片机与Intel的PentiumII等一起被《ElectronicIndustryYearbook1998》评选为1998年世界十大处理器。在技术上有其独到之处:SX系列双时钟设置,指令运行速度可达50/75/100MIPS(每秒执行百万条指令,XXXMInstructionPerSecond);具有虚拟外设功能,柔性化I/O端口,所有的I/O端口都可单独编程设定,公司提供各种I/O的库程序,用于实现各种I/O模块的功能,如多路UART,多路A/D,PWM,SPI,DTMF,FS,LCD驱动等等。采用EEPROM/FLASH程序存储器,可以实现在线系统编程。通过计算机RS232C接口,采用专用串行电缆即可对目标系统进行在线实时仿真。(6)EPSON单片机:EPSON单片机以低电压,低功耗和内置LCD驱动器特点而闻名,尤其是LCD驱动部分做得很好。广泛用于工业控制,医疗设备,家用电器,仪器仪表,通信设备和手持式消费类产品等领域。目前EPSON已推出四位单片机SMC62系列,SMC63系列,SMC60系列和八位单片机SMC88系列。(7)东芝单片机:东芝单片机门类齐全,4位机在家电领域有很大市场,8位机主要有870系列,90系列,该类单片机允许使用慢模式,采用32K24 山东科技大学学士学位论文各个单元模块的硬件设计时钟时功耗降至10UA数量级。东芝的32位单片机采用MIPS3000ARISC的CPU结构,面向VCD,数字相机,图像处理等市场。(8)8051单片机:8051单片机最早由Intel公司推出,其后,多家公司购买了8051的内核,使得以8051为内核的MCU系列单片机在世界上产量最大,应用也最广泛,有人推测8051可能最终形成事实上的标准MCU芯片。LG公司生产的GMS90系列单片机,与IntelMCS-51系列、Atmel89C51/52,89C2051等单片机兼容,CMOS技术,高达40MHZ的时钟频率,应用于多功能电话,智能传感器,电度表,工业控制,防盗报警装置,各种计费器,各种IC卡装置,DVD,VCD,CD-ROM。(9)华邦单片机:华邦公司的W77,W78系列8位单片机的脚位和指令集与8051兼容,但每个指令周期只需要4个时钟周期,速度提高了三倍,工作频率最高可达40MHz。同时增加了WatchDogTimer,6组外部中断源,2组UART,2组Datapointer及Waitstatecontrolpin。W741系列的4位单片机带液晶驱动,在线烧录,保密性高,低操作电压(1.2V~1.8V)。3.1.2AT89C52单片机简介AT89C52是51系列单片机的一个型号,它是由ATMEL公司生产的一个低电压、高性能的8位单片机,片内器件采用ATMEL公司的非易失性、高密度存储技术生产,与标准的MCS-51指令系统兼容,同时片内置有通用8位中央处理器和8k字节的可反复擦写的只读程序存储器ROM以及256字节的数据存储器RAM,在许多许多较复杂的控制系统中AT89C52单片机得到了广泛的应用[4]。AT89C52有40个引脚,各引脚介绍如下:VCC:+5V电源线;GND:接地线。P0口:P0.7~P0.0,这组引脚共8条,其中P0.7为最高位,P0.0为最低位。这8条引脚共有两种不同的功能,分别使用于两种不同的情况。第一种情况是单片机不带片外存储器,P0口可以作为通用I/O口使用,P0.7~24 山东科技大学学士学位论文各个单元模块的硬件设计P0.0用于传送CPU的输入/输出数据,此时它需外接一上拉电阻才能正常工作。第二种情况是单片机带片外存储器,其各引脚在CPU访问片外存储器时先是用于传送片外存储器的低8位地址,然后传送CPU对片外存储器的读写数据。P1口:P1口是一个内部含上拉电阻的8位双向I/O口。它也可作为通用的I/O口使用,与P0口一样用于传送用户的输入输出数据,所不同的是它片内含上拉电阻而P0口没有,故P0口在做该用途时需外接上拉电阻而P1口则无需。在FLASH编程和校验时,P1口用于输入片内EPROM的低8位地址。P2口:P2口为一个内部上拉电阻的8位双向I/O口,它可以作为通用I/O口使用,传送用户的输入/输出数据,同时可与P0口的第二功能配合,用于输出片外存储器的高8位地址,共同选中片外存储单元,但此时不能传送存储器的读写数据。在一些型号的单片机中,P2口还可以配合P1口传送片内EPROM的12位地址中的高4位地址[5]。P3口:P3口引脚是8个带内部上拉电阻的双向I/O口,当P3口写入1后,它们被内部上拉为高电平。它也可作为通用的I/O口使用,传送用户的输入输出数据,P3口也作为一些特殊功能端口使用,如图3.1所示:24 山东科技大学学士学位论文各个单元模块的硬件设计图3.1AT89C52单片机P3.0:RXD(串行数据接收口)P3.1:TXD(串行数据发送口)P3.2:(外部中断0输入)P3.3:(外部中断1输入)P3.4:T0(记数器0计数输入)P3.5:T1(记时器1外部输入)P3.6:(外部RAM写选通信号)P3.7:(外部RAM读选通信号)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平状态。ALE/:地址锁存允许/编程线,当访问片外存储器时,在P0.7~P0.0引脚线上输出片外存储器低8位地址的同时还在ALE/24 山东科技大学学士学位论文各个单元模块的硬件设计线上输出一个高电位脉冲,其下降沿用于把这个片外存储器低8位地址锁存到外部专用地址锁存器,以便空出P0.7~P0.0引脚线去传送随后而来的片外存储器读写数据。不访问片外存储器时,单片机自动在ALE/线上输出频率为1/6晶振频率的脉冲序列。:外部程序存储器ROM的选通信号。在由外部程序存储器存取期间,每个机器周期两次有效。但在访问外部数据存储器时,这两次有效的信号将不出现。/VPP:允许访问片外存储器/编程电源线,当保持低电平时,则在此期间允许使用片外程序存储器,不管是否有内部程序存储器。当端保持高电平时,则允许使用片内程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1和XTAL2:片内振荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接单片机片内OSC的定时反馈回路。3.1.3DS18B20单线数字温度传感器简介DS18B20数字温度传感器,是采用美国DALLAS半导体公司生产的DS18B20可组网数字温度传感器芯片封装而成,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串行数字信号供处理器处理,适用于各种狭小空间设备数字测温和控制领域[6]。DS18B20的主要特征:测量的结果直接以数字信号的形式输出,以“单线总线”方式串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力;温度测量范围在-55℃—+125℃之间,在-10℃—+85℃时精度为±0.5℃;可检测温度分辨率为9-12位,对应的可分辨温度分别为0.5℃,0.25℃,0.125℃和0.0625℃24 山东科技大学学士学位论文各个单元模块的硬件设计,可实现高精度测温;它单线接口的独特性,使它与微处理器连接时仅需一条端口线即可实现与微处理器的双向通信;支持多点组网功能,即多个DS18B20可以并联在唯一的三线上,实现组网多点测温的功能;工作电压范围宽,其范围在3.0—5.5V。DS18B20内部结构主要有四部分:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。其管脚有三个,其中DQ为数字信号端,GND为电源地,VDD为电源输入端。温度传感器如图3.2所示。图3.2温度传感器DS18B203.1.4直流电动机简介根据励磁方式不同,直流电动机分为自励和他励两种类型。不同励磁方式的直流电动机机械特性曲线有所不同。但是对于直流电动机的转速有以下公式:其中:U—电压;R内—励磁绕组本身的电阻;Φ—磁通(WB);Cc—电势常数;Cr—转矩常量。24 山东科技大学学士学位论文各个单元模块的硬件设计由上式可知,直流电机的速度控制既可采用电枢控制法,也可采用磁场控制法。磁场控制法控制磁通,其控制功率虽然较小,但低速时受到磁极饱和的限制,高速时受到换向火花和换向器结构强度的限制,而且由于励磁线圈电感较大,动态响应较差。所以在工业生产过程中常用的方法是电枢控制法。电机工作原理如图3.3所示。图3.3直流电机的工作原理图电枢控制是在励磁电压不变的情况下,把控制电压信号加到电机的电枢上,以控制电机的转速。传统的改变电压方法是在电枢回路中串联一个电阻,通过调节电阻改变电枢电压,达到调速的目的,这种方法效率低、平滑度差,由于串联电阻上要消耗电功率,因而经济效益低,而且转速越慢,能耗越大。随着电力电子的发展,出现了许多新的电枢电压控制方法。如:由交流电源供电,使用晶闸管整流器进行相控调压;脉宽调制(PWM,PulseWidthModulation)调压等等。调压调速法具有平滑度高,能耗少,精度高等优点。在工业生产中广泛使用其中脉宽调制(PWM)应用更为广泛。脉宽调制原理PWM脉冲宽度调制技术就是通过对一系列脉冲的宽度进行调制来等效地获得所需要的波形(含形状和幅值)的技术。下式是占空比计算公式:式中t1表示一个周期内开关管导通的时间,T表示一个周期的时间。24 山东科技大学学士学位论文各个单元模块的硬件设计占空比D表示了在一个周期里,开关管导通的时间与周期的比值,变化范围为0≤D≤100%。由上式可知,当电源电压不变的情况下,电枢的端电压的平均值为Dmax=V*D,因此改变占空比D就可以改变端电压的平均值,从而达到调速的目的,这就是PWM调速原理。在PWM调速时,占空比是一个重要参数[7]。以下是三种可改变占空比的方法:l定宽调频法:保持高电平时间不变,改变低电平时间,从而改变周期(或频率)。l调宽调频法:保持低电平时间不变,改变高电平时间,从而改变周期(或频率)。l定频调宽法:保持周期(或频率)不变,同时改变高、低电平持续时间。前2种方法由于在调速时改变了控制脉冲的周期(或频率),当控制脉冲的频率与系统的固有频率接近时,将会引起振荡,因此应用较少。目前,直流电动机的控制中,主要使用第3种方法。 定频调宽法是利用一个固定的频率来控制电源的接通或断开,并通过改变一个周期内“接通”和“断开”时间的长短,即改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速,因此,PWM又被称为“开关驱动装置”。3.1.4达林顿反向驱动器ULN2803简介本系统要用单片机控制风扇直流电机,需要加驱动电路,为直流电机提供足够大的驱动电流。在本系统驱动电路中,选用达林顿反向驱动器ULN2803来驱动风扇直流电机。ULN2803在使用时接口简单,操作方便,可为电机提供较大的驱动电流,它实际上是一个集成芯片,单块芯片可同时驱动8个电机。每个电机由单片机的一个I/O口控制,单片机I/O口输出的为5V的TTL信号。ULN2803由8个NPN达林顿晶体管组装而成,共18个引脚,引脚1~24 山东科技大学学士学位论文各个单元模块的硬件设计8分别是8路驱动器的输入端,输入信号可直接是TTL或CMOS信号;引脚11~18分别是8路驱动器的输出端;引脚9为接地线,引脚10为电源输入。当输入TTL信号为5V或CMOS信号为6~15V时,输出的最大电压为50V,最大电流为500mA,工作温度范围为0~70℃。本系统选用的电机为12V直流无刷电机,可用ULN2803来驱动,下图3.4为ULN2803的结构图。图3.4ULN2803的结构图3.1.5LED数码管简介本系统选用五个LED数码管来进行温度显示。LED又称为数码管,它主要是由8段发光二极管组成的不同组合,其中a~g为数字和字符显示段,dp为小数点的显示,通过a~g这7个发光二极管点亮的不同组合,可以显示0~9和A~F共16个数字和字母[8]。LED数码管可以分为共阴极和共阳极两种结构,如下图3.5(a)和图3.5(b)所示。共阴极结构把8个发光二极管阴极连在一起,共阳极结构把8个发光二极管阳极连在一起。通过单片机引脚输出高低电平,可使数码管显示相应的数字或字母,这种使数码管显示字形的数据称字形码,又称为段选码。数码管的显示图24 山东科技大学学士学位论文各个单元模块的硬件设计如下图3.5所示。a.共阴极b.共阳极数码管引脚分配图图3.57段LED数码管显示图表3.17段LED的段选码表显示字符共阴极段码共阳极段码显示字符共阴极段码共阳极段码03fHC0H87fH80H106HF9H96fH90H25bHA4HA77H88H34fHB0HB7fH83H466H99HC39HC6H56dH92HD3fHA1H67dH82HE79H86H707HF8HF71H8EH一个共阴极数码管接至单片机的电路,要想显示数字“7”须a、b、c这3个显示段发光(即这3个字段为高电平)只要在P0口输入00000111(07H)即可。这里07H即为数字7的段选码。字形与段选码的关系见表3.1所示。3.1.674373芯片简介24 山东科技大学学士学位论文各个单元模块的硬件设计74373是一种三态输出的八D透明锁存器,74373的输出端O0~O7可直接与总线相连。当三态允许控制端OE为低电平时,O0~O7为正常逻辑状态,可用来驱动负载或总线。当OE为高电平时,O0~O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端LE为高电平时,输出端数据随输入端D而变。当LE为低电平时,输出端O被锁存在已建立的数据电平[9]。当LE端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度改善400mV。引出端符号:D0~D7数据输入端OE三态允许控制端(低电平有效)LE锁存允许端O0~O7输出端74373引脚如图3.6所示。图3.674373引脚图24 山东科技大学学士学位论文各个单元模块的硬件设计3.2主要部分电路设计3.2.1DS18B20传感器连接电路DS18B20数字温度传感器通过其内部计数时钟周期来的作用,实现了特有的温度测量功能。低温系数振荡器输出的时钟信号通过由高温度系数振荡器产生的门周期而被计数,计数器预先置有与-55℃相对应的一个基值。如果计数器计数到0时,高温度系数振荡周期还未结束,则表示测量的温度值高于-55℃,被预置在-55℃的温度寄存器中的值就增加1℃,然后这个过程不断重复,直到高温度系数振荡周期结束为止。此时温度寄存器中的值即为被测温度值,这个值以16位二进制形式存放在存储器中,通过主机发送给存储器发送读命令可读出此温度值,读取时低位在前,高位在后,依次进行[10]。由于温度振荡器的抛物线特性的影响,内部用斜率累加器进行补偿。DS18B20在使用时,一般都采用单片机来实现数据采集。只须将DS18B20信号线与单片机1位I/O线相连,且单片机的1位I/O线可挂接多个DS18B20,就可实现单点或多点温度检测。在本设计中将DS18B20接在P3.7口实现温度的采集。DS18B20与单片机的连接如图3.7。24 山东科技大学学士学位论文各个单元模块的硬件设计图3.7温度传感器连接电路3.2.2数码管显示电路本设计制作中选用8位共阴极数码管作为显示模块,它和单片机硬件的接口如图3.8所示。其中前3位数码管DS1、DS2、DS3用于显示温度传感器实时检测采集到的温度,可精确到0.1摄氏度,显示范围为0~99.9摄氏度;第4位数码管DS4显示的是摄氏度的单位符号。第5位和第6位数码管DS5、DS6用于显示系统设置的开启温度,只能显示整数的温度值,显示范围为20~40摄氏度。第7位数码管DS7显示的是设定的温度差,温度差的设定范围为1~4摄氏度,最后一位数码管DS8显示的是目前风扇所处的档位,共分为1~5五个档位。8位数码管的段选a、b、c、d、e、f、g、dp线分别与单片机的P0.0~P0.7口连接,其中P0口需接一个24 山东科技大学学士学位论文各个单元模块的硬件设计10K的上拉电阻,以使单片机的P0口能够输出高低电平。8位数码管的位选W1~W8分别与单片机的P2.0~P2.7口相连接,只要P2.0~P2.7中任一端口输出低电平,则选中与该位相连的数码管。图3.8数码管显示连接电路3.2.4独立键盘连接电路键盘包括3个独立按键key1,key2和key3,它们的一端分别与单片机的P1.0,P1.1和P1.2口相连,另一端接地,当按下任一键时,P1口读取低电平有效。系统上电后,进入键盘扫描子程序,以查询的方式确定各按键,完成温度初值的设定。其中按键key1为加按键,每按下一次,系统对最初设定值加一,按键key2为减按键,每按下一次,key3为设定温度差的按键,每按下一次,设定的温度差会加大1℃。其接线图如图3.9所示:24 山东科技大学学士学位论文各个单元模块的硬件设计图3.9独立键盘连接电路3.2.3风扇电机的连接电路本设计中由单片机的I/O口输出PWM脉冲,通过一个达林顿反向驱动器ULN2803驱动12V直流无刷风扇电机以及实现风扇电机速度的调节。键盘控制设置温度,通过软件向单片机输入相应控制指令,由单片机通过P3.0口输出与转速相应的PWM脉冲,经过ULN2803驱动风扇直流电机控制电路,实现电机转速与启停的自动控制。当环境温度升高时,直流电机的转速会相应按照设定的等级有所提高;当环境温度下降时,电机的转速会相应的下降;当环境温度低于设置温度时,电机停止转动,而环境温度又高于预设温度时,电机重新启动。电路如图3.10所示,风扇电机的一端接12V电源,另一端接ULN2803的OUT7引脚,ULN2803的IN7引脚与单片机的P3.1引脚相连,通过控制单片机的P3.1引脚输出PWM信号,由此控制风扇直流电机的速度与启停。风扇连接电路如图3.10所示24 山东科技大学学士学位论文各个单元模块的硬件设计图3.10风扇电机的连接电路3.2.3开关复位与晶振电路在单片机应用系统中,除单片机本身需要复位以外,外部扩展I/O接口电路也需要复位,因此需要一个包括上电和按钮复位在内的系统同步复位电路。单片机上的XTAL1和XTAL2用来外接石英晶体和微调电容,即用来连接单片机片内OSC的定时反馈回路[11]。当按下按键开关S1时,系统复位一次。其中电容C1、C2为20pF,C3为10uF,电阻R2、R3为10k,晶振为11.0592MHz。系统复位图与晶振电路如图3.11所示。24 山东科技大学学士学位论文软件设计图3.11系统复位图与晶振电路36 山东科技大学学士学位论文软件设计4软件设计4.1程序设计程序设计部分主要包括主程序、DS18B20初始化程序、DS18B20温度转换程序、温度读取程序、键盘扫描程序、数码管显示程序、温度处理程序以及风扇电机控制程序。DS18B20初始化程序完成对DS18B20的初始化;DS18B20温度转换程序完成对环境温度的实时采集;温度读取程序完成主机对温度传感器数据的读取及数据换算,键盘扫描程序则根据需要完成初始的开启温度值的加减设定以及温度差大小的设定;温度处理程序对采集到的温度进行分析处理,为电机转速的变化提供条件;数码管显示程序主要完成的是目前环境温度大小的显示,摄氏度符号的显示,预设值开启温度大小的整数显示和设定的温度差的显示以及目前风扇所处档位的显示。风扇电机控制程序则根据温度的数值完成对电机转速大小的控制。主程序流程图如图4.136 山东科技大学学士学位论文软件设计图4.1主程序流程图36 山东科技大学学士学位论文软件设计4.2用KeilC51编写程序KeilC51是美国KeilSoftware公司开发的51系列兼容单片机C语言的软件开发系统,与单片机汇编语言相比,C语言在不仅语句简单灵活,而且编写的程序模块可移植性强,因而易学易用,效率高。随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前使用较多的MCS-51系列单片机开发的软件[12]。KeilC51软件不仅提供了丰富的库程序,而且它强大的集成开发调试工具为程序编辑调试带来便利,在开发大型软件时更能体现高级语言的优势。在使用时要先建立一个工程,然后添加文件并编写程序,编写好后再编辑调试。KeilC51的使用界面如图4.2。图4.2KeilC51的使用界面36 山东科技大学学士学位论文软件设计4.3用Proteus进行仿真4.3.1Proteus简介Proteus软件是来自英国Lab-centerelectronics公司的EDA工具软件。Proteus软件有十多年的历史,在全球广泛使用,它不仅和其它EDA工具一样有原理布图、PCB自动或人工布线及电路仿真的功能,在电路仿真中可以根据仿真实时观察到的现象验证设计的正确性及准确性并及时改变程序代码、原理图连接以及元件属性等[13]。它还能配合系统配置的虚拟仪器来显示和输出,如示波器、逻辑分析仪等,效果很好。Proteus有4个功能模块:智能原理图设计、完善的电路仿真功能、独特的单片机协同仿真功能以及实用的PCB设计平台。其内部元件库含有丰富的元件,支持总线结构以及智能化的连线功能;支持主流CPU(如ARM、8051/52、AVR)及其通用外设模型的实时仿真等,为单片机的开发应用等带来极大的便利。软件使用的主界面如图4.3。图4.3Proteus使用界面36 山东科技大学学士学位论文软件设计4.3.2基于Proteus的仿真以及演示首先启动Proteus软件并建立一个工程文件,然后根据原理图调出相应的原件,再根据要求改变各原件的属性并把各个原件按原理图连接起来。在原理图绘制连接好后再把编译好的程序加载到其中。最后根据系统要实现的功能分步进行仿真。当环境温度为27.4℃,使用按键设定的开启温度为28℃,时,温度差设置为1℃,点击开始按钮,系统开始仿真,待一段时间稳定后,观察到此时数码管上的显示的风扇档位为0档,风扇的直流电机是停止转动,转速为0.00r/s,如图4.4所示。36 山东科技大学学士学位论文软件设计图4.4Proteus仿真效果图一36 山东科技大学学士学位论文软件设计调节环境温度上升为28.4℃,待一段时间稳定后,观察到此时数码管显示温度差为1℃时风扇所处的档位为1档,直流风扇电机的转速为+34.1r/s,如图4.5所示。36 山东科技大学学士学位论文软件设计图4.5Proteus仿真效果图二调节环境温度上升为30.4℃,待一段时间稳定后,观察到此时数码管显示温度差为1℃时风扇所处的档位为3档,直流风扇电机的转速为+68.2r/s,如图4.6所示。36 山东科技大学学士学位论文软件设计图4.6Proteus仿真效果图三36 山东科技大学学士学位论文软件设计调节环境温度上升为32.4℃,通过按键调节设定的开启温度为23℃,通过按键key3设定温度差为2℃,待一段时间稳定后,观察到此时数码管显示温度差为2℃时风扇所处的档位为5档,直流风扇电机的转速为+101r/s,如图4.7所示。36 山东科技大学学士学位论文软件设计图4.7Proteus仿真效果图四通过以上仿真可以看出,直流风扇电机在系统设定温度一定的情况下,其转速随着环境温度(温度传感器检测到的温度)的增加而增大。当环境温度低于系统预设的温度时,风扇自动停止运转,实现了系统所设计的功能,本系统所设置的开启温度为20℃~40℃,符合实际需要。本系统实现的是电机在随环境温度变化的五个档位的速度变化,五个档位对应着数码管最后一位显示的数值。环境温度在一定小范围内变化风扇电机转速是不变的,只有超过了设定的某一界限时转速才会变化。并且本系统通过设定温度差可以使风扇的设计更加方便于不同人群的使用,当温度差设定为1℃时,环境温度每升高1℃时,档位会加大一档,当温度差设定为2℃时,环境温度每升高2℃时,档位才能升高一档,温度差的最高值可以设定为4℃。36 山东科技大学学士学位论文系统调试5系统调试5.1软件调试5.1.1按键显示部分的调试起初根据设计编写的系统程序:程序的键盘接口采用P1口,数码管的显示采用P0口控制LED的段码,P2口控制LED的位码,从而实现键盘功能及数码管的显示。经过编译没有出错,但在仿真调试时,数码管的显示的只是乱码,没有正确的显示温度,按键功能也不灵,当按下键时,显示并不变化。经过查找分析,发现键盘扫描程序没有按键消抖的部分,按键在按下与松手时,都会有一定程度的抖动,从而可能使单片机做出错误的判断,导致按键条件预设温度时失灵,甚至根本不能工作。因此必须在按键扫描程序中加入消抖的部分,即在按键按下与松手时加入延时判断,以检测键盘是否真的按下或已完全松手。数码管不能正确的显示,主要是因为所以数码管的段码都由P0口传送,而数码管的显示又采用了动态扫描的方式,但在程序中却没有设置显示段码的暂存器,导致当P0口传送段码时发生混乱,不能正确识别段码。应在系统中加入锁存器,或是在程序中设定存储段码的空间。在键盘加入了消抖的程序,数码管显示程序中加入了段码的存储空间后,数码管能够正常的显示,按键也能够工作,达到了较好的效果。5.1.2传感器DS18B20温度采集部分调试40 山东科技大学学士学位论文系统调试由于数字式集成温度传感器DS18B20的高度集成化,为软件的设计和调试带来了极大的简便,小体积、低功耗、高精度为控制电机的精度和稳定提供了可能。软件设计采用P3.1口为数字温度输入口,但是需要对输入的数字信号进行处理后才能显示,从而多了温度转换程序。通常只显示了预设温度的整数部分。在温度转换程序中,为了能够正确的检测并显示温度的小数位,程序中把检测的温度与10相乘后,再按一个三位的整数来处理。如把24.5变为245来处理,这样为程序的编写带来了方便。5.1.3电动机调速电路部分调试在本设计中,软件设置了P3.0口输出不同的PWM波形,通过达林顿反向驱动器ULN2803驱动直流电机转动,通过软件中程序设定,根据不同温度输出不同的PWM波,从而得到不同的占空比控制风扇直流电机。本程序的PWM程序的设定方法为将设定的PWM方波的周期设定为定值,每个档位增大一档时,高电平所占的占空比增加。在本系统中风扇电机的转速可实现五个档位调速。通过温度传感器检测的温度与系统预设温度值的比较,实现转速变换。当检测到的温度比预设的温度每增加设定的温度差的大小时,风扇电机档位增加一档。5.2硬件调试5.2.1按键显示部分的调试系统按键部分实现了以下功能:按下P1.0口键,LED显示温度值增1℃;按下P1.1口键,LED的后两位显示温度值减1℃;按下P1.3口键温度差增加1℃。调试过程中出现了当按键时间过长时,设置的温度值不是增加1℃或者减小1℃而是增加后减少几个值,出现这种情况的主要原因可能是按键的去抖动延时时间过长造成,改进方法为将对应的按键去抖动延时时间适量增加,但也不应过长,否则将出现按键无效的情形。系统显示部分实现了以下功能:LED显示的前三40 山东科技大学学士学位论文系统调试位实现了环境温度整数部分与小数部分的连续显示,LED的后两位能根据按键的调整显示所需要的设计温度。且LED的显示效果很好,很稳定。5.2.2传感器DS18B20温度采集部分调试将DS18B20芯片接在系统板对应的P3.7口,通过插针在对应系统板的右下侧三口即为对应的VCC、P3.7和GND,可将芯片直接插在该插针上,因此即为方便。系统调试中为验证DS18B20是否能在系统板上工作,将手心靠拢或者捏住芯片,即可发现LED显示的前两位温度也迅速升高,验证了DS18B20能在系统板上工作。由于DS18B20为3个引脚,因此在调试过程中因注意其各个引脚的对应位置,以免将其接反而是芯片不能工作甚至烧毁芯片。5.2.3电动机调速电路部分调试系统本部分的设计中重在软件设计,因为外围的驱动电路只是将送来的PWM信号放大从而驱动电机转动。系统软件设置在P3.7口输出使电机转动的PWM占空比,当环境温度高于设置温度时,电机开始转动,若此时用高于环境温度的热源靠近测温芯片DS18B20时,发现电机的转速在升高,并越来越快,当达到一定值时,发现电机的转速不再升高;将热源离开测温芯片DS18B20时,发现电机的转速开始下降,转速达到一定值时,若将设置温度升高到环境温度以上,发现电机又停止了转动。系统采用的直流电机为12V的额定电压,而该驱动电路在采用单片机电源时的输出电压最高不过5V,因此在调试过程中只采用了原有的5V直流电机来调试,且得到了可观的控制效果。5.3系统功能5.3.1系统实现的功能40 山东科技大学学士学位论文系统调试本系统能够实现单片机系统检测环境温度的变化,然后根据环境温度变化来控制风扇直流电机输入占空比的变化,从而产生不同的转动速度,亦可根据键盘调节不同的设置开启温度,再由环境温度与设置温度的差值来控制电机。当环境温度低于设置温度时,电机停止转动;当环境温度高于设置温度时,单片机对应输出口输出不同占空比的PWM信号,控制电机开始转动,并随着环境温度与设置温度的差值的增加电机的转速逐渐升高。系统能动态的显示当前温度和设置温度,并能通过键盘调节当前的设置温度。系统设置了不同的温度差,当温度每升高一个温度差的大小,风扇的档位会相应的加大一档,所处的当前档位会通过数码管显示出来。5.3.2系统功能分析系统总体上由五部分来组成,既按键与复位电路、数码管显示电路、温度检测电路、电机驱动电路。首先考虑的是温度检测电路,该部分是整个系统的首要部分,首先要检测到环境温度,才能用单片机来判断温度的高低,然后通过单片机控制直流风扇电机的转速;其次是电机驱动电路,该部分需要使用外围电路将单片机输出的PWM信号转化为平均电压输出,根据不同的PWM波形得到不同的平均电压,从而控制电机的转速,电路的设计中采用了达林顿反向驱动器ULN2803,实现较好的控制效果;再次是数码管的动态显示电路,该部分的功能实现对环境温度和设置温度的显示,其中DS18B20采集环境温度,按键实现不同设置温度的调整,实现了对环境温度和设置温度的及时连续显示。40 山东科技大学学士学位论文总结与建议总结与建议本次设计的系统以单片机为控制核心,以温度传感器DS18B20检测环境温度,实现了根据环境温度变化调节不同的风扇电机转速,在一定范围能能实现转速的连续调节,LED数码管能连续稳定的显示环境温度和设置开启温度,温度差以及开启温度。并能通过三个独立按键调节不同的设置温度和温度差的大小,从而改变环境温度与设置温度的差值,进而改变电机转速。实现了基于单片机的温控风扇的设计。本系统设计可推广到各种电动机的控制系统中,实现电动机的转速调节。在生产生活中,本系统可用于简单的日常风扇的智能控制,为生活带来便利;在工业生产中,可以改变不同的输入信号,实现对不同信号输入控制电机的转速,进而实现生产自动化,如在电力系统中可以根据不同的负荷达到不同的电压信号,再由电压信号调节不同的发电机转速,进而调节发电量,实现电力系统的自动化调节。综上所述,该系统的设计和研究在社会生产和生活中具有重要地位。经过这次毕业设计,我觉得自己学到了不少东西。归纳起来,主要有以下几点:(1)大学期间主要是学习基础理论知识,并未真正地去应用和实践。但是经过这次毕业设计,我接触到了更多平时没有接触到的仪器设备、元器件以及相关的使用调试经验。(2)毕业设计能够从理论设计和工程实践相结合、巩固基础知识与培养创新意识相结合、个人作用和集体协作相结合等方面全面的培养学生的综合素质。这些对我在将来的工作和学习当中都会有很大的帮助。41 山东科技大学学士学位论文参考文献参考文献:[1]赵继文.传感器与应用电路设计[M].北京:科学出版社.2008.87-108[2]公茂法,黄鹤松,杨学蔚.单片机原理与实践[M].北京:北京航空航天大学出版社,2009.78-97[3]张迎新.单片机初级教程[M].北京:北京航空大学出版社,2006.75-89[4]STC89C52RC单片机用户手册[S].宏晶科技.2007.[5]张毅刚.单片机原理及应用[M].北京:高等教育出版社,2012.[6]赵永杰,徐源.基于DS18B20的温度测量系统[J].现代电子技术,2008,31(10):157-159.[7]李维军,韩小刚,李晋.基于单片机用软件实现直流电机PWM调速系统[J].机电一体化,2004,5:49-51.[8]于永,戴佳,常江.51单片机C语言常用模块与综合系统设计(第二版)[M].电子工业出版社,2007:109-317.[9]张俊谟.单片机中级教程[M].北京:北京航空航天大学出版社,2006.[10]刘进山.基于MCS-51电风扇智能调速器的设计[J],广州:电子质量,2004,10.[11]邹振春.MCS-51系列单片机原理及接口技术[M].北京:机械工业出版社,2006:25-75.[12]王为青,程国钢.单片机KeilC51应用开发技术[M].北京:中国人民邮电出版社,2006:73-337.[13]Behzad,Razavi.DesignofAnalogCMOSIntegratedCircuits[M].2001.[14]ShirongZhang,XiaohuaXia.Optimalcontrolofoperationefficiencyofbeltconveyorsystems[J].AppliedEnergy,87(2010):1929–1933.42 山东科技大学学士学位论文致谢致谢不知不觉大学四年就要结束了,在此毕业论文完成之际,感谢我的家人对我大学四年学习的默默支持,感谢我的母校山东科技大学。大学四年学习时光已经接近尾声,在此我想对我的母校,我的父母、亲人们,我的老师和同学们表达我了我在大学四年深造的机会,让我能继续学习和提高:感谢山东科技大学的老师和同学们四年来的关心和鼓励。老师们课堂上的激情洋溢,课堂下的谆谆教诲;同学们在学习中的认真热情,生活上的热心主动,所有这些都让我的四年充满了感动。在本次毕业论文中,首先,也是最主要感谢的是我的指导老师,卢文娟老师,在整个过程中她给了我很大的帮助,在论文提纲制定时,我的思路不是很清晰,经过老师的帮忙,让我具体写作时思路顿时清晰。在完成初稿后,老师认真查看了我的文章,指出了我存在的很多问题。在此十分感谢卢老师的细心指导,才能让我顺利完成毕业论文,在此谨向卢老师致以诚挚的谢意和崇高的敬意。感谢在整个毕业设计期间和我密切合作的同学,和曾经在各个方面给予过我帮助的伙伴们,在此,我再一次真诚地向帮助过我的自动化学院的老师和同学表示感谢!祝山东科技大学校运昌隆!崔月2014.6.1043 山东科技大学学士学位论文附录1:电路总图附录1:电路总图44 山东科技大学学士学位论文附录2:实物图附录2:实物图45 山东科技大学学士学位论文附录3:程序代码附录3:程序代码#includesbitDQ=P3^7;//DS18B20的数据引脚//不带小数点的共阳数码管段码0-9sbitPWM=P3^0;sbitkey1=P1^0;//定义一下键盘的IO口sbitkey2=P1^1;sbitkey3=P1^2;unsignedcharnum;unsignedchardang;unsignedcharwenducha=1;unsignedcharled[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//********带返回值的延时子程序***********voiddelay(unsignedchartime){unsignedcharn;n=0;while(n0;i--)54 山东科技大学学士学位论文附录3:程序代码for(j=110;j>0;j--);}//******延时程序1*******voidyanshi1(unsignedintz)//延时程序,调节Z可以调节时间{unsignedinti,j;for(i=z;i>0;i--)for(j=10;j>0;j--);}//********DS18B20复位*********voidInit_DS18B20(void){DQ=1;delay(8);DQ=0;delay(85);DQ=1;delay(34);}//*******单片机向DS18B20写一个字节******unsignedcharReadOneChar(void){unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i--){DQ=1;54 山东科技大学学士学位论文附录3:程序代码delay(1);DQ=0;dat>>=1;DQ=1;delay(1);if(DQ)dat|=0x80;delay(4);}return(dat);}//******单片机读DS18B20一个字节**********voidWriteOneChar(unsignedchardat){unsignedchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;delay(5);DQ=1;dat>>=1;}delay(4);}//单片机读取DS18B20的温度floatReadTemperature(void){unsignedchartempL=0;unsignedchartempH=0;54 山东科技大学学士学位论文附录3:程序代码floattemperature;Init_DS18B20();WriteOneChar(0xcc);WriteOneChar(0x44);delay(125);Init_DS18B20();WriteOneChar(0xcc);WriteOneChar(0xbe);tempL=ReadOneChar();tempH=ReadOneChar();temperature=((tempH*256)+tempL)*0.0625;delay(200);return(temperature);//带返回值的程序,返回的值为温度值}//******数码管显示DS18B20的温度*******voidDisplayTemperature(floatm){unsignedchara,b,c;intn;n=10*m;//浮点型的m变成整型的nc=n/100;b=n%100/10;a=n%10;//整型的n拆位P2=0x7f;P0=led[c];yanshi(2);//10111111P2=0xbf;P0=led[b]|0x80;yanshi(2);//个位带小数点11011111,P2=0xdf;P0=led[a];yanshi(2);//小数点位P2=0xef;P0=0x39;yanshi(2);//数码管显示小c,11110111}//******数码管显示欲调节的温度*******54 山东科技大学学士学位论文附录3:程序代码voiddisplay(unsignedcharnumdis)//显示程序{unsignedcharshi,ge;shi=numdis/10;ge=numdis%10;P2=0xfb;//此为位选,选择个位。P0=led[ge];//此为段选,显示个位上的数yanshi(2);P2=0xf7;P0=led[shi];yanshi(2);P2=0xfe;P0=led[dang];yanshi(2);P2=0xfd;P0=led[wenducha];yanshi(2);}//******使用键盘来进行设置温度的调节*******voidkscanf(){if(key1==0){yanshi(5);if(key1==0){num++;if(num==41)//设定最高温度为40度54 山东科技大学学士学位论文附录3:程序代码num=20;//最低开启的温度为20度}while(!key1);}elseif(key2==0){yanshi(5);if(key2==0){num--;if(num<20)//设置最低温度为20度num=20;}while(!key2);}elseif(key3==0){yanshi(5);if(key3==0){wenducha++;if(wenducha>4)//设置温度差可调为1度到5度内wenducha=1;}while(!key3);}}//******直流电机档位的调速*******54 山东科技大学学士学位论文附录3:程序代码voidmadachengxu()//{floatk;//intn;k=ReadTemperature();if((k>=num)&&(k=num+wenducha)&&(k=num+2*wenducha)&&(k=num+3*wenducha)&&(k<=num+4*wenducha)){PWM=1;//开启四档风dang=4;display(num);DisplayTemperature(ReadTemperature());display(num);DisplayTemperature(ReadTemperature());PWM=0;//yanshi1(10);}if((k>num+4*wenducha)&&(k<=num+5*wenducha)){PWM=1;//开启五档风dang=5;display(num);54 山东科技大学学士学位论文附录3:程序代码DisplayTemperature(ReadTemperature());display(num);DisplayTemperature(ReadTemperature());yanshi1(9);PWM=0;//yanshi1(1);}if((k>num+5*wenducha)){PWM=1;//开启五档风,一直为五档风速dang=5;display(num);DisplayTemperature(ReadTemperature());display(num);DisplayTemperature(ReadTemperature());yanshi1(9);PWM=0;//yanshi1(1);}else{display(num);dang=0;DisplayTemperature(ReadTemperature());PWM=0;}}//*********主程序*************main(){num=20;while(1){//单片机读取DS18B20的温度后,数码管显示温度kscanf();madachengxu();}}54 山东科技大学学士学位论文附录4:中英文资料翻译附录4:中英文资料翻译AT89C52Single-chipmicroprocessorintroductionSelectionofSingle-chipmicroprocessor1.DevelopmentofSingle-chipmicroprocessorThemaincomponentpartofSingle-chipmicroprocessorasaresultofbysuchcentralizetobelivingtoobtainonthechip,InimmediatefuturemiddleprocessorCPU。StorageRAMimmediately﹑memoryreadROM﹑Interruptsystem、Timer/"scounteralongwithI/O"srimelectriccircuitawaitsthemainmicrocomputersection,Thelumpingislivingonthechip。AlthoughtheSingle-chipmicroprocessorisonlyachip,Yetthroughmakesupandtheservicebeabletoonsees,Ithasthecalculatingmachinesystemproperty,callingitforthisreasonactasSingle-chipmicroprocessorminimizecalculatingmachineSCMSandabbreviatetheSingle-chipmicroprocessor。1976YeartheIntercorporationputout8MCS-48SetSingle-chipmicroprocessorcomputer,Afterbeinglivingmorethan20yearstimeindevelopmentthatobtaincontinuouslyandwide-rangingapplication。1980YearthatcorporationputouthighperformanceMCS-51SetSingle-chipmicroprocessor。ThistypeofSingle-chipmicroprocessor‘sservicecapacity、Theaddressingrangewhollythanearlyphaseliftsomewhat,Usealsocomparativelyfarmoreatthemoment。1982Yearthatcorporationputoutthetaller16Single-chipmicroprocessorMCSofperformanceoncemore-96Set。TheSingle-chipmicroprocessorcomputerdevelopmenthastheperformance67 山东科技大学学士学位论文附录4:中英文资料翻译moreandmoretobeimproved﹑Moreandmorearedistinguishingfeatureofstrain。2.AdopttheSingle-chipmicroprocessorstrongpointHackeruse,agilityofapplication。lHavememory、Calculationandlook-upservicecapacity。Maymaketheapparatusbearingthattherulecannotmake。lThecommandsystemisfitforthereal-timecontrol。lBulkislittle,Executionspeedisquickly。lDependabilityishigh,Theanti-interferenceabilityispowerful。lThetemperatureuselimitisvast。lPower-offprotectionisimproved。lTheproductdevelopmentcyclebrief。lIdenticalsetismuchasthenecessaryinterfacechipsort,Theservicebeabletobecompletely,Beconvenientfortopickupachievetheminimalsystem。lOnthebasisofthetallscienceandtechnologydemand,Integrationincommonusesoftware,Hardware(IncasePL/Mlanguage,DAM"swavepatternproducer,Analogswitchawaits)Applicationisagile。Hence,NativeisdesignedadoptingwiththeSingle-chipmicroprocessorcorecomponentsdesigns。3.AT89C52ComponentAT89C52microprocessormainfunctionparameter:AndcompletelycompatiblewiththeMCS-51productinstructionandthepinThe8Kbyteisprogrammable/scratcheswritesFlashtododgethefastmemory1,000timescratcheswritesthecycleEntirestaticoperation:0Hz-24MHz67 山东科技大学学士学位论文附录4:中英文资料翻译Threelevelsofencryptionsprogrammemory256×8byteinteriorRAM32programmableI/Olines316fixedtime/counters8interruptsourcesProgrammableserialUARTchannelThelowpowerlossisidleandfallstheelectricitypatternCPU"scompositionTheCPUistheSingle-chipmicroprocessorcorecomponents,Itconsistsofthatruingthearithmeticsumcontrollerawait。1.ArithmeticunitTheserviceofarithmeticunitbeabletobecarryingonarithmeticoperationandlogicoperation,Thehalf-bytemaybeadjust﹑Theseparatewordlengthandsoonthedatamanipulate。2.OrdercounterPCItisusedforleavingsecondorderwhichwillthebecarriedoutaddress。TheaddressthattheorderpointsoutinaccordancePCbringsoutthroughthestorageafterwards,ThePCbeabletoplus1voluntarily,Inimmediatefuturepointtothesecondorder。3.OrderproductregisterLeavetheinstructioncodeintheorderregister。WhenCPU"sexecuteinstruction,Sendintotheorderregisterthroughreadingaloudtheinstructioncodegetintheorderstorage,Decipherqueenafterthedecipherer,Issuetherelevantcontrolsignalthroughfixedtimeagainstthecontrolcircuit。Completetheorderservicecapacity.Storage1.Orderstorage67 山东科技大学学士学位论文附录4:中英文资料翻译Usedtoleaveorderandformconstant。Asto8751,EA=1Hour,Sliceinternalprocedurestorageisoccupied0000H~0WhenFFFH,Orderstoragefetchpiecethroughtheslice.2.Datastorageutensil8751NomattertheSingle-chipmicroprocessordatastorageutensilislivingonthephysicsandthelogicgoesupwhollybeingdividedintotwoaddressspace,Oneactastheinternaldatastorage,CallontheinternaldatastorageinthewayoforderofMOV"s,Anotheractastheexternaldatastorageutensil,CallonexternaldatastoragearticlesofdailyuseorderofMOVX"s,Addressingmodeindirectaddressing。Servicecapacityregisterspecial.MCS-51LatchinnerplacetheSingle-chipmicroprocessor、Timer、Serialportdatabumpersalongwithdifferentcontrolregisterandtheconditionsregisterhaswhollywiththeservicecapacityregisterspecialshape。TAM"saddressspacelimitincludedtheydecentralizeddistributions(80H~FDH)Itisinside。8751Theinsideparticularservicecapacityregisterconsistsofoperatingtheregister、Registerofaddress、Therimlatchreachestobeusedtheinterception、Count/fixedatimeandtheserialportadministrationregister。ThecalculationregisterconsistsofaccumulatorA、RegisterBandprogrammodewordregisterPSW。TheregisterofaddressconsistsofindicatorDPTRofwarehouseindicatorSPanddataaddresses。MCS-51TheSPofSingle-chipmicroprocessoractas8,TheplaceincludedthewarehouseamongtheRAMiscomparativelymoreagile。DatapointerDPTRis16registers,SuchhighpositionbyteisexpressedinthewayofDPh,Thepositionisexpressedinthe67 山东科技大学学士学位论文附录4:中英文资料翻译wayofDPI,Inimmediatefuturemayas16registerDPTRsthehandle,8registerDPhandDPIwhoalsomaydoworthwhileindependencehandle。PortP0~TheP3isseparatelyI/OportP0~ThelatchofP3。P0~P3isasregisterspecialstillusabledirectaddressingmeansparticipationelseoperatinginstructionoperation。SerialdatabumperSBUFisusedconveyingeitherthedatathereceivedloading,Inrealityitisconsistingoftwoindependenceregisters,Onetransmitsthebumper,Anotherisreceivesthebumper。AT89C52pinexplanationTheAT89C52monolithicintegratedcircuituses40pinsthedoublerowstraighttoinsertthesealway.Thepowersourcepinturnsonthemonolithicintegratedcircuittheworkpowersource.VCC:Meetsthe+5Vpowersource.GND:Earth.lPort0:Port0isan8-bitopendrainbi-directionalI/Oport.Asanoutputport,eachpincansinkeightTTLinputs.When1sarewrittentoport0pins,thepinscanbeusedashighimpedanceinputs.Port0canalsobeconfiguredtobethemultiplexedloworderaddress/databusduringaccessestoexternalprogramanddatamemory.Inthismode,P0hasinternalpull-ups.Port0alsoreceivesthecodebytesduringFlashprogrammingandoutputsthecodebytesduringprogramverification.Externalpull-upsarerequiredduringprogramverification.lPort1:Port1isan8-bitbi-directionalI/Oportwithinternalpull-ups.ThePort1outputbufferscansink/sourcefourTTLinputs.When1sarewrittentoPort1pins,theyarepulledhighbytheinternalpull-upsandcan67 山东科技大学学士学位论文附录4:中英文资料翻译beusedasinputs.Asinputs,Port1pinsthatareexternallybeingpulledlowwillsourcecurrent(IIL)becauseoftheinternalpull-ups.Inaddition,P1.0andP1.1canbeconfiguredtobethetimer/counter2externalcountinput(P1.0/T2)andthetimer/counter2triggerinput(P1.1/T2EX),respectively,asshowninthefollowingtable.Port1alsoreceivesthelow-orderaddressbytesduringFlashprogrammingandverification.lPort2:Port2isan8-bitbi-directionalI/Oportwithinternalpull-ups.ThePort2outputbufferscansink/sourcefourTTLinputs.When1sarewrittentoPort2pins,theyarepulledhighbytheinternalpull-upsandcanbeusedasinputs.Asinputs,Port2pinsthatareexternallybeingpulledlowwillsourcecurrent(IIL)becauseoftheinternalpull-ups.Port2emitsthehigh-orderaddressbyteduringfetchesfromexternalprogrammemoryandduringaccessestoexternaldatamemorythatuse16-bitaddresses(MOVX@DPTR).Inthisapplication,Port2usesstronginternalpull-upswhenemitting1s.Duringaccessestoexternaldatamemorythatuse8-bitaddresses(MOVX@RI),Port2emitsthecontentsoftheP2SpecialFunctionRegister.Port2alsoreceivesthehigh-orderaddressbitsandsomecontrolsignalsduringFlashprogrammingandverification.lPort3:Port3isan8-bitbi-directionalI/Oportwithinternalpull-ups.ThePort3outputbufferscansink/sourcefourTTLinputs.When1sarewrittentoPort3pins,theyarepulledhighbytheinternalpull-upsandcanbeusedasinputs.Asinputs,Port3pinsthatareexternallybeingpulledlowwillsourcecurrent(IIL)becauseofthepull-ups.Port3alsoservesthefunctionsofvariousspecialfeaturesoftheAT89C51,asshowninthefollowingtable.Port3alsoreceivessomecontrolsignalsforFlashprogrammingandverification.67 山东科技大学学士学位论文附录4:中英文资料翻译lRST:Resetinput.AhighonthispinfortwomachinecycleswhiletheoscillatorisrunningresetsthedevicelALE/PROG:AddressLatchEnableisanoutputpulseforlatchingthelowbyteoftheaddressduringaccessestoexternalmemory.Thispinisalsotheprogrampulseinput(PROG)duringFlashprogramming.Innormaloperation,ALEisemittedataconstantrateof1/6theoscillatorfrequencyandmaybeusedforexternaltimingorclockingpurposes.Note,however,thatoneALEpulseisskippedduringeachaccesstoexternaldatamemory.Ifdesired,ALEoperationcanbedisabledbysettingbit0ofSFRlocation8EH.Withthebitset,ALEisactiveonlyduringaMOVXorMOVCinstruction.Otherwise,thepinisweaklypulledhigh.SettingtheALE-disablebithasnoeffectifthemicrocontrollerisinexternalexecutionmode.lPSEN:ProgramStoreEnableisthereadstrobetoexternalprogrammemory.WhentheAT89C52isexecutingcodefromexternalprogrammemory,PSENisactivatedtwiceeachmachinecycle,exceptthattwoPSENactivationsareskippedduringeachaccesstoexternaldatamemory.lEA/VPP:ExternalAccessEnable.EAmustbestrappedtoGNDinordertoenablethedevicetofetchcodefromexternalprogrammemorylocationsstartingat0000HuptoFFFFH.Note,however,thatiflockbit1isprogrammed,EAwillbeinternallylatchedonreset.EAshouldbestrappedtoVCCforinternalprogramexecutions.Thispinalsoreceivesthe12-voltprogrammingenablevoltage(VPP)duringFlashprogrammingwhen12-voltprogrammingisselected.lXTAL1:Inputtotheinvertingoscillatoramplifierandinputtotheinternalclockoperatingcircuit.lXTAL2:Outputfromtheinvertingoscillatoramplifier.lSpecialFunctionRegisters:Amapoftheon-chipmemoryareacalled67 山东科技大学学士学位论文附录4:中英文资料翻译theSpecialFunctionRegister(SFR)spaceisshowninTable1.Notethatnotalloftheaddressesareoccupied,andunoccupiedaddressesmaynotbeimplementedonthechip.Readaccessestotheseaddresseswillingeneralreturnrandomdata,andwriteaccesseswillhaveanindeterminateeffect.Usersoftwareshouldnotwrite1stotheseunlistedlocations,sincetheymaybeusedinfutureproductstoinvokenewfeatures.Inthatcase,theresetorinactivevaluesofthenewbitswillalwaysbe0.lDataMemory:TheAT89C52implements256bytesofon-chipRAM.Theupper128bytesoccupyaparalleladdressspacetotheSpecialFunctionRegisters.Thatmeanstheupper128byteshavethesameaddressesastheSFRspacebutarephysicallyseparatefromSFRspace.Whenaninstructionaccessesaninternallocationaboveaddress7FH,theaddressmodeusedintheinstructionspecifieswhethertheCPUaccessestheupper128bytesofRAMortheSFRspace.InstructionsthatusedirectaddressingaccessSFRspace.Timer0and1:Timer0andTimer1intheAT89C52operatethesamewayasTimer0andTimer1intheAT89C51.Timer2:Timer2isa16-bitTimer/Counterthatcanoperateaseitheratimeroraneventcounter.ThetypeofoperationisselectedbybitC/T2intheSFRT2CON(showninTable2).Timer2hasthreeoperatingmodes:capture,auto-reload(upordowncounting),andbaudrategenerator.ThemodesareselectedbybitsinT2CON,asshowninTable3.Timer2consistsoftwo8-bitregisters,TH2andTL2.IntheTimerfunction,theTL2registerisincrementedeverymachinecycle.Sinceamachinecycleconsistsof12oscillatorperiods,thecountrateis1/12oftheoscillatorfrequency.IntheCounterfunction,theregisterisincrementedinresponsetoa1-to-0transitionatitscorrespondingexternalinputpin,T2.Inthisfunction,67 山东科技大学学士学位论文附录4:中英文资料翻译theexternalinputissampledduringS5P2ofeverymachinecycle.Whenthesamplesshowahighinonecycleandalowinthenextcycle,thecountisincremented.ThenewcountvalueappearsintheregisterduringS3P1ofthecyclefollowingtheoneinwhichthetransitionwasdetected.Sincetwomachinecycles(24oscillatorperiods)arerequiredtorecognizea1-to-0transition,themaximumcountrateis1/24oftheoscillatorfrequency.Toensurethatagivenlevelissampledatleastoncebeforeitchanges,thelevelshouldbeheldforatleastonefullmachinecycle.AT89C52单片机介绍1.单片机的发展单片机因将其主要组成部分集中在一个芯片上得名,即中央处理器CPU。存储器RAM﹑只读存储器ROM﹑中断系统﹑定时器/计数器以及I/O口电路等主要微型机部分,集中在一个芯片上。虽然单片机只是一个芯片,但从组成和功能上看,它已具有了计算机系统的属性,为此称它为单片机微型计算机SCMS简称单片机。1976年Inter公司推出了8位的MCS-48系列单片机,在以后20多年的时间里得到了不断的发展和广泛的应用。1980年该公司推出了高性能的MCS-51系列单片机。这类单片机的功能﹑寻址范围都比早期有所提高,目前应用也比较多。1982年该公司又推出了性能更高的16位单片机MCS-96系列的。单片机发展具有性能越来越完善﹑品种越来越多的特点。2.采用单片机的优点l硬件通用化,应用灵活化。l具有记忆﹑计算和查表功能。可制成常规无法制成的仪器仪表。l指令系统适合实时控制。l体积小,执行速度快。l可靠性高,抗干扰能力强。l温度使用范围广。l断电保护完善。l产品开发周期短。l同一系列和配套接口芯片种类多,功能全,便于挑选来实现最小系统。l根据高科技要求,集成常用软件,硬件(如PL/M,BASIC,FORTH语言,DAM波形发生器,模拟开关等)应用灵活。因此,本设计采用以单片机位核心的部件设计。67 山东科技大学学士学位论文附录4:中英文资料翻译3.AT89C52单片机的结构AT89C52单片机主要性能参数:l与MCS-51产品指令和引脚完全兼容l8K字节可编程/擦写Flash闪速存储器l1000次擦写周期l全静态操作:0Hz—24MHzl三级加密程序存储器l256×8字节内部RAMl32个可编程I/O口线l3个16位定时/计数器l8个中断源l可编程串行UART通道l低功耗空闲和掉电模式3.1CPU结构CPU是单片机的核心部件,它由运行算术和控制器等组成。1.运算器运算器的功能是进行算术运算和逻辑运算,可以对半字节﹑单字节等数据进行操作。2.程序计数器PC它用来存放下一条要执行的指令的地址。当一条指令按照PC所指的地址从存储器中取出后,PC会自动加1,即指向下一条指令。(3)指令积寄存器指令寄存器中存放指令代码。CPU执行指令时,由程序存储器中读取的指令代码送入指令寄存器,经译码器译码后,由定时与控制电路发出相应的控制信号。完成指令功能。3.2存储器1.程序存储器用于存放程序及表格常数。对于8751,EA=1时,片内程序存储器占用0000H~0FFFH时,则从片外程序存储器取指令。2.数据存储器8751单片机数据存储器无论在物理上和逻辑上都分为两地址空间,一个为内部数据存储器,访问内部数据存储器用MOV指令,另一个为外部数据存储器,访问外部数据存储器用MOVX指令,寻址方式间接寻址。3.3专用功能寄存器MCS-51单片机内的锁存器、定时器、串行口数据缓冲器以及各种控制寄存器和状态寄存器都是以专用功能寄存器的形式出现的。它们分散的分布在内部TAM地址空间范围(80H~FDH)内。67 山东科技大学学士学位论文附录4:中英文资料翻译8751内的特殊功能寄存器包括运算寄存器、地址寄存器、口锁存器及用于中断、计数/定时和串行口管理的寄存器。运算寄存器包括累加器A﹑寄存器B及程序状态字寄存器PSW。地址寄存器包括堆栈指示器SP和数据地址指示器DPTR。MCS-51单片机的SP为8位,堆栈在内部RAM中的位置比较灵活。数据指针DPTR是一个16位寄存器,其高位字节用DPh表示,地位用DPI表示,即可以作为一个16位寄存器DPTR来处理,也可以作为独立的8位寄存器DPh和DPI处理。端口P0~P3分别是I/O端口P0~P3的锁存器。P0~P3作为专用寄存器还可用直接寻址方式参与其他操作指令。串行数据缓冲器SBUF用于传送或接受的数据的存放,它实际上是由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器。3.4AT89C52引脚说明AT89C52单片机采用40引脚的双列直插封装方式。电源引脚接入单片机的工作电源。VCC:接+5V电源。GND:接地。lP0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接受指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。lP1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输出(P1.1/T2EX),Flash编程和程序校验期间,P1接收低8位地址。lP2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P2端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。67 山东科技大学学士学位论文附录4:中英文资料翻译在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器时,P2口输出P2锁存器的内容。Flash编程或校验时,P2亦接收高位地址和一些控制信号。lP3口:P3是一个带有内部上拉电阻的8位双向I/O口,P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3端口写“1”,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能.此外,P3口还接收一些Flash闪速存储器编程和程序校验的控制信号。lRST:复位输入。当振荡器工作时,RST引脚出现两个周期以上高电平将使单片机复位。lALE/:当访问外部程序存储器或数据存储时,ALE地址锁存允许输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲。如有必要,可通过对特殊功能寄存器SFR区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置禁止位ALE无效。l:程序储存允许输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令或数据时,每个机器周期两次有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次信号。l:外部访问允许。欲使CPU仅访问外部程序存储器地址为0000H—FFFFH,端必须保持低电平接地。需注意的是:如果加密位LB1被编程,复位时内部会锁存端状态。如端为高电平接Vcc端,CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电压Vpp,当然这必须是该器件是使用12V编程电压Vpp。67 山东科技大学学士学位论文附录4:中英文资料翻译lXTAL1:振荡器反相放大器及内部时钟发生器的输入端。lXTAL2:振荡器反相放大器的输出端。l特殊功能寄存器:在AT89C52片内存储器中,80H-FFH共128个单元为特殊功能寄存器SFR。并非所有的地址都被定义,从80H-FFH共128个字节只有一部分被定义,还有相当一部分没有定义。对没有定义的单元读写是无效的,读出的数值将不确定,而写入的数据也将丢失。不应将数据“1”写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。l数据存储器:AT89C52有256个字节的内部RAM,80H-FFH高128个字节与特殊寄存器SFR地址是重叠的,也就是高128字节的RAM和特殊功能寄存器的地址是相同的,但物理上它们是分开的。当一条指令访问7FH以上的内部地址单元时,指令中的寻址方式是不同的,也即寻址方式决定是访问高128字节RAM还是访问特殊功能寄存器。如果指令是直接寻址方式则为访问特殊功能寄存器。l定时器0和定时器1:AT89C52的定时器0和定时器1的工作方式与AT89C51相同。l定时器2:定时器2是一个16位定时/计数器。它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄存器T2CON的C/T2位选择。定时器2有但种工作方式,捕获方式,自动重装载向上或向下计数方式和波特率发生器方式,工作方式由T2CON的控制位来选择。定时器2由两个8位寄存器TH2和TL2组成,在定时器工作方式中,每个机器周期TL2寄存器的值加1,由于一个机器周期由12个振荡时钟构成,因此,计数速率为振荡频率的1/12。在计数工作方式时,当T2引脚上外部输入信号产生由1到0的下降沿时,寄存器的值加1,在这种工作方式下,每个机器周期的5SP2期间,对外部输入进行采样。若在第一个周期中采到的值为1,而在下一个周期中的采到的值为0,则在紧跟着的下一个周期的S3P1期间寄存器加1,由于识别1到0的跳变需要2个机器周期24个振荡周期,因此,最高计数速率为振荡周期的1/24,为确保采样的正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以保证输入信号至少被采样一次。67'