#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个回答 2011-07-21
为什么想不通呢?程序会在while循环里反复执行,而定时器不断的累加,和循环毫不相干。我们使用定时器中断是为了让中断能精确的控制单片机的I/O口,你的程序又没有用到本回答被提问者采纳
第2个回答 2011-07-21
这段程序中Hello World的显示主要依靠while循环,跟你前面的串口设定和定时器都没关系。
第3个回答 2011-07-21
这个程序根本就没开中断,哪来什么中断程序呢?只是一个串口发送程序。要求屏幕不停打印 Hello World