虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

add

  • 基于单片机的红外门进控制系统设计与制作(含源程序和原理图)

    基于单片机的红外门进控制系统设计与制作:我们所做的创新实验项目“基于单片机的红外门控系统”已基本完成,现将其工作原理简要说明。该系统主要分为两大部分:一是红外传感器部分。二是单片机计数显示控制部分。基本电路图如下:其中红外传感器部分我们采用红外对管实现,红外对管平行放置,平常处于接收状态,经比较器输出低电平,当有人经过时,红外线被挡住,接收管接收不到红外线,经比较器输出高电平。这样,当有人经过时便会产生一个电平的跳变。单片机控制部分主要是通过外部两个中断判断是否有人经过,如果有人经过,由于电平跳变的产生,进入中断服务程序,这里我们采用了两对红外传感器接到两个外部中断口,中断0作为入口,实现加1操作,中断1作为出口,实现减1操作。另外,我们通过P0口控制室内灯的亮暗,当寄存器计数值为0时,熄灯,不为0时,灯亮。显示部分,采用两位数码管动态显示,如有必要,可以很方便的扩展为四位计数。精益求精!在实验过程中,我们走了非常多的弯路,做出来的东西根本不是自己想要的,我们本想做成室内只有一个门的进出计数,原理已清楚,即在门的两边放置两对红外对管,进出时,挡住两对对管的顺序不同,因此,可判断是进入还是出去,从而实现加减计数,编程时,可分别在两个中断服务程序的入口置标志位,根据标志位判断进出,详细内容在程序部分。理论如此,但在实际过程中,还是发现实现不了上述功能,我们初步判定认为是程序掌握得不够好,相信随着自己对单片机了解的深入,应该会做出更好的 (因为我们是临时学的单片机),程序的具体内容如下: $MOD52    ORG   0000H         LJMP  MAIN         ORG   0003H         LJMP  0100H         ORG   0013H         LJMP  0150H         ORG   0050HMAIN:    CLR   A         MOV   30H , A           ;初始化缓存区         MOV   31H , A         MOV   32H , A         MOV   33H , A         MOV   R6  , A         MOV   R7  , A  SETB  EA  SETB  EX0  SETB  EX1  SETB  IT0  SETB  IT1  SETB  PX1NEXT1:   ACALL HEXTOBCDD        ;调用数制转换子程序         ACALL DISPLAY          ;调用显示子程序         LJMP  NEXT1          ORG   0100H  ;中断0服务程序 LCALL  DELY mov 70h,#2 djnz 70h,next JBC  F0,NEXT         SETB F0        CLR P0.0 LCALL  DELY0 SETB   P0.0                  MOV   A , R7   add   A , #1   MOV   R7, A   MOV   A , R6         addC  A , #0  MOV   R6 , A  CJNE  R6 , #07H , NEXT  CLR   A  MOV   R6 , A  MOV   R7 , ANEXT:  RETI  ORG   0150H    ;中断1服务程序 LCALL  DELY mov 70h,#2 djnz 70h,next2 JBC  F0,NEXT2 SETB  F0 CLR P0.0 LCALL  DELY0 SETB   P0.0    CLR C                     MOV   A , R7   SUBB   A , #1  MOV   R7, A  MOV   A , R6   SUBB  A , #0  MOV   R6 , A  CJNE  R6 , #07H , NEXT2  CLR   A  MOV   R6 , A  MOV   R7 , ANEXT2:  RETI   ORG   0200HHEXTOBCDD:MOV  A , R6               ;由十六进制转化为十进制         PUSH  ACC         MOV   A , R7         PUSH  ACC  MOV   A , R2         PUSH  ACC  CLR   A         MOV   R3 , A  MOV   R4 , A  MOV   R5 , A  MOV   R2 , #10HHB3:     MOV   A  , R7              ;将十六进制中最高位移入进位位中         RLC   A  MOV   R7 , A  MOV   A  , R6  RLC   A  MOV   R6 , A  MOV   A  , R5              ;每位数加上本身相当于将这个数乘以2  addC  A  , R5  DA    A  MOV   R5 , A  MOV   A  , R4  addC  A  , R4  DA    A                   ;十进制调整  MOV   R4 , A  MOV   A  , R3  addC  A  , R3  DJNZ  R2 , HB3  POP   ACC   MOV   R2 , A  POP   ACC   MOV   R7 , A  POP   ACC  MOV   R6 , A  RET  ORG   0250HDISPLAY:  MOV   R0 , #30H         MOV   A  , R5  ANL   A  , #0FH  MOV   @R0 , A  MOV   A  , R5  SWAP  A  ANL   A  , #0FH  INC   R0  MOV   @R0 , A  MOV   A  , R4  ANL   A , #0FH  INC   R0  MOV   @R0 , A  MOV   A   , R4  SWAP  A  ANL   A  , #0FH  INC   R0  MOV   @R0 , A  MOV   R0 , #30H  MOV   R2 , #11111110BAGAIN:   MOV   A  , R2         MOV   P2 , A         MOV   A  , @R0  MOV   DPTR , #TAB  MOVC  A  , @A+DPTR  MOV   P1 , A  ACALL DELAY  INC   R0  MOV   A  , R2  RL    A  MOV   R2 , A  JB    ACC.4  , AGAIN   RETTAB:     DB    03FH , 06H , 5BH , 4FH , 66H , 6DH , 7DH , 07H , 7FH , 6FH   ;七段码表DELY:    MOV   R1,#80D1:        MOV    R2,#100             DJNZ   R2,$ DJNZ    R1,D1 RET DELAY:   MOV   TMOD , #01H           ;延时子程序         MOV   TL0  , #0FEH         MOV   TH0  , #0FEH  SETB  TR0WAIT:    JNB   TF0  , WAIT         CLR   TF0  CLR   TR0  RETDELY0:   MOV  R1,  #200D3:  MOV  R2,#250          DJNZ  R2,$  DJNZ  R1,D3    RET          END       该系统实际应用广泛。可用在生产线上产品数量统计、公交车智能计数问候(需添加语音芯片)、超市内人数统计等公共场合。另外,添加串口通信部分便可实现与PC数据交换的功能。   由于,实验简化了,剩下不少零件和资金,所以我们又做了两项其他的实验。

    标签: 单片机 红外 控制系统设计 原理图

    上传时间: 2013-12-22

    上传用户:tangsiyun

  • 51程序库 (各种常用程序)

    ;片内RAM初始化子程序 IBCLR    :MOV    A,R0          MOV    R1,A          CLR    AIBC1     :MOV    @R1,A          INC    R1          DJNZ   R7,IBC1          RET ;片外RAM初始化子程序 EBCLR1   :MOV    A,addPL          MOV    DPL,A          MOV    A,addPH          MOV    DPH,A          CLR    CEBC11    :MOVX   @DPTR,A          INC    DPTR          DJNZ   R7,EBC11          RET ;片外RAM初始化子程序(双字节个单元) EBCLR2   :MOV    A,addPL          MOV    DPL,A          MOV    A,addPH          MOV    DPH,A          MOV    A,R7          JZ     EBC21          INC    R6EBC21    :CLR    A          MOVX   @DPTR,A          INC    DPTR          DJNZ   R7,EBC21          DJNZ   R6,EBC21          RET ;内部RAM数据复制程序;入口    :R0,R7;占用资源:A;堆栈需求:2字节;出口    :R1 IBMOV    :MOV    A,R0          add    A,R7          MOV    R0,A          MOV    A,R1          add    A,R7          MOV    R1,AIBM1     :DEC    R0          DEC    R1          MOV    A,@R0          MOV    @R1,A          DJNZ   R7,IBM1          RET ;外部RAM数据复制程序;入口    :addPH,addPL,R7;占用资源:ACC;堆栈需求:2字节;出口    :R0,R1 EBMOV1   :MOV    A,addPL          add    A,R7          MOV    DPL,A          CLR    A          addC   A,addPH          MOV    DPH,A          MOV    A,R7          add    A,R1          XCH    A,R0          addC   A,#00H          MOV    P2,AEBM11    :DEC    R0          CJNE   R0,#0FFH,EBM12          DEC    P2EBM12    :DEC    DPL          MOV    A,DPL          CJNE   A,#0FFH,EBM13          DEC    DPHEBM13    :MOVX   A,@R0          MOVX   @DPTR,A          DJNZ   R7,EBM11          RET ;外部RAM数据复制程序

    标签: 程序库 常用程序

    上传时间: 2013-10-30

    上传用户:bs2005

  • LC7461遥控解码子程序源代码

    //遥控解码子程序,LC7461,用户码为11C//external interrupt0void isr_4(){  unsigned char r_count;//定义解码的个数 unsigned long use_data=0;//定义16位的用户码,只用到13位 unsigned long use_code=0;//定义16位的用户反码,只用到13位 unsigned long data=0;//定义16位数据码,包括8位数据码和反码 unsigned char data_h=0;//数据反码 unsigned char data_l=0;//数据码 _clrwdt();// _delay(7000);//7461解码,延时7000// _delay(7000);//7461解码,延时7000//_delay(7000);//7461解码,延时7000 if(remote==1)  goto error; while(remote==0);//wait to high //_delay(9744);count_delay=0; while(count_delay<143); if(remote==1)  goto error;     /////用户码解码use_data//////////add//////////////////////////     for(r_count=13;r_count>0;r_count--)  {  while(remote==0);//wait to high  count_delay=0;     while(count_delay<24);//_delay(1680);  _c=remote;  if(_c==1)   {   _lrrc(&use_data);   count_delay=0;         while(count_delay<32);//_delay(2200);//wait to low   }  else   _lrrc(&use_data);  }  _nop(); //if(remote==1)  //_delay(1680);//wait to low while(remote==1);//wait to low     _nop();     ////////用户码解码finish/////////add/////////add////////     /////用户码反码解码use_code//////////add//////////////////////////     for(r_count=13;r_count>0;r_count--)  {  while(remote==0);//wait to high  count_delay=0;         while(count_delay<24);//_delay(1680);  _c=remote;  if(_c==1)   {   _lrrc(&use_code);   count_delay=0;         while(count_delay<32);//_delay(2200);//wait to low   }  else   _lrrc(&use_code);  } _nop(); //if(remote==1) // _delay(1680);//wait to low while(remote==1);//wait to low     _nop();     ////////用户码反码解码finish/////////add/////////add////////     ////数据码解码开始////data_l为用户码,data_h为数据码反码//////////// for(r_count=16;r_count>0;r_count--)  {  while(remote==0);//wait to high  count_delay=0;         while(count_delay<24);//_delay(1680);  _c=remote;  if(_c==1)   {   _lrrc(&data);   count_delay=0;         while(count_delay<32);//_delay(2200);//wait to low   }  else   _lrrc(&data);  } ////数据码解码结束//////////////////////////////////////////////// data_l=data; data_h=data>>8; ///用户码////// use_data>>=3; use_code>>=3; use_code=~use_code; //////// ////如果用户码等与0x11c并且数据码和数据反码都校验一致,解码成功 //if((~data_h==data_l)&&use_data==0x11c)//使用用户码 //跳过用户码 if(~data_h==data_l)//如果数据码和数据反码(取反后)相等,解码正确  {  _nop();  r_data=data_l;//r_data为解出的最终数据码  } //否则解码不成功 _nop(); _nop();error:  //r_data=nocode; _nop();    _nop(); _nop();}

    标签: 7461 LC 遥控 解码

    上传时间: 2014-03-27

    上传用户:shenlan

  • 4位八段数码管的十进制加计数仿真实验(含电路图和仿真文件)

    4位八段数码管的十进制加计数仿真实验,程序采用汇编语言编写。此程序在仿真软件上与EDN-51实验板上均通过。仿真图中的数码管位驱动采用74HC04,如按EDN-51板上用想同的PNP三极管驱动在仿真软件上则无法正常显示。程序共分5块,STAR0为数据初始化,STAR2为计数子程序,STAR3为4位数码管动态显示子程序,STAR4为按键扫描子程序,STS00是延时子程序。由于EDN-51实验板上没装BCD译码器,所以编写程序比较烦琐。 程序如下: ORG 0000H                LJMP STAR0                        ;转程序 SRAR0ORG 0200H                                          ;程序地址 0200HSTAR0:   CLR 00                                  ;位 00 清 0               MOV P1,#0FFH                    ;#0FFH-->P1               MOV P2,#0FH                      ;#0FH-->P2               MOV P0,#0FFH                    ;#0FFH-->P0               MOV 30H,#00H                    ;#00H-->30H               MOV 31H,#00H                    ;#00H-->30H               MOV 32H,#00H                    ;#00H-->30H               MOV 33H,#00H                    ;#00H-->30H               LJMP STAR3                        ;转程序 SRAR3STAR2:   MOV A,#0AH                       ;#0AH-->A               INC 30H                                ;30H+1               CJNE A,30H,STJE                 ;30H 与 A 比较,不等转移 STJE               MOV 30H,#00H                    ;#00H-->30H               INC 31H                                ;31H+1               CJNE A,31H,STJE                 ;31H 与 A 比较,不等转移 STJE               MOV 31H,#00H                    ;#00H-->31H               INC 32H                                ;32H+1               CJNE A,32H,STJE                 ;32H 与 A 比较,不等转移 STJE               MOV 32H,#00H                    ;#00H-->32H               INC 33H                                ;33H+1               CJNE A,33H,STJE                 ;33H 与 A 比较,不等转移 STJE               MOV 33H,#00H                    ;#00H-->33H               MOV 32H,#00H                    ;#00H-->32H               MOV 31H,#00H                    ;#00H-->31H               MOV 30H,#00H                    ;#00H-->30HSTJE:      RET                                        ;子程序调用返回STAR3:   MOV R0,#30H                      ;#30H-->R0                MOV R6,#0F7H                   ;#0F7H-->R6SMG0:    MOV P1,#0FFH                    ;#0FFH-->P1                MOV A,R6                            ;R6-->A                MOV P1,A                            ;A-->P1                RR A                                     ;A向右移一位                MOV R6,A                           ;A-->R6                MOV A,@R0                       ;@R0-->A                add A,#04H                        ;#04H-->A                MOVC A,@A+PC               ;A+PC-->                MOV P0,A                            ;A-->P0                AJMP SMG1                        ;转程序 SMG1SDATA:   DB 0C0H,0F9H,0A4H,0B0H,99H                DB 92H,82H,0F8H,80H,90H SMG1:     LCALL STAR4                    ;转子程序 SRAR4                LCALL STS00                     ;转子程序 STS00                INC R0                                 ;R0+1                CJNE R6,#07FH,SMG0       ;#07FH 与 R6 比较,不等转移 SMG0                AJMP STAR3                       ;转程序 SRAR3STAR4:    JNB P2.0,ST1                      ;P2.0=0 转 ST1                CLR 00                                 ;位 00 清 0                SJMP ST3                            ;转ST3ST1:         JNB 00,ST2                          ;位 00=0 转 ST2                SJMP ST3                            ;转 ST3ST2:         LCALL STAR2                    ;调子程序 STAR2                SETB 00                               ;位 00 置 1ST3:         RET                                      ;子程序调用返回ORG 0100H                                         ;地址 0100HSTS00:     MOV 60H,#003H                ;#003H-->60H  (211)DE001:     MOV 61H,#0FFH               ;#0FFH-->61H (255)DE002:     DJNZ 61H,DE002               ;61H 减 1 不等于 0 转 DE002                 DJNZ 60H,DE001               ;60H 减 1 不等于 0 转 DE001                 RET                                     ;子程序调用返回                 END                                    ;结束 上次的程序共有293句,经小组成员建议,本人经几天的研究写了下面的这个程序,现在的程序用了63句,精简了230句。功能没有减。如谁有更简练的程序,请发上来,大家一起学习。 4位八段数码管的十进制加计数仿真实验(含电路图和仿真文件)

    标签: 数码管 十进制 仿真实验 仿真

    上传时间: 2013-10-11

    上传用户:sssl

  • XAPP694-从配置PROM读取用户数据

    This application note describes how to retrieve user-defined data from Xilinx configurationPROMs (XC18V00 and Platform Flash devices) after the same PROM has configured theFPGA. The method to add user-defined data to the configuration PROM file is also discussed.The reference design described in this application note can be used in any of the followingXilinx FPGA architectures: Spartan™-II, Spartan-IIE, Spartan-3, Virtex™, Virtex-E, Virtex-II,and Virtex-II Pro.

    标签: XAPP PROM 694 读取

    上传时间: 2013-11-11

    上传用户:zhouli

  • NIOSII用户定制指令

    With the Altera Nios II embedded processor, you as the system designercan accelerate time-critical software algorithms by adding custominstructions to the Nios II processor instruction set. Using custominstructions, you can reduce a complex sequence of standard instructionsto a single instruction implemented in hardware. You can use this featurefor a variety of applications, for example, to optimize software innerloops for digital signal processing (DSP), packet header processing, andcomputation-intensive applications. The Nios II configuration wizard,part of the Quartus® II software’s SOPC Builder, provides a graphicaluser interface (GUI) used to add up to 256 custom instructions to theNios II processor

    标签: NIOSII 用户 定制 指令

    上传时间: 2013-11-07

    上传用户:swing

  • altium designer 10 破解版下载

    Altium Designer 10是由Altium公司推出的一款开发软件,Altium Designer 10综合了电子产品一体化开发所需的所有必须技术和功能。Altium Designer 在单一设计环境中集成板级和FPGA系统设计、基于FPGA和分立处理器的嵌入式软件开发以及PCB版图设计、编辑和制造。并集成了现代设计数据管理功能,使得Altium Designer成为电子产品开发的完整解决方案-一个既满足当前,也满足未来开发需求的解决方案。 Altium Designer10 为您带来了一个全新的管理元  Altium Designer release 10器件的方法。其中包括新的用途系统、修改管理、新的生命周期和审批制度、实时供应链管理等更多的新功能! Altium Designer 10安装流程: 安装完后复制 AD10.Crack 文件夹下文件到安装目录。 1.运行AD10KeyGen,点击“打开模板”,加载license.ini,如想修改注册名,只需修改:TransactorName=Your Name,其中Your Name用你自己的名字替换,其它参数在单机版的情况下无需修改; 2.点击“生成协议”,保存生成的alf文件(文件名任意,如“jack ”),并将其放到你的安装目录下; 3.将patch.exe放到你的安装目录下,运行patch,对安装目录下的dxp.exe文件补丁,注意运行破解时软件没有运行; 4.启动DXP,运行菜单DXP->My Account,点击add Standalone License file,加载前面生成的license(.alf)文件后即能正常使用了。 资源是.bin格式的镜像文件,到网上下一个UltraISO打开后另存为iso或isz格式,用DAEMON Tools Lite虚拟光驱打开就能安装了。(或者安装一个快压打开) 安装提醒: 安装时有两个路径选择,第一个是安装主程序的;第二个是放置设计样例、元器件库文件、模板文件的,共3.3GB。如果你的C盘留的不够大,建议将3GB多的东西和主程序安装在一块儿。 安装完成后界面可能是英文的,如果想调出中文界面,则可以:DXP-->Preferences-->System-->General-->Localization--选中Use localized resources,保存设置后重新启动程序就有中文菜单了。 Altium Designer 10破解方法: 安装包里已经带有破解文件了,但没有AD10KeyGen这个文件,所以要把注册名改成自己的名字不方便。 1.运行AD10KeyGen,点击“打开模板”,加载license.ini,如想修改注册名,只需修改: TransactorName=Your Name 其中Your Name用你自己的名字替换,其它参数在单机版的情况下无需修改; 2.点击“生成协议”,保存生成的alf文件(文件名任意,如“jack ”),并将其放到你的安装目录下; 3.将patch.exe放到你的安装目录下,运行patch,对安装目录下的dxp.exe文件补丁,注意运行破解时软件没有运行; 4.启动DXP,运行菜单DXP->My Account,点击add Standalone License file,加载前面生成的license(.alf)文件后即能正常使用了。 注意: 1.局域网内用同一license不再提示冲突 2.仅供学习研究使用,勿用于非法用途。 相关资料:altium designer 10 破解教程

    标签: designer altium 10 破解版

    上传时间: 2013-11-10

    上传用户:叶立炫95

  • pdf转cad软件 附pdf转cad教程

    附件为:pdf转cad软件最新版 PDF Fly V7.1安装文件。还附有自制的Crack,把我的文件 贴到装好的目录下就行了!没有30天限制。 附pdf转cad软件使用教程: 1、pdf转cad软件的界面比较简单的,如下图,点击add添加你要转换的PDF文件,然后下一步 2、选择DXF格式,然后在右边的option里面还可以进行相关的设置 3、然后再下一步。step 3页面只要点最下面的 convert 就可以了 转完以后同样线条没有什么大问题的,只是文字肯定是被打碎的,你自己需要删除后重新输入要重新输入。

    标签: cad 软件 教程

    上传时间: 2013-10-22

    上传用户:ardager

  • Nios II定制指令用户指南

         Nios II定制指令用户指南:With the Altera Nios II embedded processor, you as the system designer can accelerate time-critical software algorithms by adding custom instructions to the Nios II processor instruction set. Using custom instructions, you can reduce a complex sequence of standard instructions to a single instruction implemented in hardware. You can use this feature for a variety of applications, for example, to optimize software inner loops for digital signal processing (DSP), packet header processing, and computation-intensive applications. The Nios II configuration wizard,part of the Quartus® II software’s SOPC Builder, provides a graphical user interface (GUI) used to add up to 256 custom instructions to the Nios II processor. The custom instruction logic connects directly to the Nios II arithmetic logic unit (ALU) as shown in Figure 1–1.

    标签: Nios 定制 指令 用户

    上传时间: 2013-10-12

    上传用户:kang1923

  • XAPP694-从配置PROM读取用户数据

    This application note describes how to retrieve user-defined data from Xilinx configurationPROMs (XC18V00 and Platform Flash devices) after the same PROM has configured theFPGA. The method to add user-defined data to the configuration PROM file is also discussed.The reference design described in this application note can be used in any of the followingXilinx FPGA architectures: Spartan™-II, Spartan-IIE, Spartan-3, Virtex™, Virtex-E, Virtex-II,and Virtex-II Pro.

    标签: XAPP PROM 694 读取

    上传时间: 2013-10-09

    上传用户:guojin_0704