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条回答
Li_Lei
1楼-- · 2019-03-25 00:20
 精彩回答 2  元偷偷看……
51学习者
2楼-- · 2019-03-25 04:03
先谢谢你哥们
我觉得 也是可以 的。但是正在向咋办。。。我的是 一个串口接收,然后直接用第二个发送??还是A接受了 在A送给B
然后B接收 再B发送出去??要是 第二种情况就是2个串口都有接受发送过程了??!!
第二个问题 为啥不是在独立的子函数中不相互影响?! 不对的话应该如何使用
谢谢
jishuaihu
3楼-- · 2019-03-25 07:53
一般有两个串口的单片机两个串口肯定是可以同时工作的,但因为执行指令有个顺序,不能同时给两个串口数据寄存器赋值,因此实际使用的时候也是分开用的(也可以认为是同时赋值,时间差可以很短,只不过是以机器周期来算时间的话就不是同时了)。第二个,肯定是后面的值冲掉前面的赋值,同一个寄存器不可能同时等于两个值!在51单片机中,串口波特率就是靠定时器实现的,因此串口初始化程序就包括对定时器的赋值,不需要再单独的对定时器初始化了。
51学习者
4楼-- · 2019-03-25 12:58
斑竹
第二个问题有点明白了 但是
TI的 不一样啊 这个是肯定不一样吧
TH1 = 0xD8;;// 为T1填入初值,定时时间10ms
TL1 = 0xF0;
串口的一样 这个能不一样吗???
TH1 = 0xFd;
TL1 = 0xFd;
第二的 我很多都不确认
A接受了 在A送给B 然后B接收 再B发送出去??
要是这种情况就是2个串口都有接受发送过程了??!!
Li_Lei
5楼-- · 2019-03-25 15:18
12c5a60s2有独立的串口分频器,不用也浪费。

A接受了 在A送给B 然后B接收 再B发送出去??
要是这种情况就是2个串口都有接受发送过程了??!!
这段看不懂
Li_Lei
6楼-- · 2019-03-25 15:59
你可以看看串口原理图,里面实际是个移位器,移出发送的位同时移入接收的位,如果同时收发的话发送完了buf里就是接收的。

一周热门 更多>