

免费预览已结束,剩余56页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业论文(设计) 题 目 基于单片机的电子智能抢答器 学 院 电子信息工程学院 专 业 通信工程 年 级 2009 级 学 号 222009315220102 姓 名 指 导 教 师 成 绩 2013 年 5 月 1 日 西南大学 电子信息工程学院 2013 届本科毕业论文 1 基于单片机的电子智能抢答器 目目 录录 第第 1 章章 引引 言言.1 1.1 单片机的应用与发展.1 1.2 抢答器系统的发展分析.3 1.31.3 研究目标与内容 第第 2 章章 总体方案设计总体方案设计4 2.1 系统主要功能.4 2.2 系统工作流程.5 2.3 软硬件方案选择.5 2.3.1 硬件方案选择6 2.3.2 软件方案选择10 第第 3 章章 硬件设计硬件设计.12 3.1 总体设计.12 3.2 时钟频率电路的设计.13 3.3 键盘扫描电路的设计.14 3.4 复位电路的设计.15 3.5 发声电路的设计.16 3.6 综合 pcb 板的设计16 3.6.1 布局的原则.17 3.6.2 布线.17 3.6.3 焊盘17 第第 4 章章 软件设计软件设计.20 4.1 软件任务分析.20 4.2 主要模块的流程图及分析.21 4.2.1 按键扫描程序22 4.2.2 计时模块22 4.2.3 显示模块23 4.2.4 初始化模块.25 4.2.5 计分模块26 4.2.6 发声模块26 第第 5 章章 系统综合调试系统综合调试27 5.1 系统实现的功能.27 5.2 系统运行效果.27 第第 6 章章 总结总结.32 参考文献参考文献 34 致谢致谢35 西南大学 电子信息工程学院 2013 届本科毕业论文 2 附录附录 1:主程序源代码:主程序源代码 main.c36 附录附录 2:字模数据和类型定义头文件:字模数据和类型定义头文件 data.h .46 西南大学 电子信息工程学院 2013 届本科毕业论文 3 摘要摘要:近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测日新月异更 新。本文介绍一种用 at89c51 作为核心部件进行逻辑控制及信号产生的单片机技术和 c 语言编程 设计的 8 路数字抢答器。文章对抢答器的背景与现状、硬件设计、软件设计及其仿真都做了详细的 介绍,使我们不仅元器件的原理及设计有了深入的了解,也对单片机的设计研发过程有了更加深刻 的体会 本设计主要采用单片机控制,采用手动抢答的方式,有人抢答后,系统自动封锁其他人的抢答按钮, 使其不能再抢答,从而实现抢答功能。 该系统还增加了抢答倒计时和答题对错判断功能,另外抢答倒计时的时间可以调整。若有人在主持 人按下开始按钮之前按下抢答按钮,系统不会显示选手的号码,只有在开始按钮被按下之后,选手 才可以有效的抢答,使抢答达到公平、公开的效果。 关键词关键词:单片机;抢答器;at89c51;液晶 第第 1 章章 引引 言言 1.11.1 抢答器的研究意义抢答器的研究意义 随着我国经济和文化事业的发展,在很多公开竞争场合要求有公正的竞争裁决, 诸如证券、股票交易及各种智力竞赛等,因此出现了抢答器。抢答器一般是由很多电路 组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现 起来就更为困难。因此我们设计了以单片机为核心的新型智能的抢答器,在保留原始 抢答器的基本功能的同时又增加了数码管显示电路实现了其他功能。抢答器又称为第 一信号鉴别器,其主要应用于各种知识竞赛、文艺活动等场合。 1.2 抢答器系统的发展分析抢答器系统的发展分析 在 2007 年以前,抢答器作为一种竞赛设备,一直没有得到多大的提高,在使用过 程中只起到抢答作用,而且在设计上基本是采用模拟电路的方式,抢答的精确度不够 高,而且要受到线路和距离的限制。随着电脑的普及率在大幅提高,在新的信息化时 代中,各类竞赛活动也发生了一些大的变化,不再是现场主持人念题,选手回答,这 种固定的、单调且死板的方式。现场要求有更多互动和更多娱乐的效果。活动的策划 者们在不断的思考和在活动环节上进行设计。 西南大学 电子信息工程学院 2013 届本科毕业论文 4 电脑抢答器的出现解决了策划者们面对的难题,电脑抢答器是以电脑做为操作平台, 控制器方面采用了数字电路和单片机的方式和电脑进行通信,这样设计使知识竞赛长 期以来固定的模式被打破1。活动中出现了更多的设计和新玩法,使知识竞赛走向了新 的方向。以电脑做为平台的抢答器系统,可以通过竞赛软件控制抢答器,答题器,记 分屏,灯光效果等等。通过知识竞赛软件可以做到各个环节中的题目显示,选手可以 通过手中的抢答器抢答,抢答结果会显示在大屏幕上和分数会显示在 led 记分屏中。 选手还能通过答题器对题目进行按键回答,在显示设备上显示出每位选手答题的情况, 这样的方式很大程度的提高了比赛的档次和娱乐性。 除了电脑抢答器外还有数字电路式、单片机式的抢答器。对数字电路式的抢答器来 说电路复杂,且成本偏高,故障率高,显示方式简单,电脑抢答器不够便携2。随着单 片机的应用不断深入,以单片机为核心的抢答器不断出现。利用单片机的优点,使抢 答器具有结构简单、功能强大、性能可靠等特点。 1.3 研究目标与内容 本系统采用模块化设计抢答器,在抢答比赛中广泛应用,各组分别有一个抢答按 钮。主持人有开始和结束、复位键。在后台主持人可以修改,抢答时间和选手回答问 题的时间设置,原始状态下抢答时间为 30s,回答问题时间为 60s。通过加键和减键修 改上述时间,改完后确认键确定。新时间开始有效,主持人按键开始后,选手开始抢 答为有效,数码显示屏显示选手号和抢答时间倒计时,在最后五秒扬声器发生提示。 如果主持人没有按下开始键而选手就抢答视为犯规,数码显示屏显示犯规者的代号, 扬声器持续发生。主持人可按键结束,新一轮抢答开始。 西南大学 电子信息工程学院 2013 届本科毕业论文 5 第第 2 章章 总体方案设计总体方案设计 2.1 系统主要功能系统主要功能 本系统是以单片机为主控芯片的八路抢答器,它包括了 8 路抢答按钮、计时显示、 倒计时提示、开始与复位控制按钮、加时减时控制按钮。 系统的主要功能模块框图如图 2-1 所示。 主主控控制制器器 显显示示模模块块 按按键键输输入入模模块块 图 2-1 抢答器的总体框图 fig. 2-1 the overall block diagram of the responder 在抢答比赛中八路抢答按钮分别对应一组选手。计时显示以及其他的各种显示功 能都由 lcd1602 液晶实现。倒计时即将结束时蜂鸣器会响铃提示。开始、复位、加时、 减时按钮都由主持人控制。在主持人按下开始键后才能开始抢答,在抢答时选手的抢 答犯规、抢答成功都会显示在液晶屏幕上。一轮抢答结束之后由主持人按下复位键复 位。在本设计中我们设定开始之后有 5 秒中的预备时间,在预备时间结束前抢答为犯 规蜂鸣器持续响,预备时间结束之后可以开始抢答,有 15 秒抢答时间,15 秒内无人抢 答则本轮抢答结束,由主持人复位,复位后显示所有选手的得分。在倒计时最后 5 秒 时,每一秒蜂鸣器都会响铃提示。 总结其系统的需求分析如下: 1、在抢答时只有主持人按下开始后才能抢答。在预备时间结束前抢答视为犯规。 2、可以显示抢答成功的选手和抢答犯规的选手。抢答成功的选手显示他当前得分。 3、显示倒计时,倒计时将要结束时有响铃提示。 西南大学 电子信息工程学院 2013 届本科毕业论文 6 4、抢答成功后锁定按键,使其他选手的按键无效。 6、主持人复位后进入下一轮抢答。 2.2 系统工作流程系统工作流程 系统的工作流程图如图 2-2 所示。 显显示示所所有有选选手手分分数数 开开始始? 正正常常抢抢答答 违违规规抢抢答答 显显示示倒倒计计时时 无无人人抢抢答答有有选选手手抢抢答答 屏屏幕幕显显示示无无人人 抢抢答答 显显示示抢抢答答成成功功 选选手手编编号号 主主持持人人复复位位 显显示示犯犯规规选选手手 编编号号 加加分分或或减减分分 开开始始 图 2-2 抢答器系统工作流程图 fig. 2-2 responder system workflow chart 根据图 1-2 所示的流程,一次具体的抢答过程如下:上电后屏幕显示所有选手的 得分,初始状态下得分都为 10。主持人按下开始键,进入 5 秒预备抢答的倒计时阶段, 每一秒会响铃提示。在 5 秒结束前有选手抢答判定为犯规,屏幕显示犯规选手编号, 主持人按下复位键进入下一轮抢答。预备时间结束后进入 15 秒倒计时的抢答阶段,有 选手率先抢答时倒计时停止,屏幕显示抢答成功的选手编号,并锁定键盘,使其他选 手的抢答无效。此时抢答成功的选手进行答题,答题结束后主持人可以为该选手加分 或减分(也可以既不加分也不减分),之后由主持人按复位键进行下一轮抢答,此时 屏幕显示所有选手的得分。如一直无人抢答,在最后 5 秒倒计时的每一秒会响铃提示, 直到倒计时结束还无人抢答,则屏幕显示无人抢答,主持人复位进入下一轮抢答。 西南大学 电子信息工程学院 2013 届本科毕业论文 7 2.3 软硬件方案选择软硬件方案选择 2.3.1 硬件方案选择硬件方案选择 (1)主控芯片选择方案)主控芯片选择方案 根据以上我们提出的需求,抢答器系统的主控芯片可以有多种选择方案。嵌入式微 处理器一般可分为四类,嵌入式微处理器(mpu) 、嵌入式微控制器(mcu) 、嵌入式 dsp(dsp) 、嵌入式片上系统(soc)3。这些处理器都可以用于本设计。除此之外, 可编程逻辑器件(fpga/cpld)也可以用来作为主控芯片。 在本设计中,我们用 mcu(又称单片机)中较为常见的 8051 系列单片机作为主 控芯片。该芯片相较于 dsp、fpga、arm 等芯片简单易用、价格便宜,而且完全能 够满足本设计的要求。能够加快我们设计的进程、节约设计成本。 本设计中使用的主控制器是宏晶科技生产的 stc89c51rc。该产品标准易用,价 格便宜,是新一代超强抗干扰、高速、低功耗的单片机,指令代码完全兼容传统 8051 单片机。该型号单片机有 lqfp44、pdip、plcc、pqfp 四种封装,在本次设计中我 们采用 pdip-40 这种封装,其外部结构图如图 2-3 所示4。 图 2-3 stc89c52rc 外部结构图 fig. 2-3 stc89c52rc external structure 主要功能特性: 8k 的 flash 程序存储器可擦写 100000 次以上 512 字节的 ram 数据存储器 eeprom 功能 工作频率范围:0-40mhz 西南大学 电子信息工程学院 2013 届本科毕业论文 8 通用 i/o 口(32 个) ,复位后为:p1/p2/p3 是准双向口(普通 8051 传统 i/o 口) p0 是开漏输出,作为总线扩展用时,不加上拉电阻,做 i/o 口时需要加上拉 电阻。 isp/iap,无需专用编程器/仿真器可通过串口(p3.0/p3.1)直接下载用户程序。 看门狗 共 3 个 16 位定时器/计数器,其中定时器 0 还可当成 2 个 8 位定时器使用。 外部中断 4 路,下降沿中断或低电平触发中断。 可行性分析:从上述单片机的基本参数来看,stc89c552rc 单片机拥有 8k 的程 序空间,对于本设计而言是完全足够的。而且本设计中除了液晶模块为了保证显示无 延迟用了并行方式传输数据外,其它模块采用了尽量节省 i/o 口的设计思路,能保证 单片机的 i/o 口足够。而且有 3 个定时器,本设计只需用到 1 个。综上所述, stc89c52 单片机能够满足设计需求。 (2)抢答器显示模块选择方案)抢答器显示模块选择方案 在抢答器系统运行的整个过程中都伴随着信息的显示,选择一种合理的信息显示方 式能给我们的设计带来方便。 本设计中可用的显示设备有数码管、液晶。数码管结构简单,易于控制,程序算法 也相对简单,缺点是数码管占用端口资源多。液晶显示(lcd)由于具有可编程驱动、 接口控制方便、体积小、功耗低、具有良好的可视化人机界面等优点,在各种电子设 备中得到广泛使用5。 本设计考虑到需要显示的内容较多,用数码管作为显示模块需要占用很多端口资源, 所以本设计采用带字库的 12864 液晶作为显示模块,利用该模块灵活的接口方式和简 单、方便的操作指令,可构成全中文人机交互图形界面6。它的外部结构图如图 2-4 所 示。 西南大学 电子信息工程学院 2013 届本科毕业论文 9 图 2-4 12864 外部结构图 fig. 2-4 12864 external structure 该液晶模块可显示 84 行 1616 的汉字,也可以显示 12864 像素的图形。 其基本特性: 低电源电压(vdd:+3.0v-+5.5v) 。 显示分辨率:12864 点。 内置汉字库,提供 8192 个 1616 点阵汉字。 内置 128 个 168 点阵字符。 2mhz 始终频率。 显示方式:stn、案头、正显。 视角方向:6 点。 通讯方式:串行、并行可选。 lcd12864 的引脚功能表 2-1 所示。 表 2-1 12864 引脚说明 table 2-1 12864 pin description 引脚号引脚名称功能说明 1gnd电源地 2vcc电源正端 3v0对比度调整 4rs(cs)并行数据/指令选择型号;串行片选信号 5r/w(sid)并行读写选择信号;串行的数据口 6e(clk)并行使能信号;串行同步时钟 7-14db0-db7数据 0-数据 7 15psb并/串行接口选择:h-并行 l-串行 16nc空脚 西南大学 电子信息工程学院 2013 届本科毕业论文 10 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 read data 可行性分析:本设计中需要显示的信息有倒计时的显示,选手分数显示,抢答成 功和犯规的显示。由 st7920 驱动的 12864 液晶,能够显示汉字、图形、数字、字母以 及其他 ascii 字符,完全能够满足本设计的需求。 (3)抢答器键盘的选择方案)抢答器键盘的选择方案 在一个单片机应用系统中,键盘是系统中并不可少的输入设备,是控制系统与操作 西南大学 电子信息工程学院 2013 届本科毕业论文 11 人员对话的窗口。 键盘通常有两种结构形式:线性键盘和矩阵键盘。在不同的场合下,这两种键盘都 得到了广泛的应用,线性键盘是由若干独立的按键构成,每个按键的一端与单片机的 一个 i/o 口相连7。有几个按键就要有几根连线与单片机的 i/o 口相连,因此,线性键 盘一般只适用于按键较少的场合。矩阵式键盘的按键是按 n 行 m 列排列,每个按键在 行列的一个交点上,需要的 i/o 口数目是 n+m,能提供的最大按键数是 nm。显然, 用矩阵键盘可以有效减少单片机 i/o 口的连线数,简化结构,是一般单片机常用的键 盘结构。根据矩阵键盘的识键和译键方法的不同,矩阵键盘又分为非编码键盘和编码 键盘两种。非编码键盘是用软件的方法识键和译键。根据按键扫描方法的不同,可以 分为扫描行法、扫描列法和反转法 3 种。编码键盘是用硬件来实现按键的扫描和识别, 一般使用专用接口芯片,在硬件上要求较高。 行列式键盘有节省 i/o 口的优点。考虑到本设计所需的按键较多,为了节省端口资 源,降低硬件要求本设计采用非编码行列式键盘。 (4)发声模块选择方案)发声模块选择方案 有源蜂鸣器和普通扬声器相比,最重要一个特点是只要按照极性要求加合适的直流 电压,就可以发出固有频率的声音,因此使用起来比扬声器简单8。由此可知,有源蜂 鸣器的控制和 led 的控制对单片机而言是没有区别的。无源蜂鸣器则要交流驱动,改 变驱动频率可以奏简单音乐。 本设计中的发声装置只需要发出固定频率的提示音即可,无需改变发声的频率。为 求简化软件设计,本设计中选用有源蜂鸣器作为发声装置。 可行性分析:发声模块在本设计中用于报警,只要能够发出一定频率的提示音即可。 使用蜂鸣器即可满足设计需求。 2.3.2 软件方案选择软件方案选择 c 语言和汇编语言是单片机应用系统开发常用的编程工具。 c 语言是一种高级编程语言。早在 1985 年便出现了 51 单片机专用的 c 语言,简 称 c5l。c51 除了遵循一般 c 语言的语法规则外,还有自身的特点。它增加了变量数据 类型(如 bit、sb)、中断服务函数(如 interrupt n),对 80c5l 单片机的特殊功能寄存器的 定义是 c51 特有的,是对标准 c 语言的扩展。c 语言作为一种高级语言,接近人的自 西南大学 电子信息工程学院 2013 届本科毕业论文 12 然语言,编写的程序与人们通常的思路相近,而且不依赖于计算机的结构和指令系统, 是面向过程而且独立于机器的通用语言,容易学习、通用性好、便于移植。 汇编语言是为了方便使用而设计的一种符号语言。它用易于理解和记忆的英文名 称或缩写形式(助记符)来表示二进制指令。指令助记符、语句标号、数据变量、伪指令 以及它们的使用规则构成了整个汇编语言的内容。汇编语言的程序占用内存少,执行 速度快,并且可以直接对硬件进行编程,能够充分发挥计算机的硬件功能。它是计算 机所能 西南大学 电子信息工程学院 2013 届本科毕业论文 13 提供的最快、最有效的语言。主要应用在实时性要求高、对硬件设备进行控制的场合。 使用 c 语言与使用汇编语言相比:不需要掌握 8051 系列单片机的指令集,只需了 解单片机内部特殊功能寄存器的用途;编程人员不必考虑寄存器的分配和寻址方式等 细节,都有编程器自动进行管理;利于结构化编程,易于维护;由于可以实现模块化 编程技术,大量例程直接调用,节省开发时间,提高效率9。 基于以上所讲述的在单片机领域中的 c 语言和汇编语言编程各自的优缺点。考虑 到本设计整体结构简单,生成的代码占用空间小,一般的单片机足以满足需求,并且 对时序的要求不高。所以采用 c 语言编写程序能更方便快捷的完成我们的设计,并且 具有良好的可移植性,方便以后移植系统到其他硬件设备上。 在集成开发环境(ide)上我们选择目前最流行的 keil c51,keilc51 是 keil software 公司出品的 51 系列兼容单片机 c 语言软件开发系统。keil 提供了包括 c 编译器、宏 西南大学 电子信息工程学院 2013 届本科毕业论文 14 汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案。如果你 使用 c 语言编程,那么 keil 几乎就是你的不二之选。keil c51 生成目标代码的效率非 常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高 级语言的优势。 proteus 软件是 lab center electronics 公司的一款电路设计与仿真软件,它包括 isis,ares 等模块,它能仿真大量的单片机芯片,比如 mcs-51 系列,pic 系列等等, 以及单片机外围电路10。通过 proteus 软件的使用我们能很容易获得一个强大,方便的 单片机实验系统。同时 proteus 兼有 pcb 板绘制的功能。并且 proteus 与 keil 的结合使 用能很方便的完成单片机的调试工作。作为目前市场上最流行的单片机仿真软件,它 的好处是资源丰富,在网上能获得最多的技术支持与帮助。 本设计即是采用 keil 作为集成开发环境,以 proteus 作为仿真原理图、pcb 设计工 具。 西南大学 电子信息工程学院 2013 届本科毕业论文 15 第第 3 章章 硬件设计硬件设计 3.1 总体设计总体设计 本设计包含了硬件设计和软件设计两部分,两者紧密结合,不可分离。硬件设计 是这个系统运行的基础,没有硬件一切都无从谈起。软件设计是系统正常运转的核心, 在硬件的基础上软件控制着系统的运作,实现系统的功能。随着技术的发展,硬件电 路的集成度越来越高,各种功能强大的芯片降低了硬件设计的复杂程度。为是硬件电 路设计更加合理,应注意以下几个方面: (1)尽量使用集成度更高功能更强的芯片,以简化电路。功能更强大的芯片能只 占用较少的端口资源就完成同样的甚至是跟多的功能。本设计中除了主控制芯片以外, 显示模块采用了一块高度集成的 12864 液晶,在兼顾显示界面的友好美观的情况下极 大程度的简化了硬件电路的设计工作,而且节约了单片机的 i/o 端口。 (2)留有一定设计余地。在硬件设计是,往往不是一次成型的。考虑到以后修改 扩展的方便。要留有一定的余地,以避免为了一点小小的修改而全面返工。本次设计 采用的硬件电路均在一块开发板上,硬件电路已经经过生产厂商的测试,比较可靠, 可以放心的使用,将更多经历投入到软件的设计过程中去。 (3)程序空间。应该选择内部程序空间足够大的单片机。所以你需要估计自己设 计程序的复杂程度,选择相匹配的单片机。本设计所采用 stc89c52rc 单片机拥有 8k 的程序空间,基本上能够满足电子抢答器的设计所需的空间大小。 (4)ram 空间,单片机内部的 ram 空间不多。如果片内空间不够就需要增加 片外 ram,设计时需要预留 i/o 接口。在本设计中,系统的功能简单,已有的单片机 完全可以满足需要,无需考虑这个问题。 (5)i/o 端口:在设计的初期就要对各个 i/o 口资源合理分配,可以预留若干备 用,也许在后期的调试过程中就会派上用场。在本设计中使用的开发板上硬件电路已 经固定,i/o 端口的分配也很合理,无需再重新分配 i/o 端口。 本次设计的总体硬件电路原理图如图 3-1 所示。 西南大学 电子信息工程学院 2013 届本科毕业论文 16 xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p1.0/t2 1 p1.1/t2ex 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 p2.7/a15 28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/a11 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 u1 at89c52 c1 33p c2 33p x1 crystal c3 10u reset r9 1k q1 2n3702 buz1 buzzer k1k2k3k4 k5k6k7k8 +-startreset1 gnd 1 vcc 2 v0 3 rs 4 r/w 5 e 6 psb 15 ret 16 nc1 17 nc2 18 led- 19 led+ 20 d0 7 d1 8 d2 9 d3 10 d4 11 d5 12 d6 13 d7 14 2 3 4 5 6 7 8 9 1 rp1 respack-8 rv1 10k r1 10k 图 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 为蜂鸣器,作为系统中的响铃提示功能。 3.2 时钟频率电路的设计时钟频率电路的设计 单片机与其他微机一样,它的各种操作都是按着节拍有序的工作的。89c51 内部有 一个高增益反响放大器,用于构成振荡器。反相放大器的输入端为 xtal1,输出端为 西南大学 电子信息工程学院 2013 届本科毕业论文 17 xtal2,两断跨接石英晶体及两个电容就可以构成稳点的自己振荡器。时钟电路如图 2-2 所示。 c1 30p c2 30p x1 图 3-2 外部震荡源电路 fig. 3-2 external oscillators circuit c1 和 c2 通常取 30pf 左右,可以稳定频率并对震荡频率有微调作用11。震荡脉冲 频率范围为 fosc=024mhz,我们所用的震荡频率为 12mhz。 3.3 键盘扫描电路的设计键盘扫描电路的设计 键盘是单片机应用中必不可少的硬件之一,由于其设计方法多种多样,所以在应 用系统设计时,应根据整个系统的硬件结构、软件设计等信息综合考虑,设计出稳定 可靠、结构紧凑、成本低廉、简单易用、性能优良的人机键盘界面12。 键盘是进行人机交互的主要设备。在单片机应用中主要是独立键盘和矩阵键盘。 其中独立键盘结构简单,程序设计也较为简单,一般用于对硬件电路要求不高的简单 电路中;矩阵键盘在硬件结构上较为复杂,程序算法上也比独立键盘复杂得多,但是 矩阵键盘更加能够节省端口资源,适合在按键较多的电路中使用。在本设计中,为了 节省端口资源,采用矩阵键盘。按键电路如图 3-3 所示。 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 k1k2k3k4 k5k6k7k8 +-startreset1 图 3-3 按键电路 fig. 3-3 key circuit 西南大学 电子信息工程学院 2013 届本科毕业论文 18 在这个 4*3 的矩阵键盘中,上两行 8 个按键是 8 为选手的抢答按键,最下面一行是 主持人控制的加减分按键和开始、复位按键。这个矩阵键盘接在单片机的 p3 端口上, p3.0 到 p3.2 接行线,p3.4 到 p3.7 接列线,在必要的时候可以再加一行按键,行线接 p3.3 扩展为 4*4 的矩阵键盘。 在按键的过程中会出现抖动现象,这种现象会造成按下按键判定不准确,要消除这 种影响就需要在扫描程序中采用消抖动处理13。通常采用的方法是,延时重复扫描的 办法,在检测到按键按下之后延时一段时间再次检测按键电平是否保持原状态,进行 多次扫描后如果键盘的电平保持不变则判定按键被按下,否则判定为无效。 3.4 复位电路的设计复位电路的设计 使 cpu 回到初始状态,从 0000h 地址开始执行程序的过程脚系统复位,系统的复 位可分为硬件复位和软件复位14。硬件复位必须通过 cpu 外部的硬件电路给 cpu 的 reset 端加上足够时间的高电位才能实现。上电复位,人工按键复位和看门狗复位均 为硬件复位。硬件复位后,各个寄存器状态呗初始化,对片内通用寄存器的内容没有 影响。软件复位就是用一系列指令来模拟硬件复位功能。软件复位中对中断标志的清 除工作常被遗忘,但清除中断标志非常重要。在本设计中的主持人控制的复位按键只 是使程序结束当前的抢答过程进入到下一轮的抢答环节,并不是真正意义上的对整个 单片机系统进行复位。对整个系统复位后,所有选手的分数也将会清零。 复位电路如图 2-4 所示。 图 3-4 复位电路 fig. 3-4 reset circuit 复位电路主要由电解电容 c3、电阻 r1、按键 s1 组成。由于单片机是高电平复位, 所以当复位键按下时候,单片机的 9 脚 reset 管脚处于高电平,此时单片机处于复位 西南大学 电子信息工程学院 2013 届本科毕业论文 19 状态。当上电后,由于电容的缓慢放电,单片机的 9 脚电压逐步由高向低转化,经过 一段时间后,单片机的 9 脚处于稳定的低电平状态,此时单片机上电复位完毕,系统 程序从 0000h 开始执行。 需要强调的是,在本设计中的主持人复位,并没有使系统回到 0000h 开始执行, 只是回到抢答的开始阶段开始执行程序,不属于以上所述的复位的范畴。如果需要整 个系统重新启动进行工作,则可以按下 reset 键进行硬件复位。 3.5 发声电路的设计发声电路的设计 蜂鸣器是众多电子产品中常用的发声器件,本设计中也使用蜂鸣器作为发声装置, 本设计中的发声电路如图 2-5 所示。 图 3-5 发声电路 fig. 3-5 sounding circuit 本设计中的发声装置一端接在单片机的 p2.3 脚,当 p2.3 脚为低电平是蜂鸣器发声, 当 p2.3 为高电平时蜂鸣器静音。单片机内部通过编程控制 i/o 口的高低电平就能控制 蜂鸣器的响铃时常和频率。 3.6 综合综合 pcb 板的设计板的设计 印制电路板(pcb)是各种电子产品中电路元器件的载体,pcb 提供了电路元件 和器件之间的电气连接,pcb 设计的好坏对产品性能有很大影响15。因此,在进行 pcb 设计时。必须遵守 pcb 设计的一般性原则,并应符合抗干扰设计的要求。为了设 西南大学 电子信息工程学院 2013 届本科毕业论文 20 计出优质低廉的 pcb,应遵循一些原则。 3.6.1 布局的原则布局的原则 1、要考虑 pcb 尺寸大小。pcb 尺寸过大时,印制线就条长,同时阻抗增加,抗 噪声能力也会下降,成本也增加;过小,则散热不好,而且邻近线条易受干扰。 2、确定特殊元件的位置。在确定特殊元件的位置时要遵守以下原则: a) 缩短高频元器件间的连线,以减少它们的分布参数和相互的电磁干扰。容易受 干扰的元器件不能太近,输入和输出元件要尽量远离。 b) 某些元器件或导线之间可能有比较高的电位差,应该增加它们之间的距离,以 避免放电引发意外短路。 c) 较重的元器件应该用支架固定,再焊接。那些笨重、发热量多的元器件,不宜 装在印制板上,应装在机箱底板上,热敏元件应远离发热元件。 d) 应留出印制板定位孔及固定支架所占用的位置。 3、根据电路的功能模块,对全部元器件进行布局时,要符合以下原则: a) 按照电路的流程安排电路中各个功能单元的位置,使布局放便信号流通,并使 信号尽量保持一致的方向。 b) 以每个功能电路的核心元件为中心,围绕它来进行布局。元器件应均匀、整齐、 紧凑地排列在 pcb 上。尽量减少各元器件之间的引线和缩短连接。 c) 一般应当使元器件平行排列。这样,既美观有容易装焊,易于批量生产。 3.6.2 布线布线 1、i/o 口的导线应尽量避免相邻平行,最好加线间地线,以避免发生反馈藕合。 2、导线的最小宽度主要由导线与绝缘基扳间的粘附强度和流过它们的电流大小决 定。 在条件允许的情况下尽量使用宽线。尤其是电源线和地线。导线间的最小距离主 要由最坏情况下的线间绝缘电阻和击穿电压决定。工艺允许的条件下,使间距尽量小。 3、印制导线拐弯处一般采用圆弧形,直角或夹角在高频电路中会影响电气性能。 还应尽量不使用大面积铜箔。长时间受热时,易发生铜箔膨胀和脱落现象。必须用大 面积铜箔时,最好用栅格状。这样有利于排除铜箔与基板间粘合剂受热产生的挥发性 气体。 西南大学 电子信息工程学院 2013 届本科毕业论文 21 3.6.3 焊盘焊盘 焊盘尺寸、焊盘的内孔尺寸必须从元件引线直径和公差尺寸以及镀锡层厚度、孔 径公差、孔金属化电镀层厚度等方面考虑,一般以金属引脚直径加上 0.2mm 作为焊盘 的内孔直径。而焊盘外径应该为焊盘孔径加 1.2mm,最小应该为焊盘孔径加 1.0mm。 当焊盘直径为 1.5mm 时,为了增加焊盘的抗剥离强度,可采用方形焊盘。 设计焊盘时的注意下列事项: 1、焊盘孔边缘到电路板边缘要大于 1mm,这样可以防止加工时导致焊盘缺损。 2、焊盘补泪滴,当与焊盘连接的铜膜线较细时,要将焊盘与铜膜线之间的连接设 计成泪滴状,这样可以使焊盘不易被剥离,而铜膜线与焊盘之间的连线不易断开。 3、相邻的焊盘尽量不要有锐角。 根据上述要求,我们设计 pcb。我们将各个模块组合起来之后得到综合电路原理 图(如图 3-1) 。我们将综合原理图输入 proteus 中,就可以利用 proteus 的 pcb 设计工 具 aers 自动生成 pcb 图。由 proteus 生成 pcb 图的主要有以下步骤: (1) 绘制原理图。这是电路板设计的先期工作,主要是完成原理图的绘制,包括生 成网络表。当然,也可直接进入 pcb 设计,不绘制原理图。原来用于仿真的原理图需 将信号源及测量仪表的接口连上适当的连接器。 (2) 规划电路板。在绘制印制电路板之前,要对电路板有一个大体的规划,比如电 路板采用多大的物理尺寸,采用几层电路板,各元件采用何种封装形式及其安装位置 等。这是确定电路板设计的框架,都可以从菜单栏 system 里进行设置。 (3) 设置参数。设置参数主要是设置元件的布置参数、层参数、布线参数等。 (4) 装入网络表及元件封装。网表是原理图设计系统与印制电路板设置系统的接口, 只有将网络表装入之后,才可能完成对电路板的自动布线。元件的封装是元件的外形, 对每个元件必须有相应的外形封装,才能保证电路板设计的顺利进行。本设计中的按 键,12864 液晶没有封装,需自行封装。 (5) 元件布局。元件布局可以采用自动布局和手工布局。一般自动布局后进行调整。 (6) 布线。一般先进行自动布线,然后手工布线进行调整。 (7) 文件保存及输出。完成电路板的布线后,保存完成的电路线路图文件。按照需 西南大学 电子信息工程学院 2013 届本科毕业论文 22 求可以打印成纸质文档。 最终本设计生成的 pcb 图如图 3-6 所示。 图 3-6 pcb 设计图 fig. 3-6 pcb design 西南大学 电子信息工程学院 2013 届本科毕业论文 23 第第 4 章章 软件设计软件设计 4.1 软件任务分析软件任务分析 一个单片机系统是有软硬件结合而成的,硬件电路的设计解决了系统的物理层面实 现,而要赋予这些硬件“灵魂”,就需要软件来实现。软件设计主要是针对主控芯片来 讲的,由软件设计来告诉主控芯片如何去控制外围电路完成某些特定的功能。 在本设计中,根据我们需要实现的功能来看,软件设计主要可以分为一下机个部分: 显示模块:在整个抢答过程中显示信息的功能贯穿始终,是最主要的模块。控 制显示屏显示正确的信息是显示模块软件的主要职责。 输入模块:本设计的输入模块是由 43 的矩阵键盘构成的,正确检测出从键盘 上输入的信息非常重要。输入模块软件就是要完成这一任务。 计时模块:在抢答器的工作过程中多出设计的倒计时功能,计时模块软件主要 完成准确计时的功能。并在需要的时候提供当前的时间供其他模块调用。 初始化模块:整个系统要稳定的运行,就需要自始至终都在我们的控制之下。 系统最初启动是所处的状态无法确定,就需要初始化程序对硬件系统进行设定, 使之符合系统运行的要求。本设计中初始化主要包括对单片机的初始化和对 lcd12864 液晶的初始化。 主函数模块:程序都是从主函数开始运行的,主函数要控制这个程序运行的流 程,将各个模块有机的结合起来,使系统稳定的工作。 软件系统的模块结构图如图 4-1 所示。 main (主主函函数数 模模块块) 显显示示 模模块块 输输入入 模模块块 计计时时模模 块块 初初始始化化 模模块块 图 4-1 软件系统模块结构图 西南大学 电子信息工程学院 2013 届本科毕业论文 24 fig. 4-1 module structure of software system 图 4-1 中列出了软件系统的主要模块的机构组成。除了以上主要模块外还包含一些 其他函数和模块,例如引脚定义、延时函数、加减分模块等。 4.2 主要模块的流程图及分析主要模块的流程图及分析 本设计中根据我们的设计要求和抢答器系统的工作流程,可以得到系统的程序总 流程图,如图 4-2 所示。 初始化 开始倒计时 并按键扫描 有无选手犯规key=0 显示当前倒 计时时间 屏幕显示犯 规选手编号 倒计数q=0 显示当前倒 计时时间 按键扫描 是否有选手抢答 在屏幕上显示抢 答成功选手编号 和当前分数 倒计时数 t #include #include uchar k1=0,k2=0; /start /倒计时时间 选手编号 cent 为中间变量 uchar score=0,0,0,0,0,0,0,0,0; / 记录 8 为选手的分数 从第 1-8 位计 1 号到 8 号选手 0 位不 计 uchar cishu; /标明某函数被调用的次数 /lcd12864 引脚定义 sbit beep=p23; /蜂鸣器 0 为响铃 sbit lcd12864_rs_port = p10; sbit lcd12864_rw_port = p11; sbit lcd12864_e_port = p25; sbit lcd12864_psb_port = p12; sbit lcd12864_reset = p14; #define lcd12864_da_port p0 / /延时 x 毫秒,输入要延时的毫秒数 / void delay(char x) uchar j; while(x-) for(j=0;j=8)|(ypos=4) ) return; /*x 位置超出显示范围退出*/ if(ypos=0) xy_pos = 0x80 + xpos; else if(ypos=1) xy_pos = 0x90 + xpos; /*计算转换地址*/ else if(ypos=2) xy_pos = 0x88 + xpos; else if(ypos=3) xy_pos = 0x98 + xpos; lcd12864_com_write(xy_pos); /*写地址*/ delay(1); lcd12864_data_write(dah); /*写高八位数据*/ delay(1); lcd12864_data_write(dal); /*写低八位数据*/ delay(1); / /图像写入 / void lcd12864_photo_write(uchar *img) uchar x,y,i,j; uint k=0; y=0x80; /*设置起始 绘图区的 y 地址坐标*/ x=0x80; /*设置起始 绘图区的 x 地址坐标*/ for(i=0;i=1 if(num=1 if(num=1 k2=0; delay(200); else if(k2=12) beep=1; k2=0; goto loop; 西南大学 电子信息工程学院 2013 届本科毕业论文 49 / /倒计时 / void service_int0() interrupt 1 using 3 th0 = 0x4c; tl0 = 0xf6; cent0+; if(cent0=20) cent0=0; time=time-1; biaoding=1; if(time=0) tr0=0; 西南大学 电子信息工程学院 2013 届本科毕业论文 50 附录附录 2:字模数据和类型定义头文件:字模数据和类型定义头文件 data.h #define uchar unsigned char #define uint unsigned int #define uchar unsigned char #define ulong unsigned long #define nop() _nop_() #define _nop() _nop_() uchar code hanzi= “选手 1: 选手 2: 选手 3: 选手 4: 选手 5: 选手 6: 选手 7: 选手 8: “; uchar code time_up=“距抢答结束还有: 秒“; uchar code error_num=“ 号选手抢答犯规“; uchar code success_num=“ 号选手抢答成功“; uchar code score_table=“0 1 2 3 4 5 6 7 8 9 1011121314151617181920212223242526272829303132333435363738394041424344454647484950“; uchar code defen=“他当前得分为: “; uchar code no_one=“无人抢答 “; uchar code pic0= 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文科专业学士毕业论文
- 毕业论文材料与方法
- 消防安全知识竞赛测试题库及答案
- 2025年正规技术指导聘用协议:技术指导与技能考核合同
- 地下排水管网防渗漏技术方案
- 2025年度转租协议:甲乙丙三方商业地产使用权变更合同
- 2024年执业中药师真题及答案
- 新闻学专业毕业论文网
- 老旧管网改造过程中的污染防治与应急预案
- 2024年建筑工程(分包作业施工劳务配合人员安全上岗培训)知识考试题库与答案
- 专题09 Module 5语法Grammar 特殊疑问句的用法-2021-2022学年七年级下册单元重难点易错题精练(外研版)
- 《工艺管理与改善》课件
- 《交通事故车辆及财物损失价格鉴证评估技术规范》
- 《广东省花生全程机械化栽培技术规程》
- 班组交接班制度模版(2篇)
- 品管圈PDCA改善案例-降低住院患者跌倒发生率
- 护理老年科小讲课
- 外科微创手术管理制度
- 心理危机干预的伦理问题探讨-洞察分析
- 智慧校园医疗系列
- 秀米推文培训课件
评论
0/150
提交评论