1、 课程设计报告课程 微机原理课程设计 题目 竞赛抢答器 系 别 物理与电子工程学院 年 级 09级 专 业 电子信息工程 班 级 1班 学 号 ,6,7,8 学生姓名 指引教师 职 称 设计时间 目 录第一章 关于抢答器概述及设计规定21.1数字抢答器简介21.2课程设计规定21.3实现功能3第二章 总体设计42.1功能需求分析42.2可行性分析42.3硬件总体设计42.3.1硬件器材42.3.2内存单元地址42.4软件流程图5第三章 硬件设计63.1所选芯片简介63.1.1可编程并行接口接口芯片8255A63.1.2可编程定期器计数器825373.2系统所选用各芯片连接83.2.1各芯片与C
2、PU连接83.2.2各芯片之间连接和与外设连接8第四章 软件设计94.1程序流程94.2子程序清单94.2.1 芯片8255初始化:94.2.2芯片8253初始化:94.2.3获取选手号码子程序:94.2.4数码管显示子程序:104.2.5扬声器鸣叫时间:11第五章 成果分析12结束语13附录14参照文献14主程序清单14第一章 关于抢答器概述及设计规定1.1数字抢答器简介抢答器是在竞赛、文体娱乐活动(抢答活动)中,能精确、公正、直观地判断出抢答者机器。通过抢答者批示灯显示、数码显示和警示显示等手段批示出第一抢答者。随着科学技术不断发展,促使人们学科学,学技术,学知识手段各种各样,抢答器作为一
3、种强大工具,已经广泛应用于各种知识能力竞赛场合,例如选拔人才、评比优胜及各种智力竞赛等。当前知识竞赛之类活动更加频繁,凡是有知识竞赛类活动那么也就必然离不开抢答器。针对主持人提出问题,各组普通要进行必答和抢答,对于抢答,要鉴定哪组先按键,为了公正,这就要有一种逻辑电路抢答器作为裁判员。这种数字抢答器杜绝了人为因素影响,实现了抢答公平公正原则。因此操作简朴、经济实用小型数字抢答器将流行于各类竞赛中,成为小规模知识竞赛首选。1.2课程设计规定内容:用微机原理实验箱,在外接8个按键抢按下,让7段LED数码管显示抢答者编号,并使喇叭响一下。详细规定:(1) 通过实验箱上8255芯片接受来自实验箱按键信
4、息,将该信息送入8088CPU,由CPU判断是哪个按键按下;(2) 8088CPU将判断出按键信息转换为7段显示码,并通过8255芯片发送到7段显示模块显示;(3) 在显示按键信息同步通过实验箱上8253芯片产生一定频率方波信号发送到音频功放模块,发出声音;(4) 提高规定: 能对几乎同步发生按键进行鉴别,找到先按键。1.3实现功能当没有选手按下按键时,LED数码管显示“-”符号,表达此时可以进行抢答,当抢答开始,选手按下8路抢答器中任何一路开关时,8段LED数码管上显示最先按开关选手号码,同步蜂鸣器鸣叫一段时间以示已有人抢答成功。当一位选手抢答成功时,数码管上显示这位选手号码,此时其她选手再
5、按下按键不会产生任何作用,系统进入锁死状态,当抢答成功选手退下按键时,LED数码管显示“-”符号,表达系统已经初始化,可以进行下一轮抢答。第二章 总体设计2.1功能需求分析系统必要精确判断抢答者信息,依照按键信息判断被按下按键序号,在LED数码管上显示相应数字反映抢答信息,同步蜂鸣器响一声以示有选手抢答成功。2.2可行性分析将8个抢答器按键连接到8255芯片PA0PA7,当8组均未按下抢答按钮时,送入到并行接口8位抢答状态都是0,当检测到按键发生变化时,即微机采样到这8位数据不为0时,微机通过该并行输入口循环对8路抢答信号进行采样。当采样到哪一组抢答信号已经发出,则记录下该组组号,从PB口输出
6、组号所相应LED数码管段码,同步PC7端口连接至定期器门控信号端口,使定期器工作,输出端连接到蜂鸣器,蜂鸣器鸣叫一段时间后关闭,若系统检测到按键信息全为0时,表白选手已经把按键退下,则系统重新开始检测按键状态,进入下一种抢答环节。2.3硬件总体设计2.3.1硬件器材所需器件:可编程并行接口芯片8255、可编程定期器计数器8253,扬声器,一种LED显示屏,8个按键。2.3.2内存单元地址可编程并行接口接口芯片8255A端口地址为0ff28H、0ff29H、0ff2AH、0ff2BH。可编程定期器计数器8253端口地址为0040H、0041H、0042H、0043H。2.4软件流程图开始8255
7、初始化8253初始化显示“-”符号从8255A口读取按键状态YY无按键按下YNLED显示1按键1按下LED显示3LED显示4LED显示5LED显示6LED显示7LED显示2YN按键2按下N按键3按下YYN按键4按下NY按键5按下YN按键6按下N按键7按下NLED显示8Y按键8按下蜂鸣器响一声检测PA口与否全为0N按键全为0Y图1 系统软件流程图第三章 硬件设计3.1所选芯片简介3.1.1可编程并行接口接口芯片8255A8255A内部构造8255A芯片是一种采用NMOS工艺制造40引脚双列直插式(DIP)封装组件。8255A有3个8位数据端口,即A口、B口及C口,它们都可以分别作为输入口或输出口
8、使用;A组控制与B组控制;读写控制逻辑;数据总路线缓冲器。8255A重要外部引脚图2 8255A引脚图PA7PA0:A口8条IO线。8条线只能同步作为输入或输出,不能分开使用,可设立成双向口,也只有A口容许这样做。PB7PB0:B口8条IO线。不可以设立成双向口,其他和A口同样。PC7PC0:C口8条IO线。不可以设立成双向口,但它可以分拆为两组即高4位和低4位,这两组可以任意设立为输入或输出。除了作为独立IO线外,C口还经常为A口、B口服务,配合A口、B口作联系线使用。A1、A0:端口地址选取信号。用于选取8255A3个数据端口和一种控制口。当A1A0=00时,选取端口A;为01时,选取端口
9、B;为10,选取端口C;为11时,选取控制口。8255A工作方式方式0:基本输入输出方式。A口、B口、C口都可以工作在些方式下。8255A方式控制字格式表1 8255方式控制字D7D6、D5D4D3D2D1D01A口A口C口高4位B口B口C口低4位00 方式001 方式11x 方式20 输出1 输入0 输出1 输入0方式01方式10 输出1 输入0 输出1 输入3.1.2可编程定期器计数器82538253内部构造8253采用NMOS工艺制成,有24个引脚,所有输入、输出端均TTL电平兼容,单一电源(Vcc=+5V)供电,最高计数速率为2.6MHz。它涉及3个计数器(即计数器0、1、2)、数据总
10、路线缓冲器、读写逻辑以及控制寄存器等4个某些。8253外部引脚图3 8253引脚图A1、A0:地址输入线,用来址8253内部4个端口,即3个计数器和1个控制字寄存器与CPU系统地址线相连。CLK0、CLK1、CLK2:时钟脉冲输入端,用于输入定期脉冲或计数脉冲信号。CLK可以是系统时钟脉冲,也可以由系统时钟分频或者其她脉冲源提供。当用于定期时,这个脉冲必要是均匀、持续、周期精准,而用于计数时,这个脉冲可以是不均匀、断续、周期不定。GATE0、GATE1、GATE3:门控输入端,用于外部控制计数器启动计数和停止计数操作。两个或两个以上计数器连用时,可用此信号同步,也可用于与外部某信号同步。OUT
11、0、OUT1、OUT2:计数输出,当计数器从初值开始完毕计数操作进,OUT引脚输出相应信号。8253工作方式方式0:减1计数到0,产生中断祈求信号。方式3:减1计数到初值12,方波发生器。8253方式控制字格式表2 8253方式控制字D7 D6D5 D4D3 D2 D1D000 选计数器001 选计数器110 选计数器200 计数器锁存01 只读写低8位10 先读写高8位11 先读写低8位 再读写高8位000 方式0001 方式1X10 方式2X11 方式3100 方式4101 方式50 二进制计数1 BCD计数3.2系统所选用各芯片连接3.2.1各芯片与CPU连接8255A、8253数据总线
12、D7D0端、端、端、端、端、INT端分别与CPUD7D0数据总线、片选端、端、端、端、INTR端。8255A、8253A1、A0端分别与CPU地址线A1、A0端相连。3.2.2各芯片之间连接和与外设连接8255AA口PA7PA0依次接“按键1”“按键8”,B口PB7PB0通过驱动器1接到LED显示屏,8253GATE0端接PC7端口,CLK0接1MHz,OUT0输出接入接扬声器。第四章 软件设计4.1程序流程设定好8255、8253方式控制字后,依照读取8255PA端口状态值,获取选手详细号码,从而转到相应程序,将号码所相应段码输出到PB端口进行数码管显示。同步将PC7置1,使相连GATE0门
13、控信号为1,通道0进行计数,输出到扬声器进行鸣叫。4.2子程序清单4.2.1 芯片8255初始化:PORT_A EQU 0FF28HPORT_B EQU 0FF29HPORT_C EQU 0FF2AHPORT_CTL EQU 0FF2BH MOV AL,90H ;8255控制字 A组方式0输入 MOV DX,PORT_CTL ;B组方式0输出 C口输出 OUT DX,AL4.2.2芯片8253初始化: MOV AL,00110110B ;8253控制字 计数器0 读写字 MOV DX,43H ;工作方式方式3 OUT DX,AL MOV AX,5000 ;计数器初值 MOV DX,40H OU
14、T DX,AL MOV AL,AH OUT DX,AL4.2.3获取选手号码子程序:在硬件电路中,8255PA端口连接开关按键,依照读取PA状态可以判断出按下是哪个键(按下为高电平),依照进行移位操作,可得出选手详细号码。MOV DX,PORT_A ;读取A口状态(按键状态) IN AL,DX CMP AL,00000000B ;无按键按下 返回LED1 JE LED1 CMP AL,00000001B ;按键1 JE LP1 CMP AL,00000010B ;按键2 JE LP2 CMP AL,00000100B ;按键3 JE LP3 CMP AL,00001000B ;按键4 JE L
15、P4 CMP AL,00010000B ;按键5 JE LP5 CMP AL,00100000B ;按键6 JE LP6 CMP AL,01000000B ;按键7 JE LP7 CMP AL,10000000B ;按键8 JE LP8 JMP LED1 ;返回4.2.4数码管显示子程序:依照获获得到选手号码,跳转相应程序,将段码输出给PB端口。LP1: MOV DX,PORT_B ;数码管显示1 MOV AL,11111001B OUT DX,ALLP2: MOV DX,PORT_B ;数码管显示2 MOV AL,10100100B OUT DX,ALLP8:LED管脚相应字形dp、g、f、
16、e 、d、c、b、a 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0123456784.2.5扬声器鸣叫时间:PUSH DX PUSH AX MOV AL,00001111B ;8255 PC7口置1,使蜂鸣器工作 MOV DX,PORT_CTL OUT DX,AL POP AX POP DX MOV BL,00000000B MOV CX,0FFFFH ;延时一段时间 LPP2:LOOP
17、 LPP2 MOV CX,0FFFH LPP3:LOOP LPP3 PUSH DX PUSH AX MOV AL,00001110B ;8255 PC7口置0,蜂鸣器停止工作 MOV DX,PORT_CTL OUT DX,AL POP AX POP DX第五章 成果分析连接硬件电路后,控制程序输出得到相应成果:图5 硬件显示成果由上成果可看出,当按键3按下时候,数码管显示数字3,扬声器进行鸣叫,在无按键按下时,LED数码管显示符号“-”,可得程序设计及硬件连接能达到题目规定。结束语转眼间一周微机课程设计转眼就结束了,通过这次课程设计,我学会了许多课本上学不到东西,同步也加强了我动手、思考和解决
18、问题能力,受益匪浅。课程设计过程中,我觉得是对课本知识巩固和加强,由于课本上知识太多,同步平时课间又没有好好运用额理解个芯片功能,并且考试内容有限,因此在这次课程设计过程中,咱们理解诸多元件功能,对其在电路中使用有更多结识。从前学习过程过于浮浅,只是流于表面理解,而当前要做课程设计,就不得不规定咱们对所用到知识有更深层次理解。由于课程设计内容比及课本中理论知识而言,更接近于现实生活,而理论到实践转化往往是一种艰伤心程,它犹如一只拦路虎,横更在咱们面前。但是咱们毫不畏惧,由于咱们相信咱们能行。前几天重要任务是设计程序。虽然在设计中会遇到这样那样问题,有时以为是对的,而在仿真中却浮现了这样那样问题
19、。软件某些做好了,下面就是接线啦,这可是一种比较麻烦事。在接线时候要细心和耐心、恒心,这样才干做好事情。同步接好了一步电路后来,最为重要是检查这某些是不是接对了。在做硬件测试时候,八个数字基本能显示,但还是有点缺陷,例如显示数字1时候,显示不对,日后在教师协助下解决了这个问题。通过这次课程设计使我懂得了理论与实际相结合是很重要,只有理论知识是远远不够,只有把所学理论知识与实践相结合起来,从理论中得出结论,才干真正为社会服务,从而提高自己实际动手能力和独立思考能力。在设计过程中遇到问题,可以说得是困难重重,这毕竟第一次做,难免会遇到过各种各样问题,同步在设计过程中发现了自己局限性之处,对此前所学
20、过知识理解得不够深刻,掌握得不够牢固。本次课程设计,学到了诸多课内学不到东西,例如独立思考解决问题,浮现差错随机应变,和与人合伙共同提高,都受益非浅,此后制作应当更轻松,自己也都能扛起并高质量完毕项目。最后,我要感谢予以咱们精心辅导教师。附录参照文献1.朱金钧 麻新旗微型计算机原理及应用技术M北京:机械工业出版社主程序清单PORT_A EQU 0FF28HPORT_B EQU 0FF29HPORT_C EQU 0FF2AHPORT_CTL EQU 0FF2BHCODE SEGMENTASSUME CS:CODEORG 11B0HSTART: MOV AL,90H ;8255控制字 A组方式0输
21、入 MOV DX,PORT_CTL ;B组方式0输出 C口输出 OUT DX,AL MOV AL,00110110B ;8253控制字 计数器0 读写字 MOV DX,43H ;工作方式方式3 OUT DX,AL MOV AX,5000 ;计数器初值 MOV DX,40H OUT DX,AL MOV AL,AH OUT DX,AL LED1: MOV BL,00000001B ;设立全局变量 BL MOV AL,00001110B ;PC7端口置0 MOV DX,PORT_CTL OUT DX,AL MOV DX,PORT_B ;在数码管显示符号- MOV AL,10111111B OUT D
22、X,AL MOV DX,PORT_A ;读取A口状态(按键状态) IN AL,DX CMP AL,00000000B ;无按键按下 返回LED1 JE LED1 CMP AL,00000001B ;按键1 JE LP1 CMP AL,00000010B ;按键2 JE LP2 CMP AL,00000100B ;按键3 JE LP3 CMP AL,00001000B ;按键4 JE LP4 CMP AL,00010000B ;按键5 JE LP5 CMP AL,00100000B ;按键6 JE LP6 CMP AL,01000000B ;按键7 JE LP7 CMP AL,10000000B
23、 ;按键8 JE LP8 JMP LED1 ;返回 LP1: MOV DX,PORT_B ;数码管显示1 跳转LP9 MOV AL,11111001B OUT DX,AL JMP LP9LP2: MOV DX,PORT_B ;数码管显示2 跳转LP9 MOV AL,10100100B OUT DX,AL JMP LP9 LP3: MOV DX,PORT_B ;数码管显示3 跳转LP9 MOV AL,10110000B OUT DX,AL JMP LP9 LP4: MOV DX,PORT_B ;数码管显示4 跳转LP9 MOV AL,10011001B OUT DX,AL JMP LP9 LP5
24、: MOV DX,PORT_B ;数码管显示5 跳转LP9 MOV AL,10010010B OUT DX,AL JMP LP9 LP6: MOV DX,PORT_B ;数码管显示6 跳转LP9 MOV AL,10000010B OUT DX,AL JMP LP9LP7: MOV DX,PORT_B ;数码管显示7 跳转LP9 MOV AL,11111000B OUT DX,AL JMP LP9 LP8: MOV DX,PORT_B ;数码管显示8 跳转LP9 MOV AL,10000000B OUT DX,AL JMP LP9 LP9: MOV DX,PORT_A ;读取按键状态 IN AL
25、,DX CMP BL,00000001B ;全局变量BL与1比较 相似时跳转 JE DELAY2 CMP AL,00000000B ;检测按键与否清零,清零时跳DELAY1 JE DELAY1 JMP LP9 ;重复检测A口状态 DELAY1: MOV CX,0FFFFH ;延时 返回LED1 LPP1:LOOP LPP1 JMP LED1DELAY2: ;PC7口置1,8253开始工作 PUSH DX PUSH AX MOV AL,00001111B MOV DX,PORT_CTL OUT DX,AL POP AX POP DX MOV BL,00000000B MOV CX,0FFFFH ;延时一段时间后,8253停止工作 LPP2:LOOP LPP2 MOV CX,0FFFH LPP3:LOOP LPP3 PUSH DX PUSH AX MOV AL,00001110B ;PC7口置0,8253停止工作 MOV DX,PORT_CTL OUT DX,AL POP AX POP DX JMP LP9 ;返回LP9CODE ENDSEND START课程设计独创性声明: 学生签名: 指引教师评语:课程设计成绩: 指引教师签名: 教研室意见: 教研室主任签名: