ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:283.11KB ,
资源ID:16618104      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16618104.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(毕业设计八路抢答器的设计文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

毕业设计八路抢答器的设计文档格式.docx

1、由于数字电路中基本单元电路的结构比较简单,而且又允许组件有较大的分散性,这就使我们不仅可把众多的基本单元做在同一块硅片上,同时又能达到大批量生产所需要的良率,便于高度集成化!数字电路与数字电子技术已经广泛的应用于电视、雷达、通信、电子计算机、自动控制、航天等科学技术领域,与我们的生活联系越来越紧密,这就要求我们理论与实践相结合!通过这次设计,我们要达到以下目的:(1)结合书上所学的理论知识,和这次的物品联系起来!(2)通过不同的途径大量的查阅不同的资料,进一步熟悉电子电路,最重要的就是要培养一种思维方式!能解决一个问题的方式! 第一章 抢答器的概述1. 实现的功能:(1)可以同时供8名选手比赛

2、,分别用8个按钮S0 S7表示;(2)具有开始、暂停、复位的作用;(3)具有锁存与显示的功能;也就是选手按动按钮,会锁存相应的号码,扬声器发出声响提示,并在数码管上显示选手的号码和剩余的时间,抢答会实行优先锁存,优先抢答选手的编号一直保持到主持人按复位按钮;(4)具有定时抢答的作用;2.抢答器原理框图: 抢答器原理框图1 如图1所示,其工作原理为:接通电源后,可以先设定时间,定时器显示设定时间;主持人将开关置“开始”状态,宣布“开始”,抢答器开始工作,定时器倒计时,选手在设定的时间范围内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时

3、器显示剩余时间。如果想再次抢答必须由主持人再次操作“复位、开始”状态开关。第二章 C51单片机的功能简介 80C51单片机是Philips公司MC51系列单片机的一种8位单片机。内部含有存储器是它最大的特点,用途十分广泛,特别是在于生产便携式商品,手提式仪器等方面,有着十分广泛的应用。80C51单片机内部主要有以下部件:80C51CPU、振荡电路、总线控制部件、中断控制部件、片内ROM、片内RAM、并行I/O接口、定时器和串行I/O接口 80C51单片机内部由CPU、4KB的ROM ,256B的RAM,两个16位的定时/计数器T0和T1,4个8位的I/O端P0、P1、P2、P3,一个全双工串行

4、I/O接口,5个中断源等组成。单片微机内部最核心的部分是CPU,会产生各种控制信号是CPU的主要功能,控制存储器、输入/输出端口的数据传输、数据的算术运算、逻辑运算以及位操作处理等,CPU按它的功能可分为运算器和控制器两部分。控制器由程序计数器PC、指令储存器、指令译码器、实时控制与条件转移逻辑电路等组成。它的功能是对来自存储器中的指令进行译码,通过实时控制电路,在规定的时刻发出各种操作所需的内部和外部的控制信号,使各部分协调工作,完成指令所规定的操作。运算器由累加器ACC、算术逻辑器部件ALU、程序状态寄存器PSW,BCD码运算调整电路等构成。下图2是C51的内部结构图 图2 C51内部结构

5、图 第三章 硬件电路的设计1.整体电路图 图3 整体电路图2.时钟电路模块时钟电路是由一个晶体振荡器12MHZ和两个30pF的瓷片电容组成。6MHz的晶振,其机器周期是2us。12MHz的晶振,他的机器周期是1us, 也就是说在执行同一条指令时用6MHz的晶振所用的时间是12MHz晶振的两倍。为了提高整个系统的性能,我选择了12MHz的晶振。电容器C1、C2起稳定振荡频率和快速起振的作用,电容值我选择了30pF。内部振荡方式所得的时钟信号稳定性高。时钟电路的作用是产生单片机工作所需的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。单片机自身就是一个复杂的同步时序电路,为了保证同步工作

6、方式的实现,电路应在唯一的时钟信号控制下严格地工作。其电路如图4: 图4 时钟电路模块3.复位电路模块 很多东西在运行时都需要复位,让他的状态处于一个正确的初始状态,并从这个状态开始工作。电容在上接高电平,电阻在下接地,中间为RST。这种复位电路为高电平复位。其工作原理是:通电时,电容两端相当于是短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降,降到一定程度,即为低电平,单片机开始正常工作。其电路如图5所示: 图5 复位电路4.显示电路 在这里我们使用的是七段数码管显示,通常在显示上我们采用的方法一般包括两种:一种是静态显示,一种是动态显示。其中静态显示的特点是

7、显示稳定不闪烁,程序编写简单,但占用端口资源多;动态显示的特点是显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。下图6是4位七段数码管显示电路: 图6 显示电路5.键盘扫描电路 键盘是人与各种微机系统打交道的主要设备。在文献和书籍中也可以找到关于键盘硬件电路的设计方法,配合各种不同的硬件电路,这些书籍中一般也提供了相应的键盘扫描程序。我们这里应采用软件去抖方法,即延时重复扫描法,延时法的原理为:在检测到有按键下时,执行一个10ms左右(具体时间应视所使用的按键进行调整)的延时程序,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态;同理,在

8、检测到该键释放后,也应采用相同的步骤进行确认,从而消除去抖的影响。 图7 按键电路6.发声电路 大家都知道,人类所能听到的声音的频率范围约在几十到几千赫兹,若能利用程序来控制单片机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使蜂鸣器发出不同的声音。 图8 蜂鸣器电路 第四章 软件设计 软件任务分析环节是为软件设计做一个总体规划。从软件的功能来看可分为两大类:一类是执行软件,它能完成各种实质性的功能,如测量,计算,显示,打印,输出控制和通信等,另一类是监控软件,

9、它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织调度角色的软件。这两类软件的设计方法各有特色,执行软件的设计偏重算法效率,与硬件关系密切,千变万化。主程序清单: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;设置未定时器/模

10、式1MOV TH0,#0F0HMOV TL0,#0FFH;越高发声频率越高,越尖MOV TH1,#3CHMOV TL1,#0B0H;50ms为一次溢出中断SETB EASETB ET0SETB ET1SETB EX0SETB EX1;允许四个中断,T0/T1/INT0/INT1CLR OKCLR RINGSETB TR1SETB TR0;一开始就运行定时器,以开始显示FFF.如果想重新计数,重置TH1/TL1就可以了;=查询程序=START: MOV R5,#0BHMOV R4,#0BHMOV R3,#0BHACALL DISPLAY;未开始抢答时候显示FFFJB P3.0,NEXT;dddd

11、dddACALL DELAY去抖动,如果开始键按下就向下执行,否者跳到非法抢答查询ACALL BARK;按键发声MOV A,R1MOV R6,A;送R1-R6,因为R1中保存了抢答时间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,FALSE

12、5JNB P1.5,FALSE6JNB P1.6,FALSE7JNB P1.7,FALSE8AJMP START=非法抢答处理程序=FALSE1: MOV R3,#01HAJMP ERRORFALSE2: MOV R3,#02HFALSE3: MOV R3,#03HFALSE4: MOV R3,#04HFALSE5: MOV R3,#05HFALSE6: MOV R3,#06HFALSE7: MOV R3,#07HFALSE8: MOV R3,#08H=INT0(抢答时间R1调整程序)=INT0SUB:MOV B,#0AHDIV ABMOV R5,AMOV R4,BMOV R3,#0AH先在两

13、个时间LED上显示R1JNB P3.4,INC0;P3.4为+1s键,如按下跳到INCOJNB P3.5,DEC0;P3.5为-1s键,如按下跳到DECOJNB P3.1,BACK0;P3.1为确定键,如按下跳到BACKOINC0: MOV A,R1CJNE A,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。MOV R1,#00HACALL DELAY1ADD0: INC R1DEC0:JZ SETR1;如果R1为0, R1就置99,DEC R1SETR1: MOV R1,#63HBACK0: RETI=INT1(回答时间R2调整程序)=INT1SUB:MOV

14、 A,R2ACALL DISPLAYJNB P3.4,INC1JNB P3.5,DEC1JNB P3.1,BACK1INC1: MOV A,R2CJNE A,#63H,ADD1MOV R2,#00HADD1: INC R2DEC1:JZ SETR2DEC R2SETR2: MOV R2,#63HBACK1:=倒计时程序(抢答倒计时和回答倒计时都跳到改程序)=REPEAT:MOV A,R2 ;使用锦囊时重新计时MOV R6,ACOUNT: MOV R0,#00H;重置定时器中断次数重置定时器RECOUNT:MOV A,R6;R6保存了倒计时的时间,之前先将抢答时间或回答时间给R6DIV AB;除

15、十分出个位/十位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向下运行AJMP CHECKFULL: CJNE A,#14H,CHECK;下面是1s的情况,响并显示号数并清R0,重新计SETB RINGJZ QUIT;计时完毕MOV R0,#00HDEC R6;一秒标志减1LARGER: MOV A,R0CJNE A,#14H,CHECK;如果

16、1s向下运行,否者跳到查停/显示计时一秒R6自动减1CHECK: 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,TRUE1JNB ACC.1,TRUE2JNB ACC.2,TRUE3JNB ACC.3,TRUE4JNB ACC.4,TRUE5JNB

17、ACC.5,TRUE6JNB ACC.6,TZ1JNB ACC.7,TZ2TZ1:JMP TRUE7TZ2:JMP TRUE8QUIT: CLR OK;如果按下了停止键执行的程序=正常抢答处理程序=TRUE1: ACALL BARK抢答时间R2送R6MOV R3,#01HCLR OK;因为答题的计时不再查询抢答,所以就锁了抢答AJMP COUNTTRUE2:ACALL BARKMOV R3,#02HTRUE3:MOV R3,#03HTRUE4:MOV R3,#04HTRUE5:MOV R3,#05HTRUE6:MOV R3,#06HTRUE7:MOV R3,#07HTRUE8:MOV R3,#

18、08H=犯规抢答程序=ERROR: MOV R0,#00HMOV TL1,#0B0HMOV 34H,R3;犯规号数暂存与(34H)HERE:CJNE A,#06H,FLASH;0.3s向下运行-灭并停响MOV R4,#0AHMOV R5,#0AH;三灯全灭AJMP CHECK1FLASH: CJNE A,#0CH,CHECK1;下面是0.8s的情况,响并显示号数并清R0,重新计MOV R3,34H;取回号数MOV R5,#0BHMOV R4,#0BH;显示FF和号数CHECK1: JNB P3.1,QUIT1AJMP HEREQUIT1: CLR RING=显示程序=DISPLAY:MOV D

19、PTR,#DAT1;查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出,MOV A,R3MOVC A,A+DPTRMOV P2,#0feHMOV P0,AACALL DELAY2MOV DPTR,#DAT2MOV A,R5MOV P2,#0fdHMOV A,R4MOV P2,#0fbHRETDAT1:DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H灭,123456789FDAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H第一个为零,其他与上相同,因为十位如果为零显示熄灭=

20、加减时间延时(起到不会按下就加N个数)=DELAY1: MOV 35H,#08HLOOP0:DJNZ 35H,LOOP0=延时4236个机器周期(去抖动用到)=DELAY: MOV 32H,#12HLOOP: MOV 33H,#0AFHLOOP1: DJNZ 33H,LOOP1DJNZ 32H,LOOP=延时4236个机器周期(显示用到)=DELAY2: MOV 32H,#43HLOOP3: MOV 33H,#1EHMOV A,R7 ;每隔6070个机器周期读一次P1口,全为1时为无效数据,继续读,有一个不为1时,转到正常抢答处理JNZ AAAA1 ;没读到有效数据时继续转到AAAA1LOOP

21、2: DJNZ 33H,LOOP2DJNZ 32H,LOOP3=读抢答按键数据口程序=由于在读抢答数据口的时候,单片机首先进入倒计时程序,再调用显示程序,最后才检测按键口然而在检测按键口时动态扫描要调用三次(4ms)延时程序.这样就会导致读数据口出现滞后,造成1号优先最高.8号最低.故采用在延时子程序中加了读数据口程序.保证了灵敏度和可靠性AAAA1: MOV A,P1CJNE A,#0FFH,AA1 ;当不全为1时的数据为有效数据AA0: MOV 36H,A ;将有效数据送到36H暂存AJMP LOOP2AA1: DEC R7AJMP AA0=发声程序=BARK: SETB RINGCLR

22、RING;=TO溢出中断(响铃程序)=T0INT: MOV TH0,#0ECHMOV TL0,#0FFHJNB RING,OUT;CPL P3.6;RING标志位为1时候P3.6口不短取反使喇叭发出一定频率的声音OUT:=T1溢出中断(计时程序)=T1INT: MOV TH1,#3CHINC R0RETIEN 第五章 设计总结这次研究与设计的八路多功能抢答器采用了常见的电子元器件,使用了80C51单片机外围接口抢答器系统,采用了单片机的定时器/计数器定时计数原理与硬件和软件的有效结合。通过对有关文献资料的调查和收集,理论与实践相结合,培养了我的自学能力和实践能力。和以前被动接受知识到现在的主动

23、寻求知识,这可以是一个很大的突破学习方法。在设计过程中,由于时间限制和有限的能力,所以很多地方难免存在不足之处,硬件设计和软件设计的一些功能还没有被开发出来。但在今后的工作中,我会严格要求自己,尽量追求完美。这个设计通过了软件与硬件上的调试、仿真。我想这在自己以后的学习和工作都会有很大的益处。在这次设计中遇到了很多实际性的问题,在实际设计的过程中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。由于我没有选修单片机这门课程,所以单片机的知识给我造成了很大的困扰。对于单片机设计,其硬件电路是相对而言比较简单的,主要是解决程序设计中的问题。而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力。它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样连接各个子程序才是关键的问题所在,这需要我们对单片机的结构很熟悉。因此可以说单片机的设计是软件和硬件相

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1