DS18B20温度数据采集上报
立即下载
资源介绍:
DS18B20温度数据采集上报
#include
#include "usart0.h"
//1.串口初始化
void Init_USART0()
{
//1.切换系统时钟为32Mhz
CLKCONCMD &= ~(1<<6); //切换系统时钟源为32Mhz外部晶振
while(CLKCONSTA & 0X40); //等待系统时钟稳定
CLKCONCMD &= ~(7<<0); ///000:32Mhz,设置系统时钟频率为32Mhz
//1.IO配置成外设
PERCFG &= ~(1<<0);//将P0_2 P0_3设为USART0的备用位置1
//P2SEL P2DIR 设置USART0的优先级为最高,采用默认值
P0SEL |= (3<<2); //将P0端口对应位的功能设为外设功能
//2.串口的初始化
U0CSR |= (1<<7); //选择USART模式为异步UART模式
U0UCR |= (1<<7); //清除单元,其他的都是采用默认值:
//异步通信的数据格式:
//起始位低电平,停止位高电平,1位停止位,禁用奇偶校验
//8位传送,流控制禁止
U0BAUD = 216;//这两条共同决定UART的波特率,设为115200bps
U0GCR = 11;
//U0BAUD = 59;
//U0GCR = 8;
URX0IF=0;//清标志
URX0IE = 1;//使能接收中断
EA = 1;//使能总中断
U0CSR |= (1<<6);//使能接收器
}
//发送一个字节
void SendByte(char dat)
{
U0DBUF = dat;
while(UTX0IF==0);//等待发送完成
UTX0IF = 0; //清除发送完成的标志
}
//发送字符串
void SendString(unsigned char* str)
{
while(*str != '\0')
{
SendByte(*str++);
}
}