求助:单片机通过串口连续发送数据0-99的c程序
答案:1 悬赏:20
解决时间 2021-01-22 02:06
- 提问者网友:抽煙菂渘情少年
- 2021-01-21 12:39
求助:单片机通过串口连续发送数据0-99的c程序
最佳答案
- 二级知识专家网友:底特律间谍
- 2021-01-21 13:51
#include "reg2.h"
#include
typedef unsigned char uchar;
typedef unsigned int uint;
bit busy;
bit Flag;
uchar GetC;
void InitUART(void);
void SendData(uchar dat);
void SendString(uchar *s);
void main()
{
uchar i;
InitUART();
SendString("Uart Test !\r\n");
while(1)
{
for(i=0;i<100;i++)
SendData(i);
}
}
void InitUART(void)
{
SCON = 0x50; //8位可变波特率
TMOD = 0x20; //定时器1为模式2(8位自动重载)
TL1 = 0xFD; //设置波特率重装值
TH1 = 0xFD;
TR1 = 1; //定时器1开始工作
ES = 1; //使能串口中断
EA = 1;
}
void Uart() interrupt 4 using 1
{
if (RI)
{
RI = 0; //清除RI位
GetC = SBUF; //P0显示串口数据
Flag=1;
}
if (TI)
{
TI = 0; //清除TI位
busy = 0; //清忙标志
}
}
void SendData(uchar dat)
{
while (busy); //等待前面的数据发送完成
busy = 1;
SBUF = dat; //写数据到UART数据寄存器
}
void SendString(uchar *s)
{
while (*s) //检测字符串结束标志
{
SendData(*s++); //发送当前字符
}
}
#include
typedef unsigned char uchar;
typedef unsigned int uint;
bit busy;
bit Flag;
uchar GetC;
void InitUART(void);
void SendData(uchar dat);
void SendString(uchar *s);
void main()
{
uchar i;
InitUART();
SendString("Uart Test !\r\n");
while(1)
{
for(i=0;i<100;i++)
SendData(i);
}
}
void InitUART(void)
{
SCON = 0x50; //8位可变波特率
TMOD = 0x20; //定时器1为模式2(8位自动重载)
TL1 = 0xFD; //设置波特率重装值
TH1 = 0xFD;
TR1 = 1; //定时器1开始工作
ES = 1; //使能串口中断
EA = 1;
}
void Uart() interrupt 4 using 1
{
if (RI)
{
RI = 0; //清除RI位
GetC = SBUF; //P0显示串口数据
Flag=1;
}
if (TI)
{
TI = 0; //清除TI位
busy = 0; //清忙标志
}
}
void SendData(uchar dat)
{
while (busy); //等待前面的数据发送完成
busy = 1;
SBUF = dat; //写数据到UART数据寄存器
}
void SendString(uchar *s)
{
while (*s) //检测字符串结束标志
{
SendData(*s++); //发送当前字符
}
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯