内工大单片机工程实训报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、设计目的:(题目四号宋体字)
通过一个以8 位单片机为核心的模拟量数字表的硬件调试过程,掌握具有A/D、七段LED 显示、RS-485 通信、Watchdog 等接口电路的单片机应用系统的设计思想和方法。
学习应用系统软件的模块化设计方法,通过源程序的编辑、汇编或编译、链接、仿真调试,完成给定的任务。通过上述过程提高学生工程实践能力和素质。
二、设计任务:
要求明确设计任务内容及任务分工等;(内容小四号宋体字)
★基本任务:
完成蜂鸣器、键盘、七段LED 显示器的自检程序设计。
(1)蜂鸣器自检
要求:利用程序实现两种以上声音。
(2)键盘自检
要求:确定键盘正确。
(3)七段LED 显示器自检
要求:确定LED 显示器每一段均正确。
框图(包括自检和任务的框图):
1、硬件编程框图及相关说明
2、主程序框图、子程序框图及相关说明
三、程序清单:
要求有明确的程序注解、程序清单可分两栏打印
(1)蜂鸣器自检程序
BEEP:
setb p2.3 ;关喇叭
acall delay1 ;调用延时1
clr p2.3 ;开喇叭
acall DELAY2 ;调用延时2
setb p2.3 ;关喇叭
acall DELAY2 ;调用延时2
clr p2.3 ;开喇叭
acall DELAY3 ;调用延时3
setb p2.3 ;关喇叭
acall DELAY3 ;调用延时3
sjmp BEEP ;跳到beep
RET
DELAY1: ;延时子程序
MOV R1,#0FFH
CX0: MOV R2,#0FFH
CX: DJNZ R2,CX
DJNZ R1,CX0
RET
DELAY2: 延时子程序
MOV R1,#0FAH
CX1: MOV R2,#0FAH
CX2: DJNZ R2,CX2
DJNZ R1,CX1
RET
DELAY3: 延时子程序
MOV R1,#0FAH
CX3: MOV R2,#0FAH
CX4: DJNZ R2,CX4
DJNZ R1,CX3 RET
(2)键盘自检程序
BEEP:
MOV R1,#4H ;设置移位次数
LCALL SEL8 ;打开三态门
MOV P1 ,#0FFH ;将P1口设置成I/O
MOV A,P1 ;采样
LCALL SEL7 ;关闭三态门
SJMP CXW1
RET
CXW1: RRC A ;把键的值放到进位位JNC CXW2 ;如果键合上,跳到CXW2,发音子程序
DJNZ R1,CXW1 ;(K1没闭合,就看K2是否闭合;K2没闭合,就看K3是否闭合;K3没闭合,就看K4是否闭合)
SJMP BEEP ;四个键都没闭合,就重新采样
RET
CXW2: CLR P2.3 ;开喇叭
LCALL DELAY ;调用延时
SETB P2.3 ;关喇叭
SJMP BEEP ;发音完毕,跳转到BEEP,重新采样
RET
SEL7: CLR P2.7 ;(关闭三态门子程序)SETB P2.6
SETB P2.5
RET
SEL8: SETB P2.7 ;(打开三态门子程序)SETB P2.6
SETB P2.5
RET
DELAY: MOV R6,#0AH ;(延时子程序)
CXW3: MOV R7,#0F8H
CXW4: DJNZ R7,CXW4
DJNZ R6,CXW3
RET
(3)七段LED 显示器自检程序
DT1: CLR P2.5 ;(使第一位LED 有效,并显示从1到9) CLR P2.6 CLR P2.7 LCALL cc1 RET
DT2: CLR P2.5 ;(使第二位LED 有效,并显示从1到9) CLR P2.6
设置移位次数
打开三态门
采样
关三态门
K1闭合?
K2闭合?
K4闭合?
峰鸣器发音
K3闭合?
Y
N
N
N
Y
Y
N
Y
调用延时程序
SETB P2.7
LCALL cc1
RET
DT3: CLR P2.5 ;(使第三位LED有效,并显示从1到9) SETB P2.6
CLR P2.7
LCALL cc1
RET
DT4: CLR P2.5 ;(使第四位LED有效,并显示从1到9) SETB P2.6
SETB P2.7
LCALL cc1
RET
DT5: SETB P2.5 ;(使第五位LED有效,并显示从1到9) CLR P2.6
CLR P2.7
LCALL cc1
LJMP DT1
RET
cc1: LCALL SEL0 ;(调用送字型的子程序,使LED显示0到9)
LCALL DELAY
LCALL SEL1
LCALL DELAY
LCALL SEL2
LCALL DELAY
LCALL SEL3
LCALL DELAY
LCALL SEL4
LCALL DELAY
LCALL SEL5
LCALL DELAY
LCALL SEL6
LCALL DELAY
LCALL SEL7
LCALL DELAY
LCALL SEL8
LCALL DELAY
LCALL SEL9
LCALL DELAY
LCALL SEL10
LCALL DELAY
RET
SEL0: MOV A,#7EH ;SEL1到SEL10是送字型子程序,SEL0是送0子程序
MOV P0,A