串口向电脑发送数据
串口向电脑发送数据:
#include<reg52.h>
#include"delay.h" //调用延时函数
void UartInit(void) //4800bps@12.000MHz
{
PCON |= 0x80; //使能波特率倍速位SMOD
SCON = 0x50; //8位数据,可变波特率
TMOD &= 0x0F; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xF3; //设定定时初值
TH1 = 0xF3; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
}
//以上部分为使用烧录软件得来编码
void UART_Init() //Init:初始化
{
SCON=0X40;
PCON |=0x80; //配置相关串口寄存器,选择波特率,配置t1定时器
TMOD &= 0x0F; //设置定时器模式,高四位清零
TMOD |= 0x20; //设置定时器模式:0010 0000
TL1 = 0xF3; //设定定时初值
TH1 = 0xF3; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
}
void UART_SendByte(unsigned char Byte)
{
SBUF=Byte; //发送
while(TI==0) //检测是否发送完成
TI=0;
}
void main()
{
UART_Init() ;
UART_SendByte(0x66);
while(1)
{
}
}
串口模块化:
UART.c
#include<reg52.h>
void UartInit(void) //4800bps@12.000MHz
{
PCON |= 0x80; //使能波特率倍速位SMOD
SCON = 0x50; //8位数据,可变波特率
TMOD &= 0x0F; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xF3; //设定定时初值
TH1 = 0xF3; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
}
void UART_SendByte(unsigned char Byte)
{
SBUF=Byte; //发送
while(TI==0) //检测是否发送完成
TI=0;
}
UART.h
#ifndef __UART_H_
#define __UART_H_
void UartInit()
void UART_SendByte(unsigned char Byte)
#endif
程序改进为:

利用烧录软件:


3967

被折叠的 条评论
为什么被折叠?



