电子时钟计时器的设计(c语言版 - 调试完美通过 - 可直接使用)(附原理图源程序以及完整的文档) 下载本文

内容发布更新时间 : 2024/5/20 21:02:58星期一 下面是文章的全部内容请认真阅读。

接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。 DS1302的引脚功能以及单片机的连接图如图6

图6 DS1302引脚及其与单片机连接的原理图

2.4显示电路设计

单片机中通常用七段LED构成字型“8”,另外,还有一个小数点发光二极管以显示小数位!这种显示器有共阴和共阳两种!发光二极管的阳极连在一起的(公共端)称为共阳极显示器,阴极连在一起的称为共阴极显示器。一位显示器由8个发光二极管组成,其中,7个发光二极管构成字型“8”的各个笔划(段),a_g,另一个小数点为dp发光二极管。当在某段发光二极管上施加一定的正向电压时,该段笔画即亮;不加电压则暗。为了保护各段LED不被损坏,需外加限流电阻。由于共阴极连接需加驱动,故在这里我采用的是共阳阳极连接。

7

以共阳极LED为例,各LED公共阳极K0接高电平,若向各控制端a,b, ┄,g,dp顺次送入00011110信号,则该显示器显示“⒎”字型。共阴极7段LED显示数字0 ~ F、文字、符号及小数点的编码(a段为最地位,dp点为最高位),如图7。

图7 数码管的驱动显示电路设计

2.5电源电路设计

在各种电子设备中,直流稳压电源是必不可少的组成部分,它是电子设备唯一能量来源,它的设计思路是根据我们以前学过的模电电子技术,要想得到我们所要的+6V输出电压,就需将交流220V的电压经过变压器、整流电路、滤波电路和稳压电路四个部分。

2.6键盘动态扫描电路设计

在单片机系统中按键数量较多时,为了减少I/O口的占用,常常将按钮排列成矩阵式键盘中,每条水平线和直线在交叉处不直接连通,而是通过一个按钮加以连接。这样,一个端口(如P1口)就能组成4*4=16个按钮,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条就能组成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用

8

矩阵法来做键盘是最合理的。

矩阵式键盘的按钮识别办法确定矩阵式键盘上何键被按下简绍一种“行扫描法”。行扫描法又称为逐行(或列)扫描查询法,是一种最常用的,按钮识别办法,如下图示键盘,介绍过程如下。

判断键盘中有无键盘按下将全部行线置低电平,然后检测列的电平为低,则表示键盘中有键被按下,而且闭合的键位位于低电平线与4根行线相交叉的4个按钮之中。若所有列线均为高电平,则键盘中无键按下。

判断闭合键所在的位置:在确认有键按下后,即可置某根行线为低电平时,其他线为高电平。在确定某根位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列与置为低电平的行线交叉处的按钮就是闭合的按钮。将程序通过串口下载到单片机中,在键盘上按任意键时,将会在数码管上显示对应的字符。

为了驱动键盘,同上以8255_PC第四位作为输入,8255PC高四位作为列扫描输出,以此来实现动态扫描显示法。如图8所示:

图8 键盘动态扫描电路设计

9

3.控制系统的软件设计

3.1主程序流程图

本设计中主程序主要实现显示的初始化和调用各子程序工作的功能,读取时间的子程序主要实现初始化,时间信息的采集和显示段码的码的存取。分别对各个器件的功能进行编程设计,根据主程序流程图(如下)进行全面的分析。设计中计时主要以定时器T0中断完成,定点闹铃使用峰鸣器来完成。当端口有开关按下时,转入相应的功能程序。其主程序执行流程图如下图9:

开始初始化显示N是否到闹钟时间N是否按键YNNY蜂鸣器响4是否整点秒Y蜂鸣器响1分钟是否为开启闹钟Y设置闹钟时间调节显示时间

图9 主程序流程图

10

3.2显示子程序

时间显示子程序显示时钟芯片3个内存单元(小时、分钟、秒钟)的BCD码数据,8255的PA口送数码管的位选编码。8255的PB口送段选编码,位选段选编码存放在ROM表中。

显示时,先取出位选编码数据,然后送至PA口输出,接着取出段选编码数据送至PB口输出,剩下的数码管以同样地方法送数据直到将3个内存单元的数据分成6个位全部送去数码管显示。数码管显示子程序流程图如图9所示:

开始初始化显示数值从RAM中取键码计算存入缓冲区显示延时六位显示完成?Y 结束N

图 10 数码管显示子程序流程图

3.3闹钟时间设定功能程序

在时钟状态下,触发外中断1时,进入闹钟时间设定模式,且不影响T0计时器的功能状态,在键盘上输入对应的数字进行时间设定。当分别按下调节时钟、分钟和秒钟的个位时,时间自动确定,闹钟时间只精确到分钟。闹钟时间设定流程图如图11所示:

11