东华大学微机硬件实验报告.doc

上传人:scccc 文档编号:13991730 上传时间:2022-01-29 格式:DOC 页数:15 大小:332KB
返回 下载 相关 举报
东华大学微机硬件实验报告.doc_第1页
第1页 / 共15页
东华大学微机硬件实验报告.doc_第2页
第2页 / 共15页
东华大学微机硬件实验报告.doc_第3页
第3页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《东华大学微机硬件实验报告.doc》由会员分享,可在线阅读,更多相关《东华大学微机硬件实验报告.doc(15页珍藏版)》请在三一文库上搜索。

1、东华大学微机原理实验班级:电气姓名:学号:东华大学信息学院硬件实验部分、综合设计实验部分一、设计要求参考基础实验的实验 1实验 5 所使用的硬件和范例程序,设计一个简单的 红绿灯控制系统,用LED1LED表示两组红绿灯,每组红灯、绿灯各1只。要求 实现以下功能:(1) 红绿灯的定时切换(每 10 秒切换一次) 设置灯光测试开关K1,当K1打开(高电平)时,LED1LED全亮,关闭时 恢复正常切换。提示:(1) 定时功能可利用 8253实现,利用定时器输出作为中断申请, 利用中断处理 切换LED的显示;LED状态可用内存保存或用I/O 口读取。(2) 测试功能运行可在主循环中通过 I/O 口读取

2、开关状态后判定,或利用中断 处理方式运行。、报告要求:1 外围芯片信号连接原理图(与CPU连接部分可省略)2 程序的流程图、源代码和源代码行中必要的注释3 调试中遇到的问题和解决方法 三、程序源代码及流程框图 : assume cs:codecode segment publicorg 100hst: mov dx,04c0h ;74LS244 地址 in al,dx ; 读输入开关量 mov dx,04d0h ;74LS273 地址out dx,al ; test al,18h jne start jmp st输出至 LEdstart:movdx,04b6h;控制寄存器movax,36h;

3、计数器 0 ,方式 3outdx,axmovdx,04b0hmovax,7Choutdx,axmovax,92houtdx,ax; 计数值 927Cmovdx,04b6hmovax,0b6h; 计数器 2 ,方式 3outdx,axmovdx,04b4hmovax,90houtdx,axmov ax,01outdx,axnext:nopstart1:movdx,04a6h; 控制寄存器地址movax,90h; 设置为 A 口输入, B 口输出, c 口输出outdx,axmov dx,04c0h ;74LS244 地址 in al,dx ; 读输入开关量 test al,18hje ststa

4、rt2: mov dx,04a0h ;A 口地址in ax,dx ; 输入mov dx,04a2h ;B 口地址out dx,ax mov dx,04a4h not ax; 输出;c 口地址; 输出 ;74LS244地址in al,dx ;test al,18hje stjmp start2jmp nextcodeendsendst读输入开关量out dx,ax mov dx,04c0h四:解决问题及原理图二、基础实验部分实验 1 存储器读写实验一、实验设备微机实验箱、8086CPU莫块。二、实验步骤和要求1、实验接线 : 本实验无需接线。2、编写调试程序3、运行实验程序,可采取单步、设置断点

5、方式,打开内存窗口可看到内存 区的变化。三 、思考题源程序代码及流程框图code segmentassume cs:code org 0100hstart:mov ax,0100hmov ds,ax mov es,ax; 数据段地址mov si,1000h; 偏移地址mov cx,010hmov al,0; 循环次数intram:mov si,al inc siloop intram ;清零mov si,1000h; 设置断点处mov cx,10hmov di,0fil:mov ax,dimov si,al ;RAM区循环置数inc diinc siloop filnop;设置断点处jmp s

6、tartcode ends end start四、思考题:1、单步执行到“ intram ”标号的语句时,ds寄存器的数据是什么?采用 断点方式运行时执行到第一个断点处,2000H202FF内存单元的数据是 什么?执行到第二个断点处,2000H200FH内存单元的数据是什么?并 根据观察结果和对源程序的判读简述源程序的运行效果。2、修改程序,实现从2000H到200FH单元依次赋值00H0FH的功能 解决问题:刚开始,没有注意将循环次数改掉,CX依旧弄成了 100H,后来弄成010H, 正好和要求一样。之后的目标单元置数是正确的,符合要求。实验2 简单I/O 口扩展实验一、实验设备微机实验箱、

7、8086CPU莫块。二、实验步骤1、实验接线:(表示相互连接)CS2h CS244 CSCS273 平推开关的输出 K1K8IN0IN7 (对 应连接);O0O7 LEDLED82、编辑程序,单步运行,调试程序3、调试通过后,全速运行程序,观看实验结果。4、编写实验报告。三、思考题源程序代码及流程框图assume cs:codecode segme nt publicorg 100hstart:mov dx,04c0h;74LS244地址in al,dx ;读输入开关量mov dx,04d0h ;74LS273地址out dx,al ;输出至 LEDjmp startcode endsend

8、start四、思考题:将74LS244的片选信号CS244改接CS2将74LS273的片选信号CS273改接 CS3修改程序实现与范例程序相同的功能。解决问题:这个思考题修改没出什么问题,就是把信号改接的位置换了一下,编 程序时,将地址改一下,就成功了。实验3 8255 并行口实验、实验设备微机实验箱、8086CPU莫块、实验步骤1、实验接线CS能CS8255 PA0PA 平推开关的输出 K1K8; PB0PB&发光 二极管的输入LEDLED82、编程并全速或单步运行。3、 全速运行时拨动开关,观察发光二极管的变化。当开关某位置于H时, 对应的发光二极管点亮,置于 L时熄灭。三、思考题源程序代

9、码及流程框图assume cs:codecode segme nt publicorg 100hstart:mov dx,04c6h;控制寄存器地址mov ax,90h ;设置为A 口输入,B 口输出 outdx,axstart1:mov dx,04c0h;A 口地址inax,dx;输入xor ax,0ffffhmovdx,04c2h;B 口地址outdx,ax;输出jmpstart1codeendsendstart四、思考题:1、修改接线CS禺CS8255并要求开关置“ H (下)位置时对应LED亮,修 改程序实现相应功能。解决问题:和第二个实验一样,将CS8255的接线地址换一下,没出问题

10、。但我 和搭档在之后的取反时弄错了,弄成了 00000H后来实验结果不对,想了一下, 发现这个有错误,就改成了 0ffffH。结果对了。实验4 8253定时器/计数器接口实验一、实验设备微机实验箱、8086CPU模块、示波器。二、实验步骤1、实验连线:CS1 CS8253 OUT0 8253CLK2 0UT2 LED1 OUT1 LED2CLK 8253CLK0 CLK3 8253CLK12、编程调试程序3、全速运行,观察实验结果三、思考题源程序代码及流程框图assume cs:codecode segme nt publicorg 100hstart:movdx,04b6h;控制寄存器mov

11、ax,36h;计数器0,方式3outdx,axmovdx,04b0hmovax,7Choutdx,axmovax,92houtdx,ax;计数值927Chmovdx,04b6hmovax,76h;计数器1,方式3outdx,axmovdx,04b2hmovax,32houtdx,axmovax,0;计数值32outdx,axmovdx,04b6h;计数器2,方式3outdx,axmovdx,04b4hmovax,50houtdx,axmovax,0outdx,axmovax,0b6h;计数值50hn ext:nopjmp next code endsend start四、思考题:0.2秒?在范

12、例程序1、为什么说范例程序运行时LED1闪烁周期的理论值是设置LED2的最大闪烁周期是多少?请分析说明。2、修改片选信号接线使CS1和CS8253连接,并要求LED1的闪烁周期变为4秒(亮2秒,灭2秒),修改程序实现功能。解决问题:依旧将CS8253勺接线地址改一下,没出问题,然后将T2的数值弄成 之前的20倍。结果正确。实验58259中断控制器实验、实验设备微机实验箱、8086CPU模块、实验步骤1、实验接线CSO CS8259 CS3 CS273 0003 LEDL LED4 K1 K3 IR0 IR2 INT INT( 8086CPU 板)INTA INTA (8086CPUK) IR3

13、,P+2、编译调试程序3、全速运行程序,拨动某一电平开关,观察LED的亮灭情况。“且按Pules” 键时LED1LED全亮。三、思考题源程序代码及流程框图assume cs:codestart: start1:code segme nt publicorg 100hmovcx,0climovdx,04a0hmovax,13houtdx,ax;ICW1, ICW4 NEEDEDmovdx,04a2hmovax,80houtdx,ax;ICW2中断类型80hmovax,01h;01outdx,ax;ICW4movax,00houtdx,ax;OCW1,开放所有中断nop;以上为8259初始化mov

14、ax,0movds,axmovdi,200h;初始化中断向量表movax,offset int0movds:di,axadddi,2movds:di,100hadddi,2movax,offset int1movds:di,axadddi,2movds:di,100hadddi,2movax,offset int2movds:di,axadddi,2movds:di,100hadddi,2movax,offset int3movds:di,axadddi,2 ;上述程序为芯片 8259 的初始化程序movds:di,100h; 建议不熟练者不要修改。main: movax,0sti; 开中断。

15、waiting:cmpax,0hjewaiting; 没发生中断,则等待nopnopmovdx,04d0houtdx,ax;对应LED灯亮movcx,0delay: loopdelay; 数字滤波,按键去抖jmpstart1int0: cliJ关中断。以下类推。nopJ此两行为 IR0 的中断服务程序movax,0feh; 用户可修改。iretJ中断返回,以下类推。int1:clinopJ此两行为 IR1 的中断服务程序,movax,0fdh ;用户可修改。iretint2:clinopJ此两行为 IR2 的中断服务程序,movax,0fbh; 用户可修改。iretint3:clinopJ此两行为 IR3 的中断服务程序,movax,0f0h; 用户可修改。iretcode ends end start开始8259初始化开中断AX输出中断服务流程延时四、思考题:1、 说明源代码8259初始化所设置的所有中断控制字的值和含义(按位说 明)。2、修改接线IR3 P+(实验箱右下角),并修改源程序,使按实验箱右下角“Pules 键时LED1LED全亮。解决问题:将IR3的接线地址换成P+,之后的IR3中断服务程序的ax输入改成 OfOH.实验结果刚好如预期。没出问题。Welcome !欢迎您的下载,资料仅供参考!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1