用定时器T0查询方式P0口8位控制LED闪烁 T1查询方式P1口8位控制LED闪烁

//用定时器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;
  }


}
 }
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值