| 注意:访问本站需要Cookie和JavaScript支持!请设置您的浏览器! • 打开购物车 • 查看留言 • 付款方式 • 联系我们 | 
|  | 
| 首页 | 电子入门 | 学单片机 | 免费资源 | 下载中心 | 商品列表 | 象棋在线 | 在线绘图 | 加盟五一 | 加入收藏 | 设为首页 | 
| 选择分类:当前分类——学单片机   相关联或者相类似的文章:    CMOS集成电路应用常识(543) 直流输入如何得到220V/1-2W的交流电(543) 法传销组织的“洗脑”骗术三(542) 电子技术自立学习法(541) 一款最简单的手机/MP3充电器电路图(541) 可充电电池技术和充电方法(540) SC3610频率及时钟显示驱动电路(540) 写给伟大教师的一封信:(539) STC单片机简介(539) 什么是卫星电视广播,它由几部分组(539) 多间单房长年低价招租(538) 固态继电器的选型注意事项(538) 存储器名词解释 (538) 专访中国农民制造超轻型飞机第一人——刘亦兵 (538) 常用三极管资料查询2(537) 常用三极管资料查询1(537) 【图文】科学家找到揭开地球最初奥(536) 摩托罗拉168VA手机汽车充电器剖析 (536) ★单片双路四位计数器程序(536) 简易漏电报警器(535) 首页 前页 后页 尾页  本站推荐: | 32.            电子密码锁设计  1.实验任务  根据设定好的密码,采用二个按键实现密码的输入功能,当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键3秒钟,同时发现报警声,直到没有按键按下3种后,才打开按键锁定功能;否则在3秒钟内仍有按键按下,就重新锁定按键3秒时间并报警。 2.电路原理图   图4.32.1 3.系统板上硬件连线  (1).            把“单片机系统”区域中的P0.0/AD0用导线连接到“音频放大模块”区域中的SPK IN端子上; (2).            把“音频放大模块”区域中的SPK OUT端子接喇叭和; (3).            把“单片机系统”区域中的P2.0/A8-P2.7/A15用8芯排线连接到“四路静态数码显示”区域中的任一个ABCDEFGH端子上; (4).            把“单片机系统“区域中的P1.0用导线连接到“八路发光二极管模块”区域中的L1端子上; (5).            把“单片机系统”区域中的P3.6/WR、P3.7/RD用导线连接到“独立式键盘”区域中的SP1和SP2端子上; 4.程序设计内容  (1).            密码的设定,在此程序中密码是固定在程序存储器ROM中,假设预设的密码为“12345”共5位密码。 (2).            密码的输入问题: 由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。 (3).            按键禁止功能:初始化时,是允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态在3次密码输入不正确的情况下发生的。 5.C语言源程序  #include <AT89X52.H>  unsigned char code ps[]={1,2,3,4,5};  unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,                                 0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};  unsigned char pslen=9;  unsigned char templen;  unsigned char digit;  unsigned char funcount;  unsigned char digitcount;  unsigned char psbuf[9];  bit cmpflag;  bit hibitflag;  bit errorflag;  bit rightflag;  unsigned int second3;  unsigned int aa;  unsigned int bb;  bit alarmflag;  bit exchangeflag;  unsigned int cc;  unsigned int dd;  bit okflag;  unsigned char oka;  unsigned char okb;  void main(void)  {    unsigned char i,j;    P2=dispcode[digitcount];    TMOD=0x01;    TH0=(65536-500)/256;    TL0=(65536-500)%256;    TR0=1;    ET0=1;    EA=1;    while(1)      {        if(cmpflag==0)          {            if(P3_6==0) //function key              {                for(i=10;i>0;i--)                for(j=248;j>0;j--);                if(P3_6==0)                  {                    if(hibitflag==0)                      {                        funcount++;                        if(funcount==pslen+2)                          {                            funcount=0;                            cmpflag=1;                           }                         P1=dispcode[funcount];                      }                      else                        {                           second3=0;                        }                    while(P3_6==0);                  }              }            if(P3_7==0) //digit key              {                for(i=10;i>0;i--)                for(j=248;j>0;j--);                if(P3_7==0)                  {                    if(hibitflag==0)                      {                        digitcount++;                                             if(digitcount==10)                          {                            digitcount=0;                          }                        P2=dispcode[digitcount];                        if(funcount==1)                          {                            pslen=digitcount;                            templen=pslen;                          }                          else if(funcount>1)                            {                              psbuf[funcount-2]=digitcount;                            }                      }                      else                        {                          second3=0;                        }                    while(P3_7==0);                  }              }          }          else            {              cmpflag=0;              for(i=0;i<pslen;i++)                {                  if(ps[i]!=psbuf[i])                    {                      hibitflag=1;                      i=pslen;                      errorflag=1;                      rightflag=0;                      cmpflag=0;                      second3=0;                      goto a;                    }                }              cc=0;              errorflag=0;              rightflag=1;              hibitflag=0;  a:          cmpflag=0;            }      }  }  void t0(void) interrupt 1 using 0  {    TH0=(65536-500)/256;    TL0=(65536-500)%256;    if((errorflag==1) && (rightflag==0))      {        bb++;        if(bb==800)          {            bb=0;            alarmflag=~alarmflag;          }        if(alarmflag==1)          {            P0_0=~P0_0;          }        aa++;        if(aa==800)          {            aa=0;            P0_1=~P0_1;          }        second3++;        if(second3==6400)          {            second3=0;            hibitflag=0;            errorflag=0;            rightflag=0;            cmpflag=0;            P0_1=1;            alarmflag=0;            bb=0;            aa=0;          }      }    if((errorflag==0) && (rightflag==1))      {        P0_1=0;        cc++;        if(cc<1000)          {            okflag=1;          }          else if(cc<2000)            {              okflag=0;            }            else              {                errorflag=0;                rightflag=0;                hibitflag=0;                cmpflag=0;                P0_1=1;                cc=0;                oka=0;                okb=0;                okflag=0;                P0_0=1;              }        if(okflag==1)          {            oka++;            if(oka==2)              {                oka=0;                P0_0=~P0_0;              }          }          else            {              okb++;              if(okb==3)                {                  okb=0;                  P0_0=~P0_0;                }            }      }  }  1、 本站不保证以上观点正确,就算是本站原创作品,本站也不保证内容正确。  2、如果您拥有本文版权,并且不想在本站转载,请书面通知本站立即删除并且向您公开道歉! | 
| 本站协议 |
 版权信息 | 
 关于我们 | 
 本站地图 | 
 营业执照 | 
 发票说明 | 
 付款方式 | 
 联系方式 深圳市宝安区西乡五壹电子商行——粤ICP备16073394号-1;地址:深圳西乡河西四坊183号;邮编:518102 E-mail:51dz$163.com($改为@);Tel:(0755)27947428 工作时间:9:30-12:00和13:30-17:30和18:30-20:30,无人接听时可以再打手机13537585389 |