MOV SCON,#00H MOV P1,#0FFH LOOP: MOV A,P1 MOV SUBF,A JNB TI,$ CLR TI SJMP LOOP将这段程序改为C51
时间: 2024-02-10 07:44:39 浏览: 248
SCON的中断标志-单片机学习
以下是 C51 语言的代码实现:
```c
#include <reg52.h>
void main() {
TMOD = 0x20; // 设置定时器1为方式2
TH1 = 0xFD; // 波特率为9600
SCON = 0x50; // 8位数据,可变波特率
TR1 = 1; // 启动定时器1
P1 = 0xFF; // 初始化P1
while(1) {
ACC = P1; // 将P1的值赋给ACC
ACC = ~ACC + 1; // 取反加1,得到相反数
while(!TI); // 等待发送完成
TI = 0; // 清除发送标志
SBUF = ACC; // 发送数据
}
}
```
这段代码的功能与原来的汇编代码相同,都是将P1的值取反后发送出去。
阅读全文