#include "system.h" #include "stc8a8k64s4a12.h" void Init_Serial(void) { SCON=0X50; PCON=0X80; ES=1; EA=1; TMOD=0X20; AUXR=0X00; TL1=243; //9600 TH1=243; TR1=1; } void UART_SendByte(unsigned char Byte) { SBUF=Byte; while(TI==0); TI=0; } void main() { unsigned int i; System_Init(); Init_Serial(); P3_Mode_PullUp(PIN_0|PIN_1); P2_Mode_OUT_PP(0XFF); // SBUF=0XAA; while(1) { // for(i=0;i<50000;i++); // SBUF=0XAA; } } void s_int(void) interrupt 4 { if(TI==1) { TI=0; } if(RI==1) { RI=0; P2=SBUF; UART_SendByte(SBUF); } } 标注每一行代码的注释
时间: 2024-03-09 07:50:45 浏览: 52
STC8A8K64S4_LED_stc8_STC8A8K64S4A12_STC8A8K64S412_
这是一段8051单片机的代码,以下是每一行代码的注释:
```c
#include "system.h" // 包含系统头文件
#include "stc8a8k64s4a12.h" // 包含单片机头文件
void Init_Serial(void) { // 初始化串口
SCON=0X50; // 初始化串口控制寄存器
PCON=0X80; // 波特率不加倍
ES=1; // 使能串口中断
EA=1; // 使能总中断
TMOD=0X20; // 设置定时器1为8位自动重装定时器
AUXR=0X00; // 定时器1时钟为Fosc/12
TL1=243; //9600
TH1=243;
TR1=1; // 启动定时器1
}
void UART_SendByte(unsigned char Byte) { // 串口发送一个字节
SBUF=Byte; // 将要发送的字节写入串口缓冲区
while(TI==0); // 等待发送完成
TI=0; // 清除发送完成标志位
}
void main() {
unsigned int i; // 定义一个无符号整型变量i
System_Init(); // 系统初始化
Init_Serial(); // 初始化串口
P3_Mode_PullUp(PIN_0|PIN_1); // P3.0和P3.1端口设置为上拉输入
P2_Mode_OUT_PP(0XFF); // P2端口设置为推挽输出
//SBUF=0XAA; // 发送0xaa
while(1) { // 无限循环
//for(i=0;i<50000;i++); // 延时
//SBUF=0XAA; // 发送0xaa
}
}
void s_int(void) interrupt 4 { // 串口中断服务函数
if(TI==1) { // 如果发送完成标志位为1
TI=0; // 清除发送完成标志位
}
if(RI==1) { // 如果接收完成标志位为1
RI=0; // 清除接收完成标志位
P2=SBUF; // 将接收到的字节写入P2端口
UART_SendByte(SBUF); // 发送接收到的字节
}
}
```
阅读全文