12c5a60s2芯片和TH1赋值问题?!!!

2019-03-24 19:24发布

 12c5a60s2 这个芯片
是不是可以同时实现 一个串口接受 数据 一个串口 发送数据??
能 给点 实例 看看吗 我看了点实例都是 串口1 或者串口2的 没有两个同时使用的啊 第二个问题 void T_Init(void)//定时中断初始化
{
 TMOD = 0x11;//T1使用定时模式,工作模式1,无门控位T0使用定时模式,工作模式1,无门控位
 TH0 = 0xD8;;// 为T0填入初值,定时时间10ms
 TL0 = 0xF0;
 TH1 = 0xD8;;// 为T1填入初值,定时时间10ms
 TL1 = 0xF0;

 TR0 = 1;// 启动T0
 TR1 = 1;// 启动T1
 ET0=1;//开T0中断
 ET1=1;//开T1中断
} ///////功能:串口初始化,波特率9600,方式1/////////
void Init_Com(void)
{
 TMOD = 0x20;
 PCON = 0x00;
 SCON = 0x50;
 TH1 = 0xFd;
 TL1 = 0xFd;

 TR1 = 1;
} 在两个子函数中 都给 TH1 TL1赋值了 但是是不同的值 我想问问这样可以用吗???对吗?还是 只是在独立的子函数中  不相互影响?? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
jishuaihu
2019-03-25 07:53
一般有两个串口的单片机两个串口肯定是可以同时工作的,但因为执行指令有个顺序,不能同时给两个串口数据寄存器赋值,因此实际使用的时候也是分开用的(也可以认为是同时赋值,时间差可以很短,只不过是以机器周期来算时间的话就不是同时了)。第二个,肯定是后面的值冲掉前面的赋值,同一个寄存器不可能同时等于两个值!在51单片机中,串口波特率就是靠定时器实现的,因此串口初始化程序就包括对定时器的赋值,不需要再单独的对定时器初始化了。

一周热门 更多>