毕业论文-基于at89c52单片机的光感智能窗帘控制系统设计内容摘要:

CHMOS 单片机采用外部时钟信号时,外部时钟信号由此引脚 接入。 XTAL2:接外部晶体的一个引脚。 HMOS 单片机采用外部时钟信号时,外部时钟信号由此引脚接入。 RST:①复位信号输入。 ② VCC 掉电后,此引脚可接备用电源,低功耗条件下保持内部 RAM 中的数据。 ALE/RPOG:①地址锁存允许。 当单片机访问外部存储器时,该引脚的输出信号 ALE用于锁存 P0端口的低 8位地址。 ALE输出的频率为时钟振荡频率的 1/6。 ②对 8751 单片机片内 EPROM 编程时,编程脉冲由该引脚接入。 PSEN:程序存储器允许。 输出读外部程序存储器的选通信号。 取指令操作期间, PSEN 的频率为振荡频率的 1/6;但若此期间有访问外部数据存储器的操作时,则有一个机器周期中的 PSEN 信号将不出现。 EA/VPP: ① EA=0,单片机只访问外部程序存储器。 对 8031 单片机此引脚必须接地。 EA=1,单片机访问内部程序存储器。 对于内部有程序存储器的 8XX51 第 15 页 共 26 页 单片机,此引脚应接高电平,但若地址值超过 4KB范围,单片机将自动访问外部程序存储器。 ②在 8751单片机内 EPROM编程期间,此引脚接入 21V编程电源 VPP。 ~ : P0 数据 /低八位地址复用总线端口。 具有双重功能:①可以作为输入 /输出口,外接输入 /输出设备。 ②在有外接存储器和 I/O 接口时常作为低 8 位地址 /数据总线,即低 8位地址与数据线分时使用 P0 口。 此低 8位地址由ALE 信号的下跳沿使它锁存到外部地址锁存器中,尔后, P0 口出现数据信息。 ~ : P1 静态通用端口。 具有单一接口功能, P1口每一位都能作为可编程的输入或输出口线。 ~ : P2 高八位地址总线动态端口。 具有双重功能:①作为输入 /输出口使用,外接输入 /输出设备。 ②在 有外接存储器和 I/O 接口时,作为系统的地址总线,输出高 8 位地址,与 P0 口低 8位地址一起组成 16位地址总线。 对于内部无程序存储器的单片机来说, P2口只作为地址总线使用,而不作为 I/O接口。 ~ : P3 双功能静态端口,①可以作为输入 /输出口,外接输入 /输出设备。 ②作为第二功能使用时,每一位功能定义如表 所示 单片机端口 外围电路 , 屏幕显示模块 电机驱动模块 光感模块 , 3 3 矩阵按键模块 , 定位开关模块 红外线 温度模块 蜂鸣器 表 P3口第二功能说明 第 16 页 共 26 页 (3)单片机本身的微小电路 图 单片机的微小系统连线图 上图为单片机的小系统,包含片内振荡电路和复位电路。 片内振荡电路:通常外接一个晶振,两个电容, 电容值取值范围 15~45pf,取值范围晶振值 0~24MHZ。 时钟电路为单片机产生时序脉冲,单片机所有运动与控制过程都是在统一的时序脉冲驱动下进行的,时钟电路好比人的心脏,如果人的心脏停止工作,则人就没有生命了,同样,如果单片机的时钟电路停止工作,那么单片机也就停止运行了。 复位电路:当振荡器运行时,在此引脚上出现 2个机器周期以上的高电平使单片机复位,一般在此引脚与 VSS 之间接一个下拉电阻,与 VCC引脚之间接一个电容,单片机复位后,从程序存储器的 0000H 单元执行程序,并初始化一些专用寄存器为复位状态值。 本文 中单片机复位电路的连接如上图。 执行单元模块设计 驱动电机部分 amp。 amp。 行程开关 第 17 页 共 26 页 ( 1) L293D 芯片介绍 L293D 为意大利 SGS 半导体公司生产的双全桥步进电机专用驱动芯片 ( Dual FullBridge Driver ),内部包含 4 信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动 2 个二相或 1 个四相步进电机,内含二个HBridge 的高电压、大电流双全桥式驱动器,接收标准 TTL 逻辑准位信号,可驱动 46V、 2A 以下的步进电机,且可以直接透过电源来调节输出电压;此芯 片可直接由单片机的 IO 端口来提供模拟时序信号, L293D 之接脚如图 所示, OUTl、 OUT2 和 OUT OUT4 之间接步进电机; input1~input4 输入控制电位来控制电机的正反转; Enable 则控制电机停转。 本文主要采用 L293D 驱动芯片,通过单片机的 I/O 输入改变芯片控制端的电平,即可以对电机进行正反转,停止的操作。 图 L293D内部逻辑图 输入引脚与输出引脚的逻辑关系表如表 ( ENB引脚与 ENA 引脚同): L293D 功能引脚模块 E NA IN1 IN2 运转状态 0 停止 1 1 0 正转 1 0 1 反转 1 1 1 刹停 1 0 0 停止 表 L293D功能引脚模块 第 18 页 共 26 页 ( 2)芯片(采用 powerso20 封装)引脚说明: +5V:芯片电压 5V。 功率电源电压 ,此 引脚 与地必须连接 100nF 电容器 VCC:电机电压,最大可接 50V。 逻辑电源电压。 此 引脚 与地必须连接 100nF 电容器 GND:共地接法。 EnA, EnB:接控制使能端高电平有效, ENA、 ENB 分别为 IN1 和 IN IN3 和 IN4的使能端。 IN1~ IN4:输入控制电平,控制电机的正反转 ,输入端电平和输出端电平是对应的。 OUT1~ OUT4:输出端,接电机。 L293D 需要从外部接两个电压,一个是给电机的,另一个给 L293D 芯片的。 图 双四拍模式波形图 ( 3)位置开关(行程开关) 步进电机正转或反转的位置的末端分别安装行程开关,当窗帘运动到末端位置时会碰到行程开关,使开关的常开触头闭合,一旦常开触头闭合,电机就停止正转或反转。 当天亮或天暗时,步进电机会反方向运动,开关的障碍物去除,常开触头恢复,由此实现步进电机的末端停止控制,没有碰到常开触头,电机会一直运转,这样也可使窗帘拉到极限位置,很好的保证了室内私密性的性能。 位置开关(又称限位开关)的一种,是一种常用的小电流主令电器。 利用机械运动部件的碰撞使其出头动作来实现接通或断开控制电路,达到一定的控制目的,用以控制其行程、进行终端限 位保护。 通常,这类开关被用来限制机械运动的位置或行程,使运动部件暗特定的位置或行程自动停止、反向运动、变速运动或自动往返运动等。 第 19 页 共 26 页 在电气控制系统中,位置开关的作用是实现顺序控制、定位控制和位置状态的检测。 用于控制机械设备的行程及限位保护。 一般限位开关由操作头、触点系统和外壳组成。 在实际生产中,行程开关被安装在预先定好的位置,当安装在机械运动部件上的模块撞击行程开关时,行程开关的触点动作,实现电路的切换,所以说,行程开关是一种根据运动部件的行程位置而切开电路开关,其作用原理与按钮相似。 行程开关可以安装在相 对静止的物体(如固定架、门框等,简称静物)上或者运动的物体(如行车、门等,简称动物)上。 当动物接近静物时,开关的连杆驱动开关的接点引起闭合的接点分断或者断开的接点闭合。 由开关接点开、合状态的改变去控制电路和机构的动作 本文选用的是直动式行程开关。 直动式行程开关动作原理同按钮类似,所不同的是:一个是手动,另一个则由运动部件的撞块碰撞。 当外界运动部件上的撞块碰压按钮使其触头动作,当运动部件离开后,在弹簧作用下,其触头自动复位。 步进电机选用 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。 在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。 本文选用的是混合式步进电机,混合式步进电机是混合了永磁式和反应式的优点。 它又分为两相和五相:两相步进角一般为 度,五相步进角一般为 度,这种步进电机的应用最为广泛。 执行单元模块电路连接 ( 1)电机驱动电路连接 本文主要采用 L293D,通过单片机的 I/O输入改变芯片控制端的电平,改变绕组脉冲 信号的顺序即可对电机实现正反转。 L293D 的输入引脚与单片机的 ~ 口分别相连, IN1~IN4 引脚从单片机输入控制电平,控制步进电机的正反转, OUT1~OUT4 分别接步进电机的四个相线, ENA、 ENB 接控制使能端控制步进电机的转、停。 当 ENA、 ENB 同时接高电平时 L293D 芯片是工作的,即使能端有效,控制 IN1~IN4 引脚电平的频率即可控 第 20 页 共 26 页 制步进电机的转速。 芯片的输出引脚分别接 2个续流二极管,起到保护电路作用。 芯片的 VCC 和 VSS 引脚 与地必须连接 100nF 电容器,图中 F 和 100μ F电容并联即为 100nf。 对本自动系统的设计还必须满足用户想要窗帘停的某一位置停下来的需求,为此设计了步进电机停止开关,为简化程序,更加利用 L293D 芯片本身的功能,本文采用了一个单刀双掷开关 SW1,开关一端接使能端 ENA、 ENB,另两端一段接 +5V 的电源,为芯片使能端提供高电平,另外一端接地,限制使能端的使用,当开关接到地时,两个使能端接地, L293D 芯片不再起作用,电机停止运动,由此达到停止的目的。 电机控 制窗帘的两个极限位置 窗帘的两端,要能使电机停下来,这一问题的解决有两种方案,一种是计算步进电机在窗帘开合长度中所要转的圈数,根据步进电机本身的步长计算电机转数,写入程序里进行控制,还有一种是利用行程开关进行控制,当窗帘走到极限位置时会碰到行程开关,使行程开关闭合,这里的行程开关是接地和使能端的,开关闭合就是关闭使能端,电机停止转动,分析比较这两种方案,认为后一种较为简便且使居室的严密性得到保证,因为受限于步进电机本身的精确度和丢步失步现象,电机难免不会在某一时刻出现丢步,是窗帘在还没完全拉合的状 态下停止。 行程开关控制步进电机极限位置停止:天亮时,光敏传感器接受到高电平,依程序所设步进电机正转,顺时针转动,窗帘以某一速度被慢慢拉开,走到极限位置时,窗帘碰到右端的行程开关 SW3,开关闭合使能端关闭,电机停止转动。 当天暗时,光敏传感器输出低电平,电机要逆时针转动了,窗帘打开,障碍物去除,开关断开,使能端打开,电机反转,同样电机反转碰到左边的行程开关 SW4时,开关闭合,使能端关闭,电机停止转动。 鉴于上述考虑,我们小组的设计电路图如 所示: 第 21 页 共 26 页 图 L293D控制电机电路 第 4章 系统软件设计 程序流程 51 单片机的开发除了需要硬件的支持外,同样离不开软件。 CPU 真正可执行的是机器码,用汇编语言或 C语言等高级语言编写的源程序必须转为机器码才能被执行,转化方法有手动汇编和机器汇编两种,前者已很少使用,机器汇编是通过汇编软件将源程序转换为机器码的编译方法。 这种汇编软件称为编译器,keil 是目前最流行的 51 单片机开发软件, keil 提供了一个集成开发环境uVision,它包括编译器、宏汇编、连接器、库管理、和一个功能强大的仿真调试器。 这样,在开发应用软件的过程中,编辑、编译、汇编、连接、调试等各个阶段都集中在一个环 境中。 先用编译器编写程序、接着调用编译器进行编译,连接之后即可直接运行。 这样免去了过去先用编译器进行编译,再退出编辑状态进行编译,调试后又要调用编译器的反复过程。 因此可以缩短开发周期。 因此我所选用的软件开发平台为 Keil软件,用 C语言编写具体的程序代码。 主控程序流程图如图 所示。 第 22 页 共 26 页 图 程序设计 include define uchar unsigned char define uint unsigned int uchar code ffw[]={0xfc,0xf6,0xf3,0xf9 }。 //2 相励磁正转表 uchar code rev[]={0xf9,0xf3,0xf6,0xfc }。 //2 相励磁反转表 sbit k1=P3^0。 //定义 K1开关 void delay(uint x) //延时函数 { uchar i。 while(x) //i=x 即延时约 x毫秒 for(i=0。 i60。 i++)。 } /********以下是步进电机正转函数 ********/ void setp_motor_ffw() { P1=ffw[3]。 //取正转数据 delay(250)。 P1=ffw[2]。 delay(500)。 } 第 23 页 共 26 页 /********以下是步进电机反转函数 ********/ void setp_motor_rev() { P1=rev[2]。 //取反转数据 delay(250)。 P1=rev[1]。 d。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。