1、微机与接口课程设计报告智能抢答器班级: 07 计单学号: 20070503121姓名: 浦萍萍 指导教师: 肖 理 庆成绩: 2010 年 1 月 11 日目录1、课程设计目的及要求 .32、系统功能 .43、总体设计 .43.1 基本工作原理 .43.1.1 中断优先级管理器 8259A 控制字要求 .43.1.2 可编程并行接口接口芯片 8255A 控制字要求 .43.1.3 可编程定时器计数器 8253 控制字要求 .43.2 硬件总体设计 .53.2.1 系统总成方案 .53.2.2 内存单元编址 .53.2.3 键盘、扬声器及显示功能的定义 .53.3 软件总体设计 .64、硬件设计
2、 .94.1所使用芯片功能 .94.1.1可编程并行输入/输出接口芯片 8255A.94.1.2 可编程定时器/计数器 8253/8254 .104.1.3 中断优先级管理器 8259A.124.2 系统所选用各芯片的工作方式 .144.2.1 中断优先级管理器 8259A 的工作方式 .144.2.2 可编程并行接口接口芯片 8255A 的工作方式 .144.2.3 可编程定时器计数器 8253 的工作方式 .154.3 系统所选用各芯片的连接 .154.3.1 各芯片与 CPU 的连接 .154.3.2各芯片之间的连接和与外设的连接 .155、软件设计 .156、调试 过程 .187、系统
3、操作说明 .198、总结 .199、参考文献 .20一、课程设计目的及要求目的:掌握微机系统的开发步骤;掌握 8255A、数码管的用法;掌握汇编程序的设计。因此,本次设计要求对微机原理的理论知识,8255A,8253,键盘显示区的工作方式、工作原理熟练掌握。设计要求:1. 1-8号选手中先按下按键者,LED 数码管显示其选手号码(后按下无效),且 60S倒计时开始,计时结束进行声光报警提示。 2. 由裁判掌握,若回答正确,该选手对应绿灯亮,否则红灯亮。 3. 回答正确时,计分牌加 10分,不正确减 10分(满分 100分)。 4. 选手号码及选手分数用 LED数码管显示。 二、系统功能一个具有
4、 8 路抢答的抢答器,利用并行接口和开关键。逻辑开关 K0-K7 代表抢答按钮,当某个逻辑开关闭合时,相当于抢答按钮按下,此时在七段数码管上将其号码显示出来,并使喇叭响一声(或者以发光二极管代替) 。三、总体设计3.1 基本工作原理主持人按开始键,绿灯亮后,选手才可抢答,否则违规。若抢答成功,LED 显示器显示选手号码,黄灯亮,扬声器鸣叫;若抢答违规(主持人示按开始键) ,LED 显示器显示违规选手号码,红灯亮,扬声器报警。3.1.1 中断优先级管理器 8259A控制字要求芯片控制字:采用边沿触发,单片 8259,要写入 ICW4 控制字中断类型码控制字:设置 IR0IR7 的中断类型码依次为
5、 08H、09H 、0FH方式控制字:优先级设置方式为全嵌套方式即固定优先级方式,主片工作在缓冲方式下,中断结束方式采用中断非自动结束方式,8259 工作在 8086 系统上。3.1.2 可编程并行接口接口芯片 8255A控制字要求A 口工作在方式 0,做为输入端口用于连接选手按键( PA7PA0 依次对应按键 18) ;B 口工作在方式 0,做为输出端口,经驱动器 1 连接 LED 显示器(PB7PB0 依次对应连接LED 显示器的 h、g、f 、e、d、c、b、a 七段数码管管脚) ;C 口也必须工作在方式 0,高 4 位做输入端口(本次设计中只用 PC4、PC5,分别用于连接复位键和开始
6、键) ,低 4 位做输出端口(PC3PC0 ,经驱动器 2 后 PC1、PC2 、PC3 分别用于连接黄、红、绿三个发光二极管,PC0 连接到 8253 的 GATE1 端,以控制通道 1 的计数) 。3.1.3 可编程定时器计数器 8253控制字要求通道 0:操作类型为先读写低字节再读写高字节,工作在方式 3 即方波发生器,计数格式为 BCD 码,计数初值为 4000。通道 1:操作类型为先读写低字节再读写高字节,工作在方式 1 即可重触发的单稳态触发器,计数格式为 BCD 码,计数初值为 3000。通道 2:操作类型为先读写低字节再读写高字节,工作在方式 3 即方波发生器,计数格式为 BC
7、D 码,计数初值为 0。3.2 硬件总体设计3.2.1 系统总成方案该竞赛抢答器所要器件:中断优先级管理器 8259A、可编程并行接口接口芯片 8255、可编程定时器计数器 8253,三个一样的驱动器,黄、红、绿三个发光二极管,十三个电阻,一个 8 输入与非门,一个非门,一个扬声器,一个 LED 显示器,10 个按键。3.2.2 内存单元编址1. 中断优先级管理器 8259A 的端口地址为 20H、21H2. 可编程并行接口接口芯片 8255A 的端口地址为 80H、 81H、82H、83H3. 可编程定时器计数器 8253 的端口地址为 40H、41H、42H、43H3.2.3 键盘、扬声器
8、及显示功能的定义10 个按键中,一个开始键一个复位键,另外 8 个用做 8 位选手的抢答按键。扬声器用与黄、红、绿三个发光二极管配合使用,黄灯亮扬声器鸣叫表示抢答成功,红灯亮扬声报警表示抢答违规报警,绿灯亮扬声器不鸣则表示主持人已按下开始键。LED 显示器显示的内容与选手号对应,抢答成功或违规都要显示。1. 硬件原理框图cpu 图 12. 原理连线图按键设置8 2 5 5CPU8 2 5 4LED显 示 模 块声光报警8259D7D0IR0IR4IR5D7D08259WRRDINTACSA0INT(20H21H)IR2IR6IR7IR3IR1INT(80H83H)IORIOW(40H43H)A
9、1D7D0RDWRA0A1INTAINTR8086RD WRGATE0D7D0 OUT0CLK1GATE1OUT18253CSGATE2A0 CLK0A1 CLK1CLK2+5V驱动器 31MHzPC4PC5D7D08255PB7PB0CSA0A1 PC3PC0RD WR驱动器1驱动器2与非门按键1按键2按键8按键3按键7按键6按键5按键4+5VPC0PB0PB7PC1PC2PC3红灯绿灯黄灯8 段LED显示器+5V开始键复位键扬声器PA7PA0图 23.3 软件总体设计1. 主程序流程图:NYNYNYNY开始设置 LED 字形码初值、标志初值对 8259A、8255、8253 进行初始化设置
10、抢答键中断向量并使 IF置 1 开放中断检测开始键是否按下 检测开始键是否弹起关闭 LED 显示器点亮绿灯置标志位值为 FFH 使 IF=1开放中断检测复位键是否按下开始设置 字形码初值、标志初值对 、 、 进行初始化设置抢答键中断向量并使置 开放中断检测开始键是否按下检测开始键是否弹起关闭 显示器点亮绿灯置标志位值为 使开放中断检测复位键是否按下开始设置 字形码初值、标志初值对 、 、 进行初始化设置抢答键中断向量并使置 开放中断检测开始键是否按下检测开始键是否弹起关闭 显示器点亮绿灯置标志位值为 使开放中断检测复位键是否弹起关闭 LED 显示器、指示灯将标志位清零,使 IF=1 开入中断结
11、束检测复位键是否按下开始设置 字形码初值、标志初值对 、 、 进行初始化设置抢答键中断向量并使置 开放中断检测开始键是否按下检测开始键是否弹起关闭 显示器点亮绿灯置标志位值为 使开放中断图 3开始保护现场,将各寄存器值压入堆栈将本次中断压入堆栈中,并置 IF=0 关闭中断设置循环次数为 8 次将 AL 中的值逻辑右移 1 位从 8255 的 A 端口获取选手按键信息,并将其值取反判断 CX 是否为 0 或 ZF 是否为 1获取选手号码,并将值传给 AX通过 XLAT 指令将选手号转换成 LED 显示相应的字形码将转换好的字形码值传给 8255 的 B 端口判断标志位是否为 FFH置 8253
12、通道 2 计数值将黄灯点亮,抢答成功,扬声器鸣叫置 8253 通道 2 计数值将红灯点亮,抢答违规,扬声器报警给 8259 发中断结束命令中断返回NYYN2. 子程序流程图图 44、硬件设计4.1所使用芯片功能4.1.1可编程并行输入/输出接口芯片 8255A8255A具有三个独立的输入/输出端口,每个端口的并行数据宽度为 8位。三个端口分别为 A端口,B 端口,C 端口,可分别与不同的外设进行数据交换,也可联合使用,在中断方式下实现 CPU与外设间的数据传递。8255A 提供方式 0,方式 1,方式 2三种工作方式供选择。1. 8255A的内部结构包括以下几个部分:并行输入/输出端口,它有三
13、个输入/输出端口,每个端口 8位,都可选择为输入或输出。A 端口有一阁位数据输出锁存/缓冲器和一个 8位数据输入锁存器;B 端口有一个 8位数据输出锁存/缓冲器和一个 8位数据输入缓冲器;C 端口有一个 8位数据输出锁存/缓冲器和一个 8位数据输入缓冲器。通常 A端口和 B端口作为输入/输出数据端口,C 端口常作为控制或状态信息的端口,它可分为两个 4位端口。在与外设数据传送中需要联络控制线时,C 端口分别与 A,B 端口配合使用,此时,C 端口作控制信号输出和状态信号输入。8 位内部数据总线CSRETAWD0107 A 组端口A(8)A 组端口 C上半部(4)A 组控制部件B 组控制部件数据
14、总线缓冲器读/写控制部件B 组端口 C下半部(4)B 组端口B(8)07/PAOI 47CI/ 03PI/O 07BI/ 图 5(1) A组和 B组控制电路,8255A 内部的三个端口可分为两组:A 组由 A口和 C口高4位组成;B 组由 B口和 C口低 4位组成。A 组和 B组分别有自己的控制电路,即 A组和 B组控制电路。其功能:负责接受来自读写控制的逻辑的各种命令,以及来自数字总线的控制字,从而决定 A组和 B组的工作方式,还可根据 CPU的命令对 C端口的每一位实现“复位”或“置位” 。(2) 读/写控制逻辑,这是 8255A内部完成读/写控制功能的部件。它与 6条输入控制线相连,负责
15、接收 CPU输入的地址信号和读 /写,复位控制信号,转变成各种命令发向 A组和 B组控制电路。(3) 数据总线缓冲器,这是一个 8位双向三态缓冲器,它是 8255A与 CPU数据总线的接口,由读/写控制其数据传送方向及三态。 8255A与 CPU间的数据传送如输入 /输出数据,CPU写入 8255A的控制字,8255A 送给 CPU的状态信息,都是经过这个缓冲器传送的。2. 8255A的控制字:方式选择命令字和端口 C按位置位/复位控制字。方式选择命令字:表 1D7 D6D5 D4 D3 D2 D1 D0A组方式00方式 01有效标志位 01方式 11方式 2A口1输入0输出PC7PC41输入
16、0输出B组方式0方式 01方式 1B口1输入0输出PC3PC01输入0输出端口 C按位置位/复位控制字:表 2特征位 不用 不用 不用 位选择 位选择 位选择 置位/复位D3 D2 D1 D0 0 D6 D5 D40、1 0、1 0、1 0、1D3、D2、D1 :000111 分别对应 C口 17 位D0:0 为复位,1 为置位3. 8255A有三种工作方式:方式 0-基本输入/输出方式。这种方式不使用中断,没有规定的联络信号,三个端口的 24条引脚均可做为输入/输出线,由程序设定各端口为输入端口或输出端口,完成并行输入/输出操作。方式 1-选通输入/输出方式。这种方式下,端口 A或端口 B仍
17、做为数据端口,同时规定了端口 C的某些位做为控制或状态信息位,数据的输入 /输出操作在联络信号的应答控制下完成,因而,可使用中断,也可使用查询。方式 2-双向传送方式。这种方式下,外设在单一的 8位数据线上,既能发送数据,也能接受数据。在相应的控制线配合下,用中断方式或程序查询方式输入/输出数据。端口 A可工作于方式 0,方式 1和方式 2,端口 B可工作于方式 1,端口 C通常分成高4位和低 4位,分别传送数据或控制,状态信息。4.1.2 可编程定时器/计数器 8253/82548253芯片采用 24个引脚,双列直插式封装,NMOS 工艺,单一+5V 电源。片内有 3个独立的 16位减法计数
18、器,每个计数器又可分两个 8位的计数器。8253 有两种工作方式,即二进制或 BCD方式计数;6 种工作方式,既可对系统时钟脉冲计数实现定时,又可对外部事件进行计数。可由软件或硬件开始计数或停止计数。1. 8253的内部结构包括以下几部分:8253由计数器、控制寄存器、读/写控制逻辑和数据总线缓冲器 4部分和内部总线构成。(1) 数据总线缓冲器。该缓冲器为 8位双向三态的缓冲器,可直接挂在数据线上,CPU通过它,一方面可以向控制寄存器写入控制字,向计数器写入计数初值;另一方面也可由CPU通过该缓冲器读出计数器的当前计数值。(2) 读/写控制逻辑。功能是接收来自 CPU的控制信号,完成对 825
19、3各计数器的读/写操作。(3) 控制寄存器。接收从 CPU来的控制字,并由控制字的 D7、D6 位的编码决定控制字写入哪个计数器的控制寄存器。(4) 计数器。8253 有三个计数器通道:计数器 0、计数器 1、计数器 2。每个计数器都由 16位锁存寄存器和一个 16位的减 1计数器组成。每个计数器有 3根信号线。其中 2根为输入信号:时钟信号 CLK和门控 GATE信号;1 根输出信号 OUT。数据总线缓冲器读/写逻辑控 IR0、 IR1数据总线内部总线线缓冲器级联缓冲比较器辑寄存器(ISR)7制字寄存器计数中断请求寄存器(IRR)器 0计数器 1计数器 2WRRR图 62. 8253的工作方
20、式:方式 0-计数结束产生中断方式。这种方式的计数过程为当写入方式 0后,计数器输出 OUT立即变为低电平,并且在计数过程中一起维持低电平。赋初值后,CLK 第一个下降沿到,计数值装入计数器,随后每一个 CLK脉冲下降沿到,计数器减 1.计数器减到零时,OUT输出变为高电平,并且一直保持到该通道重新装入计数值或重新设置工作方式为止。方式 1-可重触发的单稳态触发器。这种方式的计数过程为当装入计数初值后 OUT输出为高电平,当 GATE上升沿到,OUT 输出为低电平,开始计数;计数结束时,输出变为高电平从而产生一个宽度为 N个 T的负脉冲。方式 2-分频器。这种方式的计数过程为写入控制字后的时钟
21、上升沿,输出端 OUT变成高电平,写入计数初值后的第一个时钟下降沿开始减 1计数。减到 1时输出端 OUT变为低电平,减到 0时,输出 OUT又变为高电平,同时从初值开始新的计数过程。方式 3-方波发生器。这种方式的计数过程分两种情况。第一种情况:计数初值为偶数。写入控制字后的时钟上升沿,输出端 OUT变成高电平,写入计数初值后的第一个时钟下降沿开始减 1计数。减到 N/2时,输出端 OUT为为低电平,减到 0时,输出 OUT又变为高电平,并重新从初值开始新的计数过程。第二种情况:计数初值为奇数。写入控制字后的时钟上升沿,输出端 OUT变成高电平,写入计数初值后的第一个时钟下降沿开始减 1计数。减到(N+1)/2 以后,输出端 OUT变为低电平,减到 0时,输出端 OUT又变为高电平,并重新从初值开始新的计数过程。方式 4-软件触发选通。这种方式的计数过程与方式 0非常相似。当方式控制字置入后,OUT 输出高电平。置入初值后经过一个 CLK脉冲开始减 1计数,计数到达 0值,OUT 输出为低电平,持续一个 CLK脉冲周期后再恢复到高电平。方式 5-硬件触发选通。这种方式的计数过程为输出 OUT即为高电平,写入初值后,