基于单片机的宠物喂食器电路设计
3 硬件电路的设计
3.1 单片机
3.1.1 AT89S52单片机的简介
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 3.1.1.1 主要性能
与MCS-51单片机产品兼容 8K字节在系统可编程Flash存储器 1000次擦写周期 全静态操作:0Hz~33Hz 三级加密程序存储器 32个可编程I/O口线 三个16位定时器/计数器 八个中断源
全双工UART串行通道 低功耗空闲和掉电模式 掉电后中断可唤醒 看门狗定时器 双数据指针 掉电标识符
3.1.1.2 AT89S52双列直插式引脚图
3
基于单片机的宠物喂食器电路设计
T2/P1.0T2EX/P1.1P1.2P1.3P1.4MOSI/P1.5MISO/P1.6SCK/P1.7RSTRXD/P3.0TXD/P3.1INT1/P3.3INT0/P3.2T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1GND1234567891011121314151517181920AT89S524039383736353433323130292827262524232221VCCP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7EA/VPPALE/PROGPSENP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A8
图2.1 AT89S52双列直插式引脚图
3.1.1.3 端口介绍
P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。
P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。在flash编程和校验时,P1口接收低8位地址字节。
P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4
4
基于单片机的宠物喂食器电路设计
个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:P3口是一个具有内部上拉电阻的8位双向I/O 口,p2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用。在flash编程和校验时,P3口也接收一些控制信号。 3.1.2 AT89S52的时钟介绍
单片机的工作过程是:取一条指令、译码、进行操作,再取一条指令、译码、进行微操作,这样自动的一步一步的由微操作依序完成相应指令规定的功能。各指令的微操作在时间上由严格的次序,各种微操作的时间次序称作为时序。 3.1.2.1 AT89S52的时钟信号产生方式
AT89S52单片机的时钟信号通常有两种产生方式:一是内部时钟方式,二是外部时钟方式。
内部时钟方式如图2.2所示。在AT89S52单片机内部有一振荡电路,只要在单片机的XTAL1和XTAL2引脚外接石英晶体,就构成了自激振荡器并在单片机内部产生时钟信号。图中电容器C1、C2的作用是稳定频率,快速起振,电容值在5~30pF;晶振CYS的振荡器频率为1.2~12MHz。
图2.2 内部时钟方式
5
基于单片机的宠物喂食器电路设计
外部时钟方式是把已有时钟信号引入到单片机内,如图2.3所示。此方式多用于多片AT89S52单片机同时工作。以便于各单片机同步。一般要求外部信号高电平的持续时间大于20ns,且为频率低于12MHz的方波。对于采用CHMOS工艺的单片机,外部时钟主要由XTAL1端引入,而XTAL2端引脚应悬空。
图2.3 外部时钟方式
3.1.2.2 AT89S52的时钟信号
晶振周期为最小的时序单元。晶振信号经分频器形成两相错开的时钟信号P1和P2.时钟信号的周期也称为S状态,它是晶振周期的两倍。即一个时钟周期包含两个晶振周期。在每个时钟周期的前半周期,相位1有效,在每个时钟周期的后半周期,相位2有效。每个时钟周期有两个节拍P1和P2,CPU以两相时钟P1和P2为基本节拍指挥各个部件协调工作。
晶振信号12分频后形成机器周期。一个晶振周期包含12个晶振周期或6个时钟周期。因此每个机器周期的12个晶振脉冲可以表示为S1P1 S2P2……S6P6。晶振周期和机器周期是单片机内计算其他时间值的基本时序单位。如晶振频率为12HZ,则机器周期为1us,指令周期为1-4us。 3.1.3 单片机中断的介绍
在设计中用到了外部中断INT0/INT1和定时器T0。它们的中断请求标志分别为IE0,IE1和TF0。这些中断请求标志位分别由特殊功能寄存器TCON和TMOD的相应位锁存。在这个设计中,中断允许寄存器是首要介绍的。
3.1.3.1 中断允许寄存器IE控制CPU对中断源的开放或屏蔽。
中断的开放和屏蔽实现2级控制,一个总开关中断控制所有的中断。 IE的格式如下:
6
基于单片机的宠物喂食器电路设计
IE EA ES ET1 EX1 ET0 EX0
位地址 AFH ACH ABH AAH A9H A8H
当EA=0时,所有的中断请求被屏蔽,CPU不接受任何请求。
当EA=1时,CPU开中断,此时只要五个中断源的中断请求允许为1,则开中断。 3.1.3.2 TMOD-工作方式控制寄存器
用于选择定时器/计数器的工作模式,字节地址为89H,8位分2组,高4位控制T1,低4位控制T0,其格式如下:
D7
D6
D5
D4
D3
D2
D1
D0
TMOD GATE C/T M1 M0 GATE C/T M1 M0
下面对工作方式选择位做说明:
M1 M0---工作方式选择位,M1 M0共有4种编码,分别对应4种工作方式。如表1:
表1 工作方式选择
M1 M0
工作方式
0 0 方式0,为13位定时器/计数器
0 1 方式1,为16位定时器/计数器
1 0 方式2,8位的常数自动重新装载的定时器/计数器
1 1 方式3,仅适应于T0,T0分为两个8位的计数器,停止计数
中断的触发方式:电平触发方式和下降沿触发方式。 3.2 电源电路
7