簡介:最近看到有朋友在網(wǎng)上問單片機怎么向電腦發(fā)送一串漢字這個問題,其實這個問題也不難.呵呵.只要把相關(guān)的參數(shù)設(shè)置好一些,然后把漢字定義成一組字符向電腦發(fā)送就可以.
為了讓大家更明確的了解,我就寫了下面的一個程序來演示一下.
操作條件:
1.XP操作系統(tǒng).
2.XP的超級終端顯示.
3.WJ-V4.0開發(fā)板.
4.單片機STC89C52.
5.晶振11.0592M
操作步驟:
1.設(shè)置TMOD設(shè)置波特率和定時器1的工作方式.
2.設(shè)置定時器的初始值.
3.設(shè)置串行口工作方式.
4.設(shè)置波特率不加倍.
5.打開TR1允許發(fā)送.
6.啟動定時器.
7.串行中斷打開.
8.打開EA中斷.
現(xiàn)在發(fā)上源代碼:
#include #define uchar unsigned char #define uint unsigned int bit FS_Bit = 0; //發(fā)送標志位 codeucharTEXT0[] = "********************************rnn"; codeucharTEXT1[] = "電子愛好者社區(qū)歡迎您!rnn"; codeucharTEXT2[] = "www.wang1jin.com!rnn"; codeucharTEXT3[] = "51免費開發(fā)板PCB贈送!rnn"; codeucharTEXT4[] = "贈送地址http://www.wang1jin.com/shop/goods.php?id=2rnn"; codeucharTEXT5[] = "********************************rnnnnn"; void Delay_Ms(uint i); //延時函數(shù) void Uart_Char(uchar Value); //發(fā)送一個數(shù)據(jù) void Prints(uchar *Value);//發(fā)送一組數(shù)據(jù) void main(void) { TMOD = 0x20; //設(shè)置波特率為9600和定時器1工作方式 TL1 = 0xFD; //設(shè)置初始值 TH1 = 0xFD; SCON = 0x50; //設(shè)置串行口工作方式 PCON = 0x00; TR1 = 1; //允許發(fā)送 ET0 = 1; //啟動定時器 ES = 1; //串行中斷允許 EA = 1; while(1) { Prints(TEXT0); //發(fā)送數(shù)據(jù) Prints(TEXT1); Prints(TEXT2); Prints(TEXT3); Prints(TEXT4); Prints(TEXT5); Delay_Ms(60000); //延時 } } void INIT_Uart(void) interrupt 4 { if(RI) //如果收到數(shù)據(jù) { RI = 0; } else { TI = 0; //發(fā)送完一個數(shù)據(jù) FS_Bit = 0; //清標志位 } } void Uart_Char(uchar Value) { SBUF = Value; //發(fā)送數(shù)據(jù) FS_Bit = 1; //設(shè)置發(fā)送標志位 while(FS_Bit); } void Prints(uchar *Value) { while((*Value) != '