微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 一个单片机定时程序,怎么编不了,求大神帮帮

一个单片机定时程序,怎么编不了,求大神帮帮

时间:10-02 整理:3721RD 点击:
#include <reg52.h>           
#define uchar unsigned char
#define uint unsigned int
sbit led =P1^0;        //LED pin,根据你自己LED连接的引脚来定义
uchar num=0,second=0,minute=0,hour=0;   
void delay(unsigned int t)           //延时函数,这个是11.0592MHz晶振大概延时1ms
{                                                
  unsigned int i,j;
for(i=t;i>0;i--)
   for(j=110;j>0;j--);
}
void main()
{
  TMOD =0x01;                     //设置定时器0为工作方式1
  TH0=(65536-45872)/256;  //装初值,从45872开始计数到65536溢出,共计时间大概为50us
  TL0=(65536-45872)%256;
  EA=1;                 //开总中断
  ET0=1;             //开定时器0中断
  TR0 =1;            //启动定时器0
while(1)         //程序在这里循环等待定时器中断
{
// led=0;
}
}
void LED() interrupt 1            //中断函数,1为中断号,代表定时器0中断
{
  TH0=(65536-45872)/256;            //重装初值,同上
  TL0=(65536-45872)%256;
  num++;                          //每溢出一次num加1
  if(num == 20)                //num计满20,1s时间到
    {
    num=0;         //1s 时间
    second++;
    if(second==60)          //1分钟
      {
      second=0;
      minute++;
      if(minute==60)           //1小时
       {
       minute=0;
       hour++;
       if(hour==2)           //2小时
       led=~led;
       }
       }
    }
}

有什么问题呢?等两小时led取反?

编不了是什么意思

这个程序是不是 LED 运行2小时,然后熄灭2小时,在运行,熄灭。一直这样循环呀?

这个程序是不是 LED运行2小时,在熄灭2小时  这样一直循环呀?

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

网站地图

Top