//用定时器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=0x11; //使用定时器T1的模式1 T0的模式1
TH0=(65536-50000)/256; //定时器T0的高8位赋初值
TL0=(65536-50000)%256; //定时器T0的高8位赋初值
TR0=1; //启动定时器T0
TF0=0; //溢出标志位 先清零
TR1=1; //启动定时器T1
TF1=0; //溢出标志位 先清零
TH1=(65536-50000)/256; //定时器T0的高8位赋初值
TL1=(65536-50000)%256; //定时器T0的高8位赋初值
P0=0xff; //关闭LED灯
P1=0x00; //打开LED灯
while(1){//无限循环等待查询
while(TF0==1||TF1==1){
if(TF0==1){
p=p+1;
TF0=0;
TH0=(65536-50000)/256; //定时器T0的高8位赋初值
TL0=(65536-50000)%256; //定时器T0的高8位赋初值
}
if(TF1==1){
q=q+1;
TF1=0;
TH1=(65536-50000)/256; //定时器T1的高8位赋初值
TL1=(65536-50000)%256; //定时器T1的高8位赋初值
}
}
if(p>40){
p=0;
P0=~P0;
}
if(q>40){
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=0x11; //使用定时器T1的模式1 T0的模式1
TH0=(65536-50000)/256; //定时器T0的高8位赋初值
TL0=(65536-50000)%256; //定时器T0的高8位赋初值
TR0=1; //启动定时器T0
TF0=0; //溢出标志位 先清零
TR1=1; //启动定时器T1
TF1=0; //溢出标志位 先清零
TH1=(65536-50000)/256; //定时器T0的高8位赋初值
TL1=(65536-50000)%256; //定时器T0的高8位赋初值
P0=0xff; //关闭LED灯
P1=0x00; //打开LED灯
while(1){//无限循环等待查询
while(TF0==1||TF1==1){
if(TF0==1){
p=p+1;
TF0=0;
TH0=(65536-50000)/256; //定时器T0的高8位赋初值
TL0=(65536-50000)%256; //定时器T0的高8位赋初值
}
if(TF1==1){
q=q+1;
TF1=0;
TH1=(65536-50000)/256; //定时器T1的高8位赋初值
TL1=(65536-50000)%256; //定时器T1的高8位赋初值
}
}
if(p>40){
p=0;
P0=~P0;
}
if(q>40){
q=0;
P1=~P1;
}
}
}