单片机实验Word文件下载.docx
- 文档编号:8317161
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:22
- 大小:20.29KB
单片机实验Word文件下载.docx
《单片机实验Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机实验Word文件下载.docx(22页珍藏版)》请在冰点文库上搜索。
MOVR2,#10
MOVA,@R0
MOV@R1,A
DJNZR2,LOOP1
ADDCA,@R1
DJNZR2,LOOP2
MOVR0,#50H
MOVR1,#60H
DJNZR2,LOOP3
MOVR3,09H
MOVR0,#60H
MOVR2,#09
MOVR1,A
SUBBA,@R0
MOVA,R1
JCL3
XCHA,@R0
DECR0
L3:
DJNZR2,L2
DJNZR3,L1
实验三查表、散转
设有一表格,表中数为:
00H、11H、22H、33H、44H、
55H、66H、77H、88H、99H、AAH、BBH、CCH、
DDH、EEH、FFH。
根据片外0000H单元的低4位的数,
取出表中相应的值存到片内30H中;
根据片外0000H单元
的高4位的数,将片内RAM区中可位寻址的相应的位置1
(从位00H~位0FH,只可有一个位地址为1)
MOVXA,@DPTR
ANLA,#0FH
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOV30H,A
ANLA,#0F0H
SWAPA
MOV20H,#00H
MOV21H,#00H
RLA
ADDA,R1
MOVDPTR,#L2
JMP@A+DPTR
L2:
LJMPPM0
LJMPPM1
LJMPPM2
LJMPPM3
LJMPPM4
LJMPPM5
LJMPPM6
LJMPPM7
LJMPPM8
LJMPPM9
LJMPPM10
LJMPPM11
LJMPPM12
LJMPPM13
LJMPPM14
LJMPPM15
PM0:
SETB00H
PM1:
SETB01H
PM2:
SETB02H
PM3:
SETB03H
PM4:
SETB04H
PM5:
SETB05H
PM6:
SETB06H
PM7:
SETB07H
PM8:
SETB08H
PM9:
SETB09H
PM10:
SETB10H
PM11:
SETB11H
PM12:
SETB12H
PM13:
SETB13H
PM14:
SETB14H
PM15:
SETB15H
HERE:
SJMPHERE
TABLE:
DB00H,11H,22H,33H,44H,55H,66H,77H,88H,99H,0AAH,0BBH,0CCH,0DDH,0EEH,0FFH
END
实验四外中断
P1.0~P1.7接8个发光二极管,管脚INT0、INT1接两个按键,分别定义为“+”和“-”。
要求:
上电全灭,每按一次“+”键,亮的灯多一盏,
每按一次“-”键,亮的灯减一盏,
当全亮时,再按一次“+”键,则全灭
当全灭时,再按一次“-”键,则全亮
AJMPMAIN
ORG0003H
LJMPINT0
ORG0013H
LJMPINT1
ORG0030H
MAIN:
MOVSP,#06FH
MOVTCON,#05H
MOVA,#00H
MOVP1,A
SETBEX0
SETBEX1
SETBEA
SJMP$
INT0:
CJNEA,#0FFH,L1
AJMPSHUCHU1
SETBC
RLCA
SHUCHU1:
RETI
INT1:
CJNEA,#00H,L2
MOVA,#0FFH
AJMPSHUCHU2
RRCA
SHUCHU2:
END
实验五定时器
P1.0、P1.1分别接两个发光二极管,INT0脚接一按键做开关,按一次开关,则启动,两个发光管一亮一灭,亮灭时间均为1秒;
再按一次开关,则关闭,即两个发光管都灭。
ORG0000H
ORG0003H
AJMPINT0
ORG000BH
AJMPT0
ORG0030H
MOVTMOD,#01H
SETBIT0
SETBET0
MOVP1,#00H
JBTR0,L1
SETBTR0
MOVTH0,#3CH
MOVTL0,#0B0H
MOVP1,#01H
MOVR3,#0AH
CLRTR0
ORG0200H
T0:
DJNZR3,L2
CPLP1.0
CPLP1.1
实验六定时器、计数器
P3.2口输出周期为2S的方波,T1口为脉冲输入端,记录输入的脉冲个数,脉冲个数由P1口所接的8个数码管显示,设一按键作为开关控制系统运行。
LJMPT0
ORG0013H
LJMPINT1;
p3.2就是INT0口,要用P3.2输出方波
ORG001BH;
所以开关用INT1中断
LJMPT1
ORG0100H
MOVTMOD,#51H;
t1计数t0定时,都是方式1
MOVTL0,#0B0H;
T0给0.1S的初值
MOVR1,#0AH
MOVTH1,#0FFH
MOVTL1,#00H
SETBIT1
SETBET1
CLRTR1
CLRP3.2
JBTR0,L1
SETBTR1;
启动系统
L1:
CLRTR0
MOVP1,TL1;
务必不要丢,第二次按开关让灯灭重新计数
MOVTH0,#3CH;
一旦中断,务必重写初值
DJNZR1,L2
CPLP3.2
来一个下降沿TL1加1,把TL1的数给P1口的LED灯
RETI
T1:
MOVTH1,#0FFH;
t1重头计数
实验七交通灯控制(3学时)
十字路口东西方向和南北方向各有红、绿、黄灯,要求:
P1.0
P1.1
东西
南北
红
绿
黄
手
动
1
闪(0.5Hz)
亮
自
5S后灭
4S后灭
4S后亮
1S后灭
AJMPMAIN
ORG000BH
AJMPT0
MOVP1,#03H
MOVR3,#10
MOVR4,#40
MOVR5,#40
MOVR6,#10
MOVR7,#10
SETBP1.0
SETBP1.1
JBP1.0,X1;
每100ms判断一次情况
JNBP1.0,X2
X1:
JBP1.1,ZHI11
JNBP1.1,ZHI01
X2:
JBP1.1,ZHI10
JNBP1.1,ZHI00
ZHI11:
MOVTH0,#3CH;
黄灯闪烁
CJNER6,#00H,LOOP1
MOVP1,#01001011B;
亮一秒
DJNZR7,GORET1
MOVR6,#0AH
GORETI:
LOOP1:
MOVP1,#00000011B;
灭一秒
DJNZR6,GORET1
MOVR7,#0AH
GORET1:
ZHI00:
MOVTH0,#3CH;
红灯一直亮
MOVP1,#10010000B
ZHI01:
JBP1.4,ZD11
MOVTH0,#3CH;
自动情况
CJNER4,#00H,LOOP2
MOVP1,#10001001B;
黄灯亮1秒,红灯1秒
DJNZR2,GORET2
LJMPZD11
LOOP2:
MOVP1,#10000101B;
红灯亮4秒,绿灯亮4秒
DJNZR4,GORET2
GORET2:
ZD11:
自动情况11
CJNER4,#00H,LOOP5
MOVP1,#01010001B;
黄灯亮1秒,红灯1秒
DJNZR2,GORET3
MOVP1,#10000110B
AJMPZHI01
LOOP5:
MOVP1,#00110001B;
绿灯亮4秒,红灯亮4秒
DJNZR4,GORET3
GORET3:
ZHI10:
JBP1.7,ZD21
自动情况2
CJNER5,#00H,LOOP3
MOVP1,#01010010B;
黄灯亮1秒
DJNZR3,GORET4
AJMPZD21
LOOP3:
MOVP1,#00110010B;
绿灯亮4秒,红灯亮5秒
DJNZR5,GORET4
GORET4:
ZD21:
CJNER5,#00H,LOOP6
MOVP1,#10001010B;
黄灯亮1秒,红灯亮1秒
DJNZR3,GORET5
MOVP1,#00110010B
AJMPZHI10
LOOP6:
MOVP1,#10000110B;
红灯亮4秒,绿灯亮4秒
DJNZR5,GORET5
GORET5:
实验八串行通信(3学时)
主机:
每隔1秒读一次P1口并将读数发给从机,同时接收从机的信号,若与所发数相同,则P3.2的灯亮,若不同或不回答则P3.3的灯亮。
从机:
将接收的数据从P1口推出,并回发此数据
波特率自定,编写主机程序和从机程序。
主机
LJMPAMAIN
LJMPTIME0
AMAIN:
MOVP1,#0FFH
MOVTMOD,#21H
MOVTL0,#3CH
MOVTH0,#0B0H
MOVTL1,#0FAH
MOVTH1,#0FAH
SETBET0
CLRES
SETBTR1
MOVPCON,#00H
MOVR7,#0AH
MOVSCON,#50H
SETBTR0
SJMP$
TIME0:
MOVTH0,#3CH
DJNZR7,AA
LJMPATT;
定时1S后跳到发送数据部分
AA:
ATT:
CLRTR0;
关定时器
;
MOVA,P1
MOVSBUF,P1
AWAIT:
JBCTI,ARR
SJMPAWAIT
ARR:
JBCRI,LP2;
等待接收从机信号
SETBp3.3
CLRp3.2
SJMPARR
LP2:
MOVA,SBUF;
接收回发信号
XRLA,P1
JZLP3
JNZLP4
LP3:
SETBP3.2;
相同则P3.2灯亮
CLRP3.3
LJMPGORETI2
LP4:
SETBP3.3
GORETI2:
SETBTR0;
开定时器
LJMPSTART
START:
MOVTMOD,#20H;
只用定时器1作波特率发生器
MOVTL1,#0FAH
CLRES
SETBTR1
MOVPCON,#00H
MOVSCON,#50H
LOP:
JBCRI,RSINT
RSINT:
MOVA,SBUF
MOVSBUF,A
LOP1:
JBCTI,LOP
SJMPLOP1
实验九定时、计数、显示(3学时)
设计一个带有控制功能的脉冲发生器/计数器系统,脉冲发生器发出周期为2秒的方波(提示:
可由P1.0口输出,用发光二极管显示);
被计数脉冲由T0口输入,所记录的脉冲数以十进制形式在数码管显示(至少应可记录256个脉冲);
设两个按键,一个启动脉冲发生器,一个启动记数,(按一次启动,再按一次停止),不启动时,发光管灭,数码管显示学号。
启东实验箱:
字位口地址:
FFDDH,从左至右的选通位地址为:
20H10H08H04H02H01H
字型口地址:
FFDCH
伟福实验箱:
X002(如若接CS0则为8002H)
X004(如若接CS0则为8004H),高亮
AJMPINT0
AJMPINT1
ORG001BH
AJMPT1
MOVTMOD,#16H;
T0计数,T1计时
MOVTH0,#00H
MOVTL0,#00H
MOVTH1,#0EFH
MOVTL1,#0CH
SETBPX0
CLRP3.1
CLRP1.0
MOVR7,#100
JBP3.1,AA;
脉冲开关
SETBP3.1;
用3.1口作为判断标志
SETBTR1
AA:
CLRP3.1
ORG0150H
JBTR0,BB;
计数开关
MOVTH0,#00H;
开始计数
BB:
CLRTR0;
关闭计数器显示学号
MOVTH1,#0EFH
JX:
JNBTR0,XH1
DY:
ACALLH_BCD
ACALLJISHU
ACALLDISP
JNBP3.1,DY
CPLP1.0;
用3.0作为脉冲发生器
H_BCD:
MOVA,TL0
MOVB,#100
DIVAB
MOV32H,A
MOVA,#10
XCHA,B
MOV31H,A
MOV30H,B
RET
JISHU:
MOVR2,#3;
R2计数,让后三个数码管都显示
FT:
MOVA,@R0;
将所计数转换成数码管显示形式
MOVDPTR,#TAB
MOV@R0,A
DJNZR2,FT
DISP:
MOVDPTR,#8002H
MOVA,#01H
MOVDPTR,#8004H
MOVA,30H
ACALLDLAY
MOVDPTR,#8002H
MOVA,#02H
MOVA,31H
MOVA,#04H
MOVA,32H
XH1:
MOVA,#3FH
XH2:
MOVA,#6DH
XH3:
MOVA,#7DH
XH4:
MOVA,#08H
MOVA,#5BH
XH5:
MOVA,#10H
XH6:
MOVA,#20H
MOVA,#06H
DJNZR7,GORET2
JNBP3.1,XH1
DLAY:
MOVR6,#1000;
延时子程序
DJNZR6,$
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验