
最简单的单片机串口接收c语言程序
谁能给一个最简单的串口接收程序要c语言不用定时器终端做到输入一个数(比如aa)转换为十六进制发送后就会点亮对应P1口的LED灯...
谁能给一个最简单的串口接收程序 要c语言 不用定时器终端 做到输入一个数(比如aa)转换为十六进制发送后 就会点亮对应P1口的LED灯
展开
展开全部
#include<stc12c5a60s2.h>
/*****************************************************
函数功能:接收一个字节数据
***************************************************/
unsigned char Receive(void)
{
unsigned char dat;
while(RI==0) //只要接收中断标志位RI没有被置“1”
; //等待,直至接收完毕(RI=1)
RI=0; //为了接收下一帧数据,需将RI清0
dat=SBUF; //将接收缓冲器中的数据存于dat
return dat;
}
/*****************************************************
函数功能:主函数
***************************************************/
void main(void)
{
TMOD=0x20; //定时器T1工作于方式2,作为波特率发生器
SCON=0x50; //SCON=0101 0000B,串口工作方式1,允许接收(REN=1)
PCON=0x00; //PCON=0000 0000B,波特率9600
TH1=0xfd; //根据规定给定时器T1赋初值
TL1=0xfd; //根据规定给定时器T1赋初值
TR1=1; //启动定时器T1
REN=1; //允许接收
while(1)
{
P1=Receive(); //将接收到的数据送P1口显示
}
}
/*****************************************************
函数功能:接收一个字节数据
***************************************************/
unsigned char Receive(void)
{
unsigned char dat;
while(RI==0) //只要接收中断标志位RI没有被置“1”
; //等待,直至接收完毕(RI=1)
RI=0; //为了接收下一帧数据,需将RI清0
dat=SBUF; //将接收缓冲器中的数据存于dat
return dat;
}
/*****************************************************
函数功能:主函数
***************************************************/
void main(void)
{
TMOD=0x20; //定时器T1工作于方式2,作为波特率发生器
SCON=0x50; //SCON=0101 0000B,串口工作方式1,允许接收(REN=1)
PCON=0x00; //PCON=0000 0000B,波特率9600
TH1=0xfd; //根据规定给定时器T1赋初值
TL1=0xfd; //根据规定给定时器T1赋初值
TR1=1; //启动定时器T1
REN=1; //允许接收
while(1)
{
P1=Receive(); //将接收到的数据送P1口显示
}
}
追问
不用定时器的 最简单的 我想学学基础原理 可以帮忙吗
追答
定时器T1是用来设置串口波特率的,不用定时器,收发双方的串口没有统一的数据传输节拍,怎么串口通信?

2020-01-15 广告
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
2014-02-27
展开全部
proteus 论坛 有这类 实例
追问
能给个链接吗 我找了一天了 没找到- -或者给个程序
追答
http:// proteus. dot haotui. dot com/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询