淄 博 职 业 学 院 毕 业 论 文
计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定。其程序流程图如图10所示
开始 N 温度零下? Y 温度值取补码置“—”标志 置“+”标志 计算小数位温度BCD值 计算整数位温度BCD值 结束 图10 计算温度流程图
计算温度程序: BIN_BCD:
MOV 39H,37H MOV A,37H MOV B,#100 DIV AB MOV 38H,A MOV 37H,B XCH A,B MOV B,#10 DIV AB MOV 37H,A MOV 36H,B RET
DISP: SETB RS0
MOV R0, #36H MOV R7, #3 LOOPP:MOV A, @R0 MOV DPTR, #TAB MOVC A, @A+DPTR MOV SBUF, A JNB TI, $
15
淄 博 职 业 学 院 毕 业 论 文
CLR TI INC R0
DJNZ R7, LOOPP CLR RS0 RET
TAB: DB 11H, 0D7H, 32H, 92H, 0D4H, 98H, 18H, 0D1H, 10H, 90H ,0FFH, 070H, 0FEH
T12MS: SETB RS1
MOV R7, #18H TM: MOV R6, #0FFH TM6: DJNZ R6, TM6 DJNZ R7, TM CLR RS1 RET
T1S: SETB RS1 MOV R6, #3 LSP:ACALL T12MS DJNZ R6, LSP CLR RS1 RET END
4.5 显示数据刷新子程序
显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图11。
温度数据移入显示寄存器 N
十位数0? Y N Y 百位数0? 十位数显示符号百位数不显示 百位数显示数据(不显示符号) 结束
图11 显示数据刷新流程图
显示数据刷新子程序: WRITE_1820:
16
淄 博 职 业 学 院 毕 业 论 文
MOV R2,#8 CLR C WR1:CLR P2.0 NOP NOP NOP NOP RRC A
MOV P2.0,C MOV R3,#35 DJNZ R3,$ SETB P2.0 NOP
DJNZ R2,WR1 SETB P2.0 RET READ_18200:
MOV R4,#2 RE00:MOV R2,#8 RE01:CLR C
SETB P2.0 NOP NOP
CLR P2.0 NOP NOP NOP
SETB P2.0 NOP NOP
MOV C,P2.0 MOV R3,#35 RE20:
DJNZ R3,RE20 RRC A
DJNZ R2,RE01 MOV @R1,A DEC R1
DJNZ R4,RE00 RET
17
淄 博 职 业 学 院 毕 业 论 文
5 总 结
本设计利用AT89C2051单片机和DS18B20测温传感器,结合报警电路,显示电路等外围电路,对采集到的温度数据定时采样,并在LED数码管上显示。按照设计的要求,自己通过参考有关资料,写好程序流程图,在程序流程图的基础上,根据芯片的功能写出相应的程序,所有程序都用汇编语言编写.最后利用PROTUES软件进行仿真,观察设计效果。但由于自己对知识掌握的欠缺,对PRUTEUS软件的了解不足,最终仿真没有实现,这也是我做毕业论文过程中最遗憾的事情。通过这次的毕业设计,使我对单片机和传感器方面的知识得到了提高和巩固,特别是软件方面,并让我认识到把理论应用到实践中去的重要性。
18
淄 博 职 业 学 院 毕 业 论 文
参考文献
[1] 刘涳编.《电气及自动化专业毕业设计宝典》.西安电子科技大学出版社. 2008-3. 185-187.
[2] 张毅刚、彭喜源、谭晓昀、曲春波编著.《MCS-51单片机应用设计》.哈尔滨工业大学出版社,1997年12月第二版.
[3] 刘兴宾. 1-Wire总线与DS18B20应用仿真[J].今日电子. 2008.06:23-24.
[4] 焦敏.基于DS18B20的测温系统设计[J]. 中国新通信.2009.09:153-156. [5] 夏方林、姬婧、刘志贺.基于软串口的LED显示的实现及应层[J]. 现代企业教育.2007.05X:78-81.
[6] 马壮、杨旭东. 基于PC机的DS18B20温度采集系统[J]. 微计算机信息.2009.01:133-141.
19
淄 博 职 业 学 院 毕 业 论 文
致 谢
本文是在我的导师李红艳的悉心指导下完成的,在论文的准备及撰写过程中,李老师提出了许多宝贵的意见和建议。在此向李老师表示深深的感谢。在论文的撰写过程中,还得到了同学的热情帮助,与你们共度这段充实而又快乐的学习时光,将是我人生中难忘的美好回忆。最后,衷心感谢所有关心和帮助过我的同学和朋友。
20