您好,欢迎访问三七文档
课程设计任务书课程单片机原理及应用课程设计题目8路声光抢答器专业班级姓名学号一、设计目的:训练学生综合运用己学课程的基本知识,独立进行单片机应用技术开发工作,掌握单片机程序设计、调试,应用电路设计、分析及调试检测。二、设计要求:1.应用MCS-51单片机设计8路声光抢答器电路;2.设计一个8路抢答器,要求有声光提示,声音响1秒,灯光可亮到主持人操作为止;3.硬件设计根据设计的任务选定合适的单片机,根据控制对象设计接口电路。设计的单元电路必须有工作原理,器件的作用,分析和计算过程;4.软件设计根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;5.原理图设计根据所确定的设计电路,利用Protel等有关工具软件绘制电路原理图、PCB板图、提供元器件清单。三、参考资料:[1]单片微型计算机与接口技术,李群芳、黄建编著,电子工业出版社;[2]单片机原理及应用,张毅刚编著,高等教育出版社;[3]51系列单片机及C51程序设计,王建校,杨建国等编著,科学出版社;[4]单片机原理及接口技术,李朝青编著,北京航空航天大学出版社;完成期限指导教师专业负责人1第一章概述工厂、学校和电视台等单位常举办各种智力竞赛,抢答记分器是必要设备。在我校举行的各种竞赛中我们经常看到有抢答的环节,举办方多数采用让选手通过举答题板的方法判断选手的答题权,这在某种程度上会因为主持人的主观误断造成比赛的不公平性。为解决这个问题,我们小组准备就本次大赛的机会制作一个低成本但又能满足学校需要的八路数显抢答器。本系统是基于AT89S52单片机带时间和声光提示的抢答器,它由控制核心AT89S52单片机、选手按键、主持人按键、声光提示和LED数码显示等部分组成。选手按键和主持人按键均由独立按键构成,采用扫描方式工作;声光提示部分由无源蜂鸣器提供声音提示,光提示由发光二极管提供。LED数码显示部分则是由普通发光二极管构成的数码管。第二章8路声光抢答器设计原理参加竞赛者对主持人提出的问题要在最短的时间内作出判断,并按下抢答按键回答问题。当第一个人按下按键后,则在显示器上显示此竞赛者的号码并进行声音提示,同时电路将其他抢答按键封锁,使其不起作用。若有人在可以抢答之前按键,应该有违规提示。电路应该具有倒计时功能,倒计时时间可以设置并显示,在规定时间内没有人抢答则本题作废。回答完或超时后,由主持人将所有按键恢复,重新开始下一轮。完成上述功能的电路包括时间设定开关、声光显示、按键控制以及按键锁存等部分。各电路模块的功能如下。·单片机部分:通过读取P3.7~P3.3的状态决定倒计时时间;通过读取P1.7~P1.0的状态读取按键情况;通过P2.4~P2.2控制显示模块以显示按键者的号码和倒计时所剩时间;通过P0.1控制蜂鸣器。·时间设定模块:以拨码开关U3作为倒计时时间的选择信号。若P3.7通过U3接地,倒计时时间为10s;若P3.6通过U3接地,倒计时时间为8s,若P3.5通过U3接地,倒计时时间为6s,若P3.4通过U3接地,倒计时时间为4s。判断时P3.7优先级最高,P3.4优先级最低。·按键模块:KEY1~KEY8的信息可以直接传输到P1.7~P1.0。单片机一旦检测到2有按键按下,立即将P0.4置为低电平,将按键信息锁存,以免后来的按键对其产生影响。KEY1~KEY8为抢答按键,KEY9为主持人控制按键。·数码管显示模块:数码管显示模块由一片数码管组成。其中U5用来显示按键者的编号,U6、U7在倒计时时显示还有多长时间,如果有人犯规抢答,U6~U7显示“FF”。第三章硬件电路设计3.1电路总体框架抢答器的控制核心是AT89S52单片机,用查询式键盘进行抢答。通过抢答按键模块,连接按键进行抢答。实现功能的框图如下所示,按下开始按钮,此时进入抢答状态,选手的输入采用扫描式的输入,之后由相关的信息由单片机处理,送到显示部分显示。此时如果有人第一个按下相应的按键,经过单片机的处理选择,显示相应的号码,并锁存,不再响应其它按键输入。主持人系统有开始按键,限时开始按键,抢答时间调节按键,限时时间调节按键。选手系统有抢答按钮,计时显示,声光提示等。AT89S52控制器复位电路主持人按键声光提示数码显示选手按键33.2控制芯片AT89S52简介At89s52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程FlashAT89S52P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0不具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.1分别作定时器/计数器2的外部计数输(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能4P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INTO(外中断0)P3.3INT1(外中断1)P3.4TO(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)3.3各个模块方案设计1核心控制器由单片机AT89S52进行控制,实现相关功能。AT89S52具有以下标准功能:8K字节Flash,256字节RAM,32位I/O口线,还可扩展外部存储器。编5程容易实现,外围电路较为简单。大规模可编程逻辑器件一般是使用状态机方式来实现,即所解决的问题都是规则的有限状态转换问题。本系统状态较多,难度较大。另外系统没有其它高标准的要求,基于成本及控制功能的考虑,最终选择了AT89S52这个比较普通单片机来实现系统设计。2按键模块采用矩阵式键盘,矩阵式键盘的特点是把检测线分成两组,一组为行线,一组列线,按键放在行线和列线的交叉点上,编程实现较复杂,但占用IO口较少。这种形式的键盘结构,能够有效的提高单片机IO口的利用率,适用于按键输入多的情况。3显示模块采用普通发光二极管按一定顺序排列构成数码管,虽然构成的LED灯数目多,但结构还是较简单,制作也较容易而且单片机控制也方便,成本也不是很高。3.4硬件单元电路设计与参数计算1单片机控制电路6单片机控制部分的电路图如上,晶振频率为12M,P0口接上拉电阻。2按键电路按键部分如上图所示,选手按键由P1口控制,共有8个按键;主持人按键有四个按键,由P3口控制。全部按键采用独立式键盘。3声光提示电路声音提示部分由无源蜂鸣器和PNP三极管构成,给其1个脉冲,它就会发出声响;光提示部分由发光二极管和限流电阻构成。4有关参数的计算在软件编程过用到了定时/计数器0和定时/计数1,定时器1控制有人按下抢答器时“嘟”的哪一声响,其他的则由定时器0处理。定时器0和1的定时溢出时间都为20毫秒。定时/计数器0和1都工作在方式1,即16加1计数器,分为两个8位的寄存器,定时20毫秒的计算公式为TH0=(65536-2000)/256;TL0=(65536-2000)%256;TH1=(65536-2000)/256;TL1=(65536-2000)%256;7TH0和TH1分别表示定时器0和1在工作方式1时的高8位寄存器,TL0和TL1则为低8位寄存器,因为定时器0和1是加1计数器,是一直加到65536溢出,变为0,所以给寄存器装入的是和65536相差2000的初值,晶振为12M,12分频后,频率为1M,也就是周期为1微秒,即为单片机每执行1条指令所用的时间,执行2000次加1,则就是2000乘以1微秒等于20毫秒。第四章程序设计4.1程序总体设计与流程图上电复位后显示模块显示“F”,程序开始对系统进行初始化。开始抢答后,若没有选手按动抢答按钮则开始9秒的倒计时,直到抢答限制时间到,进入下一轮的抢答。若有选手按动抢答按钮,编号立即锁存,并在显示模块选手的编号,且伴随声音提示。在开始键没按下时,有人按了抢答器,则该人违规,数码管显示号码,与此同时LED亮,表示有人违规。其他人再按下时则不响应,优先响应第一个。有人违规及有人抢答时会发出“嘟”的一声。声音响1秒,灯光可亮到主持人操作为止。程序流程图如下:8总程序:BEEPBIT00HORG0000HLJMPMAINORG0003H;定义四个中断的入口地址LJMPSTART开始初始化开始键按下?调时键按下?倒计时时间到选手按键按下判断是哪位选手先按下,显示选手号并给出声音提示选手是否作答?按下复位键加1S选手违规?声光报警并显示违规选手号按开始键按下限时开始键开始计时时间到YNNYNNYNYY9ORG000BHLJMPSTARTORG0013HLJMPSTART1ORG001BHLJMPSTART3ORG0030HMAIN:MOVP1,#0FFH;P1口全置1SETBP3.0;串行输入端置1SETBP3.1;串行输出端置1CLRBEEP;清零MOVR0,#40H;个位送“0”MOVR1,#0FFH;十位全灭MOVIP,#01HMOVIE,#8FHLOOP:CLRP3.6;串行输入端清零MOVP0,R1LCALLDEL;延时SETBP3.0CLRP3.1MOVP0,R0LCALLDEL;延时SETBP3.1;串行输出端置1SJMP
本文标题:8路声光抢答器
链接地址:https://www.777doc.com/doc-6315253 .html