微机硬件课设(红绿灯)(推荐)_微机红绿灯课设

2020-02-28 其他范文 下载本文

微机硬件课设(红绿灯)(推荐)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“微机红绿灯课设”。

微机原理实验课程设计

硬件部分

东华大学信息学院

2013.1

一. 基础实验部分

实验1存储器读写实验

一、实验目的1.掌握PC机外存扩展的方法。2.熟悉6264芯片的接口方法。

3.掌握8086十六位数据存储的方法。

二、实验设备

微机实验箱、8086CPU模块。

三、实验内容

向02000~020FFH单元的偶地址送入AAH,奇地址送入55H。

四、实验原理介绍

本实验用到存储器电路

五、实验步骤和要求

1、实验接线:本实验无需接线。

2、编写调试程序

3、运行实验程序,可采取单步、设置断点方式,打开内存窗口可看到内存区的变化。本实验的主要目的是学会用使用工具软件,掌握用单步执行和断点方式运行程序,观察寄存器和内存中的数据变化等程序调试的手段。

六、实验提示

七、实验范例程序框图及源代码(实验程序名:RAM.ASM)

八、思考题

1、单步执行到“intram”标号的语句时,ds寄存器的数据是什么?采用断点方式运行时执行到第一个断点处,2000H~202FH内存单元的数据是什么?执行到第二个断点处,2000H~200FH内存单元的数据是什么?并根据观察结果和对源程序的判读简述源程序的运行效果。

答:单步执行到“intram”标号的语句时,ds寄存器的数据都为00。

断点方式运行时执行到第一个断点处时,2000H~202FH内存单元的数据都为00。

到第二个断点处,2000H~200FH内存单元偶地址都为AA,奇地址都为00。

2、修改程序,实现从2000H到200FH单元依次赋值00H~0FH的功能。答:只需改变intram 和 fil中相关的程序: 需改动的原程序:

intram: mov [si],al

incsi loopintram mov si,1000h;设置断点处 mov cx,100h mov ax,55aah fil:

mov [si],ax;RAM区循环置数 incsi

改为:

intram: mov [si],al incsi loopintram mov si,1000h;设置断点处

mov cx,100h mov ax,0100h fil:

mov [si],ax incsi addax,0202h incsi loopfil

;RAM区循环置数

实验2简单I/O口扩展实验

一、实验目的1、熟悉74LS273,74LS244的应用接口方法。

2、掌握用锁存器、三态门扩展简单并行输入、输出口的方法。

二、实验设备

微机实验箱、8086CPU模块。

三、实验内容

逻辑电平开关的状态输入74LS244,然后通过74LS273锁存输出,利用LED显示电路作为输出的状态显示。

四、实验原理介绍

本实验用到两部分电路:开关量输入输出电路,简单I/O口扩展电路。

五、实验步骤

1、实验接线:(表示相互连接)CS0 CS244; CS1CS273; 平推开关的输出K1~K8  IN0~IN7(对应连接); O0~O7LED1~LED8。

2、编辑程序,单步运行,调试程序

3、调试通过后,全速运行程序,观看实验结果。

4、编写实验报告。

六、实验提示

七、实验结果

程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。例如:K2置于L位置,则对应的LED2应该点亮。

八、实验范例程序框图(实验程序名: T244273.ASM)

九、程序源代码清单

十、思考题:

将74LS244的片选信号CS244改接CS2,将74LS273的片选信号CS273改接CS3,修改程序实现与范例程序相同的功能。

答:只需改变程序中start相应的输入输出口地址。需改动的原程序:

start:

mov dx,04a0h

inal,dx mov dx,04b0h outdx,al 改为:

start:

mov dx,04c0h

inal,dx mov dx,04d0h outdx,al

实验3 8255并行口实验

一、实验目的掌握8255A的编程原理。

二、实验设备

微机实验箱、8086CPU模块。

三、实验内容

8255A的A口作为输入口,与逻辑电平开关相连。8255A的B口作为输出口,与发光二极管相连。编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。

四、实验原理介绍

本实验用到两部分电路:开关量输入输出电路和8255可编程并口电路。

五、实验步骤

1、实验接线

CS0CS8255; PA0~PA7平推开关的输出K1~K8; PB0~PB7发光二极管的输入LED1~LED8。

2、编程并全速或单步运行。

3、全速运行时拨动开关,观察发光二极管的变化。当开关某位置于L时,对应的发光二极管点亮,置于H时熄灭。

六、实验提示

七、实验结果

程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。例如: K2置于L位置,则对应的LED2应该点亮。

八、实验范例程序框图及源代码(实验程序名:t8255.asm)

九、思考题:

1、修改接线CS2CS8255,并要求开关置“H”(下)位置时对应LED亮,修改程序实现相应功能。

答:改变相应的输入输出口地址,并将读入ax的值取反。

需改动的原程序: start:

mov dx,04a6h

mov ax,90h

out dx,ax

start1:

mov dx,04a0h

in ax,dx

mov dx,04a2h

out dx,ax

jmp start1 改动后: start:

mov dx,04c6h

mov ax,90h

out dx,ax

start1:

mov dx,04c0h

in ax,dx

mov dx,04c2h not

ax

out dx,ax

jmp start1

实验4 8253定时器/计数器接口实验

一、实验目的掌握8253定时器的编程原理,用示波器观察不同模式下的输出波形。

二、实验设备

微机实验箱、8086CPU模块、示波器。

三、实验内容

了解8253计数器的不同工作方式,掌握其初始化控制字对定时/记数效果的影响。

四、实验原理介绍

本实验用到两部分电路:脉冲产生电路、8253定时器/计数器电路

五、实验步骤

1、实验连线:

CS0CS8253OUT08253CLK2 OUT2LED1 OUT1LED2 CLK38253CLK0,CLK38253CLK12、编程调试程序

3、全速运行,观察实验结果

六、实验提示

七、实验结果

程序全速运行后,LED1按一定周期闪烁(周期理论值为0.2s),LED2在高频脉冲信号(约15KHz)影响下,有微弱的光亮,但无明显的周期变化现象。

八、实验范例程序框图及源代码(实验程序名:t8253.asm)

九、思考题:

1、为什么说范例程序运行时LED1闪烁周期的理论值是0.2秒?在范例程序设置LED2的最大闪烁周期是多少?请分析说明。

答:因为T2采用OUT0的输出为时钟,且T2中设置初值为04h,则OUT2输出方波周期为4*0.05s=0.2s 因为OUT1LED2,则LED2的周期即为计数器T1的周期,且T1的计数初值由程序知为32h=50d,所以最大周期为50*4/3*10^6=6.67x10^-5s。

2、修改片选信号接线使CS1和CS8253连接,并要求LED1的闪烁周期变为4秒(亮2秒,灭2秒),修改程序实现功能。答:因为4/0.05=80d=50h,所以只需改变相应的计数值和片选接口地址。

需改动的原程序: mov ax,0b6h

out dx,ax mov dx,04a4h mov ax,04h out dx,ax mov ax,0 out dx,ax 改动后:

mov ax,0b6h

out dx,ax mov dx,04b4h mov ax,50h out dx,ax mov ax,0 out dx,ax 其余列出的程序段都只要将片选接口地址中的a改为b即可。

实验5 8259中断控制器实验

一、实验目的1、掌握8259A的工作原理。

2、掌握编写中断服务程序方法。

3、掌握初始化中断向量的方法。

二、实验设备

微机实验箱、8086CPU模块。

三、实验内容

了解中断处理的原理,掌握利用中断控制器进行中断申请和中断操作的方法。

四、实验原理介绍

本实验用到三部分电路:电平开关电路、简单I/O口扩展电路和8259中断控制器电路。

五、实验步骤

1、实验接线

CS0CS8259

CS3 CS273 O0~O3LED1~LED4

K1~K4IR0~IR3 INTINT(8086CPU板)INTAINTA(8086CPU板)CS0CS8253OUT08253CLK2 OUT2LED1 OUT1LED2 CLK38253CLK0,CLK38253CLK12、编译调试程序

3、全速运行程序,拨动某一电平开关,观察LED的亮灭情况。

六、实验提示

七、实验结果

全速运行程序,由上往下拨动开关时,相应位置的LED点亮,其余LED全灭。

八、实验范例程序框图及源代码(实验程序名:t8259.asm)

九、思考题:

1、说明源代码8259初始化所设置的所有中断控制字的值和含义(按位说明)。

答:ICW1为初始化字,13h即00010011b,对应于边沿触发,间距为8,单片8259A,需要ICW4。

ICW2为中断类型码字,80h即10000000b,对应于IR0~IR7的中断类型码为80h~87h。

ICW3为中断结束方式字,01h即00000001b,对应于普通全嵌套方式,非缓冲方式,正常EOI,8086/8088模式。

OCW1为屏蔽控制字,00h即00000000b,对应于8为全部复位屏蔽。

2、修改接线IR3P+(实验箱右下角),并修改源程序,使按实验箱右下角“Pules”键时LED1~LED4全亮。

答:改变程序最后IR2的中断服务程序的设定值,即由0fbh改为0f0h.二、综合设计实验部分

一、设计要求

参考基础实验的实验1~实验5所使用的硬件和范例程序,设计一个简单的红绿灯控制系统,用LED1~LED4表示两组红绿灯,每组红灯、绿灯各1只。要求实现以下功能:

(1)红绿灯的定时切换(每10秒切换一次)

(2)设置灯光测试开关K1,当K1打开(高电平)时,LED1~LED4全亮,关闭后恢复正常。

二、实验设备

微机实验箱、8086CPU模块。

三、实验内容

了解中断处理的原理,掌握利用中断控制器进行中断申请和中断操作的方法。

四、实验原理介绍

本实验用到五部分电路:电平开关电路、简单I/O口扩展电路和8259中断控制器电路,脉冲产生电路、8253定时器/计数器电路

五、实验步骤

1、实验接线

CS0CS8259CS0CS8253 CS0CS273 O0LED101LED2 02LED403LED3 INTINT(8086CPU板)INTAINTA(8086CPU板)OUT08253CLK2 OUT2IR0 OUT1k1 IR1k1CLK38253CLK0,CLK38253CLK12、编译调试程序

3、全速运行程序,观察结果。

六、实验提示

(1)定时功能可利用8253实现,利用定时器输出作为中断申请,利用中断处理切换LED的显示;LED状态可用内存保存或用I/O口读取。

(2)测试功能运行可在主循环中通过I/O口读取开关状态后判定,或利用中断处理方式运行。

七、实验结果

全速运行程序,LED1和LED3为一组,LED12和LED4为一组,两组灯每亮10秒切换一次,拨动k1开关,观察是否出现LED1~LED4全亮,关闭后恢复正常。

八、程序框图及源代码

ASSUME

CS:CODE CODE SEGMENT

PUBLIC

ORG

100H START:

MOV

CX,0

MOV

BX,0FAH START1:

CLI

MOV

DX,04A0H

MOV

AX,13H

OUT

DX,AX

;ICW1, ICW4 NEEDED

MOV

DX,04A2H

MOV

AX,80H

OUT

DX,AX

;ICW2 中断类型80h

MOV

AX,01H

;01

OUT

DX,AX

;ICW4

MOV

AX,00H

OUT

DX,AX

;OCW1, 开放所有中断

NOP

;以上为8259初始化

MOV

AX,0

MOV

DS,AX

MOV

DI,200H

;初始化中断向量表

MOV

AX,OFFSETINT0

MOV

DS:[DI],AX

ADD

DI,2

MOV

DS:[DI],100H

ADD

DI,2

MOV

AX,OFFSET INT1

MOV

DS:[DI],AX

ADD

DI,2

MOV

DS:[DI],100H

ADD

DI,2

MOV

AX,OFFSET INT2

MOV

DS:[DI],AX

ADD

DI,2

MOV

DS:[DI],100H

ADD

DI,2

MOV

AX,OFFSETINT3

MOV

DS:[DI],AX

ADD

DI,2

;上述程序为芯片8259的初始化程序

MOV

DS:[DI],100H

;建议不熟练者不要修改。

MOV

DX,04A6H

;控制寄存器

MOV

AX,36H

;计数器0,方式3

OUT

DX,AX

MOV

DX,04A0H

MOV

AX,7CH

OUT

DX,AX

MOV

AX,92H

OUT

DX,AX

;计数值927Ch

MOV

DX,04A6H

MOV

AX,0B6H

;计数器2,方式3

OUT

DX,AX

MOV

DX,04A4H

MAIN:

WAITING:

DELAY:

INT0:

NOT

INT1:

MOV

INT2:

INT3:

NOP

MOV

CODE

MOV

AX,90H

OUT

DX,AX

MOV

AX,01H

;计数初值0190h

OUT

DX,AX

MOV

AX,0H

STI

;开中断。

CMP

AX,0H

JE

WAITING

;没发生中断,则等待

NOP

NOP

MOV

DX,04A0H

OUT

DX,AX

;对应LED灯亮

MOV

CX,0

LOOP

DELAY

;数字滤波,按键去抖

JMP

START1

CLI

;关中断。以下类推。

NOP

;此两行为IR0的中断服务程序 BX

;输出取反

MOV

AX,BX

;用户可修改。

IRET

;中断返回,以下类推。

CLI

NOP

;此两行为IR1的中断服务程序,AX,0F0H

;用户可修改。

IRET

CLI

NOP

;此两行为IR2的中断服务程序,MOV

AX,0F5H

;用户可修改。

IRET

CLI

;此两行为IR3的中断服务程序,AX,0F7H

;用户可修改。

IRET

ENDS

END

START

九.运行结果调试问题及解决方法

1.对于亮10秒钟的时间设定问题,一开始是算好初值为190h,直接将其赋给AX而忽略了其高位低位的情况,导致验证结果时总是只有3秒左右,发现后改为先低位后高位复制即达到设定要求:

MOV

AX,90H OUT

DX,AX

MOV

AX,01H

;计数初值0190h

OUT

DX,AX

2.对于拨动k1开关后LED1~LED4全亮的情况,一开始实验结果总是四个灯都亮但都只保持10秒的设定时间,之后又恢复到两组灯每亮10秒切换一次的情况。当将开关量k1改为脉冲输入的时候发现每一次脉冲信号也可以产生相同的实验结果,由此想到所设计的程序运行周期的情况,一次中断的产生与有效作用的时间只在这一总线周期内,因此可以在原有中断的基础上再人为的加上周期小于总线周期的脉冲有效信号,使其在k1为高电平时期不断地执行中断程序,因此可在k1有效时使LED1~LED4一直保持全亮,而k1低电平后又恢复原状态,具体操作为将脉冲输出out1也接到k1上

《微机硬件课设(红绿灯)(推荐).docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
微机硬件课设(红绿灯)(推荐)
点击下载文档
相关专题 微机红绿灯课设 红绿灯 微机 硬件 微机红绿灯课设 红绿灯 微机 硬件
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文