成绩 微机原理与汇编语言 综合性实验 交通灯控制系统设计 学 学 号 号 姓 姓 名 名 班 班 级 级 微机原理与汇编语言 综合性实验任务书 实验项目名称:交通灯控制系统设计 课程名称:微机原理与汇编语言 面向专业:信息与计算科学专业 计划学时:4 学时=实验课内 2 学时+实验课外 2 学时 实验类型: √ 综合 设计 实验目的:掌握典型数字接口电路的应用技术原理,掌握常用接口芯片在应用系统中的硬件电路连接原理和软件编程方法。 实验要求:包括开发环境要求,技术文档要求两部分。 开发环境要求: 软件环境: /windowsXP/ 硬件环境:计算机(Pen4CPU, 256MRAM,60G 以上硬盘,输入输出设备) 技术文档要求: 按照实验报告编写要求进行。要求流程图绘制规范,软、硬件功能描述清晰,实验总结深刻。 实验内容: 1 熟悉并行接口 8255、中断控制器、定时器的工作原理及相关芯片。 2 掌握数字接口电路设计应用原理,根据系统功能用汇编语言编写相关程序。 实验方案(任务提示):按照时间控制原则,利用并行接口和定时器,采用时间中断方式设计电路。按照系统板上硬件连线要求,在 START ES598PCIS 位微机教学实验仪上连好相关线路并将实验仪与 PC 机连好。根据软件设计的程序流程编写源程序,可自行控制通行时间、禁止时间及准备时间,周而复始。再将源程序在相应的环境中进行编译连接和运行,以实现控制交通灯的功能。 实验仪器设备:每个学生一台计算机、START ES598PCIS 位微机教学实验仪、 实验报告版式要求 A4 纸张打印;上下页边距各 2.5cm,左右页边距各 3.0cm,页眉 1.5cm页脚 1.75cm;页码位于页脚居中打印;奇数页页眉“微机原理与汇编语言综合性实验”,偶数页页眉“交通灯控制系统设计”,页眉宋体小 5 号,一级标题:黑体三号粗体字;二级标题:黑体 4 号;三级标题黑体小 4 号,正文,宋体 5 号。 实验报告装订顺序与规范 封面 交通灯控制系统设计综合实验任务书 交通灯控制系统设计综合实验报告 左边缘装订 微机原理与汇编语言综合性实验报告 实验项目名称:交通灯控制系统设计 专业班级: ;姓名: ;学号 : 实验起止日期: 2015 年 12 月 22 日起 2015 年 12 月 29 日止 实验目的: 实验要求: 实验内容: (包括基本原理及相关芯片介绍、引脚或电路原理图、程序设计流程图等包括基本原理及相关芯片介绍、引脚或电路原理图、程序设计流程图等, 内容切不可雷同!!) 实验讨论 微机原理与汇编语言实验收获与总结 切记,我们是综合性实验,不是课程设计,注意用语 参考文献 附录:源程序代码 实验目的: 掌握典型数字接口电路的应用技术原理,掌握常用接口芯片在应用系统中的硬件电路连接原理和软件编程方法。 实验要求: 包括开发环境要求,技术文档要求两部分。 开发环境要求: 软件环境: /windowsXP/ 硬件环境:计算机(Pen4CPU, 256MRAM,60G 以上硬盘,输入输出设备) 技术文档要求: 按照实验报告编写要求进行。要求流程图绘制规范,软、硬件功能描述清晰,实验总结深刻。 实验内容: 1 熟悉并行接口 8255、中断控制器、定时器的工作原理及相关芯片。 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 口输出接到逻辑笔,观察逻辑笔的变化。 2 掌握数字接口电路设计应用原理,根据系统功能用汇编语言编写相关程序。