微机原理实验报告.docx
- 文档编号:29173537
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:82
- 大小:898.05KB
微机原理实验报告.docx
《微机原理实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理实验报告.docx(82页珍藏版)》请在冰豆网上搜索。
微机原理实验报告
软件实验部分:
实验一清零程序
实验二拆字程序
实验三拼字程序
实验四数据区传送子程序
实验五数据排序实验
实验六查找相同数个数
实验七无符号双字节快速乘法子程序
实验八多分支程序
实验九脉冲计数(定时/计数器实验)
实验十电脑时钟(定时器、中断综合实验)
硬件实验部分:
实验一P1口亮灯实验
实验二P1口转弯灯实验
实验三P3.3口输入,P1口输出
实验四工业顺序控制
实验五继电器控制
实验六8255控制交通灯
实验七LED16×16点阵显示实验
实验八串并转换实验
实验九A/D转换实验
实验十D/A转换
实验十一电子音响
实验十二步进电机控制
实验十三8032串行口应用实验㈠——双机通信
实验十四小直流电机调速实验
软件实验部分
本节共编了十个软件实验,通过这些实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。
本节提供的软件实验,涉及外部数据存储器扩展寻址操作,因此需按下图连接实验线路。
1.将存储器单元的D0—D7总线接口用8芯扁平线与数据总线单元D0—D7的任一接口相连,存储器单元的A0—A7地址接口与地址总线单元(低8)A0—A7的任一接口相连,存储器单元的A8—A12地址接口与地址总线单元(高8)A8—A12的任一接口相连。
注意外部扩充的数据区的有效范围。
2.存储器单元的WE/PGM插孔与六位LED左下方的IOWE插孔相连。
3.存储器单元的OE插孔与六位LED左下方的IORD插孔相连。
4.存储器单元的CS1插孔与六位LED右下方的IOWE插孔相连。
实验一清零程序
一、实验目的
掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容
把2000H-20FFH的内容清零
三、程序框图
四、实验步骤
用连续或单步方式运行程序,检查2000-20FF中执行程序前后的内容变化。
五、思考
假使把2000H-20FFH中的内容改成FF,如何修改程序。
接P1.0到L1,试编写程序,对片外数据存储器6264进行读写操作,若L1闪动则表示6264RAM读写正常。
(此思考题也可留在硬件实验中做)
ORG0640H
SE01:
MOVR0,#00H
MOVDPTR,#2000H;(2000H)送DPTR
LOO1:
MOVX@DPTR,A;0送(DPTR)
INCDPTR;DPTR+1
INCR0;字节数加1
CJNER0,#00H,LOO1;不到FF个字节再清
SJMP$
END
实验二拆字程序
一、实验目的
掌握汇编语言设计和调试方法。
二、实验内容
把2000H的内容拆开,高位送2001H低位,低位送2002H低位,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用。
三、程序框图
四、实验步骤
用连续或单步方式运行程序,检查2000—2002H中内容变化情况。
五、思考
如何用断点方式调试本程序。
ORG0660H
SE02:
MOVDPTR,#2000H
MOVXA,@DPTR
MOVB,A;(2000)→A→B
SWAPA;交换
ANLA,#0FH;屏敝高位
INCDPTR
MOVX@DPTR,A;送2001H
INCDPTR
MOVA,B
ANLA,#0FH;(2000)内容屏敝高位
MOVX@DPTR,A;送2002H
SJMP$
END
实验三拼字程序
一、实验目的
进—步掌握汇编语言设计和调试方法。
二、实验内容
把2000H、2001H的低位分别送入2002H高低位,一般本程序用于把显示缓冲区的数据取出拼装成—个字节。
三、程序框图
四、实验步骤
单步或用断点方式运行程序,检查2002H内容变化情况。
ORG0680H
SE03:
MOVDPTR,#2000H
MOVXA,@DPTR
ANLA,#0FH;(2000H)内容屏敝高位
SWAPA;交换
MOVB,A;保存
INCDPTR
MOVXA,@DPTR;(2001H)内容送A
ANLA,#0FH;屏敝高位
ORLA,B;或
INCDPTR
MOVX@DPTR,A;送2002H
SJMP$
END
实验四数据区传送子程序
一、实验目的
掌握RAM中的数据操作。
二、实验内容
把R2、R3源RAM区首址内的R6、R7字节数据传送到R4、R5目的RAM区。
三、程序框图
四、实验步骤
在R2、R3中输入源首址(例如0000H),R4、R5中输入目的地址(例如0200H),R6、R7中输入字节数(例如01FFH),运行程序,检查0000-01FFH中内容是否和0200-03FFH中内容完全—致。
ORG07B0H
MOVR2,#00H
MOVR3,#00H
MOVR4,#02H
MOVR5,#00H
MOVR6,#01H
MOVR7,#0FFH
SE22:
MOVDPL,R3
MOVDPH,R2;建立源程序首址
MOVXA,@DPTR;取数
MOVDPL,R5
MOVDPH,R4;目的地首址
MOVX@DPTR,A;传送
CJNER3,#0FFH,LO42
INCR2
LO42:
INCR3;源地址加1
CJNER5,#0FFH,LO43
INCR4
LO43:
INCR5;目地址加1
CJNER7,#00H,LO44
CJNER6,#00H,LO45;字节数减1
SJMP$
NOP
LO44:
DECR7
SJMPSE22
LO45:
DECR7
DECR6
SJMPSE22;未完继续
END
实验五数据排序实验
一、实验目的
熟悉8032指令系统,掌握程序设计方法。
二、实验内容
编写并调试一个排序子程序,其功能为用冒泡法将内容RAM中几个单字节无符号的正整数,按从小到大的次序重新排列。
三、程序框图
四、实验步骤
把8032中RAM50H-5AH中放入不等的数据,运行本实验程序后检查50-5AH中内容是否按从小到大排列。
(注意数据是在CPU内部存储区存放,注意寻址方式。
)
五、思考
1.修改程序把50H-5AH中内容按从大到小排列;
2.如果改为有符号数,如何修改。
ORG09B0H
QUE:
MOVR3,#50H
QUE1:
MOVA,R3;指针送R0
MOVR0,A
MOVR7,#0AH;长度送R7
CLR00H;标志位为0
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;一次循环中有交换继续
SJMP$;无交换退出
END
实验六查找相同数个数
一、实验目的
熟悉汇编语言编程。
二、实验内容
在2000—200FH中查出有几个字节是零,把个数放在2010H中。
三、程序框图
四、实验步骤
在2000—200FH的几个单元中填入零,运行本程序后检查2010H中是几个单元数。
五、思考
修改程序,查找其它内容。
ORG0AA0H
L5800:
MOVR0,#10H;查找16个字节
MOVR1,#00H
MOVDPTR,#2000H
L5811:
MOVXA,@DPTR
CJNEA,#00H,L5816;取出内容与00H相等吗?
INCR1;取出个数加1
L5816:
INCDPTR
DJNZR0,L5811;未完继续
MOVDPTR,#2010H
MOVA,R1
MOVX@DPTR,A;相同数个数送2010H
L581E:
SJMPL581E
END
实验七无符号双字节快速乘法子程序
一、实验目的
掌握MCS-51汇编语言程序设计方法。
二、预备知识
本程序是利用单字节的乘法指令,根据下面的公式进行乘法运算的:
(R2R3)*(R6R7)=((R2)*28+(R3))*((R6)*28+(R7))
=(R2)*(R6)*216+((R2)*(R7)+(R3)*(R6))*28+(R3)*(R7)
三、实验内容
将(R2R3)和(R6R7)中双字节无符号整数相乘,积送R4R5R6R7中。
四、程序框图
五、实验步骤
在R2R3和R6R7中输入无符号整数,连续或单步运行本实验程序后检查R4R5R6R7中内容。
ORG0970H
QKUL:
MOVA,R3
MOVB,R7
MULAB;R3*R7
XCHA,R7;R7=(R3*R7)低字节
MOVR5,B;R5=(R3*R7)高字节
MOVB,R2
MULAB;R2*R7
ADDA,R5
MOVR4,A
CLRA
ADDCA,B
MOVR5,A;R5=(R2*R7)高字节
MOVA,R6
MOVB,R3
MULAB;R3*R6
ADDA,R4
XCHA,R6
XCHA,B
ADDCA,R5
MOVR5,A
MOVPSW.5,C;存CY
MOVA,R2
MULAB;R2*R6
ADDA,R5
MOVR5,A
CLRA
MOVACC.0,C
MOVC,PSW.5;加上次加法的进位
ADDCA,B
MOVR4,A
SJMP$
END
实验八多分支程序
一、实验目的
掌握汇编语言的编程。
二、实验内容
编写程序,根据送入的数据转移运行;了解利用堆栈延时的方法。
三、程序框图
四、实验步骤
在CPU内部数据区20H中分次送入00、01、02、03,每次运行程序后,观察数码管上数字循环情况。
五、思考
修改程序,使数码管显示自动循环显示0、1、2、3。
六、电路介绍
字形口FFDCH字位口/键扫口FFDDH键入口FFDEH
共阴极8段码,a—h接D0—D7,为1灭,为0亮
键扫显示控制电路
ORG0A10H
MEMS:
MOVA,20H
MOVDPTR,#KKKK;散转首址
RLA;(20)*2
JMP@A+DPTR;转到(20)*2+DPTR
KKKK:
AJMPMEMSP0
AJMPMEMSP1
AJMPMEMSP2
SJMPMEMSP3
MEMSP0:
MOV20H,#0C0H;0字循环
LJMPSOX0
MEMSP1:
MOV20H,#0F9H;1字循环
LJMPSOX0
MEMSP2:
MOV20H,#0A4H;2字循环
LJMPSOX0
MEMSP3:
MOV20H,#0B0H;3字循环
LJMPSOX0
;---------------------------------------------
SOX0:
MOVA,20H
MOVR0,#0DCH
MOVR1,#0DDH
MOVX@R0,A
MOVA,#01H
SOX1:
MOVX@R1,A
MOVR2,#20H
LCALLDELY
RLA;显示子程序
SJMPSOX1
;---------------------------------------------
DELY:
PUSH02H
DEL2:
PUSH02H
DEL3:
PUSH02H;延时
DEL4:
DJNZR2,DEL4
POP02H
DJNZR2,DEL3
POP02H
DJNZR2,DEL2
POP02H
DJNZR2,DELY
RET
;---------------------------------------------
END
实验九脉冲计数(定时/计数器实验)
一、实验目的
熟悉8032定时/计数功能,掌握初始化编程方法。
二、实验内容
把定时器0外部输入的脉冲进行计数,并送显示器显示。
三、程序框图
四、实验电路
五、实验步骤
P3.4依次接实验台右上角74LS393的T0-T7或单步脉冲输出孔SP,执行程序,观察数码管上计数脉冲的速度及个数。
六、思考
熟悉二进制转十进制的方法;熟悉缓冲区数据的拆分;熟悉显示子程序的显示方法;
修改程序使显示器上可显示到999999个脉冲个数。
ORG06E0H
SE15:
MOVSP,#53H
MOVTMOD,#05H
MOVTH0,#00H
MOVTL0,#00H;定时计数器初始化
SETBTR0;开计数器
LO29:
MOVR2,TH0
MOVR3,TL0;取出TH0.TL0内容
LCALLZOY0;二转十进制
MOVR0,#79H
MOVA,R6
LCALLPTDS
MOVA,R5
LCALLPTDS
MOVA,R4
LCALLPTDS;送显示缓冲区
LCALLSSEE;显示
SJMPLO29;循环计数.显示
ZOY0:
CLRA
MOVR4,A
MOVR5,A
MOVR6,A;0送R4R5R6
MOVR7,#10H
LO30:
CLRC;R2R3左移.移出的
MOVA,R3;最高位送CY
RLCA
MOVR3,A
MOVA,R2
RLCA
MOVR2,A
MOVA,R6
ADDCA,R6;(R4R5R6)*2+CY送R4R5R6
DAA;十进制调整
MOVR6,A
MOVA,R5
ADDCA,R5
DAA
MOVR5,A
MOVA,R4
ADDCA,R4
DAA
MOVR4,A
DJNZR7,LO30;循环16次
RET
;-----------------------------------------------
PTDS:
MOVR1,A;拆送显示缓冲区
ACALLPTDS1
MOVA,R1
SWAPA
PTDS1:
ANLA,#0FH
MOV@R0,A
INCR0
RET
;--------------------------------------------
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
;--------------------------------------------------------
END
实验十电脑时钟(定时器、中断综合实验)
一、实验目的
熟悉MCS-51定时器,串行口和中断初始化编程方法,了解定时器的应用实时程序的设计与调试技巧。
二、实验内容
编写程序,从本实验系统键盘上输入时间初值,用定时器产生0.1S定时中断,对时钟计数器计数,并将数值实时地送数码管显示。
三、程序框图
四、实验步骤
连续运行程序,在键盘上输入时间初值,按执行键EXEC执行,数码管上实时显示时间值。
五、思考
(1)电子钟走时精度和程序中那些常数有关?
(2)修改程序使定时器工作方式改变,调节有关参数,进一步提高精度。
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;显示
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
MOV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验 报告