基于单片机的数字时钟设计 下载本文

内容发布更新时间 : 2024/12/23 0:21:46星期一 下面是文章的全部内容请认真阅读。

页眉内容

复位输入端,接上电容,电阻后构成上电复位电路。20引脚为接地端,40引脚为电源端。/EA端(31引脚)接+5V电压。由此就构成了单片机主控模块的最小系统。图3.1为单片机主控电路图。

图3.1 单片机主控电路图 STC89c52包含以下部分 (1)一个8位微处理器CPU

(2)片内数据存储器RAM和特殊功能寄存器SFR (3)片内程序存储器ROM

(4)两个定时/计数器T0、T1,可用作定时器,也可用以对外部脉冲进行计 数 (5)四个8位可编程的并行I/O端口,每个端口既可作输入,也可作输出 (6)一个串行端口,用于数据的串行通信 (7)中断控制系统 (8)内部时钟电路

其管脚结构如图3.2所示

图3.2 STC89C52管脚图

VCC:电源。 GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程 序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作 输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻 拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存 储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器 的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下所示: P3口管脚 备选功能

页眉内容

P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入)

P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器 时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

主要用来产生时间标准信号,因为时钟的精度主要取决于时间标准信号的频率及稳定度,所以常采用石英晶体振荡器。实验板的时钟振荡源电路如图3-3所示。其中JT 为11.0592MHz 的晶振,改变两电容CB的值即可对此晶振频率进行调节。该电路提供单片机工作所需的振荡频率,计算定时器初值即需此晶振频率,在通信时也需知道晶振频率,以对波特率进行计算。

图3.3脉冲电路

MCS-52单片机的复位是由外部的复位电路来实现的。复位引脚 RST 通过一 个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期 的 S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复 位操作所需要的信号。上电复位:上电复位电路是—种简单的复位电路,只要在 RST 复位引脚接一 个电容到 VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位 电路通过电容加到 RST 复位引脚一个短暂的高电平信号,这个复位信号随着 VCC 对电容的充电过程而回落, 所以 RST 引脚复位的高电平维持时间取决于电容的充 电时间。为了保证系统安全可靠的复位,RST 引脚的高电平信号必须维持足够长的时间。

上电自动复位是通过外部复位电路的电容充电来实现的。只要 Vcc 的上升时 间不超过 1ms,就可以实现自动上电复位。

页眉内容 图3.4复位电路

3.2显示模块

随着科技的发展,液晶显示的使用越来越方便,已被普遍的使用,所以本次设计采用液晶显示。液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。

由于液晶显示与驱动都集成在一个芯片上,因此使用起来很方便。数字钟要显示现在的日历时间包括年、月、日、星期、时、分、秒及温度,在这里采用1602LCD液晶显示。如下图所示.

图3.2显示电路

3.2.1 LCD1602主要技术参数 显示容量:16×2个字符 芯片工作电压:4.5—5.5V 工作流:2.0mA(5.0V) 模块最佳工作电压:5.0V

字符尺寸:2.95×4.35(W×H)mm 3.2.2 LCD1602引脚功能说明

1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下表所示。

表3.1 LCD1602引脚说明图

第1脚:VSS源。 第2脚:VDD源。 第3脚:VL示器对比度接正电源时弱,接地时高,对比度产生“鬼

编号 符号 1 2 3 4 5 6 7 8 VSS VDD VL RS R/W E D0 D1 引脚说明 电源地 电源正极 液晶显示偏压 数据/命令选择 读/写选择 使能信号 数据 数据 编号 符号 9 10 11 12 13 14 15 16 D2 D3 D4 D5 D6 D7 引脚说明 数据 数据 数据 数据 数据 数据 为地电

接5V正电

为液晶显调整端,对比度最对比度最过高时会影”,使用

BLA 背光源正极 BLK 背光源负极 页眉内容

时可以通过一个10K的电位器调整对比度。

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。 第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7~14脚:D0~D7为8位双向数据线。 第15脚:背光源正极。 第16脚:背光源负极。

3.3按键电路

按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相 应的 I/O 端口形成一个负脉冲。 闭合和释放过程都要经过一定的过程才能达到稳 定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动持续时 间的常长短与开关的机械特性有关,一般在 5-10ms 之间。为了避免 CPU 多次处 理按键的一次闭合,应采用措施消除抖动。本文采用的是独立式按键,直接用 I/O 口线构成单个按键电路,每个按键占用一条 I/O 口线,每个按键的工作状态 不会产生互相影响。 电路图如下:

P1.0 口表示功能移位键,按键选择要调整的时十位、时个位、分十位或分 个位。 P1.1 口表示数字“+“键,按一下则对应的数字加 1。 P1.2 口表示数字“-”键,按一下则对应的数字减 1。 P1.3 口表示时间表的切换,程序默认为日常时间表,当按下该开关,使输 入为低电平时, 表示当前执行的是考试时间表, 并有绿发光二极管显示。 再按键,使键抬起,输入维高电平时,表示当前执行的是日常作息时间表,用红发光二极管显示。电路图如图3.4所示。

图3.4 按键电路

此次设计按键电路采用红外遥控设置,以安装红外连接设备,用遥控器实现时间预设置及调整.

3.4电源模块

220V交流电通过双12V变压器变为12V的交流电,12V交流电通过四个二极管的全桥整流后变为12V直流电,然后经过电解电容(470μF)进行一级滤波,以去除直流电里面的杂波,防止干扰。12V直流电出来后再经过三端稳压

页眉内容

器7805稳压成为稳定的5V电源,其中7805的Vin脚是输入脚,接12V直流电源正极,GND是接地脚,接12V直流电源负极,Vout为输出脚,它和接地脚的电压就是+5V了。5V电源出来再经过电解电容的二级滤波,使5V电源更加稳定可靠。同时在5V稳压电源加上一个470Ω的电阻和一个绿色发光二极管,当上电后,绿色发光二极管点亮,表示电源工作正常。此时一个稳定输出5V的电源已经设计好,对于本设计它完全能够满足单片机及集成块所需电源的要求。电路原理图如图3.5所示。

图3.5 电源电路

3.7蜂鸣电路模块

其硬件原理图如下图所示。此电路用于定时时发出提示音。SPEAKER与P3.2口相连,当SPEAKER输出高电平时蜂鸣器不响,而SPEAKER输出低电平时蜂鸣器发出响声。只需控制SPEAKER输出高低电平的时间和变化频率,就可以让蜂鸣器发出不同的声音。此电路用于产生定时器提示音。

图3.6 蜂鸣器电路

3.8时钟模块电路

时钟模块DS12887的AD口与单片机的P0口相连,进行时间、日历数据输出。其它各功能端口的连接在主控电路中已有描述,不在赘述。另外DS12887的12脚与电源地相连,24脚与电源相连。总线选择端口MOT端与电源地相连。电路图如图3.7所示。

图3.7时钟模块电路

4.软件设计

软件是系统的主要组成部分,也是整个调试的重点和难点工作。本设计采用了C编语言,因为C语言编写更简洁方便,编写的代码可以非常精确的被执行,可以编写出高效的执行代码。因此,依据课题设计的要求,采用C语言进行软件编程,用模块化程序设计思想,将软件划分成若干模块单元;包括:DS12887时钟显示模块、延时等模块,键盘扫描子程序,按键处理子程序模块,通信中断子程序。通过C语言编程实现单片机时钟控制调节功能。

4.1 数字钟的工作原理

工作原理:

数字电子钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。