久久久久久久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;        //中斷總開關
    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() // 返回按鍵的狀態  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
{
    //注:每次進入中斷意味著定時/和計數器已經溢出,若要繼續重復工作,需要重新賦值
    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
主站蜘蛛池模板: 天天干天天想 | 国产乱码精品1区2区3区 | 男女在线免费观看 | 欧洲视频一区 | 日韩中文字幕在线视频 | 日韩视频中文字幕 | 久久久成 | 男女羞羞视频大全 | 狠狠爱免费视频 | 97成人免费 | 麻豆国产一区二区三区四区 | 国产成人免费视频网站高清观看视频 | 成人免费视频在线观看 | 日本三级全黄三级三级三级口周 | 亚洲欧美国产毛片在线 | 亚洲欧美一区二区三区国产精品 | 欧美专区日韩 | 国产精品一区二区福利视频 | 国产成人午夜精品影院游乐网 | 日韩图区 | 永久网站 | 久久久久久中文字幕 | 亚洲精品国产成人 | 国产99久久 | 亚洲人成网站777色婷婷 | 一区二区三区在线 | 久草视频在线播放 | 天久久 | 欧美一区二区三区四区视频 | 午夜爱爱毛片xxxx视频免费看 | 亚洲国产欧美一区二区三区久久 | 久久成人免费 | 日韩a| 性色视频在线观看 | 亚洲欧美在线一区 | 欧美成人一级视频 | 亚洲三区在线观看 | 黄色网毛片 | 亚洲午夜精品 | 性生生活大片免费看视频 | 国产精品一区二区av |