单片机接口技术与实验.docx
- 文档编号:11656268
- 上传时间:2023-03-29
- 格式:DOCX
- 页数:24
- 大小:181.89KB
单片机接口技术与实验.docx
《单片机接口技术与实验.docx》由会员分享,可在线阅读,更多相关《单片机接口技术与实验.docx(24页珍藏版)》请在冰豆网上搜索。
单片机接口技术与实验
--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--
单片机接口技术与实验(附原理图及源程序)(总25页)
《单片机接口技术与实验》
姓名:
学号:
年级:
专业:
电子信息科学与技术
实验二并行口输入输出实验——循环彩灯控制
一、实验功能
(1).P1口接8个开关,P0口接8个灯,每个开关对应一个灯,实时读取开关状态,开关闭合时,灯亮。
开关断开时,灯灭。
二、实验原理图
注意:
因为P0口作为输出口时必须接上拉电阻,为简化起见,此处接到P2口上
三、实验程序
org0000h
ljmpmain
org0100h
main:
movp1,#0ffh
movp2,p1
ajmpmain
end
(2)
一、实验功能
用5个开关K0~K4,控制P0口所接8个灯的循环,各开关的功能要求如下:
(1)K1~K2分别选择灯的四种闪动方式;
(2)K3用于控制灯的循环方式(顺时针或逆时针);
(3)K4用于选择灯的两种循环速度
(4)K0用于引发外部中断,在外部中断子程序中,读取通过K1-K4所设定的循环
彩灯的工作方式,并按所设定的工作方式控制彩灯运行。
二、实验原理图
三、实验流程图
中断程序
把的状态存入位地址50H
把的状态存入位地址51H
是否为1
是否为1
MOVA,#80H
是否为1
MOVA,#0C0H
MOVA,#0AAH
MOVA,#0E0H
开始
50H是否为1
调用延时程序DELAY1
调用延时程序DELAY2
51H是否为1
灯循环右移子程序:
LOOP1
灯循环左移子程序:
LOOP2
结束
MOVP1,#0FFH
四、实验程序
ORG0000H
LJMPMAIN
ORG0003H
LJMPINT0PR0
ORG0100H
MAIN:
MOVP1,#0FFH
MOVSP,#60H
SETBEX0
SETBIT0
SETBEA
MOVC,
MOV50H,C
MOVC,
MOV51H,C
JB,NEXT1
JNB,NEXT2
NEXT1:
JB,CIRCLE1
JNB,CIRCLE2
NEXT2:
JB,CIRCLE3
JNB,CIRCLE4
CIRCLE1:
MOVA,#80H
LJMPSTEP0
CIRCLE2:
MOVA,#0C0H
LJMPSTEP0
CIRCLE3:
MOVA,#0AAH
LJMPSTEP0
CIRCLE4:
MOVA,#0E0H
LJMPSTEP0
STEP0:
MOVP2,A
JB50H,S1
JNB50H,S2
STEP1:
JB51H,LOOP1
JNB51H,LOOP2
S1:
LCALLDELAY1
LJMPSTEP1
S2:
LCALLDELAY2
LJMPSTEP1
DELAY1:
MOVR7,#100
D1:
MOVR6,#100
D2:
MOVR5,#10
D3:
DJNZR5,D3
DJNZR6,D2
DJNZR7,D1
RET
DELAY2:
MOVR7,#200
D4:
MOVR6,#100
D5:
MOVR5,#10
D6:
DJNZR5,D6
DJNZR6,D5
DJNZR7,D4
RET
LOOP1:
RLA
LJMPSTEP0
LOOP2:
RRA
LJMPSTEP0
ORG0400H
INT0PR0:
MOVC,
MOV50H,C
MOVC,
MOV51H,C
JB,WORK1
JNB,WORK2
WORK1:
JB,L1
JNB,L2
WORK2:
JB,L3
JNB,L4
L1:
MOVA,#80H
LJMPPASS
L2:
MOVA,#0C0H
LJMPPASS
L3:
MOVA,#0AAH
LJMPPASS
L4:
MOVA,#0E0H
LJMPPASS
PASS:
RETI
END
实验三七段LED数码管控制实验
一、实验功能
1.实验采用4位一体的数码管,用P1口通过驱动芯片控制段码输出信号线,P0口
通过驱动芯片控制位选线:
(1)当开关K0接低电平时,第一位依次显示0~F,然后第二位、第三位、第四
位,再循环回第一位。
(2)当开关K0接高电平时,四位动态显示“HELP”
二、实验原理图
三、实验流程图
开始
是否为1
调用延时子程序delay1
按位循环显示0-F
调用位显示子程序LOOP1
左移一位P2
判断是否显示一遍
显示HELP子程序
位显示子程序LOOP1
是否为1
调用延时子程序delay1
依次查表,付给P0显示数字
判断数是否显示一遍
位显示子程序HELP
是否为0
调用延时子程序delay1
返回
显示HELP
四、实验程序
org0000h
ljmpmain
org0100h
main:
movp2,#0ffh
setb
movdptr,#tab
movr0,#0
mova,#00h
loop1:
movr0,#00h
jnb,h
sjmploop2
h:
movp2,#0feh
lcalllight
movp2,#0fdh
lcalllight
movp2,#0fbh
lcalllight
movp2,#b
lcalllight
sjmploop1
light:
jb,loop2
mova,r0
movca,@a+dptr
incr0
movp0,a
lcalldelay1
cjner0,#16,light
movr0,#0
ret
loop2:
movp2,#0feh
movp0,#73h
lcalldelay1
jnb,loop1
movp2,#0fdh
movp0,#38h
lcalldelay1
jnb,loop1
movp2,#0fbh
movp0,#79h
lcalldelay1
jnb,loop1
movp2,#b
movp0,#76h
lcalldelay1
jnb,loop1
sjmploop1
tab:
db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h
delay1:
MOVR3,#10
D2:
MOVR2,#100
D1:
MOVR1,#100
D0:
DJNZR1,D0
DJNZR2,D1
DJNZR3,D2
RET
end
实验四定时器中断实验
一、实验功能
1.用T0定时器实现1秒定时,控制一个LED亮1秒,灭1秒,并不断循环。
二、实验原理图
三、实验流程图
开始
置TR0为1
置TR0为0
置为1
置为0
是否循环100次
是否循环100次
定时程序
TR0=1
计时
四、实验程序
org0000h
ljmpmain
org000bh
ljmpt0pr0
org0100h
main:
movsp,#60h
movtmod,#01h
movth0,#0b8h
movtl0,#00h
movr0,#100
setbea
setbet0
setbtr0
loop:
sjmp$
ljmploop
t0pr0:
djnzr0,w
cpl
movr0,#100
w:
movth0,#0b8h
movtl0,#00h
reti
end
2.
一、实验功能
实现一个4位秒表:
(1)用开关K0模拟秒表的启动、停止、清零功能,按一次启动计时,按一次停
止,再按一次清零,在三个状态中循环。
(2)最低位按1/10秒计数,依次计数单位为1/10秒,1秒,1分
(3)要求K0使用外部中断,优先级高于T0的优先级
二、实验原理图
三、实验流程图
开各种中断
开始
百分之一毫秒显示:
R2
十分之一毫秒显示:
R3
毫秒十位显示:
R5
毫秒个位显示:
R4
外部中断
INCR0
R0是否等于2
是否循环100次
TR0置1
TR0置0
设初值
R0是否等于1
设R1=0
INCR2
INCR3
INCR4
INCR5
设R2=0
INCR1
R1是否等于10
是否循环100次
判断四位是否显示一遍
R2是否等于10
是否循环100次
判断四位是否显示一遍
R3是否等于10
是否循环100次
判断四位是否显示一遍
R5是否等于10
是否循环100次
判断四位是否显示一遍
R4是否等于20
是否循环100次
判断四位是否显示一遍
设R3=0
设R4=10
设R5=0
四、实验程序
org0000h
ljmpmain
org0003h
ljmpintx0
org000bh
ljmpt0pr0
org0100h
main:
movtmod,#01h
movth0,#0b8h
movtl0,#00h
movp2,#0ffh
movr0,#1
movr1,#0
movr2,#0
movr3,#0
movr4,#0
movr5,#0
mova,#0
movdptr,#tab
setbea
setbex0
setbit0
setbtr0
setbpx0
setbet0
k:
lcallaaa
jmpk
aaa:
movp2,#0feh
mova,r2
lcallloop
lcallmm
movp2,#0fdh
mova,r3
lcallloop
lcallmm
movp2,#0fbh
mova,r4
lcallloop
lcallmm
movp2,#b
mova,r5
lcallloop
lcallmm
ret
mm:
djnzacc,$
djnzacc,$
ret
loop:
movca,@a+dptr
movp0,a
ret
tab:
db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
intx0:
incr0
cjner0,#1,st
setbtr0
reti
st:
cjner0,#2,w
clrtr0
reti
w:
mova,#0
movr0,a
movr1,a
movr2,a
movr3,a
movr4,a
movr5,a
reti
t0pr0:
movth0,#0b8h
movtl0,#00h
incr1
cjner1,#10,exit
movr1,#0
incr2
cjner2,#10,exit
movr2,#0
incr3
cjner3,#10,exit
movr3,#0
incr4
cjner4,#6,exit
movr4,#0
incr5
cjner5,#10,exit
movr5,#0
exit:
reti
end
实验五脉冲宽度与周期测量实验
一、实验功能
同时测量脉冲宽度和周期,由开关K0选择显示脉冲宽度还是显示脉冲周期。
二、实验原理图
三、实验流程图
开始
设置各种初值
是否为1
是否为0
是否为1
是否为0
置TR0为1
置TR0为0
是否为1
是否为0
置TR0为1
置TR0为0
是否为0
是否为0
是否为0
MOVA,TL0MOVR2,A
SUBBA,#48HMOVA,R0
MOVB,#2MOVB,#10
DIVABDIVAB
MOVB,#10MOVR3,B
DIVABADDA,#10
MOVR1,BMOVR4,A
百分之一毫秒显示:
R1
十分之一毫秒显示:
R2
毫秒十位显示:
R4
毫秒个位显示:
R3
T0中断
INCR0
四、实验程序
ORG0000H
limpmain
org000bh
ljmpt
org0100h
main:
movtmod,#oah
movth0,#48h
movtl0,#48h
setbea
setbet0
movdptr,#tab
mova,#0
movr0,#0
movr1,#0
movr2,#0
movr3,#0
movr4,#0
jb,b0
loop0:
jb,loop0
setbtr0
loop1:
jnb,loop1
loop2:
jb,loop2
loop3:
jnb,loop3
loop4:
jb,loop4
clrtr0
ljmploop
b0:
jb,b0
setbtr0
b1:
inb,b1
b2:
jb,b2
clrtr0
loop:
mova,tl0
subba,#48h
movb,#2
divab
movr1,b
movr2,a
mova,r0
movb,#10
divab
movr3,b
adda,#10
movr4,a
movp2,#b
mova,r1
lcallwww
lcallz
movp2,#b
mova,r2
lcallwww
lcallz
movp2,#b
mova,r3
lcallwww
lcallz
movp2,#b
mova,r4
lcallwww
lcallz
ljmpmain
www:
movca,@a+dptr
movp0,a
ret
z:
djnzacc,$
djnzacc,$
ret
tab:
db3fh,06h,5bh,4fh,66h,6dh,7dh,,6fh
db0bfh,86h,0d8h,0cfh,0e6h,0edh,0fdh,87h,0ffh,0efh
org0200h
t:
incr0
reti
end
实验六串行通信实验
一、实验功能
利用串行口方式0实现一个七段数码管的显示控制,轮流显示0~9十个数码
二、实验原理图
三、实验流程图
串行口中断
置RI为0
MOVR0,#10
CLRA
MOVCA,@A+DPTR
MOVSBUF,A
调用延时delay
INCDPTR
是否循环10次
四、实验程序
org0000h
ajmpmain
main:
movscon,#00h
movdptr,#table
movr0,#10
clr
NEXT:
djnzr0,send
ajmpmain
send:
clra
movca,@a+dptr
movsbuf,a
jnbti,$
clrti
incdptr
acalldelay
ajmpnext
delay:
movr1,#50
loop1:
movr2,#100
loop2:
movr3,#50
djnzr3,$
djnzr2,loop2
djnzr1,loop1
ret
table:
DB3Fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 接口 技术 实验