中国领先的工业平台

返回贤集网 返回微头条
贤集网技术微头条APP获取

本人小白,今天看书的时候给了一个例程,如图 ...

 小王很优秀

下载贤集网APP入驻自媒体

本人小白,今天看书的时候给了一个例程,如图

我看到了设定定时器但是没有定时器中断。后边解释说因为定时器的模式是方式1,自动重置所以中断里什么都不用做,所以不需要中断。但是我看了下如果没有中断那么这个定时器在这个程序里完全没有意义啊,只是一个人在那不停计时,其他地方也没有调用他。
按前文将的是应该用定时器来控制波特率,请问这是怎么控制的,谢谢大神。

最新回复
发布回复
1.这是用定时器1做串口通讯的载波信号源,不需要开定时器1中断,只要开串口中断就可以了。一般应用只要会设置相关寄存器就行了,不必深究内部机理。2.对于串口可以理解为是单片机的一个*硬件,SBUF在物理上是两个8位寄存器共用一个地址,分别用于发送和接收。3.如果想把接收的数据都存起来可以定义一个缓存数组保存SBUF接收到的数据。例如:void ser() interrupt 4{ static unsigned char num=0; RI=0; rec_buf[num]=SBUF; num++; if(num>=6) { num=0; flag=1; }}
1.普通51芯片只能是用定时器1做波特率发生器,增强版51可以有多种选择,只要设置相关寄存器即可。2.波特率(传输速率)与定时器溢出率相关但不相同,相差N倍。
串口的定时器是给串口做发送位的时间间隔做定时的,原理和用法跟普通定时器一样,只是计时溢出后不产生中断,而是给串口部分信号,这时的定时器相当与串口单元的时钟信号。串口的SBUF是1个字节大小,跟串口的帧格式协议定义一致。串口的定时器只能指定一个,不会出现使用两个定时器的情况,因为定时器的出口不一样,串口使用的定时器的出口是串口单元,普通定时器的出口是定时器中断。串口定时器是自动重装载模式,所以在定时器溢出后,也就是串口每发送一位后,定时器的初始值都是重新设置的,等于一次全新的计时。

为您推荐

热门交流