基于at89c51的八路抢答器设计内容摘要:
计水平的提高,往往只要改变或增加软件中的数据处理算法,就可以使系统功能提高很多,而系统的硬件不必做任何更换就使系统升级换代。 只要在硬件电路设计初期考虑到这 一点,就应该为系统将来升级留足够的 RAM 空间,哪怕多设计一个 RAM的插座,暂不插芯片也好。 (5) I/O 端口:在样机研制出来后进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是靠单纯的软件措施来解决的。 如有些新的信号需要采集,就必须增加输入检测端;有些物理量需要控制,就必须增加输出端。 如果在硬件电路设计就预留出一些 I/O端口,虽然当时空着没用,那么用的时候就派上用场了。 硬件 原理图 徐州工程学院毕业设计 (论文 ) 8 图 31 系统原理图 图 31 中 U1 为单片机 AT89C51, U2 为芯片 74HC30, U3 为芯片 74LS04。 K1~K8 分别为 8 路抢答按键,分别接到单片机的 ~ 中。 开始按键与结束按键分别接到单片机的 11 脚,由于单片机的 11 脚既有串行接口 RXD、 TXD 功能,又有 、 的 IO 端口功能,此处按键用到单片机 11 脚的 IO 端口功能。 抢答时间调整按键和回答时间调整按键分别接到单片机的 1 14 管脚,加一按键和减一按键分别接到单片机的1 16 管脚。 4 位七段 数码管段选 P0 口。 4 位七段数码管的 位选 接 P2 口低 3 位,蜂鸣器输出为 口。 时钟频率电路的设计 单片机必 须在时钟的 驱动下才能工作。 在单片机内部有一个时钟振荡电路 , 只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元 , 决定单片机的工作速度。 时钟电路如图 32 所示。 徐州工程学院毕业设计 (论文 ) 9 图 32 外部振荡源电路 一般选用石英晶体振荡器。 此电路在加电大约延迟 10ms 后振荡器起振 , 在 XTAL2 引脚产生幅度为 3V 左右的正弦波时钟信号 , 其振荡频率主要由石英晶振的频率确定。 电路中两个电容 C1, C2 的作用有两个 : 一是帮助振荡器起振 ; 二是对振荡器的频率进行微调。 C1, C2 的典型值为 20PF。 单片机在工作时 , 由内部振荡器产生或由外直 接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。 其 大小是时钟信号频率的倒数 , 常用 fosc 表示。 图中 时钟频率为 12MHz, 即 fosc=12MHz, 则时钟周期为 1/12181。 s。 复位电路的设计 单片机的第 9 脚 RST 为硬件复位端 , 只要将该端持续 4 个机器周期的高电平即可实现复位 , 复位后单片机的各状态都恢复到初始化状态,其电路图如图 33 所示 : 图 33 复位电路 徐州工程学院毕业设计 (论文 ) 10 图 33 中由按键 RESET1 以及电解电容 C电阻 R2 构成按键及上电复位电路。 由于单片机是高电平复位,所以当按键 RESET1 按下时 候,单片机的 9 脚 RESET 管脚处于高电平,此时单片机处于复位状态。 当上电后,由于电容的缓慢充电,单片机的 9 脚电压逐步由高向低转化,经过一段时间后,单片机的 9 脚处于稳定的低电平状态,此时单片机上电复位完毕,系统程序从 0000H 开始执行。 值得注意的是 , 在设计当中使用到了硬件复位和软件复位两种功能 , 由上面的硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值 , 而前面的功能介绍中提到了倒计时时间的记忆功能 , 该功能的实现的前提条件就是不能对单片机进行硬件复位 , 所以设定了软复位功能。 软复位实际上就是当程序执行完毕 之后 , 将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。 显示 电路的设计 显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。 在这里我们使用的是七段数码管显示 , 通常在显示上我们采用的方法一般包括两种 :一种是静态显示 , 一种是动态显示。 其中静态显示的特点是显示稳定不闪烁 , 程序编写简单 , 但占用端口资源多 ; 动态显示的特点是显示稳定性没静态好 , 程序编写复杂 , 但是相对静态显示而言占用端口资源少。 在本设计中根据实际情况采用的是动态显示方法。 通过查表法 , 将其在数码管上显示出来 , 其中 P0 口为字型码输入端 , P2 口低 3 位为字选段输入端。 在这里我们通过查表将字型码送给 7 段数码管显示的数字 , 4 位七段数码管显示电路如图 34 所示。 图 34 共阴极数码管 徐州工程学院毕业设计 (论文 ) 11 图 34 中数码管采用的是 4 位七段共阴数码管,其中 A~H 段分别接到单片机的 P0 口,由单片机输出的 P0 口数据来决定段码值,位选码 COM COM COM4 分别接到单片机的 、 、 ,由单片机来决定当前该显示的是哪一位。 在图中还有八个 1K 的电阻,连接在 P0 口上,用作 P0 口的上拉电阻,保证 P0 口没 有数据输出时候处于高电平状态。 键盘扫描 电路的设计 键盘是人与 单片机 打交道的主要设备。 关于键盘硬件电路的设计方法也可以在文献和书籍中找到,配合各种不同的硬件电路,这些书籍中一般也提供了相应的键盘扫描程序。 站在系统监控软件设计的立场上来看,仅仅完成键盘扫描,读取当前时刻的键盘状态是不够的,还有不少问题需要妥善解决,否则,人们在操作键盘就容易引起误操作和操作失控现象。 在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘。 它们各有自己的特点 , 其中独立键盘硬件电路简单 , 而且在程序设计上也不复杂 , 一般用在对 硬件电路要求不高的简单电路中 ; 矩阵键盘与独立键盘有很大区别 , 首先在硬件电路上它要比独立键盘复杂得多 , 而且在程序算法上比它要烦琐 , 但它在节省端口资源上有优势得多 , 因此它更适合于多按键电路。 其次就是消除在按键过程中产生 的 “ 毛刺” 现象。 这里采用最常用的方法 , 即延时重复扫描法 , 延时法的原理为 : 因为 “ 毛刺 ” 脉冲一般持续时间短 , 约为几 ms, 而我们按键的时间一般远远大于这个时间 ,所以当单片机检测到有按键动静后再延时一段时间 (这里我们取 10ms)后再判断此电平是否保持原状态 ,如果是则为有效 按键 , 否则无效。 在本文设 计中采用了独立键盘的方式,本设计中有 8 个抢答按键输入,一个开始按键、一个结束按键,此外还有抢答时间调整键、回答时间调整键,加一按键、 减一按键 各一个。 如图 35 所示。 徐州工程学院毕业设计 (论文 ) 12 图 35 抢答按键及调整按键 在图 35 中 8 个抢答按键分别接入单片机的 ~ 端口,单片机通过读取 ~的值来判断当前输入的是 8 个抢答按键中的哪一个。 抢答时间调整和回答时间调整接到单片机的 和 接口,加一及减一按键接到单片机的 和 接口。 徐州工程学院毕业设计 (论文 ) 13 图 36 开始、结束按键 在图 36 中,开始及结 束按键接到单片机的 11 脚,这里用到了单片机 11 脚复合功能中的 IO 端口功能,单片机通过读取 11 脚的 、 的 IO 端口值来判断当前是否处于抢答开始状态或抢答结束状态。 按键的触点在闭合和断开时均会产生抖动,这 时 触点的逻辑电平是不稳定的,如不妥善处理,将会引起按键命令 的错误执行或重复执行。 现在一般均用软件延时的方法来避开抖动阶段, 这一延时过程一般大于 5ms,例如 取 1020ms。 如果监控程序中的读键操作安排在主程序(后台程序)或键盘中断(外部中断)子程序中,则该延时子程序便可直接插入读 键过程中。 如果读键过程安排在定时中断子程序中,就可省去专门的延时子程序,利用两次定时中断的时间间隔来完成抖动处理。 K1~ K8八个按键的输入电平靠 74HC30输入与非门和 74LS04反向器组成的电路改变输入电平。 图 37 中电路就是由一个 74HC30 输入与非门和 74LS04 反向器组成的去抖电路。 图 37 去抖电路 发声 电路的设计 我 们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单 片 机某个口线的 “ 高 ” 电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音 ,若再利用延时程序控制 “ 高 ”“ 低 ” 电平的持续时间,就能改变输出频率,从而改变音调,使喇叭发出不同的声音。 徐州工程学院毕业设计 (论文 ) 14 本文设计如图 38 所示。 图中单片机的 14 脚输出具有复合功能,此处用到了单片机17 脚的 IO 端口功能,单片机通过内部定时器的操作实现交替变换的波形输出驱动扬声器发声。 图 38 发声电路 系统复位 电路的设计 使 CPU 进入初始状态,从 0000H 地址开始执行程序的过程叫系统复位。 从实现系统复位的方法来看,系统复位可分为硬件复位和软件复位。 硬件复位必须通过 CPU 外部的硬件电路给 CPU 的 RESET 端加上足够时间的高电位才能实现。 上电复位,人工按钮复位和硬件看门狗复位均为硬件复位。 硬件复位后,各专用寄存器的状态均被初始化,且对片内通用寄存器的内容没有影响。 但是,硬件复位还能自动清除中断激活标志,使中断系统能够正常工作,这样一个事实却容易为不少编码人员所忽视。 软件复位就是用一系列指令来模拟硬件复位功能,最后通过转移指令使程序从 0000H 地址开始执 行。 对各专用寄存器的复位操作是容易的,也没有必要完全模拟,可根据实际需要去主程序初始化过程中完成。 而对中断激活标志的清除工作常被遗忘,因为它没有明确的位地址可供编程。 有的编程人员用 020200( LJMP 0000H)作为软件陷阱,认为直接转向 0000H 地址就完成了软件复位,就是这类错误的典型代表。 软件复位是使用软件陷阱和软件看门狗后必须进行的工作,这时程序出错完全有可能发生在中断子程序中,中断激活标志已置位,它将阻止同级中断响应。 由于软件看 门 是高级中断,它将 阻止 说要中断响应,由此可见清除中断激活标志的重要性。 在所有的指令中,只有 RETI 指令能够清除中断激活标志。 出错处理程序 ERR 主要完成这一功能,其他的善后工作交由复位后的系统去完成。 程序 一般 先关中断,以便后续处理能顺利进行, 然 后用两个 RETI 指令代替两个 LJMP指令,从而清除了两级中断激活标志。 有 相应 软件 陷阱 捕捉来的程序可能没有全部激活两个标志,这也无妨。 徐州工程学院毕业设计 (论文 ) 15 有复位时系统的历史状况,可将复位分为“冷启动”和“热启动”。 “冷启动”时,系统的状态全部无效,进行彻底的初始化操作;而“热启动”时,对系统的当前状态进行修复和有选择的初始化。 系统初次上电投入运行时, 必须是“冷启动”,以后由抗干扰措施引起的复位操作一般均为“热启动”初次上电投入运行时,必须是“冷启动”,以后由抗干扰措施引起的复位操作一般均为“热启动”。 为了使系统能正确决定采用何种启动方式,常用上电标志来区分,如图 39 所示。 图 39 系统复位策略图 复位 关中断,设定堆栈 上电标志 冷启 自检 全面初始化 热启动恢复被破坏的信息部分初始化 建立上电标志 开始运转 徐州工程学院毕业设计 (论文 ) 16 4 软件设计 设计思想 由方案分析知,本设计涉及到的功能子程序 包括:查询程序、非法抢答处理程序、 INT0(调抢答时间)、 INT1(调回答时间)、倒计时程序、正常抢答处理程序 、犯规抢答程序、显示程序、发声程序、 T0 溢出中断 (响铃程序 )、 T1 溢出中断 (计。基于at89c51的八路抢答器设计
相关推荐
驶员因方向感不强、判断和操作失误而引起的事故 , 同时它将对提高汽 车智能化水平和最终实现汽车无人驾驶产生积极的意义。 第三节 目前国内外的研究现状 超声波是指频率在 20kHz~ 106kHz 的机械波 , 波速一般为 1500m/s, 波长为~ 10cm。 超声波的波长远大于分子尺寸 , 说明超声波本身不能直接对分子起作用 ,而是通过周围环境的物理作用影响分子 ,
24MHz。 (6) 三级程序存储器锁定。 (7) 128 8 位内部 RAM。 (8) 32 可编程 I/O 线。 (9) 两个 16 位定时器 /计数器。 (10) 5 个中断源。 (11) 可编程串行通道。 (12) 低功耗的闲置和掉电模式。 (13) 片内振荡器和时钟电路。 3. 管脚说明 VCC:供电电压。 GND:接地。 P0 口 : P0 口为一个 8 位漏极开路双向 I/O 口
+℃,完全能够满足精度要求。 这里我们采用 ADC0809 作为 A/D 转换器。 电路设计好后,调整变送器的输出,使 0℃~500℃ 的温度变化对应于 0~ V 的输出,则 A/D 转换对应的数字量为 00H~ FAH,即 0~ 250,则转换结果乘以 2 正好是温度值。 用这种方法一方面可以减少标度转换的工作量,另一方面还可以避免标度转换带来的计算误差。 ADC0809
、归零,如果要重新对秒计时则可以按秒表开始、复位;清零键可以对闹钟清零。 ( 2) AT89C51 单片机,通过编写程序对数码显示进行控制。 ( 3) 八个 7 段数码管显示时钟和秒表信号。 7 3 软件总体设计方案 主程序流程图 软件程序从开始执行,先通过初始化各个寄存器,经过扫描按键来决定是否设定参数来执行相应功能的程序,进而在数码管上显示。 如图 31: 图 31 主程序流程 图 开始
密码锁开锁机构示意图 当用户输入的密码正确而且是在规定的时间输入的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。 其实际电路如图 所示。 由 D R T10 组成驱动电路,其中 T10 可以选择普通的小功率三极管。 D5 作为开锁的提示 , 由 D C2 T11 组成。 其中 D C24 是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干扰。 在本次设计中
工具的使安康学院本科生毕业论文(设计) 29 用。 实验操作法 通过对前面整理知识的积累和软件的熟悉,能够架设出系统的 基本框架,然后进一步优化设计,完成软件的功能,在操作过程中发现问题。 技术概述 Android 平台及 java 语言 本系统是以 java 为编程语言,从接口到功能,灵活多变。 主要运用的事 Activity之间的相互跳转,然后利用 Intent 实现多个程序同时运行的效果。