找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1269|回复: 3
收起左侧

请问产生波特率用同一个单片机定时器为什么不会产生冲突?

[复制链接]
ID:524891 发表于 2019-5-16 23:17 | 显示全部楼层 |阅读模式
void InitUART(void)                 //串口中断初始化函数
{
    SCON=0x50;                        //设置为工作方式1        
TMOD=0x20;                        //设置计数器工作方式2      
PCON=0x00;                        //波特率不加倍        
TH1=0xfd;                                //计数器初始值设置,注意波特率是9600的        
TL1=0xfd;        ES=1;                                                //打开接收中断        
EA=1;                                                //打开总中断        
TR1=1;                                        //打开计数器        
} /***************************************************/         
void
Conut(void)                   //计算距离        
{          while(!ECHO);                       //当RX为零时等待         
TR1=1;                               //开启计数         
while
(ECHO);                           //当RX为1计数并等待         
TR1=0;                                   //关闭计数         
time=TH1*256+TL1;                   //读取脉宽长度         
TH1=0;         
TL1=0;         
S=(time*1.7)/100;        //算出来是CM
}
回复

使用道具 举报

ID:425825 发表于 2019-5-17 08:54 | 显示全部楼层
代码你实测过吗?肯定是有冲突的
回复

使用道具 举报

ID:123289 发表于 2019-5-17 08:54 | 显示全部楼层
你认为的冲突长什么样子呢?请描述一下。
回复

使用道具 举报

ID:213173 发表于 2019-5-17 12:13 | 显示全部楼层
如果共用定时器1完成这两个功能只要分时使用可以不冲突,同时使用就呵呵了。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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