当前位置:文档之家› 应用系统设计报告

应用系统设计报告

随着电子技术的进步和发展,单片机的应用已经普及到我们生活、工作、科研等各个领域,其技术日趋成熟和完善。

本设计是一个基于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 0000HLJMP MAINORG 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,#08HKEYSUB:MOV A,#0EH MOV DPTR,#7F00H MOVX @DPTR,A BEGINA:MOV R1,#50H MOV R4,#06H MOV R5,#0FFHBEGIN:ACALL DISDJNZ R5,BEGINDIS:PUSH ACCPUSH 00HPUSH 03HMOV A,R1MOV R0,AMOV R3,#0FEH MOV A,R3AGAIN:MOV DPTR,#7F03HMOVX @DPTR,AMOV A,@R0MOV DPTR,#DDEGMOVC A,@A+DPTR MOV DPTR,#7F02HMOVX @DPTR,AACALL DL1MSINC R0MOV A,R3JNB ACC.3,OUTRL AMOV R3,AAJMP AGAINOUT:POP 03HPOP 00HPOP ACCRETDDEG:DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH DL1MS:MOV R7,#01HDL0:MOV R6,#0FFHDL1:DJNZ R6,DL1DJNZ R7,DL0RETEND(2)程序二:ORG 0000HLJMP MAINORG 1000HMAIN:MOV 50H,#00HMOV 51H,#00HMOV 52H,#00HMOV 53H,#00HKEYSUB:MOV A,#0EHMOV DPTR,#7F00HMOVX @DPTR,A BEGIN:ACALL DISACALL CLEARACALL CCSCANJNZ INK1AJMP BEGININK1:ACALL DISACALL DL1MSACALL DL1MSACALL CLEARACALL CCSCANJNZ INK2AJMP BEGININK2:MOV R2,#0FEHMOV R4,#00HCOLUM:MOV DPTR,#7F03HMOV A,R2MOVX @DPTR,AMOV DPTR,#7F01HMOVX A,@DPTRJB ACC.3,LONEMOV A,#00HAJMP KCODELONE:JB ACC.2,NEXTMOV A,#04H KCODE:ADD A,R4CJNE A,#00H,TT0MOV A,#06HAJMP L0TT0:CJNE A,#01H,TT1MOV 50H,#0BHMOV 51H,#02HMOV 52H,#04HMOV 53H,#06HAJMP L1TT1:CJNE A,#02H,TT2MOV A,#0CHAJMP L0TT2:CJNE A,#03H,TT3MOV A,#0DHAJMP L0TT3:CJNE A,#04H,TT4MOV A,#0AHAJMP L0TT4:CJNE A,#05H,TT5MOV A,#0BHAJMP L0TT5:CJNE A,#06H,TT6MOV A,#09HAJMP L0TT6:CJNE A,#07H,L0MOV 50H,#0AHMOV 51H,#01HMOV 52H,#03HMOV 53H,#05HAJMP L1L0:ACALL PUTBUF L1:PUSH ACCKON:ACALL DISACALL CLEARACALL CCSCANJNZ KONPOP ACCNEXT:INC R4MOV A,R2JNB ACC.3,KERRRL AMOV R2,AAJMP COLUM KERR:AJMP BEGIN CCSCAN:MOV DPTR,#7F03HMOV A,#00HMOVX @DPTR,AMOV DPTR,#7F01HMOVX A,@DPTRCPL AANL A,#0CHRETCLEAR:MOV DPTR,#7F02HMOV A,#00HMOVX @DPTR,ARETDIS:PUSH ACCPUSH 00HPUSH 03HMOV A,#0EHMOV DPTR,#7F00HMOVX @DPTR,AMOV R0,#50HMOV R3,#0FEHMOV A,R3 AGAIN:MOV DPTR,#7F03HMOVX @DPTR,AMOV A,@R0MOV DPTR,#DDEG MOVC A,@A+DPTRMOV DPTR,#7F02HMOVX @DPTR,AACALL DL1MSINC R0MOV A,R3JNB ACC.3,OUTRL AMOV R3,AAJMP AGAINOUT:POP 03HPOP 00HPOP ACCRETDDEG:DB 0FCH,60H,0DAH,0F2H, 66H,0B6H,0BEH,0E0H,0FEH DL1MS:MOV R7,#01HDL0:MOV R6,#0FFHDL1:DJNZ R6,DL1DJNZ R7,DL0RETPUTBUF:MOV 50H,51HMOV 51H,52HMOV 52H,53HMOV 53H,ARETEND(3)程序三:ORG 0000HLJMP MAINORG 1000HMAIN:MOV 50H,#00HMOV 51H,#00HMOV 52H,#00HMOV 53H,#00HMOV 60H,#00HMOV 61H,#00HMOV 62H,#00HMOV 63H,#00HMOV 71H,#02HKEYSUB:MOV A,#0EHMOV DPTR,#7F00HMOVX @DPTR,A BEGIN:ACALL DISACALL CLEARACALL CCSCANJNZ INK1AJMP BEGININK1:ACALL DISACALL DL1MSACALL DL1MSACALL CLEARACALL CCSCANJNZ INK2AJMP BEGININK2:MOV R2,#0FEHMOV R4,#00HCOLUM:MOV DPTR,#7F03HMOV A,R2MOVX @DPTR,AMOV DPTR,#7F01HMOVX A,@DPTRJB ACC.3,LONEMOV A,#00HAJMP KCODE LONE:JB ACC.2,NEXTMOV A,#04H KCODE:ADD A,R4CJNE A,#00H,TT0DJNZ 71H,GOONAJMP RESET GOON:AJMP EQU1TT0:CJNE A,#01H,TT1AJMP MUL1TT1:CJNE A,#02H,TT2AJMP SUB1TT2:CJNE A,#03H,TT3MOV A,#03HAJMP L0TT3:CJNE A,#04H,TT4MOV A,#02HAJMP L0TT4:CJNE A,#05H,TT5MOV A,#04HAJMP L0TT5:CJNE A,#06H,TT6MOV A,#07HAJMP L0TT6:CJNE A,#07H,L0MOV A,#01HL0:ACALL PUTBUFL1:PUSH ACCKON:ACALL DISACALL CLEARACALL CCSCANJNZ KONPOP ACCNEXT:INC R4MOV A,R2JNB ACC.3,KERRRL AMOV R2,AAJMP COLUM KERR:AJMP BEGIN CCSCAN:MOV DPTR,#7F03HMOV A,#00HMOVX @DPTR,AMOV DPTR,#7F01HMOVX A,@DPTRCPL AANL A,#0CHRETCLEAR:MOV DPTR,#7F02HMOV A,#00HMOVX @DPTR,ARETDIS:PUSH ACCPUSH 00HPUSH 03HMOV A,#0EHMOV DPTR,#7F00HMOVX @DPTR,AMOV R0,#50HMOV R3,#0FEHMOV A,R3 AGAIN:MOV DPTR,#7F03HMOVX @DPTR,AMOV A,@R0MOV DPTR,#DDEG MOVC A,@A+DPTR MOV DPTR,#7F02HMOVX @DPTR,AACALL DL1MSINC R0MOV A,R3JNB ACC.3,OUTRL AMOV R3,AAJMP AGAINOUT:POP 03HPOP 00HPOP ACCRETDDEG:DB 0FCH,60H,0DAH,0F2H, 66H,0B6H,0BEH,0E0H,0FEH DL1MS:MOV R7,#01HDL0:MOV R6,#0FFHDL1:DJNZ R6,DL1DJNZ R7,DL0RETPUTBUF:MOV 50H,51HMOV 51H,52HMOV 52H,53HMOV 53H,ARETMUL1:NOPKON1:ACALL DISACALL CCSCANJNZ KON1MOV 63H,53HMOV 62H,52HMOV 53H,#00HMOV 52H,#00HMOV 70H,#00HAJMP BEGINSUB1:NOPKON2:ACALL DISACALL CCSCANJNZ KON2MOV 60H,50HMOV 61H,51HMOV 62H,52HMOV 63H,53HMOV 70H,#01HMOV 53H,#00HMOV 52H,#00HMOV 51H,#00HMOV 50H,#00HEQU1:NOPKON3:ACALL DISACALL CCSCANJNZ KON3MOV A,70HCJNE A,#00H,SUB2MUL2:MOV A,62HMOV B,#08HMUL ABADD A,63HMOV 30H,AMOV A,52HMOV B,#08HMUL ABADD A,53HMOV B,30HMUL ABMOV 30H,BMOV 31H,AANL A,#07HMOV 53H,AMOV A,31HANL A,#38HRR ARR ARR AMOV 52H,AMOV A,31HANL A,#0C0HRL ARL AMOV 31H,AMOV A,30HANL A,#01HRL ARL AORL A,31HMOV 51H, AMOV A,30HANL A,#0EHRR AMOV 50H,AAJMP L1SUB2:CLR CMOV A,63HSUBB A,53HJC ADD0MOV 53H,AAJMP LOW1 ADD0:CLR CADD A,#08HMOV 53H,ADEC 62H LOW1:MOV A,62HCLR CSUBB A,52HJC ADD1MOV 52H,AAJMP LOW2 ADD1:CLR CADD A,#08HMOV 52H,ADEC 61H LOW2:CLR CMOV A,61HSUBB A,51HJC ADD2MOV 51H,AAJMP LOW3 ADD2:ADD A,#08HMOV 51H,ADEC 60HMOV 50H,60H LOW3:AJMP L1 RESET:NOPKON4:ACALL DISACALL CCSCANJNZ KON4MOV 60H,#00HMOV 61H,#00HMOV 62H,#00HMOV 63H,#00HAJMP MAINEND三、心得体会通过课程设计,巩固和加深对《单片机原理》课程内容的认识和理解,提高应用水平;掌握MCS-51汇编语言程序的编制方法;熟悉键盘控制和七段数码管的使用;熟悉单片机应用系统硬件设计的基本方法。

相关主题