找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 4008|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

[原創(chuàng)]按鍵計(jì)分程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:44179 發(fā)表于 2012-9-10 04:26 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
此段程序可以實(shí)現(xiàn)按鍵計(jì)分,但是按下按鍵key0后,數(shù)碼管(共陰)1由0變?yōu)?。 但是其余數(shù)碼管也會(huì)同時(shí)閃爍,求解
#include <AT89X51.h>
#include <stdio.h>


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;


sbit led0=P2^0;
sbit led1=P2^1;
sbit led2=P2^2;
sbit led3=P2^3;
sbit led4=P2^4;
sbit led5=P2^5;
sbit led6=P2^6;
sbit led7=P2^7;

unsigned char yi=0,er=0,san=0,si=0,wu=0,liu=0,qi=0,ba=0;
unsigned char code table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
//"0","1","2","3","4","5","6","7","8","9"

void display();                         

void delay(unsigned int);

void main(void)
{
   TMOD=0X01;                             

   TH0=(65536-50000)/256;                     

   TL0=(65536-50000)%256;
   IT0=0;
   EA=1;
   ET0=1;                              

   EX0=1;                                   

   {
      while(1)
      {
         EA=0;
         if(key0==0)                 

         { 
   delay(20000);
         yi++;  
         }
         // 羲壽0偌狟ㄛ1瘍杅鎢奪樓1
         if(key1==0)                  /*羲壽1偌狟*/
         { 
   delay(20000);
         er++;   
         }
         // 羲壽1偌狟ㄛ2瘍杅鎢奪樓1
         if(key2==0)                  /*羲壽2偌狟*/
         {  
   delay(20000);
         san++;   
         }
         // 羲壽2偌狟ㄛ3瘍杅鎢奪樓1
         if(key3==0)                 /*羲壽3偌狟*/
         {
   delay(20000);
         si++;   
         }
         // 羲壽3偌狟ㄛ4瘍杅鎢奪樓1
         if(key4==0)                 /*羲壽4偌狟*/
         {  
   delay(20000);
         wu++;   
         }
         // 羲壽4偌狟ㄛ5瘍杅鎢奪樓1
         if(key5==0)                 /*羲壽5偌狟*/
         {  
   delay(20000);
         liu++;   
         }
         // 羲壽5偌狟ㄛ6瘍杅鎢奪樓1
         if(key6==0)                 /*羲壽6偌狟*/
         {  
   delay(20000);
         qi++;   
         }
         // 羲壽6偌狟ㄛ7瘍杅鎢奪樓1
         if(key7==0)                 /*羲壽7偌狟*/
         {
   delay(20000);
         ba++;   
         }
         // 羲壽7偌狟ㄛ8瘍杅鎢奪樓1  
         display();
      }
   }
}

//晊喧滲杅
void delay(unsigned int z)
{
   unsigned int x,y;
   for(x=z;x>0;x--);
   for(y=110;y>0;y--);
} 

//珆尨滲杅懂珆尨1~8瘍腔杅趼
void display(void)                       
{
   P2=0xfe;
   P0=table[yi];
   delay(2);

   P2=0xfd;
   P0=table[er];
   delay(2);

   P2=0xfb;
   P0=table[san];
   delay(2);

   P2=0xf7;
   P0=table[si];
   delay(2);
   
   P2=0xef;
   P0=table[wu];
   delay(2);
   
   P2=0xdf;
   P0=table[liu];
   delay(2);
   
   P2=0xbf;
   P0=table[qi];
   delay(2);
   
   P2=0x7f;
   P0=table[ba];
   delay(2);
}                               

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

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表