应用系统设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
随着电子技术的进步和发展,单片机的应用已经普及到我们生活、工作、科研等各个领域,其技术日趋成熟和完善。本设计是一个基于80C51单片机,采用“一线总线”数字化温度传感器DS18B20的测温系统。采用WAVE6000集成调试软件编写汇编程序实现温度的转化、数值计算以及数码管显示当前温度功能,并且可以通过按键设置高低温报警温度,对应配置报警器和报警指示灯。数码管显示采取动态扫描的方法,简化了硬件电路;温度调整运用中断处理,保证了报警温度调整的实时性。本设计可以方便快捷的实现温度的采集和显示,具有精度高、测温范围宽、体积小、功耗低等优点,适用于我们日常生活和工、农业生产中的温度测量,也可以作为温度处理模块嵌入其它系统中,作为其他主系统的扩展电路。DS18B20与80C51结合实现最简温度检测系统,结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。
关键词:一线总线动态扫描中断处理报警温度
摘要 (1)
软件设计部分
一、目的 (3)
二、设计要求 (3)
(一)上机编程操作内容 (3)
(二)实验步骤 (4)
(三)心得体会 (10)
应用系统设计部分
1概述 (11)
1.1设计目的与意义 (11)
1.2设计任务及要求 (11)
2系统总体方案及硬件设计 (11)
2.1主控芯片 (12)
2.1.1 80C51单片机芯片引脚及功能介绍 (12)
2.1.2 芯片引脚介绍 (12)
2.2显示电路 (13)
2.3报警温度调整电路 (13)
2.4报警电路 (13)
2.5温度传感器 (13)
2.6 DS18B20温度传感器与单片机的接口电路 (14)
2.7系统整体硬件电路 (15)
3软件设计 (16)
3.1主程序 (16)
3.2读温度子程序 (16)
3.3报警温度调整子程序 (16)
3.4显示子程序 (16)
4总结 (21)
参考文献 (21)
软件设计
一、目的
1.巩固和加深对《单片机原理》课程内容的认识和理解,提高应用水平。 2.掌握MCS-51汇编语言程序的编制方法。 3.熟悉键盘控制和七段数码管的使用。 4.熟悉单片机应用系统硬件设计的基本方法。
二、设计要求
本课程设计内容包含二个方面:系统设计及上机编程。 (一)上机编程操作内容:
(1)程序一:编程实现在4位LED 上移动显示012345678 (2)程序二:编程实现键盘功能:
按3→A135
按7→B246
,其它左移显示
(3)程序三实现以下要求
a)定义键盘按键,5个为数字键2、4、7、1、3,3个功能键:减号-,
乘号×,等号=; b)可进行三位8进制减法运算;
c)可进行两位8进制乘法运算。
(4)电路框图
(二)实验步骤:
(1)对照实验线路原理图进行接线,并仔细检查;
(2)输入程序并检查无误,经汇编、连接后装入系统;
(3)运行程序
源程序:
(1)
ORG 0000H
LJMP MAIN
ORG 1000H MAIN:
MOV 50H,#00H MOV 51H,#01H MOV 52H,#02H MOV 53H,#03H MOV 54H,#04H MOV 55H,#05H MOV 56H,#06H MOV 57H,#07H MOV 58H,#08H
KEYSUB:
MOV A,#0EH MOV DPTR,#7F00H MOVX @DPTR,A BEGINA:
MOV R1,#50H MOV R4,#06H MOV R5,#0FFH
BEGIN:
ACALL DIS
DJNZ R5,BEGIN
DIS:
PUSH ACC
PUSH 00H
PUSH 03H
MOV A,R1
MOV R0,A
MOV R3,#0FEH MOV A,R3
AGAIN:
MOV DPTR,#7F03H
MOVX @DPTR,A
MOV A,@R0
MOV DPTR,#DDEG
MOVC A,@A+DPTR MOV DPTR,#7F02H
MOVX @DPTR,A
ACALL DL1MS
INC R0
MOV A,R3
JNB ACC.3,OUT
RL A
MOV R3,A
AJMP AGAIN
OUT:
POP 03H
POP 00H
POP ACC
RET
DDEG:
DB 0FCH,60H,0DAH,0F2H,
66H,0B6H,0BEH,0E0H,0FEH DL1MS:
MOV R7,#01H
DL0:
MOV R6,#0FFH
DL1:
DJNZ R6,DL1
DJNZ R7,DL0
RET
END
(2)程序二:
ORG 0000H
LJMP MAIN
ORG 1000H
MAIN:
MOV 50H,#00H
MOV 51H,#00H
MOV 52H,#00H
MOV 53H,#00H
KEYSUB:
MOV A,#0EH
MOV DPTR,#7F00H
MOVX @DPTR,A BEGIN:
ACALL DIS
ACALL CLEAR
ACALL CCSCAN
JNZ INK1
AJMP BEGIN
INK1:
ACALL DIS
ACALL DL1MS
ACALL DL1MS
ACALL CLEAR
ACALL CCSCAN
JNZ INK2
AJMP BEGIN
INK2:
MOV R2,#0FEH
MOV R4,#00H
COLUM:
MOV DPTR,#7F03H
MOV A,R2
MOVX @DPTR,A
MOV DPTR,#7F01H
MOVX A,@DPTR
JB ACC.3,LONE
MOV A,#00H
AJMP KCODE
LONE:
JB ACC.2,NEXT
MOV A,#04H KCODE:
ADD A,R4
CJNE A,#00H,TT0
MOV A,#06H
AJMP L0
TT0:
CJNE A,#01H,TT1
MOV 50H,#0BH
MOV 51H,#02H
MOV 52H,#04H
MOV 53H,#06H
AJMP L1
TT1:
CJNE A,#02H,TT2
MOV A,#0CH
AJMP L0
TT2:
CJNE A,#03H,TT3
MOV A,#0DH
AJMP L0
TT3:
CJNE A,#04H,TT4
MOV A,#0AH
AJMP L0
TT4:
CJNE A,#05H,TT5
MOV A,#0BH
AJMP L0
TT5:
CJNE A,#06H,TT6
MOV A,#09H
AJMP L0
TT6:
CJNE A,#07H,L0
MOV 50H,#0AH
MOV 51H,#01H
MOV 52H,#03H
MOV 53H,#05H
AJMP L1
L0:
ACALL PUTBUF L1:
PUSH ACC