目录一、课程设计的目的和要求-―――――――――――――31.1、课程设计的目的-―――――――――――――-――――31.2、课程设计的要求―――――――――――――――――――3二、总体设计――――――――――――――――――――42.1、基本工作原理――――――――――――――――――――42.2、硬件总体设计――――――――――――――――――――41、系统总成方案―――――――――――――――――――42、内存单元编址―――――――――――――――――――43、键盘及显示功能的定义―――――――――――――――42.3、软件总体设计――――――――――――――――――――41、存储单元的分配、标志位的含义―――――――――――42、主程序框图)―――――――――――――――――――5三、硬件设计――――――――――――――――――――63.1、系统所选用各芯片的介绍―――――――――――――――61、中断优先级管理器8259A―――――――――――――――62、可编程并行接口接口芯片8255A――――――――――――73、可编程定时器/计数器8253―――――――――――――83.2、系统所选用各芯片的工作方式―――――――――――――81、中断优先级管理器8259A的工作方式―――――――――82、可编程并行接口接口芯片8255A的工作方式――――――93、可编程定时器/计数器8253的工作方式――――――――103.3、系统所选用各芯片的连接―――――――――――――――101、各芯片与CPU的连接――――――――――――――――102、各芯片之间的连接和与外设的连接――――――――――10四、软件设计――――――――――――――――――――134.1、子程序的流程图―――――――――――――――――――13五、系统操作说明――――――――――――――――――14六、结束语―――――――――――――――――――――14七、系统原理图―――――――――――――――――――15八、参考文献――――――――――――――――――――16九、附录―――――――――――――――――――――16题目:竞赛抢答器一、课程设计的目的和要求1.1、课程设计的目的1、掌握微机系统的开发步骤2、掌握8259A、8255A、8253数码管的用法3、掌握汇编程序的设计1.2、课程设计的要求设计一个具有8路抢答的抢答器,利用并行接口和开关键。逻辑开关K0---K7代表抢答按钮,当某个逻辑开关闭合时,相当于抢答按钮按下,此时在七段数码管上将其号码显示出来,并使喇叭响一声(或者以发光二极管代替)。1、中断优先级管理器8259A控制字要求芯片控制字:采用边沿触发,单片8259,要写入ICW4控制字中断类型码控制字:设置IR0~IR7的中断类型码依次为08H、09H、…、0FH方式控制字:优先级设置方式为全嵌套方式即固定优先级方式,主片工作在缓冲方式下,中断结束方式采用中断非自动结束方式,8259工作在80X86系统上。2、可编程并行接口接口芯片8255A控制字要求A口工作在方式0,做为输入端口用于连接选手按键(PA7~PA0依次对应按键1~8);B口工作在方式0,做为输出端口,经驱动器1连接LED显示器(PB7~PB0依次对应连接LED显示器的dp、g、f、e、d、c、b、a七段数码管管脚);C口也必须工作在方式0,高4位做输入端口(本次设计中只用PC4、PC5,分别用于连接复位键和开始键),低4位做输出端口(PC3~PC0,经驱动器2后PC1、PC2、PC3分别用于连接黄、红、绿三个发光二极管,PC0连接到8253的GATE1端,以控制通道1的计数)。3、可编程定时器/计数器8253控制字要求通道0:操作类型为先读写低字节再读写高字节,工作在方式3即方波发生器,计数格式为BCD码,计数初值为4000。通道1:操作类型为先读写低字节再读写高字节,工作在方式1即可重触发的单稳态触发器,计数格式为BCD码,计数初值为3000。通道2:操作类型为先读写低字节再读写高字节,工作在方式3即方波发生器,计数格式为BCD码,计数初值为0。二、总体设计2.1、基本工作原理主持人按开始键,绿灯这后,选手才可抢答,否则违规。若抢答成功,LED显示器显示选手号码,黄灯亮,扬声器鸣叫;若抢答违规(主持人示按开始键),LED显示器显示违规选手号码,红灯亮,扬声器报警。2.2、硬件总体设计1、系统总成方案该竞赛抢答器所要器件:中断优先级管理器8259A、可编程并行接口接口芯片8255、可编程定时器/计数器8253,三个一样的驱动器,黄、红、绿三个发光二极管,十三个电阻,一个8输入与非门,一个非门,一个扬声器,一个LED显示器,10个按键。2、内存单元编址(1)、中断优先级管理器8259A的端口地址为20H、21H(2)、可编程并行接口接口芯片8255A的端口地址为80H、81H、82H、83H(3)、可编程定时器/计数器8253的端口地址为40H、41H、42H、43H3、键盘、扬声器及显示功能的定义10个按键中,一个开始键一个复位键,另外8个用做8位选手的抢答按键。扬声器用与黄、红、绿三个发光二极管配合使用,黄灯亮扬声器鸣叫表示抢答成功,红灯亮扬声报警表示抢答违规报警,绿灯亮扬声器不鸣则表示主持人已按下开始键。LED显示器显示的内容与选手号对应,抢答成功或违规都要显示。2.3、软件总体设计1、存储单元的分配、标志位的含义(1)、定义一个TAB变量用来存储1~9的字形码信息,如下表LED的管脚对应的字形对应存放在内存单元的字形码dp、g、f、e、d、c、b、a00000110010110110100111101100110011011010111110000000111011111110110111112345678906H5BH4FH66H6DH7CH07H7FH6FH(2)、定义一个BZ变量作为标志位,用来选手抢答是否违规,BZ=0FFH时表示主持人已经按下开始键选手可以抢答,BZ=00H表示主持人未按下开始按键,选手不可以抢答。2、主程序流程图及清单(带有注释)(1)、主程序流程图如下:开始设置LED字形码初值、标志位初值对8259A、8255A、8253进行初始化设置抢答按键中断向量并使IF置1开放中断关闭LED显示器检测开始键是否按下检测开始键是否弹起点亮绿灯置标志位值为FFH使IF=1开放中断检测复位键是否按下检测复位键是否弹起关闭LED显示器、指标灯将标志位清零,使IF=1开入中断结束YYYYNNNN主程序流程图先从82H口中读一个字先从82H口中读一个字先从82H口中读一个字先从82H口中读一个字三、硬件设计3.1、系统所选用各芯片的介绍中断优先级管理器8259A1、8259A内部结构8259A采用NMOS工艺制成,有28根引脚,所有输入、输出端与TTL电平兼容,单一电源(Vcc=+5V)供电。8259的内部主要组成部分,包括处理部件(中断请求寄存器IRR、优先级鉴别器PR及现行服务寄存器ISR)、控制部件(控制逻辑及中断屏蔽寄存器IMR)、数据总路线缓冲器、读/写逻辑以及级联缓冲器/比较器等5个部分。2、8259A主要的外部引脚D0~D7:双向数据线,CPU与8259间利用这个数据总路线传送数据及命令。WR:写控制输入信号,同控制总路线上的IOW信号相连。RD:读控制输入信号,同控制总路线上的IOR信号相连。A0:地址选择信号,用来对8259A内部的两个可编程寄存器进行选择。CS:片选输入信号,低电平有效。有郊时可通过数据总路线设置命令并对内部寄存器进行读出。当进入中断响应时序时,该引脚状态与进行的处理无关。INT:由8259A向CPU发出的中断请求信号。INTA:输入信号,接收CPU送来的中断响应信号INTA。IR0~IR7:8个中断请求输入信号,高电平或上升沿有效。用于接收外设接口来的中断请求。3、8259A工作方式(1)、优先级设置方式:全嵌套方式(固定优先级方式)、特殊全嵌套方式(可响应同级中断方式)、轮转优先级方式、特殊轮转优先级方式。(2)、中断源屏蔽方式:普通屏蔽方式、特殊屏蔽方式。(3)、中断结束方式:中断自动结束方式、中断非自动结束方式(包括一般中断结束方式、特殊中断结束方式)。(4)、系统总路线连接方式:缓冲方式、非缓冲方式。(5)、中断请求信号触发方式:边沿触发方式、电平触发方式。4、8259A初始化控制字格式ICW3(从片,级联时才用设置)D7D6D5D4D3D2D1D000000ID2ID1ID0从片INT接于主片的引脚000IR0001IR1…………111IR7ICW1(芯片控制字)D7D6D5D4D3D2D1D0000特征位1触发方式0边沿触发1电平触发0单片选择信号0多片8259级联1单片8259是不要ICW40不要(8080/8085)1要(80X86)ICW2(中断类型码控制字,D7~D3设置中断类型码)D7D6D5D4D3D2D1D0×××××000ICW3(主片,级联时才用设置,各位为1则表示接有从片)D7D6D5D4D3D2D1D0IR7IR6IR5IR4IR3IR2IR1IR0ICW4(方式控制字)D7D6D5D4D3D2D1D0000嵌套方式0全嵌套方式1特殊全嵌套方式缓冲方式0非缓冲方式1缓冲方式缓冲方式下0本片为从片1本片为主片中断结束方式0中断非自动结束1中断自动结束系统类型08080/8085180X865、8259A操作命令字格式OCW0(中断屏蔽字,各位为1则被屏蔽)D7D6D5D4D3D2D1D0IR7IR6IR5IR4IR3IR2IR1IR0OCW1(轮转优先级和中断结束字)D7D6D5D4D3D2D1D0轮转位0非轮转1轮转选择标志位0L2~L0无效1L2~L0有效中断结束位0非中断结束1中断结束特征位00标志位000IR0优先级最低001IR1优先级最低OCW2(特殊屏蔽、查询和状态读取字)D7D6D5D4D3D2D1D00特殊屏蔽方式允许位0禁止特殊屏蔽方式1允许特殊屏蔽方式特殊屏蔽方式位0非特殊屏蔽方式1特殊屏蔽方式特征位01中断查询位0非中断查询1中断查询读寄存器0禁止读1允许读0读IRR1读ISR可编程并行接口接口芯片8255A1、8255A内部结构8255A芯片是一个采用NMOS工艺制造的40引脚双列直插式(DIP)封装组件。8255A有3个8位数据端口,即A口、B口及C口,它们都可以分别作为输入口或输出口使用;A组控制与B组控制;读/写控制逻辑;数据总路线缓冲器。2、8255A主要的外部引脚PA7~PA0:A口的8条I/O线。8条线只能同时作为输入或输出,不能分开使用,可设置成双向口,也只有A口允许这样做。PB7~PB0:B口的8条I/O线。不可以设置成双向口,其它和A口一样。PC7~PC0:C口的8条I/O线。不可以设置成双向口,但它可以分拆为两组即高4位和低4位,这两组可以任意设置为输入或输出。除了作为独立的I/O线外,C口还经常为A口、B口服务,配合A口、B口作联络线使用。A1、A0:端口地址选择信号。用于选择8255A的3个数据端口和一个控制口。当A1A0=00时,选择端口A;为01时,选择端口B;为10,选择端口C;为11时,选择控制口。3、8255A工作方式(1)、方式0:基本的输入/输出方式。A口、B口、C口都可以工作在些方式下。(2)、方式1:选通输入/输出方式(应答方式)。A口、B口工作在此方式下。(3)、方式2:双向传输方式。只有A口可以工作在此方式下。4、8255A方式控制字格式D7D6、D5D4D3D2D1D01A口A口C口高4位B口B口C口低4位00方式00输出1输入0输出1输入0方式01方式10输出1输入0输出1输入01方式11x方式2可编程定时器/计数器82531、8253的内部结构8253采用NMOS工艺制成,有24个引脚,所有输入、输出端均TTL电平兼容,单一电源(Vcc=+5V)供电,最高计数速率为2.6MHz。它包括3个计数器