基于单片机的电子智能抢答器毕业论文

上传人:痛*** 文档编号:100016021 上传时间:2022-06-01 格式:DOC 页数:54 大小:1.87MB
收藏 版权申诉 举报 下载
基于单片机的电子智能抢答器毕业论文_第1页
第1页 / 共54页
基于单片机的电子智能抢答器毕业论文_第2页
第2页 / 共54页
基于单片机的电子智能抢答器毕业论文_第3页
第3页 / 共54页
资源描述:

《基于单片机的电子智能抢答器毕业论文》由会员分享,可在线阅读,更多相关《基于单片机的电子智能抢答器毕业论文(54页珍藏版)》请在装配图网上搜索。

1、. . . . 本科毕业论文(设计)题目基于单片机的电子智能抢答器基于单片机的电子智能抢答器目录第1章引言11.1单片机的应用与发展11.2抢答器系统的发展分析31.3 研究目标与容第2章总体方案设计42.1系统主要功能42.2系统工作流程52.3软硬件方案选择52.3.1硬件方案选择62.3.2软件方案选择10第3章硬件设计123.1总体设计123.2时钟频率电路的设计133.3键盘扫描电路的设计143.4复位电路的设计153.5发声电路的设计163.6 综合PCB板的设计163.6.1 布局的原则173.6.2 布线173.6.3焊盘17第4章软件设计204.1软件任务分析204.2主要模

2、块的流程图与分析214.2.1按键扫描程序224.2.2计时模块224.2.3显示模块234.2.4 初始化模块254.2.5计分模块264.2.6发声模块26第5章系统综合调试275.1系统实现的功能275.2系统运行效果27第6章总结32参考文献34致35附录1:主程序源代码MAIN.C36附录2:字模数据和类型定义头文件DATA.H46摘要:近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测日新月异更新。本文介绍一种用AT89C51作为核心部件进行逻辑控制与信号产生的单片机技术和C语言编程设计的8路数字抢答器。文章对抢答器的背景与现状、硬件设计、软件设计与其仿真都做

3、了详细的介绍,使我们不仅元器件的原理与设计有了深入的了解,也对单片机的设计研发过程有了更加深刻的体会本设计主要采用单片机控制,采用手动抢答的方式,有人抢答后,系统自动封锁其他人的抢答按钮,使其不能再抢答,从而实现抢答功能。该系统还增加了抢答倒计时和答题对错判断功能,另外抢答倒计时的时间可以调整。若有人在主持人按下开始按钮之前按下抢答按钮,系统不会显示选手的,只有在开始按钮被按下之后,选手才可以有效的抢答,使抢答达到公平、公开的效果。关键词:单片机;抢答器;AT89C51;液晶第1章引言1.1 抢答器的研究意义 随着我国经济和文化事业的发展,在很多公开竞争场合要求有公正的竞争裁决,诸如证券、股票

4、交易与各种智力竞赛等,因此出现了抢答器。抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。因此我们设计了以单片机为核心的新型智能的抢答器,在保留原始抢答器的基本功能的同时又增加了数码管显示电路实现了其他功能。抢答器又称为第一信号鉴别器,其主要应用于各种知识竞赛、文艺活动等场合。1.2抢答器系统的发展分析在2007年以前,抢答器作为一种竞赛设备,一直没有得到多大的提高,在使用过程中只起到抢答作用,而且在设计上基本是采用模拟电路的方式,抢答的精确度不够高,而且要受到线路和距离的限制。随着电脑的普与率在大幅提高,在新的信息化时代中,各类竞

5、赛活动也发生了一些大的变化,不再是现场主持人念题,选手回答,这种固定的、单调且死板的方式。现场要求有更多互动和更多娱乐的效果。活动的策划者们在不断的思考和在活动环节上进行设计。电脑抢答器的出现解决了策划者们面对的难题,电脑抢答器是以电脑做为操作平台,控制器方面采用了数字电路和单片机的方式和电脑进行通信,这样设计使知识竞赛长期以来固定的模式被打破 郑州卓豫公司. 抢答器系统的发展分析EB/OL. 2013-4-30. :/ youboy /s57021498.html.。活动中出现了更多的设计和新玩法,使知识竞赛走向了新的方向。以电脑做为平台的抢答器系统,可以通过竞赛软件控制抢答器,答题器,记分

6、屏,灯光效果等等。通过知识竞赛软件可以做到各个环节中的题目显示,选手可以通过手中的抢答器抢答,抢答结果会显示在大屏幕上和分数会显示在LED记分屏中。选手还能通过答题器对题目进行按键回答,在显示设备上显示出每位选手答题的情况,这样的方式很大程度的提高了比赛的档次和娱乐性。除了电脑抢答器外还有数字电路式、单片机式的抢答器。对数字电路式的抢答器来说电路复杂,且成本偏高,故障率高,显示方式简单,电脑抢答器不够便携 何伶俐. 基于STC89C52的四路抢答器设计J. 科技致富向导, 2012(9):106.。随着单片机的应用不断深入,以单片机为核心的抢答器不断出现。利用单片机的优点,使抢答器具有结构简单

7、、功能强大、性能可靠等特点。1.3 研究目标与容本系统采用模块化设计抢答器,在抢答比赛中广泛应用,各组分别有一个抢答按钮。主持人有开始和结束、复位键。在后台主持人可以修改,抢答时间和选手回答问题的时间设置,原始状态下抢答时间为30s,回答问题时间为60s。通过加键和减键修改上述时间,改完后确认键确定。新时间开始有效,主持人按键开始后,选手开始抢答为有效,数码显示屏显示选手号和抢答时间倒计时,在最后五秒扬声器发生提示。如果主持人没有按下开始键而选手就抢答视为犯规,数码显示屏显示犯规者的代号,扬声器持续发生。主持人可按键结束,新一轮抢答开始。第2章总体方案设计2.1系统主要功能本系统是以单片机为主

8、控芯片的八路抢答器,它包括了8路抢答按钮、计时显示、倒计时提示、开始与复位控制按钮、加时减时控制按钮。系统的主要功能模块框图如图2-1所示。图2-1 抢答器的总体框图Fig. 2-1 the overall block diagram of the responder在抢答比赛中八路抢答按钮分别对应一组选手。计时显示以与其他的各种显示功能都由LCD1602液晶实现。倒计时即将结束时蜂鸣器会响铃提示。开始、复位、加时、减时按钮都由主持人控制。在主持人按下开始键后才能开始抢答,在抢答时选手的抢答犯规、抢答成功都会显示在液晶屏幕上。一轮抢答结束之后由主持人按下复位键复位。在本设计中我们设定开始之后有

9、5秒中的预备时间,在预备时间结束前抢答为犯规蜂鸣器持续响,预备时间结束之后可以开始抢答,有15秒抢答时间,15秒无人抢答则本轮抢答结束,由主持人复位,复位后显示所有选手的得分。在倒计时最后5秒时,每一秒蜂鸣器都会响铃提示。总结其系统的需求分析如下:1、在抢答时只有主持人按下开始后才能抢答。在预备时间结束前抢答视为犯规。2、可以显示抢答成功的选手和抢答犯规的选手。抢答成功的选手显示他当前得分。3、显示倒计时,倒计时将要结束时有响铃提示。4、抢答成功后锁定按键,使其他选手的按键无效。6、主持人复位后进入下一轮抢答。2.2系统工作流程系统的工作流程图如图2-2所示。图2-2抢答器系统工作流程图Fig

10、. 2-2 responder system workflow chart根据图1-2所示的流程,一次具体的抢答过程如下:上电后屏幕显示所有选手的得分,初始状态下得分都为10。主持人按下开始键,进入5秒预备抢答的倒计时阶段,每一秒会响铃提示。在5秒结束前有选手抢答判定为犯规,屏幕显示犯规选手编号,主持人按下复位键进入下一轮抢答。预备时间结束后进入15秒倒计时的抢答阶段,有选手率先抢答时倒计时停止,屏幕显示抢答成功的选手编号,并锁定键盘,使其他选手的抢答无效。此时抢答成功的选手进行答题,答题结束后主持人可以为该选手加分或减分(也可以既不加分也不减分),之后由主持人按复位键进行下一轮抢答,此时屏幕

11、显示所有选手的得分。如一直无人抢答,在最后5秒倒计时的每一秒会响铃提示,直到倒计时结束还无人抢答,则屏幕显示无人抢答,主持人复位进入下一轮抢答。2.3软硬件方案选择2.3.1硬件方案选择(1)主控芯片选择方案根据以上我们提出的需求,抢答器系统的主控芯片可以有多种选择方案。嵌入式微处理器一般可分为四类,嵌入式微处理器(MPU)、嵌入式微控制器(MCU)、嵌入式DSP(DSP)、嵌入式片上系统(SoC) 王晓春. 嵌入式系统技术-基于ARM的嵌入式系统M. 高等教育, 2010 :3-4.。这些处理器都可以用于本设计。除此之外,可编程逻辑器件(FPGA/CPLD)也可以用来作为主控芯片。在本设计中

12、,我们用MCU(又称单片机)中较为常见的8051系列单片机作为主控芯片。该芯片相较于DSP、FPGA、ARM等芯片简单易用、价格便宜,而且完全能够满足本设计的要求。能够加快我们设计的进程、节约设计成本。本设计中使用的主控制器是宏晶科技生产的STC89C51RC。该产品标准易用,价格便宜,是新一代超强抗干扰、高速、低功耗的单片机,指令代码完全兼容传统8051单片机。该型号单片机有LQFP44、PDIP、PLCC、PQFP四种封装,在本次设计中我们采用PDIP-40这种封装,其外部结构图如图2-3所示 宏晶科技. STC89C52RC使用手册EB/OL. 2007: 5.。图2-3 STC89C5

13、2RC外部结构图Fig. 2-3 STC89C52RC external structure主要功能特性:l 8K的Flash程序存储器可擦写100000次以上l 512字节的RAM数据存储器l EEPROM功能l 工作频率围:0-40MHzl 通用I/O口(32个),复位后为:P1/P2/P3是准双向口(普通8051传统I/O口)P0是开漏输出,作为总线扩展用时,不加上拉电阻,做I/O口时需要加上拉电阻。l ISP/IAP,无需专用编程器/仿真器可通过串口(P3.0/P3.1)直接下载用户程序。l 看门狗l 共3个16位定时器/计数器,其中定时器0还可当成2个8位定时器使用。l 外部中断4路

14、,下降沿中断或低电平触发中断。可行性分析:从上述单片机的基本参数来看,STC89C552RC单片机拥有8K的程序空间,对于本设计而言是完全足够的。而且本设计中除了液晶模块为了保证显示无延迟用了并行方式传输数据外,其它模块采用了尽量节省I/O口的设计思路,能保证单片机的I/O口足够。而且有3个定时器,本设计只需用到1个。综上所述,STC89C52单片机能够满足设计需求。(2)抢答器显示模块选择方案在抢答器系统运行的整个过程中都伴随着信息的显示,选择一种合理的信息显示方式能给我们的设计带来方便。本设计中可用的显示设备有数码管、液晶。数码管结构简单,易于控制,程序算法也相对简单,缺点是数码管占用端口

15、资源多。液晶显示(LCD)由于具有可编程驱动、接口控制方便、体积小、功耗低、具有良好的可视化人机界面等优点,在各种电子设备中得到广泛使用 陶庆红. 谈单片机控制的液晶显示控制J. 科学与财富, 2011(5).。本设计考虑到需要显示的容较多,用数码管作为显示模块需要占用很多端口资源,所以本设计采用带字库的12864液晶作为显示模块,利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面 韩成, 张延伟. 拿来就用单片机M. 市:人民邮电, 2008 :64.。它的外部结构图如图2-4所示。图2-4 12864外部结构图Fig. 2-4 12864 external str

16、ucture该液晶模块可显示84行1616的汉字,也可以显示12864像素的图形。其基本特性:l 低电源电压(VDD:+3.0V-+5.5V)。l 显示分辨率:12864点。l 置汉字库,提供8192个1616点阵汉字。l 置128个168点阵字符。l 2MHz始终频率。l 显示方式:STN、案头、正显。l 视角方向:6点。l 通讯方式:串行、并行可选。LCD12864的引脚功能表2-1所示。表2-1 12864引脚说明Table 2-1 12864 pin description引脚号引脚名称功能说明1GND电源地2VCC电源正端3V0对比度调整4RS(CS)并行数据/指令选择型号;串行片选

17、信号5R/W(SID)并行读写选择信号;串行的数据口6E(CLK)并行使能信号;串行同步时钟7-14DB0-DB7数据0-数据715PSB并/串行接口选择:H-并行 L-串行16NC空脚17/RST复位低电平有效18VOUT倍压输出脚(VDD=+3.3V有效)19LED_A背光源正极(LED+5V)20LED_K背光源负极(LED-0V)在本设计中我们采用并行的方式在单片机和12864模快之间通信。8为并行连接时序图如图2-5和图2-6所示。图2-5 MPU写资料到模块Fig. 2-5 MPU write data to the module图2-6 MPU读出资料Fig. 2-6 MPU r

18、ead data可行性分析:本设计中需要显示的信息有倒计时的显示,选手分数显示,抢答成功和犯规的显示。由ST7920驱动的12864液晶,能够显示汉字、图形、数字、字母以与其他ASCII字符,完全能够满足本设计的需求。(3)抢答器键盘的选择方案在一个单片机应用系统中,键盘是系统中并不可少的输入设备,是控制系统与操作人员对话的窗口。键盘通常有两种结构形式:线性键盘和矩阵键盘。在不同的场合下,这两种键盘都得到了广泛的应用,线性键盘是由若干独立的按键构成,每个按键的一端与单片机的一个I/O口相连 王怀瑞, 顼庆坤. 单片机I/O口键盘扩展方法C. 冶金自动化, 2004.。有几个按键就要有几根连线与

19、单片机的I/O口相连,因此,线性键盘一般只适用于按键较少的场合。矩阵式键盘的按键是按N行M列排列,每个按键在行列的一个交点上,需要的I/O口数目是N+M,能提供的最大按键数是NM。显然,用矩阵键盘可以有效减少单片机I/O口的连线数,简化结构,是一般单片机常用的键盘结构。根据矩阵键盘的识键和译键方法的不同,矩阵键盘又分为非编码键盘和编码键盘两种。非编码键盘是用软件的方法识键和译键。根据按键扫描方法的不同,可以分为扫描行法、扫描列法和反转法3种。编码键盘是用硬件来实现按键的扫描和识别,一般使用专用接口芯片,在硬件上要求较高。行列式键盘有节省I/O口的优点。考虑到本设计所需的按键较多,为了节省端口资

20、源,降低硬件要求本设计采用非编码行列式键盘。(4)发声模块选择方案有源蜂鸣器和普通扬声器相比,最重要一个特点是只要按照极性要求加合适的直流电压,就可以发出固有频率的声音,因此使用起来比扬声器简单 徐玮, 彭敏芳, 魏巍, 等. 轻松学PIC之蜂鸣器和继电器J. 电子制作, 2010(5):70-71.。由此可知,有源蜂鸣器的控制和LED的控制对单片机而言是没有区别的。无源蜂鸣器则要交流驱动,改变驱动频率可以奏简单音乐。本设计中的发声装置只需要发出固定频率的提示音即可,无需改变发声的频率。为求简化软件设计,本设计中选用有源蜂鸣器作为发声装置。可行性分析:发声模块在本设计中用于报警,只要能够发出一

21、定频率的提示音即可。使用蜂鸣器即可满足设计需求。2.3.2软件方案选择C语言和汇编语言是单片机应用系统开发常用的编程工具。C语言是一种高级编程语言。早在1985年便出现了51单片机专用的C语言,简称C5l。C51除了遵循一般C语言的语法规则外,还有自身的特点。它增加了变量数据类型(如bit、sb)、中断服务函数(如interrupt n),对80C5l单片机的特殊功能寄存器的定义是C51特有的,是对标准C语言的扩展。C语言作为一种高级语言,接近人的自然语言,编写的程序与人们通常的思路相近,而且不依赖于计算机的结构和指令系统,是面向过程而且独立于机器的通用语言,容易学习、通用性好、便于移植。汇编

22、语言是为了方便使用而设计的一种符号语言。它用易于理解和记忆的英文名称或缩写形式(助记符)来表示二进制指令。指令助记符、语句标号、数据变量、伪指令以与它们的使用规则构成了整个汇编语言的容。汇编语言的程序占用存少,执行速度快,并且可以直接对硬件进行编程,能够充分发挥计算机的硬件功能。它是计算机所能提供的最快、最有效的语言。主要应用在实时性要求高、对硬件设备进行控制的场合。使用C语言与使用汇编语言相比:不需要掌握8051系列单片机的指令集,只需了解单片机部特殊功能寄存器的用途;编程人员不必考虑寄存器的分配和寻址方式等细节,都有编程器自动进行管理;利于结构化编程,易于维护;由于可以实现模块化编程技术,

23、大量例程直接调用,节省开发时间,提高效率 徐小菲, 刘辉. 基于单片机C语言和汇编语言程序J. 青春岁月, 2012(6):362.。基于以上所讲述的在单片机领域中的C语言和汇编语言编程各自的优缺点。考虑到本设计整体结构简单,生成的代码占用空间小,一般的单片机足以满足需求,并且对时序的要求不高。所以采用C语言编写程序能更方便快捷的完成我们的设计,并且具有良好的可移植性,方便以后移植系统到其他硬件设备上。在集成开发环境(IDE)上我们选择目前最流行的Keil C51,KeilC51是Keil Software公司出品的51系列兼容单片机C语言软件开发系统。Keil提供了包括C编译器、宏汇编、连接

24、器、库管理和一个功能强大的仿真调试器等在的完整开发方案。如果你使用C语言编程,那么Keil几乎就是你的不二之选。Keil C51生成目标代码的效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。Proteus软件是Lab Center Electronics公司的一款电路设计与仿真软件,它包括ISIS,ARES等模块,它能仿真大量的单片机芯片,比如MCS-51系列,PIC系列等等,以与单片机外围电路 蔡朝阳. 单片机控制实习于专题制作M. 航空航天大学, 2006.。通过Proteus软件的使用我们能很容易获得一个强大,方便的单片机实验系统。同时Pro

25、teus兼有PCB板绘制的功能。并且Proteus与Keil的结合使用能很方便的完成单片机的调试工作。作为目前市场上最流行的单片机仿真软件,它的好处是资源丰富,在网上能获得最多的技术支持与帮助。本设计即是采用Keil作为集成开发环境,以Proteus作为仿真原理图、PCB设计工具。第3章硬件设计3.1总体设计本设计包含了硬件设计和软件设计两部分,两者紧密结合,不可分离。硬件设计是这个系统运行的基础,没有硬件一切都无从谈起。软件设计是系统正常运转的核心,在硬件的基础上软件控制着系统的运作,实现系统的功能。随着技术的发展,硬件电路的集成度越来越高,各种功能强大的芯片降低了硬件设计的复杂程度。为是硬

26、件电路设计更加合理,应注意以下几个方面:(1)尽量使用集成度更高功能更强的芯片,以简化电路。功能更强大的芯片能只占用较少的端口资源就完成同样的甚至是跟多的功能。本设计中除了主控制芯片以外,显示模块采用了一块高度集成的12864液晶,在兼顾显示界面的友好美观的情况下极大程度的简化了硬件电路的设计工作,而且节约了单片机的I/O端口。(2)留有一定设计余地。在硬件设计是,往往不是一次成型的。考虑到以后修改扩展的方便。要留有一定的余地,以避免为了一点小小的修改而全面返工。本次设计采用的硬件电路均在一块开发板上,硬件电路已经经过生产厂商的测试,比较可靠,可以放心的使用,将更多经历投入到软件的设计过程中去

27、。(3)程序空间。应该选择部程序空间足够大的单片机。所以你需要估计自己设计程序的复杂程度,选择相匹配的单片机。本设计所采用STC89C52RC单片机拥有8K的程序空间,基本上能够满足电子抢答器的设计所需的空间大小。(4)RAM空间,单片机部的RAM空间不多。如果片空间不够就需要增加片外RAM,设计时需要预留I/O接口。在本设计中,系统的功能简单,已有的单片机完全可以满足需要,无需考虑这个问题。(5)I/O端口:在设计的初期就要对各个I/O口资源合理分配,可以预留若干备用,也许在后期的调试过程中就会派上用场。在本设计中使用的开发板上硬件电路已经固定,I/O端口的分配也很合理,无需再重新分配I/O

28、端口。本次设计的总体硬件电路原理图如图3-1所示。图3-1硬件电路原理图Fig. 3-1 hardware circuit principle diagram图2-1中主控制器为STC89C52RC单片机,显示模块为一块集成的LCD12864液晶。由于采用并行传输数据,液晶模块的DB0-DB7接单片机P0口。RS脚接P1.0、R/W脚接P1.1、E脚接P2.5、PSE脚接P1.2、RST脚接P1.4。所有的按键全部在接在P3口的键盘阵列中,第一行和第二行按键为8为选手的抢答按键,第三行是主持人控制按键,左一为加分键、左二为减分键、左三为开始键、左四为复位键。BUZ1为蜂鸣器,作为系统中的响铃提

29、示功能。3.2时钟频率电路的设计单片机与其他微机一样,它的各种操作都是按着节拍有序的工作的。89C51部有一个高增益反响放大器,用于构成振荡器。反相放大器的输入端为XTAL1,输出端为XTAL2,两断跨接石英晶体与两个电容就可以构成稳点的自己振荡器。时钟电路如图2-2所示。图3-2外部震荡源电路Fig. 3-2 external oscillators circuitC1和C2通常取30pF左右,可以稳定频率并对震荡频率有微调作用 李朝青. 单片机原理与接口技术M. :航空航天大学, 2006 :34.。震荡脉冲频率围为fosc=024MHz,我们所用的震荡频率为12MHz。3.3键盘扫描电路

30、的设计键盘是单片机应用中必不可少的硬件之一,由于其设计方法多种多样,所以在应用系统设计时,应根据整个系统的硬件结构、软件设计等信息综合考虑,设计出稳定可靠、结构紧凑、成本低廉、简单易用、性能优良的人机键盘界面 陈铭. 单片机矩阵式键盘的设计J. 工业控制计算机, 2012, 25(1):99-100.。键盘是进行人机交互的主要设备。在单片机应用中主要是独立键盘和矩阵键盘。其中独立键盘结构简单,程序设计也较为简单,一般用于对硬件电路要求不高的简单电路中;矩阵键盘在硬件结构上较为复杂,程序算法上也比独立键盘复杂得多,但是矩阵键盘更加能够节省端口资源,适合在按键较多的电路中使用。在本设计中,为了节省

31、端口资源,采用矩阵键盘。按键电路如图3-3所示。图3-3 按键电路Fig. 3-3 key circuit在这个4*3的矩阵键盘中,上两行8个按键是8为选手的抢答按键,最下面一行是主持人控制的加减分按键和开始、复位按键。这个矩阵键盘接在单片机的P3端口上,P3.0到P3.2接行线,P3.4到P3.7接列线,在必要的时候可以再加一行按键,行线接P3.3扩展为4*4的矩阵键盘。在按键的过程中会出现抖动现象,这种现象会造成按下按键判定不准确,要消除这种影响就需要在扫描程序中采用消抖动处理 徐志军, 王金明. EDA技术与PLD设计M. :人民邮电, 2005 :49.。通常采用的方法是,延时重复扫描

32、的办法,在检测到按键按下之后延时一段时间再次检测按键电平是否保持原状态,进行多次扫描后如果键盘的电平保持不变则判定按键被按下,否则判定为无效。3.4复位电路的设计使CPU回到初始状态,从0000H地址开始执行程序的过程脚系统复位,系统的复位可分为硬件复位和软件复位 程相波, 卫安军. 基于MCS-51单片机的八路抢答器设计方法研究J. 工业职业技术学院学报, 2007, 6(2).。硬件复位必须通过CPU外部的硬件电路给CPU的RESET端加上足够时间的高电位才能实现。上电复位,人工按键复位和看门狗复位均为硬件复位。硬件复位后,各个寄存器状态呗初始化,对片通用寄存器的容没有影响。软件复位就是用

33、一系列指令来模拟硬件复位功能。软件复位中对中断标志的清除工作常被遗忘,但清除中断标志非常重要。在本设计中的主持人控制的复位按键只是使程序结束当前的抢答过程进入到下一轮的抢答环节,并不是真正意义上的对整个单片机系统进行复位。对整个系统复位后,所有选手的分数也将会清零。复位电路如图2-4所示。图3-4 复位电路Fig. 3-4 reset circuit复位电路主要由电解电容C3、电阻R1、按键S1组成。由于单片机是高电平复位,所以当复位键按下时候,单片机的9脚RESET管脚处于高电平,此时单片机处于复位状态。当上电后,由于电容的缓慢放电,单片机的9脚电压逐步由高向低转化,经过一段时间后,单片机的

34、9脚处于稳定的低电平状态,此时单片机上电复位完毕,系统程序从0000H开始执行。需要强调的是,在本设计中的主持人复位,并没有使系统回到0000H开始执行,只是回到抢答的开始阶段开始执行程序,不属于以上所述的复位的畴。如果需要整个系统重新启动进行工作,则可以按下Reset键进行硬件复位。3.5发声电路的设计蜂鸣器是众多电子产品中常用的发声器件,本设计中也使用蜂鸣器作为发声装置,本设计中的发声电路如图2-5所示。图3-5发声电路Fig. 3-5 sounding circuit本设计中的发声装置一端接在单片机的P2.3脚,当P2.3脚为低电平是蜂鸣器发声,当P2.3为高电平时蜂鸣器静音。单片机部通

35、过编程控制I/O口的高低电平就能控制蜂鸣器的响铃时常和频率。3.6 综合PCB板的设计印制电路板(PCB)是各种电子产品中电路元器件的载体,PCB提供了电路元件和器件之间的电气连接,PCB设计的好坏对产品性能有很大影响 夏青. 电子线路设计:PCB设计的一般原则J. 大家, 2011(12):236.。因此,在进行PCB设计时。必须遵守PCB设计的一般性原则,并应符合抗干扰设计的要求。为了设计出优质低廉的PCB,应遵循一些原则。3.6.1布局的原则1、要考虑PCB尺寸大小。PCB尺寸过大时,印制线就条长,同时阻抗增加,抗噪声能力也会下降,成本也增加;过小,则散热不好,而且邻近线条易受干扰。2、

36、确定特殊元件的位置。在确定特殊元件的位置时要遵守以下原则:a) 缩短高频元器件间的连线,以减少它们的分布参数和相互的电磁干扰。容易受干扰的元器件不能太近,输入和输出元件要尽量远离。b) 某些元器件或导线之间可能有比较高的电位差,应该增加它们之间的距离,以避免放电引发意外短路。c) 较重的元器件应该用支架固定,再焊接。那些笨重、发热量多的元器件,不宜装在印制板上,应装在机箱底板上,热敏元件应远离发热元件。d) 应留出印制板定位孔与固定支架所占用的位置。3、根据电路的功能模块,对全部元器件进行布局时,要符合以下原则:a) 按照电路的流程安排电路中各个功能单元的位置,使布局放便信号流通,并使信号尽量

37、保持一致的方向。b) 以每个功能电路的核心元件为中心,围绕它来进行布局。元器件应均匀、整齐、紧凑地排列在PCB上。尽量减少各元器件之间的引线和缩短连接。c) 一般应当使元器件平行排列。这样,既美观有容易装焊,易于批量生产。3.6.2布线1、I/O口的导线应尽量避免相邻平行,最好加线间地线,以避免发生反馈藕合。2、导线的最小宽度主要由导线与绝缘基扳间的粘附强度和流过它们的电流大小决定。在条件允许的情况下尽量使用宽线。尤其是电源线和地线。导线间的最小距离主要由最坏情况下的线间绝缘电阻和击穿电压决定。工艺允许的条件下,使间距尽量小。3、印制导线拐弯处一般采用圆弧形,直角或夹角在高频电路中会影响电气性

38、能。还应尽量不使用大面积铜箔。长时间受热时,易发生铜箔膨胀和脱落现象。必须用大面积铜箔时,最好用栅格状。这样有利于排除铜箔与基板间粘合剂受热产生的挥发性气体。3.6.3焊盘焊盘尺寸、焊盘的孔尺寸必须从元件引线直径和公差尺寸以与镀锡层厚度、孔径公差、孔金属化电镀层厚度等方面考虑,一般以金属引脚直径加上0.2mm作为焊盘的孔直径。而焊盘外径应该为焊盘孔径加1.2mm,最小应该为焊盘孔径加1.0mm。当焊盘直径为1.5mm时,为了增加焊盘的抗剥离强度,可采用方形焊盘。设计焊盘时的注意下列事项:1、焊盘孔边缘到电路板边缘要大于1mm,这样可以防止加工时导致焊盘缺损。2、焊盘补泪滴,当与焊盘连接的铜膜线

39、较细时,要将焊盘与铜膜线之间的连接设计成泪滴状,这样可以使焊盘不易被剥离,而铜膜线与焊盘之间的连线不易断开。3、相邻的焊盘尽量不要有锐角。根据上述要求,我们设计PCB。我们将各个模块组合起来之后得到综合电路原理图(如图3-1)。我们将综合原理图输入Proteus中,就可以利用Proteus的PCB设计工具AERS自动生成PCB图。由Proteus生成PCB图的主要有以下步骤:(1) 绘制原理图。这是电路板设计的先期工作,主要是完成原理图的绘制,包括生成网络表。当然,也可直接进入PCB设计,不绘制原理图。原来用于仿真的原理图需将信号源与测量仪表的接口连上适当的连接器。(2) 规划电路板。在绘制印

40、制电路板之前,要对电路板有一个大体的规划,比如电路板采用多大的物理尺寸,采用几层电路板,各元件采用何种封装形式与其安装位置等。这是确定电路板设计的框架,都可以从菜单栏system里进行设置。(3) 设置参数。设置参数主要是设置元件的布置参数、层参数、布线参数等。(4) 装入网络表与元件封装。网表是原理图设计系统与印制电路板设置系统的接口,只有将网络表装入之后,才可能完成对电路板的自动布线。元件的封装是元件的外形,对每个元件必须有相应的外形封装,才能保证电路板设计的顺利进行。本设计中的按键,12864液晶没有封装,需自行封装。(5) 元件布局。元件布局可以采用自动布局和手工布局。一般自动布局后进

41、行调整。(6) 布线。一般先进行自动布线,然后手工布线进行调整。(7) 文件保存与输出。完成电路板的布线后,保存完成的电路线路图文件。按照需求可以打印成纸质文档。最终本设计生成的PCB图如图3-6所示。图3-6 PCB设计图Fig. 3-6 PCB design第4章软件设计4.1软件任务分析一个单片机系统是有软硬件结合而成的,硬件电路的设计解决了系统的物理层面实现,而要赋予这些硬件“灵魂”,就需要软件来实现。软件设计主要是针对主控芯片来讲的,由软件设计来告诉主控芯片如何去控制外围电路完成某些特定的功能。在本设计中,根据我们需要实现的功能来看,软件设计主要可以分为一下机个部分:l 显示模块:在

42、整个抢答过程中显示信息的功能贯穿始终,是最主要的模块。控制显示屏显示正确的信息是显示模块软件的主要职责。l 输入模块:本设计的输入模块是由43的矩阵键盘构成的,正确检测出从键盘上输入的信息非常重要。输入模块软件就是要完成这一任务。l 计时模块:在抢答器的工作过程中多出设计的倒计时功能,计时模块软件主要完成准确计时的功能。并在需要的时候提供当前的时间供其他模块调用。l 初始化模块:整个系统要稳定的运行,就需要自始至终都在我们的控制之下。系统最初启动是所处的状态无法确定,就需要初始化程序对硬件系统进行设定,使之符合系统运行的要求。本设计中初始化主要包括对单片机的初始化和对LCD12864液晶的初始

43、化。l 主函数模块:程序都是从主函数开始运行的,主函数要控制这个程序运行的流程,将各个模块有机的结合起来,使系统稳定的工作。软件系统的模块结构图如图4-1所示。图4-1软件系统模块结构图Fig. 4-1 module structure of software system图4-1中列出了软件系统的主要模块的机构组成。除了以上主要模块外还包含一些其他函数和模块,例如引脚定义、延时函数、加减分模块等。4.2主要模块的流程图与分析本设计中根据我们的设计要求和抢答器系统的工作流程,可以得到系统的程序总流程图,如图4-2所示。图4-2 程序总流程图Fig. 4-2 program flow chart

44、图4-2给出了程序的总体流程图,之后,我们将对一些主要的程序进行详细的分析。4.2.1按键扫描程序本设计中采用的按键是矩阵式键盘。比较好的识别按键的方法是进行按键扫描。对矩阵键盘进行按键扫描的基本原理是对矩阵键盘的一条列线置为低电平,然后扫描行线,根据各行线的状态就能判断该列线上所有按键的状态。依次分别对所有列线置低,再扫面行线,就完成了一次对所有按键的扫描。 余江, 李雪梅. 按键状态扫描显示电路的设计与实现J. 内江科技, 2011, 32(5):116.考虑到可能出现的毛刺现象在扫描按键的过程中要做消抖动处理,消抖动的原理在前面介绍过,这里不再叙述。根据上述原理,我们绘制出按键扫描程序的

45、流程图如图4-3所示。图4-3按键扫描流程图Fig. 4-3 buttons scan flow chart从图4-3中我们可以看出程序是先将一根行线置高,然后扫描列线。一次对所有行线置高之后就完成一次扫描,延时一段时间是为了消除按键抖动的影响。最后返回对应的按键键值。源程序见附录。4.2.2计时模块定时器分为软件定时器和硬件定时器,软件定时器是靠指令延时完成定时任务的。因此,软件定时器的基本思想是使某条指令循环若干次达到定时效果,软件定时主要用于定时进度不高的情况下。 李强. 单片机定时、计数器编程技术(上)J. 电子世界, 2004(9):31-32.软件定时器的原理简单,但有时不能满足需

46、求,这是就需要硬件定时/技术器。硬件定时器的基本原理:硬件定时/技术器独立于CPU工作,可以由软件控制它的启动和停止。当预定的定时时间后向CPU发送一次中断请求,执行中断服务程序。定时/计数器有部定时和外部计数功能,但实质上是计数,数器对外部时间的计数就是计数器,以单片机部机器周期计数累加它就是系统定时器 李强. 单片机定时、计数器编程技术(下)J. 电子世界, 2004(10):29-32.。选择定时还是计数是可编程的。对计数的寄存器设定初值后,定时器与CPU并行工作,计数器累加溢出时发出中断请求,系统响应中断。为了确保计时的准确性,本设计中我们采用单片机部的定时器并且以中断的方式计数。定时

47、器中断服务函数流程图如图4-4所示。图4-4 定时器中断流程图Fig. 4-4 flow charts of the timer interrupt从图4-4中可以看出,在本设计中每次计数器累加溢出后进入中断服务程序,对Cent加一,返回继续运行主程序,累计到cent等于20时为1秒,这时对time的值减一,返回继续运行主程序。直到time为零时关闭定时器。4.2.3显示模块显示模块程序主要用于控制LCD12864显示各种需要的信息。我们所使用的是由ST7920控制器控制的带字库液晶,该液晶能够显示12864像素的图像和4行8列的汉字以与4行16列的半宽字符 胡洪坡, 梁书剑, 张爱民, 等.

48、 基于ST7920的12864液晶的使用方法研究J. 山西电子技术, 2011(6):82-84.22 Ma Xinyuan. Research of Microcontroller DevelopmentJ. System Control &Automation, 2004, (6): 69-71.23 Schultz T W. C and the 8051M. WOOD ISLAND PRINTS, 2008.。关于它的显示原理可以参考相关文献和使用手册。在这里仅对它的指令系统做一介绍。LCD12864与单片机之间的通信有并行和串行两种方式。串行方式需要的端口较少,但是写入指令和数据需要的

49、时间比较长,并行方式占用端口多,写入速度较快。本设计中我们才用并行方式进行通信。对LCD12864的操作实际上是对ST7920驱动芯片的操作,单片机将指令发送给ST7920再由ST7920控制LCD显示频显示出各种图形和文字。表4-1中给出了ST7920的主要指令表。表4-1 ST7920基本指令集Table 4-1 ST7920 basic instruction set指令指令码RSR/WD7D6D5D4D3D2D1D0清除显示0000000001地址归位000000001X显示状态开/关0000001DCB进入点设定00000001I/DS游标或显示移位控制000001S/CR/LXX功

50、能设定00001DLXREXX设定CGRAM 地址0001AC5AC4AC3AC2AC1AC0设定DDRAM 地址0010AC5AC4AC3AC2AC1AC0读取忙标志和地址01BFAC6AC5AC4AC3AC2AC1AC0写数据到RAM10数据读出 RAM的值11数据除了基本指令集外,还有扩充指令集。关于各个指令的功能,在相关的手册中都详细的介绍,这里不再做进一步讲述。根据表4-1中的指令,我们就能够根据我们自己的需求编写出所需要的函数来命令12864液晶显示特定的容。在本设计中,我们要显示的容有图片,汉字和数字等。需要我们自己编写的程序主要有写指令函数、设定显示图片、设定显示汉字、LCD1

51、2864初始化函数、汉字写入函数、图片输入函数等一系列的液晶控制函数。以上函数的源程序见附录。有了上述的基本液晶控制函数之后,就可以通过调用以上的控制函数来进一步的完成我们先是模块的程序设计。首先应该是倒计时显示程序。在本设计中有两处用到倒计时,一处是主持人按下开始后的5秒预备时间,第二处是抢答时间的15秒倒计时。其中第一处倒计时显示采用的是显示图像的方式,第二处则是采用显示字符的方式。对图像的显示需要事先制作好图像的字模数据,将数据存放在一个数组中以供图像显示函数调用。由于图像字模要占用大量的代码空间,所以为了节省空间本设计中只做了5秒倒计时,第二处的15秒倒计时仍旧采用字符的显示方式。并且

52、为了进一步的减少图像字模数据占用的空间,本设计中的字模数据都删除了每一行最后六个字节的无用字节。这样带来的问题是后六个字节删除后会造成后六个字节的图像显示花屏。是因为GDRAM中的这部分字节的值是随机的,为了解决这个问题,我们需要事先清空绘图区的数据,即对绘图区全部写0。其次是犯规选手的显示。犯规选手的显示仍然是用字符显示的方式,有选手犯规是在屏幕上显示犯规选手的编号并响铃提示。然后是抢答成功选手的显示。抢答成功选手的显示和犯规选手显示一样,采用字符显示方式。并且抢答成功后还会显示该选手当前的得分。分数统计的显示。本设计中要求主持人按下复位键后显示所有选手的得分。这部分首先我们将8为选手的登封

53、存在一个数组中,显示程序根据需要来调用每位选手的分数显示在屏幕上。显示模块源代码见附录。4.2.4初始化模块本设计中的初始化主要包含两个部分。液晶的初始化和定时器的初始化。对液晶的初始化,生产厂商给了以下建议流程,如图4-5所示。图4-5 LCD12864初始化流程Fig. 4-5 LCD12864 initialization process根据上述流程对LCD12864液晶进行初始化。第一步是功能设置,即选择基本指令集还是扩充指令集。第二步是显示开关控制,这一步选择显示的开关盒游标的开关。第三步显示清屏。第四步进入点设定,设定游标的移动方向和指定显示的位移。定时器的初始化主要在于选择模式、

54、开中断和对累加寄存器赋初值。根据自己的设计需求计算初值即可。4.2.5计分模块计分模块主要功能是对所有选手的得分进行统计并在主持人的控制下对以为选手的得分进行加分或者减分的操作。设计中将所有选手的得分存在一个数组之中,需要显示选手分数时就从数组中调用对应的值进行显示,需要进行加减分操作时,就对数组中对应的值进行加或减。加减分的操作主要由加分函数和减分函数两个函来完成。4.2.6发声模块系统的发声模块由一个有源的蜂鸣器构成,只要对响应的引脚置低,蜂鸣器就会发出一定频率的声响。这种操作简单便捷,在需要发出提示音的时候(本设计中需要发生的有倒计时的最后5秒提示音和选手抢答犯规是的告警音)能够方便的的

55、控制蜂鸣器的停启。第5章系统综合调试5.1系统实现的功能通过了一系列的硬件设计和软件设计,并将软硬件进行整合。最后我们需要对我们的设计进行测试,看它是否能完成我们最初设定的各种功能。1、在抢答是只有,主持人按下开始后才能抢答。在预备时间结束前抢答视为犯规。2、可以显示抢答成功的选手和抢答犯规的选手。抢答成功的选手显示他当前得分。3、显示倒计时,倒计时将要结束时有响铃提示。4、抢答成功后锁定按键,使其他选手的按键无效。5、选手答题后主持人进行加分或减分。并显示为当前得分。6、主持人复位后进入下一轮抢答,并显示所有选手的分数。5.2系统运行效果1、开机初始状态。如图5-1所示。图5-1开机初始状态

56、Fig. 5-1 power on initial state上电启动后屏幕显示当前所有选手的分数,初始状态下,所有选手得分都为10。这一步符合本设计的设计要求。2、预备抢答倒计时状态。如图5-2所示。图5-2预备抢答倒计时状态Fig. 5-2 the countdown of prepare to vies主持人按下开始键后进入5秒倒计时,并且在每一秒都发出提示音。这一步也符合设计要求。3、抢答犯规显示。如图5-3所示。图5-3 抢答犯规显示Fig. 5-3 vies foul display有选手在预备时间结束前按下抢答键就会提示抢答犯规,并在屏幕上显示犯规信息,并且会响铃告警。这一步功能

57、符合设计要求。4、正式抢答阶段倒计时显示。如图5-4所示。图 5-4倒计时显示Fig.5-4 countdown display正式抢答阶段的倒计时显示如图5-4所示,并且在最后5秒会响铃提示,符合设计要求。5、抢答成功显示。效果如图5-5所示。图5-5抢答成功显示Fig. 5-5 vies success display抢答成功后会显示抢答成功选手的编号和他的当前得分,图中显示7号选手抢答成功,当前得分10分。符合设计要求。6、加减分显示。效果如图5-6、5-7所示。图5-6加分显示Fig. 5-6 add a point选手抢答成功后,进入答题阶段,根据选手逇答题情况可以由主持人控制加分或

58、减分。图5-6中的7好选手原本分数为10分,主持人对其加1分之后显示当前得分为11分。图5-7减分显示Fig. 5-7 minus a point图5-7中所示为主持人为7好选手减1分,显示当前得分为6分。7、复位显示所有选手得分。效果如图5-8所示。图5-8显示所有选手得分Fig. 5-8 shows all players score复位后会显示当前所有选手的得分。从图5-7中可以看出经过一轮抢答加分之后7号选手得分为9分。8、无人抢答显示。如图5-9所示。图5-9无人抢答显示Fig. 5-9 no contest当直到抢答倒计时结束后还没有人抢答,则屏幕显示“无人抢答”字样,并发出连续不

59、间断的提示音。第6章总结最终,成功的完成了本次设计,满足了抢答器的设计需求,经过实际测试效果比较理想,系统能够正常运行,并且功能都达到了设计要求。本次毕业设计用STC89C52RC芯片,实现了单片机系统与外围电路构成的抢答器系统,利用单片机部定时计数器将软硬件有机的结合到一起。在整个过程中,理论结合实际,培养自己的学习和动手能力。本设计中的抢答器主要完成了下列功能:l 在抢答时只有主持人按下开始后才能抢答。在预备时间结束前抢答视为犯规。l 可以显示抢答成功的选手和抢答犯规的选手。抢答成功的选手显示他当前得分。l 显示倒计时,倒计时将要结束时有响铃提示。l 抢答成功后锁定按键,使其他选手的按键无

60、效。l 选手答题后主持人进行加分或减分。并显示为当前得分。l 主持人复位后进入下一轮抢答,并显示所有选手的分数。本设计的主要工作在与硬件设计、软件设计以与软硬件的结合:对单片机的设计而言,硬件电路是比较简单的。本设计的结构简易,PCB的设计和制作都比较简单,采用单片机的最新系统板即可实现,用单片机开发板上现有的硬件电路完全能够满足需求。本设计的重心主要在于程序的设计上,这也是主要工作所在。程序是一个系统的灵魂。很多通用的子程序都可以借鉴书本上的,但是怎样将这些子程序结合到一起形成自己的功能模块才是关键所。在本设计中显示模块作为一个独立的模块它要与单片机之间进行通信,这就要对LCD12864的指

61、令系统比较熟悉。液晶模块的正常工作关系到整个系统的运行结果显示,对液晶模块的编程可以说是重中之重。这当中尤其以显示图像需要在前期做大量的准备工作(作图,图形字模等)。通过这一次的毕业设计,我收获了很多知识。对液晶模块的使用让我学会了用单片机与外部设备进行通信的一般方式,使用串并行的方式各自的特点。对液晶模块编程就要学习液晶模块的指令系统,了解它的工作原理,这些都使我受益匪浅。通样,要通过编程使各个器件正常工作,要了解各个器件的特性,如按键的抖动和如何消抖动,操作液晶模块的时序,蜂鸣器的发声原理,这些知识都需要掌握。在定时延时方面,部定时器中断提供了一个很好的解决方案。本设计还有很大的提升空间,

62、主要有以下几个方面:(1) 界面的美观性设计,使人机之间有更好的互动。(2) 抢答按键的的无线化,使用无线技术可以使选手在较远的距离进行抢答。(3) 主持人控制按键也可以使用无线技术,最终达到主持人遥控的效果。(4) 由于要在液晶上显示图形,就需要实现准备好字模数据,这些字模数据非常的占用空间,为了进一步节省空间,可以对字模数据进行压缩处理,再解码输出。在以后各种软硬件条件允许的情况下可以增加上述的功能,进一步完善设计。参考文献:53 / 54致:本次毕业设计能顺利完成,离不开我的指导老师东卓老师的指导。老师一丝不苟的精神让我受益匪浅。再次向东卓老师致以崇高的敬意和真挚的感!在大学生活将要结束的时候,我同样要感我的同学们。大家一起相互促进、相互帮助营造出大学这样一个广泛交流的氛围和良好的学术环境。这一切都是值得我们珍惜的。感我的室友,四年的大学时光有你们陪伴。感所有提

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!