实验7 P1口输入
- 格式:pdf
- 大小:258.06 KB
- 文档页数:4
4.1实验7 P1口输入/输出及外部中断
4.1.1实验目的
掌握单片机并行口开关量输入、输出的接口技术及编程方法;掌握延时子程序的编写和使用。
4.1.2实验设备
PC机一台,DP-51PROC单片机综合仿真实验仪一台或DICE-598H+增强型单片机开发实验仪一台。
4.1.3实验内容
⑴P1口连接8个LED,轮流点亮每个LED。
硬件连线方法:
z DP-51PROC:用排线连接A2区J61至D1区J52;
z DICE-598H+:用导线连接A1区L1~8插孔至A4区X0、X2~X8;插孔功能详见附录1。
⑵根据P3.2口状态,改变P1口点亮8个LED的顺序,当P3.2=0时,P1口由低到
高点亮LED,P3.2=1时,由高到低点亮LED。
电路如图4-3所示。
图 4-3 P3.2与P1口输入/输出
硬件连线方法:
z DP-51PROC:用排线连接A2区J61至D1区J52,A2区INT0插孔至D1区SW1插孔;
z DICE-598H+:用导线连接A1区L1~8插孔至A4区X0、X2~X8,D1区K1插孔至A4区X15插孔,插孔功能详见附录1。
⑶使用外部中断0,输入P1.0~P1.2的开关状态,然后从P1.5~P1.7LED指示灯输
出。
电路如图4-4所示。
图 4-4 P1口中断方式输入/输出
硬件连线方法:
z DP-51PROC:用导线连接A2区P10~P12插孔至D1区SW1~SW3插孔,A2区P14~P16插孔至D1区LED1~LED3插孔,A2区INT0插孔至D1区K1;
z DICE-598H+:用导线连接A1区L1~3插孔至A4区X0、X2、X3,D1区K1~K3插孔至A4区X5、X7、X8插孔,A3区AN按钮下降沿插孔至A4区X15,插孔功
能详见附录1。
4.1.4实验参考程序
⑴P1口依次点亮每个LED参考程序。
;Exp7_1:P1口输出,依次点亮8个LED
ORG 0000H
mov P1,#0FFH ;关闭8个LED
Loop: clr P1.0
lcall Delay ;调用延时子程序
clr P1.1
lcall Delay
clr P1.2
lcall Delay
clr P1.3
lcall Delay
clr P1.4
lcall Delay
clr P1.5
lcall Delay
clr P1.6
lcall Delay
clr P1.7
lcall Delay
mov P1,#0FFH
lcall Delay
sjmp Loop
;子程序名:Delay
;功能:延时500ms
;入口参数:无
;出口参数:无
;占用资源:R5 R6 R7
Delay: mov R5,#5
Rept1: mov R6,#100
Rept2: mov R7,#200
Rept3: nop
nop
nop
djnz R7,Rept3
djnz R6,Rept2
djnz R5,Rept1
ret
END
⑵P3.2控制P1口点亮顺序参考程序。
;Exp7_2:根据P3.2口状态,改变点亮8个LED的顺序;当P3.2=0 由低->高,P3.2=1 由高->低
;
ORG 0000H
mov P1,#0FFH ;关闭8个LED
setb P3.2 ;输入前,锁存器置1 mov A,#11111110B ;
Loop: mov P1,A
jb P3.2,H2L
rl A
sjmp Next
H2L: rr A
Next: lcall Delay ;调用延时子程序
sjmp Loop
;子程序名:Delay
;功能:延时500ms
;入口参数:无
;出口参数:无
;占用资源:R5 R6 R7
Delay: mov R5,#5
Rept1: mov R6,#100
Rept2: mov R7,#200
Rept3: nop
nop
nop
djnz R7,Rept3
djnz R6,Rept2
djnz R5,Rept1
ret
END
⑶P1口中断方式输入/输出参考程序。
;Exp7_3:中断方式输入P1.0~P1.2 状态,然后从P1.5~P1.7输出
;
ORG 0000H
ljmp Main
ORG 0003H ;中断入口
ljmp Int0SVR
Main: mov SP,#5FH
setb EA
setb IT0 ;边沿触发方式
setb EX0 ;允许中断
sjmp $
Int0SVR:mov P1,#0FFH ;P1锁存器置1,准备输入
mov A,P1 ;读入P1
SWAP A ;P1.0~P1.2状态从P1.5~P1.7出
mov P1,A
reti
END
4.1.5思考题
⑴如何计算软件延时程序的延时时间?
⑵如果P1口控制的8个LED显示是没有规律的(不能用移位方式),如何编写程序?
⑶如果把中断方式输入改为查询方式,如何修改上述参考程序?。