单片机课程设计报告多路抢答器的设计_第1页
单片机课程设计报告多路抢答器的设计_第2页
单片机课程设计报告多路抢答器的设计_第3页
单片机课程设计报告多路抢答器的设计_第4页
单片机课程设计报告多路抢答器的设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机课程设计报告 题目三 多路抢答器的设计 题目: 多路抢答器的设计 专业: 电气工程及其自动化 班级: 电气 081 学号: 学生姓名: 指导教师: 2010 年 秋季 学期起止时间:2010年12月27日至2011年1月7日平时(10%)任务完成(30%)答辩(30%)课设报告(30%)总评成绩目录目 录 1前 言 2摘 要 2设计任务 3第一章系统概述与原理方框图 51.1计算机电子技术发展概述与系统问题的提出51.2 方案的选择及设计思路与原理方框图5第二章 系统硬件设计 72.1 中央控制器- at89c205172.2六路抢答器系统的外围电路的设计与分析102.3电路图11第三章

2、 系统的软件程序设计123.1程序流程图123.2程序设计13心得总结20参考资料20一,前言随着我国经济和文化事业的发展,在很多公开竞争场合要求有公正的竞争裁决,诸如证券、股票交易及各种智力竞赛等,因此出现了抢答器。抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。因此我们设计了以单片机为核心的新型智能的抢答器,在保留了原始抢答器的基本功能的同时又增加一系列的实用功能并简化其电路结构。抢答器又称为第一信号鉴别器,其主要应用于各种知识竞赛、文艺活动等场合。传统普通抢答器主要存在以下缺陷:(一)、在一次抢答过程中,当出现超前违规抢答时

3、,只能处理违规抢答信号,而对没有违规的有效抢答信号不能进行处理,因而使该次抢答过程变为无效。(二)、当有多个违规抢答时,普通抢答器或采用优先编码电路选择其中一个,或利用抢答电路电子元件的“竞争”选择其中一个。对于后者由于抢答电路制作完毕后电子元件被固定。各路抢答信号的“竞争”能力也被固定,因而本质上也有优先权。普通抢答器存在不公平性。(三)、当有多个违规抢答时,普通抢答器只能“抓住”其中一个而出现“漏洞”。二,摘要文章首先介绍了系统的设计方案思路与原理图,进而阐明了设计6路抢答器系统的意义。单片机at8920c51控制芯片及其外围电路,数码显示电路及其周围电路,控制电路,语音电路等,软件部分就

4、针对一些具体模块进行编程。整个系统采用单片机通讯方式,文中还介绍了单片机接口与控制器之间的通讯情况以及该系统的pcb板制作。 关键词:电子;抢答器;单片机; 输入; 编程;调试;all the production. responderabstract: this paper introduced the design ideas and system, and illustrates the principle diagram design 6 road system. responder at8920c51 mcu control circuit chip and its peripher

5、als, digital display circuit, control circuit and its surrounding circuit, voice circuits, software for some specific part. the system adopts singlechip communication mode, this paper also introduces microcontroller interface and the controller of the communication between the system and the pcb pro

6、duction.keywords: electronic, vies to answer first, scm, input, programming, debugging, 三,设计任务1, 设计一款6路以上的抢答器;2, 设计一个抢答器控制开关(开始抢答后才允许答题者抢答),供主持人用;3, 数码管显示当前答题者号数;4, 答题开始后,数码管显示倒计时时间。5, 其他功能(创新部分)第1章 系统概述与原理方框图在本章中,我们对四路抢答器的总体设计及其主要的功能特点进行简单的分析,并给出它的特点,实现的功能以及系统的简单操作,以对单片机及其控制系统的了解。第1.1节 计算机电子技术发展的概述

7、与系统问题的提出近年来,计算机技术析迅猛发展,使得计算机在工业,农业,国防科研及日常生活的各个领域显示了日益旺盛的生命力,它已成为各国工业发展水平的主要标志之一,是发展新技术,改造老技术的强有力的武器。目前,单片机正朝着高性能和多品种方向发展,单片机的发展正朝着cmos化,低功耗,小体积,大容量,高性能,低价格和外围电路的内装化等几个方面发展。近几年,由于某种原因chmos技术的进步,大大地促进了单片机的cmos化,此种芯片除了低功耗外,还具有功耗的可控性,使单片机可以工作在功耗精细管理状态,特别是iic,api等串行总线的引入,可以使单片机的引脚设计得更少,单片机系统结构更加简化及规范化。

8、而我们设计出的4路抢答器是一种基于mcs-51智能锁的硬件和软件设计及实现方法,这种电路设计具有按键有效提示,输入错误提示,控制开锁电平,控制报警电路,在线修改功能等多种功能,保密性强,灵活性高,特别适用于家庭!办公室!学生宿舍及宾馆等场所。它具有全集成化,智能化,高精度,高性能,高可靠性和低价格等优点,是一个值得推广的一种方法。接下来我们就对方案与设计原理方框图进行比较分析。第1.2节 方案的选择及设计思路与原理方框图为了使设计更具有针对性,使用性更强,我对们其进行精心的设计,在设计过程中,我们想到了很多的设计方案。121设计思路设计一个智力竞赛抢答器,可同时供n名选手或者n个代表队参加比赛

9、,他们的编号分别为0,1,2n-1,各用一个抢答器按钮,按钮的编号与选手的编号相对应,分别设为s0,s1sn-1。节目主持人设置一个控制开关,用来控制系统的清零和抢答器的开始。并且抢答器具有数据锁存和显示的功能,抢答开始手,若有选手按动抢答按钮,编号立即锁存,并在led数码管上显示出选手的编号,同时蜂鸣器给出音响提示,此外,要封锁输入电路,禁止其他选手抢答,优先抢答选手的编号一直保持到主持人将系统清零为止。12.2总体方框图系统的总体方框图如下图所示:图1.1 抢答器系统设计原理图该系统的主要输入抢答输入电路,译码电路,显示电路等,控制电路等电路组成,外围电路少,功能单一,可不用编程来实现。但

10、是其也有很大的缺点,比如不能按到多次,且手动输入的时间不能太长,而且时间也有一点限制。且不能断电,断电后将无法恢复,输入又无法显示,无可观性,因此我们采用以下的方法。利用单片机at89c2051,它是一种性能优良的集成可编程的单片机,其功能十分的强大,它把cpu、存储器、及i/o集成到一个芯片上,只要外加少许电子零件便可以构成一套简易的控制系统。这样可以降低设计出来的产品的硬件成本,通过编程快速实现对不同密码值的输出与控制。多路抢答器系统的整个系统从大体来看可以分为键盘抢答输入,系统处理,数字数码管显示,声音的输出以及对电脑的串口通信等。而本设计将分为以下四个部分:键盘输入部分,电源部分,数字

11、显示部分,mcu中央处理部分和串口通信部分。主要的系统电路有:电源电路、复位电路、单片机控制电路、单片机控制输出显示电路,音频控制输出电路,24c02防掉线数据保护电路等。电路分析我们在下一章节中进行分析。该系统的主要特点有: 该产品的互换性好,响应速度快,抗干扰能力强,外围电路简单易懂,因此相对来说体积小。 该系统能用软件的方式设计硬件,所以用软件方式设计的系统向硬件系统的转换是由有关开发软件自动完成的,易操作。具有具体数字显示的功能。可以从以前的组合设计转向真正的自由设计,所以设计的移植性好,效率高。可适合大规模的现场制作。利用按钮进行输入,输入简单。具有智能报警的功能,当选定之后就马上锁

12、定,并且发出音乐声音。大大提高了抢答器的可靠性。因为整个系统可集成在一个芯片上,因此体积小,功耗低,可靠边性更高。并且非常适合合分工作,团队精神。第二章 系统硬件设计第2.1节 中央控制器- at89c2051at89c2051是由美国atmel 公司生产的至今为止世界上最新型的高性能八位单片机。该芯片采用flash存储技术,内部具有2kb字节快闪存存储器,采用dip封装,是目前在中小系统中应用最为普及的单片机。、at89c2051的特点at89c2051具有以下几个特点:at89c2051与mcs-51系列的单片机在指令系统和引脚上完全兼容;、at89c201的功能描述at89c2051是一

13、种低损耗、高性能、cmos八位微处理器,片内有4k字节的在线可重复编程、快速擦除快速写入程序的存储器,能重复写入/擦除1000次,数据保存时间为十年。、 at89c2051引脚功能at89c51单片机为20引脚芯片如图2.10所示:、口线:p1、p3共2个八位口。 p1口是专门供用户使用的i/o口,是准双向口,其中p1.0和p1.1除作为普通i/o用外,还可作为电压比较器输入端。 p3口是双功能口,该口的每一位均可独立地定义为第一i/o功能或第二i/o功能。 vcc: 工作电源+5v gnd :电源地。 vpp: 访问外部程序存储器允许信号。 rst:复位信号输入端。 xtal1:片内振荡器输

14、入端。 xtal2:片内振荡器输出端。 rxd:串行口输入。 txd:串行口输出。 ale:访问片外存储器时,它作为锁存扩展地址低字节的控制信号的输入。控制口线:psen(片外选取控制)、ale(地址锁存控制)、ea(片外存储器选择)、reset(复位控制);2.1.2 时钟电路的设计与工作原理分析8031/8051单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。 在引脚xtal1和xtal2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。电容器cl,c2起稳定振荡频率、

15、快速起振的作用,其电容值一般在5-30pf。晶振频率的典型值为12mhz,采用6mhz的情况也比较多。内部振荡方式所得的时钟信号比较稳定,实用电路中使用较多。 外部振荡方式是把外部已有的时钟信号引入单片机内。这种方式适宜用来使单片机的时钟与外部信号保持同步。外部振荡信号由xtal2引入,xtal1接地。为了提高输入电路的驱劝能力,通常使外部信号经过一个带有上拉电阻的ttl反相门后接入xtal2。2.1.3、单片机的基本时序单位介绍单片机以晶体振荡器的振荡周期(或外部引入的时钟周期)为最小的时序单位,片内的各种微操作都以此周期为时序基准。振荡频率二分频后形成状态周期或称s周期,所以,1个状态周期

16、包含有2个振荡周期。振荡频率foscl2分频后形成机器周期mc。所以,1个机器周期包含有6个状态周期或12个振荡周期。1个到4个机器周期确定一条指令的执行时间,这个时间就是指令周期。8031单片机指令系统中,各条指令的执行时间都在1个到4个机器周期之间。 4种时序单位中,振荡周期和机器周期是单片机内计算其它时间值(例如,波特率、定时器的定时时间等)的基本时序单位。2.1.4、单片机复位电路的设计与分析当mcs-5l系列单片机的复位引脚rst(全称reset)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果rst持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种

17、基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。常用的上电复位电路如下图a中左图所示。图中电容c1和电阻r1对电源十5v来说构成微分电路。上电后,保持rst一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻r1,也能达到上电复位的操作功能,如下图(a)中右图所示。上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。常用的上电或开关复位电路如上图(b)所示。上电后,由于电容c3的充电和反相门的作用,使rst持续一段时间的高电平。当单片机已在运行当中时,按下复位键k后松开,也能使rst为一段时间的高电平,从而实现上电

18、或开关复位的操作。根据实际操作的经验,下面给出这两种复位电路的电容、电阻参考值。上图(a)中:cl10-30uf,r11k上图127(b)中:c:1uf,rllk,r210k2.1.5、单片机复位后的状态的分析单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器pc0000h,这表明程序从0000h地址单元开始执行。单片机冷启动后,片内ram为随机值,运行中的复位操作不改变片内ram区中的内容,21个特殊功能寄存器复位后的状态为确定值,值得指出的是,记住一些特殊功能寄存器复位后的主要状态,对于了解单片机的初态,减少应用程序中的韧始化部分是十分必要的。第22节 六路抢答器系统的外围电路的

19、设计与分析其工作原理为:接通电源后,单片机at89c2051自动复位,抢答器处于工作状态,数码管无显示,当开始抢答时,四个开关sb1-sb4处于工作状态,此时单片机处于检测状态,无论四个开关哪一个先按下后,其它开关将无效,此时数码管显示对应开关的数字(sb1为1,sb2为2,sb3为3,sb4为4),此时通过p3.7i/o控制音乐ic工作,音乐响起,30s后自动结束,显示管清零状态,准备下轮抢答。2.2.1抢答器电路 总的来讲,抢答器电路图可大概用图来表示(可参考附图)。该电路具有两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二实现与上位机通信。2.2.

20、2 音乐电路通过单片机的p3.7口控制音乐ic的工作。当p3.7口输出一低平信号是,vt1导通,+5v电压经过vt1,r11;cw1为稳压二极管,其电压为3.6v,即提供3.6v电压给音乐ic供电。只要音乐ic电压正常,则音乐电路则正常启动,bj015 b端则输出信号,经vt2驱动sp1。经30s后,单片p3.7口输出复位信号,则vt1不导通,ic3无电压,则音乐电路停止工作。 对于有触发端的电路设计一般有两种启动方式:1、 通过电子开关控制音乐集成电路的供电,从而控制音乐集成电路是否工作。2、 这种方式的电路设计,必须把触发端直接和正电源端相接,这样只要一向音乐集成电路供电,其触发端便得到一

21、个触发信号,启动电路工作,这种方式只要一直保证向音乐集成电路供电,它便会反复地演凑;3、 向触发端送入触发信号。4、 这种方式的电路设计要求让音乐集成电路始终接入电源,而通过外电路向其送入触发信号,从而启动电路工作。第2.3节 电路图第三章 系统的软件程序设计第3.1节 程序流程图图 3.1 主程序流程图第3.2节 程序设计= ok equ 21h;抢答开始标志位 ring equ 22h;响铃标志位 org 0000h ajmp main org 0003h ajmp int0sub org 000bh ajmp t0int org 0013h ajmp int1sub org 001bh

22、ajmp t1int org 0040hmain: mov r1,#30;初设抢答时间为30s mov r2,#60;初设答题时间为60s mov tmod,#11h;设置未定时器/模式1 mov th0,#0f0h mov tl0,#0ffh;越高发声频率越高,越尖 mov th1,#3ch mov tl1,#0b0h;50ms为一次溢出中断 setb ea setb et0 setb et1 setb ex0 setb ex1;允许四个中断,t0/t1/int0/int1 clr ok clr ring setb tr1 setb tr0;一开始就运行定时器,以开始显示fff.如果想重新计

23、数,重置th1/tl1就可以了;=查询程序=start: mov r5,#0bh mov r4,#0bh mov r3,#0bh acall display;未开始抢答时候显示fff jb p3.0,next;ddddddd acall delay jb p3.0,next;去抖动,如果开始键按下就向下执行,否者跳到非法抢答查询 acall bark;按键发声 mov a,r1 mov r6,a;送r1-r6,因为r1中保存了抢答时间 setb ok;抢答标志位,用于count只程序中判断是否查询抢答 mov r7,#01h ;读抢答键数据信号标志,这里表示只读一次有用信号 mov r3,#0

24、ah;抢答只显示计时,灭号数 ajmp count;进入倒计时程序,查询有效抢答的程序在count里面next:jnb p1.0,false1 jnb p1.1,false2 jnb p1.2,false3 jnb p1.3,false4 jnb p1.4,false5 jnb p1.5,false6 ajmp start;=非法抢答处理程序=false1: mov r3,#01h ajmp errorfalse2: mov r3,#02h ajmp errorfalse3: mov r3,#03h ajmp errorfalse4: mov r3,#04h ajmp errorfalse5:

25、 mov r3,#05h ajmp errorfalse6: mov r3,#06h ajmp error;=int0(抢答时间r1调整程序)=int0sub:mov a,r1 mov b,#0ah div ab mov r5,a mov r4,b mov r3,#0ah acall display;先在两个时间led上显示r1 jnb p3.4,inc0;p3.4为+1s键,如按下跳到inco jnb p3.5,dec0;p3.5为-1s键,如按下跳到deco jnb p3.1,back0;p3.1为确定键,如按下跳到backo ajmp int0subinc0: mov a,r1 cjne

26、 a,#63h,add0;如果不是99,r2加1,如果加到99,r1就置0,重新加起。 mov r1,#00h acall delay1ajmp int0subadd0: inc r1 acall delay1 ajmp int0subdec0: mov a,r1 jz setr1;如果r1为0, r1就置99, dec r1 acall delay1 ajmp int0subsetr1: mov r1,#63h acall delay1 ajmp int0subback0: reti ;=int1(回答时间r2调整程序)=int1sub:mov a,r2 mov b,#0ah div ab

27、mov r5,a mov r4,b mov r3,#0ah acall display jnb p3.4,inc1 jnb p3.5,dec1 jnb p3.1,back1 ajmp int1subinc1: mov a,r2 cjne a,#63h,add1 mov r2,#00h acall delay1ajmp int1subadd1: inc r2 acall delay1 ajmp int1subdec1: mov a,r2 jz setr2 dec r2 acall delay1 ajmp int1subsetr2: mov r2,#63h acall delay1 ajmp in

28、t1subback1: reti ;=倒计时程序(抢答倒计时和回答倒计时都跳到改程序)=repeat: mov a,r2 ;使用锦囊时重新计时 mov r6,a clr ring count: mov r0,#00h;重置定时器中断次数 mov th1,#3ch mov tl1,#0b0h;重置定时器recount:mov a,r6;r6保存了倒计时的时间,之前先将抢答时间或回答时间给r6 mov b,#0ah div ab;除十分出个位/十位 mov 30h,a;十位存于(30h) mov 31h,b;个位存于(31h) mov r5,30h;取十位 mov r4,31h;取个位 mov a

29、,r6 subb a,#07h jnc larger;大于5s跳到larger,小于等于5s会提醒 mov a,r0 cjne a,#0ah,full;1s中0.5s向下运行 clr ring ajmp checkfull: cjne a,#14h,check;下面是1s的情况,响并显示号数并清r0,重新计 setb ring mov a,r6 jz quit;计时完毕 mov r0,#00h dec r6;一秒标志减1 ajmp checklarger: mov a,r0 cjne a,#14h,check;如果1s向下运行,否者跳到查停/显示 dec r6;计时一秒r6自动减1 mov r

30、0,#00hcheck: jnb p3.1,quit;如按下停止键退出 jnb ok,checkk ;只在回答倒计时才有效 ajmp nexttcheckk:jnb p3.0,repeat ;判断是否使用锦囊nextt: acall display jb ok,accout;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用) ajmp recountaccout: mov a,36h jnb acc.0,true1 jnb acc.1,true2 jnb acc.2,true3 jnb acc.3,true4 jnb acc.4,true5 jnb acc.5,tru

31、e6 ajmp recount quit: clr ok;如果按下了停止键执行的程序 clr ring ajmp start;=正常抢答处理程序=true1: acall bark mov a,r2 mov r6,a;抢答时间r2送r6 mov r3,#01h clr ok;因为答题的计时不再查询抢答,所以就锁了抢答 ajmp counttrue2:acall bark mov a,r2 mov r6,a mov r3,#02h clr ok ajmp counttrue3:acall bark mov a,r2 mov r6,a mov r3,#03h clr ok ajmp counttr

32、ue4:acall bark mov a,r2 mov r6,a mov r3,#04h clr ok ajmp counttrue5:acall bark mov a,r2 mov r6,a mov r3,#05h clr ok ajmp counttrue6: acall bark mov a,r2 mov r6,a mov r3,#06h clr ok ajmp count;=犯规抢答程序=error: mov r0,#00h mov th1,#3ch mov tl1,#0b0h mov 34h,r3;犯规号数暂存与(34h)here: mov a,r0 cjne a,#06h,flas

33、h;0.3s向下运行-灭并停响 clr ring mov r3,#0ah mov r4,#0ah mov r5,#0ah;三灯全灭 ajmp check1flash: cjne a,#0ch,check1;下面是0.8s的情况,响并显示号数并清r0,重新计 setb ring mov r0,#00h mov r3,34h;取回号数 mov r5,#0bh mov r4,#0bh;显示ff和号数 ajmp check1check1: jnb p3.1,quit1 acall display ajmp herequit1: clr ring clr ok ajmp start;=显示程序=disp

34、lay:mov dptr,#dat1;查表显示程序,利用p0口做段选码口输出/p2低三位做位选码输出, mov a,r3 movc a,a+dptr mov p2,#0feh mov p0,a acall delay2 mov dptr,#dat2 mov a,r5 movc a,a+dptr mov p2,#0fdh mov p0,a acall delay2 mov a,r4 movc a,a+dptr mov p2,#0fbh mov p0,a acall delay2 retdat1:db 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h,71h ;灭,1,2,3,4,5,6,7,8,9,灭,fdat2:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h,71h;第一个为零,其他与上相同,因为十位如果为零显示熄灭;=加减时间延时(起到不会按下就加n个数)=delay1: mov 35h,#08hloop0: acall display djnz 35h,loop0 re

温馨提示

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

评论

0/150

提交评论