毕业设计——基于单片机的数字抢答器设计内容摘要:

编码表示的数值。 七段数码管的段排列和内部结构如图所示七段数码管的段排列和内部部结构 应根据实际情况决定究竟采用共阳还是共阴方式,其基本原则是:若单片机口线直接驱动数码管各段,最好采用共阳极数码管,因为 8051 系列单片机口线输出高电平时,输出的电流很小,数码管不会太亮。 若数码管通过驱动芯片与单片机相连,就要看驱动芯片对数码管极性的要求了 点亮显示器分为静态和动态显示两种方法。 所谓静 态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或是截止。 例如,其段数码管的 a、 b、 c、 d、 e、 f、导通, g 截止,则显示 有一个 8 位输出口控制,所占硬件较多,一般用于显示位数较少(很少)的场合。 当位数较多时,用静态显示所需的 I/O 过多,一般采用动态显示方法。 所谓动态显示,就是逐位地轮流点亮各位显示器(扫描),对于每一位显示器而言,每个一段时间点亮一次。 显示器的点亮既与点亮时的导通电流有关,也与点亮时间和间隔时间比例有关。 调整电流和时间参数,可是实现亮度较高、较为稳 定的显示,同时可减少工作电流。 三极管中的 COM 是选通位,对于共阳极数码管,当 a、 b、 c、 d、 e、 f、g、 h 端接低电平时, COM 位高电平,数码管各段全部点亮。 例如,想让数码管显示 “ 1” ,就必须使数码管的 b、 c 段点亮,其它段熄灭;所以使 b、 c 段为低电平,其它各引脚均为高电平。 在设计电路时,可将这几位分别接到单片机的引脚上,还要加上限流电阻,这样就可由程序控制数码管的工作情况了。 但是如果用一个端口驱动一个数码管,四位数码管就需要四个空闲端口,而在许多系统中并无四个端口可用。 此外,使用四个端口往往使得每一个数字都 需要独立驱动 (缓冲 )电路和排阻,这将大大增加系统的成本。 最常见的解决方案是采用多路复用显示。 这是指对于每一个显示只驱动 1/4时间。 只要在 20Hz50Hz 之间循环所有显示,由于人眼存在视觉残留,在这样的显示方式下,数码管看起来时同时点亮的。 在这次课程设计中根据实际需要采用了七段数码管共阳极和静态显示方式。 抢答器的实现方式有种多样,通过纯电子器件搭建电路实现,如优先编码器,锁存器, 555 定时器译码器等,纯电子器件实现没有软件参与,调试简单,但是它不易于扩展和修改,而且电路结构复杂,调试困难电子,电子器件管 脚很多,实际搭建起来费时费力,焊接很容易出错。 于是,我想到了用单片机实现。 单片机体积小价格低,应用方便,稳定可靠。 单片机将很多任务交给了软件编程去实现,大大简化了外围硬件电路,使外围电路的实现简单方便。 由于单片机本身不具有软件编译测试的功能,我们需要借助其他软件编译,将编译好的程序 “ 烧 ” 入单片机内。 在实际电路设计中,需要先通过仿真软件测试电路以及编译的程序,检查外围电路设计是否合理,软件编译是否正确,以及软件和硬件电路能否正常配合工作,能否准确的实现所设计的功能。 如果测试通过,电路仿真没有问题能完全实现 功能的话就可以实际的做板子的焊接工作了。 在老师的指导下我选择了常用的单片机仿真软件 以及 keil 进行仿真。 三 硬件电路设计 总体设计 根据抢答器的基本功能,可以设计出如下的单片机外围电路。 (详细电路图见附件 1)硬件电路设计主要由我的搭档汪姗完成,在这里只展示电路图。 单片机最小系统电路: 显示电路的设计: 抢答电路的设计: 报警电路的设计: 四 系统软件设计 抢答器流程图 流程图是使用图形表示算法的思路是一种极好的方法,不论采用何种程序设计方法,程序总体结构确定后,一般以程序流程图的形式对其进行描述。 总体框图中的各个子模块或各个子任务也应该结合具体的教学模型和算法画出较详细的程序流程图,供后面编写具体程序和阅读程序使用。 流程图是由一些图框和流程线组成的,其中图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。 流程图的基本结构为顺序结构,分支结构(又称选择结构),循环结构。 为便于识别,绘制流程图的习惯做法是: 方框表示:要执行的处理( Process) 平行四边型表示:代表资料输入( Input) 不规则图形代表资料输出( Output)或报表输出( Print) 菱形表示:决策或判断(例如: If...Then...Else) 我们组所设计的抢答器的程序采用的是 C 程序设计, C 语言的显著特点是用二进 制来编写程序 ,程序的各个部分除了必要的信息交流外彼此之间相互独立。 这种结构化方式可使程序层次清晰 , 便于使用、维护以及调试。 C 语言是以函数形式提供给用户的 ,这些函数可方便的调用 ,并具有多种循环、条件语句控制程序流向 ,从而使程序完全结构化。 虽然 C 语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。 抢答器主程序流程图如下: 中断程序 (1) 什么是中断 中断是指由于某种随机事件的发生,计算机暂停现行的程序的运行,转去执行另一个程序,以处理发生的事件,处理完毕后又自动返回原来的程 序继续运行。 有五种中断源:外部中断 0、外部中断 定时器中断 0、定时器中断 串行中断。 它们的描述如下图所示: 中断源符号 名称 终端引起的原因 中断矢量地址 INT0 外部中断 0 由 低电平或下降沿信号 0003H T0 定时器中断0 定时 /计数器 0 回零溢出 0013H INT1 外部中断 1 由 低电平或下降沿信号 000BH T1 定时器中断1 定时 /计数器 1 回零溢出 001BH TI/RI 串行中断 串行口接收或发送完帧数据引起的中断 0023H (2) 中断 所用到的寄存器 介绍定时器 /计数器中所介绍的寄存器: ① 、定时器 /计数器控制寄存器 TCON TCON 的作用是控制定时器的启动 `停止,标志定时器的溢出和中断情况; ② 、中断允许控制寄存器 IE 对中断源的开放或屏蔽是由中断寄存器 IE 控制的,地址为 0A8H,即可以按字节寻址,也可以按位寻址。 当单片机复位时, IE 被清零。 ③ 、串行控制寄存器 SCON 定时 /计数器的控制方法:在启动定时 /计数器工作之前 CPU 必须将一些命令(称为控制字)写入定时 /计数器中,这个过程称为定时 /计数的初始化。 (定时/计数器的初始化通过定时 /计数器的方式寄存器 TMOD 和控制寄存器 TCON 来完成。 ︱ ④ 定时 /计数器方式寄存器 TMOD GATE C/T M1 M0 GATE C/T M1 M0 定时器 1 定时器 0 M1 M0 工作方式 功能说明 0 0 方式 0 13 位计数器 0 1 方式 1 16 位计数器 1 0 方式 2 自动再装入 8 位计数器 1 1 方式 3 定时器 0:分成两个 8 位计数器;定时器 1:停止计数 ( 3)中断程序的编写的步骤: ① 、 根据要求设置 IE(中断允许寄存器)的对应位 EA( EA— 总中断允许位 EA=1 开放所有的中断; EA=0 禁止所有的中断),某个中断源还有相应的中断允许位 a、当 =1 时:允许相应中断源的中断; b、当 =0 时:禁止相应中断源的中断; ③ 、 INT0、 INT1 设定触发方式 IT0(外部中断触发方式控制位)当为 0 时:低电平触发 ;当为 1 时:下降沿触发; ④ 、返回值是 Void 中断函数名() interrupt() ( 4) 为什么采用中断控制方式 CPU 与外部设备的数据传送方式: ① 无条件传送方式 CPU 总认为外设处于准备好的状态,外设比较简单 ② 程序查询传送方式 外设有一个状态(状态存储在寄存器内) 缺点: CPU 工作效率低, CPU 处于等待的状态,为解决此缺点便出现了第三种传送方式 ③ 中断传送方式 中断是指由于某种随机事件的发生,计算机暂停现行的程序。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。