找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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);        
                                }
                                                }                         
}
}                       
}                         

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





评分

参与人数 3黑币 +70 收起 理由
还有谁? + 12
yoxi + 8 很给力!
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:675478 发表于 2020-1-2 08:43 | 只看该作者
没有找到代码啊???
回复

使用道具 举报

板凳
ID:475247 发表于 2020-1-4 12:51 | 只看该作者
很好的案例,值得学习!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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