资源描述
微机与接口课程设计报告智能抢答器班级: 学号: 姓名: 指导教师: 成绩: 年1月 11日目录1、课程设计目的及要求32、系统功能33、总体设计33.1基本工作原理33.1.1中断优先级管理器8259A控制字要求33.1.2可编程并行接口接口芯片8255A控制字要求33.1.3可编程定时器计数器8253控制字要求33.2硬件总体设计33.2. 1系统总成方案33.2.2内存单元编址43.2.3键盘、扬声器及显示功能的定义4(1) 硬件原理框图4(2) 原理连线图433软件总体设计63.3.1主程序流程图:64、硬件设计84.1所使用芯片功能84.1.1可编程并行输入/输出接口芯片8255A84.1.2可编程定时器/计数器8253/825494.1.3 中断优先级管理器8259A104.2系统所选用各芯片的工作方式124.2.1中断优先级管理器8259A的工作方式124.2.2 可编程并行接口接口芯片8255A的工作方式124.2.3 可编程定时器计数器8253的工作方式135、软件设计136、调试过程167、系统操作说明168、总结169、参考文献171、课程设计目的及要求 目的:掌握微机系统的开发步骤;掌握8255A、数码管的用法;掌握汇编程序的设计。因此,本次设计要求对微机原理的理论知识,8255A,8253,键盘显示区的工作方式、工作原理熟练掌握。设计要求:1.1-8号选手中先按下按键者,LED数码管显示其选手号码(后按下无效),且60S倒计时开始,计时结束进行声光报警提示。 2.由裁判掌握,若回答正确,该选手对应绿灯亮,否则红灯亮。 3.回答正确时,计分牌加10分,不正确减10分(满分100分)。 4.选手号码及选手分数用LED数码管显示。 2、系统功能一个具有8路抢答的抢答器,利用并行接口和开关键。逻辑开关K0-K7代表抢答按钮,当某个逻辑开关闭合时,相当于抢答按钮按下,此时在七段数码管上将其号码显示出来,并使喇叭响一声(或者以发光二极管代替)。3、总体设计 3.1基本工作原理主持人按开始键,绿灯这后,选手才可抢答,否则违规。若抢答成功,LED显示器显示选手号码,黄灯亮,扬声器鸣叫;若抢答违规(主持人示按开始键),LED显示器显示违规选手号码,红灯亮,扬声器报警。3.1.1中断优先级管理器8259A控制字要求芯片控制字:采用边沿触发,单片8259,要写入ICW4控制字中断类型码控制字:设置IR0IR7的中断类型码依次为08H、09H、0FH方式控制字:优先级设置方式为全嵌套方式即固定优先级方式,主片工作在缓冲方式下,中断结束方式采用中断非自动结束方式,8259工作在8086系统上。3.1.2可编程并行接口接口芯片8255A控制字要求A口工作在方式0,做为输入端口用于连接选手按键(PA7PA0依次对应按键18);B口工作在方式0,做为输出端口,经驱动器1连接LED显示器(PB7PB0依次对应连接LED显示器的dp、g、f、e、d、c、b、a七段数码管管脚);C口也必须工作在方式0,高4 位做输入端口(本次设计中只用PC4、PC5,分别用于连接复位键和开始键),低4位做输出端口(PC3PC0,经驱动器2后PC1、PC2、PC3分别用于连接黄、红、绿三个发光二极管,PC0连接到8253的GATE1端,以控制通道1的计数)。3.1.3可编程定时器计数器8253控制字要求通道0:操作类型为先读写低字节再读写高字节,工作在方式3即方波发生器,计数格式为BCD码,计数初值为4000。通道1:操作类型为先读写低字节再读写高字节,工作在方式1即可重触发的单稳态触发器,计数格式为BCD码,计数初值为3000。通道2:操作类型为先读写低字节再读写高字节,工作在方式3即方波发生器,计数格式为BCD码,计数初值为0。3.2硬件总体设计3.2. 1系统总成方案该竞赛抢答器所要器件:中断优先级管理器8259A、可编程并行接口接口芯片8255、可编程定时器计数器8253,三个一样的驱动器,黄、红、绿三个发光二极管,十三个电阻,一个8输入与非门,一个非门,一个扬声器,一个LED显示器,10个按键。 3.2.2内存单元编址 (1)、中断优先级管理器8259A的端口地址为20H、21H(2)、可编程并行接口接口芯片8255A的端口地址为80H、81H、82H、83H(3)、可编程定时器计数器8253的端口地址为40H、41H、42H、43H 3.2.3键盘、扬声器及显示功能的定义10个按键中,一个开始键一个复位键,另外8个用做8位选手的抢答按键。扬声器用与黄、红、绿三个发光二极管配合使用,黄灯亮扬声器鸣叫表示抢答成功,红灯亮扬声报警表示抢答违规报警,绿灯亮扬声器不鸣则表示主持人已按下开始键。LED显示器显示的内容与选手号对应,抢答成功或违规都要显示。(1) 硬件原理框图按键设置8 2 5 5CPU8 2 5 4LED显 示 模 块声光报警8259 cpu 图1(2) 原理连线图PC4PC5D7D0 8255 PB7PC0CSA0A1 PC3PC0RD WR驱动器1驱动器2与非门按键1按键2按键8按键3按键7按键6按键5按键4+5VPC0PB0PB7PC1PC2PC3红灯绿灯黄灯8段LED显示器+5V开始键复位键扬声器PA7PA0D7D0IR0IR4IR5D7D08259WRRDINTACSA0INT(20H21H)IR2IR6IR7IR3IR1INT(80H83H)IORIOW(40H43H)A1AD8AD15 RDWRAD0AD1 INTA INTR8086 RD WRGATE0D7D0 OUT0 CLK1 GATE1 OUT1 8253CS GATE2A0 CLK0A1 CLK1 CLK2+5V驱动器31MHz图233软件总体设计3.3.1主程序流程图:检测复位键是否弹起关闭LED显示器、指示灯将标志位清零,使IF=1开入中断结束检测复位键是否按下开始设置LED字形码初值、标志初值对8259A、8255、8253进行初始化设置抢答键中断向量并使IF置1开放中断检测开始键是否按下 检测开始键是否弹起关闭LED显示器点亮绿灯置标志位值为FFH使IF=1开放中断置标志位值为FFH使IF=1开放中断点亮绿灯关闭LED显示器检测开始键是否弹起检测开始键是否按下 设置抢答键中断向量并使IF置1开放中断对8259A、8255、8253进行初始化设置LED字形码初值、标志初值开始检测复位键是否按下置标志位值为FFH使IF=1开放中断点亮绿灯关闭LED显示器检测开始键是否弹起检测开始键是否按下 设置抢答键中断向量并使IF置1开放中断对8259A、8255、8253进行初始化设置LED字形码初值、标志初值开始开始设置LED字形码初值、标志初值对8259A、8255、8253进行初始化设置抢答键中断向量并使IF置1开放中断检测开始键是否按下 NY检测开始键是否弹起N Y关闭LED显示器点亮绿灯置标志位值为FFH使IF=1开放中断检测复位键是否按下N YN Y图3开始保护现场,将各寄存器值压入堆栈将本次中断压入堆栈中,并置IF=0关闭中断设置循环次数为8次将AL中的值逻辑右移1位从8255的A端口获取选手按键信息,并将其值取反判断CX是否为0或ZF是否为1获取选手号码,并将值传给AX通过XLAT指令将选手号转换成LED显示相应的字形码将转换好的字形码值传给8255的B端口判断标志位是否为FFH置8253 通道2计数值将黄灯点亮,抢答成功,扬声器鸣叫置8253 通道2计数值将红灯点亮,抢答违规,扬声器报警给8259发中断结束命令中断返回NYYN3.3.2子程序流程图图44、硬件设计 4.1所使用芯片功能4.1.1可编程并行输入/输出接口芯片8255A 8255A具有三个独立的输入/输出端口,每个端口的并行数据宽度为8位。三个端口分别为A端口,B端口,C端口,可分别与不同的外设进行数据交换,也可联合使用,在中断方式下实现CPU与外设间的数据传递。8255A提供方式0,方式1,方式2三种工作方式供选择。 1.8255A的内部结构包括以下几个部分:RESETCSDB数据总线缓冲器B组控制A组控制端口C(低位)端口B端口C(高位)端口APB7PB0PC3PC0PC7PC4PA7PA0 图5RD读/写控制逻辑WRA0 A1 并行输入/输出端口,它有三个输入/输出端口,每个端口8位,都可选择为输入或输出。A端口有一阁位数据输出锁存/缓冲器和一个8位数据输入锁存器;B端口有一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器;C端口有一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器。通常A端口和B端口作为输入/输出数据端口,C端口常作为控制或状态信息的端口,它可分为两个4位端口。在与外设数据传送中需要联络控制线时,C端口分别与A,B端口配合使用,此时,C端口作控制信号输出和状态信号输入。(1)A组和B组控制电路,8255A内部的三个端口可分为两组:A组由A口和C口高4位组成;B组由B口和C口低4位组成。A组和B组分别有自己的控制电路,即A组和B组控制电路。其功能:负责接受来自读写控制的逻辑的各种命令,以及来自数字总线的控制字,从而决定A组和B组的工作方式,还可根据CPU的命令对C端口的每一位实现“复位”或“置位”。(2)读/写控制逻辑,这是8255A内部完成读/写控制功能的部件。它与6条输入控制线相连,负责接收CPU输入的地址信号和读/写,复位控制信号,转变成各种命令发向A组和B组控制电路。(3)数据总线缓冲器,这是一个8位双向三态缓冲器,它是8255A与CPU数据总线的接口,由读/写控制其数据传送方向及三态。8255A与CPU间的数据传送如输入/输出数据,CPU写入8255A的控制字,8255A送给CPU的状态信息,都是经过这个缓冲器传送的。2.8255A的控制字:(方式选择命令字和端口C按位置位/复位控制字)。方式选择命令字:D7D6D5D4D3D2D1D0A组方式A口1 输入0输出PC7PC41输入0输出B组方式0方式01方式1B口1输入0输出PC3PC01输入0输出1有效标志位00方式001方式11方式2端口C按位置位/复位控制字特征位 不用不用不用位选择位选择位选择置位/复位 0 D6D5D4D3D2D1D00、10、10、10、1D3、D2、D1 :000111分别对应C口17位D0:0为复位,1为置位3.8255A有三种工作方式:方式0-基本输入/输出方式。这种方式不使用中断,没有规定的联络信号,三个端口的24条引脚均可做为输入/输出线,由程序设定各端口为输入端口或输出端口,完成并行输入/输出操作。方式1-选通输入/输出方式。这种方式下,端口A或端口B仍做为数据端口,同时规定了端口C的某些位做为控制或状态信息位,数据的输入/输出操作在联络信号的应答控制下完成,因而,可使用中断,也可使用查询。方式2-双向传送方式。这种方式下,外设在单一的8位数据线上,既能发送数据,也能接受数据。在相应的控制线配合下,用中断方式或程序查询方式输入/输出数据。端口A可工作于方式0,方式1和方式2,端口B可工作于方式1,端口C通常分成高4位和低4位,分别传送数据或控制,状态信息。4.1.2可编程定时器/计数器8253/82548253芯片采用24个引脚,双列直插式封装,NMOS工艺,单一+5V电源。片内有3个独立的16位减法计数器,每个计数器又可分两个8位的计数器。8253有两种工作方式,即二进制或BCD方式计数;6种工作方式,既可对系统时钟脉冲计数实现定时,又可对外部事件进行计数。可由软件或硬件开始计数或停止计数。D0D71.8253的内部结构包括以下几部分:计数器0#计数器1#计数器2#数据总线缓冲器读/写逻辑控制字寄存器CLK0GATE0WEOUT0 RDCLK1 A0GATE1 A1OUT1 CSCLK2 GNDGATE2 VCCOUT2 图6 8253由计数器、控制寄存器、读/写控制逻辑和数据总线缓冲器4部分和内部总线构成。 (1)数据总线缓冲器。该缓冲器为8位双向三态的缓冲器,可直接挂在数据线上,CPU通过它,一方面可以向控制寄存器写入控制字,向计数器写入计数初值;另一方面也可由CPU通过该缓冲器读出计数器的当前计数值。 (2)读/写控制逻辑。功能是接收来自CPU的控制信号,完成对8253各计数器的读/写操作。 (3)控制寄存器。接收从CPU来的控制字,并由控制字的D7、D6位的编码决定控制字写入哪个计数器的控制寄存器。 (4)计数器。8253有三个计数器通道:计数器0、计数器1、计数器2。每个计数器都由16位锁存寄存器和一个16位的减1计数器组成。每个计数器有3根信号线。其中2根为输入信号:时钟信号CLK和门控GATE信号;1根输出信号OUT。2.8253的工作方式:方式0-计数结束产生中断方式。这种方式的计数过程为当写入方式0后,计数器输出OUT立即变为低电平,并且在计数过程中一起维持低电平。赋初值后,CLK第一个下降沿到,计数值装入计数器,随后每一个CLK脉冲下降沿到,计数器减1.计数器减到零时,OUT输出变为高电平,并且一直保持到该通道重新装入计数值或重新设置工作方式为止。方式1-可重触发的单稳态触发器。这种方式的计数过程为当装入计数初值后OUT输出为高电平,当GATE上升沿到,OUT输出为低电平,开始计数;计数结束时,输出变为高电平从而产生一个宽度为N个T的负脉冲。方式2-分频器。这种方式的计数过程为写入控制字后的时钟上升沿,输出端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即为高电平,写入初值后,计数器并不立即开始计数,而是由门控脉冲的上升沿触发。计数结束,输出一个持续时间为一个TCLK的负脉冲,然后输出恢复为高电平,直到GATE信号再次触发。4.1.3 中断优先级管理器8259A1.8259A内部结构: 内部总线数据总线缓冲器读/写逻辑级联缓冲比较器 控 制 逻 辑当前中断服务寄存器(ISR)优先级分析器(PR)中断请求寄存器(IRR)中断屏蔽寄存器(IMR)IR0IR1.IR7CSD7D0 INTA0.IR7CAS0CAS1CAS2/.IR7图7.8259A采用NMOS工艺制成,有28根引脚,所有输入、输出端与TTL电平兼容,单一电源(Vcc=+5V)供电。8259的内部主要组成部分,包括处理部件(中断请求寄存器IRR、优先级鉴别器PR及现行服务寄存器ISR)、控制部件(控制逻辑及中断屏蔽寄存器IMR)、数据总路线缓冲器、读写逻辑以及级联缓冲器比较器等5个部分。2.8259A主要的外部引脚:D0D7:双向数据线,CPU与8259A间利用这个数据总线传送数据及命令。WR:写控制输入信号,同控制总线上的IOW信号相连。RD:读控制输入信号,同控制总线上的IOR信号相连。A0:地址选择信号,用来对8259A内部的两个可编程寄存器进行选择。CS:片选输入信号,低电平有效。有效时刻通过数据总线设置命令并对内部寄存器进行读出。当进入中断响应时序时,该引脚状态与进行的处理无关。INT:由8259A向CPU发出的中断请求信号。INTA:输入信号,接收CPU送来的中断响应信号INTA.IR0IR7:8个中断请求输入信号,高电平或上升沿有效。用于接收外设接口来的中断请求。CAS0CAS2:三条信号线试8259A级联时使用的,用来构成8259A的主从式级联控制结构。SP/EN:从片编程/允许缓冲器信号,双向,低电平有效。3.8259A工作方式(1)、优先级设置方式:全嵌套方式(固定优先级方式)、特殊全嵌套方式(可响应同级中断方式)、轮转优先级方式、特殊轮转优先级方式。(2)、中断源屏蔽方式:普通屏蔽方式、特殊屏蔽方式。(3)、中断结束方式:中断自动结束方式、中断非自动结束方式(包括一般中断结束方式、特殊中断结束方式)。(4)、系统总路线连接方式:缓冲方式、非缓冲方式。(5)、中断请求信号触发方式:边沿触发方式、电平触发方式。4.8259A初始化控制字格式ICW1(芯片控制字)D7 D6 D5D4D3D2D1D0 0 0 0特征位1触发方式0 边沿触发1 电平触发0单片选择信号0 多片8259级联1 单片8259是不要ICW40 不要(8080/8085)1 要(80X86)ICW2(中断类型码控制字,D7D3设置中断类型码)D7D6D5D4D3D2D1D0000ICW3(主片,级联时才用设置,各位为1则表示接有从片)D7D6D5D4D3D2D1D0IR7IR6IR5IR4IR3IR2IR1IR0ICW3(从片,级联时才用设置)D7D6D5D4D3D2 D1 D000000ID2 ID1 ID0 从片INT接于主片的引脚0 0 0 IR00 0 1 IR1 1 1 1 IR7ICW4(方式控制字)D7 D6 D5D4D3D2D1D00 0 0嵌套方式0 全嵌套方式1特殊全嵌套方式缓冲方式0非缓冲方式1缓冲方式缓冲方式下0本片为从片1本片为主片中断结束方式0中断非自动结束1中断自动结束系统类型0 8080/80851 80X865.8259A操作命令字格式OCW0(中断屏蔽字,各位为1则被屏蔽)D7D6D5D4D3D2D1D0IR7IR6IR5IR4IR3IR2IR1IR0OCW1(轮转优先级和中断结束字)D7D6D5D4 D3D2 D1 D0轮转位0 非轮转1 轮转选择标志位0 L2L0无效1 L2L0有效中断结束位0 非中断结束 1 中断结束特征位00标志位000 IR0 优先级最低001 IR1 优先级最低OCW2(特殊屏蔽、查询和状态读取字)D7D6D5D4 D3D2D1D00特殊屏蔽方式允许位0 禁止特殊屏蔽方式1 允许特殊屏蔽方式特殊屏蔽方式位0 非特殊屏蔽方式1 特殊屏蔽方式特征位01中断查询位0非中断查询1中断查询读寄存器0 禁止读1 允许读0读IRR1读ISR4.2系统所选用各芯片的工作方式4.2.1中断优先级管理器8259A的工作方式(1)、芯片控制ICW1:采用边沿触发,单片8259,要写入ICW4控制字(2)、中断类型码ICW2:设置IR0IR7的中断类型码依次为08H、09H、0FH(3)、方式控制ICW4:优先级设置方式为全嵌套方式即固定优先级方式,系统总线连接方式为主片工作在缓冲方式下,中断结束方式采用中断非自动结束方式,8259工作在8086系统上。4.2.2 可编程并行接口接口芯片8255A的工作方式(1)、A口工作在方式0,做为输入端口用于连接选手按键(PA7PA0依次对应按键18);(2)、B口工作在方式0,做为输出端口,经驱动器1连接LED显示器(PB7PB0依次对应连接LED显示器的dp、g、f、e、d、c、b、a七段数码管管脚);(3)、C口也必须工作在方式0,高4 位做输入端口(本次设计中只用PC4、PC5,分别用于连接复位键和开始键),低4位做输出端口(PC3PC0,经驱动器2后PC1、PC2、PC3分别用于连接黄、红、绿三个发光二极管,PC0连接到8253的GATE1端,以控制通道1的计数)。4.2.3 可编程定时器计数器8253的工作方式(1)、通道0:操作类型为先读写低字节再读写高字节,工作在方式3即方波发生器,计数格式为BCD码,计数初值为0。(2)、通道1:操作类型为先读写低字节再读写高字节,工作在方式1即可重触发的单稳态触发器,计数格式为BCD码,计数初值为0。(3)、通道2:操作类型为先读写低字节再读写高字节,工作在方式3即方波发生器,计数格式为BCD码,计数初值为0。5、软件设计DATASEGMENTTAB DB06H,5BH,4FH,66H,6DH,7CH,07H,7FH,67H ;19的段码;(字形码)BZ DB 00HDATAENDSSTACKSEGMENTPARASTACKSTACKDB100HDUP(?)STACKENDSCODE SEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AX;8259A初始化MOV AL,13H;初始化8259A的ICW1OUT 20H,ALMOVAL,08H;送中断类型码基值,8259A的ICW2OUT21H,ALMOVAL,0DH;一般中断结束方式,8259A的ICW4OUT21H,AL;8255A初始化MOV AL,98H;置8255A工作方式OUT 83H,ALXORAL,AL;B口、C口初始化OUT 81H,ALOUT82H,AL;8253初始化MOV AL,37H;置8253通道0控制字OUT 43H,ALMOV AL,00H;置8253通道0计数初值为4000OUT40H,ALMOVAL,40HOUT40H,ALMOV AL,73H;置8253 通道1控制字OUT43H,ALMOVAL,00H;置8253通道1计数初值为3000OUT41H,ALMOVAL,30HOUT41H,ALMOV AL,B7H;置8253通道2控制字OUT43H,ALMOVAL,00H;置8253通道2控制字OUT42H,ALMOVAL,00H;置8253通道2计数初值为0OUT42H,ALMOVAL,00HOUT42H,AL;中断设置MOVAH,25H;设置抢答按键中断向量MOV AL,0AH;中断类型号为入口参数MOV BX,SEG KEYINT;DS:DX指向4字节地址MOV DS,BXMOV DX,OFFSET KEYINTINT 21HSTI;使IF置1,开放可屏蔽中断;主循环LOPM:INAL,82H;检测开始键TESTAL,20H;检测C口的PC5端JZ LOP2;开始键未按下即PC5=0,则跳转检测;复位键LOP1:INAL,82H;检测开始键是否已经弹起,即PC5=0TESTAL,20HJNZ LOP1;开始键没有弹起再重新检测MOVAL,00H;关LED显示器OUT 81H,AL;送到B口MOVAL,08H;绿灯亮OUT82H,AL;送到C口MOVBZ,0FFH;置标志STILOP2:INAL,82H;检测复位键TESTAL,10H;检测C口的PC4端JZLOPM ;复位键未按下即PC4=0,则跳转再检;测开始键LOP3:INAL,82H;检测复位键是否弹起,即PC4=0TEST AL,10HJNZ LOP3;位键没有弹起,则重新检测MOVAL,00H;关LED显示器、指标灯OUT 81H,ALOUT 82H,ALMOVBZ,00H;清标志STIJMPLOPM;中断服务子程序CODEENDSENDSTART中断服务子程序:KEYINTPROCFARPUSHAX;保护现场PUSHBXPUSH DXPUSHDSCLI;并使本次中断压入堆栈中的IF=0;(关中断)INAL,80H;从8255的A口获取选手按键信息NOTAL;将按键字节信息取反MOVCX,8;计数8次LOP4:SHRAL , 1;获取选手号码LOOPNZ LOP4MOVAX,CX;把选手号传给AXMOVBX,OFFSETTAB;查段码(字形码)XLAT;将选手号转换成TAB中对应的LED;字形码OUT81H,ALTESTBZ,OFFH;判断标志位是否为FFHJZLOP5MOVAL,00H;置8253通道2计数值OUT42H,ALMOVAL,10HOUT42H,ALMOVAL,03H;黄灯亮,抢答成功OUT 82H,ALJMPKKKLOP5:MOV AL,00H;置8253通道2计数值OUT42H,ALMOV AL,20HOUT 42H,ALMOVAL,05H;红灯亮,抢答违规OUT82H,ALKKK:MOVAL,20H;给8259发中断结束命令,写OCW2OUT20H,ALPOPAX;恢复现场POPBXPOPDXPOPDSIRETKEYINTENDP6、调试过程(1)在刚开始编程时,各种功能大部分是由主程序来完成的。由于主程序过于复杂,可读性不高。使得在以后的程序的调试中遇到了很大的麻烦。后来把主程序的部分功能转化成子程序来实现,并在一些重要的地方增加了注释,使的程序的可读性大大加强。调试也变的比较简单了。到此基本解决了第一个问题。(2)在编程时,子程序的调试也是相当重要,由于子程序不可避免的使用AXBXCXDX通用寄存器一个或几个。使得原主程序中的通用寄存器的内容很容易被覆盖,对子程序中所有的通用寄存器出入栈即可以避免上诉的问题,不用考虑使用的是哪几个寄存器,使用起来又比较简单方便。所以至此这个问题也已基本解决。(3)调试是一个复杂烦琐而漫长的过程。在调试的过程中一定要耐下心来去做,否则一旦出现烦躁的心里,就会事倍功半,适得其反。在本次设计中出现的主要问题即如上所述,解决方法也如上所述,在今后的软件调试过程中更应注意如上问题。7、系统操作说明启动计算机,计算机自动为系统各芯片进行初始化,抢答器开始工作。比赛开始,在主持人按下开始键,绿灯亮后,选手才可开始抢答,否则违规。若选手抢答成功,LED显示器显示选手号码,扬声器鸣叫。若选手抢答违规(主持人未按开妈键),LED显示器显示违规选手号码,红灯亮,扬声器报警,并根据比赛规则进行对该选手进行扣分。若系统提示某号选手抢答违规,主持人仍未按开始键,此时该号选手又按下抢答键,LED显示器显示该选手的号码。本系统开机后,若主持人既未按复位键又未按开始键,此时有选手按下抢答键,系统提示红灯亮,并报警。注: 1、抢答成功,置8253通道2计数值为1000,扬声器的鸣叫声音频率为1MHz/1000=1KHz。2、抢答失败,置8253通道2计数值为2000,扬声器的鸣叫声音频率为1MHz/2000=0.5KHz。3、扬声器鸣叫或报警的时间为12s。 8、总结这次实验是一个综合性实验,通过这次实验,使我们将以前我们所学习到的芯片知识综合应用到这个实验上,从结构、功能、用法上都有了全面的认识,并基本达到了能够通过我们小组的讨论完成从构思到设计最后到调试的整个过程,虽然其中遇到了很多困难阻力,从开始到整个完成,但我们还是坚持了下来,所有的努力换回了成功的喜悦。下面就说说实验中的一些问题以及一些体会:实验的初期,由于对整个的电路还不能从整体把握,只能从实验书上的实验要求出发,结合查找到的资料提出解决方案。最大的体会是团队的力量,几乎所有的设计都是在我们的讨论中“诞生”的,尽管每个人的想法不一样,但聚到一起后就会激发出更多的想法,同时也可以完善不足之处。设计如何用一个开关完成这些电路的多功能同时控制,曾经因为这一部分的设计而陷入僵局,好在认真经过分析,终于完成了。这也告诉我们,一定要对自己有信心,所要做的就是坚持,成功就不会遥远。我们调试时,虽然我们有合理的布局作保证,但也遇到了一些麻烦,但最终还是解决了。9、参考文献1刘红玲,邵晓根微机原理与接口技术M.中国电力出版社,2007年第一版2冯博琴微型计算机原理及接口技术M.清华大学出版社,2007.3艾德才微型计算机原理与接口技术M.高等教育出版社,2001.4张雪兰,谭毓安汇编语言程序设计M.北京:清华大学出版社,2005.
展开阅读全文