历史上的今天
返回首页

历史上的今天

今天是:2025年01月02日(星期四)

正在发生

2020年01月02日 | 51单片机知识点之独立按键设总开关与分开关

2020-01-02 来源:51hei

 

#include                

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

推荐阅读

史海拾趣

FREESCALE (NXP)公司的发展小趣事

FREESCALE (NXP) 公司发展的五个故事

故事一:从摩托罗拉剥离到独立上市

FREESCALE的前身可以追溯到摩托罗拉的半导体部门。2002年,面对半导体业务的持续亏损,摩托罗拉集团决定剥离该部门。2004年,摩托罗拉半导体产品事业部正式更名为FREESCALE半导体公司,并在次年成功上市。这一剥离与上市过程标志着FREESCALE作为一个独立实体的诞生,为其后续的发展奠定了基础。独立后的FREESCALE迅速调整战略,专注于嵌入式电子解决方案,特别是在汽车电子、工业控制等领域取得了显著成就。

故事二:与恩智浦(NXP)的合并

2015年,FREESCALE与另一家半导体巨头恩智浦(NXP)达成合并协议,这是半导体行业内的一次重大整合。合并后的公司成为全球最大的汽车半导体供应商之一,并在多个关键技术领域占据领先地位。此次合并不仅增强了双方的市场竞争力,还促进了资源共享和技术创新,为未来的增长开辟了更广阔的空间。合并后的公司在全球范围内拥有更强大的研发和销售网络,能够更好地服务于全球客户。

故事三:从亏损到盈利的转型

在成为独立公司之前,FREESCALE的前身——摩托罗拉的半导体部门曾长期面临亏损困境。然而,在剥离并独立运营后,FREESCALE通过一系列战略调整和市场拓展措施,成功实现了从亏损到盈利的转型。公司注重技术创新和产品研发,不断推出符合市场需求的新产品,同时加强与客户和合作伙伴的合作,共同推动行业发展。这些努力使得FREESCALE在激烈的市场竞争中脱颖而出,成为半导体行业的佼佼者。

故事四:技术创新的引领者

FREESCALE一直致力于技术创新,不断推动半导体技术的进步。公司在嵌入式处理器、模拟芯片、射频芯片等多个领域拥有深厚的技术积累和丰富的产品线。例如,FREESCALE推出的基于Arm Cortex-M系列的微控制器在智能家居、智能穿戴等领域得到了广泛应用;其汽车半导体产品更是广泛应用于高级驾驶员辅助系统、车载网络等领域,为汽车行业的智能化转型提供了有力支持。FREESCALE的技术创新不仅提升了自身产品的竞争力,也为整个行业的发展注入了新的活力。

故事五:全球布局与本地化服务

为了更好地服务全球客户,FREESCALE(及合并后的NXP)在全球范围内进行了广泛的布局。公司在多个国家和地区设立了研发中心、生产基地和销售网络,能够快速响应客户需求并提供本地化服务。同时,FREESCALE还积极与全球各地的合作伙伴建立紧密关系,共同推动技术创新和市场拓展。这种全球布局与本地化服务的策略使得FREESCALE能够更好地融入当地市场,为客户提供更加贴心和高效的服务。

Digilent公司的发展小趣事

DIALIGHT在工业LED照明领域取得了显著成就。公司专注于为工业应用设计集成系统,以减少安装和维护的复杂性,并确保产品在恶劣条件下持续稳定运行。此外,DIALIGHT的LED产品旨在提供优越的运行性能、可靠性和耐久性,帮助客户降低能源成本、维护成本和碳足迹,同时提高设施的安全性和生产力。

DETCO公司的发展小趣事

当5G技术开始在全球范围内推广时,ElectronicsCorp看到了巨大的商机。公司迅速调整战略,将重点转向5G相关产品的研发。通过与全球领先的通信公司合作,ElectronicsCorp推出了一系列5G手机和通信设备。这些产品不仅性能卓越,而且价格合理,赢得了消费者的青睐。随着5G技术的普及,ElectronicsCorp的市场份额不断扩大。

Amphenol Aerospace公司的发展小趣事

为了进一步拓展全球市场,ElectronicsCorp制定了国际化战略。公司先后在北美、欧洲和南美等地设立了研发中心和生产基地。这些海外机构不仅为ElectronicsCorp提供了更广阔的市场空间,还使其能够更深入地了解不同地区的消费者需求和文化背景。通过本土化战略的实施,ElectronicsCorp逐渐在海外市场取得了成功。

FUJIKURA公司的发展小趣事

随着智能家居市场的兴起,ElectronicsCorp看到了巨大的潜力。公司投入大量资金研发智能家居设备和技术,并与多家知名家居品牌合作推出了一系列智能家居解决方案。这些解决方案不仅提供了便捷的智能家居体验,还注重用户隐私保护和数据安全。通过不断创新和优化产品体验,ElectronicsCorp在智能家居领域取得了显著突破,并成为全球智能家居市场的领军企业之一。

Elma Electronic Inc公司的发展小趣事

Elma在美国和美洲拥有广泛的客户群,覆盖电信、工业控制、医疗电子、国防和航空航天等多个行业。其产品线包括外壳、背板、系统平台、机柜、高品质开关和编码器等多种零件,能够满足不同行业客户的多样化需求。这种跨行业的布局使得Elma能够在多个领域保持竞争力。

问答坊 | AI 解惑

浅谈DSP的音频处理

摘要:从激光唱盘(CD)到超级音频CD(SACD)、DVD音频唱盘和MP3多媒体播放器,数字形式的音频技术越来越流行,音频处理已经取得了长足的进步。本文重点探讨DSP的音频处理。 现在大多数音频处理仍然在模拟领域进行,因为早期的数字处理解决方案--基 ...…

查看全部问答>

终于点亮了我的LCD显示器,1024*768@60Hz,verilog语言,EP2C8,全部源码

昨天几乎一晚没睡,参考了很多代码,现在只是点亮了,没进行美化,我是新手,大家别拍砖,呵呵。 module vga( clock, switch, disp_RGB, hsync, vsync ); input clock; //系统输入时钟 input [1:0]switch; output  [ ...…

查看全部问答>

Windows打印系统结构

拜托哪位给我介绍一下Windows打印系统结构,详细的最好…

查看全部问答>

嵌入式系统软件反盗版问题

我想知道怎么能做到一套硬件系统唯一对应一套软件,关键硬件没有唯一性,要是cpu或存储器能有个序列号就好办,一般的flash是不都没有串号或者叫序列号?三星的K9F1208U0M好像没有啊!…

查看全部问答>

基于单片机89s51的预应力张拉控制仪的设计

急需,谢谢帮帮忙,传一个到邮箱rap511423713@qq.com!!!!!!!!!!!!!1…

查看全部问答>

上位机(VB6.0)与下位机STM32 USB接口通讯 多谢

请问下,我是用VB6.0做上位机,STM32做下位机。通过上位机VB发送一个指令,下位机(STM32)收到后,执行对应的命令,这是怎么实现的,例如STM32的PB0~PB7分别点亮8个LED发光二极管!从VB中发送出来 地址 &H00,&H01,&H02,&H03,&H04,&H05,&H06, ...…

查看全部问答>

新手时钟程序求助

为啥在lcd1602中,读回来的数不是按递加显示呢? 时钟芯片ds12c8887,使用的是51单片机!请诸位相助解答。…

查看全部问答>

是不是只要是芯片就属于数字电路?对模拟的概念,有点蒙了,求大神指教一二

     以前吧,感觉自己很清楚模拟和数字的概念,最近越来越感觉模糊了^             以前感觉——只要是芯片就属于数字电路,电阻电容搭建起来的电路属于模拟电路。 比如单片机就 ...…

查看全部问答>

2431上传网关的数据中,有最近参考点的短地址,怎么获得的???

CC 2431上传网关的数据中,有最近参考点的短地址,怎么获得的??? …

查看全部问答>

temp6=(int)(Rain*10);这个语句有问题吗?

temp6=(int)(Rain*10);这个语句有问题吗?我的Rain是float类型的 …

查看全部问答>