单片机、微机原理课程设计报告八路抢答器_第1页
单片机、微机原理课程设计报告八路抢答器_第2页
单片机、微机原理课程设计报告八路抢答器_第3页
单片机、微机原理课程设计报告八路抢答器_第4页
单片机、微机原理课程设计报告八路抢答器_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、-?微机原理与接口技术?课程设计报告基于STC89C52防违规八路抢答器院 系 :专业班级:*:指导教师:职称:完成日期: 2021 年 12 月 25 日. z-目 录1 引言12 总体方案论证与设技12.1 主控模块的选型和论证12.2 显示模块的选型和论证22.3 按键模块的选型和论证22.4 系统整体设计概述32.5 系统使用说明43 系统硬件电路设计43.1 主控模块43.1.1 单片机芯片介绍53.1.2 单片机最小系统63.2 数码管模块设计63.2.1 数码管原理介绍73.2.2 数码管电路设计73.3 键盘模块设计83.4 蜂鸣器模块设计84 系统软件设计94.1 系统软件总

2、体设计94.2 程序设计原理105 系统调试115.1 硬件调试1152 调试结果126 总结127 致13参考文献13附录A 系统整体原理图15附录B 实物图16附录C 系统源程序17. z-基于STC89C52防违规八路抢答器1 引 言随着技术的进步,单片机与串口通信的结合更多地应用到各个电子系统中已成一种趋势。本设计就是基于单片机设计抢答系统,通过串口通信动态传输数据,使抢答系统有了更多更完善的功能。单片机系统的硬件构造给予了抢答系统“身躯,而单片机的应用程序赋予了其新的“生命,使其在传统的抢答器面前具有电路简单、本钱低、运行可靠等特色。对于抢答器我们大家都知道那是用于选手做抢答题时用的

3、,选手进展抢答,抢到题的选手来答复以下问题。抢答器不仅考验选手的反响速度同时也要求选手具备足够的知识面和一定的勇气。选手们都站在同一个起跑线上,表达了公平公正的原则。1.1 本系统主要研究容本系统设计制作一个基于单片机的8路抢答器。能实现以下几种功能:1键盘扫描,显示当前按键。2检测是否有参赛者违规操作,如果在主持人按下开场按键以前按下则利用蜂鸣器报警并显示参赛者编号。3当主持人按下开场按键后,计数器开场倒数,在30秒倒数完毕之前如果有参赛者按下按键,则在数码管上显示参赛者编号和剩余的时间。2 总体方案论证与设技2.1 主控模块的选型和论证该系统采用51系列单片机STC89C52作为控制核心,

4、该系统可以完成运算控制、信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进展功能的扩和更改。2.2 显示模块的选型和论证采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,对于本设计而言一个LCD1602的液晶屏即可,价格较高2.3 按键模块的选型和论证方案一:采用常见的独立按键输入模式,根据需要一共要用9个按键进展功能输入。方案二:采用矩阵键盘作为输入,矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组. 在键盘中按键数量

5、较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图1所示。在矩阵式键盘中,每条水平线和垂直线在穿插处不直接连通,而是通过一个按键加以连接。这样,一个端口如P1口就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比方再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键9键。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。 键模块使用的是多位独立按键,按键一端接IO口,一端接地,由于单片机的IO口都有部上拉,因此当按键没有按下的时候,IO检测到的时候高电平,当按键按下的时候,相当于IO短接地,因此这时候单片机检测到的电平

6、为低电平,通过检测不同时刻的IO口状态就可以判断按下的是那个按键。. z-2.4 系统整体设计概述本系统以STC89C52单片机为控制核心,对系统进展初始化,主要完成对键盘的响应、数码管显示等功能的控制,起到总控和协调各模块之间工作的作用。单片机通过驱动蜂鸣器发响声。系统由单片机.数码管、蜂鸣器报警模块、按键模块所组成。 STC89C52单片机七段数码管显示声音电路=复位电路8路抢答按键输入时钟2-1系统构造框图 2.5 系统使用说明本程序为8位抢答器的设计程序具体要求如下: 要求有违例抢答的判别,即在主持人未发出可以抢答的指令前进展抢答的,要能给出违例抢答的声音提示;当参赛者成功抢答之后,能

7、用五寸以上的数码管显示抢答成功的组别,并给出抢答成功的提示音;主持人发出可以开场抢答指令30秒以后,如果无人进展抢答,能发出与抢答成功不同的声音进展提示,并同时用两位数码管显示倒计时的情况3 系统硬件电路设计3.1 主控模块主控模块模块在整个系统中起着统筹的作用,需要检测键盘,温度传感器等各种参数,同时驱动液晶显示相关参数,在这里我们选用了51系列单片机中的STC89C52单片机作为系统的主控芯片。51系列单片机最初是由Intel 公司开发设计的,但后来Intel 公司把51 核的设计方案卖给了几家大的电子设计生产商,譬如 SST、Philip、Atmel 等大公司。因此市面上出现了各式各样的

8、均以51 为核的单片机。这些各大电子生产商推出的单片机都兼容51 指令、并在51 的根底上扩展一些功能而部构造是与51一致的。STC89C52有40个引脚,4个8位并行I/O口,1个全双工异步串行口,同时含5个中断源,2个优先级,2个16位定时/计数器。STC89C52的存储器系统由4K的程序存储器(掩膜ROM),和128B的数据存储器(RAM)组成。图3-1 STC89C52单片机构造图3.1.1 单片机芯片介绍 STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼

9、容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89SC52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断构造,全双工串行口,片晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停顿工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM容被保存,振荡器被冻结,单片机一

10、切工作停顿,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程。图3-2 单片机最小系统3.1.2 单片机最小系统STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,置4KB EEPROM,M

11、A*810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断构造兼容传统51的5向量2级中断构造,全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停顿工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM容被保存,振荡器被冻结,单片机一切工作停顿,直到下一个中断或硬件复位为止。3.2 数码管模块设计3.2.1 数码管原理介绍数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元多一个小数点显示;按能显示多少个“8可分为1位、2位、4位等等数码管;图3-3 四位

12、数码管部构造图3.2.2 数码管电路设计如以下图所示为一位共阳数码管的硬件电路连接图,由于数码管部实际为8个LED灯,如果把LED的阴级直接单片机的IO的口,会使LED通过的电流过大从而把数码管烧毁,因此在设计的时候在LED的阴级和单片机的IO之间加上了限流电阻从而起到限流作用。根据经历,这里选取了1K电阻。程序编写的时候我们预先根据要显示的字符,编写了个对应要显示的数组,这样可以使程序更加简化。图3-4 四位共阳数码管硬件电路连接图 3.3 键盘模块设计图3-5 键盘模块电路图3.4 蜂鸣器模块设计本设计带有蜂鸣器报警功能,当主持人没有按下抢答器的时候,用户抢答的话与蜂鸣器发声提醒。图3-6

13、 蜂鸣器驱动电路图. z-4 系统软件设计4.1 系统软件总体设计图4-1系统流程图开场的时候,系统主持人按下开场按键,如果再没有按下开场按键的时候有用户抢答的话,系统会显示犯规选手和蜂鸣器发声提示,当主持人按下按键的时候,系统进展倒数,如果再倒数的时间有用户抢答的话会显示选手的编号和剩余时间,如果超过抢答时间,系统会显示FF并蜂鸣器发声。4.2 程序设计原理软件任务分析和硬件电路设计结合进展,哪些功能由硬件完成,哪些任务由软件完成,在硬件电路设计根本定型后,也就根本上决定下来了。软件任务分析环节是为软件设计做一个总体规划。从软件的功能来看可分为两大类:一类是执行软件,它能完成各种实质性的功能

14、,如测量,计算,显示,打印,输出控制和通信等,另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织调度角色的软件。这两类软件的设计方法各有特色,执行软件的设计偏重算法效率,与硬件关系密切,千变万化。软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进展功能定义和接口定义输入输出定义。在各执行模块进展定义时,将要牵扯到的数据构造和数据类型问题也一并规划好。各执行模块规划好后,就可以监控程序了。首先根据系统功能和键盘设置选择一种最适合的监控程序构造。相对来讲,执行模块任务明确单纯,比较容易编程,而监控程序较易出问题。这如同当一名操作工人比较容易,而当一个厂长就比

15、较难了。软件任务分析的另一个容是如何安排监控软件和各执行模块。整个系统软件可分为后台程序背景程序和前台程序。后台程序指主程序及其调用的子程序,这类程序对实时性要求不是太高,延误几十ms甚至几百ms也没关系,故通常将监控程序键盘解释程序,显示程序和打印程序等与操作者打交道的程序放在后台程序中执行;而前台程序安排一些实时性要求较高的容,如定时系统和外部中断如掉电中断。也可以将全部程序均安排在前台,后台程序为“使系统进入睡眠状态,以利于系统节电和抗干扰。智力竞赛抢答器要求有记忆功能,一次时间设置完,复位后不需重新进展时间设定,通过键盘扫描输出按键信息,再通过单片机将它转换成能在七段数码管上显示字型码

16、。当抢答完毕时,会在数码管上显示抢答者数字提示以表示抢答成功,同时显示其分数,分数的加减可有裁判手动进展。采取独立式键盘,可以实现8路抢答。在显示时使用的是七段数码管显示在本设计中根据实际情况采用的是动态显示方法。臂并通过查表发将其在数码管上显示出来,其中P1口为字型码输入端,P2口低6位为字选段输入端。通过查表将字型码送给7段数码管显示的数字。软件去抖动,如果“开场键按下就向下执行,否则就跳到开场。采用发声报警,起到报警作用。 主持人按"抢答开场"键,并立刻进入抢答倒计时预设30s抢答时间,如有选手抢答,会有提示音,并会显示其号数并立刻进入答复倒计时预设30s抢答时间,不

17、进展抢答查询,所以只有第一个按抢答的选手有效。 如倒计时期间,主持人想停顿倒计时可以随时按"停顿"按键,系统会自动进入准备状态,等待主持人按"抢答开场"进入下次抢答计时。5 系统调试5.1 硬件调试抢答器的电路系统较大,对于焊接方面更是不可轻视,庞大的电路系统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交线较多,对于各种锋利的引脚要注意处理,否则会刺破带有包皮的导线,则会对电路造成短路现象。在本抢答器的设计调试中遇到了很多的问题。回想这些问题只要认真多思考都是可以防止的,以下为主要的问题:1数码管选用的时候没有注意采用的是共阴还是共阳,导致

18、调试的时候数码管一直不能显示。解决:把共阴数码管换成数码管。2最开场的时候以为单片机IO口直接可以驱动蜂鸣器发声,后来调试的时候久久不能出声音。解决:经过查找相关资料,知道扬声器需要三极管来驱动,后来把三极管放大器加上系统便可以正常工作。5.2软件调试1、翻开Keil软件后,在Project菜单中选择New Project命令,翻开一个新工程。保存此工程,输入工程文件名后,并保存工程文件的目录。 2、为工程文件选择目标器件。 3、上述设置好后,创立源程序文件并输入程序代码。输入好代码后点击“文件/保存。 4、把源文件添加到工程中,用鼠标指在目标工作区的目标1,点击右键在弹出的菜单中选择添加文件

19、到源代码组,在弹出的添加文件框中,选择需要添加到工程中的文件。5、开场编译,对工程文件进展编译。假设没有错误后进展硬件调试 。52 调试结果1在测试中遇到LED数码管为不显示时,首先使用试测仪对电路进展测试,观察是否存在漏焊,虚焊,或者元件损坏.2LED 数码管显示不正常,还有亮度不够,首先使用试测仪对电路进展测试,观察电路是否存在短路现象。查看烧写的程序是否正确无误,对程序进展认真修改。经过一系列的问题查找后系统最终能正常工作,并完成所有功能。 6总 结本文研究设计的八路抢答器采用了通用的电子元器件,利用AT89C51单片机及外围接口实现强大系统,利用单片机的定时器、计数器定时和计数的原理,

20、将软硬件有机的结合起来。理论联系时间,表达出大学生的动手能力。通过查资料和收集有关的文献,培养了自学能力和动手能力。并且有原先的被动承受只是转换为主动寻求只是,这可以收拾学习方法上的一个很大突破。在以往的传统学习模式下,我们可能会记住很多书本知识,但是通过毕业设计,我们学会了如何将学到的知识化为自己的东西,学会了怎么跟好的处理只是和实践相结合的问题,把握重点,攻克难关,学到用到活学活用。在设计过程中由于时间仓促有很多地方难免存在缺乏之处,硬件设计已经完成,在软件设计中有些功能还尚未能开发出来。但在以后的工作中,我们会严格要求自己最求完美。回头再看看该设计,还可以将设计的扩展功能增强:1可以设计

21、声控装置,在主持说开场时,系统自动完成清零并开场时的功能。2 增加积分模块,可以设定初始积分,并记录每次抢答完成后的积分。3 将抢答按键使用无线实现,如红外线,是抢答者可以远距离进展抢答,并简化按键模块的线路布置。如果提供相应的器材及时间上的宽限,硬顶可以完成上述扩展功能,进一步完善作品7 致 此次单片机课程设计是在*教师的细心指导下完成的,教师治学严谨的态度,渊博的知识感染着我,是我学习的典范,使我受益无穷。在此,特向教师表达诚挚的意。除此之外,在课程设计过程中,还得到了其他教师、同学的帮助。他们的无私帮助也是我得以完本钱次课程设计的关键。在此,我向他们表示由衷的感。我还要感我的一些同学,他

22、们在我最需要帮助的时候无私的伸出了援助之手。在此,对于他们的无私帮助我表示深深的感。真诚的感所有帮助过我的教师们和同学们。参 考 文 献1 伟.单片机C语言程序设计实训100例.电子工业.2021年.2 吴运昌模拟电子线路根底:华南理工大学,2004年.3付晓光.单片机原理与应用技术M.:清华大学,2004:138-141.4 维祥.MCS-51单片机原理与应用M.*:*大学,2002:55-56.5 广弟,朱月秀,王秀山.单片机根底M.:航空航天大学,2001:44-47.6沙占友,家怡,马洪涛.集成化智能传感器原理与应用J.:电子工业,2004:74-81.7伟.单片机原理及应用M.:机械

23、工业,2002:174-180.8玉峰,倪虹霞.MCS-51系列单片机原理与接口技术M.:人民邮电,2004:128-129.9马忠梅等.单片机的C语言应用程序设计M.航空航天大学,2006.10树中,书膺,王春平.单片机和液晶显示驱动器串行接口的实现J.微计算机信息,2007. z-附录A系统整体原理图附录B 实物图正面反面附录C 系统源程序/*/抢答器设计 /*include<reg52.h>sbit seg_1 = P10; sbit seg_2 = P13; sbit seg_3 = P12; sbit key_9 = P17; sbit beep = P14; *defi

24、ne dat P0 *define OPEN 0 *define OFF 1 *define Key_port P2 unsigned int T0count=0;unsigned char Time_Left = 30; bit flag1 = 0; bit flag2 = 0; const unsigned char code seg_dat=0*a0,0*bb,0*62,0*2a,0*39,0*2c,0*24,0*ba,0*20,0*28,0*ff; unsigned char key_scan(void); void buzzer(unsigned char t); void dis_

25、1(unsigned char num1); void dis_2(unsigned char num2); void delayms(unsigned int i); void delayus(unsigned int i);unsigned char key_scan(void) unsigned char get_port = 0; Key_port = 0*ff; key_9 = 1; get_port = Key_port; if(get_port != 0*ff) delayms(10); get_port = Key_port; if(get_port != 0*ff)get_p

26、ort = Key_port;switch (Key_port) case 0*fe:flag2 = 1;return 1;case 0*fd:flag2 = 1;return 2;case 0*fb:flag2 = 1;return 3;case 0*f7:flag2 = 1;return 4;case 0*ef:flag2 = 1;return 5;case 0*df:flag2 = 1;return 6;case 0*bf:flag2 = 1;return 7;case 0*7f:flag2 = 1;return 8;while(!Key_port); if(key_9 = 0) del

27、ayms(10); if(key_9 = 0) flag1 = 1;return 9; while(!key_9); return 0;void buzzer(unsigned char t) unsigned char i;for(i = 0;i<100;i+)beep = 1; delayus(t); beep = 0; void dis_1(unsigned char num1) seg_1 = OPEN; seg_2 = OFF;seg_3 = OFF;dat = seg_datnum1; delayms(5); dat = seg_dat10; void dis_2(unsigned char num2) unsigned char shi,ge;shi = num2/10; ge = num2%10; seg_1 = OFF; seg_2 = OPEN; seg_3 = OFF;dat = seg_datshi; delayms(5); dat = seg_dat10; seg_1 = OFF; seg_2 = OFF;seg_3 = OPEN; dat = seg_dat

温馨提示

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

评论

0/150

提交评论