注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
825cow的个人空间 https://home.eeworld.com.cn/space-uid-449920.html [收藏] [复制] [分享] [RSS]
日志

51单片机之串口通信(二)

已有 702 次阅读2015-12-29 00:20 |个人分类:51单片机| 单片机, 通信

现在来了解一下单片机作为发送程序的讲解:
实现内容:实现单片机从0开始发送,累加,并在电脑串口助手上显示
注意:在显示的时候应该以HEX文件形式显示

/*
项目名称:串口发送实验
项目内容:串口发送数据,从0开始累加。电脑接收并显示
时间:2015年12月23日
项目负责人:YUAN
*/
#include <reg52.h>
typedef unsigned char uChar8;
typedef unsigned int uInt16;

void DelayMS(uInt16 ValMS);
void UartInit(void); //串口初始化
void UartSendData(void); //串口发送数据,即单片机发送数据
void main(void)
{
/*初始化:包括定时器中断的设置,
串口寄存器设置,波特率设置*/
UartInit();
while(1)
{
/*发送数据到电脑,并在电脑上显示*/
UartSendData();
DelayMS(500);
}
}
void DelayMS(uInt16 ValMS)
{
uInt16 uiVal,ujVal;
for(uiVal=0;uiVal<ValMS;uiVal++)
for(ujVal=0;ujVal<113;ujVal++);
}
void UartInit(void)
{
TMOD &= 0x0f; //只改变要改变的
TMOD |= 0x20; //设置定时器0为工作方式2
TL1 = 0xfd;
TH1 = 0xfd; //设置波特率为9600bps
TR1 = 1; //允许T1开始计数

SCON &= 0x5f;
SCON |= 0x50; //设置串口工作在方式1,允许接收数据
}
void UartSendData(void)
{
static uChar8 num = 0;
//发送数据,并累加
SBUF = num;
num++;
TI = 0;

}


评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章