微机原理综合实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机原理综合实验报告
目录
一.8255并行口实验
二.8259中断实验(一)三.8253定时/计数器实验
四.A/D转换实验
五.步进电机实验
六.综合实验:十字路口交通灯实验七.实验体会
四.8255并行口实验
1.实验目的:
(1)学习利用并行接口芯片8255构成并行接口电路的基本方法
(2)熟悉掌握并行接口芯片8255的基本性能及在时间应用中的硬件连接、初始化编程方法
2.实验内容:
编写程序,使8255的PB口为输出口,PA口为输入口,从PA口将K0~K7作为一个字节读入,在从PB口输出这一反码字节。

3.实验程序:
CODE SEGMENT
ASSUME CS:CODE
START:
MOV DX,21BH ;8255初始化命令字
MOV AL,90H
OUT DX,AL
BG: MOV DX,218H ;从PA口读入数据
IN AL,DX
XOR AL,FFH ;求反
MOV DX,219H
OUT DX,AL ;从PB口输出
JMP BG
CODE ENDS
END START
4.实验框图
5. 实验电路图
6.实验方法说明
通过8255控制字设定PA口为输入口,PB口为数据输出口,读取PA口的数值并通过求反指令将数据取反后,经由PB口输出。

8259中断实验(一)
1.实验目的:
(1)了解PC机的中断结构及8259中断控制器的初始化(2)熟悉8259中断控制器的工作原理和硬件连线方法(3)了解8259的应用和硬件编程方法
了解8259中断屏蔽
2.实验内容:
编写中断实验程序,主程序使8255的PB口为输出口,输出0FFH,L0~L7指示灯全亮,中断服务程序从PB口输出0FFH,L0~L3亮,L4~L7灭,并延时一段时间后返回主程序。

3.实验程序
INT0 EQU 220h
INT1 EQU 221h
P8255B EQU 219H
P8255K EQU 21BH
STACK SEGMENT
STA DB 50 DUP(?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK
START:
CLI
MOV AX,TOP
MOV SP,AX
PUSH DS
MOV AX,0000H ;定义IRQ0中断
MOV DS,AX
MOV AX,OFFSET IRQ0
ADD AX,0000H
MOV SI,20H
MOV [SI],AX
MOV AX,CS
MOV SI,22H
MOV [SI],AX
POP DS
MOV AL,13H ;对8259进行初始化ICW1
MOV DX,INT0
OUT DX,AL
MOV AL,8 ;对8259进行初始化ICW2 MOV DX,INT1
OUT DX,AL
MOV CX,0FFFFH
LOOP $
MOV AL,9 ;对8259进行初始化ICW4 MOV DX,INT1
OUT DX,AL
MOV CX,0FFFFH
LOOP $
MOV DX,INT1
MOV AL,0FEH ;对8259进行初始化OCW1
OUT DX,AL
MOV CX,0FFFFH
LOOP $
MOV DX,INT0 ;对8259进行初始化OCW2,普通EOI返回
MOV AL,20H
OUT DX,AL
MOV CX,0FFFFH
LOOP $
STI
MOV DX,P8255K ;对8255进行初始化
MOV AL,90H
OUT DX,AL
DSP: MOV AL,0FFH
MOV DX,P8255B
OUT DX,AL
JMP DSP
IRQ0: STI
MOV CX,0FFFFH
LOOP $
MOV AL,0FH
MOV DX,P8255B
OUT DX,AL
MOV DX,INT0
MOV AL,20H
OUT DX,AL
MOV CX,0FFFFH
LOOP $
MOV CX,0FFFFH
LOOP $
IRET
CODE ENDS
END START
4.实验框图
5. 实验电路图
6. 实验方法说明
主程序使8255输出高电平,实现L0~L7指示灯全亮。

设置中断IRQ0,实现L0~L3亮,L4~L7灭,并延时一段时间后返回主程序。

将中断向量的入口地址写入后,通过对8259初始化命令字的写入,实现中断的调用。

六.8259中断实验(二)
1. 实验目的
(1)了解PC机的中断结构及8259中断控制器的初始化(2)熟悉8259中断控制器的工作原理和硬件连线方法(3)了解8259的应用和硬件编程方法
(4)了解8259中断屏蔽,以及优先级的判别等特性
2.实验内容:
编写中断实验程序,主程序使8255的PB口为输出口,输出0FFH,L0~L7指示灯全亮,IR0中断服务程序从PB口输出0FH,L0~L3灯亮,L4~L7灯灭,并延时一段时间后返回主程序。

IR1中断服务程序从PB口输出0F0H,L0~L3灭,L4~L7亮,并延时一段时间后返回主程序。

3.实验程序
INT0 EQU 220h
INT1 EQU 221h
P8255B EQU 219H
P8255K EQU 21BH
STACK SEGMENT
STA DB 50 DUP(?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK
START:
CLI
MOV AX,TOP
MOV SP,AX
PUSH DS
MOV AX,0000H ;设置中断向量IRQ0
MOV DS,AX
MOV AX,OFFSET IRQ0
ADD AX,0000H
MOV SI,20H
MOV [SI],AX
MOV AX,CS
MOV SI,22H
MOV [SI],AX
MOV AX,0000H ;设置中断向量IRQ1
MOV DS,AX
MOV AX,OFFSET IRQ1
ADD AX,0000H
MOV SI,24H
MOV [SI],AX
MOV AX,CS
MOV SI,26H
MOV [SI],AX
POP DS
MOV AL,13H ;对8259进行初始化ICW1 MOV DX,INT0
OUT DX,AL
MOV AL,8 ;对8259进行初始化ICW2 MOV DX,INT1
OUT DX,AL
mov cx,0fffh
loop $
MOV AL,9 ;对8259进行初始化ICW4 MOV DX,INT1
OUT DX,AL
mov cx,0fffh
loop $
MOV DX,INT1
MOV AL,0FCH ;对8259进行初始化OCW1 OUT DX,AL
mov cx,0fffh
loop $
MOV DX,INT0
MOV AL,20H ; 普通EOI返回
OUT DX,AL
mov cx,0fffh
loop $
STI
MOV DX,P8255K ;对8255进行初始化
MOV AL,90H
OUT DX,AL
DSP: MOV AL,0FFH
MOV DX,P8255B
OUT DX,AL
JMP DSP
IRQ0: STI
MOV CX,0FFFFH
LOOP $
MOV AL,0FH
MOV DX,P8255B
OUT DX,AL
MOV DX,INT0
MOV AL,20H
OUT DX,AL
mov cx,0FFFFH
LOOP $
mov cx,0FFFFH
LOOP $
IRET
IRQ1: STI
mov cx,0FFFFH
LOOP $
MOV AL,0F0H
MOV DXP8255B
OUT DX,AL
MOV DX,INT0
MOV AL,20H
OUT DX,AL
mov cx,0FFFFH
LOOP $
mov cx,0FFFFH
LOOP $
IRET
code ends
end start
4.实验框图
5. 实验电路图
6. 实验方法说明
主程序使8255输出高电平,实现L0~L7指示灯全亮。

设置中断IRQ0,实现L0~L3亮,L4~L7灭,并延时一段时间后返回主程序。

设置中断IRQ1,实现L0~L3灭,L4~L7亮,并延时一段时间后返回主程序。

将中断向量的入口地址写入后,通过对8259初始化命令字的写入,使8259工作在全嵌套方式下,中断优先级IRQ0大于IRQ1,这样通过8259对中断的判断来实现中断的响应。

七.8253定时/计数器实验
1.实验目的:
(1)了解定时器8253的初始化及用法
(2)会用逻辑笔或示波器观察8253的工作状态
2实验内容:
编写程序,使8253工作的定时/计时器2工作在方式3下
3.实验程序:
TIM_CTL EQU 203H
TIMER0 EQU 200H
TIMER1 EQU 201H
TIMER2 EQU 202H
MODE23 EQU 0B6H
MODE13 EQU 76H
CODE SEGMENT
ASSUME CS:CODE
START:
TT:
CLI
MOV DX,TIM_CTL ;初始化8253 MOV AL,MODE23
OUT DX,AL
MOV DX,TIMER2 ;先写低8位
MOV AL,0FFh
OUT DX,AL
MOV AL,0FFh ;后写低8位
OUT DX,AL
WT: JMP WT
CODE ENDS
END START
4.实验框图
5.实验电路
6.实验方法说明
设置8253计时器工作在方式2实现分频器功能,将实验箱上的频率Q0经行65535分频,再由OUT口输出接到逻辑笔,观察逻辑笔的变化。

八.A/D转换实验
1.实验目的:
(1)了解模/数转换的工作原理
(2)掌握0809的使用方法
2.实验内容:
编写程序,用0809的IN0通道采集数据并在数码管上显示3.实验程序
B8279 EQU 212H
D8279 EQU 210H
LED0 EQU 00
LED1 EQU 38H
DATA SEGMENT
LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H DB 5EH,79H,71H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV DX,B8279 ;对8279进行初始化
MOV AL,0D0H
OUT DX,AL
MOV CX,0FFFFH
LOOP $
MOV DX,B8279
MOV AL,LED0
OUT DX,AL
MOV AL,LED1
OUT DX,AL
MOV DX,B8279
MOV AL,95H
OUT DX,AL
MOV DX,D8279 ;数码管显示
MOV AL,40H
OUT DX,AL
MOV DX,D8279
MOV AL,5eH
OUT DX,AL
MOV DX,D8279
MOV AL,77H
OUT DX,AL
TT: MOV DX,230H ;选通IN0通道
OUT DX,AL
MOV CX,0FFFFH
LOOP $
MOV DX,B8279
MOV AL,83H
OUT DX,AL
MOV DX,230H
IN AL,DX
AND AL,0FH
LEA BX,LED
XLAT
MOV DX,D8279
OUT DX,AL
MOV DX,B8279
MOV AL,84H
OUT DX,AL
MOV DX,230H
IN AL,DX
MOV CL,4H
ROR AL,CL
AND AL,0FH
LEA BX,LED
XLAT
MOV DX,D8279
OUT DX,AL
JMP TT
CODE ENDS
END START 4.实验框图
5.实验电路图
6.实验方法说明
通过A/D转换接口芯片0809实现模拟量到数据量的转变,并通过键盘显示芯片8279将转换后的数据量显示出来。

步进电机实验
1.实验目的:
(1)了解步进电机的工作原理,以及脉冲分配概念
(2)掌握计算机控制步进电机的方法
2.实验内容
编写程序,通过8255控制步进电机的旋转
3.实验程序
CODE SEGMENT
ASSUME CS:CODE
START:
MOV DX,21BH ;8255初始化
MOV AL,90H
OUT DX,AL
BG: MOV DX,218H
IN AL,DX
CMP AL,01H
JNZ C2
MOV BX,0FFFFH
JMP WORK
C2:
CMP AL,02H
JNZ C4
MOV BX,07FFFH
JMP WORK
C4:
CMP AL,04H
JNZ C8
MOV BX,0FFFH
JMP WORK
C8:
CMP AL,08H
JNZ CC
MOV BX,07FFH
JMP WORK
CC:
MOV AL,00H
MOV DX,219H
OUT DX,AL
JMP BG
WORK:
MOV AL,01H
MOV DX,219H
OUT DX,AL
MOV CX,BX
LOOP $
MOV AL,03H
MOV DX,219H
OUT DX,AL
MOV CX,BX
LOOP $
MOV AL,02H
MOV DX,219H
OUT DX,AL
MOV CX,BX
LOOP $
MOV AL,06H
MOV DX,219H
OUT DX,AL
MOV CX,BX
LOOP $
MOV AL,04H
MOV DX,219H
OUT DX,AL
MOV CX,BX
LOOP $
MOV AL,0CH
MOV DX,219H
OUT DX,AL
MOV CX,BX
LOOP $
MOV AL,08H
MOV DX,219H
OUT DX,AL
MOV CX,BX
LOOP $
MOV AL,09H
MOV DX,219H
OUT DX,AL
MOV CX,BX
LOOP $
JMP BG
CODE ENDS
END START
4.实验框图
5.实验电路图
初始化8255使PA口为输入口,PB口为输出口,通过判
别PA口的数据来使步进电机工作在不同的状态。

步进电机的旋转由OUT指令控制,实现步进电机按照预定指令旋转。

十.综合实验:十字路口交通灯实验
1.实验要求:
(1)正常情况下,红灯、绿灯5~10秒定时变化
(2)分别设置南北行人中断按钮和东西行人中断按钮,当行人过马路是绿灯亮并延时5秒
(3)设置紧急开关,当按下开关时所以路口的信号灯全为红色
2.发挥部分:
(1)红灯和绿灯转换之间设置黄灯,并且黄灯闪烁3次(2)紧急红灯按下时发出警报声
3.实验电路图
4.实验框图
5.实验程序
P8255A EQU 218H ;8255连接端口定义
P8255B EQU 219H
P8255C EQU 21AH
P8255K EQU 21BH
TIM_CTL EQU 203H ;8253连接端口定义TIMER0 EQU 200H
TIMER1 EQU 201H
INT0 EQU 220H ;8259连接端口定义
INT1 EQU 221H
MDAC EQU 228H ;0832连接端口定义
;'''''''''''''''''''''''
STACK SEGMENT STACK
STA DB 50 DUP(?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK
START: CLI
MOV AX,TOP
MOV SP,AX
PUSH DS
MOV AX,0000H ;定义中断向量IRQ0 MOV DS,AX
MOV AX,OFFSET IRQ0
ADD AX,0000H
MOV SI,20H
MOV [SI],AX
MOV AX,CS
MOV SI,22H
MOV [SI],AX
;'''''''''''''''''''''''''''
MOV AX,0000H ;定义中断向量IRQ1 MOV DS,AX
MOV AX,OFFSET IRQ1
ADD AX,0000H
MOV SI,24H
MOV [SI],AX
MOV AX,CS
MOV SI,26H
MOV [SI],AX ;............................
MOV AX,0000H ;定义中断向量IRQ2 MOV DS,AX
MOV AX,OFFSET IRQ2
ADD AX,0000H
MOV SI,28H
MOV [SI],AX
MOV AX,CS
MOV SI,2AH
MOV [SI],AX
POP DS
;............................
MOV DX,TIM_CTL ;计数器0工作在方式1构成单稳态触发器
MOV AL,00100010B
OUT DX,AL
MOV DX,TIMER0
MOV AL,0F0H ;只写低8位
OUT DX,AL
MOV DX,TIM_CTL
MOV AL,01110110B ;计数器1工作在方式3构成方波发生器
OUT DX,AL
MOV DX,TIMER1
MOV AL,0FFH ;写低8位
OUT DX,AL
MOV AL,0FFH ;写高8位
OUT DX,AL ;............................
MOV AL,13H ;初始化ICW1,沿触发且需要ICW4
MOV DX,INT0
OUT DX,AL
MOV CX,0FFFH
LOOP $
MOV AL,8 ;初始化ICW2,自定义8号中断
MOV DX,INT1
OUT DX,AL
MOV CX,0FFFH
LOOP $
MOV AL,9 ;初始化ICW3,自定义9号中断
MOV DX,INT1
OUT DX,AL
MOV CX,0FFFH
LOOP $
MOV AL,10 ;初始化ICW2,自定义10号中断
MOV DX,INT1
OUT DX,AL
MOV CX,0FFFH
LOOP $
MOV DX,INT1 ;设置命令字OCW1,只响应IR0、IR1、IR2
引脚中断请求
MOV AL,0F8H
OUT DX,AL
MOV CX,0FFFH
LOOP $
MOV DX,INT0 ;设置命令字OCW2,普通EOI命令 MOV AL,20H
OUT DX,AL
MOV CX,0FFFH
LOOP $
STI
;'''''''''''''''''''''''''''''
MOV DX,P8255K ;8255初始化, B口输出接LS240 MOV AL,10000001B
OUT DX,AL
;'''''''''''''''''''''''''''''
STATE1: MOV DX,P8255B ;东西红,南北绿
MOV AL,01011010B
OUT DX,AL
MOV CX,10 ;计时10秒
S1: CALL DELAY
LOOP S1
STATE2: MOV DX,P8255B ;东西绿,南北黄
MOV AL,00000101B
OUT DX,AL
CALL SHANSHUO
STATE3: MOV DX,P8255B ;东西绿,南北红
MOV AL,10100101B
OUT DX,AL
MOV CX,10 ;计时10秒
S3: CALL DELAY
LOOP S3
STATE4: MOV DX,P8255B ;东西黄,南北绿
MOV AL,00001010B
OUT DX,AL
MOV CX,3
CALL SHANSHUO
JMP STATE1 ;循环到状态STATE1,即东西红,南北绿;**----------------------------------------------------**
DELAY PROC ;延时子程序1,交通灯持续时间 PUSH CX
PUSH DX
MOV DX,20
DL500:
MOV CX,2801
DL10ms:
LOOP DL10ms
DEC DX
JNZ DL500
POP DX
POP CX
RET
DELAY ENDP
;**----------------------------------------------------**
HALF_DELAY PROC ;延时子程序2,黄灯闪烁时间 PUSH AX
PUSH CX
MOV AX,2
DELAY1:
MOV CX,50000
DELAY2:
LOOP DELAY2
DEC AX
JNZ DELAY1
POP CX
POP AX
RET
HALF_DELAY ENDP
;**----------------------------------------------------** SHANSHUO PROC ;黄灯闪烁子程序
PUSH AX
PUSH DX
PUSH CX
MOV CX,6
ZAIYICI: MOV DX,P8255B
IN AL,DX
CMP AL,00000101B
JZ FLITTER1
CMP AL,10101111B
JZ FLITTER1
CMP AL,00001010B
JZ FLITTER2
CMP AL,01011111B
JZ FLITTER2
FLITTER1:
CMP AL,00000101B
JZ MIE1
MOV AL,00000101B
OUT DX,AL
CALL HALF_DELAY
JMP HUI1
MIE1:
MOV AL,10101111B
OUT DX,AL
CALL HALF_DELAY
HUI1: DEC CX
JNZ ZAIYICI
JMP FANHUI
FLITTER2:
CMP AL,00001010B
JZ MIE2
MOV AL,00001010B
OUT DX,AL
CALL HALF_DELAY
JMP HUI2
MIE2:
MOV AL,01011111B
OUT DX,AL
CALL HALF_DELAY
JMP HUI2
HUI2: DEC CX
JNZ ZAIYICI
JMP FANHUI
FANHUI: POP CX
POP DX
POP AX
RET
SHANSHUO ENDP
;**----------------------------------------------------** WAVE PROC ;紧急事件呼叫子程序 PUSH AX
PUSH DX
PUSH CX
MOV DX,MDAC
MOV AL,00H
MOV CX,1000
NEXT:
OUT DX,AL
DEC AL
LOOP NEXT
JIESHU:
MOV DX,MDAC
MOV AL,00H
OUT DX,AL
POP CX
POP DX
POP AX
RET
WAVE ENDP
;**----------------------------------------------------**
IRQ0: PUSH AX ;紧急事件中断请求
PUSH DX
PUSH CX
STI
MOV CX,0FFFFH
LOOP $
CALL WAVE
MOV AL,11110000B
MOV CX,5
OOO: CALL DELAY
LOOP OOO
MOV DX,INT0
MOV AL,20H
OUT DX,AL
MOV CX,0FFFFH
LOOP $
MOV CX,0FFFFH
LOOP $
POP CX
POP DX
POP AX
IRET
;**----------------------------------------------------**
IRQ1: PUSH AX ;南北路口行人中断请求
PUSH DX
PUSH CX
STI
MOV CX,0FFFFH
LOOP $
MOV DX,P8255B
IN AL,DX
TEST AL,01011010B
JNZ WUXIAO1
CALL DELAY ;若南北红灯、东西绿灯,则延时1s后变为南
北绿灯、东西红灯并持续4s
MOV AL,01011010B
MOV DX,P8255B
OUT DX,AL
MOV CX,4
PPP: CALL DELAY
LOOP PPP
WUXIAO1: MOV DX,INT0
MOV AL,20H
OUT DX,AL
MOV CX,0FFFFH
LOOP $
MOV CX,0FFFFH
LOOP $
POP CX
POP DX
POP AX
IRET
;**----------------------------------------------------**
IRQ2: PUSH AX ;东西路口行人中断请求
PUSH DX
PUSH CX
STI
MOV CX,0FFFFH
LOOP $
MOV DX,P8255B
IN AL,DX
TEST AL,10100101B
JNZ WUXIAO2
CALL DELAY ;若南北绿灯、东西红灯,则延时3s后变为南北红灯、东西绿灯并持续5s
MOV AL,10100101B
MOV DX,P8255B
OUT DX,AL
MOV CX,4
QQQ: CALL DELAY
LOOP QQQ
WUXIAO2: MOV DX,INT0
MOV AL,20H
OUT DX,AL
MOV CX,0FFFFH
LOOP $
MOV CX,0FFFFH
LOOP
POP CX
POP DX
POP AX
IRET
;**----------------------------------------------------**
CODE ENDS
END START
6.实验设计思想说明
根据设计要求,主程序中循环执行交通灯的正常工作状态,设置8255为B口输出驱动LM240。

采用软件延时,红绿灯持续时间为10秒种,黄灯为过渡信号灯,并每隔0.5秒闪烁,闪烁4次,共持续2秒。

设置三个中断源,分别为紧急事件中断,南北行人中断和东西行人中断,优先级依次递减。

三个中断采用8259控制,其中紧急事件中断由计时器8253产生,南北行人中断和东西行人中断由单脉冲触发按键产生。

当出现紧急事件时,通过0832进行D/A变换产生锯齿波驱动喇叭发出警报。

7.设计过程中遇到的问题及解决方案
(1)紧急事件中断进不去
我在设计过程中是从易到难来设计的,就是说先设计一些基本功能,然后在逐渐添加新的功能。

在开始设置的两个行人中断工作以后,我又加入了紧急事件中断,但是在调试过程中,无法进入行人中断。

我反复地检查中断服务程序和硬件电路的连接没有发现任何问题。

最后当我检查8259的初始化程序部分发现控制命令字OCW1我没有改动,而在之前的设计中,我设定其只响应IR0和IR1引脚上的中断请求,这样的话就无论如何也不能响应我设定在IR2引脚上的中断请求了,因此我重新改写一下OCW1控制命令字,问题就解决了。

(2)8253产生的方波频率过快,导致信号灯不能持续发光
在初始设计阶段,我打算用8253来对信号灯的发光时间进行计时,但无论我怎样设置分频数值,8253的输出频率还是太高,导致LM240不能够持续发光。

因此,我选择了用软件延时的方式来控制信号的灯的放光时间,而用8253来
执行紧急红灯中断的延时。

设置8253的计数器1工作在方式3,计数器0工作在方式1单稳态触发器,并用按键来控制门控端,通过采用计时计数级联的方式解决了触发延时的问题。

(3)中断请求按键连续按下系统出现死机
在所有程序都检查无误,硬件电路也连接正确后,电路正常工作。

当我让同学来测试的时候,他开玩笑地连续按下行人中断按键后,系统死机。

我分析了很长时间也百思不得其解。

后来,当我通过查找资料和询问老师后,原理我在中断程序设计过程中没有添加延时指令,这样系统在执行过程中,一遇到中断便要求必须马上对外设进行操作,而我们知道外设的操作与指令执行时间相比还需要一段时间,如果这段时间系统又要求外设做另外的操作,系统很容易死机。

因此,为了使故障减小到最小化,我在每次执行外设操作时都附加了一条延时指令。

经过修改后,当再次连续按键时系统也不会死机了。

十一.实验体会
1. 通过这次实验,尤其是最后的综合实验,使我对硬件电路以及汇编语音有了更加深入的了解,对我将来进行硬件电路设计非常有帮助。

正如老师所期望的,我真正地体会到了一个硬件系统设计的全过程,我在设计过程中按照分析要求—总体设计—模块划分—编写程序—系统综合—硬件实现—系统调试一步一步来完成设计的,每一步出现问题我就可以迅速地分析问题找到解决方案,一直到最后的程序调试结束。

同时,我也积累了一些在硬件电路设计过程中的经验,比如说在开关按键出要设计消抖程序防止出现逻辑错误或触发错误等。

2. 在综合实验过程中,为了能够写出更简洁完善的程序,我查阅了很多参考书,借鉴了很多例子,但这些现成的例子毕竟和老师的要求不同,而且我们不能全部抄袭他人的,因此我在很多关键部分都进行了修改和完善,以使其完成老师要求的功能。

同时,我还有两处发挥了想象力。

第一个就是
我联系实际交通灯系统,在红绿交替中间还有黄灯的闪烁状态。

因此我就想在主程序中多加两个状态,用来实现黄灯闪烁。

至于闪烁子程序的实现,我参考了一个很巧妙的算法,就是用查询方式来对黄灯状态进行控制:当黄灯为亮时,让其灭,当黄灯为灭时,让其亮,再加上一个软件延时便实现了黄灯的闪烁。

其实,还可以用8253来实现黄灯的闪烁:通过中断方式,一旦黄灯亮,则进入响应的中断处理程序,在程序中调用8253使其工作在方式3方波发生器,合理设置分频数值便实现了黄灯的闪烁。

第二个想象力是打算将倒计时通过七段数码管显示出来,但遗憾的是在具体实现时发现不仅仅是简单地添加一段显示子程序,其工作量要比之前的程序还用多,因为还得设计计时计数器,用来实现倒计时。

最终也就没有实现。

3. 我认为这种教学方式真的有助于我们学生发挥自己的学习能力和创造力,是应该继续开展下去的。

这里我也有一些不成熟的建议,首先,我认为既然是动手实践是这门实验的核心,那我们学生应该有更多的机会去动手操作,也就是说我们的任务或作业可以更多一些,老师可以为我们找一些更具有代表性的课程设计来提高我们的能力。

其次,由于老师具有多年的工作经验我希望老师能够抽出一些时间来给我讲授一些在实际工作或设计工程中应该遵守的一些原则或者经验,虽然老师在课上讲了一些我们更渴望老师能够再多将一些。

第三,我希望我们的实验课时间能够延长一些,因为老师有很多内容都没有时间将,而老师的话对我们进行系统设计是非常重要的。

最后,我想老师如果在课程内容上再增加一些串行接口和并行接口的实验那就更好了,我们也会对计算机系统有一个更加全面的认识了。

以上只是我个人的建议,仅供老师参考,祝微机原理实验的教学方法能够越来越好!。

相关文档
最新文档