XX大学毕业设计(论文)
P2口:P2口是带内部上拉的双向I/O口,向P2口写入1时P2口被内部上拉为高电平,可用作输入口,当作为输入脚时被外部拉低的P2口会因为内部上拉而输出电流(见DC电气特性)在访问外部程序存储器和外部数据时分别作为地址高位字节和16位地址(MOVX @DPTR)此时通过内部强上拉传送1,当使用8位寻址方式(MOV @Ri)访问外部数据存储器时,P2口发送P2特殊功能寄存器的内容。
P3口:P3口是带内部上拉的双向I/O口,向P3口写入1时P3口被内部上拉为高电平,可用作输入口,当作为输入脚时被外部拉低的P3口会因为内部上拉而输出电流(见DC电气特性)P3口还具有以下特殊功能。 RXD(P3.0) 串行输入口 TXD(P3.1) 串行输出口 INT0(P3.2) 外部中断0 INT1(P3.3) 外部中断1 T0(P3.4) 定时器0外部输入 T1(P3.5) 定时器1外部输入
WR(P3.6) 外部数据存储器写信号 RD(P3.7) 外部数据存储器读信号
ALE:地址锁存使能。在访问外部存储器时输出脉冲锁存地址的低字节,在正常情况ALE输出信号恒定为1/6振荡频率并可用作外部时钟或定时,注意每次访问外部数据时一个ALE脉冲将被忽略ALE可以通过置位SFR的auxlilary0禁止置位后ALE只能在执行MOVX指令时被激活。
PSEN:程序存储使能。当执行外部程序存储器代码时,PSEN每个机器周期被激活两次,在访问外部数据存储器时PSEN无效访问内部程序存储器时PSEN无效。
EA:当此脚为低电平时,对ROM的操作限定在外部程序存储器,而它为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储器。 XTAL1:晶体1反相振荡放大器输入和内部时钟发生电路输入。 XTAL2:晶体2反相振荡放大器输出1。
【】
2.1.2 复位电路的设计
复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为了摆脱困境,也需要按复位键以重新启动。 在振荡器工作时将RST脚保持至少两个机器周期高电平,12时钟模式为24个振荡器周期,6时钟模式为12振荡器周期,可实现复位。为了保证上电复位的可靠RST保持高电平的时间至少为振荡器启动时间通常为几个毫秒再加上两个机器周期复位后振荡器以12时钟模式运行当已通过并行编程器设置为6时钟模式时除外。
单片机在RESET为高电平控制下,程序计数器(PC)和特殊功能寄存器的复位如表2-1所示。单片机的复位并不影响芯片内部RAM状态,只要RESET引脚保持高电平,单片机将循环复位。在复位有效期间内,ALE﹑PSEN将输出高电平1。
【】
- 5 -
基于单片机的电子音乐门铃的设计
表2-1 复位后寄存器状态
寄存器 PC ACC B PSW SP DPTR P0—P3 IP IE
复位状态 0000H 00H 00H 00H 07H 0000H 0FFH ××000000B 0×000000 寄存器 TMOD TCON TL0 TH0 TL1 TH1 SCON SBUF PCON 复位状态 00H 00H 00H 00H 00H 00H 00H 不定 0×××0000 本次设计复位电路,如图2-2所示。
VCCRESET20μFRES10kΩ图2-2 复位电路
2.1.3 时钟电路的设计
时钟电路产生与单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时
序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格的按时序进行工作。而时序所研究的则是指令执行中各信号之间的相互时间的关系。
在51芯片内部有一个高增益反向放大器,其输入端为芯片引脚XTAL1,输出端引脚为XTAL2,在芯片的外部通过这两个脚跨接晶体振荡器和微调电容,形成反馈电路,就构成一个稳定的自激振荡器[6]。如图2-3所示:
XTAL130pF12MHZ30pFXTAL2
图2-3 时钟电路的设计
内部程序存振荡晶体可在1.2MHz~12MHz之间选择,电容值无严格要求,但在电容值取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,CX1、CX2
- 6 -
XX大学毕业设计(论文)
可在20pF~100pF之间取值,但在60pF~70pF时振荡器有较高的频率稳定性。本设计选取晶振为12MHz,电容为30pH2。
【】
2.1.4 存储器的分配
AT89C51的内部共有256个数据存储器单元,通常把着256个单元按其功能划分为两部分:低128单元和高128单元。
其中内部数据存储器的分配情况如图2-4所示:
FFH特殊功能寄存器80H 7FH数据缓冲区30H2FH位寻址区128位20H1FH工作寄存器区4组R0-R710H
图2-4 内部数据存储器
- 7 -
基于单片机的电子音乐门铃的设计
2.2 时钟电路的设计 2.2.1 DS1302芯片简介
在以单片机为核心构成的装置中,经常需要一个实时的时钟和日历,以便对一些实时发生事件记录时给予时标,实时时钟芯片便可起到这一作用,过去多用并行接口的时钟芯片,如MC146818,DS12887等。它们已能完全满足单片机系统对实时时钟的要求,但是这些芯片与单片机接口复杂、占用地址,数据总线接线多、芯片体积大占用空间多,近年来串行接口的各种芯片在单片机系统中应用愈来愈多,串行接口的实时时钟芯片也出现了不少,DS1302是一个综合性能较好且价格便宜的串行接口实时时钟芯片。 2.2.2 DS1302结构框图与引脚介绍
VCC1VCC2GNDI/O电源控制实时时钟振荡器和分频器输入移位寄存器SCLKDATA BUSADDRESS BUS/RST命令和控制逻辑31*8RAM
图2-5 DS1302结构框图
1.结构框图与引脚介绍
DS1302原理框图见图2-5所示。DS1302是一种高性能、低功耗的实时时钟芯片,附加有31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可以采用突发方式,一次传送多个字节的时钟信号或RAM数据。实时时钟可以提供秒、分、时、日、星期、月和年,一个月小于31日时可自动调整,包括闰年,有效至2100年。可以采用12h或24h方式计时,采用双电源供电,可设置备用电源充电方式,同时提供了对后备电源进行涓流充电的能力。7个附加字节的暂存寄存器,包括移位寄存器、控制逻辑、振荡器、实时时钟和RAM。芯片为8引脚小型DIP封装,引脚排列如图2-6所示3。
【】
- 8 -
XX大学毕业设计(论文)
1234VCC2X1X2GNDVCC1SCLKIORST5678
图2-6 DS1302引脚排列
DS1302具有一个可编程的涓流充电器,主电源和备份电源的双电源引脚,7个附加字节的暂存寄存器,包括移位寄存器、控制逻辑、振荡器、实时时钟和RAM。引脚描述如下:
GND——电源地;
VCC1——在单电源供电系统中的电源引脚,在双电源系统中接备份电源; VCC2——在双电源供电系统中的主电源引脚,DS1302由VCC1和VCC2两者中较大者供电,当VCC2小于VCC1时,VCC1给VCC2供电;
SCLK——串行接口的同步时钟; I/O——双向数据线引脚;
/RST——复位信号,在一个读写期间必须保持高电平;
X1,X2——连接一个标准的32768HZ石英晶体。DS1302也可用外部振荡器驱动,这时X1引脚连接外部振荡器信号,X2悬浮。 2.DS1302功能:
命令字节——每次数据传输由命令字节开始,MSB(位7)必须是逻辑1,若该位是0,则禁止操作DS1302,位6为0时选择实时时钟/日历数据,位6为l时选择RAM数据,位5~l选择操作的寄存器,LSB(位0)选择写操作(逻辑0)或读操作(逻辑l)。
复位和时钟控制——数据传输的启动是由RST置为高电平开始的,RST启动控制逻辑,允许地址/命令序列送入移位寄存器,一个时钟周期是一个下降沿紧跟一个上升沿,数据输入的时候,在时钟上升沿数据必须有效;如果RST变低,所有数据传送即被终止,I/0引脚到一个高阻状态。在电源上电过程中,RST必须保持逻辑0,直到VCC大于2.0V,在RST由0变1的过程中,SCLK必须是逻辑0。
数据输入——输入命令字节8个时钟周期之后,在下8个时钟周期的上升沿输人数据,若有额外的SCLK周期是不予理睬的,数据输入开始位是位0。
数据输出——输入读命令字节8个时钟周期之后,在下8个时钟周期的下降沿数据被送出,注意:第一个数据位被送出发生在写命令字节最后一位的第一个下降沿,数据输出开始位为位04。
【】
3.DS1302的寄存器
DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字如表2-2所列。
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存
- 9 -