單片機(jī)C語言程序設(shè)計(jì):單片機(jī)向主機(jī)發(fā)送字符串
/* 名稱:單片機(jī)向主機(jī)發(fā)送字符串
說明:單片機(jī)按一定的時(shí)間間隔向主機(jī)
發(fā)送字符串,發(fā)送內(nèi)容在虛擬終端顯示。
*/
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
//延時(shí)
void DelayMS(uint ms)
{
while(ms--) for(i=0;i<120;i++);
}
//向串口發(fā)送字符
void Putc_to_SerialPort(uchar c)
{
SBUF=c;
while(TI==0);
TI=0;
}
//向串口發(fā)送字符串
void Puts_to_SerialPort(uchar *s)
{
while(*s!='')
{
Putc_to_SerialPort(*s);
s++;
DelayMS(5);
}
}
//主程序
void main()
{
uchar c=0;
SCON=0x40; 串口模式 1
TMOD=0x20; //T1 工作模式 2
TH1=0xfd; //波特率 9600
TL1=0xfd;
PCON=0x00; 波特率不倍增
TI=0;
TR1=1;
DelayMS(200);
//向主機(jī)發(fā)送數(shù)據(jù)
Puts_to_SerialPort("Receiving From 8051...rn");
Puts_to_SerialPort("-------------------------------rn");
DelayMS(50);
while(1)
{
Putc_to_SerialPort(c+'A');
DelayMS(100);
Putc_to_SerialPort(' ');
DelayMS(100);
if(c==25) //每輸出一遍后加橫線
{
Puts_to_SerialPort("rn-------------------------------rn");
DelayMS(100);
}
}
}
if(c%10==0) //每輸出 10 個(gè)字符后換行
{
Puts_to_SerialPort("rn");
DelayMS(100);
}
擴(kuò)展閱讀:單片機(jī)之間雙向通信程序
編輯:admin 最后修改時(shí)間:2018-05-19