《单片机与接口技术》实验指导书
- 格式:doc
- 大小:448.17 KB
- 文档页数:29
《单片机与接口技术》实验指导书
王玉琳编写
SUN ES59PA
合肥工业大学机械与汽车工程学院2014年12月(第1版)
目录
实验一、P1口与P3口综合实验 (1)
实验二、内、外RAM数据传送实验 (6)
实验三、定时、计数与中断实验 (9)
实验四、8255控制交通灯实验 (12)
实验五、并行DA实验 (15)
实验六、并行AD实验 (17)
实验七、LED16×16点阵实验 (20)
实验八、图形点阵显示实验 (21)
实验九、继电器控制实验 (22)
实验十、简易电子琴实验 (24)
P1.01P1.12P1.23P1.34P1.45P1.56P2.1(A9)22P2.2(A10)23P2.3(A11)24P2.4(A12)25P2.5(A13)26P2.6(A14)27P2.7(A15)28PSEN 29ALE/PROG
30EA/Vpp 31P0.7(AD7)32P0.6(AD6)33P0.5(AD5)34P0.4(AD4)35P0.3(AD3)36P0.2(AD2)37P0.1(AD1)38P0.0(AD0)39Vcc 40P1.67P1.78RST
9(RXD)P3.010(TXD)P3.111(INT0)P3.212(INT1)P3.313(T0)P3.414(T1)P3.515(WR)P3.616(RD)P3.717XTAL218XTAL119P2.0(A8)
21
GND 20
89C52
U42DS35DS36DS37DS38DS39DS40DS41VCC
DS421
2345678510
R111
510R112
510R113
510R114
510R115
510R116
510R117
510R118
六、参考程序
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV SP,#70H
MOV A,#0FFH
CLR C
AGAIN: RLC A
MOV P1,A
ACALL DELAY
SJMP AGAIN
DELAY: MOV R5,#02H ;延时
DELAY1: MOV R6,#00H
DELAY2: MOV R7,#00H
DJNZ R7,$
DJNZ R6,DELAY2
DJNZ R5,DELAY1
RET
END
七、扩展实验一:异或、位查询
将排线JP65转180°。
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV SP,#70H
MOV P1,#11111111B
JB P3.0,$ ;P3.0接K7,作为“启动”AGAIN: XRL P1,#11110000B
CALL DELAY
JNB P3.1,$ ;P3.1接K8,作为“暂停”
XRL P1,#00001111B
CALL DELAY
JNB P3.1,$ ;P3.1接K8,作为“暂停”
SJMP AGAIN
DELAY: MOV R5,#02H ;延时
DELAY1: MOV R6,#00H
DELAY2: MOV R7,#00H
DJNZ R7,$
DJNZ R6,DELAY2
DJNZ R5,DELAY1
RET
END
八、扩展实验二:位查询、外部中断
排线保留。
用AT89S52的P1.0~P1.7控制8道工序,现模拟控制8只LED,低电平点亮,将每道工序所占的时间假定为延时;P3.4接K7,为开工启动开关,下降沿有效;P3.3接K8,为外部故障模拟输入开关,P3.3=1时设备正常,P3.3=0时,设备出故障,系统报警;P3.5接F6区蜂鸣器的Ctrl,为报警时的声音输出。
初始状态,K7和K8均拨到下面(高电平),此时8只LED均未点亮。
运行程序后,将K7拨到上面再拨下来,二极管开始点亮,顺序动作开始;把K8拨到上面时,发声报警,再将K8拨到下面时,报警停止。
ORG 0000H
LJMP PO10
ORG 0013H
LJMP PO16
ORG 0030H
PO10: MOV P1,#0FFH
PO11: JB P3.4,PO11
ORL IE,#1000 0100B ;(EA)=1,(EX1)=1
ORL IP, #0000 0100B ;(PX1)=1
MOV PSW,#00H
MOV SP,#70H
PO12: MOV P1,#1111 1110B
ACALL DELAY
MOV P1,#1111 1101B
ACALL DELAY
MOV P1,#1111 1011B
ACALL DELAY
MOV P1,#1111 0111B
ACALL DELAY
MOV P1,#1110 1111B
ACALL DELAY
MOV P1,#1101 1111B
ACALL DELAY
MOV P1,#1011 1111B
ACALL DELAY
MOV P1,#0111 1111B
ACALL DELAY
SJMP PO12
PO16: CLR P3.5 ;中断服务子程序
JNB P3.3,$
RETI
DELAY: MOV R5,#02H
DELAY1:MOV R6,#00H
DELAY2:MOV R7,#00H
DJNZ R7,$
DJNZ R6,DELAY2
DJNZ R5,DELAY1
RET
END
九、扩展实验三:外部计数
(1)排线保留;
(2)把单脉冲输出孔和P3.4(单片机的T0计数器)相连;
(3)上、下拨动正脉冲开关一次,产生的脉冲下降沿使得单片机的T0计数器计数值加1,LED-8点亮;
(4)不断上、下拨动开关,观察8只LED的点亮情况。
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV P1,#11111111B ;LED-1~LED-8全灭
MOV TMOD,#0000 0101B ;T0计数器初始化,方式1计数
MOV TH0,#00H ;T0的计数初值设为0
MOV TL0,#00H
SETB TR0 ;T0计数器开始计数
AGAIN: MOV A,TL0 ;读取T0计数器的低8位计数值
CPL A
MOV P1,A
SJMP AGAIN
END
将T0换成T1,如何修改程序?