广东海洋大学单片机实验报告
时间:2020-10-09 09:01:29 来源:工作范文网 本文已影响 人
一 光二极管流水灯
一、 目的:
通 AT89C51 片机控制 8 个 光二极管,八个 光二极管分 接在 片机的 P0.0 -P0.7 接口上, 出“ 0 ” , 光二极管亮。开始
P0.0 →P0.1 ?.→P0.7 , 亮点以 1HZ 率循 移 。
用 PROTEUS ,仿真以 AT89C51 核心的 光二极管流水灯 装置。
掌握 光二极管的控制方法。
二、 PROTEUS 路 :
三、 器和
PC 机、 PROTEUS 件或 W-A-51 合开 学 板
四、源程序 :
根据 路 自行 写并 。
ORG 0000H
AJMP START
ORG 0030H
START:
MOV
P0,#0FFH
MOV
A,#0FEH
AAA:
MOV
P0,A
LCALL
DELAY
JNB
P0.7,BBB
RL
A
AJMP
AAA
BBB:
MOV
A,#7FH
CCC:
MOV
P0,A
LCALL
DELAY
JNB
P0.0,START
RR
A
AJMP
CCC
DELAY:
MOV
R2,#123
DL3:
MOV
R1,#200
DL2:
MOV
R0,#20
DL1:
DJNZ
R0,DL1
DJNZ
R1,DL2
DJNZ
R2,DL3
RET
END
实验二 开关控制 LED 数码管实验
一、实验目的:
通过 AT89C51 读入 4 位开关 K1 、K2 、K3 、K4 的输入状态,并按照二进制编码关系 0-F 输出到数码管显示。(如 K4K3K2K1 全部按下,则显示 F;若只有 K2 按下,则显示 2 。)
掌握 LED 数码管的静态显示。
掌握 I/O 口的控制方法。
二、 PROTEUS 电路设计:
三、实验仪器和设备
PC 机、 PROTEUS 软件或 W-A-51 综合开发学习板
四、源程序设计:
根据电路图自行编写并调试。
CLR P1.0
MOV DPTR,#TABLE
START:CLR A
JNB P2.0,D1
INC A
D1:JNB P2.1,D2
ADD A,#2
D2:JNB P2.2,D3
ADD A,#4
D3:JNB P2.3,D4
ADD A,#8
D4:MOVC A,@A+DPTR
MOV P0,A
AJMP START
TABLE: DB
0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH
END
实验三 外中断优先级实验
一、实验目的:
理解单片机中断优先级和优先权。
用 PROTEUS 设计,仿真基于 AT89C51 单片机的中断优先级实验。
掌握中断编程方法。
单片机主程序控制 P0 口数码管循环显示 0 ~8;外中断 0 、外中断 1
发生时分别在 P2 口、P1 口依次显示 0 ~8 。通过实验可演示高优先级可中
断低优先级,但低优先级的中断请求不能中断高优先级。
二、 PROTEUS 电路设计:
RP1
RESPACK-8
1
2
1
4
5
6
7
8
9
0
2
3
4
5
6
p
p
p p
p
p
p
p00
RN3
1
16
p01
2
15
C1
p02
3
14
U1
p03
4
13
p04
5
12
X1
19
XTAL1
P0.0/AD0
39
p00
p05
6
11
30pf
38
p01
p06
7
10
P0.1/AD1
37
p02
8
9
C2
CRYSTAL
18
P0.2/AD2
XTAL2
36
p03
P0.3/AD3
35
p04
300
P0.4/AD4
34
p05
P0.5/AD5
30pF
R1
33
p06
P0.6/AD6
9
32
RN1
RST
P0.7/AD7
10k
21
1
16
P2.0/A8
C3
22
2
15
P2.1/A9
23
3
14
P2.2/A10
29
24
4
13
PSEN
P2.3/A11
30
25
5
12
ALE
P2.4/A12
10uF
31
26
6
11
EA
P2.5/A13
27
7
10
P2.6/A14
RN2
28
8
9
P2.7/A15
1
16
1
P1.0
P3.0/RXD
10
300
2
15
2
11
P1.1
P3.1/TXD
3
14
3
12
P1.2
P3.2/INT0
4
13
4
13
P1.3
P3.3/INT1
5
12
5
14
P1.4
P3.4/T0
6
11
6
15
P1.5
P3.5/T1
7
10
7
16
P1.6
P3.6/WR
8
9
8
17
P1.7
P3.7/RD
300
AT89C51
三、实验仪器和设备
PC 机、 PROTEUS 软件或 W-A-51 综合开发学习板
四、源程序设计:
根据电路图自行编写并调试。
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INTER0
ORG 0013H
LJMP INTER1
ORG 0100H
MAIN: MOV SP,#30H
SETB EX0
SETB IT0
SETB PX0
SETB EX1
SETB IT1
CLR PX1
SETB EA
START: MOV R0,#00H
MOV A,R0
MOV R1,#9
PUSH ACC
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
CALL DELAY
POP ACC
INC A
DJNZ R1,AA
LJMP START
INTER0: PUSH PSW
PUSH ACC
SETB RS0
MOV R0,#00H
MOV R1,#9
MOV DPTR,#TABLE MOV A,R0
MOVC A,@A+DPTR
MOV P2,A
CALL DELAY
INC R0
DJNZ R1,BB
POP ACC
POP PSW
MOV P2,#0FFH
RETI
LJMP AA
INTER1: PUSH PSW
PUSH ACC
CLR RS0
SETB RS1
MOV R0,#00H
MOV R1,#9
MOV DPTR,#TABLE
MOV A,R0
MOVC A,@A+DPTR
MOV P1,A
CALL DELAY
INC R0
DJNZ R1,CC
POP ACC
POP PSW
MOV P1,#0FFH
RETI
LJMP AA
DELAY: MOV R2,#50
D0: MOV R3,#50
D1: MOV R4,#50
D2: DJNZ R4,D2
DJNZ R3,D1
DJNZ R2,D0
RET
TABLE:DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H END
实验四 60S 倒计时实验
一、实验目的:
通过 AT89C51 的定时器实现 60S 倒计时,显示采用两位数码管动态显示。
用 PROTEUS 设计,仿真基于 AT89C51 单片机的 60S 倒计时实
验。
二、 PROTEUS 电路设计:
三、实验仪器和设备
PC 机、 PROTEUS 软件或 W-A-51 综合开发学习板
四、源程序设计:
根据电路图自行编写并调试。
ORG 0000H
AJMP MAIN
ORG 000BH ;T0 中断入口
AJMP LOOP
ORG 0030H
MAIN:
MOV TMOD,#01H
; 设置
T0
用于定时,模式
1 方式
MOV TH0,#3CH
;装入定时初值
MOV TL0,#0B0H
MOV IP,#02H
MOV IE,#82H
;T0
中断允许
MOV DPTR,#TAB
MOV R0,#60
MOV R1,#16
SETB TR0
LOOP1:
MOV A,R0
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P2,#80H
MOV P0,A
ACALL DEL0
MOV A,B
MOVC A,@A+DPTR
MOV P2,#40H
MOV P0,A
ACALL DEL0
AJMP LOOP1
LOOP:
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R1,LOOP2
MOV R1,#16
DEC R0
CJNE R0,#0FFH,LOOP2
MOV R0,#60
LOOP2:
RETI
DELAY:
MOV R2,#20
DEL0:
MOV R3,#50
DJNZ R3,$
DJNZ R2,DEL0
RET
TAB:DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
END
实验五 矩阵式键盘的设计
一、实验目的:
掌握键盘设计中按键识别的原则。
用 PROTEUS 设计一个常规 4 ×4 的矩阵键盘。
3. 键盘编码规则自己定义,分别对应数字键 0-9 、A-F ,按下对应的按
键显示在数码管上显示对应的数据。
二、 PROTEUS 电路设计:
三、实验仪器和设备
PC 机、 PROTEUS 软件或 W-A-51 综合开发学习板
四、源程序设计:
根据电路图自行编写并调试。
ORG 0000H
AJMP START
ORG 30H
START:MOV DPTR,#TABLE
MOV P1,#07H
MOV P2,#0F0H H1: JB P2.4,H2
MOV A,#00H
LJMP LL
H2: JB P2.5,H3 MOV A,#01H
LJMP LL
H3: JB P2.6,H4
MOV A,#02H
LJMP LL
H4: JB P2.7,H1
MOV A,#03H
MOV P2,#0FH L1: JB P2.0,L2
MOV R0,#00H
LJMP CB
L2: JB P2.1,L3
MOV R0,#01H
LJMP CB
L3: JB P2.2,L4
MOV R0,#02H
LJMP CB
L4: JB P2.3,L1
MOV R0,#03H
CB: MOV B,#04H
MUL AB
ADD A,R0
MOVC A,@A+DPTR
CPL A
MOV P0,A
LJMP HH
TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
END
实验六 AD 转换程序设计
一、实验目的:
掌握转换器 ADC0809 的使用。
用 PROTEUS 设计,仿真基于 AT89C51 单片机的 A/D 转换实验。
通过改变电位器的值改变模拟量的输入, 经转换为数字量在 LED 上显示,比对模拟量和数字量的关系。
二、 PROTEUS 电路设计:
三、实验仪器和设备
PC 机、 PROTEUS 软件或 W-A-51 综合开发学习板
四、源程序设计:
根据电路图自行编写并调试。
ORG 0000H
LJMP START
ORG 0030H
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
START:
MOV R1,#00H
MOV R2,#08H
MOV DPTR,#TABLE
CLR EX0
LOOP:
CLR P2.0
MOVX @R1,A
MOV R3,#20H
DELY: DJNZ R3,DELY
SETB P3.2
WAIT: JB P3.2,WAIT
MOVX A,@R1
MOV R5,A
ANL A,#0FH
MOVC A,@A+DPTR
CPL A
SETB P3.5
CLR P3.4
MOV P1,A
ACALL DLY
MOV A,R5
ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
CPL A
SETB P3.4
CLR P3.5
MOV P1,A
ACALL DLY
SJMP LOOP
DLY:MOV R4,#175
DL:MOV R6,#125
DL1:DJNZ R6,DL1
DJNZ R4,DL
RET
HERE: SJMP HERE
END
实验七 双机通信实验
一、实验目的:
掌握单片机串口通信程序的设计。
了接 RS232 接口通信的特点。
双机通信:分别把接收到的对方通过逻辑开关输入的信息在本地数
码管上显示,如下图甲机的逻辑开关数据为 81H ,乙机通过串口接收
该数据并数码关管显示,而甲机显示乙机发送的数据 88H 。
二、 PROTEUS 电路设计:
三、实验仪器和设备
PC 机、 PROTEUS 软件或 W-A-51 综合开发学习板
四、源程序设计:
根据电路图自行编写并调试。
ORG 0000H
LJMP START
ORG 0050H
START:
MOV TMOD,#20H
MOV TH1,#0FDH
MOV TL1,#0FDH
MOV SCON,#50H
MOV PCON,#00H
SETB TR1
AABB:MOV A,P1
MOV SBUF,A
L1:JBC TI,L2
SJMP L1
L2:JBC RI,NEXT2
JMP L2
EXT2:
OV A,SBUF
MOV P0,A
SJMP AABB
END