void SystemInit() { TMOD=0X21; TH0=THC0; TL0=TLC0; TH1=0xC0; TL1=0XC0; ET1=1; ET0=1; TR0=1; TR1=1; EX0=1; IT0=1; EA=1; e =0; e1=0; e2=0; IN1 = 1; IN2 = 0; }将这一段51程序改成128的程序
时间: 2023-08-05 11:05:02 浏览: 81
要将这段程序改成128的程序,需要进行以下几个方面的修改:
1. 修改寄存器名称:128的寄存器名称和51单片机的寄存器名称不同,需要将TMOD、TH0、TL0、TH1和TL1等寄存器名称修改为对应的128寄存器名称。
2. 修改中断向量表:128的中断向量表和51单片机的中断向量表不同,需要将EX0对应的中断向量地址修改为128的中断向量表中对应中断的地址。
3. 修改相关的IO端口和引脚:由于128的IO端口和引脚不同于51单片机,需要将IN1和IN2等IO端口和引脚修改为对应的128的IO端口和引脚。
修改后的128程序如下:
```
void SystemInit() {
T2CON=0X01; // 设置 T2 的定时器工作模式
TMR2=THC0; // 初始化 T2 的计数器的初值
TMR3H=0xC0; // 初始化 T3 的计数器的高8位初值
TMR3L=0xC0; // 初始化 T3 的计数器的低8位初值
TMR2IE=1; // 允许 T2 中断
TMR3IE=1; // 允许 T3 中断
INTCON=0xC0; // 允许外部中断 INT0,同时设置为下降沿触发
PEIE=1; // 允许外设中断
GIE=1; // 全局中断允许
e =0; // 初始化变量 e
e1=0; // 初始化变量 e1
e2=0; // 初始化变量 e2
TRISB0 = 1; // 设置 RB0 为输入
TRISB1 = 0; // 设置 RB1 为输出
}
```
需要注意的是,128的寄存器名称和中断向量表地址可能会因具体型号而有所不同,具体修改时需要根据实际情况进行调整。
阅读全文