单片机原理与应用设计张毅刚 彭喜元 著课后 基础实验文档格式.docx
- 文档编号:19145116
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:23
- 大小:584.43KB
单片机原理与应用设计张毅刚 彭喜元 著课后 基础实验文档格式.docx
《单片机原理与应用设计张毅刚 彭喜元 著课后 基础实验文档格式.docx》由会员分享,可在线阅读,更多相关《单片机原理与应用设计张毅刚 彭喜元 著课后 基础实验文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
0BLO42:
INCR3;
源地址加1
BDFF01CJNER5,#0FFH,LO43
OCINCR4
ODLO43:
INCR5;
目的地址加1
BF0006CJNER7,#00H,LO44
BE0006CJNER6,#00H,LO45;
字节数减1
80FESJMP$
00NOP
1FLO44:
DECR7
80E0SJMPSE22
1FLO45:
1EDECR6
80DCSJMPSE22;
未完继续
END
实验3数据排序实验
熟悉MCS-51指令系统,掌握数据排序程序的设计方法。
1.Dais-80958B微机实验开发系统一套
2.WD990微机专用电源一台
3.PC机一套
1.编写并调试一个排序程序,其功能为用冒泡法(参见单片机教材84页)将RAM中几个单字节无符号的正整数,按从小到大的次序重新排列。
程序框图如下:
结束
1.编写程序XXXXS3,满足程序要求,在CPU内部的RAM50H~5AH中放入不等的数据。
2.运行该程序后检查50H~5AH内容是否按从小到大排列,结果记录下表中:
RAM
状态
50
51
52
53
54
55
56
57
58
59
5A
运行前内容
运行后内容
六、思考题
修改程序S3,将50H~5AH中内容按从大到小排列,并且记录下程序运行前后的结果,分析是否正确。
七、参考程序
ORG0300H
7B50QUE:
MOVR3,#50H
EBQUE1:
MOVA,R3;
指针送R0
F8MOVR0,A
7F0AMOVR7,#0AH;
长度送R7
C200CLR00H;
标志位为0
E6MOVA,@R0
08QL2:
INCR0
FAMOVR2,A
C3CLRC
8622MOV22H,@R0;
取后数
B52201CJNEA,22H,QL3;
相等吗?
D3SETBC
EAQL3:
MOVA,R2
4006JCQL1;
大于则交换位置
D200SETB00H
C6XCHA,@R0
18DECR0
08INCR0;
E6QL1:
MOVA,@R0
DFEBDJNZR7,QL2
2000E1JB00H,QUE1;
一次循环中有交换继续
80FESJMP$;
无交换退出
END
实验4查找相同数个数
熟悉汇编语言编程
二、实验内容
在2000~200FH中查出有几个字节是零,把零的个数放在2100H中。
三、程序框图
N
四、实验步骤
在2000~200FH的几个单元中填入零,运行本程序后检查2100H单元中的数是否与2000~200FH中零的个数相同。
五、思考
在1000~100FH的几个单元中填入8H,检查8H的个数,并填入1100H单元中,如何来修改程序?
六、参考程序
ORG0AA0H
0AA07810L5800:
MOVR0,#10H;
查找16个字节
0AA27900MOVR1,#00H
0AA4902000MOVDPTR,#2000H
0AA7E0L5811:
MOVXA,@DPTR
0AA8B40001CJNEA,#00H,L5816;
取出内容与00H相等吗?
0AAB09INCR1;
取出个数加1
0AACA3L5816:
INCDPTR
0AADD8F8DJNZR0,L5811;
0AAF902100MOVDPTR,#2100H
0AB2E9MOVA,R1
0AB3F0MOVX@DPTR,A;
相同数个数送2100H
0AB480FEL581E:
SJMPL581E
END
实验5P1口转弯灯实验
进一步了解P1口的使用,学习汇编语言编程方法与调试技巧。
P1.0开关接5V时,右转弯灯闪亮,P1.1开关接5V时左转弯灯闪亮。
P1.0、P1.1开关同时接5V或接地时,转弯灯均不闪亮。
四、实验电路
P1.0接K1,P1.1接K2,P1.4~P1.7分别接L1、L5、L9、L13,连续运行本程序,应看到转弯灯正确闪亮,在用单步方式调试本程序时需修改延时子程序,(例如可把延时程序第一个字节改成返回指令22H),以便观察。
ORG0C30H
0C307590EFPX00:
MOVP1,#0FFH;
初始化
0C33E590PX03:
MOVA,P1
0C35F5F0MOVB,A
0C375403ANLA,#03H
0C39B40126CJNEA,#01H,PX01;
满足只是P1.0为高条件吗?
0C3C200012JB00H,PX04;
闪烁标志位
0C3FC294CLRP1.4
0C41C295CLRP1.5;
开右灯
0C43D296SETBP1.6
0C45D297SETBP1.7;
关左灯
0C477A20MOVR2,#20H
0C49120213LCALLDELY;
延时
0C4CD200SETB00H;
置标志位
0C4E020C33LJMPPX03;
继续查状态
0C51D294PX04:
SETBP1.4
0C53D295SETBP1.5
0C55D296SETBP1.6;
关灯
0C57D297SETBP1.7
0C597A20MOVR2,#20H
0C5B120213LCALLDELY;
0C5EC200CLR00H;
清标志位
0C608133AJMPPX03;
0C62B40227PX01:
CJNEA,#02H,PX02;
满足只是P1.1为高条件
;
吗?
0C65200112JB01H,PX05;
判标志位
0C68D294SETBP1.4
0C6AD295SETBP1.5;
开左灯
0C6CC296CLRP1.6
0C6EC297CLRP1.7;
关右灯
0C707A20MOVR2,#20H;
0C72120213LCALLDELY
0C75D201SETB01H;
0C77020C33LJMPPX03;
0C7AD294PX05:
0C7CD295SETBP1.5
0C7ED296SETBP1.6;
0C80D297SETBP1.7
0C827A20MOVR2,#20H
0C84120213LCALLDELY;
0C87C201CLR01H;
0C89020C33LJMPPX03;
0C8CD294PX02:
0C8ED295SETBP1.5
0C90D296SETBP1.6;
关灯
0C92D297SETBP1.7
0C94020C33LJMPPX03;
继续
ORG0213H
0213C002DELY:
PUSH02H
0215C002DEL2:
0217C002DEL3:
PUSH02H;
0219DAFEDEL4:
DJNZR2,DEL4
021BD002POP02H
021DDAF8DJNZR2,DEL3
021FD002POP02H
0221DAF2DJNZR2,DEL2
0223D002POP02H
0225DAECDJNZR2,DELY
022722RET
实验6工业顺序控制
掌握工业顺序控制程序的简单编程,中断的使用。
二、实验预备知识
在工业控制中,象冲压、注塑、轻纺、制瓶等生产过程,都是一些继续生产过程,按某种顺序有规律的完成预定的动作,对这类继续生产过程的控制称顺序控制,象注塑机工艺过程大致按“合模
注射
开模
产伸
产退”顺序动作,用单片机最易实现。
三、实验内容
8031的P1.0~P1.6控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,低电平有效,设定每道工序时间转换为延时,P3.4为开工启动开关,高电平动作。
P3.3为外部故障输入模拟开关,低电平报警,P1.7为报警声音输出,设定6道工序只有一位输出,第七道工序三位有输出。
四、程序框图
恢复现场
五、实验电路
六、实验步骤
按实验电路图接好连线。
执行程序,把K1接到高电平,观察发光二极管点亮情况,确定工序执行是否正常,然后把K2置为低电平,看是否有声音报警,恢复中断1,报警停,又从刚才报警时一道程序执行下去。
可以单步、单步跟踪,非全速断点、全速断点、连续执行功能调试软件,直到符合程序设计要求为止。
七、思考
修改程序,使每道工序中有多位输出。
ORG0190H
019075907FPO10:
MOVP1,#7FH
019343B000ORLP3,#00H
019630B4FDPO11:
JNBP3.4,PO11;
开工吗?
019943A884ORLIE,#84H
019C43B801ORLIP,#01H
019F75D000MOVPSW,#00H;
01A2758153MOVSP,#53H
01A575907EPO12:
MOVP1,#7EH;
第一道工序
01A831F1ACALLPO1B
01AA75907DMOVP1,#7DH;
第二道工序
01AD31F1ACALLPO1B
01AF75907BMOVP1,#7BH;
第三道工序
01B231F1ACALLPO1B
01B4759077MOVP1,#77H;
第四道工序
01B731F1ACALLPO1B
01B975906FMOVP1,#6FH;
第五道工序
01BC31F1ACALLPO1B
01BE75905FMOVP1,#5FH;
第六道工序
01C131F1ACALLPO1B
01C375900FMOVP1,#0FH;
第七道工序
01C631A5ACALLPO12
01C880DBSJMPPO12
01CA8AF0PO16:
MOVB,R2;
保护现场
01CC75907FPO17:
MOVP1,#7FH;
关输出
01CF7520A0MOV20H,#0A0H;
振荡次数
01D2D297PO18:
SETBP1.7;
振荡
01D431ECACALLPO1A;
01D6C297CLRP1.7;
停振
01D831ECACALLPO1A;
01DAD520F5DJNZ20H,PO18;
不为0转
01DDC297CLRP1.7
01DF31ECACALLPO1A;
01E130B3E8JNBP3.3,PO17;
故障消除吗?
01E4AAF0MOVR2,B;
01E632RETI
01E77A10PO19:
MOVR2,#10H
01E95113ACALLDELY;
延时1
01EB22RET
01EC7A06PO1A:
MOVR2,#06H
01EE5113ACALLDELY;
延时2
01F022RET
01F17A30P01B:
MOVR2,#30H
01F35113ACALLDELY;
延时3
01F522RET
0213C002DELY:
PUSH02H
0225DAECDJNZR2,DELY
实验78255控制交通灯
进一步了解8255芯片的结构及编程方法,学习模拟交通控制的实现方法。
用8255作输出口,控制12个发光二极管燃灭,模拟交通灯管理。
东西红灯亮南北黄灯闪烁延时
8255的PA0~PA7、PB0~PB3接发光二极管L15~L13、L11~L9、L7~L5、L3~L1。
执行程序,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,再切换到东西路口方向,之后重复以上过程。
ORG0BB0H
0BB0758160JOD0:
MOVSP,#60H
0BB390FFDBMOVDPTR,#0FFDBH
0BB67488MOVA,#88H
0BB8F0MOVX@DPTR,A;
8255初始化
0BB990FFD8MOVDPTR,#0FFD8H
OBBC74B6MOVA,#0B6H
0BBEF0MOVX@DPTR,A
0BBFA3INCDPTR
0BC0740DMOVA,#0DH
0BC2F0MOVX@DPTR,A;
点亮4个红灯
0BC37A25MOVR2,#25H;
0BC5120213LCALLDELY
0BC890FFD8JOD3:
MOVDPTR,#0FFD8H
0BCB7475MOVA,#75H
0BCDF0MOVX@DPTR,A
0BCEA3INCDPTR
0BCF740DMOVA,#0DH
0BD1F0MOVX@DPTR,A;
东西绿灯亮,
;
南北红灯亮
0BD27A55MOVR2,#55H
0BD4120213LCALLDELY;
0BD77F05MOVR7,#05H;
闪烁次数
0BD990FFD8JOD1:
0BDC74F3MOVA,#0F3H
0BDEF0MOVX@DPTR,A
0BDFA3INCDPTR
0BE0740CMOVA,#0CH
0BE2F0MOVX@DPTR,A;
东西黄灯亮,南北红灯亮
0BE37A20MOVR2,#20H
0BE5120213LCALLDELY;
0BE890FFD8MOVDPTR,#0FFD8H
0BEB74F7MOVA,#0F7H
0BEDF0MOVX@DPTR,A
0BEEA3INCDPTR
0BEF740DMOVA,#0DH
0BF1F0MOVX@DPTR,A;
0BF27A20MOVR2,#20H
0BF4120213LCALLDELY;
0BF7DFE0DJNZR7,JOD1;
闪烁次数未到,继续
0BF990FFD8MOVDPTR,#0FFD8H
0BFC74AEMOVA,#0AEH
0BFEF0MOVX@DPTR,A
0BFFA3INCDPTR
0C00740BMOVA,#0BH
0C02F0MOVX@DPTR,A;
东西红灯亮,南北绿灯亮
0C037A55MOVR2,#55H
0C05120213LCALLDELY;
0C087F05MOVR7,#05H;
0C0A90FFD8JOD2:
0C0D749EMOVA,#9EH
0C0FF0MOVX@DPTR,A
0C10A3INCDPTR
0C117407MOVA,#07H
0C13F0MOVX@DPTR,A;
东西红灯亮,南北黄灯亮
0C147A20MOVR2,#20H
0C16120213LCALLDELY;
0C1990FFD8MOVDPTR,#0FFD8H
0C1C74BEMOVA,#0BEH
0C1EF0MOVX@DPTR,A
0C1FA3INCDPTR
0C20740FMOVA,#0FH
0C22F0MOVX@DPTR,A;
东西红灯亮
0C237A20MOVR2,#20H
0C25120213LACLLDELY;
0C28DFE0DJNR7,JOD2;
闪烁次数未到继续
0C2A020BC8LJMPJOD3;
循环
ORG0213H
PUSH02H
DJNZR2,DEL4
021BD002POP02H
021DDAF8DJNZR2,DEL3
021FD002POP02H
0221DAF2DJNZR2,DEL2
0223D002POP02H
0225DAECDJNZR2,DELY
022722RET
END
实验8A/D转换实验
(1)掌握A/D转换与单片机接口的方法;
(2)了解A/D芯片0809转换性能及编程方法;
(3)通过实验了解单片机如何进行数据采集。
利用实验系统上的0809做A/D转换器,实验系统上的电位器提供模拟量输入,编制程序,将模拟量转换成数字,通过数码管显示出来。
0809通道0采样
把0809的0通道INT0用插针接至AIN1孔,0809的CS位接至FFE0孔,运行程序,数码管上显示0809.XX,后二位显示当前采集的电压转换的数字量,调节W1,该二位将随着电压变化而相应变化。
修改程序,能对INT0~INT78个通道轮流采样显示,每次显示1秒钟。
ORG05A0H
05A0758153SE11:
MOVSP,#53H
05A3757E00MOV7EH,#00H
05A6757D08MOV7DH,#08H
05A9757C00MOV7CH,#00H
05AC757B09MOV7BH,#09H
05AF757A10MOV7AH,#10H
05B2757910MOV79H,#10H;
显示缓冲区初值
05B5120425LO18:
LCALLDIS;
显示
05B87400MOVA,#00H
05BA90FFE0MOVDPTR,#0FFE0H
05BDF0MOVX@DPTR,A;
0809的0通道采样
05BE120425LCALLDIS
05C1E0MOVXA,@DPTR;
取出采样值
05C27879MOVR0,#79H
05C4120077LCALLPTDS;
采样值送显示缓冲区
05C780ECSJMPLO18;
ORG0077H
0077F9PTDS:
MOVR1,A;
拆送显示缓冲区
0078117CACALLPTDS1
007AE9MOVA,R1
007BC4SWAPA
007C540FPTDS1:
ANLA,#0FH
007EF6MOV@R0,A
007F
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机原理与应用设计张毅刚 彭喜元 著课后 基础实验 单片机 原理 应用 设计 张毅刚 课后 基础 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)