找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3759|回复: 4
打印 上一主题 下一主题
收起左侧

单片机串口通信控制led亮灭程序

[复制链接]
跳转到指定楼层
楼主
ID:952337 发表于 2021-7-18 10:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*现象:在串口调试助手中选择字符显示与字符发送。发送字符1,则led1亮;发送字符0,led1灭。
注意:发送后将发送区的字符清除,否则会继续再次发送。*/
#include<reg52.h>
typedef unsigned int u16;
typedef unsigned char u8;
u8 receivedata;//将发送的字符保存到一个变量中
sbit led=P2^0;
void UsartInit()
{
        SCON=0X50;
        TMOD=0X20;
        PCON=0X80;
        TH1=0XF4;
        TL1=0XF4;
        ES=1;
        EA=1;
        TR1=1;
}
void work()
{
        if(receivedata=='1')
        {
                led=0;
        }
        else if(receivedata=='0')
        {
                led=1;
        }
}
void main()
{
        UsartInit();//串口初始化
        while(1)
        {
                work();
               
        }
        
}

void Usart() interrupt 4
{
        
        receivedata=SBUF;
        RI=0;
        SBUF=receivedata;
        while(!TI)
        TI=0;
}


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1004248 发表于 2022-6-3 18:17 | 只看该作者
我那个用的STC-ISP的串口助手,用仿真画的,但是出现问题,就是我不管发1还是0,都不对,我换if   else语句之后,一直是else里边运行,说明我串口数据传输乱了,波特率也是9600,为之奈何
回复

使用道具 举报

板凳
ID:1004248 发表于 2022-6-3 20:40 | 只看该作者
PCON=0X80; 把这一句去掉就可以用了,。。。为什么要写这一句
回复

使用道具 举报

地板
ID:496636 发表于 2022-6-3 23:31 | 只看该作者
祥ZD 发表于 2022-6-3 20:40
PCON=0X80; 把这一句去掉就可以用了,。。。为什么要写这一句

PCON的最高位是 1的话,波特率倍增。
你算计数器1的重载值是这样算的,256-晶振频率/12/16/2/波特率
如果PCON=0X80,就是最高位是1,启用波特率倍增,计算公式就变成了256-晶振频率/12/16
原理如下,定时器1给串口模块提供节拍,定时器计数频率等于晶振频率/12,模块接收数据的时候,它不能在数据突变的情况下来测量电压然后决定接收到的数据是1还是0,所以,需要在采集分成16等分,然后在7,8,9次采样的时候获得电压,如果有二次是1,就是1,如果有二次是0,就是0,一次采错,不影响结果,这样提高了测量的正确性。所以在倍频的情况下,每次采样的机器周期次数令其为x
12/11059200就是执行一个机器周期所需要的时间
12X*16/11059200就是传送一个位需要的时间
12*x*16*波特率/11059200就是传送波特率次数所需的时间,如波特率是9600,传送9600位的时间就是1秒
这样12*X*16*波特率/11059200=1
X=11059200/12/16
得到的值就是计数器每次采样计的数。256-X就是重载值。
如果没有启用倍增的话公式变成256-晶振频率/12/16/2/波特率。好似是采用32次采样。
回复

使用道具 举报

5#
ID:1039472 发表于 2022-7-14 16:36 | 只看该作者
膜拜各位大佬
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表