预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共38页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

微机原理硬件实验报告382015-2016学年第一学期微机原理硬件实验报告学院:班级:学号:姓名:序号:目录实验一熟悉实验环境及IO的使用3一实验目的3二实验内容3三实验过程31实验原理32流程图33源代码44子程序清单65代码分析6四实验总结6实验二8255A并行接口应用7一实验目的7二实验内容7三实验过程71八位数码管位选规律72六位数码管静态显示83六位数码管动态显示114扩展:显示键盘输入学号15四实验总结21实验三8253计数器/定时器的应用22一实验目的22二实验内容22三实验过程221蜂鸣器发音规律222音乐发生器233扩展:小键盘弹琴功能32四实验总结38实验一熟悉实验环境及IO的使用一实验目的1通过实验了解和熟悉实验台的结构功能及使用方法。2通过实验掌握直接使用Debug的I、O命令来读写I/O端口。3学会Debug的使用及编写汇编程序。二实验内容1学习使用Debug命令并用I、O命令直接对端口进行读写操作。2用汇编语言编写跑马灯程序。实现功能:1)通过读入端口状态选择工作模式(灯闪烁方式、速度等);2)通过输出端口控制灯的工作状态(低电平灯亮)。三实验过程1实验原理1在Debug下用I是命令读输入端口的状态即拨码开关的状态用O命令向端口输出数据通过LED发光管来查看。测试结果:1)使用命令:I0EEE0H读取开关状态得出的结果为左低右高即S0是低位S7是高位。2)实验命令:O0EEE0H测试LED改变输入的值可依次测试各个数码管是否正常。LED左边为高位右边为低位。2分析以下程序段的作用MOVAH0BHINT21HORALALJZ0100INT20H该段程序实现了检测键盘状态在键盘有任意键输入时退出程序返回DOS的功能。该实现依赖于0BH号中断调用和巧妙使用程序入口返回地址直接返回。在DOS的DEBUG模式下地址不用添加十六进制H标志。地址默认为16进制多写了反而画蛇添足产生错误。普通数据为了区分需要添加H。2流程图3源代码DATASEGMENTPORTEQU0EEE0HDATAENDSSTACKSEGMENTSTACK'STACK'DB100DUP(?)STACKENDSCODESEGMENTASSUMEDS:DATACS:CODESS:STACKBEGIN:MOVAXDATAMOVDSAXMOVAL07FH;01111111MOVDXPORTMOVSI2START:PUSHAX;入栈保存INALDX;读取拨码开关状态MOVBLAL;BL存储拨码开关状态POPAX;出栈恢复TESTBL10H;00010000.判断左数第五个拨码开关的状态;实现灯型的变化JNZTWO;ON状态为两个灯CMPSI1;判断AL状态JZCONT;SI等于1时AL有两位为0应恢复为只有一位为0MOVAHALRORAH1ORALAHMOVSI2;AL恢复为只有一位为0SI变为2JMPCONTTWO:CMPSI2JZCONT;SI为2时只有AL只有1位为0应对其变换MOVAHALRORAH1ANDALAH;AL有两位为0MOVSI1CONT:OUTDXALTESTBL08H;00001000.判断第四个拨码开关的状态实现暂停JNZSTART;ON状态实现暂停TESTBL02H;00000010.判断第二个拨码开关的状态;实现速度的变化JNZHIGHSP;ON状态实现高速MOVBP0200H;低速状态时延JMPMOVEHIGHSP:MOVBP0100H;高速状态时延MOVE:CALLDELAYTESTBL04H;判断第三个拨码开关的状态实现方向的变化JNZLEFT;ON状态为方向向左RIGHT:RORAL1;右移以备点亮下一盏灯JMPEXITLEFT:ROLAL1;左移以备点亮下一盏灯EXIT:TESTBL01H;判断第一个拨码开关的状态JZSTART;OFF状态继续运行ON状态实现退出MOVAL0FFH;实现全灭OUTDXALMOVAH4CHINT21HDELAYPROCMOVCXBP;BP越大延时次数越多速度越慢LOOP1:PUSHCXMOVCX0FFFFHLOOP2:LOOPLOOP2POPCXLOOPLOOP1RETDELAYENDPCODEENDSENDBEGIN4子程序清单1)子程序名:DELAY功能:实现