历史上的今天
返回首页

历史上的今天

今天是:2024年12月18日(星期三)

正在发生

2020年12月18日 | 单片机数字密码锁

2020-12-18 来源:51hei

程序源代码:

//************************************************************************************************************************************

//库调用.宏类型定义.位定义//

//************************************************************************************************************************************

#include                                    

#include

#define uchar unsigned char

#define uint unsigned int

#define ushort unsigned short


#define GPIO_KEY P1                 //矩阵键盘烧扫描端口

sbit RS = P2^2;                                       //液晶显示器控制端口

sbit RW = P2^3;

sbit E = P3^7;

sbit shuchu=P2^0;                                      //继电器控制端口

sbit beep=P2^1;                                              //报警器端口

sbit DoorBell=P3^6;                                    //门铃端口

sbit SCL = P2^6;                    //AT24C04的时钟

sbit SDA = P2^7;                    //AT24C04的数据


uchar idata upxs[16]={"Password:"}; //上排存放数组

uchar idata dwxs[16]={""};          //下排存放数组

uint idata tempword[6]={0};                     //临时密码数组

uint idata password[6]={1,1,1,1,1,1};//初始密码

uint idata now=0;                                                  //数组伪指针

uint idata key=0;                   //密钥

uint idata keyboard=0;              //键盘锁定标志

uint idata key1=0;                                          //用于密码修改

uint idata KeyValue=16;             //用来存放读取到的键值

uint idata warn=0;                                          //错误累计

uint idata time=0;                                          //用于定时

uint idata time1=0;                 //用于定时

uint idata time2=0;                 //用于定时

uint idata moshi=0;                                          //定时器内部模式

uchar idata BUF[8];                 //掉电数据缓存区

uchar idata TESTDATA[8]={0};        //掉电新密码存储

uint idata menu=0;                                    //menu用于密码修改

uint idata tempword1[8]={0};        //用于密码修改

//*********************************************************************************************************************************

//函数声明//

//*********************************************************************************************************************************

void delete(void);

//*********************************************************************************************************************************

/*模块名称:液晶驱动显示模块*/

/*模块功能:驱动LCD1602的显示,并时时显示按键值*/

//*********************************************************************************************************************************

void delay(uint dell)//毫秒延时//

{

     uchar x;

     for(dell;dell>0;dell--)

     for(x=110;x>0;x--);

}

void wr_com(uchar temp)//写指令//

{

     RS=0;

     RW=0;

     P0=temp;

     E=1;

     E=0;

}

void wr_data(uchar num)//写数据//

{

     RS=1;

     RW=0;

     P0=num;

     E=1;

     E=0;

}

void disp_lcd(uchar addr,char *templ)//显示函数//

{

     uchar i;

     wr_com(addr);

           delay(50);

     for(i=0;i<16;i++)

    {

     wr_data(templ[i]);

           delay(50);

    }         

}

void lcd_init()//初始化液晶//

{

     wr_com(0x30);

      delay(50);

     wr_com(0x38);

      delay(50);

     wr_com(0x01);

      delay(50);

     wr_com(0x06);

      delay(50);

     wr_com(0x0c);

      delay(50);

}

void lcdxianshi(void)//液晶总显示//

{

     disp_lcd(0x80,upxs);

     disp_lcd(0xc0,dwxs);

}

//*********************************************************************************************************************************

/*模块名称:矩阵键盘扫描模块*/

/*模块功能:时时扫描按键值*/

//*********************************************************************************************************************************

void Delay10ms(void)//延时函数//

{

    unsigned char a,b,c;

    for(c=1;c>0;c--)

        for(b=38;b>0;b--)

            for(a=130;a>0;a--);

}

void KeyDown(void)//键盘检测函数//

{

        char a=0;

        GPIO_KEY=0x0f;

        if(GPIO_KEY!=0x0f)     //读取按键是否按下

        {

                Delay10ms();         //延时10ms进行消抖

                if(GPIO_KEY!=0x0f)   //再次检测键盘是否按下

                {

                       

                        //扫描列

                        GPIO_KEY=0X0F;

                        switch(GPIO_KEY)

                        {

                                case(0X07):        KeyValue=0;break;

                                case(0X0b):        KeyValue=1;break;

                                case(0X0d): KeyValue=2;break;

                                case(0X0e):        KeyValue=3;break;

                        }

                        //扫描行

                        GPIO_KEY=0XF0;

                        switch(GPIO_KEY)

                        {

                                case(0X70):        KeyValue=KeyValue;break;

                                case(0Xb0):        KeyValue=KeyValue+4;break;

                                case(0Xd0): KeyValue=KeyValue+8;break;

                                case(0Xe0):        KeyValue=KeyValue+12;break;

                        }

                        while((a<10)&&(GPIO_KEY!=0xf0))//按键松手检测

                        {

                                Delay10ms();

                                a++;

                        }

                }

        }

}

//*******************************************************************************************************************************

/*模块名称:数据处理模块*/

/*模块功能:(1)将按键值传递给各种缓存数祝(2)包含数据清除函数*/

//*******************************************************************************************************************************

void keysend(void)//键值传递//

{

                 switch(KeyValue)

           {

             case 0:{dwxs[now]='0';tempword[now]=0;TESTDATA[now]=0;now++;break;}

                   case 1:{dwxs[now]='1';tempword[now]=1;TESTDATA[now]=1;now++;break;}

推荐阅读

史海拾趣

Cooper Tools(Eaton)公司的发展小趣事

由于Cooper Tools和Eaton公司是两个不同的实体,无法同时给出这两家公司的发展故事。然而,我可以分别为这两家公司提供一些发展过程中的重要事件和里程碑,以展现它们在电子行业中的成长轨迹。

关于Cooper Tools的发展故事

  1. 创立与初步发展:1833年,一对兄弟以自己的姓氏创立了库柏(Cooper Tools)。起初,公司专注于制造基本的工具和设备,凭借精湛的工艺和可靠的质量,逐渐在市场上获得了一席之地。

  2. 多元化发展:随着时间的推移,库柏开始逐渐扩展其产品线,从基本的工具制造拓展到电子产品和动力工具的制造。这种多元化的战略使得公司能够更好地适应市场的变化,满足不同客户的需求。

  3. 上市与国际化:1944年,库柏公司成功上市,这一里程碑标志着公司进入了一个新的发展阶段。随后,库柏开始积极寻求海外市场的拓展,逐渐将其产品推向全球。

  4. 技术创新:在技术创新方面,库柏一直保持着前瞻性的思维。公司不断投入研发,推出了一系列具有创新性的电子产品和工具,为行业的发展做出了重要贡献。

  5. 持续发展与领导地位:如今,库柏已经成为一家以电子产品和工具为主的全球性制造商,其产品在市场上享有很高的声誉。公司凭借其卓越的技术实力和市场竞争力,在电子行业中占据了重要的领导地位。

关于Eaton公司的发展故事

  1. 创立与初期成长:1911年,约瑟夫·欧文·伊顿在俄亥俄州克利夫兰创立了伊顿制造公司,专注于汽车零部件的生产。凭借对质量的严格把控和对技术的不断创新,伊顿很快在汽车行业中崭露头角。

  2. 产品线的扩展:随着公司的发展,伊顿开始逐步扩展其产品线,从汽车零部件拓展到工业传动系统、电气控制设备等多个领域。这种多元化的产品策略使得伊顿能够更好地满足市场的多样化需求。

  3. 收购与整合:在发展过程中,伊顿通过一系列的收购和整合活动,不断增强其市场地位和技术实力。例如,收购侯赛汽车配件公司使得伊顿能够进军汽车传动系统领域;收购Cutler-Hammer公司则让伊顿在电气控制设备领域取得了重要突破。

  4. 全球化战略:为了进一步扩大市场份额,伊顿积极实施全球化战略,通过设立海外生产基地和销售渠道,将产品推向全球市场。同时,公司还加强与国际同行的合作与交流,不断提升自身的国际竞争力。

  5. 转型与未来发展:近年来,随着能源效率革命的兴起和环保意识的提高,伊顿开始逐渐向电力管理和电气组件领域转型。通过不断的技术创新和产业升级,伊顿正努力成为电力管理领域的领军企业,为未来的可持续发展贡献力量。

请注意,以上故事是基于公开资料整理而成,旨在客观描述两家公司在电子行业中的发展轨迹。由于篇幅限制,每个故事的字数可能未能达到500字的要求,但已经尽量涵盖了每个故事的核心内容。如需更详细的信息,建议查阅相关公司的官方资料或行业报告。

飞翼科技(FEIYI)公司的发展小趣事

在电子行业中,艾迪沃德公司(Beijing IDworld Science & Technology Development Co., Ltd.)的发展历程充满了技术创新与市场拓展的亮点。以下是五个关于艾迪沃德公司发展起来的相关故事,每个故事均基于事实描述,旨在展现其成长轨迹。

1. 创立与技术创新起点

艾迪沃德公司成立于2004年6月,自创立之初便确立了以研究、开发国际先进指纹识别技术为基本战略的发展方向。在那个指纹识别技术刚刚兴起的时代,艾迪沃德凭借其前瞻性的视野,迅速投入到这一领域的探索中。公司自主研发的指纹识别技术,经过不断迭代与优化,逐渐成为了业界公认的优秀指纹识别核心算法之一。这一技术突破不仅为公司赢得了市场的初步认可,更为后续的产品开发奠定了坚实的基础。

2. 产品多元化与市场拓展

随着技术的不断成熟,艾迪沃德开始将指纹识别技术应用于更多领域,推出了包括指纹考勤机、指纹门禁系统、指纹保险柜在内的多元化产品系列。这些产品凭借其高安全性、便捷性和稳定性,迅速在市场中占据了一席之地。特别是在安防、金融、教育等行业,艾迪沃德的产品得到了广泛应用,进一步巩固了其在指纹识别领域的市场地位。

3. OEM与ODM业务的发展

为了满足不同客户的定制化需求,艾迪沃德积极拓展OEM(原始设备制造商)和ODM(原始设计制造商)业务。公司凭借其强大的研发能力和生产能力,为众多合作伙伴提供从产品设计、生产到售后的全方位服务。这一业务模式不仅为公司带来了稳定的收入来源,还进一步提升了艾迪沃德在电子行业中的知名度和影响力。

4. 技术支持与解决方案提供

艾迪沃德深知技术支持对于客户的重要性,因此公司组建了一支专业的技术支持团队,为客户提供包括技术咨询、方案设计、系统集成在内的全方位服务。无论是大型项目还是小型应用,艾迪沃德都能根据客户的具体需求,提供量身定制的解决方案。这种以客户为中心的服务理念,赢得了客户的广泛赞誉和信赖。

5. 国际合作与品牌建设

在国际化战略的推动下,艾迪沃德积极参与国际交流与合作,与多家国际知名企业建立了良好的合作关系。通过引进国外先进技术和管理经验,艾迪沃德不断提升自身的竞争力和创新能力。同时,公司还加大了品牌建设的力度,通过参加国际展会、发布新品等方式,提升品牌知名度和美誉度。这些努力不仅为公司带来了更多的国际合作机会,也为艾迪沃德在全球电子行业中树立了良好的品牌形象。

百佳(BAIJIA)公司的发展小趣事

在多年的发展过程中,百佳公司始终坚守品质至上的原则。他们严格把控产品质量,从原材料采购到生产制造的每一个环节都进行严格的监控和检测。同时,百佳公司还注重提升客户服务水平,为客户提供及时、专业的技术支持和售后服务。正是这种对品质的坚持和对客户的尊重,使得百佳公司赢得了广大客户的信赖和长期合作。

这五个故事只是百佳公司在电子行业发展中的一部分缩影。它们展示了百佳公司从初创时期的艰苦与坚持,到抓住市场机遇迅速崛起,再到技术创新引领发展、拓展国际市场实现全球化布局,以及坚持品质至上赢得客户信赖的完整历程。这些故事不仅见证了百佳公司的成长和成功,也展现了电子行业的蓬勃发展和无限可能。

GSI Technology公司的发展小趣事

随着电子行业的快速发展,GSI Technology积极寻求新的市场机会。公司凭借其高性能存储器产品在军事、医疗、汽车等领域的应用优势,成功进军这些新兴市场。同时,GSI还积极与行业内其他企业建立战略合作关系,共同推动技术创新和市场拓展。例如,GSI与某知名汽车制造商合作,为其开发定制化的高性能存储器解决方案,有效提升了汽车智能化水平。

Allied Wire & Cable Inc公司的发展小趣事

随着公司业务的不断发展,Allied公司开始积极拓展产品线,逐渐涵盖了多种类型的电线电缆产品,满足了不同客户的需求。同时,公司还积极开拓新的市场领域,将产品推广至全国范围,并逐渐拓展至国际市场。通过不断的产品创新和市场拓展,Allied公司的业务规模逐渐扩大,市场份额也稳步提升。

Centellax Inc公司的发展小趣事

随着技术的成熟和市场的扩大,Centellax开始积极拓展国内外市场。公司通过与全球知名的通信设备制造商、电信运营商等建立合作关系,成功将产品打入国际市场。此外,Centellax还积极参与行业展会、研讨会等活动,提升品牌知名度和影响力。

在战略合作方面,Centellax注重与产业链上下游企业的协同发展。通过与供应商、客户等建立紧密的合作关系,实现资源共享和优势互补。这些合作不仅有助于提升公司的运营效率和市场竞争力,还为公司的长期发展提供了有力保障。

问答坊 | AI 解惑

控制阀的选型

1. 概述 控制阀安装在工艺过程自动控制系统中,直接控制控制工艺介质。多年以来,控制阀被认为是低技术含量产品,事实上控制阀往往要控制高温、高压、高压差、高粘度或含有固体颗粒、强腐蚀性和闪蒸的流体,工作条件非常恶劣,从而导致调节阀使用 ...…

查看全部问答>

WINCE4.2安装出错,请高手帮忙!

WINCE4.2安装时出错,错误提示如下: Error 21337.Setup encountered problems installing some critical emulation components.You may continue the install,but the emulator may not work .Would you like to continue setup? 哪位高手知道是什 ...…

查看全部问答>

Wince下CAN驱动开发,每次发送数据时,CAN设备总是接收到多个数据帧

    我在WinCE下开发MCP2515的CAN驱动程序,硬件是TQ2440的开发板,CPU是S3C2440,现在的问题是,每次发通过MCP2515发送数据的时候,我总是可以接收到多个CAN数据帧,而且每次接收到的CAN数据帧的数量也不同,我也把MCP2515设置成了单次触 ...…

查看全部问答>

wince下宽字符的中英文字符怎么辨别呢?

如果不是宽字符可以用长度辨别 但是在宽字符下不管是中文还是英文都是 长度都是1 这个怎么辨别是中文呢? 还有 如果我要出字符串中搜索到是否含有某个汉字 这个是通过怎么搜呢? 我在 edit控件中输入 方   然后把这个方放入wchar_t *st ...…

查看全部问答>

请问关于在wince下 gis开发需要什么工具

我现在一个问题就是做gis,能显示地图,导航什么的 我用的是xsbase270,处理器是intel pxa270。 evc 4.0。 开始的时候我想用esupmap5.0,但是esupmap5.0试用版的没有我硬件平台的函数库.也不支持vs2005 有pocketpc2003的函数库. 所以我现在的方 ...…

查看全部问答>

求LM3S EPI模块的外设驱动库使用指南

如题,EPIAddressMapSetEPIConfigSDRAMSetEPIAddressMapSet这些函数的使用说明找不到啊。请有的兄弟给分享下。先谢过了。…

查看全部问答>

小弟我虚心请教,跪求各位高手解答!在线等!!!!!!! 在线等!!!!!!!

小弟我虚心请教,跪求各位高手解答。我想用单片机实现电压的转换。大致要求如下: 输出端有2个:x和y.  输入端为p1到p9.   p1,p2,p3为一组,p4,p5,p6为一组,p7,p8,p9为一组。p1端输入5v电压时,x端输出5v,y端输出0v;p3端输入5v时,x端输 ...…

查看全部问答>

TI的集成PHY的M4,TM4C129可出来了在TI的网站上面

http://www.ti.com.cn/lsds/ti_zh/microcontroller/tiva_arm_cortex/c_series/tm4c129x_series/overview.page?paramCriteria=no TI的集成PHY的M4,TM4C129可出来了在TI的网站上面…

查看全部问答>

【Atmel SAM R21】向左拐,向右拐(汇总帖)

本帖最后由 ddllxxrr 于 2015-3-31 10:12 编辑 好像有个网络小说叫《向左走,向右走》。说是男女主人公隔着一道墙,每天上班都看不到对方,后来好像还没看到就拉倒了。其实,这个东西是一种缘份,有的人有缘没有份,有的有份无缘。实现中,小说里 ...…

查看全部问答>

电动牙刷拆解和分析

用了两年的国产电动牙刷坏了。周末抽空把它拆开,简单分析了一下。 拆开后的样子,可以看到布局还是比算紧凑,但是没有什么特殊的地方。(因为这个牙刷黏合比较紧,拆开的时候外壳就破损了,同时为了避免其他问题,就不放出来了) 这个电动牙刷有 ...…

查看全部问答>