//用定时器T0查询方式P0口8位控制LED闪烁
T1查询方式P1口8位控制LED闪烁
#include<reg52.h> // 包含52单片机寄存器定义的头文件
#define uchar unsigned char
#define uint unsigned int
/**************************************************************
函数功能:主函数
**************************************************************/
uint p,q;
void main(void)
{
p=0;//由于闪烁速度太快,看不出来,所以通过计数实现延迟
q=0;//由于闪烁速度太快,看不出来,所以通过计数实现延迟
TMOD=0x22; //使用定时器T1的模式2 T0的模式2
TL0=TH0=0; //定时器T0的高8位赋初值 如果要2秒延迟大概需要中断 2000000/ 256 =7812
TR0=1; //启动定时器T0
TF0=0; //溢出标志位 先清零
TR1=1; //启动定时器T1
TF1=0; //溢出标志位 先清零
TL1=TH0=1; //定时器T1的高8位赋初值 如果要2秒延迟大概需要中断 2000000/ 256 =7812
P0=0xff; //关闭LED灯
P1=0x00; //打开LED灯
while(1){//无限循环等待查询
while(TF0==1||TF1==1){
if(TF0==1){
p=p+1;
TF0=0;
}
if(TF1==1){
q=q+1;
TF1=0;
}
}
if(p>7812){
p=0;
P0=~P0;
}
if(q>7812){
q=0;
P1=~P1;
}
}
}
#include<reg52.h> // 包含52单片机寄存器定义的头文件
#define uchar unsigned char
#define uint unsigned int
/**************************************************************
函数功能:主函数
**************************************************************/
uint p,q;
void main(void)
{
p=0;//由于闪烁速度太快,看不出来,所以通过计数实现延迟
q=0;//由于闪烁速度太快,看不出来,所以通过计数实现延迟
TMOD=0x22; //使用定时器T1的模式2 T0的模式2
TL0=TH0=0; //定时器T0的高8位赋初值 如果要2秒延迟大概需要中断 2000000/ 256 =7812
TR0=1; //启动定时器T0
TF0=0; //溢出标志位 先清零
TR1=1; //启动定时器T1
TF1=0; //溢出标志位 先清零
TL1=TH0=1; //定时器T1的高8位赋初值 如果要2秒延迟大概需要中断 2000000/ 256 =7812
P0=0xff; //关闭LED灯
P1=0x00; //打开LED灯
while(1){//无限循环等待查询
while(TF0==1||TF1==1){
if(TF0==1){
p=p+1;
TF0=0;
}
if(TF1==1){
q=q+1;
TF1=0;
}
}
if(p>7812){
p=0;
P0=~P0;
}
if(q>7812){
q=0;
P1=~P1;
}
}
}