电子万年历的设计与制作毕业设计论文

上传人:1777****777 文档编号:38755598 上传时间:2021-11-08 格式:DOC 页数:30 大小:933KB
返回 下载 相关 举报
电子万年历的设计与制作毕业设计论文_第1页
第1页 / 共30页
电子万年历的设计与制作毕业设计论文_第2页
第2页 / 共30页
电子万年历的设计与制作毕业设计论文_第3页
第3页 / 共30页
点击查看更多>>
资源描述
天津电子信息职业技术学院天津电子信息职业技术学院课课 程程 设设 计计课题名称课题名称 电子万年历的设计与制作电子万年历的设计与制作 班班 级级 通信通信 S11-1 班班 专专 业业 通信技术通信技术 所所 在在 系系 电子技术系电子技术系 2电子万年历的设计与制作电子万年历的设计与制作摘要摘要 单片机就是微控制器,是面向应用对象设计、突出控制功能的芯片。单片机接上晶振、复位电路和相应的接口电路,装载软件后就可以构成单片机应用系统。将它嵌入到形形色色的应用系统中,就构成了众多产品、设备的智能化核心。本设计就是应用单片机强大的控制功能制作而成的电子万年历关键词:单片机;时钟电路;动态扫描;关键词:单片机;时钟电路;动态扫描;目录目录3一、设计要求与方案论证一、设计要求与方案论证 .6 61.设计要求:.62.系统基本方案选择:.7(1)单片机芯片的选择方案和论证:.7(2) 显示模块选择方案和论证:.7(3) 显示器的结构.83.键盘模块的选择:.84.方案论证:.9(1)技术可行性:.9二、系统的硬件设计与实现二、系统的硬件设计与实现 .9 91. 电路设计框图:.92.系统硬件概述:.10(1)控制模块.10(2)结构.103.脚定义及功能.10(1)源及时钟引脚.10(2)控制引脚.10(3)I/O 口引脚 .113片外总线结构.114.要单元电路的设计:.11(1)控制模块的设计:.114(2)模块器件.12(3)电路模块的设计.14(4)电路原理及说明.15(5)数据的输出与输入(I/O).16(6) DS1302 的寄存器 .165. 显示模块的设计.17三、系统的软件设计三、系统的软件设计 .18181. 程序流程框图:.182. 子程序的设计:.21(1) 键盘子程序的实现:.21(2).读写 DS1302 子程序.213.系统硬件电路设计:.234系统硬件 PROTEUS 仿真原理图:.245主要单元电路的设计:.24(1)显示 4.1 显示部分设计 .24(2)键盘接口:.25(3)按键开关去抖动问题:.25(4)查询式按键及其接口:.26(5)矩阵式键盘及其接口.26(6)键盘扫描控制方式:.26四、测试结果分析与结果四、测试结果分析与结果 .272751. 测试结果分析.27(1)在测试中遇到 LEDLCD16824 不显示.27(2)按键调整时,不是按单位递增和递减.28五、系统评价五、系统评价 .2828六、系统程序清单六、系统程序清单 .2828七、谢辞七、谢辞 .3131八、参考文献八、参考文献 .3131绪论绪论随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。二十一世纪的今天,最具代表性的计时产品就是电子时钟,它是近代世界钟表业界6的第三次革命。第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。第三次革命就是单片机数码计时技术的应用,使计时产品的走时日差从分级缩小到 1/600 万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期的显示功能,它更符合消费者的生活需求!因此,电子时钟的出现带来了钟表计时业界跨跃性的进步本设计采用的是 AT89S52 单片机,该单片机采用的 MCU51 内核,因此具有很好的兼容性,内部带有 8KB 的 ROM,能够存储大量的程序,最突出特点是具有 ISP 在系统烧写功能,使得烧写程序更加方便。计时芯片采用 DALLAS 公司的涓细充电时钟芯片 DS1302,该芯片通过简单的串行通信与单片机进行通信,时钟/日历电路能够实时提供年、月、日、时分、秒信息,采用双电源供电,当外部电源掉电时能够利用后备电池准确计时。通过此次设计能够更加牢固的掌握单片机的应用技术,增强动手能力、硬件设计能力以及软件设计能力。一、设计要求与方案论证一、设计要求与方案论证1.设计要求:设计要求:本电子时钟能动态显示分钟、秒。2.系统基本方案选择系统基本方案选择:(1)单片机芯片的选择方案和论证)单片机芯片的选择方案和论证:方案一: 采用 89C51 芯片作为硬件核心,采用 Flash ROM,内部具有 4KB ROM 存储空间,能于3V 的超低压工作,而且与 MCS-51 系列单片机完全兼容,但是运用于电路设计中时由于不具备 ISP 在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二: 采用 AT89S52,片内 ROM 全都采用 Flash ROM;能以 3V 的超底压工作;同时也与 MCS-51 系列单片机完全该芯片内部存储器为 8KB ROM 存储空间,同样具有 89C51 的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。所以选择采用 AT89S52 作为主控制系统.方案三:7DS1302 是美国 DALLAS 公司推出的一种高性能、低功耗的实时时钟芯片,附加 31 字节静态 RAM,采用 SPI 三线接口与 CPU 进行通信,并可采用突发方式一次传送多个字节的时钟信号和 RAM 数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与 31天时可以自动调整,且具有闰年补偿功能。工作电压宽达 2.55.5V。采用双电源供电(主电源和备用电源) ,可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。利用单片机强大的控制功能就可实现实时计时的功能,而且消耗的系统资源少,程序简单。(2) 显示模块选择方案和论证:显示模块选择方案和论证:方案一: 采用 LED 液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用 LED 液晶显示屏.方案二: 采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示.方案三:采用 LED 数码管动态扫描,LED 数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。 LED 显示数码管常见的 LED 显示具有清晰明亮的特点。是显示接口也是绝大多数单片机应用系统必备的部件之一。发光二极管组成的显示器是单片机应用产品中最常用的廉价输出设备。它由若干个发光二极管按一定的规律排列而成。当某一个发光二极管导通时,相应的一个点或一笔画被点亮,控制不同组合的二极管导通,就能显出各种字符。所以采用了 LED 数码管作为显示。(3) 显示器的结构显示器的结构常用的 7 段显示器的结构如图所示,发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的成为共阴显示器。1 位显示器由 8 个发光二极管组成,其中 7 个发光二极管 ag 控制 7 个笔画的亮或暗,另一个控制一个小数点的亮和暗,这种笔画的七段显示器能显示的字符较少,字符的形状有些失真,但失控简单,使用方便。83.键盘模块的选择键盘模块的选择: :在对日期和时间进行切换,对日期和时间进行调节校准过程 中,系统需要产生激励电流,因此需要用按键。 方案一:使用独立式键盘。独立式键盘是指直接用 I/O 口线构成的单个按键电路。独立式按键电路配置灵活,软件结构简单。 方案二:使用矩阵式键盘。矩阵式键盘是由行线和列线组成,按键位于行、列的交叉点上,行线、列线分别连接到按键开关的两端。其特点是简单且不增加成本,这种键盘适合按键数量较多的场合。 根据以上的论述,因本系统需要的按键不多,日期加 1 键,月数加 1 键,年数加 1键,分数加 1 键,时数加 1 键,时间/日期切换键,要求简单。所以采用方案一独立式键盘。4.方案论证方案论证: (1)技术可行性)技术可行性:随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。集成技术的最新发展之一是将 CPU 和外围芯片,如程序存储器、数据存储器、并行 I/O 口、串行 I/O 口、定时/计数器、中断控制器及其他控制部件集成在一个芯片之中,制成单片计算机(Single-Chip Microcomputer) 。而近年来推出的一些高档单片机还包括有许多特殊功能单元,如 A/D、D/A 转换器、调制解调器、通信控制器、锁相环、DMA、浮点运算单元、PWM 控制输出单元、PWM 输出时的死区可编程控制功能等。因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如工业流水线控制系统、作为家用电器的主控制器、分布式控制系统的终端节点或作为其主控制节点起中继的作9用、数据采集系统、自动测试系统等。单片机的出现,并在各技术领域中得到如此迅猛的发展,与单片机构成计算机应用系统所形成的下述特点有关:单片机构成的应用系统有较大的可靠性。这些可靠性的获得除了依靠单片机芯片本身的高可靠性以及应用有最少的联接外,还可以方便地采用软、硬件技术。系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统,应用系统有较高的软、硬件利用系数。由于构成的应用系统是一个计算机系统,相当多的测、控功能由软件实现,故具有柔性特征,不须改变硬件系统就能适当地改变系统功能。有优异的性能、价格比。综上各方案所述,对此次作品的方案选定: 采用 C52 作为主控制系统; LED 数码管动态扫描作为显示。二、系统的硬件设计与实现二、系统的硬件设计与实现1. 电路设计框图:电路设计框图: 2.系统硬件概述:系统硬件概述:(1)控制模块控制模块AT89S52 单片机为 40 引脚双列直插芯片,有四个 I/O 口 P0,P1,P2,P3, MCS-51 单片机共有 4 个 8 位的 I/O 口(P0、P1、P2、P3),每一条 I/O 线都能独立地作输出或输入。如图所示。(2)结构结构按功能分为 8 部分:CUP,程序存储器,数据存储器,时钟电路,串行口,并行 I/OAT89C52主控制模 块时钟模块LED 数码管动态扫描显示模块键盘模块10口,中断系统,定时/计数器。3.脚定义及功能脚定义及功能(1)源及时钟引脚源及时钟引脚Vcc:接+5V 电源Vss:接地XTAL1 和 XTAL2:时钟引脚,外接晶体引线端。当使用芯片内部时钟时,此两引脚端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。(2)控制引脚)控制引脚RST/Vpq:RST 是复位信号输入端,Vpd 是备用电源输入端。当 RST 输入端保持 2 个机器周期以上高电平时,单片机完成复位初始化操作。当主电源 Vcc 发生故障而突然下降到一定低电压或断电时,第 2 功能 Vpd 将为片内RAM 提供电源以保护片内 RAM 中的信息不丢失。ALE/PROG:地址锁存允许信号输入端。在存取外存储器时,用于锁存低 8 位地址信号。当单片机正常工作后,ALE 端就周期性地以时钟振荡频率的 1/6 固定频率向外输出正脉冲信号。此引脚的第 2 功能 PROG 是对片内带有 4K 字节 EPROM 的 8751 固外程序时,作为编程脉冲输入端。PSEN:程序存储器允许输出端。当片外程序存储器的读选通信号,低电平有效。CPU从外部程序存储器取指令时,PSEN 信号会自动产生负脉冲,作为外部程序存储器的选通信号。EA/Vpp:程序存储器地址允许输入端。当 EA 为高电平时,CPU 执行片内程序存储器指令,但当 PC 中的值超过 0FFFH 时,将自动转向执行片外程序存储器指令;当 EA 为低电平时,CPU 只执行片外程序存储器指令。(3)I/O 口引脚口引脚P0.0P0.7:P0 口 8 位双向 I/O 口;P1.0P1.7:P1 口 8 位准双向 I/O 口;P2.0P2.7:P2 口 8 位准双向 I/O 口;P3.0P3.7:P3 口 8 位准双向 I/O 口。3片外总线结构片外总线结构分为三部分:数据总线 Data Bus(DB),地址总线 Address Bus (AB),控制总线 Control Bus(CB).本电路是由 AT89C52 单片机为控制核心,具有在线编程功能,低功耗,能在 3V 超低压工作;时钟电路由 DS1302 提供,它是一种高性能、低功耗、带 RAM 的实时时钟电路,它11可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与 CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据。DS1302 内部有一个 31*8 的用于临时性存放数据的 RAM 寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;温度的采集由 DS18B20 构成;显示部份由 4 个数码管,74ls138、74ls47 译码器构成。使用动态扫描显示方式对数字的显示。4. 单元电路的设计单元电路的设计:(1)控制模块的设计:)控制模块的设计: 单片机原理单片机原理单片机就是简化的微型计算机。CPU 中本身自带存储器 ROM 和 RAM。CPU 片内也有总线。IC(集成电路)技术是将电路通过特殊工艺做在一块硅基片上封装成芯片,比如CPU,片外存储器等等。 将单片机 CPU(比如 51 系列),晶振,存储器,地址锁存器,逻辑门,七段译码器(显示器),按钮(类似键盘),扩展芯片,接口等通过 PCB 工艺(比如 SMT 贴片,或者插装)做在环氧树脂板上。这样才是一个完整的单片(做在一块 PCB 板上)的微型计算机。 AT89S52 单片机为 40 引脚双列直插芯片,有四个 I/O 口 P0,P1,P2,P3, MCS-51 单片机共有 4 个 8 位的 I/O 口(P0、P1、P2、P3) ,每一条 I/O 线都能独立地作输出或输入。单片机的最小系统如下图所示,18 引脚和 19 引脚接时钟电路,XTAL1 接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2 接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第 9 引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20 引脚为接地端,40 引脚为电源端. 如图-1 所示12图-1 主控制系统(1)一个 8 位的微处理器(CPU)(2)片内数据存储器 RAM(128B/256B)(3)片内程序存储器 ROM/EPROM(4kB/8kB)(4)4 个 8 位并行 I/O 拉口 P0-P3,每个口既可以作输入也可以作输出(5)2 个 16 位定时器/计数器(6)5 个中断源的中断控制系统(7)1 个全双工的串行 I/O 接口(8)片内时钟振荡器(2)模块器件)模块器件 74LS16474LS164它是个串入并出的 8 位移位寄存器,它常用于单片机系统中,下面结束一下这个元件的基本知识:74LS164 引脚图1374LS164_内部功能图74LS164_逻辑符合表串行输入带锁存 时钟输入,串行输入带缓冲 异步清除 最高时钟频率可高达 36Mhz 功耗:10mW/bit 74 系列工作温度: 0C to 70C Vcc 最高电压:7V 输入最高电压:7V 高电平:0.4mA 低电平:8mA(3)电路模块的设计)电路模块的设计图-2 示出 DS1302 的引脚排列,其中 Vcc1 为后备电源,Vcc2 为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302 由 Vcc1 或 Vcc2 两者中的较大者供电。当 Vcc2 大于 Vcc1+0.2V 时,Vcc2 给 DS1302 供电。当 Vcc2 小于 Vcc1 时,DS1302由 Vcc1 供电。X1 和 X2 是振荡源,外接 32.KHz 晶振。RST 是复位/片选线,通过把 RST 输入驱动置高电平来启动所有的数据传送。RST 输入有两种功能:首先,RST 接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST 提供终止单字节或多字节数据的传送手段。当 RST 为高电平时,所有的数据传送被初始化,允许对 DS1302 进行操作。如果在传送过程中 RSTS 置为低电平,则会终止此次数据传送,I/O 引脚变为高阻态。上电动行时,在 Vcc 大于等于 2.5V 之前,RST 必须保持低电平。中有在 SCLK 为低电平时,才能将 RST置为高电平,I/O 为串行数据输入端(双向) 。SCLK 始终是输入端。14 图-2 DS1302 的引脚图(4)电路原理及说明)电路原理及说明时钟芯片时钟芯片 DS1302DS1302 的工作原理:的工作原理:DS1302 在每次进行读、写程序前都必须初始化,先把 SCLK 端置 “0” ,接着把 RST端置“1” ,最后才给予 SCLK 脉冲;读/写时序如下图 4 所示。图 5 为 DS1302 的控制字,此控制字的位 7 必须置 1,若为 0 则不能把对 DS1302 进行读写数据。对于位 6,若对程序进行读/写时 RAM=1,对时间进行读/写时,CK=0。位 1 至位 5 指操作单元的地址。位 0是读/写操作位,进行读操作时,该位为 1;该位为 0 则表示进行的是写操作。控制字节总是从最低位开始输入/输出的。表 6 为 DS1302 的日历、时间寄存器内容:“CH”是时钟暂停标志位,当该位为 1 时,时钟振荡器停止,DS1302 处于低功耗状态;当该位为 0时,时钟开始运行。 “WP”是写保护位,在任何的对时钟和 RAM 的写操作之前,WP 必须为 0。当“WP”为 1 时,写保护位防止对任一寄存器的写操作。 DS1302DS1302 的控制字节:的控制字节:15DS1302 的控制字如表-1 所示。控制字节的高有效位(位 7)必须是逻辑 1,如果它为 0,则不能把数据写入 DS1302 中,位 6 如果 0,则表示存取日历时钟数据,为 1 表示存取 RAM 数据;位 5 至位 1 指示操作单元的地址;最低有效位(位 0)如为 0 表示要进行写操作,为 1 表示进行读操作,控制字节总是从最低位开始输出。( (5)数据的输出与输入(数据的输出与输入(I/O)在控制指令字输入后的下一个 SCLK 时钟的上升沿时,数据被写入 DS1302,数据输入从低位即位 0 开始。同样,在紧跟 8 位的控制指令字后的下一个 SCLK 脉冲的下降沿读出DS1302 的数据,读出数据时从低位 0 位到高位 7。如下图-4 所示图-4 DS1302 读/写时序图(6) DS1302 的寄存器的寄存器:DS1302 有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD码形式,其日历、时间寄存器及其控制字见表-1。16表-1 DS1302 的日历、时间寄存器此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM 相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302 与 RAM 相关的寄存器分为两类:一类是单个 RAM 单元,共 31 个,每个单元组态为一个 8 位的字节,其命令控制字为 C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的 RAM 寄存器,此方式下可一次性读写所有的 RAM 的 31 个字节,命令控制字为 FEH(写)、FFH(读)。 5. 显示模块的设计显示模块的设计如图5 所示,采用动态扫描显示,由个数码管,3-8 译码器 74LS138 接 1K 限流电阻,再接 8550 三极管接到共阳数码管的 CoM 端作为选通位码,每位选择相应的列。74ls47 接 240 限流电阻,再接共行的 LED 数码管的断码。图-5 LED 动态扫描显示17三、系统的软件设计三、系统的软件设计1. 程序流程框图程序流程框图:图-A 主程序流程图开始初始化读、写时间分离时间显示值显示子程序农历自动更新子程序日期、时间修改子程序闰月子程返回定时闹铃子程序18图-B 计算阳历程序流程图19图-C 时间调整程序流程图202. 子程序的设计:子程序的设计:(1)(1) 键盘子程序的实现键盘子程序的实现:键盘示意图如图所示 图21 按键示意图主要函数模块(C语言):函 数 名: void key_count()功能描述:设置状态转换函数,根据变量count的不同值,对应不同的设置状态按下设置键,自动切换设置位函 数 名: void key_out()功能描述:跳出设置模式函 数 名: uchar key_up(int temp,int max,int min)功能描述: 按键加函数,在最大值与最小值之间变化函 数 名: uchar key_down(int temp,int max,int min)功能描述: 按键减函数,在最大值与最小值之间变化函 数 名:void set_year(); void set_month(); void set_day(); void set_hour();void set_minute(); (2).读写读写 DS1302 子程序子程序 CLR SCLK NOP SETB RST NOP MOV A,32H MOV R4,#8WRITE1: RRC A ;送地址给1302 NOP NOP CLR SCLK NOP NOP NOP MOV IO,C NOP NOP NOP SETB SCLK NOP NOP DJNZ R4,WRITE1 CLR SCLK NOP MOV A,31H21 MOV R4,#8WRITE2: RRC A NOP ;送数据给1302 CLR SCLK NOP NOP MOV IO,C NOP NOP NOP SETB SCLK NOP NOP DJNZ R4,WRITE2 CLR RST RET;读 1302 程序READ: CLR SCLK NOP NOP SETB RST NOP MOV A,32H MOV R4,#8READ1: RRC A ;送地址给1302 NOP MOV IO,C NOP NOP NOP SETB SCLK NOP NOP NOP CLR SCLK NOP NOP DJNZ R4,READ1 MOV R4,#8READ2: CLR SCLK NOP ;从 1302 中读出数据 NOP NOP MOV C,IO NOP NOP NOP NOP NOP RRC A NOP NOP NOP NOP SETB SCLK NOP DJNZ R4,READ2 MOV 31H,A CLR RST RET3.系统硬件电路设计:系统硬件电路设计:本设计硬件电路图如下本设计硬件电路图如下234系统硬件系统硬件 PROTEUS 仿真原理图仿真原理图:5主要单元电路的设计:主要单元电路的设计:(1)显示)显示 4.1 显示部分设计显示部分设计基本显示原理:时钟开始显示为 0 时 0 分 0 秒,也就是数码管显示 000000,然后每秒秒位加 1 ,到 9 后,10 秒位加 1,秒位回 0。10 秒位到 5 后,即 59 秒 ,分钟加1,10 秒位回 0。依次类推,时钟最大的显示值为 23 小时 59 分 59 秒。这里只要确定了1 秒的定时时间, 其他位均以此为基准往上累加。 同时时钟达到最大值的时候天数也增加一位,知道显示了 7 后再变为 1,同时阴历和阳历的天数也加 1,根据不同的月份显示24的天数阳历有 28,29,30,31 天,阴历就要经过计算得到,到了 12 个月后,年数自动增加 1,以此类推,显示万年历的现实。另外,连接方式总电路图上可以看到,这里就不做说明了,下图为显示部分的电路图。显示部分电路图电路:显示部分采用普通的共阳数码管显示,采用动态扫描,以减少硬件电路。采用动态扫描,显示时采用串行口输出段码。(2)键盘接口:)键盘接口:键盘在单片机系统中是一个很重要的部件。为了输入数据、查询和控制系统的工作状态,都要用到键盘,键盘是人工干预计算机的主要手段(3)按键开关去抖动问题:)按键开关去抖动问题:按键开关在电路中的连接如图所示。按键未按下时,A 点电位为高电平 5V;按键按下时,A 点电位为低电平。A 点电位就用于向 CPU 传递按键的开关状态。但是由于按键的结构为机械弹性开关,在按键按下和断开时,触点在闭合和断开瞬间还会接触不稳定,引起 A 点电平不稳定,如图 2-11b 所示,键盘的抖动时间一般为 510ms,抖动现象会引起 CPU 对一次键操作进行多次处理,从而可能产生错误。因此必须设法消除抖动的不良后果。图 2.3 键操作和键抖动25为了节省硬件,通常在单片机系统中,一般不采用硬件方法消除键的抖动,而是用软件消除抖动的方法。根据抖动特性,在第一次检测到按键按下后,执行一段延时 510ms 让前延抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认真正有键按下。当检测到按键释放后,也要给510ms 的延时,待后延抖动消失后才转入该键处理程序。(4)查询式按键及其接口:)查询式按键及其接口:盘与 CPU 的连接方式可以分为查询按键和矩阵式键盘。查询式按键是各按键相互独立,每个按键占用一根 I/O 口线,每根 I/O 口线上的按键工作状态不会影响其他 I/O 口线上按键的工作状态。查询式按键电路配置灵活,软件结构简单,但每个按键必须占用一根 I/O 口线,在按键数量较多时,I/O 口线浪费较大,且电路结构显得繁杂。故这种形式适用于按键数量较少的场合。(5)矩阵式键盘及其接口)矩阵式键盘及其接口矩阵式键盘又称行列式键盘,有 n 个行线和 m 个列线,经限流电阻接+5V 电源上,按键跨接在行线和列线上,nm 行列结构可构成 mn 个按键,组成一个键盘。与独立式按键相比,mn 个按键只占用 m+n 根 I/O 口线,因此适用于按键较多的场合。当无键闭合时,相应的 I/O 之间开路。当有键闭合时,与闭合键相连接的两条 I/O口线之间短路。判断有无键按下的方法是:第一步,置列线相关 I/O 口为输入态,从行线相对应的 I/O 口输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。第二步,置行线相关 I/O 口输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。综合一二两步的结果,可确定按键编号。但是键闭合一次只能进行一次键功能操作,因此须等待近按键释放后,再进行键功能操作,否则按一次键,有可能会连续多次进行同样的键操作。(6)键盘扫描控制方式:)键盘扫描控制方式:在单片机应用系统中,对键盘的处理工作仅是 CPU 工作内容的一部分,CPU 还要进行数据处理、显示和其他输入输出操作,因此键盘处理工作既不能占用 CPU 太多时间,又需要 CPU 对键盘操作及时作出响应。CPU 对键盘处理控制的工作方式有以下几种: 程序控制扫描方式程序控制扫描方式是在 CPU 工作空余,调用键盘扫描子程序,响应键输入信号要求。 定时控制扫描方式26定时控制扫描方式是利用定时/计数器每隔一段时间产生定时中断,CPU 响应中断后对键盘进行扫描,并在有键闭合时转入该键的功能子程序。 中断控制扫描方式中断控制扫描方式是利用外部中断源,响应输入信号。当无按键按下时,CPU 执行正常工作程序。当有按键按下时,CPU 立即产生中断。在中断服务子程序中扫描键盘,判断是哪一个键被按下,然后执行该键的功能子程序。这种控制方式克服了前两种控制方式可能产生的空扫描和不能及时响应键输入的缺点,既能及时处理键输入,又能提高 CPU运行效率,但要占用一个宝贵的中断资源。图即工作于中断方式的矩阵式键盘接口电路。在初始化时 P1.4P1.7 置输出 0,P1.0P1.3 置为输入态,P1.0P1.3 分别接至与门各输入端。当有键闭合时=0,CPU 中断后,在中断服务子程序中,再完成键识别和键功INTO能处理。图 5.2.3 工作于中断方式的矩阵式键盘接口电路四、测试结果分析与结果四、测试结果分析与结果1. 测试结果分析测试结果分析(1)在测试中遇到)在测试中遇到 LEDLCD16824 不显示不显示分析:首先使用试测仪对电路进行测试,观察是否存在漏焊,虚焊,或者元件损坏。再接着研究程序的时序图是否正确。最后发现程序时序方面出了点小错。修改后就把问题解决了。27(2)按键调整时)按键调整时,不是按单位递增和递减不是按单位递增和递减分析:在键盘程序中,按键一次,向芯片写入一个新的数字,在写入数字后必须有一定延时才再写入另一个数字。五、系统评价五、系统评价该设计利用单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时,该方案节省硬件成本,且能使设计者对单片机的指令系统能有更深入的了解,从而掌握单片机应用技术 MCS-52 c 语言程序设计方法,因此,本系统设计采用此种软件控制方法来实现时,而由于 ATMEL 公司的 AT89C52 单片机是低功耗的具有 4KB 在线可编程 FLASH 存储器的单片机。它与通用 80C52 系列单片机的指令第和引脚兼容。片内的FLASH 集成在一个芯片上,形成了功能强大、使用灵活和具有较高性能价格比的微控制器。它的功能强大,而且也较容易购买。总结:所要实现的功能通过单片机编程就可以达到,不需要额外的时钟芯片来增加成本,并使外围电路更加简单明了。六、系统程序清单六、系统程序清单/*1、按键可以调整当时时间2、按键可以调节定时时间3、定时时间到继电器吸合*8 位数码管显示 时间格式格式 12-30-30 表示:12 点 30 分 30 秒S1 用于小时 加 1 操作 S2 用于小时减 1 操作S3 用于分钟 加 1 操作S4 用于分钟减 1 操作;* ;* 万年历程序 *;*61H(分)60H(秒) SCLK EQU P3.228 IO EQU P3.3 RST EQU P3.4 YEAR DATA 66H MONTH DATA 65H WEEK DATA 64H DAY DATA 63H HOUR DATA 62H MINTUE DATA 61H SECOND DATA 60H DS1302_ADDR DATA 32H DS1302_DATA DATA 31H ORG 0000H AJMP START ORG 0003H RETI ORG 000BH RETI ORG 0013H RETI ORG 001BH LJMP INTT1 ORG 0023H RETI ORG 002BH RETSTART: SETB EA MOV SCON,#00H ;串行输出,方式 0 MOV TMOD,#10H ;计数器 1,方式 1 MOV TL1,#00H MOV TH1,#00HMOV 74H,R1 MOV 44H,R1 MOV 75H,R2 MOV 45H,R2 MOV R0,MINTUE ;分分离,送显示缓存 LCALL DIVIDE MOV 72H,R1 MOV 42H,R1 MOV 73H,R2 MOV 43H,R2 MOV R0,SECOND ;秒分离,送显示缓存 LCALL DIVIDE29 MOV 70H,R1MOV 40H,R1 MOV 71H,R2 MOV 41H,R2 LCALL DIS30七、谢辞七、谢辞在整个设计过程中,发挥团队精神,分工合作,充分发挥人的主观能动性,自主学习,学到了许多没学到的知识,完成了对万年历的设计,达到了预期的目的。在最初的设计中,相互学习、相互讨论、研究,完成了最初的设想。相互学习、相互讨论、研究,完成了最初的设想。在实训的日子里,通过亲自动手实践,巩固了以前的知识,发现了自己的不足然后加以改进。在做论文设计的日子里得到了指导教师的悉心指导,在此向我们的指导教师致以诚挚的谢意。感谢提供相关技术帮助的老师和同学,你们的支持和鼓励使我们对这次的作品完成有了信心和动力,也给了我们很多无私的帮助和支持,我们在此深表谢意。八、参考文献八、参考文献1 ATMEL 公司 AT89S52 单片机中文 PDF 资料;2 天津锐志单片机开发网;3 http:/ 祝诗平. Proteus 和 Keil 软件在单片机教学中的应用J .西南农业大学学报(社会科学版) ,2011(2);5 王庆利.单片机设计案例实践教程M.北京邮电大学出版社,2008;6刘松,曹金玲.单片机技术与应用.机械工业出版社.2000。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 任务书类


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

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


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