内工大单片机工程实训报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档