#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++);
}
} |