欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1443|回復: 0
打印 上一主題 下一主題
收起左側

關于藍橋杯單片機組省賽三等獎的代碼模組

[復制鏈接]
跳轉到指定樓層
樓主
ID:1046164 發表于 2022-9-28 18:36 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
以下是選用stc15f2k60s2的芯片
少了一個矩陣按鍵,后續會補上

#include<stc15f2k60s2.h>


#define uchar unsigned char
#define uint unsigned int

uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};
uchar yi,er,san,si,wu,liu,qi,ba;

void display1(uchar yi,uchar er);
void display2(uchar san,uchar si);
void display3(uchar wu,uchar liu);
void display4(uchar qi,uchar ba);
void keyscan(void);

void delayms(uint ms);

void allint(void);
void main(void)
{
        allint();
        yi=1;er=2;san=3;si=4;wu=5;liu=6;qi=7;ba=8;
        while(1)
        {
                keyscan();

                display1(yi,er);
                display2(san,si);
                display3(wu,liu);
                display4(qi,ba);
        }
}

void allint(void)
{
        P2 = 0X80;
        P0 = 0XFF;
        P2 = 0XA0;
        P0 = 0X00;
        P2 = 0XC0;
        P0 = 0XFF;
        P2 = 0XFF;
        P0 = 0XFF;
}

void display1(uchar yi,uchar er)
{
        P2 = 0XC0;
        P0 = 0X01;
       
        P2 = 0XFF;
        P0 = tab[yi];
        delayms(1);
       
        P2 = 0XC0;
        P0 = 0X02;
       
        P2 = 0XFF;
        P0 = tab[er];
        delayms(1);
}

void display2(uchar san,uchar si)
{
        P2 = 0XC0;
        P0 = 0X04;
       
        P2 = 0XFF;
        P0 = tab[san];
        delayms(1);
       
        P2 = 0XC0;
        P0 = 0X08;
       
        P2 = 0XFF;
        P0 = tab[si];
        delayms(1);
}

void display3(uchar wu,uchar liu)
{
        P2 = 0XC0;
        P0 = 0X10;
       
        P2 = 0XFF;
        P0 = tab[wu];
        delayms(1);
       
        P2 = 0XC0;
        P0 = 0X20;
       
        P2 = 0XFF;
        P0 = tab[liu];
        delayms(1);
}

void display4(uchar qi,uchar ba)
{
        P2 = 0XC0;
        P0 = 0X40;
       
        P2 = 0XFF;
        P0 = tab[qi];
        delayms(1);
       
        P2 = 0XC0;
        P0 = 0X80;
       
        P2 = 0XFF;
        P0 = tab[ba];
        delayms(1);
}



void keyscan()
{
        if(P30 == 0)
        {
                delayms(5);
                if(P30 == 0)
                {
                        yi = 0;
                }
                while(!P30);
        }
        else if(P31 == 0)
        {
                delayms(5);
                if(P31 == 0)
                {
                        er = 8;
                }
                while(!P31);
        }
        else if(P32 == 0)
        {
                delayms(5);
                if(P32 == 0)
                {
                        san = 10;
                }
                while(!P32);
        }
        else if(P33 == 0)
        {
                delayms(5);
                if(P33 == 0)
                {
                        si = 11;
                }
                while(!P33);
        }
}


void delayms(uint ms)
{
        uint i,j;
        for(i=ms;i>0;i--)
                for(j=845;j>0;j--);
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表