翻斗量油仪的设计
图4 内部震荡电路 图5 晶振电路
单片机的CPU:
STC5A60S2单片机的CPU由运算器、控制器和若干个特殊功能寄存器组成,运算器可以加、减以及各种逻辑运算,还可以进行乘除运算。控制器在单片机内部协调各功能部件之间的数据传送、数据运算等操作,并对单片机外部发出若干控制信息。
CPU中使用的特殊功能寄存器ACC、B、PSW、SP和DPTR。ACC就是累加器,在指令中一般写为A。在做乘除运算时,B寄存器用来存放一个操作数,也用来存放运算后的一部分结果;若不作乘除操作时,则B可用做通用寄存器。
程序状态字寄存器PSW相当于一般微处理器中的状态寄存器,其中各位的定义如表1所示。
表2 PSW状态寄存器
位地址 D7 符号 CY D6 AC D5 F0 D4 RS1 D3 RS0 D2 OV D1 - D0 P 其中各位的意义如下:
CY(PSW.7):高位进位标志位。常用“C”表示。 AC(PSW.6):辅助进位标志。 F0(PSW.5):用户标志位。
RS1(PSW.4)、RS0(PSW.3):寄存器组选择控制位。8051共有4个8位工作寄存器。 分别命名为R0~R7。用户通过改变RS1和 RS0的状态可以方便地决定R0~R7的实 际物理地址。RS1和 RS0与寄存器区的对应关系如表2所示。
第 12 页 共 48 页
硬件设计
表3 RS1、RS2与工作寄存器组的关系
RS1 0 0 1 1 RS0 0 1 0 1 寄存器组 0 1 2 3 RAM中的地址 00H-07H 08H-0FH 10H-17H 18H-1FH OV(PSW.2):溢出标志位。 -(PSW.1):保留位,无定义。
P(PSW.0):奇偶校验位,在每一个指令周期中,若累加器(A)中的“1”的位个数是奇数个则P=1,偶数个则P=0。 STC12C5A60S2内存空间:
从物理地址空间看,STC12C5A60S2有4个存储器地址空间,片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器,其存储情况如下: (1)内部程序存储器(ROM)60K字节。 (2)外部程序存储器(ROM)64K字节。 (3)内部数据存储器(RAM)1K字节。 (4)外部数据存储器(RAM)1024字节。
表4 MCS51单片机的特殊功能寄存器一览表
寄存器符号 *ACC *B *PSW SP DPTR *P0 *P1 *P2 *P3 *IP
名称 累加器 B寄存器 程序状态字 堆栈指针 数据指针(DPH、DPL) P0口锁存器 P1口锁存器 P2口锁存器 P3口锁存器 中断优先级控制寄存器 第 13 页 共 48 页
字节地址 E0H F0H D0HH 81H 83H(高)、82H(低) 80H 90H A0H B0H B8H 翻斗量油仪的设计
*IE TMOD *TCON TH0 TL0 TH1 TL1 *SCON SBUF PCON 中的允许控制寄存器 定时器/计数器方式控制寄存器 定时器/计数器控制寄存器 定时器/计数器0(高字节) 定时器/计数器0(低字节) 定时器/计数器1(高字节) 定时器/计数器1(低字节) 串行控制寄存器 串行数据缓冲器 电源控制寄存器 A8H C8H 88H 8CH 8AH 8DH 8BH 98H 99H 97H STC12C5A60S2单片机的片内RAM虽然字节数虽然不很多,但却起着很重要的作用。256个字节被分为两个区域:11~7FH是真正的RAM区,可以读写各种数据;80~FFH是专用寄存器(SFR)区。对于51系列单片机安排里21个特殊功能寄存器。每个寄存器均为8位(一个字节),所以实际上这128个字节并未全部利用。表3所示为MCS51单片机特殊功能寄存器地址及符号表。表中带*号的为可位寻址的特殊功能寄存器。
单片机的中断系统:
单片机与外部设备交换信息一般采用两种方式,即查询方式和中断方式。由于中断方式具有CPU效率高,适合于实时控制系统等优点,因而更为常用。89C51单片机的中断系统从面向用户的角度来看,就是若干搁特殊功能寄存器:定时器控制寄存器TCON、中断允许寄存器IE、中断优先级寄存器IP、串行口控制器SCON。
MCS51单片机是一个多中断源系统。有5个中断源,即两个外部中断,两个外部中断、两个定时器/计数器中断和一个串行口中断。 (1)方式控制寄存器TMOD的控制字格式如
表5 TMOD控制字
位地址 符号 D7 GATE D6 D5 D4 M0 D3 GATE D2 C/T D1 M1 D0 M0 C/T M1 低4位为T0的控制字,高4位为T1的控制字。GATE为门控位,对定时器/计数
第 14 页 共 48 页
硬件设计
器的启动起辅助控制作用。GATE=1时,定时器/计数器的计数受外部引脚输入电平的控制,此时只有P3口的P3.2(或P3.3)引脚即INT0(或INT1)为1才启动计数;GATE=0时,定时器/计数器的运行不受外部输入引脚的控制。
C/T为方式选择位。C/T=0为定时器方式,采用单片机内部振荡脉冲的12分频信号人作为时钟计数脉冲,若采用12MHz的振荡器,则定时器的计数频率为1MHz,从定时器的计数值便可得定时时间。
(2)M1、M0二位的状态确定定时器的工作方式,详见下表:
表6 M1、M0功能说明
M1 0 0 1 1 M0 0 1 0 1 功能说明 方式0,为13位定时器/计数器 方式1,为16位定时器/计数器 方式2,为常数自动重新装入的8位定时器/计数器 方式3,仅适用于T0,分为二个8位计数器 (3)TCON定时/计数器工作方式控制寄存器
表7 TCON控制字
位地址 8FH 符号
TF1 8EH 8DH TR1 TF0 8CH TR0 8BH IE1 8AH IT1 89H IE0 88H IT0 TF1(TCON.7):计时器 1溢出标志,当计时溢出时,由硬件设定为 1,在执行 相对的中断服务程序后则自动清 0。
TR1(TCON.6):计时器1启动控制位,可以由软件来设定或清除。TR1时启
动计时器工作,TRl=0 时关闭。
TF0(TCON.5):计时器 0溢出标志,当计时溢出时,由硬件设定为 1,在执
行相对的中断服务程序后则自动清 0。
TR0(TCON.4):计时器 0启动控制位,可以由软件来设定或清除。TR0=1时,启动计时器工作,TR0=时关闭。
IE1(TCON.3):外部中断 1工作标志,当外部中断被检查出来时,硬件自动设定此位,在执行中断服务程序后,则清 0。
IT1 (TCON.2):外部中断 1工作形式选择,IT1=1时,由下降缘产生外部中断,
第 15 页 共 48 页
翻斗量油仪的设计
IT1=0时,则为低电位产生中断。
IE0(TCON.1):外部中断 0 工作标志,当外部中断被检查出来时,硬件自动设定此位,在执行中断服务程序后,则清 0。
IT0 (TCON.0):外部中断 0工作形式选择,IT1=1时,由下降缘产生外部中断, IT1=0时,则为低电位产生中断。
(4) SCON串行口控制寄存器
SM0(SCON.7):串行通讯工作方式设定位0。 SM1(SCON.6):串行通讯工作方式设定位 1。
表8 SCON 控制字
位地址 符号 9FH SM0 9EH SM1 9DH SM2 9CH REN 9BH TB8 9AH RB8 99H TI 98H RI SM2 (SCON.5):允许方式 2 或方式 3 多机通讯控制位。在方式 2 或方式 3 时,如SM2=1,REN=1,则从机处于只有接收到 RB8=1(地址帧)才激发中断请求标志RI=1,向主机请求中断处理。被确认为寻址的从机复位SM2=0,才能接收 RB8=0 的数据帧;在方式 1 时,如 SM2=l,则只有在接收到有效停止位时才置位中断请求标志位RI=1;在方式0时,SM2应为 0。
REN(SCON.4):REN,允许/禁止串行接收控制位。由软件置位REN=1为允许串行接收状态,可启动串行接收器RXD,开始接收信息。软件复位REN=0,则禁止接收。
TB8(SCON.3):在方式2或方式3,它为要发送的第 9位数据,按需要由软件置位。
(5)IE中断允许寄存器
表9 IE控制字
位地址 AF 符号 EA - - AD ET2 AC ES AB ET1 AA EX1 A9 ET0 A8 EX0 EA(IE.7):EA=0时,所有中断停用(禁止中断)。EA=1时,各中断的产生由个别
EA(IE.7):EA=0时,所有中断停用(禁止中断)。EA=1时,各中断的产生由个别的允许位决定。
第 16 页 共 48 页