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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2528|回復: 0
收起左側

用按鍵實現流水燈左移,右移,99數碼管倒計時,和全滅

[復制鏈接]
ID:563424 發表于 2019-11-26 18:11 | 顯示全部樓層 |閱讀模式
#include<reg52.h>

sbit ADDR0 = P2^2;
sbit ADDR1 = P2^3;
sbit ADDR2 = P2^4;
sbit KEY1 = P1^0;
sbit KEY2 = P1^1;
sbit KEY3 = P1^2;
sbit KEY4 = P1^3;

unsigned char code LedChar[] = {0xc0, 0xf9, 0xa4, 0xB0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90,0x88, 0x83,0xc6,0xa1, 0x86, 0x8e};
unsigned char  LedBuff[] = {0xff,0xff};

unsigned char i = 0;
unsigned char cnt = 0;
unsigned char left = 0;
unsigned char right = 0;
unsigned long sec = 0;         /*算流水燈的*/
unsigned char cd = 0;/*倒計時*/
unsigned int mov = 0;
unsigned char flag1s = 0;

bit KeySta = 1;
void cutdown()
{
       
}

void main()
{
        bit backup = 1;



        unsigned int time = 99;


        EA = 1;
        TMOD = 0X01;
        TH0 = 0XF8;        /*2ms*/
        TL0 = 0XCD;
        ET0 = 1;
        TR0 = 1;
        P1 = 0X7f;

        while(1)
        {
       
                        if(KeySta != backup)
                        {
                                if(backup ==
                                        cnt++;
                                }0)
                                {
                        backup = KeySta;
                        }

                        if(cnt == 1) /*流水燈左移*/
                                {
                                        left = 1;        /*左移標志位*/
                                }
                        if(cnt == 2)/*流水燈右移*/
                                {
                                        right = 1;/*右移標志位*/
                                }
                        if(cnt == 3)/*99秒倒計時*/
                                {
                                        cd = 1;
                                          if(flag1s == 1)
                                        {
                                                flag1s = 0;
                                                time--;
                                                LedBuff[0] = LedChar[time%10];/*數碼管顯示*/
                                                LedBuff[1] = LedChar[time/10];
                                        }
                                }
                        if(cnt == 4)/*全滅*/
                                {
                                       
                                        P0 = 0X00;
                                        P2 = 0Xff;
                                        left = 0;
                                        right = 0;
                                         cd = 0;
                                        cnt = 0;
                                               
                                }
                  
        }
}

void interruptTimer() interrupt 1
{        static unsigned char mov1 = 0;
        static unsigned char keybuf = 0xFF;

        TH0 = 0XF8;
        TL0 = 0XCD;
        keybuf = (keybuf<<1) | KEY4;
        if(keybuf == 0x00)
        {
                KeySta = 0;
        }
        else if(keybuf == 0xff)
        {
                KeySta = 1;
        }

        sec++;
        if(sec >= 500)
        {  
                sec = 0;
                flag1s = 1;

                if(left)
                {        P2 = 0XFF;
                        P2 = ~(0x01<<mov);
                        mov++;
                       left = 0;
                }
                if(right)
                {
                        P2 = 0XFF;
                        P2 = ~(0x80>>mov1);
                        mov1++;
                        right = 0;
                }
       
        }
        P0 = 0X00;
        if(cd)
        {        P0 = 0x00;/*刷新*/
                P2 = 0XFF;
                switch(i)
                {
                        case 0 : ADDR2 = 0 ; ADDR1 = 0 ; ADDR0 = 0; i++; P0 = ~LedBuff[0]; break;
                        case 1 : ADDR2 = 0 ; ADDR1 = 0 ; ADDR0 = 1; i=0; P0 = ~LedBuff[1]; break;
                }
       
        }
        else P0 = 0X00;

}

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久国产精品99久久久大便 | 91亚洲一区| 国产成人亚洲精品 | 国产免费观看一级国产 | 在线视频 中文字幕 | 国产91色在线 | 亚洲 | 日韩精品一区二区三区中文字幕 | 亚洲啊v在线 | 免费超碰| 最新国产精品精品视频 | 日韩精品一区二区三区四区 | 黄色a视频 | 久久精品亚洲欧美日韩久久 | 亚洲免费视频播放 | 午夜久久久久 | 欧美综合国产精品久久丁香 | 99精品国产一区二区三区 | 6080yy精品一区二区三区 | 中文字幕在线观看视频一区 | 欧美在线视频观看 | 中文字幕一区二区三区精彩视频 | 亚洲欧美日韩高清 | 中文字幕一级 | 中文字幕亚洲精品在线观看 | 欧美成人hd | 午夜精品久久久久久久久久久久久 | 欧美成人精品一区二区男人看 | 欧美激情一区二区三区 | 久久综合久久综合久久综合 | 狠狠爱视频 | 999热在线视频 | 丁香五月网久久综合 | 91成人免费电影 | av激情在线 | 欧美黑人巨大videos精品 | 日韩精品免费看 | 碰碰视频 | 欧美一区在线视频 | 久久精品成人 | 国产成人精品一区二 | 午夜视频在线 |