mcs51 串口收发
源码:
/* 11.0592MHz, 波特率1200 */
#include<reg51.h>
#include<stdio.h>//头文件
typedef unsigned int uint;
/*********************************************************
// delay(255); //当参数为char时时间为0.55881ms 参数
//为整形时时间为2.22005ms,基本上相当于4倍
// delay(100); //0.22244ms 0.87457ms
// delay(200); //0.43945ms
// delay(1); //3.26us
*********************************************************/
void delay(uint n)
{
while(--n);
}
void delay1()
{
uint a = 0x50;
while(--a)
delay(255);
}
void main(void)//主程序
{
P1=0xFF;
SCON=0x50;//串口方式1,允许接收
TMOD=0x20;//定时器1,定时方式2
TCON=0x40;//设定时器1开始计数
TH1=0xE8;//11.0592MHz, 1200波特率
TL1=0xE8;
IE = 0x90;
TI=1;
TR1=1;
while(1)
{
delay1();
printf("Hello ni hao!");
}
/* 串口接收中断函数 */
}
void serial () interrupt 4 using 3
{
if (RI)
{
RI = 0;
if(P1==0xFF)
P1=0x00;
else
{
P1=0xFF;
}
}
}