图10 LCD1602的RAM地址映射
3.3.2 LCD1602接口电路
LCD1602与AT89C51单片机连接如图11所示:
图11 LCD1602与STC89C51连接图
3.4 电源模块
本模块为直流供电,当有电源供电时,直流5V的电源模块,或直接使用USB供电,亦可使用三到四节电池供电,本样机采用的是电池供电。
3.4 单片机STC89C51模块
STC系列单片机是美国STC公司最新推出的一种新型51内核的单片
机。片内含有Flash程序存储器、SRAM、UART、SPI、A\\D、PWM等模块。该器件的基本功能与普通的51单片机完全兼容。
图13 89C51单片机的引脚功能说明
(1)VCC:电源电压 (2)GND:接地
(3)P0口:P0口是一组8位漏极开路型双向IO口,也即地址数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复位,在访问期间激活内部上拉电阻。
(4)P1口:P1是一个带内部上拉电阻的8位双向IO口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTE逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(ILL)。
与AT89C51不同之处是,P1.0和P1.1还可分别作为定时计数器2的外部计数输入(P 1.0T2)和输入(P 1.1T2EX ),参见表2。
Flash编程和程序校验期间,P1接收低8位地址。
表2 P1.0和P1.1的第二功能
引 脚 号 功能特性 P1.0 P1.1 T2(定时计数器2外部计数脉冲输入),时钟输出 T2EX(定时计数2捕获重装载触发和方向控制) (5) P2口:P2是一个带有内部上拉电阻的8位双向IO口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(ILL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX RI指令)时,P2口输出P2锁存器的内容。
(6)P3口:P3口是一组带有内部上拉电阻的8位双向IO口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(ILL)。
P3口除了作为一般的IO口线外,更重要的用途是它的第二功能,如表3所示。
(7)RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
表3 P3口的第二功能
端口引脚 P3.0 第二功能 RXD(串行输入口)
P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 TXD(串行输出口) (外中断0) (外中断1) T0(定时计数0) T1(定时计数1) (外部数据存储器写选通) (外部数据存储器读选通) (8)VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH ) 。端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存端状态。
如端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。 Flash存储器编程时,该引脚加上+12V的编程允许电源VPP,当然这必须是该器件是使用12V编程电压VCC 。
(9)XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。 (10)XTAL2:振荡器反相放大器的输出端。 (11)数据存储器:
89C51有256个字节的内部RAM,80H-FFH高128个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128。
字节的RAM和特殊功能寄存器的地址是相同的,但在物理上它们是分开的。
当一条指令访问7FH以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高128字节。
RAM还是访问特殊功能寄存器。如果指令是直接寻址方式则为访问特殊功能寄存器。
(12)中断:
89C51共有6个中断向量:两个外中断(INT0和INT1),3个定时器中