ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:699.43KB ,
资源ID:11146798      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11146798.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理报告图文.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理报告图文.docx

1、微机原理报告图文微原硬件实验报告 班级:08211108 班学号:08210234班内序号:19姓名:王绪东实验一 熟悉实验环境及IO 的使用一, 实验目的1. 通过实验了解和熟悉实验台的结构, 功能及使用方法。2. 通过实验掌握直接使用 Debug 的 I、O 命令来读写 IO 端口。3. 学会 Debug 的使用及编写汇编程序二,实验内容1. 学习使用 Debug 命令, 并用 I、O 命令直接对端口进行读写操作,2. 用汇编语言编写跑马灯程序。(使用 EDIT 编辑工具 实现功能A. 通过读入端口状态(ON 为低电平, 选择工作模式(灯的闪烁方式、速度等 。B. 通过输出端口控制灯的工作

2、状态(低电平灯亮三,实验步骤1. 实验板的 IO 端口地址为 EEE0H在 Debug 下,I 是读命令。(即读输入端口的状态-拨码开关的状态O 是写命令。(即向端口输出数据-通过发光管来查看进入 Debug 后,读端口 拨动实验台上八位拨码开关输入 I 端口地址回车屏幕显示 xx 表示从端口读出的内容, 即八位开关的状态 ON 是 0,OFF 是 1 写端口输入 O 端口地址 xx (xx 表示要向端口输出的内容 回车查看实验台上的发光二极管状态,0 是灯亮,1 是灯灭。2. 在 Debug 环境下, 用 a 命令录入程序, 用 g 命令运行CDebug -amov dx, 端口地址mov

3、al, 输出内容out dx, almov ah, 0bhint 21horjz al, al 0100int 20h-g运行查看结果 ,修改输出内容再运行查看结果分析mov ah, 0bhint 21horjz al, al 0100int 20h该段程序的作用3. 利用 EDIT 工具编写汇编写跑马灯程序程序实现功能A. 通过读入端口状态(ON 为低电平, 选择工作模式(灯的闪烁方式、速度等 。B. 通过输出端口控制灯的工作状态(低电平灯亮 CEDIT 文件名.asm 录入程序按 Alt 键 打开菜单 进行存盘或退出编译文件CMASM 文件名.asm连接文件CLINK 文件名.obj运行文

4、件 或用 Debug 进行调试。四,程序流程图图表 1:实验1的程序流程图五,源程序代码assume cs:code,ds:datadata segmentcount dw 0 data endscode segmentinit: mov dx,datamov ds,dxmov dx,0eee0hmov bh,0fehbegin: in al,dxmov bl,al ; 将al 暂存在bl 中test al,80h ; 第七位为暂停键jz begintest al,40h ; 第六位控制左右移动jz rightmleftm: mov al,bhout dx,alcall delayrol al

5、,1mov bh,almov ah,0bh ; 调用0B 中断,检测是否有按键,有按键则退出,否则跳至startint 21hor al,aljz beginmov ax,4c00hint 21hrightm: mov al,bhout dx,alcall delayror al,1mov bh,almov ah,0bh ; 调用0B 中断,检测是否有按键,有按键则退出,否则跳至startint 21hor al,aljz beginmov ax,4c00hint 21hdelay procand bl,3fh ; 用al 的后面六位控制延时时间 mov cl,blxor ch,chadd c

6、x,1 ; 当cl 为0时,循环次数会变成0FFFFH ,故需要对cx 进行+1处理s1: mov count,cxmov cx,0ffffhs2: noploop s2mov cx,countloop s1retdelay endpexit: mov ax,4c00hint 21hcode endsend init六,实验中遇到的问题及解决方法一,由于这时第一次做微机原理硬件实验,一开始感到比较茫然,对in 和out 命令的使用不大熟练,之后通过翻阅教材,查看in 和out 命令的使用方法,编出了程序,之后主要剩下的问题主要是调试cx 的值,使得LED 便于观察。 二,本实验采用低六位控制延

7、时,低六位越大,跑灯越慢,但当低六位为0时,延时最大,违反逻辑。解决方法:当cx 为0时,循环次数为0FFFFH ,导致延时最大,将cx 进行+1处理后,问题解决。七,实验收获和体会在这次实验中,通过实验掌握直接使用 Debug 的 I、O 命令来读写 IO 端口,在编程中熟悉了in 和out 命令的用法,并对硬件连接有了进一步的认识,对硬件知识加加深了理解,在本次实验中尝试了对于微机接口的控制。通过控制发光二极管的亮与灭,结合相关程序的设计,我们实现了一个简单的跑马灯程序。结合查询拨码开关的状态,能够实现点亮发光二极管的方向、模式和速度的调整。这个跑马灯实验的程序使用的是简单的分支结构。通过

8、在Debug 环境下的I/O命令,我们测试了外设功能,这使我们了解了地址与端口的对应情况,从而明确了跑马灯程序编写的流程和注意事项。通过该译码电路实验,我掌握了地址译码电路的设计方法和实现原理,对硬件的I/O接口技术有了进一步的认识。这次实验也为以后的实验打下了基础,特别是,应先理解了译码电路的工作原理,然后才能进行编程。实验二 8255A并行接口应用一, 实验目的1. 掌握 8255A 的功能及方式 0、1 的实现2. 熟悉 8255A 与 CPU 的接口, 以及传输数据的工作原理及编程方法。3. 了解七段数码管显示数字的原理。4. 掌握同时显示多位数字的技术。二,实验内容在实验一的基础上学

9、习 PIO 芯片(8255编程应用, 熟悉平台的主要内容。 CS 用 Y0 (EE00H(一 简要说明:在方式 0(输入/输出 下, 以 A 口为输出口,B 口为输出口, A 口接六个共阴极数码 管的八位段码, 高电平点亮数码管的某一段, B 口接数码管的位选(即要使哪个数码管亮, 高电平选中某一位数码管点亮。 8255A 中A 端口地址 EE00HB 端口地址 EE01HC 端口地址 EE02H控制地址 EE03H 八段数码管的显示规律及数码管的位选规律自己查找, 可用实验一中, 学过的 I、O 命令来做。(二6 位数码管静态显示 在数码管电路上静态地显示 6 位学号, 当主机键盘按下任意键

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

11、态显示字符串 HELLO, 当 主机键盘按下任意键时结束。三,程序流程图程序一:静态显示学号 程序二 动态显示hello 11四,源程序代码程序一:显示静态学号assume cs:code,ss:stack,ds:datadata segmentmesg db 0ddh,0d9h,39h,0f1h,0f4h,21h ; 要显示的学号(654321)对应的数码管控制字节point dw mesgnumber db 1data endsstack segmentdb 100 dup (0stack endscode segmentinit: mov dx,datamov ds,dxmov dx,s

12、tackmov ss,dxmov sp,100mov al,80hmov dx,0ee03hout dx,als: mov bx,pointmov number,1mov cx,6s4: mov dx,0ee01hmov al,numberout dx,almov dx,0ee00hmov al,bx;point 存储mesg 的首地址 ;number 控制哪个管亮 ; 初始化 对8255的控制端口进行初始化 要显示6位数,大的循环次数为6 ; 端口0EE01控制那个管亮 ; 端口0EE00控制亮什么 12 ; ;out dx,al call delay inc bx ; 调用延时 ;bx+1

13、,显示下一个数字 ; 将number 左移一位,控制下一个数码管亮 rol number,1 loop s4 mov ah,0bh int 21h or al,al jz s mov ax,4c00h int 21h ; 检测键盘缓冲区,有按键则退出delay procpush cx mov cx,4h ; 延时子程序 ; 保护最外层的CXs1: push cxmov cx,0fffhs2: loop s2pop cx loop s1 pop cx ret ; 返回保存的CXdelay endpcodeends end init程序二:动态显示HELLOassume cs:code,ss:st

14、ack,ds:datadata segmentmesg db 0,0,0,0,0,0,3Dh,0dch,8ch,8ch,0edh,0point dw mesg ; 要显示的字符 ; 指针point 控制显示内容 13number db 1data endsstack segmentdb 100 dup (0 stack endscode segmentinit: mov dx,data mov ds,dxmov dx,stackmov ss,dxmov sp,100mov al,80hmov dx,0ee03h out dx,als1: mov cx,7 s2: mov bx,pointcal

15、l displayinc pointloop s2mov point ,offset mesg 初始化mov ah,0bhint 21hor al,aljz s1mov ax,4c00hint 21hdisplay proc push cx; 对8255的控制端口0ee03h 进行初始化 ; 显示完完整的hello 后,重新进行检测键盘缓冲区,有按键则退出 ; 其功能相当于程序一,控制静态显示一行 14 ;mov dx,0eee0h 时间in al,dxmov cl,almov ch,0add cx,0f0h s3: push cxmov number,1 mov cx,6mov bx,poi

16、nt s4: mov dx,0ee01h mov al,number out dx,almov dx,0ee00h mov al,bxout dx,alcall delayinc bxrol number,1 loop s4pop cxloop s3pop cxretdisplay endpdelay proc push cxmov cx,4hs5: push cxmov cx,0fffh; 利用八个开关的状态来控制每一行停留的 ; 调整cx, 使得数码管显示便于观察 ; 延时子程序 15s6: loop s6pop cx loop s5 pop cx retdelay endp codeen

17、dsend init五,实验中遇到的问题及解决方法一 静态显示中主要是对延迟时间的控制,通过调整cx ,最终获得比较满意的显示。二动态显示中由于使用的循环嵌套比较多,要注意保存和恢复cx, 本实验采用堆栈的方法,很好得保存和恢复了cx, 并借鉴实验一,利用八个开关的状态来控制每一行停留的时间,使得显示更可控。六,实验心得与体会这次实验中,我们使用8255A 并行接口芯片和数码管实现了一个数码管的静态和动态显示字符的程序。在实验过程中我遇到了很多困难,现在想来也许是4个微机接口原理硬件按实验中最难的一个。这也许是由于课本的教学进度滞后于实验进度,我们不太清楚8255A 的工作原理和编程要点。首先

18、,我们对于数码管的8段LED 灯对应的端口地址并不清楚,所以要在Debug 环境下使用I/O指令对其进行测试,确定下来这8段LED 灯的地址,之后才可以根据所要输出的字符给出正确的编码。第二个比较重要,而且也比较困扰我的问题是延时和数码管选通控制。由于数码管是共阴极/共阳极的,如果不对选通信号进行控制,则它们在同一时间只能显示同一字符。为了实现同时显示不同字符,就要通过扫描(依次点亮数码管)的方式来实现,这就要给CAT 信号依次赋值,并且在扫描的过程中要用到延时。动态显示的程序设计思想与静态时的大体相同,只是对动态的每一种状态进行一段时间的静态显示然后换状态而已,所以通过一个二层循环就能很好地

19、解决这个问题。通过这次实验,我在编程过程中学到了很多东西,不但巩固了书本的知识,而且体会到了编程的过程中思维必须很缜密,否则写出来的程序常会导致无法运行甚至死机。实验三 8253计数器/定时器的应用一,实验目的学习掌握8253用作定时器的编程原理二,实验内容1 完成一个音乐发生器,通过蜂鸣器放出音乐,并在数码管上显示乐谱。 三,电路测试与连接测试:在Debug 状态下,用“O ”命令测试8353的发生功能,3组通道工作是否正常。电路连接: 8253的CS 接译码器输出Y1 其地址为EE20-EE27H 8253的OUT 接蜂鸣器的BELL 端 8253的门控信号GATE 接+5V 8253的C

20、LK 端接Q7(32KHz清零复位电路中的T/C端接地(或接RESET 端)注意:由于8253计数速率应小于2MHz ,CLK0的输入信号必须由8MHz 经393分频到小于2MHz 后使用。393分频之后,Q0输出为4MHz ,Q1输出为2MHz Q7输出32KHz 。 编程提示:18253控制端口地址为EE23H 定时器0地址为EE20H 定时器1地址为EE21H 定时器2地址为EE22H 2. 定时器可工作在方式3下。四,程序流程图 图表 2:音乐发声器程序流程图五,源程序代码首先附上两只老鼠的简谱: data segment freq db125,111,100,125,125,111,

21、100,125,100,94,83,100,94,83,83,75,83,94,100,125,83,75,83,94,100,125,111,83,125,111,83,125 count equ $-freq show db21h,0f4h,0f1h,21h,21h,0f4h,0f1h,21h,0f1h,39h,0d9h,0f1h,39h,0d9h,0d9h, 0ddh,0d9h,39h,0f1h,21h,0d9h,0ddh,0d9h,39h,0f1h,21h,0f4h,0d9h,21h,0f4h ,0d9h,21h ; 在数码管上显示对应的音符 time db2,2,2,2,2,2,2,

22、2,2,2,4,2,2,4,1,1,1,1,2,2,1,1,1,1,2,2,2,2,4,2,2,4 ;每一个音符持续的时间 data ends stack segmentdb 100 dup(?;freq 数据段中存放两只老虎的简谱stack ends code segmentassume cs:code,ds:data,ss:stackstart: mov dx, datamov ds, dx mov al, 00010110b mov dx, 0ee23h; 对8253进行初始化,是计数器0工作在方式3下out dx, al mov al, 10000000b mov dx, 0ee03h

23、 out dx, al mov al, 01h mov dx, 0ee01h out dx, al mov si, 0 mov ch, 0mov cl, count; 端口0ee00控制显示对应的音符; 端口0ee01控制那个管亮; 对8255A 进行初始化cycle: mov dx, 0ee00hmov al, showsi out dx, al mov al, freqsi mov dx, 0ee20h; 不同频率,对应不同初值; 通过对端口0ee20福初值,产生对应频率的方波out dx, al mov intah, 0bh 21h; 检测键盘缓冲区,有按键则退出or al, al jn

24、z exit call delay inc si loopcycle; 调用延时子程序mov si, 0 mov ch, 0 mov cl, count jmp cycle; 退出之前,再次初始化,否则程序exit: mov al, 00010110b退出后,bell 将一直持续下去mov dx, 0ee23hout dx, almov ax, 4c00hint 21hdelay proc nearpush cxmov ch, 0mov cl, timesiloop1: push cxmov dx, 0eee0hin al, dxmov ch, almov cl, 0ffhloop2: pus

25、h cxmov cx, 0ffffhloop3: loop loop3pop cxloop loop2pop cxloop loop1pop cxretdelay endpcode ends延时子程序 通过八个开关状态来控制整体音乐的快慢 ; ;end start六,思考题写出8253计数初值、输入频率和输出频率的关系。答:输出频率 = 输入频率 / 8253计数初值最后计算得: 七,实验中遇到的问题及解决方法由于对8253计数器的使用不熟悉,在初始化的时候遇到了一些问题,主要是对计数初值的输入方式,计数初值的格式,基础器工作方式等等一些内容的设置,解决之后后面的编程比较容易。 八,实验心得与

26、体会通过这次实验,我们学习了8253计数器的使用方法。我们最先了解到的是8253的初始化,包括对于计数器的选择,计数初值的输入方式,计数初值的格式,基础器工作方式等等一些内容的设置。之后通过加深对各种工作方式的理解,确定下来可以使用方式2或方式3来进行计数器的输出。因为在这两个方式下8253可以充当分频器。而在本实验中我选用了方式3,原因是方式2并非输出方波波形。根据讲义上给出的各个音符的频率,以及8253计数器的输入频率,并通过公式:(输出频率 = 输入频率 / 8253计数初值) ,我计算得到各个音阶对应的计数初值。有了以上的准备,就可以进行实际的编程了。对于乐曲的播放,选用的是逐个发出相

27、应乐音并显示相应乐符的方法。总体来说,本实验的程序比较简单,只要按要求写入几个计数器的控制字和初值即可,只是在写入的时候要注意控制字写入同一个端口(其实8253内部会加以区分并存入不同的寄存器),但各个计数器有自己的端口,在写入计数初值时不要写错端口。而8253的时钟信号是由500KHZ 信号由8MHZ 时钟经74LS393分频获得。通过本实验,我了解了8253的各种工作方式的特点,由8253的编程可以延伸出很多应用(函数发生器,计数器等等)。实验四 串行8215A 实验一, 实验目的1. 了解串行通信的一般原理和 8251A 的工作原理2. 初步了解 RS232 串行口标准及与 TTL 电路

28、的连接方法;3. 学会扩充 8251A 的方法, 并设计实现用 8251A 进行数据传输;4. 掌握 8251A 的编程方法。二,实验内容(一 自收自发:采用查询方式:将内存制定区域内存放的一批数据通过 8251A 的 TXD 发 送出去, 然后从 RXD 接收回来, 并在屏幕上或数码管上显示出来。 1. 连接线路, 即: 1.8MHz 信号接分频器 74LS393 的 CLK 端(已接好 ,从 74LS393 的 Q4 (250kHz接 8253 的 CLK;T/C 接地或接 RESET2.GATE 接+5V;3.8253 的 OUT 和 8251A 的 TXC、RXC 相连, 作为发送时钟

29、和接收时钟;4.8251A 的 CS 和 Y2 相连,Y2 地址为 EE40-EE47H;5.8253 的 CS 和 Y1 相连,Y1 地址为 EE20-EE27H; 6.用导线将 TXD 和 RXD 相接, 成为自发自收方式;7.CTS 端必须为低电平(实验台中已接为低电平,8251A 才可想外发送信号, RTS 、DTR 、DSR 可不用。(但实验台中 RTS、DTR 、DSR 均已接地三,实验步骤1. 按原理图连接所需连线;2. 在检测连线无误的情况下, 方可开启电源。3. 运行调试程序, 发送数据被接收后应正确无误地显示出来。提示:8251A 数据口地址 EE40H,控制口地址 EE4

30、1H8253 控制口地址 EE23H8253 通道 0 地址 EE20H8253 通道 1 地址 EE21H8253 通道 2 地址 EE22H四,程序流程图图表 3:8251应用程序流程图 五,源程序代码 assume cs:code,ds:data data segment buffer db Receive successfully! $-buffer ;发送的数据 count equ data ends code segment start: mov mov ax, ds, data ax mov mov out dx, al, dx, 0ee23h 00010110b al ;对 0ee23h 进行初始化 mov mov dx, al, 0ee20h 7 ;采用 2400b/s 的波特率,16 的波特因子, 则发送,接收频率为 2400*16=38400hz out dx, al mov mov out dx, al, dx, 0ee41h 40h al ;对 8251 复位 26 call delay mov out al, dx, 01001110b al ;方式控制字 call delay mov out al, dx, 37h al ;命令

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1