亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: 51單片機1分鐘定時怎么操作? [打印本頁]

作者: hz87813430    時間: 2018-11-3 01:28
標題: 51單片機1分鐘定時怎么操作?
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit JDQ=P2^0;
uchar num;
void main()
{
        TMOD=0x01;
        TH0=(65536-45872)/256;
        TL0=(65536-45872)%256;
        EA=1;
        ET0=1;
        TR0=1;
        while(1)
            if(num==20)                  
            {
               num=0;
               JDQ=~JDQ;
            }
}

void T0_time() interrupt 1
{
        TH0=(65536-45872)/256;
        TL0=(65536-45872)%256;
        num++;
}

我只會一秒鐘定時.請大家幫我一下,謝謝.



作者: Super122    時間: 2018-11-3 01:34
51單片機 的時鐘一般是12MHz,采用16位定時器,最大計數次數為65535,那么就是65535us=65ms, 那就可以設置寄存器初始使每50ms產生一次中斷.20次即為一秒
50 ms =50000 us.
THX = (65535-50000) /256;
TLX = (65535-50000) %256;
X為定時號 0.1
作者: wulin    時間: 2018-11-3 07:47
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit JDQ=P2^0;
uchar Cnt50ms=0,Cnt1s=0,Cnt1min=0;//50毫秒、秒、分時間變量
//uchar num;
void main()
{
        TMOD=0x01;
//        TL0 = 0xB0;//50毫秒@12.000MHz
//        TH0 = 0x3C;
        TH0 = 0x4C;//50毫秒@11.0592MHz
        TL0 = 0x00;
        EA=1;
        ET0=1;
        TR0=1;
        while(1)
        {
                if(Cnt1min==1)
                {
                        Cnt1min=0;
                        JDQ=~JDQ;
                }
        }
}

void T0_time() interrupt 1
{
        TH0 = 0x4C;
        TL0 = 0x00;
        Cnt50ms++;
        if(Cnt50ms==20)
        {
                Cnt50ms=0;
                Cnt1s++;
                if(Cnt1s==60)
                {
                        Cnt1s=0;
                        Cnt1min=1;
                }
        }
}
作者: yousunny    時間: 2018-11-3 08:54
void T0_time() interrupt 1
{
        TH0=(65536-45872)/256;
        TL0=(65536-45872)%256;
        num++;
//假設你中斷是20mS一次,那一分鐘就是來累計60000ms
  if(num>3000)
{
    flag=1;
}
}

然后主循環掃描這個標志位即可

作者: 云淡風輕25    時間: 2018-11-3 11:03
#include <reg52.h> #define uchar unsigned char  #define uint unsigned int  sbit JDQ=P2^0; uchar num,num2; void main() {         TMOD=0x01;         TH0=(65536-45872)/256;         TL0=(65536-45872)%256;         EA=1;         ET0=1;         TR0=1;   num2=0;      while(1)             if(num==20)                               {                num=0;                JDQ=~JDQ;   num2++;if(num2==60) {  num2=0;  }     } }  void T0_time() interrupt 1 {         TH0=(65536-45872)/256;         TL0=(65536-45872)%256;         num++; }




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1