单片机实验文档.docx
- 文档编号:7064935
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:19
- 大小:377.75KB
单片机实验文档.docx
《单片机实验文档.docx》由会员分享,可在线阅读,更多相关《单片机实验文档.docx(19页珍藏版)》请在冰豆网上搜索。
单片机实验文档
实验一清零程序
一、实验目的 掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容 把2000H~20FFH的内容清零
三、程序框图
四、实验步骤
以0640H为起始地址用连续或单步方式运行程序,检查2000H~20FFH中执行程序前后的内容变化。
五、思考 假使把2000H~20FFH中的内容改成FFh,如何修改程序。
六、参考程序
ORG0640H
SE01:
MOVR0,#00H
MOVDPTR,#2000H;(2000H)送DPTR
MOVA,#00H
LOO1:
MOVX@DPTR,A;0送(DPTR)
INCDPTR;DPTR+1
INCR0;字节数加1
CJNER0,#FFH,LOO1;不到FF个字节再清
SJMP$
END
实验二P1口转弯灯实验
一、实验目的 进一步了解P1口的使用,学习汇编语言编程方法与调试技巧。
二、实验内容 P1.0开关接5V时,右转弯灯闪亮,P1.1开关接5V时左转弯灯闪亮,P1.0、P1.1开关同时接5V或接地时,转弯灯均不闪亮。
三、程序框图
四、实验步骤
P1.0接K1P1.1接K2P1.4~P1.7接L1L5L9L13连续运行本程序,应看到转弯灯正确闪亮,在用单步方式调试本程序时需修改延时子程序(例可把延时程序第一个字节改成返回指令22H),以便观察。
五、实验电路
六、参考程序
ORG0640H
SE01:
MOVR0,#00H
MOVDPTR,#2000H;(2000H)送DPTR
LOO1:
MOVX@DPTR,A;0送(DPTR)
INCDPTR;DPTR+1
INCR0;字节数加1
CJNER0,#00H,LOO1;不到FF个字节再清
SJMP$
ENDORG0C30H
PX00:
MOVP1,#0FFH;初始化
PX03:
MOVA,P1
MOVB,A
ANLA,#03H
CJNEA,#01H,PX01;满足只是P1.0为高条件吗?
JB00H,PX04;闪烁标志位
CLRP1.4
CLRP1.5;开右灯
SETBP1.6
SETBP1.7;关左灯
MOVR2,#20H
LCALLDELY;延时
SETB00H;置标志位
LJMPPX03;继续查状态
PX04:
SETBP1.4
SETBP1.5
SETBP1.6;关灯
SETBP1.7
MOVR2,#20H
LCALLDELY;延时
CLR00H;清标志位
AJMPPX03;继续查状态
PX01:
CJNEA,#02H,PX02;满足只是P1.1为高条件吗?
JB01H,PX05;判标志位
SETBP1.4
SETBP1.5;开左灯
CLRP1.6
CLRP1.7;关右灯
MOVR2,#20H;延时
LCALLDELY
SETB01H;置标志位
LJMPPX03;继续查状态
PX05:
SETBP1.4
SETBP1.5
SETBP1.6;关灯
SETBP1.7
MOVR2,#20H
LCALLDELY;延时
CLR01H;清标志位
LJMPPX03;继续查状态
PX02:
SETBP1.4
SETBP1.5
SETBP1.6;关灯
SETBP1.7
LJMPPX03;继续
;---------------------------------------------
DELY:
PUSH02H
DEL2:
PUSH02H
DEL3:
PUSH02H;延时
DEL4:
DJNZR2,DEL4
POP02H
DJNZR2,DEL3
POP02H
DJNZR2,DEL2
POP02H
DJNZR2,DELY
RET
;--------------------------------------------
END
实验三工业顺序控制(中断控制)
一、实验目的 掌握工业顺序控制程序的简单编程:
中断的使用。
二、实验预备知识
在工业控制中,象冲压、注塑、轻纺、制瓶等生产过程,都是一些继续生产过程,按某种顺序有规律地完成预定的动作,对这类继续生产过程的控制称顺序控制,倒注塑机工艺过程大致按“合模→注射→延时→开模→产伸→产退”顺序动作,用单片机最易实现。
三、实验内容 8032P1.0~P1.6控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,低电平有效,设定每道工序时间转换为延时,P3.4为开工启动开关,高电平启动。
P3.3为外部故障输入模拟开关,低电平报警,P1.7为报警声音输出,设定6道工序只有一位输出,第七道工序三位有输出。
四、程序框图
四、实验步骤
①P3.4连K1,P3.3连K2,P1.0~P1.6分别连到L1~L7,P1.7连SIN(电子音响输入端)。
②K1、K2开关拨在高电平“H”位置。
③用连续方式从起始地址0580H开始运行程序,此时应在等待开工状态。
④K1拨至低电平“L”位置,各道工序应正常运行。
⑤K2拨至低电平“L”位置,应有声音报警(人为设置故障)。
⑥K2拨至高电平“H”位置,即排除故障,程序应从报警的那道工序继续执行。
五、实验电路
五、思考 修改程序,使每道工序中有多位输出。
六、参考程序
ORG0000H
LJMPPO10
ORG0013H
LJMPPO16
;----------------------------
ORG0190H
PO10:
MOVP1,#7FH
ORLP3,#00H
PO11:
JNBP3.4,PO11;开工吗?
ORLIE,#84H
ORLIP,#01H
MOVPSW,#00H;初始化
MOVSP,#53H
PO12:
MOVP1,#7EH;第一道工序
ACALLPO1B
MOVP1,#7DH;第二道工序
ACALLPO1B
MOVP1,#7BH;第三道工序
ACALLPO1B
MOVP1,#77H;第四道工序
ACALLPO1B
MOVP1,#6FH;第五道工序
ACALLPO1B
MOVP1,#5FH;第六道工序
ACALLPO1B
MOVP1,#0FH;第七道工序
ACALLPO1B
SJMPPO12
;----------------------------
PO16:
MOVB,R2;保护现场
PO17:
MOVP1,#7FH;关输出
MOV20H,#0A0H;振荡次数
PO18:
SETBP1.7;振荡
ACALLPO1A;延时
CLRP1.7;停振
ACALLPO1A;延时
DJNZ20H,PO18;不为0转
CLRP1.7
ACALLPO1A;停振
JNBP3.3,PO17;故障消除吗?
MOVR2,B;恢复现场
RETI
PO1A:
MOVR2,#06H
ACALLDELY;延时
RET
PO1B:
MOVR2,#30H
ACALLDELY;延时
RET
;----------------------------
DELY:
PUSH02H
DEL2:
PUSH02H
DEL3:
PUSH02H;延时
DEL4:
DJNZR2,DEL4
POP02H
DJNZR2,DEL3
POP02H
DJNZR2,DEL2
POP02H
DJNZR2,DELY
RET
END
实验四电脑时钟(定时器、中断综合实验)
一、实验目的 熟悉MCS-51定时器,串行口和中断初始化编程方法,了解定时器的应用实时程序的设计与调试技巧。
二、实验内容 编写程序,从本实验系统键盘上输入时间初值,用定时器产生0.1S定时中断,对时钟计数器计数,并将数值实时地送数码管显示。
三、程序框图
四、实验步骤
以0030H为起始地址连续运行程序,在键盘上输入时间初值,按执行键EXEC执行,数码管上实时显示时间值。
五、思考 ⑴电子钟走时精度和程序中那些常数有关?
⑵修改程序使定时器工作方式改变,调节有关参数,进一步提高精度。
六、参考程序
ORG0000H
SJMPCHK00
ORG000BH
LJMPCLOCK;INT_T0
ORG0030H
CHK00:
MOVSP,#60H
LCALLLEDP
CHK0:
LCALLLCK0;键扫,显示子程序
LCALLPTDS0;显示缓冲区放数子程序
MOVTMOD,#01H
ORLIE,#82H
MOVTL0,#0B7H
MOVTH0,#3CH;定时中断初始化
MOV23H,#00H
SETBTR0;开定时
LOO5:
LCALLDIS;SSEE;显示
LCALLPTDS0
SJMPLOO5
PTDS0:
MOVR0,#79H
MOVA,22H
ACALLPTDS
MOVA,21H
ACALLPTDS
MOVA,20H
ACALLPTDS
RET
;---------------------------------------
PTDS:
MOVR1,A;拆送显示缓冲区
ACALLPTDS1
MOVA,R1
SWAPA
PTDS1:
ANLA,#0FH
MOV@R0,A
INCR0
RET
;---------------------------------------
CLOCK:
MOVTL0,#0B7H
MOVTH0,#3CH;恢复初值
PUSHPSW
PUSHACC
SETB0D3H;保护
INC23H;0.1秒加1
MOVA,23H
CJNEA,#0AH,DONE;1秒到吗?
MOV23H,#00H;清0.1秒单元
MOVA,22H
INCA;秒加1
DAA
MOV22H,A;十进制调整
CJNEA,#60H,DONE;60秒到吗?
MOV22H,#00H;秒单元清零
MOVA,21H
INCA
DAA;分加1.十进制调整
MOV21H,A
CJNEA,#60H,DONE;60分到吗?
MOV21H,#00H;分单元清零
MOVA,20H
INCA
DAA;时加1.十进制调整
MOV20H,A
CJNEA,#24H,DONE;24小时到吗?
MOV20H,#00H;时单元清零
DONE:
POPACC;退栈
POPPSW
RETI
;----------------------------------------------
SSEE:
SETBRS1;换工作区
MOVR5,#05H
SSE2:
MOV30H,#20H
MOV31H,#7EH
MOVR7,#06H
SSE1:
MOVR1,#0DDH
MOVA,30H
MOVX@R1,A;字位送入
MOVR0,31H
MOVA,@R0
MOVDPTR,#DDFF
MOVCA,@A+DPTR;取字形代码
MOVR1,#0DCH
MOVX@R1,A;字形送入
MOVA,30H;右移
RRA
MOV30H,A
DEC31H
MOVA,#0FFH
MOVX@R1,A;关显示
DJNZR7,SSE1;6位显示完了吗?
DJNZR5,SSE2;5次显示完了吗?
CLRRS1
RET
;-------------------------------------------------------
DDFF:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH
;-------------------------------------------------------
X3:
MOVR4,A
MOVR0,#50H
MOVA,@R0
MOVR1,A
MOVA,R4
MOV@R1,A
CLRA
POPDPH
POPDPL
MOVCA,@A+DPTR
INCDPTR
CJNEA,01H,X30
decr1
clra
MOVCA,@A+DPTR
X31:
MOV@R0,A
INCDPTR
PUSHDPL
PUSHDPH
RET
X30:
DECR1
MOVA,R1
SJMPX31
;--------------------------
X2:
MOVR6,#50H
X0:
ACALLXLE
JNBACC.5,XX0
DJNZR6,X0
MOVR6,#20H
MOVR0,#50H
MOVA,@R0
MOVR0,A
MOVA,@R0
MOVR7,A
MOVA,#10H
MOV@R0,A
X1:
ACALLXLE
JNBACC.5,XX1
DJNZR6,X1
MOVA,R7
MOV@R0,A
SJMPX2
XX1:
MOVR6,A
MOVA,R7
MOV@R0,A
MOVA,R6
XX0:
RET
;----------------------------
XLE:
ACALLDIS
ACALLKEY
MOVR4,A
MOVR1,#48H
MOVA,@R1
MOVR2,A
INCR1
MOVA,@R1
MOVR3,A
MOVA,R4
XRLA,R3
MOVR3,04H
MOVR4,02H
JZX10
MOVR2,#88H
MOVR4,#88H
X10:
DECR4
MOVA,R4
XRLA,#82H
JZX11
MOVA,R4
XRLA,#0EH
JZX11
MOVA,R4
JZX12
MOVR4,#20H
DECR2
SJMPX13
X12:
MOVR4,#0FH
X11:
MOVR2,04H
NOP
NOP
MOVR4,03H
X13:
MOVR1,#48H
MOVA,R2
MOV@R1,A
INCR1
MOVA,R3
MOV@R1,A
MOVA,R4
JBACC.5,X113
JBACC.4,X113
MOVDPTR,#LS3
MOVCA,@A+DPTR
X113:
RET
;---------------------------------
LS3:
DB07H,04H,08H,05H,09H,06H,0AH
DB0BH,01H,00H,02H,0FH,03H,0EH
DB0CH,0DH
;-----------------------------------
DIS:
PUSHDPH
PUSHDPL
SETBRS1
MOVR0,#7EH
MOVR2,#20H
MOVR3,#00H
MOVDPTR,#LS0
LS2:
MOVA,@R0
MOVCA,@A+DPTR
MOVR1,#0DCH
MOVX@R1,A
MOVA,R2
incR1
MOVX@R1,A
LS1:
DJNZR3,LS1
CLRC
RRCA
MOVR2,A
DECR0
JNZLS2
movx@r0,a
decr0
cpla
movx@r0,a
CLRRS1
POPDPL
POPDPH
RET
;---------------------------------------------
LS0:
DB0C0H,0F9H,0A4H,0B0H,99H,92H
DB82H,0F8H,80H,90H,88H,83H,0C6H
DB0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH
;---------------------------------------------
KEY:
SETBRS1
MOVR2,#0FEH
MOVR3,#08H
MOVR0,#00H
LP1:
MOVR1,#0DDH
MOVA,R2
MOVX@R1,A
RLA
MOVR2,A
incr1
MOVXA,@R1
CPLA
ANLA,#0FH
JNZLP0
INCR0
DJNZR3,LP1
XP33:
MOVA,#20H
XP3:
movr2,a
clra
movr1,#0ddh
movx@r1,a
mova,r2
CLRRS1
RET
;----------------------------
LP0:
CPLA
JBACC.0,XP0
MOVA,#00H
SJMPLPP
XP0:
JBACC.1,XP1
MOVA,#08H
SJMPLPP
XP1:
JBACC.2,XP2
MOVA,#10H
SJMPLPP
XP2:
JBACC.3,XP33
MOVA,#18H
LPP:
ADDA,R0
sjmpxp3
;--------------------------------
LEDP:
MOV50H,#7EH
MOVA,#10H
MOVR0,#79H
LEDS:
MOV@R0,A
INCR0
CJNER0,#7EH,LEDS
INCA
MOV@R0,A
RET
;--------------------------------
LCK0:
LCALLX2
JBACC.4,LDFC
LCALLX3
DB79H,7EH
SJMPLCK0
LDFC:
CJNEA,#16H,LCK0
MOVA,7AH
SWAPA
ORLA,79H
MOV22H,A
CJNEA,#60H,LE09
LE09:
JNCLE24
MOVA,7CH
SWAPA
ORLA,7BH
MOV21H,A
CJNEA,#60H,LE15
LE15:
JNCLE24
MOVA,7EH
SWAPA
ORLA,7DH
MOV20H,A
CJNEA,#24H,LE21
LE21:
JNCLE24
RET
;---------------------------------
LE24:
CLR8CH
LJMPCHK00
DELYA:
PUSH02H
DELYB:
PUSH02H
DELYC:
PUSH02H
DELYD:
DJNZR2,DELYD
LCALLSSEE;调显示子程序
POP02H
DJNZR2,DELYC
POP02H
DJNZR2,DELYB
POP02H
DJNZR2,DELYA;延时
RET
;--------------------------------
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 文档