本意是想串口發(fā)送一次字符串,但是卻一直重復(fù)發(fā)送了。
程序代碼如下:
#include<stc12c5a60s2.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
void delay_ms(uint x)
{ uint j;
for(;x>0;x--)
for(j=125;j>0;j--);
}
void uart_init() //串口初始化
{
SCON=0x50; //串口方式1
TMOD=0x20; //T1采用定時方式2
TH1=TL1=0xfd;//9600b/s
PCON=0; //波特率不加倍
TR1=1;
}
void uart1_send_byte(uchar byte)
{
SBUF = byte;
while(!TI); //等待發(fā)送完成
TI=0; //清TI標志位
}
//串口1 發(fā)送 字符串
void uart1_send_string(uchar *str)
{
while(*str!='\0')
{
uart1_send_byte(*str++);
}
}
void main()
{
uart_init();
delay_ms(100);
uart1_send_string("yes,you can!\r\n");
delay_ms(500);
}
|