东华大学微机硬件课程设计实验报告_第1页
东华大学微机硬件课程设计实验报告_第2页
东华大学微机硬件课程设计实验报告_第3页
东华大学微机硬件课程设计实验报告_第4页
东华大学微机硬件课程设计实验报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、 微机硬件课程设计报告目 录实验1存储器读写实验.1实验2简单I/O口扩展实验.3实验38255并行口实验.4实验48253定时器/计数器接口实验.5实验58259中断控制器实验.7一、基础实验部分实验1存储器读写实验一、实验设备微机实验箱、8086CPU模块。2、 实验要求学会用使用工具软件,掌握用单步执行和断点方式运行程序,观察寄存器和内存中的数据变化等程序调试的手段。三、实验步骤1、实验接线:本实验无需接线。2、编写调试程序。3、运行实验程序,可采取单步、设置断点方式,打开内存窗口可看到内存区的变化。 四、思考题1、单步执行到“intram”标号的语句时,ds寄存器的数据是什么?采用断点

2、方式运行时执行到第一个断点处,2000H202FH内存单元的数据是什么?执行到第二个断点处,2000H200FH内存单元的数据是什么?并根据观察结果和对源程序的判读简述源程序的运行效果。答:ds寄存器的数据是0100H。2000H202FH内存单元的数据全是00。2000H200FH内存单元的数据是AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55。源程序的运行效果是在第一个间断点处可以把数据清零,在第二个间断点处即可完成赋值。2、修改程序,实现从2000H到200FH单元依次赋值00H0FH的功能。答:程序如下code segment assume

3、 cs:code org 0100h start: mov ax,0100h mov ds,ax ;数据段地址 mov es,ax mov si,1000h;偏移地址 mov cx,0010h;循环次数 mov al,0 ;将al清零intram: mov si,al inc si ;将偏移地址+1 inc al ;将al的值+1 loop intram nop ;设置断点处 jmp startcode ends end start 5、 出现的问题及解决过程序号出现的问题原因解决过程1不能得到内存单元的运行结果未在程序中设置断点在程序中设置正确断点22000H到200FH单元得不到00H0F

4、H设置的循环次数不对mov cx,0016h将循环次数改为mov cx,0010h实验2简单I/O口扩展实验1、 实验设备微机实验箱、8086CPU模块。二、实验要求 逻辑电平开关的状态输入74LS244,然后通过74LS273锁存输出,程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。三、实验步骤1、实验接线:CS0 CS244;CS1CS273;K1K8 IN0IN7;O0O7LED1LED8。2、编辑程序,单步运行,调试程序。3、调试通过后,全速运行程序,观看实验结果。四、思考题将74LS244的片选信号CS244改接CS2,将74LS273的片选信号CS273改接CS3,修

5、改程序实现与范例程序相同的功能。答:程序如下assume cs:code code segment public org 100hstart: mov dx,04c0h ;74LS244地址 in al,dx ;读输入开关量 mov dx,04d0h ;74LS273地址 out dx,al ;输出至LED jmp start code ends end start五、出现的问题及解决过程(无)实验38255并行口实验1、 实验设备微机实验箱、8086CPU模块。二、实验要求 8255A的A口作为输入口,与逻辑电平开关相连。8255A的B口作为输出口,与发光二极管相连。程序全速运行后,逻辑电平

6、开关的状态改变应能在LED上显示出来。三、实验步骤1、实验接线:CS0CS8255;PA0PA7 K1K8;PB0PB7LED1LED8。2、编程并全速或单步运行。3、全速运行时拨动开关,观察发光二极管的变化。当开关某位置于L时,对应的发光二极管点亮,置于H时熄灭。四、思考题修改接线CS2CS8255,并要求开关置“H”(下)位置时对应LED亮,修改程序实现相应功能。答:程序如下assume cs:codecode segment public org 100hstart: mov dx,04c6h;控制寄存器地址 mov ax,90h;设置为A口输入,B口输出 out dx,axstart1

7、: mov dx,04c0h;A口地址 in ax,dx;输入 mov dx,04c2h;B口地址not ax ;将ax取反 out dx,ax;输出 jmp start1code ends end start实验48253定时器/计数器接口实验1、 实验设备微机实验箱、8086CPU模块、示波器。二、实验要求了解8253计数器的不同工作方式,掌握其初始化控制字对定时/记数效果的影响。程序全速运行后,LED1按一定周期闪烁(周期理论值为0.2s),LED2在高频脉冲信号(约15KHz)影响下,有微弱的光亮,但无明显的周期变化现象。三、实验步骤1、实验连线:CS0CS8253;OUT08253C

8、LK2;OUT2LED1;OUT1LED2;CLK38253CLK0;CLK38253CLK1。2、编程调试程序。3、全速运行,观察实验结果。 四、思考题1、为什么说范例程序运行时LED1闪烁周期的理论值是0.2秒?在范例程序设置LED2的最大闪烁周期是多少?请分析说明。答:因为计数器二的初值为04h即十进制的4,那么LED1闪烁周期的理论值是t2=0.05*4=0.2。LED2的最大闪烁周期是0.05*(15*163+15*162+15*16+15)=3276.75s2、 修改片选信号接线使CS1和CS8253连接,并要求LED1的闪烁周期变为4秒(亮2秒,灭2秒),修改程序实现功能。ass

9、ume cs:codecode segment publicorg 100hstart:mov dx,04b6h;控制寄存器 mov ax,36h;计数器0,方式3 out dx,ax mov dx,04b0h mov ax,7Ch out dx,ax mov ax,92h out dx,ax;计数值927Ch mov dx,04b6h mov ax,76h;计数器1,方式3 out dx,ax mov dx,04b2h mov ax,32h out dx,ax mov ax,0;计数值32h out dx,ax mov dx,04b6h mov ax,0b6h;计数器2,方式3 out dx

10、,ax mov dx,04b4h mov ax,50h out dx,ax mov ax,0;计数值50h out dx,axnext: nop jmpnextcode ends end start 五、出现的问题及解决过程(无)实验58259中断控制器实验一、实验设备 微机实验箱、8086CPU模块。二、实验要求了解中断处理的原理,掌握利用中断控制器进行中断申请和中断操作的方法。全速运行程序,由上往下拨动开关时,相应位置的LED点亮,其余LED全灭。三、实验步骤1、实验接线:CS0 CS8259;CS3 CS273;O0O3LED1LED4;K1K4IR0IR3;INTINT;INTAINT

11、A2、编译调试程序3、全速运行程序,拨动某一电平开关,观察LED的亮灭情况。四、思考题1、 说明源代码8259初始化所设置的所有中断控制字的值和含义(按位说明)。答:ICW1: ICW2: ICW4: 2、 修改接线IR3P+(实验箱右下角),并修改源程序,使按实验箱右下角“Pules”键时LED1LED4全亮。答:程序如下assume cs:code code segment public org 100hstart: mov cx,0start1: climov dx,04a0h mov ax,13h ;00010011b单片8259a需要ICW4 out dx,ax ;ICW1, ICW

12、4 NEEDED mov dx,04a2hmov ax,80h ;10000000bout dx,ax ;ICW2 中断类型80hmov ax,01h;01 ;00000001bout dx,ax ;ICW4正常EOI,非缓冲方式mov ax,00hout dx,ax ;OCW1, 开放所有中断nop ;以上为8259初始化 mov ax,0mov ds,axmov di,200h ;初始化中断向量表mov ax,offset int0mov ds:di,axadd di,2mov ds:di,100hadd di,2mov ax,offset int1mov ds:di,axadd di,2

13、mov ds:di,100hadd di,2mov ax,offset int2mov ds:di,axadd di,2mov ds:di,100hadd di,2mov ax,offset int3mov ds:di,axadd di,2 ;上述程序为芯片8259的初始化程序 mov ds:di,100h ;建议不熟练者不要修改main:mov ax,0 sti ;开中断waiting:cmp ax,0h je waiting ;没发生中断,则等待nopnopmov dx,04d0hout dx,ax ;对应LED灯亮mov cx,0delay:loop delay ;数字滤波,按键去抖jm

14、p start1int0: cli ;关中断,以下类推nop ;此两行为IR0的中断服务程序mov ax,0feh ;用户可修改iret ;中断返回,以下类推int1:clinop ;此两行为IR1的中断服务程序mov ax,0fdh ;用户可修改iretint2:clinop ;此两行为IR2的中断服务程序mov ax,0fbh ;用户可修改iretint3:clinop ;此两行为IR3的中断服务程序mov ax,0f0h ;用户可修改iretcode endsend start五、出现的问题及解决过程序号出现的问题原因解决过程1LED1LED4灯没反应P+端接线错误重新接线二、综合设计实

15、验部分一、实验设备微机实验箱、8086CPU模块。二、实验要求红绿灯的定时切换(每10秒切换一次)设置灯光测试开关K1,当K1打开(高电平)时,LED1LED4全亮,关闭时恢复正常切换。三、实验步骤1、实验接线:CS08255CS;CS1CS8253;CLK38253CLK0;OUT08253CLK2OUT2PA0,PA1,PA2,PA3;PB0LED1;PB1LED4;PB2LED2;PB3LED3;PA4-K0 2、编辑程序,单步运行,调试程序。3、调试通过后,全速运行程序,观看实验结果。四、程序代码assume cs:codecode segment public org 100hsta

16、rt: movdx,04b6h ;控制寄存器 mov ax,36h;计数器0,方式3 out dx,ax mov dx,04b0h mov ax,7Ch out dx,ax mov ax,92h out dx,ax;计数值927Ch mov dx,04b6h mov ax,0b6h;计数器2,方式3 out dx,ax mov dx,04b4h mov ax,90h out dx,ax mov ax,01h;计数值190h out dx,axmov cx,9000h;计数movbl,0;为下面比较做准备 mov dx,04a6h;控制寄存器地址 mov ax,90h;设置为A口输入,B口输出

17、out dx,axstart1: mov dx,04a0h;A口地址 in ax,dx;输入 mov dx,04a2h;B口地址 cmpbl,0jnzextra;bl0extraxor ax,0ch;取相邻两位 mov bh,al;赋值存数again: out dx,ax;输出cmp bl,0jzstart2dec bljmpdelay;进入延时delaydelay:loopdelay mov cx,9000h start2: mov dx,04a0h ;A口地址 in ax,dx and ax,10h ;取A口PA5 cmp ax,10h ;比较是否为1 jz light ;为1进入light全亮灯 mov al,bh ;赋值取数 j

温馨提示

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

评论

0/150

提交评论