标题: 单片机按键控制8位数码管-每按一个键在8位数码管上从左到右显示 [打印本页]

作者: lianlian    时间: 2015-7-14 17:29
标题: 单片机按键控制8位数码管-每按一个键在8位数码管上从左到右显示




//P1口接8个按键,代表1~8。每按一个键在8位数码管上从左到右显示。
//D:\DPJ_C\OTHER\8位数码管\8位数码管.C
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit KEY1=P1^0;
sbit KEY2=P1^1;
sbit KEY3=P1^2;
sbit KEY4=P1^3;
sbit KEY5=P1^4;
sbit KEY6=P1^5;
sbit KEY7=P1^6;
sbit KEY8=P1^7;
sbit P3_0=P3^0;
sbit P3_1=P3^1;
sbit P3_2=P3^2;
sbit P3_3=P3^3;
sbit P3_4=P3^4;
sbit P3_5=P3^5;
sbit P3_6=P3^6;
sbit P3_7=P3^7;
bit  flag;
uchar a,temp;
uchar code tab[]={
      0x00,/*灭*/
      0x06,/*1*/
      0x5B,/*2*/
      0x4F,/*3*/
      0x66,/*4*/
      0x6D,/*5*/
      0x7D,/*6*/
      0x07,/*7*/
      0x7F,/*8*/
      };
uchar arr[9];
      
void delay (uint ms)
{
uchar i;
while(ms--)
for(i=0;i<123;i++);
}
void disp();
void main()
{
while(1)
{
  disp();
  if(flag==1)
  {
   flag=0;
   a++;
   if(a==9)
   a=1;
   arr[a]=temp;
  }


  while(!KEY1)
  {
   disp();
   if(KEY1)
   {
   flag=1;
   temp=1;
   }
  }
    while(!KEY2)
  {
   disp();
   if(KEY2)
   {
   flag=1;
   temp=2;
   }
  }while(!KEY3)
  {
   disp();
   if(KEY3)
   {
   flag=1;
   temp=3;
   }
  }
  while(!KEY4)
  {
   disp();
   if(KEY4)
   {
   flag=1;
   temp=4;
   }
  }
      while(!KEY5)
  {
   disp();
   if(KEY5)
   {
   flag=1;
   temp=5;
   }
  }
    while(!KEY6)
  {
   disp();
   if(KEY6)
   {
   flag=1;
   temp=6;
   }
  }while(!KEY7)
  {
   disp();
   if(KEY7)
   {
   flag=1;
   temp=7;
   }
  }
  while(!KEY8)
  {
   disp();
   if(KEY8)
   {
   flag=1;
   temp=8;
   }
  }
}
}
void disp()
{
P2=tab[arr[1]];
P3_0=0;
delay(1);
P3_0=1;
P2=tab[arr[2]];
P3_1=0;
delay(1);
P3_1=1;
P2=tab[arr[3]];
P3_2=0;
delay(1);
P3_2=1;
P2=tab[arr[4]];
P3_3=0;
delay(1);
P3_3=1;
P2=tab[arr[5]];
P3_4=0;
delay(1);
P3_4=1;
P2=tab[arr[6]];
P3_5=0;
delay(1);
P3_5=1;
P2=tab[arr[7]];
P3_6=0;
delay(1);
P3_6=1;
P2=tab[arr[8]];
P3_7=0;
delay(1);
P3_7=1;
}







作者: ludaijin    时间: 2015-10-20 19:12
学习了,顶起
作者: 2gy88yhs    时间: 2016-10-11 19:26
学习了,顶起




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1