/****************************************************************************
* 文 件 名: Uart.c
* 作 者: caipan
* 修 订: 2016-01-11
* 版 本: 1.0
* 描 述: 适用于STC15W4K 系列单片机 115200波特率 晶振30MZ
结束符 '\n'
****************************************************************************/
#include<STC15W4K60S4.h>
#include<Uart.h>
uint flag=0;
uint Uart_flag1=0,Uart_flag2=20,Uart_flag3=0;
uchar UartRead[20];
uchar code table[12]={'0','1','2','3','4','5','6','7','8','9','-','.'};
void UartInit(void) //115200bps@30.000MHz
{
PCON |= 0x80; //使能波特率倍速位SMOD
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x40; //定时器1时钟为Fosc,即1T
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0x70; //设定定时初值
TH1 = 0x70; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
ES = 1; //使能串口中断
EA = 1; //使能全局中断
TR1 = 1; //启动定时器1
}
void UartWrite(uchar *Data,uint len)
{
int i;
for(i=0;i<len;i++)
{
SBUF = *Data++;
while(!TI);
TI=0;
}
}
void UartWriteByte(uchar Data)
{
SBUF = Data;
while(!TI);
TI=0;
}
void UartW_D(float Data,uchar intlen,uchar flolen)
{
uchar i,j=0,k=0;
long int Data1=1,Data2=1,Da1;
float Da2;
uchar Data3[10];
if(Data<0)
{
Data=-Data;
Data3[0]=10;
j=1;
}
Da1=(uint)Data;
Da2=Data-Da1;
for(i=0;i<intlen;i++)
{
if(i+2>intlen)
Data3[j]=Da1/Data1;
else
Data3[intlen-i-1+j]=(Da1/Data1)%10;
Data1=Data1*10;
}
if(flolen!=0)
{
Data3[intlen+j]=11;
k=1;
}
for(i=0;i<flolen;i++)
{
Data2*=10;
Data3[intlen+j+i+1]=(uint)(Da2*Data2)%10;
}
for(i=0;i<10;i++)
UartRead[i]=table[Data3[i]];
UartWrite(&UartRead,intlen+flolen+j+k);
}
void Uart() interrupt 4 using 1
{
if(RI)
{
RI=0;
UartRead[flag] = SBUF;
}
if(SBUF=='\n')
{
Uart_flag3=flag+1;
flag=0;
Uart_flag1=1;
}
else
{
flag++;
Uart_flag3=0;
}
if(flag>=Uart_flag2)
{
flag=0;
}
}
Uart.rar_uart发送负数_单片机
版权申诉
190 浏览量
2022-09-24
08:44:50
上传
评论 1
收藏 50KB RAR 举报
钱亚锋
- 粉丝: 88
- 资源: 1万+
最新资源
- WordsVector (1).ipynb
- 20240429_112025.m4a
- 91fdd461elb59a4ce8dfcfc46bc283a7.msi
- Image_1715565894150.jpg
- 899433453404498北京市.zip
- Oracle Instant Client for Linux x86-64 (64-bit) Version 11.1.0.7
- dataExpr.tom-block.1.RData
- 实战验证过的最新远程Tomcat调试方式(基于IDEA2023/2024, JDK1.8, TOMCAT9, WIN10的)
- 200SMART与V20变频器RTU通讯.smart
- 天使插件4.019版-成品
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0