找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3522|回复: 0
打印 上一主题 下一主题
收起左侧

[原创]按鍵計分程序

[复制链接]
跳转到指定楼层
楼主
ID:44179 发表于 2012-9-10 04:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
此段程序可以实现按键计分,但是按下按键key0后,数码管(共阴)1由0变为1。 但是其余数码管也会同时闪烁,求解
#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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表