基于 AT89C51单片机多路数字抢答器设计_第1页
基于 AT89C51单片机多路数字抢答器设计_第2页
基于 AT89C51单片机多路数字抢答器设计_第3页
基于 AT89C51单片机多路数字抢答器设计_第4页
基于 AT89C51单片机多路数字抢答器设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、邵阳学院课程设计(论文)目 录摘 要i第1章 绪论11.1 单片机抢答器的背景11.2 抢答器的意义1第2章 设计概述22.1 抢答器工作原理22.2 设计目的与要求22.3 设计任务22.4 运行环境及工具2第3章 系统硬件电路设计33.1 at89c51单片机硬件电路33.2 原理及电路总框图33.3 晶振复位及开始抢答电路43.4 选手抢答键43.5 显示与显示驱动电路53.6 蜂鸣器音频输出电路6第4章 系统软件设计74.1 程序设计74.2 主程序设计74.3 系统流程图84.4 程序清单9第5章 系统仿真185.1 proteus软件介绍185.2 仿真电路设计185.3 仿真测试

2、185.4 仿真结果分析20第6章 结束语21参考文献22第1章 绪论1.1 单片机抢答器的背景二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称pc机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设

3、备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上1。在知识竞赛中,特别是做抢答题时,在抢答过程中,为了更确切的知道哪一组或哪一位选手先抢答到题,必须要有一个系统来完成这个任务。若在抢答中,只靠人的视觉(或者是听觉)是很难判断出哪一组(或哪一个选手)先抢答到题的。利用单片机编程来设计抢答器,可以使以上问题得以解决,即使两组的抢答时间相差几微秒,也能轻

4、松的分辨出哪一组(或哪个选手)先抢答到题的。本文主要介绍了抢答器的工作原理及设计,以及它的实际用途。1.2 抢答器的意义本系统采用单片机作为整个控制核心。控制系统的四个模块为:显示模块、存储模块、语音模块、抢答开关模块。该系统通过抢答电路键盘按键输入抢答信号;利用一个数码管来完成显示功能;用按键来让选手进行抢答,在数码管上显示哪一组先答题的,从而实现整个抢答过程。在知识比赛中,特别是做抢答题目的时候,在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差

5、几微秒,也可分辨出哪组优先答题。第2章 设计概述2.1 抢答器的工作原理抢答器的工作原理是采用单片机最小系统,用查询式键盘进行抢答。采用动态显示组号。主持人按下开始抢答键才可以抢答。主持人没有按下开始抢答按纽(p3.2),有人抢答则抢答违规,报警并显示组号,主持人按下开始抢答开关重新抢答。主持人按下开始抢答按纽(p3.2),蜂鸣响声提示,且数码管10秒倒计时(10秒内抢答有效),有人在10秒抢答,蜂鸣器响声提示并显示他的组号,3秒开始20秒倒计时(20秒内必须回答完问题)。20秒后主持人按下复位开关为下一题的抢答做准备。单片机最小系统、抢答按键模块(四位并行数码显示、4*4矩阵式键盘)、显示模

6、块、显示驱动模块、抢答开关模块、蜂鸣器音频输出模块。工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理, 输出控制信号,单片机控制的智能抢答器。2.2 设计目的与要求(1)熟悉电路,理解各个元件之间的控制流程; (2)熟悉proteus及wav6000平台的运行环境; (3)熟练掌握汇编语言,调用中断子程序和对端口进行读写数据的操作;(4)理解掌握抢答器的原理及电路设计;2.3 设计任务(1)多路数字抢答器的硬件和软件设计; (2)分析电路图; (3)画出程序流程图;(4)编写代码;(5)程序分析与调试;2.4 运行环境及工具(1)windows xp系统; (2)protues软件

7、; (3)汇编编译环境、汇编语言;第3章 系统硬件电路设计3.1 at89c51单片机硬件电路单片机(scm)是单片微型计算机(single chip microcomputer)的简称。它是把中央处理器cpu、随机存储器ram、只读存储器rom、i/o接口电路、定时/计数器以及输入输出适配器都集成在一块芯片上,构成一个完整的微型计算机。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出适配器简单,功能较低2。目前,单片机在民用和工业测控领域得到最广泛的应用,早已深深地融入人们的生活中。近年来,at89c51在我国非常流行,它最大的特点是内部有可以多次重复编程的rom,并且rom可以直

8、接用编程器来擦写,使用起来比较方便。本设计使用到的元器件包括:at89c51芯片、数码led显示器、七段led数码管的译码。其中at89c51是系统的核心,它主要负责控制各个部分的协调工作。在其外围接上复位电路,上拉电阻,数码管,按钮以及振荡器,p1.0-p1.7为抢答输入键接口,数码管段选p0口,位选p2口,蜂鸣器输出为p3.0口。3.2原理及电路总框图图3.1 抢答器总原理图3.3 晶振复位及开始抢答电路晶振的频率为12mhz,提供89c51的时钟脉冲使89c51工作,复位电路是单片机初始化,使单片机重新开始执行程序。当复位开关按下rst由低电平变为高电平,则程序从头开始执行,在此次课程设

9、计电路中当一个问题结束主持人后按下复位开关后进行下一题的准备。 图3.2 复位及开始抢答电路3.4选手抢答键(矩阵式键盘)89c51的p1口做一个4*4的行列式键盘。p1.0至p1.3轮流输出低电平在软件查询p1.4至p1.7的电平变化来输入组号。给每一个选手编号1至16,当选手按下按钮时,电平变化从p1口输入,经单片机处理后从p0输出由数码管显示抢答者编号。 图3.3 选手抢答电路3.5显示器与显示驱动电路数码管的显示可以分为两种:静态显示和动态显示。静态显示的段选位和位选位均单独连接,因此占用的i/o接口多,无法扩展多个数码管。而数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,

10、动态驱动是将所有数码管的8个显示笔划的同名端连在一起,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通com端电路的控制,通过分时轮流控制各个数码管的com端,就使各个数码管轮流受控显示,这就是动态驱动。本次设计电路包括显示和驱动,显示采用数码管,驱动用三极管pnp。数码管要显示抢答违规者编号、抢答10秒倒计时、正常抢答者编号和回答问题时间20秒倒计时,数码管采用动态显示。驱动电路pnp发射极接+5v电压,当基极为低电平是集电极为高电平则能驱动数码管使其显示数字。因为pnp是模拟器件而数码管为数字器件,pnp的集电极如果不接一个较大的电

11、阻显示就会出问题。所以在pnp的集电极接了一个10千欧的电阻。图3.4 显示器与显示驱动电路3.6蜂鸣器音频输出电路蜂鸣器是一种电子电路中常用的发声器件,蜂鸣器分为有源蜂鸣器和无源蜂鸣器两种。提供蜂鸣器发声所需要较高的电流,单片机的i/o口驱动能力有限,而我们知道三极管有电流放大的作用,在这里就是利用三极管放大电流来使蜂鸣器获得足够的驱动电流。蜂鸣器音频输出电路的功能是用来报警,当遇到报警信号时,发出蜂鸣声,以此来提醒操作者。本电路通过控制不同频率的矩形脉冲来控制蜂鸣器发声。此次课程设计中只需要一些简单的提示声音,如有抢答违规,开始抢答,抢答时间结束和回答问题时间到的提示声音。本课程设计从p3

12、.0口输出一个矩形脉冲来控制驱动器pnp集电极的高低电平时间来控制蜂鸣器的声音。图3.5 蜂鸣器音频输出电路图第4章 系统软件设计4.1 程序设计程序设计(programming)是指设计、编制、调试程序的方法和过程。它是目标明确的智力活动。在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出3。为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一

13、个模块。把一个程序分成具有多个明确任务的程序模块,分别编制、调试后再把它们连接在一起形成一个完整的程序,这样的程序设计方法称为模块化程序设计。所谓“模块”,实质上就是能完成一定功能,并相对独立的程序段,这种程序设计方法称为模块程序设计法。模块程序设计法的主要优点是:(1)单个模块比起一个完整的程序易编写、调试及修改。(2)程序的易读性好。(3)程序的修改可局部化。(4)模块可以共存,一个模块可以被多个任务在不同条件下调用。(5)模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。本系统软件采用模块化结构,由主程序键盘子程序、显示驱动子程序构成。4.2 主程序设计为了能够达到抢答的公平、

14、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序,当时间设好了之后,主持人按开始键发布抢答命令,若在主持人未按开始键之前,有选手提前答题,则为违规抢答,蜂鸣器会发出警告声,并在显示器上显示犯规的选手编号。当有选手抢答成功,则程序打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序,其他选手在此之后按键无效。当在扫描到有人按下了抢答键,马上关闭t0、调用显示程序、封锁键盘。4.3系统流程图4.3.1硬件复位流程图开 始初始化读键盘是否有键按下调用显示抢答违规并报警子程序中断条件是否满足进入中断程序nnyy图4.1硬件复位流程

15、图4.3.2系统程序流程图ny开中断并响声提示设定定时器初值并启动定时器10秒抢答倒计时开始显示调用读键子程序作为延时程序是否有按键按下10到时中断并返回调用抢答者获得回答的子程序 图 4.2 系统程序流程图4.3.3显示抢答违规流程图开始报警提示两次显示违者编号图4.3显示抢答违规流程图4.3.4抢答成功流程图开始响声提示设定定时器初值并启动显示抢答者且3秒后20秒倒计时20秒回答问题时间到并响声提示ret图4.4抢答成功流程图4.4 程序清单 org 0000h ljmp main org 0013h ljmp ess1 org 0100hmain:setb ea setb ex1 set

16、b it1 ;外部中断1初始化 l16:mov p1,#0ffh mov r2,#00h clr p1.0 inc r2 jb p1.4,l0 lcall de0 l0:inc r2 jb p1.5,l1 lcall de0 l1:inc r2 jb p1.6,l2 lcall de0 l2:inc r2 jb p1.7,l3 lcall de0 l3:setb p1.0 clr p1.1 inc r2 jb p1.4,l4 lcall de0 l4:inc r2 jb p1.5,l5 lcall de0 l5:inc r2 jb p1.6,l6 lcall de0 l6:inc r2 jb

17、p1.7,l7 lcall de0 l7:setb p1.1 clr p1.2 inc r2 jb p1.4,l8 lcall de0 l8:inc r2 jb p1.5,l9 lcall de0 l9:inc r2 jb p1.6,l10 lcall de0 l10:inc r2 jb p1.7,l11 lcall de0 l11:setb p1.2 clr p1.3 inc r2 jb p1.4,l12 lcall de0 l12:inc r2 jb p1.5,l13 lcall de0 l13:inc r2 jb p1.6,l14 lcall de0 l14:inc r2 jb p1.7

18、,l15 lcall de0 l15:ljmp l16 ;读行列式键盘 ess1:mov 70h,#30d ;外部中断1 mov r7,#0ch clr p3.0 s2:lcall delay djnz 70h,s2 setb p3.0 ;蜂鸣器提示开始抢答 mov tmod,#00010000b mov r3,#0ah l20:mov 55h,#14h l19:mov th0,#3ch mov tl0,#0b0h ;定时器1初始化 setb tr1 ;启动定时器1 mov a,r3 mov b,#0ah div ab mov dptr,#tab movc a,a+dptr mov 53h,a

19、 lcall delay1 setb p2.4 mov a,b movc a,a+dptr mov 54h,a clr p2.5 movc a,a+dptr mov 54h,a clr p2.5 mov p0,54h lcall delay1 setb p2.5 l18:jnb tf1,l18 d6:cjne r3,#0ffh,l21 ljmp l22 l21:ljmp l20 ;抢答倒计时 l22:mov 73h,#02d s5:mov 70h,#20d mov 71h,#20h clr p3.0 s4:lcall delay djnz 70h,s4 setb p3.0 s6:lcall d

20、elay djnz 71h,s6 djnz 73h,s5 ;抢答倒计时时间到声音提示 d5:reti de0:mov dptr,#tab ;抢答违规报警并显示抢答违规组号 mov a,r2 mov b,#0a s10:mov 72h,#20d mov 73h,#10d clr p3.0 s8:lcall lcc djnz 72h,s8 setb p3.0 s9:lcall lcc djnz 73h,s9 djnz 71h,s10 l17:lcall lcc ljmp l17 lcc:clr p2.4 mov p0,50h lcall delaydelay1:mov p1,#0ffh ;正常抢答

21、读键 w0:inc r2 jb p1.5,w1 lcall de1 w1:inc r2 jb p1.6,w2 lcall de1 w2:inc r2 jb p1.7,w3 lcall de1 w3:setb p1.0 clr p1.1 inc r2 jb p1.4,w4 lcall de1 w4:inc r2 jb p1.5,w5 lcall de1 w5:inc r2 jb p1.6,w6 lcall de1 w6:inc r2 jb p1.7,w7 lcall de1 w7:setb p1.1 clr p1.2 inc r2 jb p1.4,w8 lcall de1 w8:inc r2 j

22、b p1.5,w9 lcall de1 w9:inc r2 jb p1.6,w10 lcall de1 w10:inc r2 jb p1.7,w11 lcall de1 w11:setb p1.2 clr p1.3 inc r2 jb p1.4,w12 lcall de1 w12:inc r2 jb p1.5,w13 lcall de1 w13:inc r2 jb p1.6,w14 lcall de1 w14:inc r2 jb p1.7,w15 lcall de1 w15:djnz r4,w16 ljmp w18 w16:ljmp w17 w18:ret de1:mov p1,#0ffh ;

23、抢答成功声音提示及回答问题时间20秒倒计时 mov 70h,#20d clr p3.0 s3:lcall delay djnz 70h,s3 setb p3.0 setb p2.0 setb p2.1 mov dptr,#tab mov a,r2 mov a,b movc a,a+dptr mov 57h,a mov tmod,#00000001b mov r5,#16h l32:mov r6,#14h l31:mov th0,#3ch mov tl0,#0b0h setb tr0 clr p2.4 mov p0,56h lcall delay setb p2.4 clr p2.5 mov p

24、0,57h lcall delay setb p2.5 cjne r5,#14h,l34 ljmp l35l34: jc l35 ljmp l30l35: mov a,r5 mov b,#0ah div ab movc a,a+dptr mov 58h,a mov a,b movc a,a+dptr mov 59h,a clr p2.6 mov p0,58h lcall delay setb p2.6 clr p2.7 mov p0,59h lcall delay setb p2.7 l30:jnb tf0,l30 clr tf0 djnz r6,l31 dec r5 cjne r5,#0ff

25、h,l32 mov p1,#0ffh mov 70h,#50d clr p3.0 s7:lcall delay djnz 70h,s7 setb p3.0 mov p2,#0ffh mov r3,#00h mov r7,#00h retdelay:mov 51h,#10d ;延时子程序 d0:mov 52h,#248d d1:djnz 52h,d1 djnz 51h,d0 ret tab:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h end第5章 系统仿真5.1 proteus软件介绍在该设计中,利用proteus软件进行仿真。proteus运

26、行于windows操作系统上,可以仿真、分析(spice)数字电路、模拟电路、数模混合电路,是目前唯一能实现对51、pic、avr、hc11、arm等处理器的仿真软件4。5.2 仿真电路设计将单片机最小系统、显示模块、抢答开关模块和音频输出模块进行proteus设计。打开proteus的isis编辑环境,从proteus中选取该电路所需要的元器件,放置元器件、放置电源和地,再点菜单栏工具下拉的电气规则检查,当规则检查出现:“netlist generated ok no erc errord found”,表示通过检查,电路设计完成。5.3 仿真测试 5.3.1 开始抢答仿真主持人按开始按钮后

27、,进入抢答10秒倒计时,仿真结果如图5.1。图5.1 10秒抢答倒计时开始5.3.2抢答犯规仿真 若在主持人还未按开始按钮时,就抢答则为抢答犯规。4号选手在主持人未宣布开始时就抢答,从而造成犯规,犯规仿真如图5.3。图5.2 未开始状态图5.3 4号选手犯规抢答5.3.3抢答成功仿真主持人按开始按钮后,10秒内抢答则为成功抢答。仿真图为15号选手成功抢答,抢答后进入20秒倒计时答题时间,抢答成功仿真如图5.4。图5.4 15号选手成功抢答5.4 仿真结果分析通过对电路的仿真,可以看出基于at89c51单片机控制的抢答器在proteus软件上可以很好的实现抢答报警、抢答成功显示、抢答倒计时等一系列功能。当仿真开始运行时,各个模块处于初始状态。此时显示器并无状态显示,但此时抢答键和蜂鸣器都处于开启状态,若此时有选手按下抢答键,则蜂鸣器会发出报警声,并且在数码管上显示犯规的选手的编号。主持人重新按下开始键,此时表示抢答正式开始,并且数码管显示10秒倒计时,同时蜂鸣器发出声音提醒选手抢答开始了。选手抢答

温馨提示

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

评论

0/150

提交评论