单片机中TI和TR1的问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 13:24:21
#include <AT89X51.H>
#include <stdio.h>
void main(void)
{
SCON = 0x50; //串口方式1,允许接收
TMOD = 0x20; //定时器1定时方式2
TCON = 0x40; //设定时器1开始计数
TH1 = 0xE8; //11.0592MHz 1200波特率
TL1 = 0xE8;
TI = 1;
TR1 = 1; //启动定时器

while(1)
{
printf ("Hello World!\n"); //显示Hello World
}
}
在这个程序里面,
第1个问题:TCON=0x40;说明TR1位已经被置1,为什么后面还要用TR1=1这个指令。
第2个问题:为TI=1,它表示什么数据发送结束。为什么这里要用它。
第3个问题:while(1)中的1是谁的值。
刚刚学习谢谢大家给予指导。

1第一个可能是编程的习惯不一样,但是这种做法可定是不好的。已经开跑了,再给T1开始一次?多此一举
2这个你查一下,51是很久没用了
3wihle(1)是表示无限循环,while()语句表示条件判断为一的时候执行,那么既然是一,就永远执行,也就是无限循环了。