标题: 51单片机知识点之独立按键设总开关与分开关 [打印本页]

作者: jinsheng7533967    时间: 2018-12-11 14:08
标题: 51单片机知识点之独立按键设总开关与分开关
51单片机知识点之独立按键设总开关与分开关.zip (19.03 KB, 下载次数: 32)

#include<reg51.h>               
#define uint8        unsigned char
#define uint16  unsigned int

sbit Key=P1^0;
sbit Key1=P1^1;
sbit Key2=P1^2;
sbit Key3=P1^3;
sbit Key4=P1^4;
sbit speak=P1^6;
sbit led=P1^7;
void delay(uint16 dly)
{
        uint16 x,y;
        for(x=dly;x>0;x--)
                for(y=247;y>0;y--);
}

main()
{
        int i,j,k,m,n,N;
        {
                if(m==1)
                {       
                        if(Key==0)                      
                        {
                                delay(10);                        
                                if(Key==1)           
                                        break;
                                while(Key==0);
                                i++;
                                if(i==9)
                                        i=1;  
                        }
                        switch(i)
                        {
                        case 1:P0=0xfd;
                                break;
                        case 2:P0=0xfb;
                                break;
                        case 3:P0=0xf7;
                                break;
                        case 4:P0=0xef;
                                break;
                        case 5:P0=0xdf;
                                break;
                        case 6:P0=0xbf;
                                break;
                        case 7:P0=0x7f;
                                break;
                        case 8:P0=0xfe;
                                break;
                        default:
                                ;
                        }                  
                       
                        if(Key1==0)                      
                        {
                                delay(10);                        
                                if(Key1==1)                 
                                        break;
                                while(Key1==0)  ;             
                                j++;
                                if(j==9)
                                        j=1;
                        }
                  
                       
                        if(Key2==0)                      
                        {
                                delay(10);                        
                                if(Key2==1)                  
                                        break;
                                while(Key2==0)  ;             
                                k++;
                                if(k==9)
                                        k=1;
                        }
                        switch(k)
                        {       
                        case 1:P3=0xfd;
                                break;
                        case 2:P3=0xfb;
                                break;
                        case 3:P3=0xf7;
                                break;
                        case 4:P3=0xef;
                                break;
                        case 5:P3=0xdf;
                                break;
                        case 6:P3=0xbf;
                                break;
                        case 7:P3=0x7f;
                                break;
                        case 8:P3=0xfe;
                                break;
                        default:
                                ;
                        }
                       
                        if(Key4==0)                      
                        {
                                delay(10);                        
                                if(Key4==0)                  
                                        N++;
                                for(n=0;N>n;n++)
                                {
                                        speak=0;delay(1);
                                        speak=1;delay(1);        
                                }
                                                }                         
}
}                       
}                         

                       
        以上是部份代码,完全代码与仿真电路图在附件
资料中有设总开关与分开关的方法,另外有意外异常报警提示
                       
                         
               
                       






作者: qimo159    时间: 2020-1-2 08:43
没有找到代码啊???
作者: 还有谁?    时间: 2020-1-4 12:51
很好的案例,值得学习!




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