基于单片机的红外门进控制系统设计与制作:我们所做的创新实验项目“基于单片机的红外门控系统”已基本完成,现将其工作原理简要说明。该系统主要分为两大部分:一是红外传感器部分。二是单片机计数显示控制部分。基本电路图如下:其中红外传感器部分我们采用红外对管实现,红外对管平行放置,平常处于接收状态,经比较器输出低电平,当有人经过时,红外线被挡住,接收管接收不到红外线,经比较器输出高电平。这样,当有人经过时便会产生一个电平的跳变。单片机控制部分主要是通过外部两个中断判断是否有人经过,如果有人经过,由于电平跳变的产生,进入中断服务程序,这里我们采用了两对红外传感器接到两个外部中断口,中断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
通用的多电源总线,如VME、VXI 和PCI 总线,都可提供功率有限的3.3V、5V 和±12V(或±24V)电源,如果在这些系统中添加设备(如插卡等),则需要额外的3.3V或5V电源,这个电源通常由负载较轻的-12V电源提供。图1 电路,将-12V 电压升压到15.3V(相对于-12V 电压),进而得到3.3V 的电源电压,输出电流可达300mA。Q2 将3.3V 电压转换成适当的电压(-10.75V)反馈给IC1 的FB 引脚,PWM 升压控制器可提供1W 的输出功率,转换效率为83%。整个电路大约占6.25Cm2的线路板尺寸,适用于依靠台式PC机电源供电,需要提供1W输出功率的应用,这种应用中,由于-12V总线电压限制在1.2W以内,因此需要保证高于83%的转换效率。由于限流电阻(RSENSE)将峰值电流限制在120mA,N 沟道MOSFET(Q1)可选用廉价的逻辑电平驱动型场效应管,R1、R2 设置输出电压(3.3V 或5V)。IC1 平衡端(Pin5)的反馈电压高于PGND引脚(Pin7)1.25V,因此:VFB = -12V + 1.25V = - 10.75V选择电阻R1后,可确定:I2 = 1.25V / R1 = 1.25V / 12.1kΩ = 103μA可由下式确定R2:R2 = (VOUT - VBE)/ I2 =(3.3V - 0.7V)/ 103μA = 25.2 kΩ图1 中,IC1 的开关频率允许通过外部电阻设置,频率范围为100kHz 至500kHz,有利于RF、数据采集模块等产品的设计。当选择较高的开关频率时,能够保证较高的转换效率,并可选用较小的电感和电容。为避免电流倒流,可在电路中增加一个与R1串联的二极管。
上传时间: 2013-10-17
上传用户:jixingjie
摘要: 串行传输技术具有更高的传输速率和更低的设计成本, 已成为业界首选, 被广泛应用于高速通信领域。提出了一种新的高速串行传输接口的设计方案, 改进了Aurora 协议数据帧格式定义的弊端, 并采用高速串行收发器Rocket I/O, 实现数据率为2.5 Gbps的高速串行传输。关键词: 高速串行传输; Rocket I/O; Aurora 协议 为促使FPGA 芯片与串行传输技术更好地结合以满足市场需求, Xilinx 公司适时推出了内嵌高速串行收发器RocketI/O 的Virtex II Pro 系列FPGA 和可升级的小型链路层协议———Aurora 协议。Rocket I/O支持从622 Mbps 至3.125 Gbps的全双工传输速率, 还具有8 B/10 B 编解码、时钟生成及恢复等功能, 可以理想地适用于芯片之间或背板的高速串行数据传输。Aurora 协议是为专有上层协议或行业标准的上层协议提供透明接口的第一款串行互连协议, 可用于高速线性通路之间的点到点串行数据传输, 同时其可扩展的带宽, 为系统设计人员提供了所需要的灵活性[4]。但该协议帧格式的定义存在弊端,会导致系统资源的浪费。本文提出的设计方案可以改进Aurora 协议的固有缺陷,提高系统性能, 实现数据率为2.5 Gbps 的高速串行传输, 具有良好的可行性和广阔的应用前景。
上传时间: 2013-11-06
上传用户:smallfish
Byte2~Byte5 字节: 表示了仪表的测量值;高四位未使用,只使用了各字节的低四位。用BCD 码表示的数值,从高位到低 BYTE4 BYTE17 1 - 0 BATT MAX FULL A/C F/S START1 START2 UNIT_UP UNIT_DOWN 2 - 位依次为Byte5,Byte4,Byte3,Byte2。
上传时间: 2013-10-18
上传用户:thuyenvinh
The Maxim Integrated 71M6541-DB REV 3.0 Demo Board is a demonstration board for evaluating the 71M6541 device for single-phase electronic energy metering applications in conjunction with the Remote Sensor Inter-face. It incorporates a 71M6541 integrated circuit, a 71M6601 Remote Interface IC, peripheral circuitry such as a serial EEPROM, emulator port, and on-board power supply. A serial to USB converter allows communication to a PC through a USB port. The Demo Board allows the evaluation of the 71M6541 energy meter chip for measurement accuracy and overall system use.
上传时间: 2013-11-06
上传用户:雨出惊人love
摘要: 串行传输技术具有更高的传输速率和更低的设计成本, 已成为业界首选, 被广泛应用于高速通信领域。提出了一种新的高速串行传输接口的设计方案, 改进了Aurora 协议数据帧格式定义的弊端, 并采用高速串行收发器Rocket I/O, 实现数据率为2.5 Gbps的高速串行传输。关键词: 高速串行传输; Rocket I/O; Aurora 协议 为促使FPGA 芯片与串行传输技术更好地结合以满足市场需求, Xilinx 公司适时推出了内嵌高速串行收发器RocketI/O 的Virtex II Pro 系列FPGA 和可升级的小型链路层协议———Aurora 协议。Rocket I/O支持从622 Mbps 至3.125 Gbps的全双工传输速率, 还具有8 B/10 B 编解码、时钟生成及恢复等功能, 可以理想地适用于芯片之间或背板的高速串行数据传输。Aurora 协议是为专有上层协议或行业标准的上层协议提供透明接口的第一款串行互连协议, 可用于高速线性通路之间的点到点串行数据传输, 同时其可扩展的带宽, 为系统设计人员提供了所需要的灵活性[4]。但该协议帧格式的定义存在弊端,会导致系统资源的浪费。本文提出的设计方案可以改进Aurora 协议的固有缺陷,提高系统性能, 实现数据率为2.5 Gbps 的高速串行传输, 具有良好的可行性和广阔的应用前景。
上传时间: 2013-10-13
上传用户:lml1234lml
Turbo C - (C) Copyright 1987, 1988 by Borland International */ #define S_IREAD 0x0100 /* from SYS\STAT.H */ #define S_IWRITE 0x0080 /* from SYS\STAT.H */ #define TRUE 1 #define FALSE 0 #define MSGHEADER "MICROCALC - A Turbo C Demonstration Program" #define MSGKEYPRESS "Press any key to continue." #define MSGCOMMAND "Press / for the list of commands" #define MSGMEMORY "Memory Available:" #define MSGERROR "ERROR" 部分说明 #define MSGLOMEM "Not enough memory to allocate cell." #define MSGEMPTY "Empty" #define MSGTEXT "Text"
标签: International Copyright Borland S_IREAD
上传时间: 2013-12-26
上传用户:llandlu
工程计算MATLAB code to calculate the reorthogonalized sine tapers input: N = the length of the time series data to be tapered p = the number of tapers requested I = the gap structure a vector of length N I(t) = 1 if there is data at time t, t=1, ..., N I(t) = 0 if there is a gap at time t output: X = N-by-p vector of the reorthogonalized sine taper
标签: the reorthogonalized calculate MATLAB
上传时间: 2013-12-17
上传用户:wangyi39
目前最快速的字符串排序算法,1.0版本仅仅支持a-z 26个小写字符
上传时间: 2014-01-11
上传用户:阳光少年2016
程序实现LC75823驱动,循环滚动显示0~9,A~Z,初始不断向左轮转显示,可通过按键任意更改滚动方向。
上传时间: 2017-03-09
上传用户:chenlong