返回列表 回复 发帖

本人自己编辑的C语言

/**************************************************************************************************************
标  题: 按键+数码管显示+LED灯
效  果: 当按键有输入时静态显示一位数码管,同时LED灯发光
工作于:    初学者  小林子家电
***************************************************************************************/
//头文件:
#include "reg51.h"
//变量定义:
unsigned char table[]=
   {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
     //表:共阳数码管 0-9
//引脚定义:
sbit key1 = P3^7; //定义按键1
sbit key2 = P3^6; //定义按键2
sbit key3 = P3^5; //定义按键3
sbit key4 = P3^4; //定义按键4
sbit key5 = P3^3; //定义按键5
sbit key6 = P3^2; //定义按键6
sbit led1 = P2^0;       //定义LED1
sbit led2 = P2^1; //定义LED2
sbit led3 = P2^2; //定义LED3
sbit led4 = P2^3; //定义LED4
sbit led5 = P2^4; //定义LED5
sbit led6 = P2^5;      //定义LED6
sbit led7 = P2^6;       //定义LED7
sbit led8 = P2^7;      //定义LED8
  
sbit SMG_g = P1^3; //定义数码管阳级控制脚(个位)

//主函数,C语言的入口函数:
void main(void)
{
while(1){  //循环扫描按键
  if(key1==0){ //按键1按下,数码管显示1同时LED1.3.5.7灯亮 。
      SMG_g=0;
   P0=0xf9;
   led1=0;
   led2=1;
   led3=0;
   led4=1;
   led5=0;
   led6=1;
   led7=0;
   led8=1;
  
   }
   

  if(key2==0){ //按键2按下,数码管显示2同时LED2.4.6.8灯亮 。
      SMG_g=0;
   P0=0xa4;
   led1=1;
   led2=0;
      led3=1;
      led4=0;
   led5=1;
   led6=0;
   led7=1;
   led8=0;
   
   }
  if(key3==0) {  //按键3按下,数码管显示3同时LED1.3.6.8灯亮 。
   SMG_g=0;
   P0=0xb0;
      led1=0;
   led2=1;
   led3=0;
   led4=1;
   led5=1;
   led6=0;
   led7=1;
   led8=0;
   
   }
   

  if(key4==0) {   //按键4按下,数码管显示4同时LED2.4.5.7灯亮 。
      SMG_g=0;
   P0=0x99;
   led1=1;
   led2=0;
   led3=1;
   led4=0;
   led5=0;
   led6=1;
   led7=0;
   led8=1;
   }

  if(key5==0){  //按键5按下,数码管显示1同时LED3.6灯亮 。
   SMG_g=0;
   P0=0x92;
   led1=1;
   led2=1;
   led3=0;
   led4=1;
   led5=1;
   led6=0;
   led7=1;
   led8=1;
   }
      
  if(key6==0){   //按键6按下,数码管显示6同时LED1.2.4.5.7.8灯亮 。
     SMG_g=0;
     P0=0x82;
     led1=0;
     led2=0;
     led3=1;
     led4=0;
     led5=0;
     led6=1;
     led7=0;
     led8=0;


  
  }
}
}
附件: 您所在的用户组无法下载或查看附件
请大家帮帮忙看看,还能不能简单化。
“编辑的C语言”看不懂
牛X。。。。。。、。。。。
P2口直接送显示数例:if(key6==0){   //按键6按下,数码管显示6同时LED1.2.4.5.7.8灯亮 。
     SMG_g=0;
     P0=0x82;
     led1=0;
     led2=0;
     led3=1;
     led4=0;
     led5=0;
     led6=1;
     led7=0;
     led8=0;
改成
P2=0x24;
曹师傅看看这回的可以不。
/**************************************************************************************************************
标  题:        按键+数码管显示+LED灯
效  果:        当按键有输入时静态显示一位数码管,同时LED灯发光
工作于:    初学者  小林子家电
***************************************************************************************/

//头文件:
#include "reg51.h"

//变量定义:
unsigned char table[]=
                        {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
                                        //表:共阳数码管 0-9

//引脚定义:
sbit key1 = P3^7;        //定义按键1
sbit key2 = P3^6;        //定义按键2
sbit key3 = P3^5;        //定义按键3
sbit key4 = P3^4;        //定义按键4
sbit key5 = P3^3;        //定义按键5
sbit key6 = P3^2;        //定义按键6

sbit led1 = P2^0;   //定义LED1
sbit led2 = P2^1;        //定义LED2
sbit led3 = P2^2;        //定义LED3
sbit led4 = P2^3;        //定义LED4
sbit led5 = P2^4;        //定义LED5
sbit led6 = P2^5;      //定义LED6
sbit led7 = P2^6;       //定义LED7
sbit led8 = P2^7;      //定义LED8
         
sbit SMG_g = P1^3;        //定义数码管阳级控制脚(个位)


//主函数,C语言的入口函数:       
void main(void)
{
        while(1){                //循环扫描按键
                if(key1==0){        //按键1按下,数码管显示1同时LED1.3.5.7灯亮 。
                    SMG_g=0;
                        P0=0xf9;
                    P2=0x55;
               
                        }
                       


                if(key2==0){        //按键2按下,数码管显示2同时LED2.4.6.8灯亮 。
                    SMG_g=0;
                        P0=0xa4;       
                        P2=0xaa;
                       
                        }

                if(key3==0)        {         //按键3按下,数码管显示3同时LED1.3.6.8灯亮 。
                        SMG_g=0;
                        P0=0xb0;
                        P2=0x5a;
                  
                       
                        }
                       


                if(key4==0)        {          //按键4按下,数码管显示4同时LED2.3.6.7灯亮。
                           SMG_g=0;
                        P0=0x99;
                        P2=0x99;
               
                        }


                    
                       

                if(key5==0){                //按键5按下,数码管显示1同时LED3.6灯亮 。
                        SMG_g=0;
                        P0=0x92;
                        P2=0xdb;
                       

                        }
                                                       
                if(key6==0){                 //按键6按下,数码管显示6同时LED1.2.4.5.7.8灯亮 。
                   SMG_g=0;
                   P0=0x82;
                   P2=0x24;
                  




               
                }
        }
}
曹师傅,如果把上边的文件加上
{//引脚定义:       
sbit SMG_q = P1^0;        //定义数码管阳级控制脚(千位)
sbit SMG_b = P1^1;        //定义数码管阳级控制脚(百位)
sbit SMG_s = P1^2;        //定义数码管阳级控制脚(十位)
sbit SMG_g = P1^3;        //定义数码管阳级控制脚(个位)
}
怎样改动后才能让他的个位和十位上显示的数字是不相同的。
曹师傅,如果把上边的文件加上
{//引脚定义:        
sbit SMG_q = P1^0;        //定义数码管阳级控制脚(千位)
sbit SMG_b = P1^1;        //定义数码管阳级控制脚(百位)
sbit SMG_s = P1^2;        //定义数码管阳级控制脚(十位)
sb ...
林春宇 发表于 2011-11-12 11:36
动态扫描。
曹师傅,能不能把我这个程序帮我改成4位的动态扫描吗?什么数字都可以 。
学习学习
返回列表