北邮微机原理硬件实验实验报告_第1页
北邮微机原理硬件实验实验报告_第2页
北邮微机原理硬件实验实验报告_第3页
北邮微机原理硬件实验实验报告_第4页
北邮微机原理硬件实验实验报告_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机原理与接口技术硬件实验报告姓名:曹爽学号:2013210640班级:20132111242016年1月10日目录实验一:熟悉实验环境及10的使用3一、实验目的 3.二、实验内容及要求 3.三、实验步骤 3.四、程序流程图 4.五、源代码 4六、思考题 5七、实验结果和心得体会 6.实验二:8255A并行接口应用 7.一、实验目的 7.二、实验内容及要求 7.三、实验步骤 8.四、程序流程图 9.五、源代码 1.0.六、实验结果和心得体会 1.4.实验三: 8253 计数器/定时器的应用 1.5一、实验目的 1.5.二、实验内容及要求 1.5.三、8253 定时器 1.5.四、电路的调试与连

2、接 1.6.五、实验连接图 1.6.六、程序流程图 1.8.七、源代码 1.9.八、思考题 2.1.九、实验结果和心得体会 2.1.实验一:熟悉实验环境及 IO 的使用实验目的1. 通过实验了解和熟悉实验台的结构、功能及使用方法。2. 通过实验掌握直接使用 Debug 的 I、O 命令来读写 IO 端口3. 学会 Debug 的使用及编写汇编程序。实验内容及要求1. 学习使用 Debug 命令,并用 I、O 命令直接对端口进行读写操作。2. 用汇编语言编写跑马灯程序。(使用EDIT编辑工具)实现功能。A. 通过读入端口状态( ON 为低电平),选择工作模式(灯的闪烁方式、 速度等)。B. 通过

3、输出端口控制灯的工作状态(低电平灯亮) 。 注意:电源打开时不得插拔电缆及各种器件。 连接电路时一定要在断电的情况下连接,否则可能会烧坏整个实验系统。三、实验步骤这里仅简要叙述利用EDIT工具编写汇编写跑马灯程序的步骤编写:CEDIT文件名.asm编译:CMASM 文件名.asm连接:CLINK文件名.obj运行:C文件名.exe或用 Debug 进行调试四、程序流程图五、源代码CODE SEGMENTASSUME CS:CODE;将初始灯设为右起第1灯亮START: MOV AH,0FEHLOOPO: MOV DX,0EEE0HIN AL,DX3位状态;将I/O端口地址设为EEE0;从端口读

4、入数据,提取拨码开关右起第AND AL,20HCMP AL,20H JNZ STOP IN AL,DXAND AL,40HCMP AL,40H JNZ FANROL AH,1STOP:JMP DISPFAN:ROR AH,1DISP:MOV AL,AHOUT DX,ALMOV CX,8000HMOV BX,8000H;若状态为 0,则保持位置不变,暂停;提取拨码开关右起第 2 位状态;若状态为 0,则右移亮灯位置;左移亮灯位置;输出到端口,亮灯;外循环次数;内循环次数; 提取拨码开关右起第 4 位状态;若为 1,则设置内循环次数为 10H 次;外循环,CX减少到0; 提取拨码开关右起第 1 位

5、状态; 若为 0,则继续显示,否则结束程序LOOP1: DEC BXJNZ LOOP1MOV BH,80H IN AL,DX AND AL,10HCMP AL,10H JNZ SMOV BH,10HS: LOOP LOOP1IN AL,DXAND AL,80HCMP AL,80HJNZ LOOP0MOV AH,4CH INT 21H;内循环,BX减少到0;重设内循环次数 80H 次CODE ENDSEND START六、思考题通过实验说明用debug中的a命令录入实验中给出的小程序中,有些语句可 以不写出“ h”字符的原因答:主要是出于数据辨认的角度。 凡是十六进制数据都是要加 H 的,而地址

6、则不 用。这是由于编译时所能识别的数据有很多种, 为了保证编译正常进行, 必 须要告诉编译器数据的类型。地址只有默认的 16 进制形式,不需指定类型 就能完成正确的编译,所以无须加 H。而在DEBUG环境下,它的默认数据 格式就是十六进制的,所以就不需要写出“ H”字符;否则通不过编译。七、实验结果和心得体会这次实验是我们第一次微原硬件实验,之前的一次软件实验让我们熟悉了DOS界面下的操作,由于间隔时间较长,这次我们又重新熟悉了一遍。并且,与 软件实验不同, 硬件实验是通过编程的方式作用于硬件实验板上, 为此,我们首 先熟悉了一下实验板,编写了一些简单的小程序控制实验板。在熟悉了I/O端口之后

7、,我们开始编写跑马灯程序。 并且能够通过拨码开关的选择, 控制工作模式、 速度、反向、暂停等功能。这次实验的要点是对 I/O 接口译码电路的理解以及使用,我们通过测试,理 解了地址与端口的对应情况,进而才能编写出跑马灯程序。通过本次实验, 我们掌握了地址译码电路的设计方法和实现原理, 加深了对 硬件的 I/O 接口技术的理解。实验中出现的一些问题,也成为我们调试程序的宝 贵经验,为后续的实验打下了基础。实验二: 8255A 并行接口应用一、实验目的1. 掌握8255A的功能及方式0、1的实现。2. 熟悉8255A与CPU的接口,以及传输数据的工作原理及编程方法。3. 了解七段数码管显示数字的原

8、理。4. 掌握同时显示多位数字的技术。二、实验内容及要求在实验一的基础上学习PIO芯片(8255)编程应用,熟悉平台的主要内容。CS用 Y0 (EE00H。(一)简要说明:在方式 0(输入 / 输出)下,以 A 口为输出口, B 口为输出口, A 口接六个共 阴极数码管的八位段码,高电平点亮数码管的某一段, B 口接数码管的位选(即 要使哪个数码管亮),高电平选中某一位数码管点亮。8255A中 A端口地址E800HB 端口地址E801HC 端口地址E802H控制地址E803H八段数码管的显示规律及数码管的位选规律自己查找, 可用实验一中, 学过 的I、O令来做。(二)6 位数码管静态显示在数码

9、管电路上静态地显示 6位学号,当主机键盘按下任意键时, 停止显示, 返回提示:该电路 6 个数码管的同名阳极段已经复接, 当段选寄存器寄存了一个 字型之后, 6 个数码管都有可能显示出相同的数字。 如果要使 6 个数码管“同时” 显示不同字, 必须采用扫描显示的方法, 通过选位寄存器选择某一位数码管, 显 示其数字(对应为 1),然后关闭此数码管, 再选择下一位数码管进行显示; 如果 在一秒钟内,每一位管都能显示 30次以上,则人眼看到的是几位数码管同时在 显示。实验证明,在扫描显示过程中,每一位显示延迟 1ms是最佳选择。(三)6 位数码管动态显示要求在数码管电路 16 位数码管上按图 2.

10、2.1 所示的规律,动态显示字符 串HELLO当主机键盘按下任意键时结束。1iJHHEj h JH11E卜 tLHELLiHEL ,*LoE iL 11Imp0显不0. 5s區示0. 5s显示0. 5s图2.2.1字符串动态显示示意图提示: 本实验应在上面实验的基础上完成。 在数据段,按下列规律设置12个字型码:MESG DB 0,0,0,0,0,0,3DH,0DCH,8CH,8CH,0EDH,0POINT DW MESGPOINT单元存放MESG单元的有效地址,程序取出 POINT单元的内容BX, 然后用BX地址取数送数码管电路,扫描显示 6个字符。每过0.5s将POINT单元 的内容加1,

11、再将POINT单元的内容一 BX,。POINT单元内容加1,使字符 串显示的首地址向高地址移动一个单元,从而使6位字符串向“左”移动一位,实现动态显示。 动态显示的速度可控制(快或慢),利用实验一读入端口的功能。三、实验步骤编写和调试步骤同实验一,不再赘述。四、程序流程图开始ia是否有键入否SLDB图2.4.1数码管动态显示程序流程图五、源代码设萱工作口标志位读取三位开关数据到 AL将6个数据静态显示6位数码管静态显示:COUNT EQU $-SHOW结克DATASEGMENTSHOWDB 0F4H,21H,0EDH,0DDH,39H,0DDH ;210646DATAENDSASSUME CS

12、:CODE, DS:DATASTART: MOV AX,DATAMOV DS,AXNEXT: MOV CX,COUNTLEA BX,SHOW;seg data清空显示保持单位时间XAL次CODESEGMENT;显示个数,为6;MOV BX,OFFSET SHOW设叠要显示的数据段为 “OOOODOHELLOfT准备个数据显示;第一个点亮位置;设置输出端口;设置标志位为 1 , A、 B 口为输出;B 口输出数码管选通位置;A 口输出数据段数据到数码管;清除显示,防止程序结束残留显示;显示下一个数字;SI左移依次向左选通数码管;循环此过程COUNT次;若键盘有输入则跳出程序MOV SL,01H

13、MOV AL,80HMOV DX,0EE03HOUT DX,ALAGAIN: MOV AL,SLMOV DX,0EE01H OUT DX,AL MOV AL,BXMOV DX,0EE00H OUT DX,AL MOV AL,00HMOV DX,0EE00H OUT DX,AL INC BX SHL SL,1 LOOP AGAIN MOV AH,0BH INT 21H OR AL,AL JZ NEXTMOV AH,4CH INT 21HCODE ENDSEND START6 位数码管动态显示:DATA SEGMENTMESG DB 0,0,0,0,0,0,3DH,0DCH,8CH,8CH,0ED

14、H,0DATA ENDSSTACK SEGMENT STACK STACKDB 100 DUP(0)STACK ENDSCODE SEGMENTASSUME DS:DATA,CS:CODE,SS:STACKMAIN PROC FARMOV AX,DATAMOV DS,AXMOV ES,AXMOV AL,80HMOV DX,0E803H;设置标志位为 1,A、B 口为输出OUT DX,ALSTART: MOV BX,OFFSET MESGMOV CX,07HLOP7:MOV DX,0EEE0H IN AL,DX INC AL AND AL,07H XOR AH,AH MOV DX,AXLOOP0

15、: CALL DISP DEC DX JNZ LOOP0 INC BX LOOP LOP7 JMP STARTMAIN ENDPDISP PROC NEAR PUSH CX PUSH DX PUSH AX MOV BP,0044HLOPX:XOR SI,SI MOV CX,06H MOV DX,0EE00H MOV AH,01HLOP6:MOV AL,MESGBX+SI OUT DX,AL MOV AL,AH MOV DX,0EE01H OUT DX,AL;从拨码开关左起 3 位读入数据到 DX;DX为外循环次数,控制静态显示时间;显示当前状态直至 DX=0;BX决定显示哪6个数据;重新读取拨

16、码开关到 DX;当 7 种状态都结束后重新开始;控制一次外循环显示时间;设置端口为 A 口;第一次选通最右数码管;显示数据到数码管;设置端口为B 口;选通数码管MOV DX,0EE00H ROL AH,1 INC SI CALL DELAY CALL KEY LOOP LOP6 DEC BP JNZ LOPX POP AX POP DX POP CX RETDISP ENDPKEY PROC NEAR PUSH AX MOV AH,0BH INT 21H OR AL,AL JZ GOON MOV DX,0EE00H MOV AL,0H OUT DX,AL MOV AH,4CH INT 21H

17、GOON:POP AXRETKEY ENDPDELAY PROC PUSH AX PUSH CX MOV AX,0002HLOPD: MOV CX,0H LOOP $ DEC AX;重新设置端口为 A 口;选择下一个数码管;选择下一个数据;检验按键是否有输入;循环,保持静态显示;检测键盘输入;没有键盘输入则继续显示;有任意输入则清空显示,跳出程序;外层循环;内层循环JNZ LOPDPOP CXPOP AXRETDELAY ENDPCODE ENDSEND MAIN六、 实验结果和心得体会这次实验是利用 8255 芯片进行并口接口的应用。由于数码管一次只能显示 一个,所以我们采用扫描显示的方法,

18、 把间隔时间调短, 使人眼感觉好像所有数 码管同时显示一样。 我们首先利用位选控制哪个数码管亮, 之后通过段选哪个数 码管显示什么。并且设置数码管静态显示出学号后六位“ 210646”。随后的动态显示也是一样,通过首地址移动,使 6 位字符串向“左”移动一 位,实现动态显示出“ HELLO”。我觉得这次实验最重要的是实现静态显示和动态显示的一种思想扫描 的思想通过快速扫描可以让人产生所有数码管同时显示的感觉。 并且,本次 实验的编程难度也有所提高,对于我们起到了一定的锻炼作用。实验三:8253计数器/定时器的应用实验目的学习掌握8253用作定时器的编程原理实验内容及要求完成一个音乐发生器,通过

19、蜂鸣器放出音乐,并在数码管上显示乐谱。 音符频率对照音符12345671 频率(Hz)256288320341384426 .6480512三、8253定时器I8253和I8254都是可编程计数器,它们的引脚兼容,功能与使用方法相同。I8254是I8253的改进型。1. 微机系统定时器和实验箱定时器(1)微机系统使用的8254,其3个通道均有固定的用途:0号计数器为系 统时钟源,每隔55ms向系统主8259IR0提一次中断请求;1号计数器用于动态 存储器的定时刷新控制;2号计数器为系统的发声源。用户在使用微机系统的时 候,可以使用0号和2号计数器,但不能改变对1号计数器的初始化。(2)实验箱上

20、的8253,其数据线D7 D0,地址线A1、A0和控制线RDWR通过总线驱动卡和微机系统的三总线相连。除此之外,三个计数器的引出段 和片选端都是悬空的,这意味着实验箱上的8253的三个计数器都归用户使用,你可以单独使用其中的一个计数器,也可以串联使用其中的2个或3个计数器。(3) 8253计数器的输入信号,其频率不能超过 2MHz,否则长时间使用, 芯片过热,容易烧毁。2. 8253初始化使用8253前,要进行初始化编程。初始化编程的步骤是: 向控制寄存器端口写入控制字对使用的计数器规定其使用方式等。 向使用的计数器端口写入计数初值。3.8253控制字D7D6D5D4D3 D3 DlDO|计数

21、器选择读写方式选择|工作方式选择数制选择|D7D6= 00:使用0号计数器,D7D6= 01 :使用1号计数器D7D6= 10:使用2号计数器,D7D6= 11 :无效D5D4= 00:锁存当前计数值D5D4= 01:只写低8位(高8位为0),读出时只读低8位D5D4= 10:只写高8位(低8位为0),读出时只读高8位D5D4= 11:先读/写低8位,后读/写高8位计数值D3D2D1 = 000:选择方式 0,D3D2D1 = 001 :选择方式 1D3D2D1 = X10:选择方式 2 , D3D2D1 = X11 :选择方式 3D3D2D1= 100:选择方式 4, D3D2D1= 101

22、 :选择方式 5D0= 0:计数初值为二进制,D0= 1:计数初值为BCD码数四、电路的调试与连接测试:在Debug状态下,用“O”命令测试8353的发生功能,3组通道工作 是否正常。电路连接:8253的CS接译码器输出丫1其地址为EE20-EE27H8253的OUT接蜂鸣器的BELL端8253的门控信号GATE接+5V8253 的 CLK端接 Q7 (32KHZ清零复位电路中的T/C端接地(或接RESETS)注意:由于8253计数速率应小于2MHz, CLK0的输入信号必须由8MHz经 393分频到小于2MHz后使用。393分频之后,Q0输出为4MHz, Q1输出为 2MHzQ7输出32KH

23、不编程提示:1. 8253 控制端口地址为 EE23H定时器 0 地址为 EE20H定时器 1 地址为 EE21H定时器 2 地址为 EE22H2. 定时器可工作在方式 3 下。五、实验连接图8253 定时器连接如图 3.5.1 所示,蜂鸣器电路、时钟预分频电路连接如图3.5.2 和 3.5.3 所示。52C;DO2U1Al20B1812DOD1D2D3EMD5D6D7辰R5CSA1AO0.1 uFCLKOo11J GATEO f、CLK1 77 OUTl u gate: 广、CIK2cun2 GATE:S253图3.5.1 8253定时器连接图san v+5图3.5.2蜂鸣器电路tUIA.心

24、皿!UiDM5EISIT4LMHJK准各下一个音和数据显示初始化数据图3.5.3时钟预分频电路六、程序流程图图3.6.1程序流程图1UKtMCW0MBCJ 卜 D Ini餐谓器响一声数码管显示音调设置工作口标志位USE! QAQBC1X QCCO七、 源代码DATA SEGMENT;数据段SONG DB 7DH,7DH,53H,53H,4BH,4BH,53HDB 5EH,5EH,64H,64H,6FH,6FH,7DHDB 53H,53H,5EH,5EH,64H,64H,6FHDB 53H,53H,5EH,5EH,64H,64H,6FHDB 7DH,7DH,53H,53H,4BH,4BH,53H

25、DB 5EH,5EH,64H,64H,6FH,6FH,7DH;音乐音符CONT EQU $-SONGNUM DB 21H,21H,0D9H,0D9H,0DDH,0DDH,0D9HDB 39H,39H,0F1H,0F1H,0F4H,0F4H,21HDB 0D9H,0D9H,39H,39H,0F1H,0F1H,0F4HDB 0D9H,0D9H,39H,39H,0F1H,0F1H,0F4HDB 21H,21H,0D9H,0D9H,0DDH,0DDH,0D9HDB 39H,39H,0F1H,0F1H,0F4H,0F4H,21H ;数码管字符DATA ENDSSTACK SEGMENTDB 100 DU

26、P(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA;SI存储音乐音符;DI 存储数码管字符MOV DS,AXMOV SI,OFFSET SONGMOV DI,OFFSET NUMMOV CX,CONT LOOP1: CMP BX,0JNZ CONTNMOV BX,07HCONTN: MOV DX,0EE23H;8253 控制字MOV AL,16H ;0 号计数器,只读写低 8位,工作方式 3,2进制 OUT DX,ALMOV DX,0EE20HMOV AL,SIOUT DX,AL;蜂鸣器响MOV DX,0EE03H;8255 控制字MOV AL,10001001B;方式 3 工作OUT DX,ALMOV DX,0EE01H;数码管位选MOV AL,01HOUT DX,ALMOV DX,0EE00H;数码管显示MOV AL,DIOUT DX,AL;数码管显示音符CALL DELA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论