北邮微机原理硬件实验报告完整版.docx
- 文档编号:9100571
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:46
- 大小:680.46KB
北邮微机原理硬件实验报告完整版.docx
《北邮微机原理硬件实验报告完整版.docx》由会员分享,可在线阅读,更多相关《北邮微机原理硬件实验报告完整版.docx(46页珍藏版)》请在冰豆网上搜索。
北邮微机原理硬件实验报告完整版
微机原理硬件实验
I/O地址译码
&
简单并行接口
班级:
姓名:
学号:
一实验目的
实验一:
掌握I/O地址译码电路的工作原理。
实验二:
掌握简单并行接口的工作原理及使用方法。
二、实验原理和内容
实验一:
1、实验电路如图4-1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。
译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:
280H~287H,Y1:
288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。
例如:
执行下面两条指令
MOVDX,2A0H
OUTDX,AL(或INAL,DX)
Y4输出一个负脉冲,执行下面两条指令
MOVDX,2A8H
OUTDX,AL(或INAL,DX)
Y5输出一个负脉冲。
图4-1-1
利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。
2、接线:
Y4/IO地址接CLK/D触发器
Y5/IO地址接CD/D触发器
D/D触发器接SD/D角发器接+5V
Q/D触发器接L7(LED灯)或逻辑笔
实验二:
1、按下面图4-2-1简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。
74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。
2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。
图4-2-1
3、接线:
按图4-2-1接线(图中虚线为实验所需接线,74LS32为实验台逻辑或门)
三硬件接线图及软件程序流程图
1硬件接线图
实验一:
实验二:
2软件程序流程图
实验一:
实验二:
四源程序
实验一:
DATASEGMENT
DATAENDS
STACKSEGMENTSTACK'STACK'
DB100HDUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
;延时子程序
DELAY1PROCNEAR
MOVBX,500H
PUSHCX
LOOP2:
MOVCX,0FFFH
WAIT1:
LOOPWAIT1
DECBX
JNZLOOP2
POPCX
RET
DELAY1ENDP
;L7闪烁
START:
MOVCX,0FFFFH
LOOP1:
MOVDX,2A0H;灯亮
OUTDX,AL
CALLDELAY1
MOVDX,2A8H;灯灭
OUTDX,AL
CALLDELAY1
LOOPLOOP1;循环闪烁
CODEENDS
ENDSTART
实验二:
DATASEGMENT
DATAENDS
STACKSEGMENTSTACK'STACK'
DB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAH,1;键盘输入
INT21H
CMPAL,27;判断是否为ESC键
JZEXIT
MOVDX,2A8H
OUTDX,AL;输出
JMPSTART
;返回DOS
EXIT:
MOVDX,2A8H
MOVAL,0
OUTDX,AL;所有灯灭
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
五实验结果
实验一:
L7闪烁
实验二:
从键盘输入字符或数字,若不是Esc键,则二极管显示其ASCII码情况,若按下ESC,则返回dos,且各LED灯灭。
六:
实验总结
1主要问题是对题目中所给的硬件接线图不是很理解,如第二个实验中或门的作用。
向老师请教后明白了硬件接线图的原理,做实验就容易许多。
2在第一个实验中起先对AL进行了赋值,后来发现是没必要的,不对AL赋值对产生负脉冲无影响,后来删掉了相应的赋值语句,精简了代码。
七实验收获与心得体会
这是第一次接触微原硬件实验,实验板比小学期单片机实验更丰富,但也会导致刚开始的时候不知道该把线接在哪。
在明白了硬件接法,将自己的代码反映在硬件上时,觉得非常有趣。
之前一直以为微原实验不如C++等高级语言编程有趣,现在看来丝毫不逊色。
且通过自己动手实验,使我对理论课所学知识有了更好的理解。
期待通过这几次微原实验能让我收获更多知识。
微机原理硬件实验
可编程并行接口8255
&
七段数码管
&
键盘显示控制实验
班级:
姓名:
学号:
一实验目的
实验三:
通过实验,掌握8255工作于方式0以及设置A口为输出口,C口为输入口的方法。
实验四:
掌握数码管显示数字的原理。
实验五:
掌握8255控制键盘及显示电路的基本功能及编程方法。
掌握一般键盘和显示电路的工作原理。
二实验原理和内容
实验三:
1、实验电路见硬件连接图,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。
2、编程从8255C口输入数据,再从A口输出。
实验四:
静态显示:
按下图连接好电路,将8255的A口PA0~PA7分别与七段数码管的段码驱动输入端a~dp相连,位码驱动输入端S0、S1、S2、S3接PC0、PC1、PC2、PC3,编程在数码管显示自己的学号的后四位。
实验五:
编程:
使得在小键盘上每按一个健,4位数码管上显示出相应字符。
三硬件接线图及软件程序流程图
1硬件接线图
实验三:
实验四:
2软件程序流程图
实验三:
(引用讲义上已给出的图)
实验四:
(引用讲义上已给出的图)
实验五:
四源程序
实验三
DATASEGMENT
DATAENDS
STACKSEGMENTSTACK'STACK'
DB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVDX,28BH;8255初始化,10001001,C口输入,A口输出
MOVAL,89H
OUTDX,AL
LOOP1:
MOVDX,28AH;C口输入
INAL,DX
MOVDX,288H;A口输出
OUTDX,AL
MOVAH,01H
INT16H
JNZEXIT;ZF=0说明有按键输入,故退出
JMPLOOP1
EXIT:
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
实验四
DATASEGMENT
DATAENDS
STACKSEGMENTSTACK'STACK'
DB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVDX,28BH;8255控制寄存器端口地址28BH
MOVAL,80H;工作方式为0
OUTDX,AL;初始化8255
DIGITAL:
MOVDX,28AH;熄灭数码管
MOVAL,00H
OUTDX,AL
MOVDX,288H;A口显示5
MOVAL,6DH
OUTDX,AL
MOVDX,28AH;C口00000001(位码)
MOVAL,01H
OUTDX,AL
MOVDX,28AH;熄灭数码管
MOVAL,00H
OUTDX,AL
MOVDX,288H;A口显示2
MOVAL,5BH
OUTDX,AL
MOVDX,28AH;C口00000010(位码)
MOVAL,02H
OUTDX,AL
MOVDX,28AH;熄灭数码管
MOVAL,00H
OUTDX,AL
MOVDX,288H;A口显示6
MOVAL,7DH
OUTDX,AL
MOVDX,28AH
MOVAL,04H;C口00000100(位码)
OUTDX,AL
MOVDX,28AH;熄灭数码管
MOVAL,00H
OUTDX,AL
MOVDX,288H;A口显示0
MOVAL,3FH
OUTDX,AL
MOVDX,28AH
MOVAL,08H;C口00001000(位码)
OUTDX,AL
MOVDX,28AH;熄灭数码管
MOVAL,00H
OUTDX,AL
MOVAH,01H
INT16H
JNZEXIT;ZF=0说明有按键输入,故退出
JMPDIGITAL
EXIT:
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
实验五
DATASEGMENT
TABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H;数码管显示0123456789ABCDEF
NUMDB70H,0B0H,0D0H,0E0H;用于扫描键盘70H=01110000,0B0H=10110000,0D0H=11010000,0E0H=11100000
DATAENDS
STACKSEGMENTSTACK'STACK'
DB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
;延时子程序
DELAYPROCNEAR
PUSHCX
MOVCX,100H
WAIT1:
LOOPWAIT1
POPCX
RET
DELAYENDP
;获取键盘的输入数字的子程序,通过BX寄存器传递
KEYPROCNEAR
PUSHAX;保护现场
PUSHCX
PUSHDX
MOVCX,00H;从第一行开始扫描
CHECK:
MOVDX,28AH;C口地址给DX
MOVBX,OFFSETNUM
ADDBX,CX
MOVAL,[BX]
OUTDX,AL
;防抖
INAL,DX;判断是否有键盘按下
MOVAH,AL
CALLDELAY
INAL,DX
CMPAL,AH
JNZCHECK;不相等说明为抖动,重新检测
;判断按下的列
ANDAL,0FH
CMPAL,0FH
JZNEXT;这一行的所有列都没有按下的则跳到下一行扫描
CMPAL,0EH
JZNEXT1
CMPAL,0DH
JZNEXT2
CMPAL,0BH
JZNEXT3
MOVBX,00H
JMPGOT
NEXT:
INCCX;修改变量扫描下一行
CMPCX,04H
JNZJUMP1
MOVCX,00H
JUMP1:
JMPCHECK
NEXT1:
MOVBX,03H
JMPGOT
NEXT2:
MOVBX,02H
JMPGOT
NEXT3:
MOVBX,01H
;计算按下键盘的数值
GOT:
MOVAL,CL
MOVDL,04H
MULDL
ADDBL,AL;此时BX中所存即为对应的偏移量
POPDX;恢复现场
POPCX
POPAX
RET
KEYENDP
;主程序
START:
MOVAX,DATA
MOVDS,AX
MOVDX,28BH;8255初始化
MOVAL,81H;C口输入
OUTDX,AL
MOVDX,289H;B口位选数码管
MOVAL,01H
OUTDX,AL
;扫描键盘
LOOP1:
CALLKEY
;数码管显示字符
MOVAX,BX
MOVBX,OFFSETTABLE
ADDBX,AX;此时BX即为对应的地址
MOVAL,[BX]
CMPBX,OFFSETTABLE;按下的为0则退出
JZEXIT
MOVDX,288H;A口输出
OUTDX,AL
MOVDX,28AH;C口输入
INAL,DX
;检测键盘是否弹起
MOVAH,AL
LOOP2:
CALLDELAY
INAL,DX
CMPAL,AH
JZLOOP2
JMPLOOP1
;返回DOS
EXIT:
MOVAL,00H
MOVDX,288H;A口输出
OUTDX,AL
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
五实验结果
实验三:
拨动K0~K7,对应的L0~L7亮,有按键输入则退出。
实验四:
数码管显示学号的后四位:
0625。
有按键输入则退出。
实验五:
按小键盘1~F则数码管显示对应的字符,按下0则结束。
六:
实验总结
本次实验课做了三个实验,每个实验也都变换了端口重新操作以加深理解,觉得比第一次做的更熟练。
本次实验遇到问题的主要是实验五,键盘扫描及防抖程序较为复杂,需要考虑很多。
在添加按小键盘0则退出时起初代码位置不对导致有逻辑错误,修改了两次才正确。
七实验收获与心得体会
这次实验觉得和小学期的单片机实验有很多的想通之处。
小学期使用的键盘扫描方法就是行扫描法,所以这次对扫描方法的理解更轻松一些。
通过这次实验,我对8255的应用有了更深的了解。
这次实验我更加注意了代码优化,每个实验都添加了退出的代码,觉得更可靠。
实验三和四相对来说更容易,几乎是静态的,而实验五由于一直随着按键而变化所以需要考虑多种情况和变化,增加了难度,这也提高了我编程时考虑多种情况的意识,相信对我以后的编程也有很多的好处。
微机原理硬件实验
可编程定时器/计数器
(8253/8254)
班级:
姓名:
学号:
一、实验目的
学习掌握8253用作定时器的编程原理;
二、实验原理和内容
1.完成一个音乐发生器,通过喇叭或蜂鸣器放出音乐,并在数码管上显示乐谱。
2.扩展部分:
利用小键盘实现弹琴功能,并显示弹奏的乐谱。
注意:
8253输入频率应小于2MHz。
三硬件接线图及软件程序流程图
1硬件接线图
2软件程序流程图
四源程序
DATASEGMENT
FENPINDW0001H,3906,3472,3125,2932,2604,2344,2083,1953;分频比1(do)-i(do)
DIGITALDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH;数码管
MUSICDB0,1,2,3,1,1,2,3,1,0,3,4,5,0,3,4,5,0,5,6,5,4,3,1,0,5,6,5,4,3,1,0,1,5,1,0,1,5,1,0;存放播放的乐曲音符0是空拍
NUMDB00H,070H,0B0H,0D0H,0E0H;检测键盘输入
DATAENDS
STACKSEGMENTSTACK'STACK'
DB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
;延时子程序
DELAYPROCNEAR
PUSHCX
MOVCX,100H
WAIT0:
LOOPWAIT0
POPCX
RET
DELAYENDP
;延时子程序2
DELAY1PROCNEAR
PUSHCX
MOVCX,0FFFFH
WAIT1:
LOOPWAIT1
POPCX
RET
DELAY1ENDP
;获取键盘输入值的子程序
KEYPROCNEAR
PUSHAX;保护现场
PUSHCX
PUSHDX
MOVCX,01H
CHECK:
MOVDX,28AH;C口地址给DX
MOVBX,OFFSETNUM
ADDBX,CX
MOVAL,[BX]
OUTDX,AL
;防抖
INAL,DX;判断是否有键盘按下
MOVAH,AL
CALLDELAY
INAL,DX
CMPAL,AH
JNZCHECK;不相等说明为抖动,重新检测
;判断按下的列
ANDAL,0FH
CMPAL,0FH
JZNEXT
CMPAL,0EH
JZNEXT1
CMPAL,0DH
JZNEXT2
CMPAL,0BH
JZNEXT3
MOVBX,01H
JMPGOT
NEXT:
INCCX;修改变量扫描下一行
CMPCX,05H
JNZJUMP1
MOVCX,01H
JUMP1:
JMPCHECK
NEXT1:
MOVBX,04H
JMPGOT
NEXT2:
MOVBX,03H
JMPGOT
NEXT3:
MOVBX,02H
;计算按下键盘的数值
GOT:
SUBCX,01H
MOVAL,CL
MOVDL,04H
MULDL
ADDBL,AL
SUBBL,01H;此时BX中所存即为对应的偏移量
POPDX;恢复现场
POPCX
POPAX
RET
KEYENDP
;主程序
START:
MOVAX,DATA
MOVDS,AX
;8253初始化
MOVDX,283H
MOVAL,36H
OUTDX,AL
;8255初始化
MOVDX,28BH
MOVAL,81H;C口输入
OUTDX,AL
MOVDX,289H;B口位选数码管
MOVAL,01H
OUTDX,AL
;扫描键盘
LOOP1:
CALLKEY
CMPBX,0;按0播放音乐
JZPLAY0
CMPBX,9;按9退出
JZEXIT
;按1~8发出对应音
MOVCX,BX
MOVBX,OFFSETDIGITAL;数码管显示音符
ADDBX,CX
MOVAL,[BX]
MOVDX,288H;A口输出
OUTDX,AL
;播放该音符
MOVBX,OFFSETFENPIN
MOVAX,CX
ADDAX,AX
ADDBX,AX
;计数,先低八位后高八位
MOVAX,[BX]
MOVDX,280H
OUTDX,AL
MOVAL,AH
OUTDX,AL
CALLDELAY1
CALLDELAY1
MOVDX,28AH;C口输入
INAL,DX
;检测键盘是否弹起
MOVAH,AL
LOOP2:
CALLDELAY
INAL,DX
CMPAL,AH
JZLOOP2
;初始化8253,停止播放音乐
MOVAX,0H
MOVDX,283H
MOVAL,36H
OUTDX,AL
JMPLOOP1
;播放音乐
PLAY0:
MOVCX,01H
PLAY:
PUSHCX
;读取音符,存于CX中
MOVBX,OFFSETMUSIC
ADDBX,CX
MOVAL,[BX]
MOVCL,AL
MOVCH,0H
;数码管显示
MOVBX,OFFSETDIGITAL
ADDBX,CX
MOVAL,[BX]
MOVDX,288H
OUTDX,AL
;播放该乐符
MOVBX,OFFSETFENPIN
MOVAX,CX
ADDAX,AX
ADDBX,AX
;计数,先低八位后高八位
MOVAX,[BX]
MOVDX,280H
OUTDX,AL
MOVAL,AH
OUTDX,AL
POPCX
;延时,持续播放
MOVAX,90H
LOOP3:
CALLDELAY1
DECAX
JNZLOOP3
;乐曲未结束时,CX加1
INCCX
CMPCX,28H;共40个音符
JNZJUM
JMPLOOP1
JUM:
JMPPLAY
EXIT:
MOVAL,0
MOVDX,288H
OUTDX,AL
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
五实验结果
按小键盘的0时,播放预置音乐《两只老虎》,同时数码管显示相应的音符;
按小键盘的1~8时,分别发出do,re,mi,fa,so,la,si,高音do,数码管显示按下的音符;
按小键盘的9时,熄灭数码管,回到dos
六:
实验总结
由于小学期单片机实验做的就是电子琴,原理上比较熟悉,所以这次实验比较容易。
在调试时,主要是调整延时以使音乐播放更准确。
延时程序是保证本次实验成功的关键。
在弹奏时,发声时长即为按键时长,按键弹起时停止播放音乐(但为保证按键很短时发声不至于太急促,仍在此处加入了一点延时)。
七实验收获与心得
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 硬件 实验 报告 完整版