1、对于没学过“串行口”知识的班级,实习时,可以采用模拟串行口的输出方式,实现显示数据的串行输出。 (6)设置温度存储电路 为了防止设定温度在电源断电后丢失,此设计加入了储存电路,储存器选用具有I2C总线功能的AT24C01或FM24C01均可。每次通过键盘设置的室内设定温度都通过储存器储存起来,即使是电源断电,储存器存储的设定温度也不丢失,在电源来电后,单片机自动将设定温度从储存器中读出,一方面避免了断电后的更新设置工作;另一方面也保护了控制器控制的安全性,可靠性。 (7)电源电路 电源采用了串联型集成稳压器电路,电源有两路输出,一路由L7805CV稳压输出+5V,除JRC4558、AD590外
2、,电路的其它部分均由+5V供电;一路由MC78L12和LM79L12稳压输出12V,给JRC4558、AD590供电。当然这里还可以选择现成的开关型稳压电源,但它的价格相对来说要高一些。2硬件系统电路原理图: 3材料表型号数量对应元件序号种类3301R26电阻47019R1R17、R28、R298202R20、R251KR22、R232KR273KR21、R2410KR18、R19RP3、RP4电位器5KRP1、RP210PC9瓷片电容30PC17、C18100/25V4C1、C2、C3、C4电解电容470/16VC5、C61N4148D2、D3整流二极管3.9V/1WD1稳定二极管红色、3D
3、4、D5发光二极管DB107ZLQ1整流桥KBP206ZLQ2C8550Q1三极管12MY1晶振74LS164U11、U12ICAD590U9ADC0804U5AT24C01U6AT89C51U4IMP813LU7JRC4558U8L7805CVU3LM79L12U2MC78L12U1TLP521-1U10E10501-ARDS1、DS2数码管WJ108-1C-05VDCK1继电器220V/8V/215V/2.5WT1电源变压器VH-2CN1、CN2连接座三、软件系统设计 1温控系统采用模块化程序结构,可分为四大模块: (1)系统初始化模块:完成变量的设定、中断入口的设定、各变量赋初值、堆栈设
4、定、读设置温度、定时器T0工作方式及初值的设定并启动、开中断。 (2)循环模块:完成A/D转换及温度值的换算、温度值显示、温度比较、看门狗的触发。 (3)定时器T0中断模块:完成1秒的定时。 (4)外部中断INT1中断模块:完成键盘对温度值的设定。 2软件流程框图: 3参考程序:;-温度控制器源程序s1 bit p1.0 ;s1按键控制口位s2 bit p1.1 ;s2按键控制口位 s3 bit p1.2 ;s3按键控制口位s4 bit p1.3 ;s4按键控制口位wdkz bit p1.4 ;温度控制口位wdi bit p1.5 ;看门狗触发端sda bit p1.7 ;AT24C01的数据
5、线scl bit p1.6 ;AT24C01的时钟线drxd bit p3.0 ;74LS164数据dtxd bit p3.1 ;74ls164时钟intr bit p3.2 ;A/D转换结束信号控制口位szled bit p3.5 ;设置LEDsbz bit 00h ;秒标志位swwd equ 30h ;十位温度的BCD码存储单元gwwd equ 31h ;个位温度的BCD码存储单元adpj equ 32h ;A/D转换后的平滑滤波值存储单元szwd equ 33h ;设置温度值存储单元adwz equ 34h ;5次A/D值的初始位置,即34h38hmjsz equ 39h ;1秒记数值(
6、50ms次数)smjsz equ 3ah ;3秒记数值(200ms次数)shmjsz equ 3bh ;10秒记数值(200ms次数) org 0000h ljmp start org 000bh ljmp timezd ;T0中断 org 0013h ljmp temszzd ;INT1中断 org 0030hstart: clr sbz mov mjsz,#20 mov smjsz,#15 mov shmjsz,#50 mov sp,#60h ;-赋初值lcall durom mov szwd,a-读设置温度 mov tmod,#01h mov th0,#3ch mov tl0,#0b0h
7、 setb tr0-定时器T0的设定及启动 setb it1 setb ex1 setb et0 setb ea-开中断(INT1和T0中断)cyc: lcall adzh mov a,adpj lcall bcdzh lcall disp lcall tembj jnb sbz,$ clr sbz lcall wdog sjmp cyc-模数转换子程序名:adzh入口参数:无出口参数:adpjadzh: push psw push acc mov r1,#adwz mov r2,#5adzh1: movx r0,a jb intr,$ movx a,r0 mov r1,a inc r1 dj
8、nz r2,adzh1-5次A/D值完成 mov r0,#adwz lcall paix-5次A/D值排序 mov r5,#00h mov r6,#00h mov r7,#3 mov a,#adwz add a,#1 mov r1,ajiafa: mov a,r1 add a,r5 mov r5,a mov a,r6 addc a,#0 mov r6,a inc r1 djnz r7,jiafa-去极值后,余下的3个值求和(和在r6r5中)chufa: mov r3,#16 mov r4,#30 mov r7,#0 mov a,r5 addc a,r6 add a,#15-为四舍五入作准备即和值乘以2加上15除以30chufa1: clr c rlc a mov r5,a mov a,r6 mov r6,a mov a,r7 rlc a subb a,r4 jnc chufa2 add a,r4 sjmp chufa3chufa2: inc r5chufa3: mov r7,a djnz r3,chufa1 mov adpj,r5-完成温度平均值 pop acc pop psw ret-排序子程序名:paix(从大到小)入口参数:R0指向数据存储区的首地址,R2存放数据长度paix: push psw push accpaix0: mov a,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1