基于单片机的光电检测装置设计内容摘要:
Sn:380CM 外壳材料:塑料 检测物体:透明或不透明体 AT89C52 部分 AT89C52 是 51 系列 单片机 的一个型号,它是 ATMEL 公司生产的。 AT89C52 是一个低电压,高性能 CMOS 8 位单片机,片内含 8k bytes 的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器( RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS51 指令系统,片内置通用 8 位中央处理器和 Flash 存储单元,功能强大的 AT89C52 单片机可为您提供许多较复杂系统控制应用场合。 AT89C52 有 40 个引脚, 32 个外部双向输入 /输出( I/O)端口,同时内含 2 个外中断口, 3 个 16 位可编程定时计数器 ,2 个全双工串行通信口, 2 个读写口线,AT89C52 可以按照常规方法进行编程 ,但不可以在线编程 (S 系列的才支持在线编程 )。 其将通用的微处理器和 Flash 存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本 [3]。 其主要 功能特性如下: 兼容 MCS51 指令系统 8k 可反复擦写 (1000 次) Flash ROM 32 个双向 I/O 口 256x8bit 内部 RAM 3 个 16 位可编程定时 /计数器中断 时钟频率 024MHz 2 个串行中断 可编程 UART 串行通道 2 个外部中断源 共 6 个中断源 2 个读写中断口线 3 级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能 其 AT89C52 单片机外观如下: 基于单片机的光电检测装置设计 8 图 43 AT89C52单片机外观图 A/D 转换部分 在设计中, 为了实现光电传感器与单片机的连接,本系统采用 A/D转换部分对采集到的进出自动门的人员感应信号进行模数转换。 利用单片机写启动 A/D转换部分 ,转换结束后再由 光电传感器采集到的信号 向 AT89C52发出中断请求信号, CPU响应中断请求。 通过对译码器的读操作,读取转换结果并送到被测量的相应存储区。 再重新选择被测量,并再次启动 A/D转换后中断返回。 其组成框图 44如下: 图 44 A/D转换部分框图 5 自动门模型设计 首先 ,自动门模型由 以 下几部分构成: ( 1)主控制器: 这里指单片机, 它是自动门 的指挥中心,通过内部编有指令程序的大规模集成块,发出相应指令, 控制电机 或电锁类系统工作;同时人们通过主控器调节门扇开启速度、开启幅度等参数。 ( 2)感应探测器: 这里指光电传感器, 负责采集外部信号, 如同 人们的眼睛,当有光电传感器 A/D 转换部分 AT89C52 单片机 基于单片机的光电检测装置设计 9 移动的物体进入它的工作范围时,它就给主控制器一个脉冲信号。 ( 3) 同步交流电机 : 提供开门与关门的主动力,控制门扇 开关门 运 行。 ( 4)门扇行进轨道:就 像 火车的铁轨,约束门扇的吊具走轮系统,使其按特定方向行进。 ( 5)门扇吊具走轮系统:用于吊挂活动门扇,同时在动力牵引下带动门扇运行。 ( 6)同步皮带 :用于传输 电机 所产 生的 动力,牵引门扇 的打开或关闭。 ( 7)下部导向系统:是门扇下部的导向与定位装置,防止门扇在运行时出现前后门体摆动。 同时,要了解自动门 完成一次开门与关门 的工作流程 ,其工作流程如下: 感应探测器 (光电传感器 )探测到有人进入时,将脉冲信号传给 单片机 , 单片机 判断后通知 电机 运行,同时监控 电机 转数,以便通知 电机 在一定时候加力和进入慢行运行。 电机 得到一定运行电流后做正向运行,将动力传给同步带,再由同步带将动力传给吊具系统使门扇开启;门扇开启后由 单片机 作出判断,如需关门,通知 电机 作反向运动,关闭门扇。 最后,进行自动门模型的制作。 6 程序设计 Keil 软件的学习 Keil 是德国 KEIL 公司开发的单片机语言编译器,使得开发 MCS51 系列单片机应用程序变得方便快捷。 Keil 的编译器和链接器包括 C5 A5 L51 和 BL51。 C51 是 C 语言编译器,其功能是将 C 源代码编译生成可重新定位的目标模块。 A51 是汇编语言编译器, 其功能是将汇编源代码编译生成可重新定位的目标模块。 L51 链接/定位器,其功能是将汇编源代码编译生成可重新定位的目标模块文件( .OBJ) , C 源代码编译生成可重新定位 的目标模块文件( .OBJ) ,与库文件链接、定位生产绝对目标文件( .ABS)。 BL51 也是链接/定位器,它比 L51 链接/定位器多了可以链接定位大于 64KB 的程序,具有代码域切换功能和可用于 RTX51 实时多任务造作系统等功能 [13]。 本次程序设计采用 C51 C 语言编译器进行 C 语言 编程。 其编 程 过程如下:( 1) 项目的建立:项目命名和选择 CPU;( 2)给项目加入程序文件:此程序采用 C 语言编程即 C 文件;( 3) 项目的编译链接; (9)编译链接后,会产生一“ .hex” 文 件,该文件可以烧录到的单片机中运行。 程序设计流程 系统的软件程序主要可分为主程序和中断服务程序组成。 其系统功能分析如下: ( 1) 系统工作流程分为两种情况:有人员进 出和 无人员进出。 当有人要进出时,门接收到信号而 自动 打开;无人进出时,门是闭合的。 即在初始状态下,自动门是闭合的。 基于单片机的光电检测装置设计 10 ( 2)自动门的开合由控制信号和门限反馈信 号 两者共同决定。 接收到控制信号后, 若此时的门状 态 是开的,则不必驱动电机,只要继续保持开状态即可;如若门的状态是 闭合的,则要驱动电机使门打开。 ( 3)若没有连续的人员进出,则门的开合有 一个 最低限度的延时, 即 人员通过后 ,在延时过后 门自 动 闭合。 ( 4) 在系统中完成显示与报警功能。 当门打开时, 显 示灯为绿色,表示人员可以进 出; 若是系统发生故障,自动门无法正常开合时,显示灯变为红色。 其 基于 AT89C52 单片机 的开关门 C 语言程序设计流程图如下 图 61 所示: 图 61 程序设计流程图 程序的编写完成 基于单片机的光电检测装置设计 11 本 次自动门 设计的程序采用 C 语言进行编译,其主要包括控制电机正传子程序,控制电机反转子程序,报警子程序和串行口程序等几部分。 本课题研 究的是光电检测装置的系统设计,因此程序编译初期 仅 围绕本课题编译了自动门的开关门程序,其编译过程如下所示: 定义门状态数组: uchar zhuangtai[5]。 //状态数组 ,依次为门开 0,门关 1,电机正转 2,电机反转 3, A 代表是, B 代表否 光电开关 1 输入: sbit guangdian1=P0^0。 光电开关 2 输入 : sbit guangdian2=P0^1。 电机正转输出 : sbit dianjizhengzhuan=P1^0。 电机反转输出 : sbit dianjifanzhuan=P1^1。 开门函数 : void Kaimen(void) { if(!kaimen) {dianjifanzhuan=0。 Dianjizhengzhuan =1。 menzhuangtai[3]=39。 B39。 menzhuangtai[2]=39。 A39。 } else {dianjifanzhuan=0。 dianjizhengzhuan=0。 menzhuangtai[3]=39。 B39。 menzhuangtai[2]=39。 B39。 } } 关门函数: void Guanmen(void) { if(!guanmen) {dianjizhengzhuan=0。 dianjifanzhuan=1。 menzhuangtai[3]=39。 A39。 menzhuangtai[2]=39。 B39。 } else {dianjifanzhuan=0。 dianjizhengzhuan=0。 menzhuangtai[3]=39。 B39。 基于单片机的光电检测装置设计 12 menzhuangtai[2]=39。 B39。 } } 正常状态的开、关门控制: if(guangdian1||guangdian2)。基于单片机的光电检测装置设计
相关推荐
P 1 .7 S E T B P L AY2 P 0 .2 , JB R E C 6 S T OP , J NB :P L AY2 P 0 .0 S E T B I S DX AC AL L OF OH A, MOV P 1 .7 C L R :P L AY1 P 0 .0 S E T B I S DX AC AL L 22H A, MOV I S DX AC AL L 21H A, MOV I
和车速两项数据。 当按下键6时则返回显示里程数,价格两项数据。 :开始接收里程数,价格显示数据Dispflag是否为真转为为字型码输出显示接收等待时间车速显示数据短延时返回 显示服务程序 键盘服务程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。 参见图9,六个按键分别对应六个简单的子程序。 如果按键S1被按下
在初始化后只进行按 键扫描,利用定时器 T0 定时 5S 启动 AD 转化,即采样周期是 5S。 当 AD 转换完成后进入外部中断 INT0 服务程序,进行 数据的处理,刷新显示的压力值;当采用两位量程时,若检测到压力值大于等于 100,提示超过量程“ OVER。 ”,需要转换量程。 系统程序整体流程图 系统的整体程序流程图如下所示: 主程序在完成开机 LOGO 显示、压力值初始化显示、 TO
5 00n nns 0n — 同步转速 常用改变转差率的方法有改变定子电压调速、采用滑差电动机调速、转子电路串电阻调速、串级调速以及脉冲调速。 前两种方法适合于笼型异步电动机,后者适合于烧线式异步电动机。 这些方案共同的特点是在调速过程中均产生大量的转差功率 ,并且消耗在转子电路,使转子发热。 在不计定子绕组铜耗条件下, η 变转差率调速系统最大可能的效率η定义为输出机械功率
,ULN2803 相当于一个反相驱动器,其内部具体结构如图 25: R 1R 3R 2图 25 ULN2803 的内部结构ULN2803 的特点:1.最大驱动电流可达 500mA2.反向驱动河南科技大学本科毕业设计(论文)123.需要限流电阻,数码管越多,限流电阻的阻值越小167。 单片机外围接口电路设计167。 发光二极管发光二极管咋两端的电压差超出其导通压降时开始工作
设 计计 10 作用。 555 定时器性能比较好,只要 少 接上几个电阻、电容 就能构成多谐振荡器、单稳态触发器以及施密特触发器等脉冲产生与变换电路,经常用于仪器仪表、电子测量等方面。 此设计测量的原理就是,利用 555 定时器外加几个电阻、电容或电感,生成多谐振荡器。 ( C1为比较器 1, C2 为比较器 2)。 Vcc( 8脚):接 正 电源。 一般为 ~15V。 GND( 1脚):接地。