久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 怎么讓單片機計時器改成倒計時,可以通過獨立按鍵設置倒計時(用的是普中板) [打印本頁]

作者: arimotti    時間: 2023-9-28 14:49
標題: 怎么讓單片機計時器改成倒計時,可以通過獨立按鍵設置倒計時(用的是普中板)
#include <reg52.h>

typedef unsigned int u16;
typedef unsigned char u8;

#define KEY_PRESS1 1
#define KEY_PRESS2 2
#define KEY_PRESS3 3
#define KEY_PRESS4 4
#define KEY_UNPRESS 0

#define SMG_SORT P0   
#define LED_SORT P2

void delay_10us(u16 ten_us)
{
     while(ten_us--);
}

u8 NUM_SMG[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                0x7f,0x6f,0x40};
u8 SELECT_SMG[] = {0x00,0x04,0x08,0x0c,0x10,0x14,0x18,0x1c};

void time0_init()
{
    TMOD |= 0x01;  //設置工作方式;定時器0的工作模式1
    TH0 = 0xFC;
    TL0 = 0x18;
    EA = 1;        //中斷總開關(guān)
    ET0 = 1;    //定時器0允許位
    TR0 = 1;    //打開定時器0
}

sbit LED1 = P2^0;
static u16 n = 0;

sbit KEY1 = P3^1;
sbit KEY2 = P3^0;
sbit KEY3 = P3^2;
sbit KEY4 = P3^3;

static u8 hour = 0;
static u8 min = 0;
static u8 time = 0;
static u8 scan_state = 0;

void Show_time(u8 ti, u8 loc)
{
    u8 a = ti/10;
    u8 b = ti%10;
    SMG_SORT = NUM_SMG;
   
P2 = SELECT_SMG[loc];
    delay_10us(100);

    SMG_SORT = NUM_SMG[a];
    P2 = SELECT_SMG[loc+1];
    delay_10us(100);
}

void show_line()
{
    SMG_SORT = 0x40;
    P2 = SELECT_SMG[2];
    delay_10us(100);

    SMG_SORT = 0x40;
    P2 = SELECT_SMG[5];
    delay_10us(100);
}

u8 key_scan() // 返回按鍵的狀態(tài)  0  1  2  3  4
{
        if(scan_state==0&KEY1==0||KEY2==0||KEY3==0||KEY4==0)
        {
        delay_10us(1000);
        scan_state = 1;
        if(KEY1==0 )return 1;
        if(KEY2==0 )return 1;
        if(KEY3==0 )return 1;
        if(KEY4==0 )return 1;
        }
         else if(KEY1==1&KEY2==1&KEY3==1&KEY4==1)
          {
          scan_state=0;      
          }
          return 1;
}

void time_ADD()
{
    if(KEY4==0)
    {

        delay_10us(20);
        while(!KEY4);
            Show_time();
            time++;
            if(time>59)
            {
                min++;
                time = 0;
                if(min>59)
                {
                    hour++;
                    min = 0;
                }
            }
    }
}
void time_SUB()
{
    if(KEY3==0)
    {
        delay_10us(20);
        while(!KEY3);        //判斷按鍵是否松手
            Show_time();
            if(min>0||time>0)
            {
                time--;
                if(time==0)
                {
                    min--;
                    time=59;
                }
            }   
    }
}

void main()
{
    time0_init();
    LED1 =0;
    while(1)
    {
        Show_time(time,0);
        Show_time(min,3);
        Show_time(hour,6);
        show_line();

    }
}



void time0() interrupt 1
{
    //注:每次進入中斷意味著定時/和計數(shù)器已經(jīng)溢出,若要繼續(xù)重復工作,需要重新賦值
    TH0 = 0xFC;      
    TL0 = 0x18;
    n++;
    if(n==1000)
    {
        n = 0;
        time += 1;
        if(time >= 59)
        {
            time = 0;
            min +=1;
            if(min == 60)
            {
                min = 0;
                hour += 1;
                if(hour == 24)
                {
                    hour = 0;
                }
            }
        }
    }
}







歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久综合伊人 | 特黄视频 | 色av一区二区 | 91精品国产一区二区三区 | 国产一区二区三区四区五区加勒比 | 91精品欧美久久久久久久 | 亚洲欧美日韩精品久久亚洲区 | 香蕉久久网 | 国产精品高清在线 | 国产免费又黄又爽又刺激蜜月al | 精品欧美乱码久久久久久1区2区 | 麻豆久久| 一区二区三区精品在线视频 | 天堂久久av | 精品一区二区视频 | 欧美久久久久久 | 一区二区三区国产 | 视频1区2区 | 午夜精品福利视频 | 国产精品夜夜春夜夜爽久久电影 | 午夜视频一区二区三区 | 蜜桃免费av | 精品一区二区三区在线观看 | 操久久久| 欧美日韩中文国产一区发布 | 精品免费看| 91久久精品日日躁夜夜躁欧美 | 日韩av啪啪网站大全免费观看 | 精品久久中文 | 婷婷五月色综合 | 日韩一区二区三区在线观看 | 欧美视频一区 | 一区二区精品 | 狠狠的干| www.9191.com| 日韩中文字幕在线不卡 | 国产精品久久精品 | 综合二区 | 欧美精品网站 | 成人国产精品久久久 | 久色视频在线 |