实用标准文档 微机原理综合实验报告 文案大全 实用标准文档 目录 一. 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 MOV DX,INT0 OUT DX,AL MOV AL,8 MOV DX,INT1 OUT DX,AL MOV CX,0FFFFH LOOP $ MOV AL,9 MOV DX,INT1 OUT DX,AL MOV CX,0FFFFH LOOP $ MOV DX,INT1 MOV AL,0FEH ;对 8259 进行初始化 ICW1 ;对 8259 进行初始化 ICW2 ;对 8259 进行初始化 ICW4 ;对 8259 进行初始化 OCW1 文案大全 OUT DX,AL MOV CX,0FFFFH LOOP $ MOV DX,INT0 MOV AL,20H OUT DX,AL MOV CX,0FFFFH LOOP $ STI MOV DX,P8255K MOV AL,90H OUT DX,AL DSP: MOV AL,0FFH MOV DX,P8255B OUT DX,AL JMP DSP 实用标准文档 ;对 8259 进行初始化 OCW2,普通 EOI 返回 ;对 8255 进行初始化 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 MOV AL,90H OUT DX,AL DSP: MOV AL,0FFH MOV DX,P8255B OUT DX,AL JMP DSP ;对 8255 进行初始化 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 MOV OUT DX,B8279 AL,95H 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 MOV OUT DX,B8279 AL,84H 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.实验电路图 6.实验方法说明 文案大全 实用标准文档 初始化 8255 使 PA 口为输入口,PB 口为输出口,通过 判别 PA 口的数据来使步进电机工作在不同的状态。步进电 机的旋转由 OUT 指令控制,实现步进电机按照预定指令旋 转。 十.综合实验:十字路口交通灯实验 1.实验要求: (1)正常情况下,红灯、绿灯 5~10 秒定时变化 (2)分别设置南北行人中断按钮和东西行人中断按钮,当 行人过马路是绿灯亮并延时 5 秒 (3)设置紧急开关,当按下开关时所以路口的信号灯全为 红色 2.发挥部分: (1)红灯和绿灯转换之间设置黄灯,并且黄灯闪烁 3 次 (2)紧急红灯按下时发出警报声 3.实验电路图 文案大全 实用标准文档 文案大全 4.实验框图 实用标准文档 文案大全 实用标准文档 5.实验程序 P8255A EQU 218H P8255B EQU 219H P8255C EQU 21AH P8255K EQU 21BH TIM_CTL EQU 203H TIMER0 EQU 200H TIMER1 EQU 201H INT0 EQU 220H INT1 EQU 221H MDAC EQU 228H ;''''''''''''''''''''''' 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 ;8255 连接端口定义 ;8253 连接端口定义 ;8259 连接端口定义 ;0832 连接端口定义 文案大全 实用标准文档 MOV AX,0000H 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 ;定义中断向量 IRQ0 ;''''''''''''''''''''''''''' MOV AX,0000H 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 文案大全 ;定义中断向量 IRQ1 ;定义中断向量 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 MOV AL,00100010B OUT DX,AL MOV DX,TIMER0 MOV AL,0F0H OUT DX,AL MOV DX,TIM_CTL MOV AL,01110110B OUT DX,AL MOV DX,TIMER1 MOV AL,0FFH OUT DX,AL ;计数器 0 工作在方式 1 构成单稳态触发器 ;只写低 8 位 ;计数器 1 工作在方式 3 构成方波发生器 ;写低 8 位 文案大全 MOV AL,0FFH OUT DX,AL ;............................ MOV AL,13H MOV DX,INT0 OUT DX,AL MOV CX,0FFFH LOOP $ MOV AL,8 MOV DX,INT1 OUT DX,AL MOV CX,0FFFH LOOP $ MOV AL,9 MOV DX,INT1 OUT DX,AL MOV CX,0FFFH LOOP $ MOV AL,10 MOV DX,INT1 OUT DX,AL MOV CX,0FFFH 文案大全 实用标准文档 ;写高 8 位 ;初始化 ICW1,沿触发且需要 ICW4 ;初始化 ICW2,自定义 8 号中断 ;初始化 ICW3,自定义 9 号中断 ;初始化 ICW2,自定义 10 号中断 实用标准文档 LOOP $ MOV DX,INT1 IR2 引脚中断请求 MOV AL,0F8H OUT DX,AL MOV CX,0FFFH LOOP $ MOV DX,INT0 MOV AL,20H OUT DX,AL MOV CX,0FFFH LOOP $ STI ;''''''''''''''''''''''''''''' MOV DX,P8255K MOV AL,10000001B OUT DX,AL ;''''''''''''''''''''''''''''' STATE1: MOV DX,P8255B MOV AL,01011010B OUT DX,AL MOV CX,10 ;设置命令字 OCW1,只响应 IR0、IR1、 ;设置命令字 OCW2,普通 EOI 命令 ;8255 初始化, B 口输出接 LS240 ;东西红,南北绿 ;计时 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 文案大全 MIE1: 实用标准文档 JZ MIE1 MOV AL,00000101B OUT DX,AL CALL HALF_DELAY JMP HUI1 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. 我认为这种教学方式真的有助于我们学生发挥自己的 学习能力和创造力,是应该继续开展下去的。这里我也有一 些不成熟的建议,首先,我认为既然是动手实践是这门实验 的核心,那我们学生应该有更多的机会去动手操作,也就是 说我们的任务或作业可以更多一些,老师可以为我们找一些 更具有代表性的课程设计来提高我们的能力。其次,由于老 师具有多年的工作经验我希望老师能够抽出一些时间来给 我讲授一些在实际工作或设计工程中应该遵守的一些原则 或者经验,虽然老师在课上讲了一些我们更渴望老师能够再 多将一些。第三,我希望我们的实验课时间能够延长一些, 因为老师有很多容都没有时间将,而老师的话对我们进行系 统设计是非常重要的。最后,我想老师如果在课程容上再增 加一些串行接口和并行接口的实验那就更好了,我们也会对 计算机系统有一个更加全面的认识了。以上只是我个人的建 议,仅供老师参考,祝微机原理实验的教学方法能够越来越 文案大全 好! 实用标准文档 文案大全