基于单片机八路抢答器设计内容摘要:
脚)为供电端口,分别接 +5V 电源的正负端。 P0~P3 为可编程通用 I/O 脚,其功能用途由软件定义,在本设计中, P0 端口( 32~39 脚)被定义为 N1 功能控制端口,分别与 N1的相应功能管脚相连接, 13 脚定义为 IR 输入端, 10 脚和 11 脚定义为 I2C 总线控制端口,分别连接 N1 的 SDAS( 18 脚)和 SCLS( 19 脚)端口, 12 脚、 27 脚及 28 脚定义为握手信号功能端口,连接主板 CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。 P0 口 : P0 口是一组 8 位漏极开路型双向 I/O 口, 也即地址 /数据总线复用口。 作为输出口用时,每位能吸收电流的方式驱动 8 个 TTL 逻辑门电路,对端口 P0 写“1” 时,可作为高阻抗输入端用。 在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。 P1 口 : P1 是一个带内部上拉电阻的 8 位双向 I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流) 4 个 TTL 逻辑门电路。 对端口写 “1” ,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。 作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流 (IIL)。 与 AT89C51 不同之处是, 和 还可分别作为定时 /计数器 2 的外部计数输入( )和输入( ),参见表 1。 Flash 编程和程序校验期间, P1 接收低 8 位地址。 P2 口 : P2 是一个带有内部上拉电阻的 8 位双向 I/O 口, P2 的输出缓冲级可驱动(吸收或输出电流) 4 个 TTL 逻辑 门电路。 对端口 P2 写 “1” ,通过内部的上拉安徽科 技学院毕业论文 6 电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流 (IIL)。 在访问外部程序存储器或 16 位 地址的外部数据存储器(例如执行 MOVX @DPTR 指令)时, P2 口送出 高 8 位地址数据。 在访问 8 位地址的外部数据存储器(如执行MOVX @RI 指令)时, P2 口输出 P2 锁存器的内容。 P3 口: P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口。 P3 口输出缓冲级可驱动(吸收或输出电流) 4 个 TTL 逻辑门电路。 对 P3 口写入“ 1”时,它们被内部上拉电阻拉高并可作为输入端口。 此时,被外部拉低的 P3 口将用上拉电阻输出电流( IIL)。 P3 口除了作为一般的 I/O 口线外,更重要的用途是它的第二 功能 P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号。 RST:复位输入。 当振荡器工作时, RST 引脚出现两个机器周期以上高电平将使单片机复位。 ALE/PROG:当访问外部程序存储器或数据存储器时, ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。 一般情况下, ALE 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。 要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。 PSEN:程序储存允许( PSEN)输出是外部程序存储器的读选 通信号,当 AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效,即输出两个脉冲。 在此期间,当访问外部数据存储器,将跳过两次 PSEN 信号。 EA/VPP:外部访问允许。 欲使 CPU 仅访问外部程序存储器(地址为 0000H—FFFFH), EA 端必须保持低电平(接地)。 需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。 如 EA 端为高电平(接 Vcc 端), CPU 则执行内部程序存储器中的指令。 XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。 XTAL2 :振荡器反相放大器的输出端。 安徽科 技学院毕业论文 7 AT89C52 引脚图 时钟电路与复位电路 单片机的时钟信号用来提供单片机内各种微操作的时间基准,时钟电路用于产生单片机工作所需要的时钟信号。 本设计采用的单片机提供各种微操作的时间基准,时钟信号以两种方式取得即:内部振荡和外部振荡,而本设计采用的是内部振荡方式。 复位电路的第一功能是上电复位。 一般电路正常工作需要供电电源为 5V177。 5%,即 ~。 RST 端的 外部复位电路有两种操作方式:上电自动复位和按键手动复位。 按键手动复位有电平方式和脉冲方式两种,本系统设计采用上电复位,上电复位是直接将RST 端通过电阻接高电平来实现单片机的复位。 复位与晶振电路 安徽科 技学院毕业论文 8 抢答电路 本文采用矩式键盘输入装置,如图所示: 抢答电路图 显示电路 在单片机应用系统中,对于结果都是要显现出来,本文采用的是环保的 4位 LED 显示器。 显示电路图如下所示: 显示电路 安徽科 技学院毕业论文 9 4 位数码管动态显示原理与实现: 端口接动态数码管的字形码笔段, 端口接动态数码管的数位选择端。 4 位数码管的 8 个显示笔划 a,b,c,d,e,f,g,dp 的同名端连在一起,另外为每个数码管的公共极 COM 增加位选端控制电路,位选端由独立的 I/O 线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选端控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。 就使各个数码管轮流受控显示,这就是动态显示原理。 在轮流 显示过程中,每位元数码管的点亮时间为 1~ 2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的 I/O 埠, 并 且功耗更低 控制电路 控制电路采用 4 个独立按键来控制抢答时间的加减,时间对抢答器功能的调节,如下 图所示。 控制电路 其原理简单明了,当开始按键按下时,对于的 I\O端口被置于低电平,中断程序实现对应的功能。 安徽科 技学院毕业论文 10 报警系统 因为抢答器的报警比较 简单,只起提示选手的抢答成功信息及时间警告等少许功能,本次报警电路核心器件采用一个蜂鸣器实现报警。 如下图所示: 报警电路 整个系统的工作原理 本系统采用单片机作为整个控制中心,分为四个系统:显示模块、控制模块、报警模块、抢答模块。 当主持人按下开始键时,向单片机 引脚输入一个低电平信号,表示整个电路开始工作,此时数码管前两位显示选手编号(无人抢答显示 00),后两位显示倒计时剩余时间。 若在 25 秒内仍然无人抢答,蜂鸣器在最后 5 秒发出连续报警,提示抢答时间快要结束;若在 30 秒内有人抢答,并且抢答成功, 则将选手编号显示在数码管前两位上,后两位显示抢答剩余时间,同时蜂鸣器发出一声报警,提示其他没有抢答的选手此题已被人抢答成功。 若在抢答过程中遇见特殊情况,主持人则可以通过时间加,时间减按键来进行时间调节。 若要开始新的一轮抢答,主持人按下复位键再按开始键即可。 安徽科 技学院毕业论文 11 第四章 软件设计 定时中断模块 因为 抢答器中需要显示倒计时来提示选手们抢答时间,在规定时间内作答,所以需要有定时中断模块,当时间小于 6 秒时,抢答器需要提供警告,以及当抢答时间结束时,要关闭外部中断,表示抢答结束,此时再有键按下抢答器也不会做出反应。 流程图如 下图所示。 抢答器定时器中断流程图 外部中断模块 抢答器主要外部中断来自于。基于单片机八路抢答器设计
相关推荐
和 是否不为 1 来触发东西及南北强制通行模式,以弥补外部中断的不足,实现更多的功能。 总程序见附录一。 正常工作模式子程序 正常模式下,交通灯每 45 秒改变一次通行方向,使得南北和东西交替通行,其流程图如图 所示。 其主要程序为: MOV R6,03H ;绿灯闪烁次数 MOV R0,00H ; MOV P2,R0 ;灯全灭 SETB ;南北绿灯亮 SETB ;东西红灯亮 ACALL
满足电流和电压的要求,发光二极管就可以发光了。 单片机系统中往往是数字信号,不是 5V 就是 0V,所以只要将二极管的正负极和电源对应上就可以了。 但还需在发光二极管和单片机连接时加一个限流电阻,这个电阻的作用在于限制通过二极管的电流,从而达到减少功耗或者满足端口对最大电流的限制。 本电路如图 5 所示。 图 5 信号灯控制 电路 可急车强通控制 可急车强通控制 是通过 , 和 12, 13
里,握好手中的教鞭,经营好自己的课堂仍然是一个永恒的话题。 所以今天我们将结合期中考试的情况,以“如何经营好自己的课堂”为主 题召开一个专题总结会。 我们将分别请 **老师结合期中考试的情况谈谈他们的感受。 我们的 **老师本学期都是身兼数职, **老师既要担任英语科组长一职,又要担任试验班的班主任,还要任教一个试验班一个普通班的不平衡英语教学, **老师既担任初一级的级长
抵消,经信号处理而输出电压信号。 AT89C51单片机简单概述 AT89C51单片机的结构 AT89C51单片机是美国Atmel公司生产低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(EPROM)和128 bytes的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存取技术生产,兼容标准MCS51指令系统
d display_2(year,mon,tian) {year_0=year%10。 year_1=year/10。 mon_0=mon%10。 mon_1=mon/10。 tian_0=tian%10。 tian_1=tian/10。 P2=0。 P0=tab[year_1]。 delay(200)。 P2=0x01。 P0=tab[year_0]。 delay(200)。 P2=0x02。
关定时器 T0 中断CLR TR0。 关闭定时器 T0LCALL DL1S。 调用 1 秒延时程序JB ,CLOSEDIS。 键按下时间小于 1 秒,关闭显示(省电) MOV R2,06H。 进入调时状态,赋闪烁定时初值 SETB ET1。 允许 T1 中断SETB TR1。 开启定时器 T1SET2: JNB ,SET1。 口为 0(键未释放),等待SETB 00H。 键释放,分调整闪烁标志置