1、目录第1节 引言 3第2节 硬件电路设计 4 2.1 温度检测和变送器 42.2 接口电路 42.3 温度控制电路 9第3节 软件的设计 113.1软件总体流程图 113.2 部分程序 12 3.2.1 LED数码管的显示程序 12 3.2.2 8031的主程序 12 3.2.3 复位设置 13 3.2.4 8155的主程序 13第4节 温度控制的算法 144.1温度控制算法 144.2温度控制程序框图 14 4.2.1主程序框图14 4.2.2中断服务程序框图14 4.2.3主要子服务程序框图14 4.2.4其它控制算法 16第5节 系统调试与测试结果分析 175.1系统调试 17 5.1.
2、1软件调试 1 7 5.1.2硬件调试 17 5.1.3软硬件联调 17第6节 结束语 19参考文献 20 第1节 引 言自动控制系统在各个领域尤其是工业领域中有着及其广泛的应用,温度控制是控制系统中最为常见的控制类型之一。随着单片机技术的飞速发展,通过单片机对被控对象进行控制日益成为今后自动控制领域的一个重要发展方向,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。例如:在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用MCS-51单片机来对温度进行控制,不仅具有控制方便、组态
3、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的问题。本文以它为例进行介绍,希望能收到举一反三和触类旁通的效果。所以来说温度控制在我们的日常生活当中是非常有用的,我们利用温度控制来更好的为我们的生活工作所服务,提高我们的生活质量。当然本次温度控制的设计也有不足之处,相信在不久的以后,随着单片机行业的迅速发展,将会有更好的温度控制仪的出现。摘要:自动控制系统在各个领域尤其是工业领域中有着及其广泛的应用,温度控制是控制系统中最为常见的控制类型之一。随着单片机技术的飞速发展,通过单片机对被控对象进行
4、控制日益成为今后自动控制领域的一个重要发展方向,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。例如:在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对工业及日常生活中的温度进行检测和控制。采用MCS-51单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的问题。本文以它为例进行介绍,希望能收到举一反三和触类旁通的效果。关键字:MCS-51单片机;温度;软硬件;硬件原理图;程序框图;第2节 硬件电路
5、设计以热电偶为检测元件的单片机温度控制系统电路原理图如图1所示。2.1温度检测和变送器温度检测元件和变送器的类型选择与被控温度的范围和精度等级有关。镍铬/镍铝热电偶适用于0-1000的温度检测范围,相应输出电压为0mV-41.32mV。变送器由毫伏变送器和电流/电压变送器组成:毫伏变送器用于把热电偶输出的0mV-41.32mV变换成4mA-20mA的电流;电流/电压变送器用于把毫伏变送器输出的4mA-20mA电流变换成0-5V的电压。为了提高测量精度,变送器可以进行零点迁移。例如:若温度测量范围为500-1000,则热电偶输出为20.6mV-41.32mV,毫伏变送器零点迁移后输出4mA-20
6、mA范围电流。这样,采用8位A/D转换器就可使量化温度达到1.96以内。2.2接口电路接口电路采用MCS-51系列单片机8031,8031芯片是MCS-51系列单片机是美国Intel公司开发的8位单片机,又可以分为多个子系列。MCS-51系列单片机共有40条引脚,包括32条I/O接口引脚、4条控制引脚、2条电源引脚、2条时钟引脚。引脚说明: P0.0P0.7:P0口8位口线,第一功能作为通用I/O接口,第二功能作为存储器扩展时的地址/数据复用口P1.0P1.7:P1口8位口线,通用I/O接口无第二功能。P2.0P2.7:P2口8位口线,第一功能作为通用I/O接口,第二功能作为存储器扩展时传送高
7、8位地址。 P3.0P3.7:P3口8位口线,第一功能作为通用I/O接口,第二功能作为为单片机的控制信号。ALE/ PROG:地址锁存允许/编程脉冲输入信号线(输出信号)PSEN:片外程序存储器开发信号引脚(输出信号)。EA/Vpp:片外程序存储器使用信号引脚/编程电源输入引脚。RST/VPD:复位/备用电源引脚外围扩展并行接口8155,程序存储器EPROM2764,模数转换器ADC0809等芯片。由图1可见,在P2.0=0和P2.1=0时,8155选中它内部的RAM工作;在P2.0=1和P2.1=0时,8155选中它内部的三个I/O端口工作。相应的地址分配为:0000H-00FFH8155内
8、部RAM0100H命令/状态口0101HA口0102HB口0103HC口0104H定时器低8位口0105H定时器高8位口8155A芯片是Intel公司生产的可编程输入输出接口芯片,它具有3个8位的并行I/O口,具有三种工作方式,可通过程序改变其功能,因而使用灵活,通用性强,可作为单片机与多种外围设备连接时的中间接口电路。8155有三种基本工作方式,三种工作方式由工作方式控制字决定,方式控制字由CPU通过输入/输出指令来提供.三个端口中PC口被分为两个部分,上半部分随PA口称为A组,下半部分随PB口称为B组.其中PA口可工作与方式0、1和2,而PB口只能工作在方式0和1。8155共有40个引脚,
9、采用双列直插式封装,各引脚功能如下:D0-D7:三态双向数据线,与单片机数据总线连接,用来传送数据信息。CS:片选信号线,低电平有效,表示芯片被选中。RD:读出信号线,低电平有效,控制数据的读出。WR:写入信号线,低电平有效,控制数据的写入。Vcc:+5V电源。A0-PA7:A口输入/输出线。PB0-PB7:B口输入/输出线。PC0-PC7:C口输入/输出线。RESET:复位信号线。A1、A0:地址线,用来选择8155内部端口。GND:地线。 8155用作键盘/LED显示器接口电路。图2中键盘有30个按键,分成六行(L0-L5)五列(R0-R4),只要某键被按下,相应的行线和列线才会接通。图中
10、30个按键分三类:一是数字键0-9,共10个;二是功能键18个;三是剩余两个键,可定义或设置成复位键等。为了减少硬件开销,提高系统可靠性和降低成本,采用动态扫描显示。A口和所有LED的八段引线相连,各LED的控制端G和8155C口相连,故A口为字形口,C口为字位口,8031可以通过C口控制LED是否点亮,通过A口显示字 图1 单片机温度控制系统电路原理图图28155用作键盘/LED显示器接口电路2764是8KEPROM型器件。8031的PSEN和2764的OE相连,P2.5和CE相连,所以2764的地址空间为:0000H-1FFFH,ADC0809的0通道(IN0其他输入端可作备用)和变送器的
11、输出端相连,所以从通道0(IN0)上输入的0V-+5V范围的模拟电压经A/D转换后可由8031通过程序从P0口输入到它的内部RAM单元,在P2.2=0和WR=0时,8031可使ALE和START变为高电平而启动ADC0809工作;在P2.2=0和RD=0时,8031可以从ADC0809接收A/D转换后的数字量。也就是说ADC0809可以视为8031的一个外部RAM单元,地址为03F8H(地址重复范围很大),因此,8031执行如下程序可以启动ADC0809工作。MOVDPTR,#03F8HMOVXDPTR,A若8031执行下列程序:MOVDPTR,#03F8HMOVXA,DPTR2.3温度控制电
12、路8031对温度的控制是通过双向可控硅实现的。如图一所示,双向可控硅管和加热丝串接在交流220V、50Hz市电回路。在给定周期T内,8031只要改变可控硅管的接通时间即可改变加热丝的功率,以达到调节温度的目的。可控硅接通时间可以通过可控硅控制极上触发脉冲控制。该触发脉冲由8031用软件在P1.3引脚上产生,在过零同步脉冲同步后经光电耦合管和驱动器输出送到可控硅的控制极上。温控系统主要由温度传感器、温度调节仪、执行装置、被控对象四个部分组成,其系统结构图如图3所示: 图3 温度控制系统第3节 软件的设计硬件平台结构一旦确定,大的功能框架即形成。软件在硬件平台上构筑,完成各部分硬件的控制和协调。系
13、统功能是由软硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。因此,软件是本系统的灵魂。软件采用模块化设计方法,不仅易于编程和调试,也可减小软件故障率和提高软件的可靠性。同时,对软件进行全面测试也是检验错误排除故障的重要手段。由于编程多涉及到数值运算,比较复杂,还有LCD的菜单界面设计都是需要多重选择判断,用我们平时常用的汇编语言编程是很难实现的,这里我们选用了移值性好、结构清晰、我使用汇编语言来实现编程。3.1 软件总体流程图软件总体设计主要完成各部分的软件控制和协调。本系统主程序模块主要完成的工作是对系统的初始化,包括扫描键盘和液晶的初始化,启动无线接收模块,发
14、送显示数据,同时对键盘进行扫描,等待外部中断,程序的流程图如4所示 图4 流程图3.2部分程序如下3.2.1 LED数码管的显示程序 六个数码管的点亮的程序如下DISPLAY: MOV R1,#70H ;#70放R1中 MOV R5,#0FEH PLAY: MOV A,R5 MOV P3,A MOV A,R1 R1中的数据放A中 MOV DPTR,#TAB MOVCA,A+DPTR MOV P1,A 点亮P1 LCALL DL1MS ;跳转 INC R1 MOV A,R5 JNB ACC.5,ENDOUT RL A MOV R5,A AJMP PLAY ;跳转 ENDOUT: SETB P3.
15、5 MOV P1,#0FFH RET TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH3.2.2 8031的主程序 START: MOV R0, #70H ;#70放R0中 MOV R7, #0BH CLEARDISP: MOV R0, #00H INC R0 DJNZ R7, CLEARDISP MOV 20H, #00H MOV 7AH, #0AH MOV TMOD, #11H MOV TL0, #0B0H ;置数 MOV TH0, #3CH MOV TL1, #0B0H MOV TH1, #3CH SETB EA ;开通
16、SETB ET0 SETB TR0 MOV R4, #14H START1: LCALL DISPLAY JNB P3.7, SETMM1 SJMP START1 SETMM1: LJMP SETMM 3.2.3 复位设置CLR0: CLR A MOV R0,A DEC R0 MOV R0,A RET 3.2.4 8155的主程序ORG0030H AJMPMAIN MAIN: CALLDELAY6MS MOVA,#02H;00000010表示:PC,PA口输入,PB口输出 MOVDPTR,#0A300H;8155的状态端口地址 MOVXDPTR,A CALLDELAY6MS MOVDPTR,#
17、0303H MOVXA,DPTR CJNE#0FFHBAOJING AJMPMAIN BAOJING: CLRP1.6 RET DELAY6MS:/*延时6MS的子程序*/DEL:MOVR7,#24DEL1:MOVR6,#125DEL2:DJNZR6,DEL2;125*2=250USDJNZR7,DEL1;0.25*24=6MSRET END第4节 温度控制的算法4.1温度控制算法通常,电阻炉温度控制都采用偏差控制法。偏差控制的原理是先求出实测温度对所需温度的偏差值,然后对偏差值处理获得控制信号去调节电阻炉的加热功率,以实现对温度的控制。在工业上,偏差控制又称PID控制,这是工业控制过程中应用
18、最广泛的一种控制形式,一般都能收到令人满意的效果。4.2温度控制程序框图温度控制程序的设计应考虑如下:1)键盘扫描、键码识别和温度显示;2)温度采样、数字滤波;3)数据处理;4)越限报警和处理;5)PID计算、温度标度转换4.2.1主程序框图主程序包括8031本身的初始化、并行接口8155初始化等等。大体说来,本程序包括设置有关标志、暂存单元和显示缓冲区清零、T0初始化、CPU开中断、温度显示和键盘扫描等程序。4.2.2中断服务程序框图T0中断服务程序是温度控制系统的主体程序,用于启动数/模转换器、读入采样数据、数字滤波、越限温度报警和越限处理、PID计算和输出可控硅的触发脉冲等。P1.3引脚
19、上输出的该同步触发脉冲宽度由T1计数器的溢出中断控制,8031利用等待T1溢出中断的空闲时间(形成P1.3输出脉冲顶宽)完成把本次采样值转换成显示值而放入显示单元缓冲区和调用温度显示程序。8031从T1中断服务程序返回后即可恢复现场和返回主程序。4.2.3主要子服务程序框图主要服务子程序包括温度检测采样及数字滤波子程序、带符号双字节乘法子程序和标度转换子程序目的是把实际采样取得的二进制值转换成BCD码形式的温度值,然后存放到显示缓冲区中,供显示子程序调用。图 5 中断服务程序框图对于一般线性仪表来说,标度转换公式为:Tx=A0+(Am-A0)其中,A0为一次测量仪表的下限;Am为一次测量仪表的
20、上限;Vx为实际测量值(工程量);Vm为仪表上限对应的数字量;V0为仪表下限对应的数字量。4.2.4其它控制算法不同的控制对象,所采用的算法有所不同。例如对于热惯性大、时间滞后明显、耦合强、难于建立精确数学模型的大型立式淬火炉,可以采用人工智能模糊控制算法,通过对淬火炉电热元件通断比的调节,实现对温度的自动控制,也可以采用仿人智能控制(SHIC)算法和PID控制算法的联合控制方案,实际应用时应灵活运用。第5节 系统调试与测试结果分析5.1系统调试根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。5.1.1软件调试 该系统的软件调试主要针对单片机系统部分。我们利用Ke
21、ilc51环境对编号的程序进行程序调试,编译正确的程序之后再利用编程器将调试好的程序固化到AT89C2051单片机中。5.1.2 硬件调试电路安装完成后,首先进行检查,即确认电路无虚焊,无短路,无断路,集成元件安装是否正确,之后进行电路功能模块的分级调试,根据电路功能逐级进行由于在系统设计中采用模块化设计,对各电路功能模块的逐级测试。最后将各模块组合后在交道口模型上进行整体测试,使系统的所有功能得以实现。调试的基本过程如下:1最重要的当然是检查线路应焊接无误。 2.对电源电路进行调试。调试的方法是:断开负载,用万用表测量78L05的3脚应有+5V电压。3.对拨号音频部分进行调试。 4.、对拨号
22、音频进行调试。5、先不装8031单片机,用短路线把U1插座的12脚接地,调整VD1和VD7的安装位置和角度,测量U1插座的2脚电压。当VD1和VD7之间无遮挡时2脚电压为0伏,有遮挡时为+5伏。用相同方法反复调整其他几对红外收发管的位置和角度。使U1插座的3、6、7、8、9各脚的电压符合要求。5.1.3 软硬件联调系统做好后,进行系统的完整调试,检验实现的功能。将固化好程序的8031插入电路中的U1插座上,接上电源看是否能够正常工作。 MCS-51单片机,体积小,重量轻,抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,即使是非电子计算机专业人员,通过学习一些专业基础知识以后也能依靠
23、自己的技术力量,来开发所希望的单片机应用系统。本文的温度控制系统,只是单片机广泛应用于各行各业中的一个应用,相信不久的将来单片机的应用更加广泛化。单片机因为使用灵活、结构简单、体积小、成本低而在工业和生活中得到广泛应用,也正是因此,它的硬件资源很有限,寻址和计算机能力都远低于PC机,显示方面更受限制。人们不满足单片机系统采用LED数码管的简单显示,根据单片机的特点,开发出了很多种显示方法。按程序执行过程,逐个调试各子程序,并观察结果。调节电位器,改变输入电压值,A/D转换结果由P1口输出到8个LED,可观察到A/D转换运行正常。在A中设定随机值进行十六进制转十进制,子程序运行正常和数码管显示子
24、程序运行正常。主程序中调用各个子程序并改变模拟温度输入值及设定值,处理指示灯正常,主程序运行正常。调试成功。.写程序时养成注释的好习惯写注释是为了便于理解软件编写的思路,不仅为自己看,也为别人看一个完全没有注释的汇编程序将会让人读起来十分的费解。而你自己,当你在三个月后再来看这个程序时,可能当时的构思与想法都忘了,届时你一定会统一程序及上一些必要的注释绝对是必要的。作为熟练掌握51的一个基础,应当熟记51复位后各寄存器的状态,这将对编程产生影响,因为有时在程序中需要在复位后立即对某些寄存器写入控制字。有些则不需要。写程序时应当注意精简,用更简短的指令,实现相同的功能。当程序很多,空间不够时,有
25、时只差几个字节,这时作用就会显现出来了。但这要求编程人员对程序有全局的理解。查表指令的原理:以DPTR为底地址,以累加器A的值为偏移量(索引值)得到一个地址,然后取出其中的内容,完成一次查表。写汇编程序能够训练一个人具有更周密的思路和处理能力,由于汇编语言属于最底层的程序语言,若处理不当时,对控制系统的杀伤力最大,而且排错时间最长,并不适合发展大型的应用程序。学完汇编应该立即学会用高级语言编写程序,提高效率。当51程序出现非我们预期的结果时,不要先怀疑硬件,依照统计,当系统不工作时,有80%以上的几率是程序有漏洞,10%是整合时的程序有问题,最后的10%才是硬件的问题。不过硬件问题中的一半,可
26、以用软件来克服,所以系统有问题时,总体来讲95%是软件的问题。关于指令执行时间的计算(如计算延时时间)例:DELAY: MOV RO, #00HDLY : MOVR1, #00H $: DJNZ R1, $DJNZRO,DLY RET假设晶振威11.0592MHZ,每个clock要0.09us,内循环执行256次,为加第一次设置R1,共用了256*24+12=6156clock外循环也是256次,外加第一次设置R0,共用了256*6156=12=157948 clock调用一次延时程序所用时间=1575948+12=1575960 colck =0.142sRET指令的执行为两个周期。在设计的
27、过程中我学会借用示波器进行查错。执行相应的程序测试相关引脚的输出信号。第6节 结束语学三年多的时间都是在学习电子信息专业的知识,并未真正地去应用和实践。由于我曾经是校电子协会的成员,平时已经掌握了一定的基础,动手能力也还可以。但是经过这次单片机的课程设计,我接触到了更多平时没有接触到的仪器设备、元器件以及相关的使用调试经验,发现了自己很多不足之处。我还体会到了所学理论知识的重要性:知识掌握得越多,设计得就更全面、更顺利、更好。了解进行一项相对比较大型的设计所必不可少的几个阶段。课程设计能够从理论设计和工程实践相结合、巩固基础知识与培养创新意识相结合、个人作用和集体协作相结合等方面全面的培养学生
28、的全面素质。我经过这次系统的课程设计,熟悉了对一项课题进行研究、设计和实验的详细过程。这些在我将来的工作和学习当中都会有很大的帮助。 学会了怎样查阅资料和利用工具书。平时课堂上所学习的知识大多比较陈旧,作为电子信息工程专业的学生,由于专业特点自己更要积极查阅当前的最新电子信息资料。一个人不可能什么都学过,什么都懂,因此,当你在设计过程中需要用一些不曾学过的东西时,就要去有针对性地查找资料,然后加以吸收利用,以提高自己的应用能力,而且还能增长自己见识,补充最新的专业知识。实践能力得到了进一步提高,在调试过程中积累了一些经验。课程设计对以前学过的理论知识起到了回顾作用,并对其加以进一步的消化和巩固
29、。课程设计培养了严肃认真和实事求是的科学态度。而且培养了吃苦耐劳的精神以及相对应的工程意识,同学之间的友谊互助也充分的在课程设计当中体现出来了。在这里,我要感谢我的同学,在我的课程设计中,有几位同学给了我许多的帮助。我还要真诚的感谢他们在我设计过程中所有给我帮助。参考文献1 家庭电子 2002年全年合订本2 张鑫。单片机原理及应用 北京:电子工业出版社 20053 何立明 MCS-51单片机应用系统设计(系统配置与接口技术) 北京:北京航空航天 大学出版社 20034陈明荧.8051单片机课程设计实训教材北京:清华大学出版社20045胡汉才.单片机原理及其接口技术北京:清华大学出版社19956徐淑华程退安姚万生.单片机微型机原理及应用哈尔滨工业大学出版社19947 余永权权,汪明慧,黄英编著。单片机在控制系统中的应用。北京:电子工业出版社 20038 武锋 PIC系列单片机的开发应用技术。北京:电子工业出版社,2003本文是通过网络收集,如有侵权请告知,我会第一时间处理。203