,然后再进行修改。
3.1.9 SA828控制寄存器编程
控制寄存器的作用包括调制波频率选择(调速)、调制波幅值选择(调压)、正反转选择、输出禁止位控制、计数器复位控制、软复位控制。控制数据仍然是通过Ro—R2寄存器输入并暂存,当向R3虚拟寄存器写操作时.将这些数据送入控制寄存器。
(1)调制波频率选择
调制波频率选择字由PFS0—PFS7这8位组成。通过下式
(3-5)求得 值,它的二进制数即是调制波频率选择字。取 =400Hz , =488.28Hz ,得 =3355.45179
(2)调制波幅值选择
通过改变调制波幅值来改变输出电压有效值,达到变频同时变压的目的。输出电压的改变要根据U/f曲线,随频率变化进行相应的变化。调制波幅值是借助于8位幅值选择字(RAMP、YAMP、BAMP)来实现的。每一相都可以通过计算下式
% (3-6)
求出A值,它的二进制数即为幅值选择字(即RAMP或YAMP或BAMP)。式中的
就是调压比 ,注意,初始化寄存器的AC位决定了R相幅值是否代表另二相幅值。
= =91.8=92
(3)输出禁止位控制
输出禁止位 。当 =0时,关断所有SPWM信号输出。
(4)计数器复位控制
计数器复位位 ,当 =0,使内部的相计数器置为0(R相)。
(5)软复位控制
RST是软复位位。它与硬复位 有相同的功能。高电平有效。
SPWM波形的产生,选择专用的芯片SA828,如前面所讲,这里不再论述。它和单片机的接口如下图所示:
3.2 系统软件的设计
3.2.1 初始化程序
系统上电时,初始化程序将数据存储区清零。
3.2.2 主程序
完成定时器的初始化,开各种中断,循环调用各个子程序。包括电压显示子程序、A\D转换子程序、828初始化子程序。主程序流程图见图
程序清单如下:
START: SETB IT1 ;选择INT1为边沿触发方式
SETB EX1 ;开外中断1
SETB EA ;开总控制中断
CLR PX1 ;外中断1为低优先级
SETB IT0 ;脉冲下降沿触发外中断0
SETB EX0 ;开外中断0
MOV TMOD,#01H ;T0工作在定时,方式1
SETB PX0 ;外中断0为高优先级
MOV TH0,#00H
MOV TL0,#00H
ACALL KAISHI
ACALL INCADC
AJMP START
3.2.3 SA838初始化及控制子程序
按照单片机与SA828的接线图,P2.0作为SA828的片选控制口,因此SA828的起始地址为FE00H。系统上电复位之后首先对SA828写初始化字和控制字。具体计算如前面所述。流程图如下:
程序清单如下:
CLR P2.1 ;禁止PWM输出
MOV A,#80H ;SA828初始化寄存器
MOV DPTR,#0FE0
0H ;SA828地址
MOVX @DPTR,A ;给R0写数据
INC DPTR
MOV A,#60H
MOVX @DPTR,A ;给R1写数据
INC DPTR
MOV A,#04H
MOVX @DPTR,A ;给R2写数据
INC D