基于单片机的温室大棚温度控制系统设计_本科毕业论文(编辑修改稿)内容摘要:
度总体控制在 20℃到 30℃之间,并且可以通过键盘输入要设定的温度值,并通过 7 段数码管显示出来。 在整个系统的运行期间,有一个定时器 T0中断 每隔 20ms扫描一次 , 用于 当前温度与设定温度的比较 , 然后发出加温或降温的命令。 程序代码如下: ORG 00H JMP START ORG 0BH JMP TIM0 START: MOV TMOD,01H MOV TH0,60 MOV TL0,76 SETB TR0 MOV IE,82H MOV R4,09H MOV R0,30H 1 CLEAR: MOV @R0,00H DJNZ R4,CLEAR MOV A,00H MOV DPTR,TABLE1 MOVC A,@A+DPTR MOV 34H,A MOV A,01H MOV DPTR,TABLE1 MOVC A,@A+DPTR MOV 35H,A MOV 36H,0FFH START0: MOVX @R0,A WAIT: JB ,KEYIN JB ,ADC JMP WAIT ADC: MOVX A,@R0 MOV 37H,A CLR C SUBB A,36H JC TDOWN TUP: MOV A,37H CLR C SUBB A,34H JNC POFF 1 JMP LOOP PON: CLR JMP START0 POFF: SETB JMP LOOP TDOWN: MOV A,37H CLR C SUBB A,35H JC PON JMP LOOP LOOP: MOV 36H,37H CLR A MOV R4,0FFH DJNZ R4,$ CALL L1 MOV 21H,10H NOV R1,30H DISP1: CALL DISP DJNZ 21H,DISP1 JMP START0 (二 ) 定时器 T0 中断 N Y 定位 装入初值 比较的十位相同。 设定温度 测定温度。 1 图 10 定时器 T0 中断子程序 定时 器 T0 中断的工作流程如图 10 所示。 当定时器 T0 发生中断时,就将按键输入的设定的温度值与当前的温度值比较。 当输入的温度值大于当前测定的温度值,单片机就控制加热器加热;当设定的温度值小于当前测定的温度值,就开启降温风扇。 程序代码如下: TIM0: PUSH ACC PUSH PSW MOV TH0,60 MOV TL0,76 MOV A,33H CJNE A,31H,T MOV A,32H CJNE A,30H,T JMP OFF T: JC OFF N N Y Y 1 CLR RETURN: POP PSW POP ACC RETI OFF: SETB JMP RETURN DELAY: MOV R7,06 D1: MOV R6,248 DJNZ R6,$ DJNZ R7,D1 RET (三 ) 显示模块 显示子程序流程图如图 11 所示 :(说明: 30H用于暂时存放要显示温度的高四位, 31H用于暂时存放要显示温度的低四位, 38H 用于存放最终要显示在 7 段数码管上的温度值;D D2分别表示两个 7 段数码管的存储地址。 ) 1 图 11 显示子程序 系统提供温度的显示功能,将温度用两个 7 段数码管显示出来。 程序如下: DISP: MOV A,@R1 ANL A,0F0H SWAP A MOV 38H,A INC R1 MOV A,@R1 ANL A,0FH SWAP A ORL A,38H MOV P1,A CALL DELAY RET 取( 30H)高四位为 D1 取( 31H)低四位为 D2 返回 将( 38H)的值送 P1 将( 30H)、( 31H)合成为( 38H) 延时 DISP 1 (四 ) 按键扫描 将键盘接在一个键盘扫描 IC 74922 上,所按键将被此芯片处理后传送给单片机处理。 工作流程如图 9 所示。 如果要设定新的温度值,操作流程为:按 “*”→ 要设定的温度值→ 按 “*” ,这样就完成了温度的设定。 程序代码如下: KEYIN: JB ,$ MOV A,P3 ANL A,0FH MOV。基于单片机的温室大棚温度控制系统设计_本科毕业论文(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。