单片机实验指导书.docx
- 文档编号:10761214
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:24
- 大小:206.59KB
单片机实验指导书.docx
《单片机实验指导书.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书.docx(24页珍藏版)》请在冰豆网上搜索。
单片机实验指导书
实验一 数据排序实验
1,实验目的:
熟悉51指令系统,掌握程序设计方法。
2,实验内容:
编写并调试一个排序子程序,其功能为用冒泡法将内存RAM中几个单字节无符号的正整数,按从小到大的次序重新排列。
3,程序框图:
4,实验步骤:
将RAM50H~5AH中放入不等的数据,用断点方法运行本实验程序后检查50H~5AH中的内容是否按从小到大的次序排列。
5,思考:
修改程序把50H~5AH中内容从大到小排列。
6,程序清单:
ORG0000H
LJMPQUE
ORG09B0H
QUE:
MOVR3,#50H
QUE1:
MOVA,R3;指针送R0
MOVR0,A
MOVR7,#0AH;长度送R7
CLR00H;清标志位
MOVA,@R0
QL2:
INCR0
MOVR2,A
CLRC
MOV22H,@R0
CJNEA,22H,QL3;相等吗?
SETBC
QL3:
MOVA,R2
JCQL1;大于交换位置
SETB00H
XCHA,@R0
DECR0
XCHA,@R0
INCR0;大于交换位置
QL1:
MOVA,@R0
DJNZR7,QL2
JB00H,QUE1;一次循环中有交换继续
LOOP:
SJMPLOOP;无交换退出
END
硬件实验
硬件实验可使学生能进一步掌握单片机系统扩展和输入输出程序的设计方法,熟悉对扩展系统的软件、硬件设计,调试方法和技巧。
实验二P1口转弯灯实验
1,实验目的:
进一步了解P1口的使用,学习汇编语言编程方法及调试技巧。
2,实验内容:
P1.0接开关5V,右转弯灯闪亮,P1.1接开关5V时左转弯灯闪亮,P1.0,P1.1同时接5V或接地时,转弯灯均不闪亮。
3,实验程序框图:
4,实验接线图:
5,实验步骤:
P1.0接K1,P1.1接K2,P1.4~P1.7接L1、L4、L7、L10,连续运行本程序,应看到转弯灯正确闪亮,在用单步方式调试本程序时需修改延时子程序,(例可把延时程序第一个字节改成返回指令22H),以便观察。
6,程序清单:
ORG0000H
LJMPPX00
ORG0C30H
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
实验三工业顺序控制
1,实验目的:
掌握工业顺序控制程序的简单编程,中断的使用。
2,实验预备知识:
在工业控制中,象冲压、注塑、轻纺、制瓶等生产过程,都是一些连续生产过程,按某种顺序有规律地完成预定的动作,对这类连续生产过程的控制称顺序控制,象注塑机工艺过程大致按“合模→注射→延时→开模→产伸→产退”顺序动作,用单片机最易实现。
3,实验内容:
由P1.0~1.6控制注塑机的七道工序,模拟控制七只发光二极管的点亮,低电平有效,设定每道工序时间转换为延时时间,P3.4为开工启动开关,高电平启动。
P3.3为外部故障输入模拟开关,低电平报警,P1.7为报警声音输出,设定第6道工序只有一位输出,第七道工序三位有输出。
4,实验程序框图:
5,实验接线图:
6,实验步骤:
JP向下短接,按图接好连线。
执行程序,把K1接到低电平,观察发光二极管点亮情况,确定工序执行是否正常,然后把K2置为低电平,看是否有声音报警,恢复中断1.报警停,又从刚才报警时一道程序执行下去。
可用单步、单步跟踪,非全速断点、全速断点,连续执行功能调试软件,直到符合自己程序设计要求为止。
7,思考:
修改程序,使每道工序中有多位输出。
8,程序清单:
ORG0000H
LJMPPO10
ORG0013H
LJMPPO16
ORG0190H
PO10:
MOVP1,#7FH
ORLP3,#00H
PO11:
JNBP3.4,PO11;开工吗?
ORLIE,#84H
ORLIP,#04H
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
PO19:
MOVR2,#10H
ACALLDELY;延时1
RET
PO1A:
MOVR2,#06H
ACALLDELY;延时2
RET
PO1B:
MOVR2,#30H
ACALLDELY;延时3
RET
DELY:
PUSH02H
DEL2:
PUSH02H
DEL3:
PUSH02H;延时
DEL4:
DJNZR2,DEL4
POP02H
DJNZR2,DEL3
POP02H
DJNZR2,DEL2
POP02H
DJNZR2,DELY
RET
END
实验四 8255控制交通灯
1,实验目的:
进一步了解8255芯片的使用方法,学习模拟交通灯控制的实现方法。
2,实验内容:
用8255做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。
3,实验程序框图:
4,实验接线图:
5,实验步骤:
8255PA7~PA0接发光二极管L5~L12,PB3~PB0接发光二极管L1~L4。
执行程序,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,再切换到东西路口方向,之后重复以上过程。
6,程序清单:
ORG0000H
LJMPJOD0
ORG0BB0H
JOD0:
MOVSP,#60H
MOVDPTR,#0FF2BH
MOVA,#88H
MOVX@DPTR,A;8255初始化
MOVDPTR,#0FF28H
MOVA,#0B6H
MOVX@DPTR,A
INCDPTR
MOVA,#0DH
MOVX@DPTR,A;点亮4个红灯
MOVR2,#25H;延时
LCALLDELY
JOD3:
MOVDPTR,#0FF28H
MOVA,#75H
MOVX@DPTR,A
INCDPTR
MOVA,#0DH
MOVX@DPTR,A;东西绿灯亮,南北红灯亮
MOVR2,#55H
LCALLDELY;延时
MOVR7,#05H;闪烁次数
JOD1:
MOVDPTR,#0FF28H
MOVA,#0F3H
MOVX@DPTR,A
INCDPTR
MOVA,#0CH
MOVX@DPTR,A;东西黄灯亮,南北红灯亮
MOVR2,#20H
LCALLDELY;延时
MOVDPTR,#0FF28H
MOVA,#0F7H
MOVX@DPTR,A
INCDPTR
MOVA,#0DH
MOVX@DPTR,A;南北红灯亮
MOVR2,#20H
LCALLDELY;延时
DJNZR7,JOD1;闪烁次数未到继续
MOVDPTR,#0FF28H
MOVA,#0AEH
MOVX@DPTR,A
INCDPTR
MOVA,#0BH
MOVX@DPTR,A;东西红灯亮,南北绿灯亮
MOVR2,#55H
LCALLDELY;延时
MOVR7,#05H;闪烁次数
JOD2:
MOVDPTR,#0FF28H
MOVA,#9EH
MOVX@DPTR,A
INCDPTR
MOVA,#07H
MOVX@DPTR,A;东西红灯亮,南北黄灯亮
MOVR2,#20H
LCALLDELY;延时
MOVDPTR,#0FF28H
MOVA,#0BEH
MOVX@DPTR,A
INCDPTR
MOVA,#0FH
MOVX@DPTR,A;东西红灯亮
MOVR2,#20H
LCALLDELY;延时
DJNZR7,JOD2;闪烁次数未到继续
LJMPJOD3;循环
ORG0C30H
DELY:
PUSH02H
DEL2:
PUSH02H
DEL3:
PUSH02H;延时
DEL4:
DJNZR2,DEL4
POP02H
DJNZR2,DEL3
POP02H
DJNZR2,DEL2
POP02H
DJNZR2,DELY
RET
END
实验五 A/D转换实验
1,实验目的:
(1)掌握A/D转换与单片机接口的方法;
(2)了解A/D芯片0809转换性能及编程方法;
(3)通过实验了解单片机如何进行数据采集。
2,实验内容:
利用实验系统上的0809做A/D转换器,实验系统上的电位器提供模拟量输入,编制程序,将模拟量转换成数字,通过数码管显示出来。
3,实验接线图:
4,实验程序框图:
5,实验步骤:
把0809的零通道IN0用插针接至AOUT1孔,CS4接FF80H,JX0接JX17,8MHZ接T,运行程序,数码管上显示0809XX,,后二位显示当前采集的电压转换的数字量,调节W1,该二位将随着电压变化而相应变化。
6,思考:
修改程序,用其它通道轮流采样显示。
7,程序清单:
ORG0000H
LJMPSE11
ORG0590H
SE11:
MOVSP,#53H
movp2,#0ffh
MOVA,#81H
MOVDPTR,#0FF23H
MOVX@DPTR,A
MOV7EH,#00H
MOV7DH,#08H
MOV7CH,#00H
MOV7BH,#09H
MOV7AH,#10H
MOV79H,#10H;显示缓冲区初值
LO18:
LCALLSSEE;显示
MOVA,#00H
MOVDPTR,#0FF80H
MOVX@DPTR,A;0809的0通道采样
MOVR7,#0FFH;延时
LO17:
DJNZR7,LO17
MOVXA,@DPTR;取出采样值
MOVR0,#79H
LCALLPTDS
SJMPLO18;采样值送显示缓冲区
ORG05D0H
PTDS:
MOVR1,A;拆送显示缓冲区
ACALLPTDS1
MOVA,R1
SWAPA
PTDS1:
ANLA,#0FH
MOV@R0,A
INCR0
RET
ORG0D50H
SSEE:
SETBRS1;换工作区
MOVR5,#05H
SSE2:
MOV30H,#20H
MOV31H,#7EH
MOVR7,#06H
SSE1:
MOVR1,#20H
MOVA,30H
CPLA
MOVX@R1,A;字位送入
MOVR0,31H
MOVA,@R0
MOVDPTR,#DDFF
MOVCA,@A+DPTR;取字形代码
MOVR1,#21H
MOVX@R1,A;字形送入
MOVA,30H
RRA;右移
MOV30H,A
DEC31H
MOVA,#0FFH
MOVX@R1,A;关显示
DJNZR7,SSE1;六位显示完了吗?
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
END
实验六 8279键盘显示实验
1,实验目的:
掌握8051系统中,扩展8279键盘显示接口的方法。
2,实验内容:
按下数字键,数码管上应相应能显示数字,按下功能键,能相应执行其它程序。
3,实验接线图
4,实验程序框图:
5,实验步骤:
把CS6孔用插针连至FF80H,JSL接JS,JRL接JR,JOUT接JLED,开关JK置外接(实验完后置系统),连PC机操作,运行程序,数码管上显示P,按下数字键,数码管上应能显示相应数字,按下功能键,数码管上显示相应的0字、l字、2字循环。
6,思考:
修改程序,高四位数码管显示数字当地址看待,按功能键1后,按下的数字只显示在后二位上,当数据看待,功能键2和功能键3当地址加一和减一键使用。
7,程序清单:
ORG0000H
LJMPH900
ORG00D0H
H900:
MOVSP,#80H
MOVDPTR,#0FF81H
MOVA,#00H;
MOVX@DPTR,A;8279方式字写入
MOVA,#32H
MOVX@DPTR,A;分频
MOVA,#0DFH
MOVX@DPTR,A
H901:
MOVXA,@DPTR;清缓冲区
JBACC.7,H901
mova,#85h
movx@dptr,a
MOVDPTR,#0FF80H
MOVA,#0c8H
MOVX@DPTR,A;字形送入
INCDPTR
MOVA,#85H
MOVX@DPTR,A;字位送入,显示P
H902:
MOV30H,#85H
MOV31H,#40H
H903:
MOVDPTR,#0FF81H
MOVXA,@DPTR
ANLA,#07H
CJNEA,#00H,H904;有键按下吗?
AJMPH903
H904:
MOVDPTR,#0FF80H
MOVXA,@DPTR
MOVB,A;取出键值
MOVR1,#00H
MOVDPTR,#GOJZ
H905:
MOVA,#00H
MOVCA,@A+DPTR;查键值表是否相同
CJNEA,B,H906
AJMPH907;转数字外处理程序
H906:
INCDPTR;键青址数加1
INCR1;查找次数加1
MOVA,R1
JBACC.4,H908;是功能键吗?
AJMPH905;继续查找
H908:
MOVR1,#00H
MOVDPTR,#GOJZ1
H909:
MOVA,#00H
MOVCA,@A+DPTR;功能键键值取出
CJNEA,B,H90A;键值相等吗?
AJMPH90B;转功能键处理子程序
H90A:
INCDPTR
INCR1
MOVA,R1
JNBACC.2,H909;继续查找
AJMPH900;无键按下返回
H907:
MOVA,30H
MOVDPTR,#0FF81H;字位送入8279
MOVX@DPTR,A
MOVA,R1
MOVR0,31H
MOV@R0,A
INC31H;字形缓冲区加1
MOVDPTR,#ZOE0
MOVCA,@A+DPTR;取出字形代码
MOVDPTR,#0FF80H
MOVX@DPTR,A;送入8279显示
DEC30H;字位加1
MOVA,30H
CJNEA,#7fH,H90C;显示到第8位,从头显示
AJMPH902
H90C:
AJMPH903
H90B:
MOVDPTR,#CKEY3;功能键散转处理
MOVA,R1
RLA
ADDA,R1
JMP@A+DPTR
CKEY3:
LJMPL240
LJMPL241
LJMPL242
LJMPH900
GOJZ:
DB0C9H,0C1H,0D1H,0E1H,0C8H,0D8H,0E8H,0C0H,0D0H
DB0E0H,0F0H,0F8H,0F1H,0F9H,0E9H,0D9H
GOJZ1:
DB0F2H,0FAH,0F3H,0FBH
ZOE0:
DB0CH,9FH,4AH,0BH,99H,29H,28H,8FH,08H,09H,88H
DB38H,6CH,1AH,68H,0E8H
;ORG0E41H
L240:
MOVR5,#0CH
LJMPL245;0字循环
L241:
MOVR5,#9FH
LJMPL245;1字循环
L242:
MOVR5,#4AH
L245:
MOVR6,#80H;2字循环
L246:
MOVA,R6
MOVDPTR,#0FF81H
MOVX@DPTR,A;字位送入8279
MOVA,R5
MOVDPTR,#0FF80H
MOVX@DPTR,A;字形送入8279
MOVR2,#20H
LCALLDELY;延时
MOVA,#0FFH
MOVX@DPTR,A;关显示
INCR6;下一位显示
CJNER6,#88H,L246
AJMPL245;不到最后一位继续
RET
DELY:
PUSH02H
DEL2:
PUSH02H
DEL3:
PUSH02H
DEL4:
DJNZR2,DEL4
POP02H
DJNZR2,DEL3
POP02H
DJNZR2,DEL2
POP02H
DJNZR2,DELY
RET
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 指导书