单片机控制的八路智力竞赛抢答器的设计_第1页
单片机控制的八路智力竞赛抢答器的设计_第2页
单片机控制的八路智力竞赛抢答器的设计_第3页
单片机控制的八路智力竞赛抢答器的设计_第4页
单片机控制的八路智力竞赛抢答器的设计_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘 要 抢答器是一种常见的电子产品,尤其是在各类智力竞猜中,为了实现选手的公平性,性能优良的抢答器往往更能得到各单位的青睐。这里通过两种设计方案的对比,最终选定了用单片机实现抢答器电路。由于单片机具有可编程定时器和中断设备,便于实现编程和时间的精确控制。所用方案电路结构简单,易于实现,它用4个七段数码管来显示,且具有简单精准的报警电路。所选方案的一个很重要的特点在于具有灵活性,主持人可以根据题目难易进行时间设定,这样进一步保证了公平性。由于它具有成本低廉,结构简单,且性能优良的诸多优点,必定会得到广泛的应用。关键词:抢答器 ,单片机 ,七段数码管,时间设定 目 录一 方案的概述11.1 设计内

2、容及要求11.1.1 设计内容11.1.2 设计要求11.2 设计方框图21.3 抢答器的程序流程3二 抢答器单元设计及其说明82.1主要芯片的介绍82.2程序流程图102.3 max7219122.3.1 max7219引脚说明122.3.2 基本的工作方法132.3.3 max7219初始化142.3.4 部分程序功能介绍142.4lcd简介162.4.1lcd和led的区别162.4.3显示电路设计和lcd的引脚功能说明172.4.4液晶显示模块18三抢答器电路原图及仿真203.1抢答器原理图203.2仿真软件介绍213.3仿真测试效果22设计小结25参考文献26附录一27附录二28黄石

3、理工学院毕业设计(论文)一 方案的概述1.1 设计内容及要求1.1.1 设计内容1设计一个智力竞赛抢答器,可同时供8名选手或8个代表队参加比赛,他们的编号分别是1、2、3、4、5、6、7、8,各用一个抢答按钮,按钮的编号与选手的编号相对应,分别是s0、s1、s2、s3、s4、s5、s6、s7。2给节目主持人设置一个控制开关,用来控制系统的清零(编号显示数码管灭灯)和抢答的开始。3抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在led数码管上显示出选手的编号,同时蜂鸣器给出音响提示。此外,要封锁输入电路,禁止其他选手抢答。优先抢答选手的编号一直保持到主持人将系

4、统清零为止。4用中小规模集成电路组成智力竞赛抢答器电路,画出各单元电路图和总体逻辑框图,正确描述各单元功能,合理选用电路器件,画出完整的电路设计图以及写出设计总结报告1.1.2 设计要求1、如果想调节抢答时间或答题时间,按抢答时间调节键或答题时间调节 键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下加1s键,如果想减一秒按一下-1s键,时间led上会显示改变后的时间,调整范围为0s99s, 0s时再减1s会跳到99,99s时再加1s会变到0s。 2、主持人按抢答开始键,会有提示音,并立刻进入抢答倒计时(预设30s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立

5、刻进入回答倒计时(预设60s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。倒数时间到小于5s会每秒响一下提示音。 3、如倒计时期间,主持人想停止倒计时可以随时按停止按键,系统会自动进入准备状态,等待主持人按抢答开始进入下次抢答计时。 4、如果主持人未按抢答开始键,而有人按了抢答按键,犯规抢答,led上不断闪烁ff和犯规号数并响个不停,直到按下停止 键为止。 5、p3.0为开始抢答,p3.1为停止,p1.0-p1.7为八路抢答输入 数码管段选p0口,位选p2口低3位,蜂鸣器输出为p3.6口。p3.2抢答时间调整整,p3.3回答时间调整,p3.4为时间加1调整,p3.5为时间减1调整

6、。6、当参赛选手在回答问题时要求使用锦囊,则主持人按下抢答开始键,计时重新开始。1.2 设计方框图如图(1-1)所示为八路智力抢答器设计的物理模块划分如下:单片机抢答模块(八路输入)控制模块(主持人操作)显示模块(倒计时、选手号)语音提示模块 图1-1 设计物理框图通过主持人的相关操作(包括开始、停止、调时、锦囊使用等),以及选手的抢答,显示模块与语音模块应能迅速做出正确回应。如主持人按下开始,语音模块立刻给以语音提示,显示模块立刻显示抢答倒计时;当有选手抢答,显示模块应马上显示最先抢答的选手号,并进入答题倒计时 而这一切,都有赖于本设计的核心模块51单片机来控制。通过一系列的汇编程序,来控制

7、、实现相应的逻辑功能。本设计中大部分的较为复杂的逻辑控制,都是用相应的汇编程来控制实现的。根据相应的设计要求,对本设计可作如下分析:1、由设计要求1,本设计应具有抢答时间调整和回答时间调整程序,并由相应引脚来控制:p3.2抢答时间调整,p3.3回答时间调整,p3.4为加1s,p3.5为减1s;2、根据设计要求2,本设计应具有抢答、回答倒计时功能,即倒计时程序。通过查询开始键的状态来决定是否进入抢答倒计时,开始键按下后有人抢答便立即进入回答倒计时,倒计时小于5s时,调用发声程序;3、程序中应不断查询停止 键的状态,一旦其按下,应立即退出,并进入查询程序(用来查询开始键与八路抢答键的状态);4、

8、为使本设计具有锦囊功能,在回答倒计时过程中,若按下开始键,回答倒计时重新开始。1.3 抢答器的程序流程本设计采用p3.2、p3.3分别接抢答时间调节和答题时间调节按钮,即通过外部中断0、外部中断1分别控制抢答、答题时间的调整。因此,设计的软件部分可分为工作模块、外部中断0模块、外部中断1模块。对流程图的分析,也分三部分来介绍。(1)工作时(非调节时间时)的流程平时正常工作时,程序的流程图绘制如图1-2:对工作流程图中的某些部分解释如下:初始化部分:包括对定时计数器的工作方式、初始化数值的设置,还包括对抢答时间与答题时间的预设,另外,还应对外部中断0、外部中断1进行开放。抢答倒计时、回答倒计时部

9、分:由于二者功能的相似性,本设计将二者在一个子程序倒计时程序中一起编写。犯规程序部分:包括对犯规选手号的显示、报警器的间断工作。另外,由于在设计要求主持人能随时对工作过程终止,因此,要不断查询停止键的状态,一旦按下,便回到初始化后的状态;在倒计时过程中还要不断将与5s比较,当小于5s时,还需调用发声程序;小于5s后, 又需要不断将与0较,当其等于零时,立即返回。图1-2 工作流程图(2)外部中断0(抢答时间调整)流程外部中断0(抢答时间调整)的流程图见图1-3:int0中断y显示当前抢答时间p3.4按下?p3.5按下?抢答时间加1snyn结果为100s?结果置0n结果为0s?结果置100抢答时

10、间减1syyn停止键按下?中断返回ny图1-3 int0流程图一旦因p3.2对应键的按下,便进入int0中断过程。通过不断对p3.4(加1s)和p3.5(减1s)进行不断的查询,来对抢答时间进行调整:发现p3.4按下,就对原抢答时间加1s, 发现p3.5下,就对原抢答时间减1s并调用显示程序。根据设计要求,当加至99s时,若再加1s,则时间变为0;当减至0s后,若再减一秒,时间变为99s。因此,流程中应该对当前时间于99s或0s比较,再作出相应处理。另外,在中断过程中还需要不时对停止按钮进行查询,一旦发现其按下,立即中断返回。由于本中断过程在返回前一直是循环执行的,因此,只需要在每次循环末查询

11、一次即可,如流程图所示(3)外部中断1(答题时间调整)流程外部中断1(答题时间调整)流程与外部中断1流程大同小异。其程序流程参见图1-4:与抢答时间调整类似,一旦因p3.3对应的按钮按下,便进入int1中断过程。通过不断对p3.4(加1s)和p3.5(减1s)进行不断的查询,来对抢答时间进行调整:发现p3.4按下,就对原抢答时间加1s, 发现p3.5下,就对原抢答时间减1s并调用显示程序。当加至99s时,若再加1s,则时间变为0;当减至0s后,若再减一秒,时间变为99s。因此,流程中应该对当前时间于99s或0s比较,再作出相应处理。同上,在中断过程中,也还需要不时对停止按钮进行查询,一旦发现其

12、按下,立即中断返回。int1中断y显示当前答题时间p3.4按下?p3.5按下?答题时间加1snyn结果为100s?结果置0n结果为0s?结果置100答题时间减1syyn停止键按下?中断返回ny图1-4 int1流程图二 抢答器单元设计及其说明2.1主要芯片的介绍 at89sc52的引脚图如图2-1所示图2-1 at89sc52芯片引脚图1) 主要性能本方案所使用的主要芯片是at89sc52, 它与mcs-51单片机产品兼容 、8k字节在系统可编程flash存储器、 1000次擦写周期、 全静态操作:0hz33hz 、 三级加密程序存储器 、 32个可编程i/o口线 、三个16位定时器/计数器

13、八个中断源 、全双工uart串行通道、 低功耗空闲和掉电模式 、掉电后中断可唤醒 、看门狗定时器 、双数据指针 、掉电标识符 。2) 功能特性描述 at89sc52 是一种低功耗、高性能cmos8位微控制器,具有 8k 在系统可编程flash 存储器。使用atmel 公司高密度非 易失性存储器技术制造,与工业80c51 产品指令和引脚完全兼容。片上flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位cpu 和在系统 可编程flash,使得at89sc52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 at89s52具有以下标准功能: 8k字节flas

14、h,256字节ram, 32 位i/o 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,at89s52 可降至0hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,cpu 停止工作,允许ram、定时器/计数器、串口、中断继续工 作。掉电保护方式下,ram内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8k 字节在系统可编程 flash at89s52。3) p0、p1口介绍 p0 口:p0 口是一组8 位漏极开路型双向i/o 口, 也即地址/数据总线复用口

15、。作为输出口用时,每位能吸收电流的方式驱动8 个ttl逻辑门电路,对端口p0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在flash 编程时,p0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 p1 口:p1 是一个带内部上拉电阻的8 位双向i/o 口, p1 的输出缓冲级可驱动(吸收或输出电流)4 个ttl 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流

16、(iil)。与at89c51 不同之处是,p1.0 和p1.1 还可分别作为定时/计数器2 的外部计数输入(p1.0/t2)和输入(p1.1/t2ex),参见表2-1表2-1 p1.0 p2.0 引脚功能特性4) 本方案中用到的一些引脚介绍 xtal1:振荡器反相放大器的及内部时钟发生器的输入端。 xtal2:振荡器反相放大器的输出端。 特殊功能寄存器: 在at89c52 片内存储器中,80h-ffh 共128 个单元为特殊功能寄存器(sfe)。 并非所有的地址都被定义,从80hffh 共128 个字节只有一部分被定义,还有相当一部分没有定义。对没有定义的单元读写将是无效的,读出的数值将不确定

17、,而写入的数据也将丢失。不应将数据“1”写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。 at89c52除了与at89c51所有的定时/计数器0 和定时/计数器1 外,还增加了一个定时/计数器2。定时/计数器2 的控制和状态位位于t2con,t2mod,寄存器对(rcao2h、rcap2l)是定时器2 在16 位捕获方式或16 位自动重装载方式下的捕获/自动重装载寄存器。2.2程序流程图 图2-2 程序流程图2.3 max72192.3.1 max7219引脚说明引脚说明见表2-2表2-2 max7219引脚说明引脚号名称功能说明1di

18、n串行数据输入端在clk的上升沿数据被锁入芯片内部16位移位寄存器。2358.10.11dig0dig78位led位选线,从共阴极led中吸入电流。49gnd地线(两个gnd必须连在一起)。12load锁入输入的数据在load上升沿最后的16位串行数据被锁入。13clk时钟输入,最高时钟频率为10mhz,在clk的上升沿数据被锁入内部移位寄存器,在clk的下降沿,数据从dout脚被输出。1417 2023segasegg.dp7段驱动和小数点驱动18iset该脚通过一个电阻与v+相连,设置峰值段电流。19v+电源电压,+5v。24dout串行数据输出。输入到din的数据在16.5个时钟周期后在

19、dout脚发出,该脚用于与级联扩展2.3.2 基本的工作方法max7219与8031单片机连接采用三线串行接口,典型应用电路如表2-3所示。y&fen;y-jguest表2-3 16位数据包的数据格式如下:d0d7d8d11d12d13d14d15lsb data msbaddressd7d0:8位数据位,d7最高位,d0最低位; d11d8:4位地址位; d15d12:无关位,通常全取1。max7219通过d11d84位地址位译码,可寻址14个内部寄存器,分别是8个led显示位寄存器,5个控制寄存器和1个空操作寄存器。led显示寄存器由内部88静态ram构成,操作者可直接对位寄存器进行个别寻

20、址,以刷新和保持数据,只要v超过2v(一般为5v)。a y6i/e8g(rw0nguest控制寄存器包括:译码模式,显示亮度调节,扫描限制(选择扫描位数),关断和显示测试寄存器。 eetop专业博客-电子工程师自己的家园1wm0-?7b-v< pgueste(|ox*u )vguestmax7219的驱动程序首先必须对5个控制寄存器(地址分配见表2-4)初始设置即初始化,各控制寄存器设置含义如下:译码模式选择寄存器(地址=f9h);5g)sjwgm+cguesteetop专业博客-电子工程师自己的家园xg/u9y3o|共有4种译码模式供选择,当数据位全0时选择“非译码方式”。在此方式下,8

21、个数据位分别一一对应7个段和小数点。通常选择此方式。 1qeb#k qguestk54q6y+vguest扫描限制寄存器:地址fbh;用于设置显示的led个数(18),当d2d1d0111、d7d6d5d4d3无关时,可接8个led管。eetop专业博客-电子工程师自己的家园9rb3dw#y0x 亮度调节寄存器:地址fah;cb!iae rp-qguest共有16级选择,用于led显示亮度的强弱设置。eetop专业博客-电子工程师自己的家园99lia(8d$hw 关断模式寄存器:地址fch;eetop专业博客-电子工程师自己的家园k_*avsi 有两种模式选择:一种是关断状态模式(d00);一

22、种是正常操作状态(d01),通常选择正常操作状态。eetop专业博客-电子工程师自己的家园bja|q 显示测试寄存器:地址ffh;有两种选择用于设置led是测试状态还是正常操作状态:当在测试状态时(d01)各位全应亮,一般选择正常操作状态(d0=0)。表2-4 寄存器地址分配表寄存器名称地址d15d12d11d10d9d8空操作0000digit00001digit10010digit20011digit30100digit40101digit50110digit60111digit71000译码模式1001亮度调节1010扫描限制1011关断模式1100显示测试11112.3.3 max72

23、19初始化表2-5 初始化设置各项的选择及对应数值设置项目选择颠倒后的数值(16位)显示亮度17/325f1fh扫描限制07位dfefh译码方式非译码方式9f00h显示测试正常操作ff00h关断方式正常操作3f80h2.3.4 部分程序功能介绍 全部程序见附录二,下面仅介绍部分程序由于在读抢答数据口的时候,单片机首先进入倒计时程序,再调用显示程序,最后才检测按键口,然而在检测按键口时动态扫描要调用三次(4ms)延时程序.这样就会导致读数据口出现滞后,造成1号优先最高.8号最低.故采用在延时子程序中加了读数据口程序.保证了灵敏度和可靠性,程序如下: =加减时间延时(起到不会按下就加n个数)=de

24、lay1: mov 35h,#08hloop0: acall displaydjnz 35h,loop0ret;=延时4236个机器周期(去抖动用到)=delay: mov 32h,#12hloop: mov 33h,#0afhloop1: djnz 33h,loop1djnz 32h,loopret;=延时4236个机器周期(显示用到)=delay2: mov 32h,#43hloop3: mov 33h,#1ehmov a,r7 ;每隔6070个机器周期读一次p1口,全为1时为无效数据,继续读,有一个不为1时,转到正常抢答处理jnz aaaa1 ;没读到有效数据时继续转到aaaa1loop

25、2: djnz 33h,loop2djnz 32h,loop3ret;=读抢答按键数据口程序= 主持人时间设定程序如下:acall display;先在两个时间led上显示r1jnb p3.4,inc0;p3.4为+1s键,如按下跳到incojnb p3.5,dec0;p3.5为-1s键,如按下跳到decojnb p3.1,back0;p3.1为确定键,如按下跳到backo2.4lcd简介2.4.1lcd和led的区别 led为英文(light emitting diode)的缩写,是发光二极管的一种,lcd是液晶显示器,两者相差太多.但是用led的点阵也能组成显示器,适用于户外大屏幕显示,分

26、辨率较低。lcd为英文(liquid crystal display)的缩写,即液晶显示器,是一种数字显示技术,通过液晶和彩色过滤器过滤光源,在平面面板上产生图象。与传统的阴极射线管lcd占用空间小,低功耗,低辐射,无闪烁,降低视觉疲劳。 lcd技术能够显示更加清晰,明亮的图象。 led是发光二极管 特点:自发光,从远处可以看见,价格相对较低缺点;显示的内容少,一般是数码,led电子滚动显示,等等,很耗电,控制复杂。 由于lcd比led的效果好,所以本设计我们选择了lcd作为我们设计的显示器。2.4.2单片机和分立元件的区别单片机相当于一个集成电路,将一些功能都集成在一个芯片中,在一小块芯片中

27、能实现各种功能的器件。分立元件是指电阻电感电容等器件。这是相对于集成电路来说的,比如一个电路,他用了一个集成电路,外加一些零件即能实现需要的功能,而一般来说,用分立元件也能实现,但体积可能会大一些,可靠性可能也差一些。通过两者的比较,单片机明显优于分立元件,所以本设计我们选择了用单片机。其系统硬件设计如图2-3键盘输入单片机液晶显示对比度控制图2-3 单片机系统硬件设计2.4.3显示电路设计和lcd的引脚功能说明液晶显示模块是一种将液晶显示器件、连接件、集成电路、pcb线路板、背光源、结构件等装配在一起的组件。英文名称叫“lcd module”,简称“lcm”,中文称为“液晶显示模块”,其流程

28、图如2-4所示,实物图如2-5所示。lcd控制器vssvdddvorsr/wedb0db7lcd驱动器lcd显示装置如图2-4 lcd流程图图2-5 lcd1602实物图2.4.4液晶显示模块表2-6 lcd引脚功能编号符号引脚说明编号符号引脚说明1vss电源地9d2双向数据口2vdd电源正极10d3双向数据口3vl对比度调节11d4双向数据口4rs数据/命令选择12d5双向数据口5r/w读/写选择13d6双向数据口6e模块使能端14d7双向数据口7d0双向数据口15blk背光源地8d1双向数据口16bla背光源正极vdd:电源正极,4.55.5v,通常使用5v电压;vl:lcd对比度调节端,

29、电压调节范围为05v。接正电源时对比度最弱,接地电源时对比度最高,但对比度过高时会产生“鬼影”,因此通常使用一个10k的电位器来调整对比度,或者直接串接一个电阻到地; rs:mcu写入数据或者指令选择端。mcu要写入指令时,使rs为低电平;mcu要写入数据时,使rs为高电平; r/w:读写控制端。r/w为高电平时,读取数据;r/w为低电平时,写入数据; e:lcd模块使能信号控制端。写数据时,需要下降沿触发模块。 d0d7:8位数据总线,三态双向。如果mcu的i/o口资源紧张的话,该模块也可以只使用4位数据线d4d7接口传送数据。本充电器就是采用4位数据传送方式; bla: led背光正极。需

30、要背光时,bla串接一个限流电阻接vdd,blk接地,实测该模块的背光电流为50ma左右;blk: led背光地端。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(com)的数码管。共阳数码管在应用时应将公共极com接到+5v,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公

31、共阴极(com)的数码管。共阴数码管在应用时应将公共极com接到地线gnd上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。三抢答器电路原图及仿真.抢答器原理图抢答器电路原理框图如图3-1所示,其中右上部分是4个七段数码管,作为显示输出部分,左上部分是钟控部分,除了s1-s8是选手控制按钮,其余按钮式主持人控制系统。图3-1 抢答器电路原理框图各按键功能介绍如下: set键为复位键,按下复位键系统进入就绪状态; b1、b2分别为30s、60s预置时间键; “+”、“-”键可以调节时间; en键用来确定自设时间; on键用来确定一切就绪,按下它

32、系统就进入倒计时抢答; s1-s8为8个抢答按键。3.2仿真软件介绍1) proteus软件简介proteus组合了高级原理布图、混合模式spice仿真,pcb设计以及自动布线来实现一个完整的电子设计系统。 isis是proteus系统的中心,它远不仅是一个图表库。它是具有控制原理图画图的外观设计环境 。proteus软件是一种低投资的电子设计自动化软件,提供可仿真数字和模拟、交流和直流等数千种元器件和多达30多个元件库。proteus软件提供多种现实存在的虚拟仪器仪表。此外,proteus还提供图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来。这些虚拟仪器仪表具有理想的参数指

33、标,例如极高的输入阻抗、极低的输出阻抗,尽可能减少仪器对测量结果的影响,proteus软件提供丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。提供schematic drawing、spice仿真与pcb设计功能,同时可以仿真单片机和周边设备,可以仿真51系列、avr、pic等常用的mcu,并提供周边设备的仿真,例如373、led、示波器等。proteus提供了大量的元件库,有ram、rom、键盘、马达、led、lcd、ad/da、部分spi器件、部分iic器件,编译方面支持keil和mplab等编译器。 一台计算机、一套电子仿真软件,在加上一本虚拟实验教程,就可相当于一个设

34、备先进的实验室。以虚代实、以软代硬,就建立一个完善的虚拟实验室。在计算机上学习电工基础,模拟电路、数字电路、单片机应用系统等课程,并进行电路设计、仿真、调试等。2)基本操作步骤1打开proteus 操作界面。2选择“p”,从元件库中提取需要的元器件(选中双击),选择完点ok。3在编辑区画电路图,修改元件参数。4进行电路仿真。5保存文件。3)使用proteus软件的便利。1培养学习者实验设计能力,并降低科研投入,不担心烧坏设备和元器件。2支持创新性设计。3培养团队合作能力。4提高实验质量,扩展学习者的思路和提高学习者的学习兴趣。3.3仿真测试效果经测试达到了设计的效果,下面用发光led代替报警系

35、统,则可以看到测试效果。操作说明:主持人按下复位键set,如果题目比较容易调节抢答时间为22s,按下b1键,然后调节“-”按钮,显示从30的倒计时,等显示时间减到22时,停止按动“-”按钮,再按en键确定,然后按下on开始抢答,同时扬声器响,显示如图3-2所示;5号选手按下键抢答成功,立即进入倒计时答题状态如图3-3所示;如果在所设时间内选手未能按时答题,则发出报警,如图3-4和3-5所示。若8位选手均未能在设定时间内正常抢答,系统同样进入报警状态,本系统所有的报警时间都设置为5s。图3-2 抢答器抢答状态图3-3 抢答器倒计时答题状态图3-4 抢答器报警状态图3-5 抢答器报警状态终设计小结

36、 通过这次论文学到了不少的知识,首先是对单片机的各部分功能有了进一步的认识。使我对单片机有了进一步的了解,在设计抢答器、报警器、定时器的过程中,通过翻阅资料,上网搜索等,我对各电路器件(如:与非门,555定时器和led显像管等)及原理有了更深一层次的认识,既增强了我的理解能力,也使我能更好的运用所学的知识。在此我要感谢老师的谆谆教导和同学们的帮助,我相信这几个月的不懈努力会给我未来的学习带来很多的启发,我会在以后的工作生活中更好的理论联系实际,证明自己的能力参考文献1 李全利 迟荣强 编著 .单片机原理及接口技术. 北京:高等教育出版社,2004.12 杨素行主编清华大学电子学教研电子组编 模

37、拟电子技术基础简明教程 北京: 高等教育出版社, 20063 潘永雄, 沙河编著 电子线路cad使用教程 西安: 西安电子科技出版社,20074 黄冠斌,孙敏,杨传谱,孙亲锡编著 电路基础 武汉:华中科技大学出版社, 20005 王宏文主编 自动化专业英语北京: 机械工业出版社,20076 李朝青主编. 单片机原理及接口技术. 北京:北京航空航天大学出版社,19947 王福端编著. 单片机控制系统设计大全. 北京:北京航空航天大学出版社,1998附录一元件清单名称规格型号数量名称规格型号数量单片机at89c521电阻10k1晶振1mhz13307七段数码管共阴4电容10uf2按键1522uf1

38、直流电源5v1led-red1附录二单片机八路抢答器源程序:ok equ 20h;抢答开始标志位ring equ 22h;响铃标志位org 0000hajmp mainorg 0003hajmp int0suborg 000bhajmp t0intorg 0013hajmp int1suborg 001bhajmp t1intorg 0040hmain: mov r1,#30;初设抢答时间为30smov r2,#60;初设答题时间为60smov tmod,#11h;设置未定时器/模式1mov th0,#0f0hmov tl0,#0ffh;越高发声频率越高,越尖mov th1,#3chmov t

39、l1,#0b0h;50ms为一次溢出中断setb easetb et0setb et1setb ex0setb ex1;允许四个中断,t0/t1/int0/int1clr okclr ringsetb tr1setb tr0;start: mov r5,#0bhmov r4,#0bhmov r3,#0bhacall display;未开始抢答时候显示fffjb p3.0,next;dddddddacall delayjb p3.0,next;去抖动,如果开始键按下就向下执行,否者跳到非法抢答查询acall bark;按键发声mov a,r1mov r6,a;送r1-r6,因为r1中保存了抢答时

40、间setb ok;抢答标志位,用于count只程序中判断是否查询抢答mov r7,#01h ;读抢答键数据信号标志,这里表示只读一次有用信号mov r3,#0ah;抢答只显示计时,灭号数ajmp count;进入倒计时程序,查询有效抢答的程序在count里面next: jnb p1.0,false1jnb p1.1,false2jnb p1.2,false3jnb p1.3,false4jnb p1.4,false5jnb p1.5,false6jnb p1.6,false7jnb p1.7,false8ajmp start;=非法抢答处理程序=false1: mov r3,#01hajmp

41、errorfalse2: mov r3,#02hajmp errorfalse3: mov r3,#03hajmp errorfalse4: mov r3,#04hajmp errorfalse5: mov r3,#05hajmp errorfalse6: mov r3,#06hajmp errorfalse7: mov r3,#07hajmp errorfalse8: mov r3,#08hajmp error;=int0(抢答时间r1调整程序)=int0sub:mov a,r1mov b,#0ahdiv abmov r5,amov r4,bmov r3,#0ahacall display;

42、先在两个时间led上显示r1jnb p3.4,inc0;p3.4为+1s键,如按下跳到incojnb p3.5,dec0;p3.5为-1s键,如按下跳到decojnb p3.1,back0;p3.1为确定键,如按下跳到backoajmp int0subinc0: mov a,r1cjne a,#63h,add0;如果不是99,r2加1,如果加到99,r1就置0,重新加起。mov r1,#00hacall delay1ajmp int0subadd0: inc r1acall delay1ajmp int0subdec0: mov a,r1jz setr1;如果r1为0, r1就置99,dec

43、r1acall delay1ajmp int0subsetr1: mov r1,#63hacall delay1ajmp int0subback0: reti ;=int1(回答时间r2调整程序)=int1sub:mov a,r2mov b,#0ahdiv abmov r5,amov r4,bmov r3,#0ahacall displayjnb p3.4,inc1jnb p3.5,dec1jnb p3.1,back1ajmp int1subinc1: mov a,r2cjne a,#63h,add1mov r2,#00hacall delay1ajmp int1subadd1: inc r2

44、acall delay1ajmp int1subdec1: mov a,r2jz setr2dec r2acall delay1ajmp int1subsetr2: mov r2,#63hacall delay1ajmp int1subback1: reti ;=倒计时程序(抢答倒计时和回答倒计时都跳到改程序)=repeat:mov a,r2 ;使用锦囊时重新计时mov r6,aclr ring count: mov r0,#00h;重置定时器中断次数mov th1,#3chmov tl1,#0b0h;重置定时器recount:mov a,r6;r6保存了倒计时的时间,之前先将抢答时间或回答时

45、间给r6mov b,#0ahdiv ab;除十分出个位/十位mov 30h,a;十位存于(30h)mov 31h,b;个位存于(31h)mov r5,30h;取十位mov r4,31h;取个位mov a,r6subb a,#07hjnc larger;大于5s跳到larger,小于等于5s会提醒mov a,r0cjne a,#0ah,full;1s中0.5s向下运行clr ring ajmp checkfull: cjne a,#14h,check;下面是1s的情况,响并显示号数并清r0,重新计setb ringmov a,r6jz quit;计时完毕mov r0,#00hdec r6;一秒标

46、志减1ajmp checklarger: mov a,r0cjne a,#14h,check;如果1s向下运行,否者跳到查停/显示dec r6;计时一秒r6自动减1mov r0,#00hcheck: jnb p3.1,quit;如按下停止键退出jnb ok,checkk ;只在回答倒计时才有效ajmp nexttcheckk:jnb p3.0,repeat ;判断是否使用锦囊nextt: acall displayjb ok,accout;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用)ajmp recountaccout:mov a,36hjnb acc.0,tr

47、ue1jnb acc.1,true2jnb acc.2,true3jnb acc.3,true4jnb acc.4,true5jnb acc.5,true6jnb acc.6,tz1jnb acc.7,tz2ajmp recounttz1:jmp true7tz2:jmp true8 quit: clr ok;如果按下了停止键执行的程序clr ringajmp start;=正常抢答处理程序=true1: acall barkmov a,r2mov r6,a;抢答时间r2送r6mov r3,#01hclr ok;因为答题的计时不再查询抢答,所以就锁了抢答ajmp counttrue2:acall barkmov a,r2mov r6,amov r3,#02hclr okajmp counttrue3:acall barkmov a,r2mov r6,amov r3,#03hclr okajmp counttrue4:acall barkmov a,r2mov r6,amov r3,#04hclr okajmp counttrue5:acall bark mov a,r2mov r6,amo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论