一、实验目的:1.学习
单片机内部定数器的使用和编程方法。2.进一步掌握中断处理程序的编写方法。
二、实验设备:PC机(安装Keil uVision2、
proteus仿真环境)
三、实验内容: 1.使用软件延时控制P1口的8个发光二极管(D0~D7)循环点亮,间隔时间约为1S;利用单片机内部定时器T0定时中断,使P2.0的发光二极管D8闪烁,间隔时间为0.5S。利用单片机内部定时器T1计数中断,实现对T1引脚输入信号计数,每计满10个脉冲令P2.0输出求反一次。
在线等,求助各位大神们。帮我编辑个编程。
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit led=P2^0;
sbit led1=P2^1;
uchar mun;
uchar aa;
void delayms(uint x)
{ uint i,j;
for(i=x;i>0;i--)
for (j=110;j>0;j--);
}
// 延时函数
void init()
{ TMOD=0X51;
TH0=0x3C;
TL0=0x0B;
TH1=0Xff;
TL1=0Xf6;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
aa=0xfe;
}
//初始化函数
void main ()
{ init();
while(1)
{P1=aa;
delayms(1000);
aa=_crol_(aa,1);
}
}
//主函数
void t0() interrupt 1
{TH0=0x3C;
TL0=0x0B;
mun++ ;
if(mun>10)
{
mun=0;
led=~led;
}
}
//T0中断
void t1() interrupt 3
{ TH1=0Xff;
TL1=0Xf6;
led=~led;
}
//T1中断
一周热门 更多>