用LCD1602实现简单的数字时钟
摘要:随着科技的发展,单片机的应用正在不断深入,涉及到日常生活的方方面面。本设计是基于单片机89C51为控制核心,以液晶为显示的数字时钟。本数字时钟设计的原理相对简单,所以硬件电路也相对简单,难点和重点主要放在C语言的编程上,使用到
定时器的子程序、延时程序、时分秒的控制程序、液晶模块和单片机模块的初始化程序、液晶显示的程序等,各个函数交叉调用,配合主程序的运行。
关键字:LCD1602 89C51 定时器
一、数字时钟的概述与功能的简介
本设计用到单片机的P0端做数据端,把数据发送到LCD的数据接收端,然后通过利用程序进行对液晶的控制,实现数字的显示。在本设计中,设计了四个功能按键,分别是启动/停止时钟,时、分、秒的加一功能,以此对时间的调整。硬件电路相对简单,所以软件的开销相对增大,特别是对液晶模块的程序设计,也正是设计本数字时钟的目的,希望通过此设计提高自己的软件编程与调试能力。由于个人能力也有限,在短时间内不能编写出用液晶显示年月日的程序,因为代码量确实增大不少。
二、89C51单片机的简介
1. 单片机的概述
所谓单片机,通俗的来讲,就是把中央处理器CPU(Central Processing Unit),存储器(memory),定时器,I/O(Input/Output)接口电路等一些计算机的主要功能部件集成在一块集成电路芯片上的微型计算机。单片机又称为“微控制器MCU”。中文“单片机”的称呼是由英文名称“Single Chip Microcomputer”直接翻译而来的。
2.芯片引脚图的介绍
芯片的引脚图如下:
引脚功能:
I/O接口
MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照----单片机引脚图:
P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。
P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。
P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。
P3.0~P3.7 P2口8位双向口线(在引脚的10~17号端子)。
P0口有三个功能:
1、外部扩展存储器时,当做数据总线(如图1中的D0~D7为数据总线接口)
2、外部扩展存储器时,当作地址总线(如图1中的A0~A7为地址总线接口)
3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。
P1口只做I/O口使用:其内部有上拉电阻。
P2口有两个功能:
1、扩展外部存储器时,当作地址总线使用
2、做一般I/O口使用,其内部有上拉电阻;
P3口有两个功能:
除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置。
ALE/PROG 地址锁存控制信号
在系统扩展时,ALE用于控制把P0口的输出低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离。ALE有可能是高电平也有可能是低电平,当ALE是高电平时,允许地址锁存信号,当访问外部存储器时,ALE信号负跳变(即由正变负)将P0口上低8位地址信号送入锁存器。当ALE是低电平时,P0口上的内容和锁存器输出一致。
在没有访问外部存储器期间,ALE以1/6振荡周期频率输出(即6分频),当访问外部存储器以1/12振荡周期输出(12分频)。
PROG为编程脉冲的输入端
程序通过编程脉冲输入才能写进去的,这个脉冲的输入端口就是PROG。
PSEN为外部程序存储器读选通信号
在读外部ROM时PSEN低电平有效,以实现外部ROM单元的读操作。
RST 复位信号
当输入的信号连续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作,当复位后程序计数器PC=0000H,即复位后将从程序存储器的0000H单元读取第一条指令码。
XTAL1和XTAL2
外接晶振引脚。当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
VCC:电源+5V输入
VSS:GND接地。
三、89C51单片机结构
1、总体结构
结构框图如下:
中央处理器(CPU)
MCS-51的CPU能处理8位二进制数或代码。CPU是单片机的主要核心部件,在CPU里面包含了运算器、控制器以及若干寄存器等部件给成。
总线
指能为多个部件服务的信息传送线,在微机系统中各个部件通过总线相互通信。
地址总线(AB):地址总线是单向的,用于传送地址信息。地址总线的宽度为16位,因此基外部存储器直接寻址64K,16位地址总线由P0口经地址锁存器提供低8位地址(A0~A7),P2口直接提供高8位地址(A8~A15)。
数据总线(DB):一般为双向,用于CPU与存储器,CPU与外设、或外设与外设之间传送数据信息(包括实际意义的数据和指令码)。数据总线宽度为8位,由P0口提供。
控制总线(CB):是计算机系统中所有控制信号的总称,在控制总线中传送的是控制信息。由P3口的第二功能状态和4根独立的控制总线,RESET、EA、ALE、PSEN组成。
存储器
用来存放计算机中的所有信息:包括程序、原始数据、运算的中间结果及最终结果等。
只读存储器(ROM):
只读存储器在使用时,只能读出而不能写入,断电后ROM中的信息不会丢失。因此一般用来存放一些固定程序,如监控程序、子程序、字库及数据表等。内部程序存储器(ROM):
MCS-51内部有4KB/8KB字节的ROM(51系列为4KB,51系列为8KB),用于存放程序、原始数据或表格。因此称之为程序存储器,简称内部RAM。地址范围为0000H~FFFFH(64KB)。
随机存储器(RAM):
这种存储器又叫读写存储器。它不仅能读取存放在存储单元中的数据,还能随时写入新的数据,写入后原来的数据就丢失了。断电后RAM中的信息全部丢失。因些,RAM常用于存放经常要改变的程序或中间计算结果等信息。内部数据存储器(RAM):MCS-51单片机芯片共有256个RAM单元,其中后128单元被专用寄存器占用(稍后我们详解),能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。地址范围为00H~FFH(256B)。是一个多用多功能数据存储器,有数据存储、通用工作寄存器、堆栈、位地址等空间。
定时器/计数器
80C51单片机内部设有两个16位的可编程定时器/计数器。可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。
定时器/计数器的结构:
中断系统
8051单片机的中断系统简单实用,其基本特点是:有5个固定的可屏蔽中断源,3个在片内,2个在片外,它们在程序存储器中各有固定的中断入口地址,由此进入中断服务程序;5个中断源有两级中断优先级,可形成中断嵌套;2个特殊功能寄存器用于中断控制和条件设置的 编程。
中断系统的结构:
5个中断源的符号、名称及产生的条件如下。
INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。
INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。
T0:定时器/计数器0中断,由T0计满回零引起。
T1:定时器/计数器l中断,由T1计满回零引起。
TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。
2.定时器/计数器中相关寄存