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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

stc15w4k32s4的電子時鐘不顯示,程序和仿真在附件中,新手小白求助

[復制鏈接]
ID:780023 發表于 2020-7-9 22:13 | 顯示全部樓層 |閱讀模式
51hei.png
#include<stc15.h>
/*共陰數碼管編碼*/
unsigned char code tab1[]={
0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
/*位選編碼*/
unsigned char code tab2[]={            
        0xfe,0xfd,0xfb,0xf7,
        0xef,0xdf,0xbf,0x7f};
unsigned char dis_buf[8]={0,0,0x40,0,0,0x40,0,0};
sbit duanxuan=P1^0;
/*按鍵位定義*/
sbit key0=P1^0;
sbit key1=P1^1;
sbit key2=P1^2;
sbit key3=P1^3;
sbit key4=P1^4;
sbit key5=P1^5;
sbit key6=P1^6;
sbit key7=P1^7;
/*秒、分、時的初始化*/
unsigned int  tt=0;
unsigned char i=0;
char sec=0,fen=0,shi=12;
unsigned int sign=1;
/*延時函數*/
void delay(unsigned int n)
{
    while(n--);
}
/*定時器0初始化函數*/
void chushihua()                //1毫秒@12.000MHz
{            
        AUXR &= 0x7F;                //定時器時鐘12T模式
        TMOD &= 0xF0;                //設置定時器16位自動重載模式
        TL0 = 0x18;                        //設置定時初值
        TH0 = 0xFC;                        //設置定時初值
        TR0 = 1;                                //定時器0開始計時
        EA=1;
        ET0=1;
}
/*按鍵設定函數*/
void sheding()
{
        if(key0==0)
        {
                delay(3500);
                if(key0==0)
                {
                        sign=0;
                }
        }
        if(key1==0)
        {
                delay(3500);
                if(key1==0)
                {
                        sec++;
                        if(sec>59)
                                sec=0;
                        while(!key1);
                }                                         
        }
        if(key2==0)
        {
                delay(3500);
                if(key2==0)
                {
                        fen++;
                        if(fen>59)
                                fen=0;
                        while(!key2);
                }                                         
        }
        if(key3==0)
        {
                delay(3500);
                if(key3==0)
                {
                        shi++;
                        if(shi>23)
                                shi=0;
                        while(!key3);
                }                                         
        }
        if(key5==0)
        {
                delay(3500);
                if(key5==0)
                {
                        sec--;
                        if(sec<0)
                                sec=59;
                        while(!key5);
                }         
        }
        if(key6==0)
        {
                delay(3500);
                if(key6==0)
                {
                        fen--;
                        if(fen<0)
                                fen=59;
                        while(!key6);
                }                                         
        }
        if(key7==0)
        {
                delay(3500);
                if(key7==0)
                {
                        shi--;
                        if(shi<0)
                                shi=23;
                        while(!key7);
                }
        }
        if(key4==0)
        {
                delay(3500);
                if(key4==0)
                {
                        sign=1;
                }
        }
}
/*顯示函數*/
void display()
{
              P7=tab2[0];
              P6=tab1[sec%10];
              delay(3500);
              P6=0x00;//消影
              P7=tab2[1];
              P6=tab1[sec/10];
              delay(3500);
              P6=0x00;//消影
              P7=tab2[2];
              P6=0x40;
              delay(3500);
              P6=0x00;//消影
              P7=tab2[3];
              P6=tab1[fen%10];
              delay(3500);
              P6=0x00;//消影
              P7=tab2[4];
              P6=tab1[fen/10];
              delay(3500);
              P6=0x00;//消影
              P7=tab2[5];
              P6=0x40;
              delay(3500);
              P6=0x00;//消影

              P7=tab2[6];
              P6=tab1[shi%10];
              delay(3500);
              P6=0x00;//消影
              P7=tab2[7];
              P6=tab1[shi/10];
              delay(3500);
              P6=0x00;//消影
      }
/*主函數*/
void main(void)
{
        chushihua();
        while(1)
        {
                sheding();
         display();
        }
}
/*定時器0中斷函數*/
void time0() interrupt 1
{
        if(sign)
        {
                tt++;
                if(tt>=1000)
                {
                        tt=0;
                        sec++;
                        if(sec>=60)
                        {
                                sec=0;
                                fen++;
                                if(fen>=60)
                                {
                                        fen=0;
                                        shi++;
                                        if(shi>=24)
                                        {
                                                shi=0;
                                        }
                                }
                        }
                }
        }
}

1.rar

86.54 KB, 下載次數: 37

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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