微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > proteus与keil Cx51的单片机仿真(定时器应用1)

proteus与keil Cx51的单片机仿真(定时器应用1)

时间:11-24 来源:互联网 点击:
使用定时器定时,每隔10s使与P0、P!、P2、P3口连接的发光二极管闪烁10次;设P0、P!、P2、P3口低高电平灯亮,反之灯灭。

电路图:

C程序:

#include
#include
#define uchar unsigned char
bit flag;
void delay();
uchar IntNumber,Flashnumber;//T0中断次数,闪烁次数
void main()
{
TMOD=0x01;//T0方式1
TL0=0xb0;
TH0=0x3c;//定时器赋初值
EA=1;//开总中断
ET0=1;//开T0中断
TR0=1;//启动T0
IntNumber=200;//T0中断次数初始化
flag=0;
while(1)
{
if(flag==1)
{
flag=0;
for(Flashnumber=0;Flashnumber<10;Flashnumber++)
{
P0=0x00;P1=0x00;P2=0x00;P3=0x00;delay();//灯亮
P0=0xff;P1=0xff;P2=0xff;P3=0xff;delay();//灯灭
}
}
}
}
void Int_T0() interrupt 1 using 2
{
TL0=0xb0;//重赋初值
TH0=0x3c;
IntNumber-=1;//T0中断次数减1
if(IntNumber==0x00)
{
IntNumber=200;
flag=1;//10s到,闪烁标志位置1
}
}
void delay()
{
uchar i,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++)
;
}


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top