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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6262|回復: 3
收起左側

單片機數碼管秒表:按鍵實現開始計時、停止計時和清零。并用數碼管2位顯示分和2位...

[復制鏈接]
ID:721818 發表于 2020-6-22 19:43 | 顯示全部樓層 |閱讀模式
5黑幣
#include<reg52.h>

#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit WE1=P2^0;
sbit WE2=P2^1;
sbit WE3=P2^2;
sbit WE4=P2^3;

sbit key1=P3^5;
sbit key2=P3^4;

uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};

uint cnt=0;
uint num=0;
uint num1=0;//0.1s的次數的計數值


void delay(uint i)    //延時函數

{
uchar t;
while(i--)
{
for(t=0;t<120;t++);  
}
}
        
void initTimer0()
        {

                TMOD=0x01;
                TH0=(65536-45872)/256;
                TL0=(65536-45872)%256;
                EA=1;
                ET0=1;
                TR0=0;

        }

void display(uchar qian,uint bai,uint shi,uint ge)
{           

                WE1=0;
                P0=tab[qian]; delay(1);
                WE1=1;


                WE2=0;
                P0=tab[bai]+0x08; delay(1);
                WE2=1;



                WE3=0;
                P0=tab[shi]; delay(1);
                WE3=1;


                WE4=0;
                P0=tab[ge];         delay(1);
                WE4=1;


                 }        
               

void main()
{

uint ms100=0;//秒的十位
uint s,s1,min,min1,minu=0; //依次是秒的個位,秒的十位,分的個位,分的十位
initTimer0();

        if(key1==0)
        {
        delay(20);
          if(key1==0)
          {
                   TR0=!TR0;
                 while(!key1);
                  }
        }        
if(key2==0)
        {
                  delay(20);
                num1=0;
                num=0;
                ms100=0;
                cnt=0;
                minu=0;
                while(!key2);
                  }

          {         
                  if(num1>=2)//檢測是否達到0.1s,(兩個50ms)
                 {
                 num1=0;//進入中斷次數值清零
                 ms100++;//秒的十位的計數值加1
                 if(ms100>=10)//若秒的十分位計數值達到10
                         {
                           ms100=0;//清零秒的十分位的計數值
                          num1=0;
                         }
                        }
           if(num>=20)
                                   {
                                     num=0;
                                        cnt++;

                        if(cnt>=60)
                                        {
                                        cnt=0;
                                        minu++;
                                        if(minu>=60)
                                        {
                                        TR0=!TR0;
                                        num1=0;
                                        num=0;
                                        ms100=0;
                                        cnt=0;
                                        minu=0;

                                        }
                                        }
                                        }

                        s=cnt%10;//從秒的計數值里面分離秒的個位
                        s1=cnt/10;//從秒的計數值里面分離秒的十位
                        min=minu%10;//從分的計數值里面分離分的個位
                        min1=minu/10;//從分的計數值里面分離分的十位

                        display(min1,min,s1,s);//顯示這4個數        

                        }
                           }
                        

         

void time0() interrupt 1
  {
                   TH0=(65536-45872)/256;
                 TL0=(65536-45872)%256;
                 num++;
                 num1++;
  }

出來效果是這樣的

出來效果是這樣的
5f42cfb80da38d9fb76a61a30e56c4c.png
回復

使用道具 舉報

ID:477474 發表于 2020-10-13 21:02 | 顯示全部樓層
   WE2=0;                 P0=tab[bai]+0x08; delay(1);             都了+0x 08。!
回復

使用道具 舉報

ID:477474 發表于 2020-10-13 21:04 | 顯示全部樓層
   WE2=0;
                P0=tab[bai]+0x08; delay(1);
                WE2=1;

都了+0x08
回復

使用道具 舉報

ID:947263 發表于 2021-6-30 12:36 來自觸屏版 | 顯示全部樓層
程序我打進去有點錯誤
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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