单片机接口技术与实验(附原理图及源程序)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《单片机接口技术与实验》
姓名:
学号:
年级:
专业:电子信息科学与技术
实验二并行口输入输出实验——循环彩灯控制
一、实验功能
(1).P1 口接8 个开关,P0 口接8 个灯,每个开关对应一个灯,实时读取开关状态,开关闭合时,灯亮。开关断开时,灯灭。
二、实验原理图
注意:因为P0口作为输出口时必须接上拉电阻,为简化起见,此处接到P2口上
三、实验程序
org 0000h
ljmp main
org 0100h
main: mov p1,#0ffh
mov p2,p1
ajmp main
end
(2)
一、实验功能
用5 个开关K0~K4,控制P0 口所接8 个灯的循环,各开关的功能要求如下:(1)K1~K2 分别选择灯的四种闪动方式;
(2)K3 用于控制灯的循环方式(顺时针或逆时针);
(3)K4 用于选择灯的两种循环速度
(4)K0 用于引发外部中断,在外部中断子程序中,读取通过K1-K4 所设定的循环
彩灯的工作方式,并按所设定的工作方式控制彩灯运行。
二、实验原理图
三、实验流程图
四、实验程序
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INT0PR0
ORG 0100H MAIN: MOV P1,#0FFH MOV SP,#60H SETB EX0
SETB IT0
SETB EA
MOV C,
MOV 50H,C
MOV C,
MOV 51H,C
JB ,NEXT1
JNB ,NEXT2 NEXT1: JB ,CIRCLE1
JNB ,CIRCLE2 NEXT2: JB ,CIRCLE3 JNB ,CIRCLE4 CIRCLE1: MOV A,#80H
LJMP STEP0 CIRCLE2: MOV A,#0C0H LJMP STEP0 CIRCLE3: MOV A,#0AAH LJMP STEP0 CIRCLE4: MOV A,#0E0H LJMP STEP0 STEP0: MOV P2,A
JB 50H,S1
JNB 50H,S2 STEP1: JB 51H,LOOP1 JNB 51H,LOOP2
S1: LCALL DELAY1 LJMP STEP1
S2: LCALL DELAY2 LJMP STEP1 DELAY1: MOV R7,#100 D1: MOV R6,#100 D2: MOV R5,#10
D3: DJNZ R5,D3
DJNZ R6,D2
DJNZ R7,D1
RET
DELAY2: MOV R7,#200 D4: MOV R6,#100 D5: MOV R5,#10
D6: DJNZ R5,D6
DJNZ R6,D5
DJNZ R7,D4
RET
LOOP1: RL A
LJMP STEP0 LOOP2: RR A
LJMP STEP0 ORG 0400H
INT0PR0:
MOV C,
MOV 50H,C
MOV C,
MOV 51H,C
JB ,WORK1
JNB ,WORK2
WORK1: JB ,L1
JNB ,L2
WORK2: JB ,L3
JNB ,L4
L1: MOV A,#80H
LJMP PASS
L2: MOV A,#0C0H
LJMP PASS
L3: MOV A,#0AAH
LJMP PASS
L4: MOV A,#0E0H
LJMP PASS
PASS: RETI
END
实验三七段 LED 数码管控制实验
一、实验功能
1.实验采用4 位一体的数码管,用P1 口通过驱动芯片控制段码输出信号线,P0 口
通过驱动芯片控制位选线:
(1)当开关K0 接低电平时,第一位依次显示0~F,然后第二位、第三位、第四
位,再循环回第一位。
(2)当开关K0 接高电平时,四位动态显示“HELP”
二、实验原理图
三、实验流程图
四、实验程序
org 0000h
ljmp main
org 0100h
main:
mov p2,#0ffh setb
mov dptr,#tab mov r0,#0
mov a,#00h
loop1: mov r0,#00h jnb ,h
sjmp loop2
h: mov p2,#0feh lcall light
mov p2,#0fdh lcall light
mov p2,#0fbh
lcall light
mov p2,#b
lcall light
sjmp loop1
light: jb ,loop2
mov a,r0
movc a,@a+dptr
inc r0
mov p0,a
lcall delay1
cjne r0,#16,light
mov r0,#0
ret
loop2: mov p2,#0feh
mov p0,#73h
lcall delay1
jnb ,loop1
mov p2,#0fdh
mov p0,#38h
lcall delay1
jnb ,loop1
mov p2,#0fbh
mov p0,#79h
lcall delay1
jnb ,loop1
mov p2,#b
mov p0,#76h
lcall delay1
jnb ,loop1
sjmp loop1
tab: db
3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h
delay1:
MOV R3,#10
D2: MOV R2,#100
D1: MOV R1,#100
D0: DJNZ R1,D0
DJNZ R2,D1
DJNZ R3,D2
RET
end