基于AT89C51数码时钟电路的方案设计书.docx
- 文档编号:6010318
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:72
- 大小:504.90KB
基于AT89C51数码时钟电路的方案设计书.docx
《基于AT89C51数码时钟电路的方案设计书.docx》由会员分享,可在线阅读,更多相关《基于AT89C51数码时钟电路的方案设计书.docx(72页珍藏版)》请在冰豆网上搜索。
基于AT89C51数码时钟电路的方案设计书
2012届 分类号:
TM711
单位代码:
10452
本科职业生涯设计
数码时钟电路的设计
姓名
学号
年级 2010级
专业 电气工程及其自动化
系 (院)
指导教师
2011年12月20日
诚信声明
\
学生签名:
日期:
指导老师签名:
日期:
摘要
本文通过对一个基于单片机的能实现定时,秒表,闹钟等功能的多功能电子时钟的设计学习,详细介绍了单片机应用中的数据转换显示,液晶显示原理,键盘扫描原理。
从而达到学习、了解单片机相关指令在各方面的应用。
系统由AT89C51、温度检测芯片、时钟芯片DS1302、液晶显示器LCD1602等部分构成,能实现时钟日历显示的功能,能进行时、分、秒的显示和实时温度显示。
也具有时钟、日历的校准,定时时间的设定和闹铃等功能。
文章后附有电路原理图、PCB板图和程序清单,以供读者参考。
因水平有限,难免有疏落不足之处,敬请老师和同学能给与批评指正。
关键字:
AT89C51;DS1302;LCD1602;时钟
前言
单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上。
单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。
单片机具有体积小、功能多、价格低廉、使用方便、系统设计灵活等优点。
因此,它应用广泛前景美好,它的实用性大大地提高了我对毕业设计的兴趣。
本次设计的多功能数字时钟,以AT89C51芯片为核心,辅以必要的电路,通过液晶显示器能够准确显示数字时钟。
它也是现代社会应用广泛的计时工具,在航天、电子等科研单位,工厂、医院、学校等企事业单位,各种体育赛事及至我们每个人的日常生活中都发挥着重要的作用。
该系统同时具有硬件设计简单、工作稳定性高、价格低廉等优点。
第1章总体方案介绍
整个电子时钟系统电路可分为五大部分:
中央处理单元(CPU)、电源电路部分、显示部分、键盘输入部分、温度采集部分。
1.1系统设计思想
本系统由控制时钟芯片DS1302、温度芯片DS18B20、AT89C51单片机和字符点阵型LCD1602液晶显示器等器件构成。
用DS1302产生时钟信号,用温度芯片DS18B20产生温度信号,再由单片机负责接收并且对其进行控制,然后通过编写程序实现具体的功能,如年、月、日、星期、时、分、秒及温度的显示,以及时间的校准、闹钟的设置等。
再通过编写液晶器件的驱动程序,使其信息显示在LCD1602液晶显示器上。
最后,将设计的硬件电路在Proteus仿真软件中进行仿真。
1.2系统框架图
根据上述的系统设计总思想设计出如下总体框架图(图2-1):
图1-1系统总体框架图
第2章硬件仿真电路设计
在前面的章节给出了系统设计的粗略轮廓,在本章节中,将画出详细的电路仿真原理图,并按照要求仔细地在Proteus中完成硬件的仿真电路。
总体上来说,本系统主要由显示电路,功能控制电路、传感器电路三部分组成。
吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系统稳定性大大提高。
本系统不仅成功的实现了电子时钟的基本功能,而且还可以通过对程序的改变来实现其它方面的开发及学习。
2.1Proteus
2.1.1Proteus简介
ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。
它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:
(1)实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
(2)支持主流单片机系统的仿真。
目前支持的单片机类型有:
68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
(3)提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision3等软件。
(4)具有强大的原理图绘制功能。
总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。
2.2AT89C51的电路设计
2.2.1AT89C51简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图2-4所示:
图2-4AT89C51
管脚说明:
VCC——供电电压。
GND——接地。
P0口——8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口——带内部上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口——带内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口——带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
在编程/校验时,P3口可接收某些控制信号。
具体的P3口功能,如表2-1所示。
表2-1P3口的特殊功能
引脚替代功能说明
P3.0RXD串行数据接收
P3.1TXD串行数据发送
P3.2INT0外部中断0申请
P3.3INT1外部中断1申请
P3.4T0定时器0外部事件计数输入
P3.5T1定时器1外部事件计数输入
P3.6WR外部RAM写选通
P3.7RD外部RAM读选通
RST——复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG——当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN——外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP——当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1——反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2——来自反向振荡器的输出。
2.2.2AT89C51的时钟电路设计
时钟电路是产生CPU校准时序,是单片机的控制核心。
AT89C51的时钟信号可通过内部振荡方式和外部振荡方式两种方式得到。
本次设计使用的是片内振荡方式,通过外接12MHz的晶振来实现时钟电路的时序控制。
在使用片内振荡器时,XTAL1和XTAL2分别为反向放大器的输入端和输出端。
外接晶体以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。
当使用外部时钟驱动时,XTAL2引脚应悬空,而由XTAL1引脚上的信号驱动,或者XTAL1引脚应悬空,而由XTAL2引脚上的信号驱动。
外部振荡器再通过一个2分频的触发器来形成内部时钟所需要的信号。
在电容器C1、C2选择时方面,一般选择其值为5~30pF。
本系统中所用的电容值为22pF,具体的电路接法如图2-5所示。
图2-5晶振电路图
2.2.3AT89C51的复位电路设计
根据应用的要求,复位操作通常由上电复位和开关复位2种基本形式。
本系统使用的复位电路是在基本复位电路的基础上所改进的一种混合方法,使其两种形式巧妙地糅合在一起,即做到了上电复位,又可以在发生预料之外的问题时,随时进行开关复位单片机。
具体的电路连接接法如图2-6所示。
图2-6复位电路
单片机复位后的状态:
单片机的复位操作使单片机进入初始化过程,其中包括使程序计数器PC=0000H,P0~P3=FFH,SP=07H,其他寄存器处于零。
这表明程序从0000H地址单元开始执行。
单片机复位后不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态如表2-2所示。
表2-28051单片机复位后特殊功能寄存器的初始状态[1]
特殊功能寄存器
初始状态
特殊功能寄存器
初始状态
A
00H
TMOD
00H
B
00H
TCON
00H
表2-2续8051单片机复位后特殊功能寄存器的初始状态[1]
特殊功能寄存器
初始状态
特殊功能寄存器
初始状态
PSW
00H
TH0
00H
SP
07H
TL0
00H
DPL
00H
TH1
00H
DPH
00H
TL1
00H
P0~P3
FFH
SBUF
不定
IP
***00000B
SCON
00H
IE
0**00000B
PCON
0*******B
注:
表中的符号*为随机状态
需要指出的是,记住一些特殊功能寄存器复位后的状态,对于熟悉单片机操作,减短应用程序中的初始化部分是十分必要的。
2.3AT89C51液晶显示模块的连接
2.3.1液晶显示器LCD1602简介
液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。
本系统使用是是LCD1602液晶显示器,它可以显示两行,每行16个字符,采用单+5V电源电,外围电路配置简单,价格便宜,具有很高的性价比。
LCD1602外观如图2-7所示。
图2-7LCD1602外观
LCD1602采用标准的14脚接口,其中VSS为地电源,VDD接5V正电源,VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
D0~D7为8位双向数据线。
LCD1602液晶模块内部的控制器共有11条控制指令,具体的命令见表2-3所示。
表2-3LCD1602控制指令
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
1
清屏
0
0
0
0
0
0
0
0
0
1
2
光标复位
0
0
0
0
0
0
0
0
1
*
3
光标和显示模式设置
0
0
0
0
0
0
0
1
I/D
S
4
显示开关控制
0
0
0
0
0
0
1
D
C
B
5
光标或字符移位
0
0
0
0
0
1
S/C
R/L
*
*
6
置功能
0
0
0
0
1
DL
N
F
*
*
7
置字符发生存贮器地址
0
0
0
1
字符发生存贮器地址(AGG)
8
置数据存贮器地址
0
0
1
显示数据存贮器地址(ADD)
9
读忙标志或地址
0
1
BF
计数器地址(AC)
10
写入CGRAM/DDRAM
1
0
要写的数
11
读CGRAM/DDRAM数
1
1
读出的数据
1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(1)清屏指令
功能:
1)清除液晶显示器,即将DDRAM的内容全部填入“空白”的ASCII码20H;
2)光标归位,即将光标撤回液晶显示屏的左上方;
3)将地址计数器(AC)的值设为0;
2.光标复位指令
功能:
1)把光标撤回到显示器的左上方;
2)把地址计数器(AC)的值设置为0;
3)保持DDRAM的内容不变;
(3)光标和显示模式设置指令
功能:
设定每次定入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。
参数设定的情况表2-4所示。
表2-4显示模式设置指令参数设定
位名
设置
I/D
0=写入新数据后光标左移
1=写入新数据后光标右移
S
0=写入新数据后显示屏不移动
1=写入新数据后屏整体右移1个字符
(4)显示开关控制指令
功能:
控制显示器开/关、光标显示/关闭以及光标是否闪烁。
参数设定的情况如表2-5。
表2-5显示开关控制指令参数设定
位名
设置
D
0=显示功能关
1=显示功能开
C
0=无光标
1=有光标
B
0=光标闪烁
1=光标不闪烁
(5)设定显示屏或光标移动方向指令
功能:
使光标移位或使整个显示屏幕移位。
参数设定的情况如表2-6。
表2-6设定显示屏或光标移动方向指令参数设定
S/C
R/L
设定情况
0
0
光标左移1格,且AC值减1
0
1
光标右移1格,且AC值加1
1
0
显示器上字符全部左移一格,但光标不动
1
1
显示器上字符全部右移一格,但光标不动
(6)功能设定指令
功能:
设定数据总线位数、显示的行数及字型。
参数设定的情况如表2-7。
表2-7功能设定指令参数设定
位名
设置
DL
0=数据总线为4位
1=数据总线为8位
N
0=显示1行
1=显示2行
F
0=5×7点阵/每字符
1=5×10点阵/每字符
(7)设定CGRAM地址指令
功能:
设定下一个要存入数据的CGRAM的地址。
(8)设定DDRAM地址指令
功能:
设定下一个要存入数据的CGRAM的地址。
(9)读取忙信号或AC地址指令
功能:
1)读取忙碌信号BF的内容,BF=1表示液晶显示器忙,暂时无法接收单片机送来的数据或指令;当BF=0时,液晶显示器可以接收单片机送来的数据或指令;
2)读取地址计数器(AC)的内容。
(10)数据写入DDRAM或CGRAM指令一览
功能:
1)将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符;
2)将使用者自己设计的图形存入CGRAM;
(11)从CGRAM或DDRAM读出数据的指令一览
功能:
读取DDRAM或CGRAM中的内容。
表2-8基本操作时序
命令名
输入
输出
读状态
RS=L,RW=H,E=H
DB0~DB7=状态字
写指令
RS=L,RW=L,E=下降沿脉冲, DB0~DB7=指令码
无
读数据
RS=H,RW=H,E=H
DB0~DB7=数据
写数据
RS=H,RW=L,E=下降沿脉冲,DB0~DB7=数据
无
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图2-8是1602的内部显示地址。
图2-81602LCD内部显示地址
2.3.2AT89C51与LCD1602的连接
在LCD1602液晶显示模块和单片机AT89C51相连接时需要在液晶显示的数据口加上10K左右的上拉电阻,具体的接法为:
将VSS接地,VDD接高电平,VEE接入一个电位器来调整LCD1602的对比度。
将RS接到P2.0口,R/W接到P2.1口,E接到P2.2口。
D0~D7接到P0口来控制命令输入及数据的输入/输出。
具体的连接仿真电路可见图2-9所示。
图2-9LCD1602液晶显示模块和单片机AT89C51接口电路
2.4AT89C51与时钟芯片的连接
2.4.1时钟芯片DS1302简介
DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。
实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。
DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:
RES复位线、I/O数据线、SCLK串行时钟。
时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。
DS1302工作时功耗很低保持数据和时钟信息时功率小于1mW。
DS1302器件外观如图3-10所示,DS1302管脚的功能描述可见表3-9所示。
图2-10DS1302器件
表2-9DS1302管脚的功能描述
管脚名
功能说明
X1,X2
32.768KHz晶振管脚
GND
地
RST
复位脚
I/O
数据输入/输出引脚
SCLK
串行时钟
Vcc1,Vcc2
电源供电管脚
DS1302的控制字如图3-11所示。
控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
图2-11DS1302的控制字
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表2-10所示。
表2-10日历、时间寄存器及其控制字
寄存器名称
写操作
读操作
取值范围
7
654
321
秒寄存器
80H
81H
00~59
CH
10SEC
SEC
分寄存器
82H
83H
00~59
0
10MIN
MIN
时寄存器
84H
85H
00~23
12/24
10HR
HR
日寄存器
86H
87H
01~31
0
10DATE
DATE
月寄存器
88H
89H
01~12
0
010M
MONTH
周寄存器
8AH
8BH
01~07
0
000
DAY
年寄存器
8CH
8DH
00~99
10YEAR
YEAR
DS1302的主要特性:
(1)实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年调整的能力
(2)31*8位暂存数据存储RAM
(3)串行I/O口方式使得管脚数量最少
(4)宽范围工作电压:
2.0~5.5V
(5)工作电流2.0V时,小于300nA
(6)读/写时钟或RAM数据时,有两种传送方式:
单字节传送和多字节传送(字符组方式)
(7)8脚DIP封装或可选的8脚SOIC封装(根据表面装配)
(8)简单3线接口
(9)与TTL兼容(Vcc=5V)
(10)可选工业级温度范围-40~+85
2.4.2AT89C51与时钟芯片DS1302的连接
在使用DS1302时需加一个供其工作的晶振,一般选值为32768Hz。
最好再加一个后备电源使其在断电后断续工作。
其与AT89C51的连接如图2-12所示。
实际上,在调试程序时可以不加电容器,只加一个32768Hz的晶振即可。
只是选择晶振时,不同的晶振,误差也较大。
要特别说明的是备用电源BAT1,可以用电池或者超级电容器(0.1F以上)。
虽然DS1302在主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。
可以用老式电脑主板上的3.6V充电电池。
如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。
100μF就可以保证1小时的正常走时。
DS1302在第一次加电后,必须进行初始化操作。
初始化后就可以按正常方法调整时间。
图2-12AT89C51与DS1302的连接
2.5AT89C51与温度芯片的连接
2.5.1温度芯片DS18B20简介
DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。
因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
其实物图如图2-13所示,其引脚的功能描述可见表2-11所示。
图2-13DS18B20
表2-11DS18B20的引脚功能描述
引脚
功能说明
GND
地
DQ
数字输入输出引脚
VDD
可选
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89C51 数码 时钟 电路 方案设计