51单片机定时器的使用 以及Keil 软件的一些问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 16:01:22
我用定时器控制流水灯 调试了很多次 发现下载完后八个LED 同时亮了 这是我的程序 您看看有什么问题

#include<reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar temp;
uchar TT;

void main()
{
EA=1;
TMOD=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
ET0=1;
TR0=1;
temp=0xfe;
P0=temp;

while(1)
{
if(TT==20) //延时一秒
{ TT==0;
temp= _crol_ (temp,1);
P0=temp;
}

}
}

void Time0() interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
TT++;
}

2
我的Keil 软件 的工作区不能选中任何东西 怎么回事啊?
上面的TT==0 写错了 是赋值语句 TT=0

你的晶振是多少的?如果是12M的定时初值弄错了
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;执行一次才10MS 20次才200MS 灯当然会全亮。

1,TT==0,这个是条件,要改为赋值,TT=0;

2,重装试试。

没啥问题啊,temp= _crol_ (temp,1);这个是循环左移吗,没见过这种用法a,你查查,如果不是循环的,就不对,循环得就没问题,还有每次进入中断每次都装初值啊,要不就是初始化的问题,自己查查了,应该不难。

Keil 软件 多半是你没装好,要注册的。

先把P0口全写1,在试试! P0=0xFF;

你的Keil 是不是不是破解版的?