#include "STC8G.H"
// 串口发送"你好世界"的GB2312编码对照表:
// "你"的GB2312编码:0xC4, 0xE3
// "好"的GB2312编码:0xBA, 0xC3
// "世"的GB2312编码:0xCA, 0xC0
// "界"的GB2312编码:0xBD, 0xE7
void main()
{
unsigned int i;
// 配置P3.1引脚模式(串口TXD引脚,推挽输出)
P3M0 = 0x02;
// 串口初始化配置
SCON = 0x40; // 串口工作模式1(8位UART,波特率可变)
TMOD = 0x20; // 定时器1工作模式2(8位自动重装)
TH1 = 0xE8; // 定时器1重装值,对应1200波特率(11.0592MHz晶振)
TL1 = 0xE8;
TR1 = 1; // 启动定时器1(作为串口波特率发生器)
// 上电延时,确保硬件稳定
for(i = 0; i < 60000; i++);
while(1)
{
// 发送"你"(GB2312双字节编码)
SBUF = 0xC4; while(!TI); TI = 0;
SBUF = 0xE3; while(!TI); TI = 0;
// 发送"好"(GB2312双字节编码)
SBUF = 0xBA; while(!TI); TI = 0;
SBUF = 0xC3; while(!TI); TI = 0;
// 发送"世"(GB2312双字节编码)
SBUF = 0xCA; while(!TI); TI = 0;
SBUF = 0xC0; while(!TI); TI = 0;
// 发送"界"(GB2312双字节编码)
SBUF = 0xBD; while(!TI); TI = 0;
SBUF = 0xE7; while(!TI); TI = 0;
// 发送回车+换行符,优化串口显示格式
SBUF = '\r'; while(!TI); TI = 0;
SBUF = '\n'; while(!TI); TI = 0;
// 延时约1秒,控制发送频率
for(i = 0; i < 12000; i++);
}
} |