单片机程序,理解不透。新手,谢谢

[复制链接]
查看11 | 回复1 | 2010-12-28 14:00:21 | 显示全部楼层 |阅读模式
#include
volatile unsigned int time=0;
void main()
{
TMOD=0x01;
THO=0x3c;
TL0=0xb0;
EA=1;
ET0=1;
PT0=1;
P1=0x00;
TR0=1;
while(1)
{

if(time>=20) //这里和下面的中断程序有什么联系
{

time=0;
P1=~P1;
}

}
}
void timer0() interrupt 1
{
EA=0;//这里是为什么
TF0=0; //这里是为什么
TR0=0;
time++;//这里是什么意思
TH0=0x3c;
TL0=0xb0;
TRO=1;
EA=1;
}
想知道整个程序包括中断程序的运行流程!求解

回复

使用道具 举报

千问 | 2010-12-28 14:00:21 | 显示全部楼层
TMOD=0x01;//设定定时器模式THO=0x3c;//定时器高位TL0=0xb0;//定时器低位EA=1;//开总中断ET0=1;//开定时器中断PT0=1;P1=0x00;//P1输出为0x00TR0=1; //开启定时器,定时器开始计时while(1)//死循环等待中断的发生{
if(time>=20) //如果time达到20以上,也就是说中断发生了20次或以上{
time=0;//中断重新计算次数P1=~P1;//P1端口输出取反}void timer0() interrupt
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行