东华大学微机硬件实验报告.doc_第1页
东华大学微机硬件实验报告.doc_第2页
东华大学微机硬件实验报告.doc_第3页
东华大学微机硬件实验报告.doc_第4页
东华大学微机硬件实验报告.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

东华大学微机原理实验班级:电气姓名: 学号:东华大学信息学院硬件实验部分一、综合设计实验部分一、设计要求参考基础实验的实验1实验5所使用的硬件和范例程序,设计一个简单的红绿灯控制系统,用LED1LED4表示两组红绿灯,每组红灯、绿灯各1只。要求实现以下功能:(1) 红绿灯的定时切换(每10秒切换一次)(2) 设置灯光测试开关K1,当K1打开(高电平)时,LED1LED4全亮,关闭时恢复正常切换。提示:(1) 定时功能可利用8253实现,利用定时器输出作为中断申请,利用中断处理切换LED的显示;LED状态可用内存保存或用I/O口读取。(2) 测试功能运行可在主循环中通过I/O口读取开关状态后判定,或利用中断处理方式运行。二、报告要求:1 外围芯片信号连接原理图(与CPU连接部分可省略)2 程序的流程图、源代码和源代码行中必要的注释3 调试中遇到的问题和解决方法三、程序源代码及流程框图:assume cs:code code segment public org 100hst: mov dx,04c0h ;74LS244地址 in al,dx ;读输入开关量 mov dx,04d0h ;74LS273地址 out dx,al ;输出至LEd test al,18h jne start jmp ststart: 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;计数值927C mov dx,04b6h mov ax,0b6h;计数器2,方式3 out dx,ax mov dx,04b4h mov ax,90h out dx,ax mov ax,01 out dx,ax next: nopstart1: mov dx,04a6h;控制寄存器地址 mov ax,90h;设置为A口输入,B口输出,c口输出 out dx,ax mov dx,04c0h ;74LS244地址 in al,dx ;读输入开关量 test al,18h je ststart2: mov dx,04a0h ;A口地址 in ax,dx;输入 mov dx,04a2h;B口地址 out dx,ax;输出 mov dx,04a4h;c口地址 not ax out dx,ax;输出 mov dx,04c0h ;74LS244地址 in al,dx ;读输入开关量 test al,18h je st jmp start2 jmp nextcode endsend st四:解决问题及原理图二、基础实验部分实验1 存储器读写实验一、实验设备 微机实验箱、8086CPU模块。二、实验步骤和要求1、实验接线:本实验无需接线。2、编写调试程序3、运行实验程序,可采取单步、设置断点方式,打开内存窗口可看到内存区的变化。三 、思考题源程序代码及流程框图code segment assume cs:code org 0100hstart: mov ax,0100h mov ds,ax;数据段地址 mov es,ax mov si,1000h;偏移地址 mov cx,010h;循环次数 mov al,0intram: mov si,al inc si loop intram ;清零 mov si,1000h;设置断点处 mov cx,10h mov di,0fil: mov ax,dimov si,al ;RAM区循环置数inc di inc si loop fil nop;设置断点处 jmp startcode ends end start 四、 思考题:1、 单步执行到“intram”标号的语句时,ds寄存器的数据是什么?采用断点方式运行时执行到第一个断点处,2000H202FH内存单元的数据是什么?执行到第二个断点处,2000H200FH内存单元的数据是什么?并根据观察结果和对源程序的判读简述源程序的运行效果。2 、修改程序,实现从2000H到200FH单元依次赋值00H0FH的功能。解决问题:刚开始,没有注意将循环次数改掉,CX依旧弄成了100H,后来弄成010H,正好和要求一样。之后的目标单元置数是正确的,符合要求。实验2 简单I/O口扩展实验一、 实验设备 微机实验箱、8086CPU模块。二、实验步骤1、实验接线:(表示相互连接)CS2 CS244; CS3CS273; 平推开关的输出K1K8 IN0IN7(对应连接); O0O7LED1LED8。2、编辑程序,单步运行,调试程序3、调试通过后,全速运行程序,观看实验结果。4、编写实验报告。三、思考题源程序代码及流程框图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四、思考题:将74LS244的片选信号CS244改接CS2,将74LS273的片选信号CS273改接CS3,修改程序实现与范例程序相同的功能。解决问题:这个思考题修改没出什么问题,就是把信号改接的位置换了一下,编程序时,将地址改一下,就成功了。实验3 8255并行口实验一、实验设备 微机实验箱、8086CPU模块。二、实验步骤1、实验接线CS2CS8255; PA0PA7 平推开关的输出K1K8; PB0PB7发光二极管的输入LED1LED8。2、编程并全速或单步运行。3、全速运行时拨动开关,观察发光二极管的变化。当开关某位置于H时,对应的发光二极管点亮,置于L时熄灭。三、思考题源程序代码及流程框图assume cs:code code segment public org 100hstart: mov dx,04c6h;控制寄存器地址 mov ax,90h;设置为A口输入,B口输出 out dx,axstart1: mov dx,04c0h;A口地址 in ax,dx;输入 xor ax,0ffffh mov dx,04c2h;B口地址 out dx,ax;输出 jmp start1code endsend start四、思考题:1、修改接线CS2CS8255,并要求开关置“H”(下)位置时对应LED亮,修改程序实现相应功能。解决问题:和第二个实验一样,将CS8255的接线地址换一下,没出问题。但我和搭档在之后的取反时弄错了,弄成了00000H,后来实验结果不对,想了一下,发现这个有错误,就改成了0ffffH。结果对了。实验4 8253定时器/计数器接口实验一、实验设备 微机实验箱、8086CPU模块、示波器。二、实验步骤1、实验连线:CS1CS8253 OUT08253CLK2 OUT2LED1 OUT1LED2CLK38253CLK0,CLK38253CLK12、编程调试程序3、全速运行,观察实验结果三、思考题源程序代码及流程框图assume cs:codecode segment publicorg 100hstart:mov dx,04b6h;控制寄存器mov ax,36h;计数器0,方式3out dx,axmov dx,04b0hmov ax,7Chout dx,axmov ax,92hout dx,ax;计数值927Chmov dx,04b6hmov ax,76h;计数器1,方式3out dx,axmov 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,ax mov dx,04b4h mov ax,50h out dx,ax mov ax,0;计数值50h out dx,axnext:nopjmpnextcode ends end start 四、思考题:1、 为什么说范例程序运行时LED1闪烁周期的理论值是0.2秒?在范例程序设置LED2的最大闪烁周期是多少?请分析说明。2、 修改片选信号接线使CS1和CS8253连接,并要求LED1的闪烁周期变为4秒(亮2秒,灭2秒),修改程序实现功能。解决问题:依旧将CS8253的接线地址改一下,没出问题,然后将T2的数值弄成之前的20倍。结果正确。实验58259中断控制器实验一、实验设备 微机实验箱、8086CPU模块。二、实验步骤1、实验接线CS0 CS8259 CS3 CS273 O0O3LED1LED4 K1K3IR0IR2 INTINT( 8086CPU板) INTAINTA(8086CPU板) IR3P+2、编译调试程序3、全速运行程序,拨动某一电平开关,观察LED的亮灭情况。“且按Pules”键时LED1LED4全亮。三、思考题源程序代码及流程框图assume cs:code code segment public org 100hstart:movcx,0start1: climov dx,04a0h mov ax,13h out dx,ax;ICW1, ICW4 NEEDED movdx,04a2hmov ax,80hout dx,ax ;ICW2 中断类型80hmov ax,01h;01out dx,ax ;ICW4mov 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,100hadddi,2mov ax,offset int1mov ds:di,axadd di,2mov ds:di,100hadddi,2mov ax,offset int2mov ds:di,axadd di,2mov ds:di,100hadddi,2mov ax,offset int3mov ds:di,axadd di,2 ;上述程序为芯片8259的初始化程序 mov ds:di,100h ;建议不熟练者不要修改。main: movax,0sti ;开中断。waiting:cmp ax,0h je waiting ;没发生中断,则等待nopnopmov dx,04d0houtdx,ax ;对应LED灯亮movcx,0delay:loopdelay ;数字滤波,按键去抖jmp start1int0: cli ;关中断。以下类推。nop ;此两行为IR0的中断服务程序movax,0feh ;用户可修改。iret ;中断返回,以下类推。int1:clinop ;此两行为IR1的中断服务程序,movax,0fdh ;用户可修改。iretint2:clinop ;此两行为IR2的中断服务程序,movax,

温馨提示

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

评论

0/150

提交评论