智能窗帘设计(步进电机) - 图文
更新时间:2023-03-14 02:18:01 阅读量: 教育文库 文档下载
- 智能窗帘控制系统的设计推荐度:
- 相关推荐
毕 ┊┊┊┊┊┊┊装┊┊┊┊┊┊┊订┊┊┊┊┊┊┊线┊┊┊┊┊┊┊
业 论 文
二O一一年六月
智 能 窗 帘 设 计
轮 机
工 程学 院
内容摘要
随着人们生活水平的提高,智能窗帘已成为现代人们的室内家居的一部分,它使人们的生活更加便捷,改善了人们日常生活的质量。传统的窗帘需要手动,但一些大型写字楼、高档办公室、展览馆的窗帘多、长且重,手动比较困难,所以本设计解决了此问题,实现了全自动。主要设计理念是通过检测窗外光线强弱,控制百叶窗摆动角度,调节室内光照,创造舒适的工作生活环境。
论文设计的核心控制选用的是MCS-51单片机,光线采集选用光敏电阻。由于单片机只能读入数字信号,所以模拟信号处理采用ADC0809八路八位转换器。转换成数字信号后,根据数据大小相应地驱动电机,调节其转动角度。电机选用比较容易进行角度调节的步进电机,单片机与步进电机之间的连接采用ULN2003达林顿驱动器。
本文分为四部分:第一部分总述基于MCS-51单片机的智能窗帘设计思想及结构内容;第二部分主要介绍MCS-51单片机结构特点及单片机的C语言编程-C51;第三部分详细论述了信号处理系统的设计,包括光线的采集和AD转换;第四部分详细论述了步进电机控制系统的设计。第五部分展示了硬件电路实体。
通过此次毕业设计,使我进一步熟悉MCS-51单片机和步进电机的工作原理及应用,对于C51程序设计的编写也较熟练了,锻炼了独立思考与团队合作的能力。
关键词:MCS-51单片机;ADC0809;步进电机;ULN2003驱动器
ABSTRACT
With people’s living standards improved, the Smart curtains have become a part of people's indoor furniture now. It has made people's living more convenient, has improved the quality of people's daily lives. The traditional curtain need to manual, but some large office buildings、high-end office、exhibition hall, their curtains are large, long and heavy, it’s difficult to manual. Therefore, this design can solve this problem and achieve a fully automatic. The mainly concepts of the design is through detect the intensity of outdoor light, to control the angle of the electric motor. Adjust the indoor light to create a comfortable working environment.
The core controlling of this thesis design is MCS-51 Microcontroller. Photoresistor gather the light. Because MCU can only read the digital signal, so analog signal processing use converter ADC0809. According to the data to drive the motor, adjust its angle of rotation after converted into digital signal. Stepping motor is selected, because it is easer to control. The connecting of the microcontroller and stepping motor, we use ULN2003 driver.
The thesis is divided into four chapters: Chapter one overview the design of smart curtain by used of MCS-51 microcontroller, and the content and structure. The second chapter introduces the structural characteristics of MCS-51 microcontroller and microcontroller-C51. The third chapter describes the signal processing design, light collection and AD conversion. The fourth chapter is the introduction of the stepping motor control design. The fifth chapter show the things in actual use of hardware.
With this design, I further familiar with the MCS-51 microcontroller and stepping motor’s working principle and application , program the using of C51, temper my independent thinking and the ability of cooperation of team.
Keywords: MCS-51 Microcontroller, ADC0809 , ULN2003driver, Stepping Motor
目录
第1章 概述.................................................................................................................. 1 1.1 课题提出................................................................................................................. 1 1.2 关于MCS-51单片机控制窗帘的设计思想 ......................................................... 1 1.2.1 智能窗帘主要结构设计...................................................................................... 1 1.2.2 流程图.................................................................................................................. 2 第2章 MCS-51单片机的介绍 ................................................................................. 3 2.1 MCS-51单片机的结构 ........................................................................................... 3 2.1.1 MCS-51单片机的内部结构 ................................................................................ 3 2.1.2 引脚功能.............................................................................................................. 4 2.2 单片机的C语言编程——C51 ............................................................................. 6 第3章 信号处理系统设计.......................................................................................... 7 3.1 光线采集部分的设计............................................................................................. 7 3.1.1 光敏电阻器的简介.............................................................................................. 7 3.1.2 光敏电阻基本特性.............................................................................................. 9 3.1.3 光敏电阻的选择................................................................................................ 11 3.1.4 电压采集电路设计............................................................................................ 12 3.2 模数转换部分的设计........................................................................................... 13 3.2.1 A/D转换器的介绍 ............................................................................................. 13 3.2.2 A/D转换器的选择 ............................................................................................. 14 3.2.3 ADC0809的介绍 ............................................................................................... 14 3.2.4 ADC0809与MCS-51单片机的连接设计........................................................ 15 3.3 采集部分C51程序设计 ...................................................................................... 16 第4章 控制系统的设计............................................................................................ 19 4.1 电机驱动部分的设计........................................................................................... 19 4.1.1 ULN2003简介 ................................................................................................... 19 4.1.2 电机驱动部分电路设计的连接图设计............................................................ 20 4.2 电机控制部分的设计........................................................................................... 21 4.2.1 步进电机概述.................................................................................................... 21 4.2.2 步进电机驱动原理............................................................................................ 22 4.2.3 步进电机的选择................................................................................................ 22 4.3 控制部分C语言程序设计 .................................................................................. 23 第5章 硬件电路展示................................................................................................ 27 总结:.......................................................................................................................... 28 参考文献:.................................................................................................................. 29 致谢:.......................................................................................................................... 30 附录:.......................................................................................................................... 31
智能窗帘设计
智 能 窗 帘 设 计
第1章 概述
1.1 课题提出
进入21世纪以来,随着科技水平的不断提高,人们对居家生活的环境质量要求也越来越高。智能窗帘也随着社会的发展应运而生,特别是一些高档别墅区、办公写字楼的窗帘,由于其窗的位置高度较高,所安的窗帘也就高、长、重,不适合人手动,本设计主要解决此问题,设计一款全自动窗帘,根据室外光线的强弱,相应调节光照入室内的多少,从而给人们创造舒适环境。
当室外光照较强时,百叶窗关闭角度增大,使进入室内的光照减少;当室外光照较弱时,百叶窗打开角度增大,是进入室内的光照增加,从而全自动的控制室内亮度。
1.2 关于MCS-51单片机控制窗帘的设计思想
智能窗帘的核心控制使用的是MCS-51单片机,光敏电阻通过阻值的变化,反应光的强弱。AD转换器检测光敏电阻的电压,经过模数转换成数据,读入单片机。单片机根据数据大小,通过ULN2003驱动步进电机,改变步进电机转动角度,从而控制室内光照。当夜晚没有光照时,百叶窗摆动角度是平行的,即90度。当白天光照很强时,像在夏天的中午,百叶窗是完全闭合的,即0度。 1.2.1 智能窗帘主要结构设计
智能窗帘设计主要分两部分:第一部分为信号处理系统设计。光敏电阻感光,电阻变化,测量光敏电阻两端电压,通过A/D转换器转换成数字量;第二部分为控制系统设计。单片机根据数据大小,驱动步进电机正传或反转,调节电机转动角度。
1
智能窗帘设计
1.2.2 流程图
光敏电阻采集电阻电压A/D转换数据读入单片机数据大小?电机正转电机反转百叶窗响应摆动
2
智能窗帘设计
第2章 MCS-51单片机的介绍
MCS-51系列单片机有很多种型号的产品,如基本型(51子系列)8031、8051、8751、89C51、89S51等,增强型(52子系列)8032、8052、8752、89C52、89S52等。它们的结构基本相同,其主要差别反映在储存器的配置上。8031片内没有程序存储器ROM,8051内部没有4KB的掩模ROM程序存储器,8751是将8051片内的ROM换成EPROM,89C51则换成4KB的FLASH EPROM,89S51是4KB可在线编程的FLASH EPROM;MCS-51增强型的存储容量为基本型的一倍。
2.1 MCS-51单片机的结构
2.1.1 MCS-51单片机的内部结构
单片机是在一块芯片中继承了CPU、RAM、ROM、定时/计数器和多功能I/O接口等计算机所需要的基本功能部件的大规模集成电路,又称MCU。51系列单片机内包含下列几个部件:
·1个8为CPU。
·1个片内振荡器及时钟电路。 ·4KB ROM程序存储器。 ·128B RAM数据存储器。
·可寻址64KB外部数据存储器和64KB外部程序存储器的控制电路。 ·32条可编程的I/O线(4个8位并行I/O接口)。 ·2个16位的定时/计数器。 ·1个可编程全双工串行接口。
·5个中断源、2个优先级嵌套中断结构。
51系列单片机内部结构图如图2.1所示,各个功能部件由内部总线连接在一起。程序存储器部分用ROM代替即为8051/8052;用EPROM代替即为8751/8752;若去掉ROM即为8031/8032;用FLASH EPROM代替即为89C51/89S52。
3
智能窗帘设计
基准频率源 脉冲技术输入
振荡器及定时电路4KB/8KB程序存储器128B/256B数据存储器2/3个16位定时器/计数器CPU64KB总线扩展控制可编程I/O接口可编程串行接口 外部中断 控制 并行I/O接口 串行输入 串行输出
图2.1 MCS-51单片机内部结构框图
2.1.2 引脚功能
有总线扩展的51单片机有44个引脚的方形封装形式和40个引脚的双列直插式封装形式,无总线扩展的51单片机有20个引脚双列直插式封装,如89C2051等。40个引脚封装的引脚图如图2.2,各引脚的功能说明如下。
图2.2 8XX51/52单片机引脚
·GND:接地端。 ·VCC:电源端,接+5V。
4
智能窗帘设计
·XTAL1:接外部晶体的一个引脚。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单片机,此引脚应接高电平,但若地址值超过4KB范围,单片机将自动访问外部程序存储器。②在8751单片机内EPROM编程期间,此引脚接入21V编程电源VPP。
·P0.0~P0.7: P0数据/低八位地址复用总线端口。具有双重功能:①可以作为输入/输出口,外接输入/输出设备。②在有外接存储器和I/O接口时常作为低8位地址/数据总线,即低8位地址与数据线分时使用P0口。此低8位地址由ALE信号的下跳沿使它锁存到外部地址锁存器中,尔后,P0口出现数据信息。
·P1.0~P1.7:P1静态通用端口。具有单一接口功能,P1口每一位都能作为可编程的输入或输出口线。
·P2.0~P2.7:P2高八位地址总线动态端口。具有双重功能:①作为输入/输出口使用,外接输入/输出设备。②在有外接存储器和I/O接口时,作为系统的地址总线,输出高8位地址,与P0口低8位地址一起组成16位地址总线。对于内部无程序存储器的单片机来说,P2口只作为地址总线使用,而不作为I/O接口。
·P3.0~P3.7:P3双功能静态端口,①可以作为输入/输出口,外接输入/输出设备。②作为第二功能使用时,每一位功能定义如表2.1所示。
5
智能窗帘设计
2.2 单片机的C语言编程——C51
51系列单片机支持三种高级语言,即PL/M、C和BASIC。8052单片机内固化有BASIC语言,BASIC语言适用于简单编程并对编程效率、运行速度要求不高的场合。PL/M是一种结构化的语言,很像PASCAL。PL/M编译器好像汇编器一样,产生紧凑的机器代码,可以说是高级汇编语言,但它不支持复杂的算术运算,无丰富的库函数支持,学习PL/M无异于学习一种新的语言。C语言是一种通用的程序设计语言,其代码率高,数据类型及运算符丰富,并具有良好的程序结构,适用于各种应用的程序设计,是目前使用较广的单片机编程语言。
单片机的C语言采用C51编译器(简称C51)。由C51产生的目标代码短,运行速度高,所需存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可以与A51汇编语言或PL/M语言目标代码混合使用。
应用C51编程具有以下优点:
· C51管理内部寄存器和存储器的分配,编程时无需考虑不同存储器的寻址和数据类型等细节问题。
· 程序由若干函数组成,具有良好的模块化结构。
· 有丰富的子程序库,可直接引用,从而大大减少用户编程的工作量。 · C语言和汇编语言可以交叉使用。汇编语言程序代码短。运行速度快。但复杂运算编程耗时。如果用汇编语言编写与硬件有关的部分程序,用C语言编写与硬件无关的运算部分程序,充分发挥两种语言的长处,可以调高开发效率。
6
智能窗帘设计
第3章 信号处理系统设计
3.1 光线采集部分的设计
光线采集部分采用光敏电阻感光,通过测量它的电压来判断光的强弱。采用光敏电阻主要原因是,它的用途很广泛,而且容易购买,它的分类也有很多种,所以我们要先了解一下它的结构及其原理,才能选择好我们这次设计所需要的型号,下面介绍光敏电阻的基本情况。 3.1.1 光敏电阻器的简介
光敏电阻器属半导体光敏器件,除具灵敏度高,反应速度快,光谱特性及r值一致性好等特点外,在高温、多湿的恶劣环境下,还能保持高度的稳定性和可靠性,可广泛应用于照相机、太阳能庭院灯、草坪灯、验钞机、石英钟、音乐杯、礼品盒、迷你小夜灯、光声控开关、路灯自动开关以及各种光控玩具、光控灯饰、灯具等光自动开关控制领域。
(1) 什么是光敏电阻器
光敏电阻器是一种对光敏感的元件,它的电阻值能随着外界光照强弱(明暗)变化而变化。
光敏电阻器在电路中用字母“R”或“RL”、“RG”表示, 电路符号: (2)光敏电阻的工作原理及结构
工作原理:当光照射到光电导体上时,若光电导体为本征半导体材料,而且光辐射能量又足够强,光导材料价带上的电子将激发到导带上去,从而使导带的电子和价带的空穴增加,致使光导体的电导率变大。为实现能级的跃迁,入射光的能量必须大于光导体材料的禁带宽度
Eg,即
式中ν和λ为入射光的频率和波长。
一种光电导体,存在一个照射光的波长限λC,只有波长小于λC的光照射在光电导体上,才能产生电子在能级间的跃迁,从而使光电导体电导率增加。
7
智能窗帘设计
光敏电阻的结构:
图3.1光敏电阻的结构
1--光导层; 2--玻璃窗口; 3--金属外壳; 4--电极;5--陶瓷基座; 6--黑色绝缘玻
璃; 7--电阻引线。
管芯是一块安装在绝缘衬底上带有两个欧姆接触电极的光电导体。光导体吸收光子而产生的光电效应,只限于光照的表面薄层,虽然产生的载流子也有少数扩散到内部去,但扩散深度有限,因此光电导体一般都做成薄层。为了获得高的灵敏度,光敏电阻的电极一般采用硫状图案,结构见下图。
图
3.2 金属封装的硫化镉光敏电阻结构图
(3)光敏电阻器种类:
① 按制作材料分类:多晶和单晶光敏电阻器,还可分为硫化镉(CdS)、硒化镉(CdSe) 、硫化铅(PbS)、硒化铅(PbSe)、锑化铟(InSb) 光敏电阻器等。
② 按光谱特性分类:
·可见光光敏电阻器:主要用于各种光电自动控制系统、电子照相机、光报警等。
·紫外光光敏电阻器:主要用于紫外线探测仪器。
·红外光光敏电阻器:主要用于天文、军事等领域的有关自动控制系统。 (4) 光敏电阻器的主要参数
① 亮电阻(kΩ):指光敏电阻器受到光照射时的电阻值。
② 暗电阻(MΩ):指光敏电阻器在无光照射(黑暗环境)时的电阻值。 ③ 最高工作电压(V):指光敏电阻器在额定功率下所允许承受的最高电压。 ④ 亮电流(mA):指光敏电阻器在规定的外加电压下受到光照射时所通过的
8
智能窗帘设计
电流。
⑤ 暗电流(mA):指在无光照射时,光敏电阻器在规定的外加电压下通过的电流。
⑥ 时间常数(ms):指光敏电阻器从光照跃变开始到稳定亮电流的63%时所需时间。
⑦ 电阻温度系数:指光敏电阻器在环境温度改变1℃时,其电阻值的相对变化。
⑧ 灵敏度:指光敏电阻器在有光照射和无光照射时电阻值的相对变化。 3.1.2 光敏电阻基本特性
(1) 光敏电阻的光照特性
下图表示CdS光敏电阻的光照特性。在一定外加电压下,光敏电阻的光电流和光通量之间的关系。不同类型光敏电阻光照特性不同,但光照特性曲线均呈非线性。因此它不宜作定量检测元件,这是光敏电阻的不足之处。一般在自动控制系统中用作光电开关。
图3.3 光敏电阻的光照特性图
(2) 光敏电阻的光谱特性
光谱特性与光敏电阻的材料有关。从下图中可知,硫化铅光敏电阻在较宽的光谱范围内均有较高的灵敏度,峰值在红外区域;硫化镉、硒化镉的峰值在可见光区域。因此,在选用光敏电阻时,应把光敏电阻的材料和光源的种类结合起来考虑,才能获得满意的效果。
图3.4光敏电阻的光谱特性图
9
智能窗帘设计
(3) 光敏电阻的伏安特性
在一定照度下,加在光敏电阻两端的电压与电流之间的关系称为伏安特性。下图中曲线1、2分别表示照度为零及光照度为某值时的伏安特性。由曲线可知,在给定偏压下,光照度较大,光电流也越大。在一定的光照度下,所加的电压越大,光电流越大,而且无饱和现象。但是电压不能无限地增大,因为任何光敏电阻都受额定功率、最高工作电压和额定电流的限制。超过最高工作电压和最大额定电流,可能导致光敏电阻永久性损坏。
图3.5光敏电阻的伏安特性图
(4) 光敏电阻的频率特性
当光敏电阻受到脉冲光照射时,光电流要经过一段时间才能达到稳定值,而在停止光照后,光电流也不能立刻为零,这就是光敏电阻的时延特性。由于不同材料的光敏电阻时延特性不同,所以它们的频率特性也不同,如下图。硫化铅的使用频率比硫化镉高得多,但多数光敏电阻的时延都比较大,所以,它不能用在要求快速响应的场合。
图3.6 光敏电阻的频率特性图
(5) 光敏电阻的稳定性
下图中曲线1、2分别表示两种型号CdS光敏电阻的稳定性。初制成的光敏电阻,由于体内机构工作不稳定,以及电阻体与其介质的作用还没有达到平衡,所以性能是不够稳定的。但在人为地加温、光照及加负载情况下,经一至二周的老化,性能可达稳定。光敏电阻在开始一段时间的老化过程中,有些样品阻值上升,有些样品阻值下降,但最后达到一个稳定值后就不再变了。这就是光敏电阻的主要优点。光敏电阻的使用寿命在密封良好、使用合理的情况下,几
10
智能窗帘设计
乎是无限长的。
图3.7 光敏电阻的的稳定性
(6) 光敏电阻的温度特性
光敏电阻性能(灵敏度、暗电阻)受温度的影响较大。随着温度的升高,其暗电阻和灵敏度下降,光谱特性曲线的峰值向波长短的方向移动。硫化镉的光电流I和温度T的关系如图所示。有时为了提高灵敏度,或为了能够接收较长波段的辐射,将元件降温使用。例如,可利用制冷器使光敏电阻的温度降低。
图3.8光敏电阻的温度特性图
3.1.3 光敏电阻的选择
常用的光敏电阻器有MG41~MG45系列,它们的额定功率均在200mW以下。主要参数见表3.1。
11
智能窗帘设计
3.1.4 电压采集电路设计
图3.9 电压采集部分电路设计
光敏电阻一端接+5v电源,与其串联的电阻值确定为20kΩ,此电阻另一端
12
智能窗帘设计
接地。电阻值的确定是通过试验取得的。为确保在测光敏电阻的高电压、低电压时,电压变化值基本接近,试验采用以上电路。试验中用电压表测量光敏电阻在电路中分配的电压,选用了几个电阻分别试用,最后所用20kΩ的电阻最符合要求,保证了电压0~4v中间值(正常光照)确保在2v左右。
ADC0809的管脚IN0接在光敏电阻与定值电阻之间,电压信号从IN0输入到ADC0809,进行模数转换。
下面一节介绍模数转换部分。
3.2 模数转换部分的设计
模数转换部分主要由ADC0809芯片负责,读入模拟信号的管脚我们选用的是IN0,输出数字信号是D0~D7,与单片机相连接。
从模拟量到数字量的转换可用的芯片很多,主要根据实验精度所选用,ADC0809在单片机课程的学习当中,实验用过,而且也满足了此次设计所需精度。
下面介绍模数转换的原理,根据转换器的原理,及管脚功能,完成A/D转换器与单片机的连接。根据C语言的编程,完成从模拟量到数字量的任务。 3.2.1 A/D转换器的介绍
A/D转换器是一种用来将连续的模拟信号转换成二进制数的器件。一个完整的A/D转换器通常包括这样的一些输入、输出信号:模拟输入信号和参考电压、数字输出信号、启动转换信号、转换结束信号、数据输出允许信号等。高速A/D转换器一般还应有采样保持电路,以减少孔径误差(在A/D转换的孔径时间内,因输入模拟量的变动所引起输出的不确定性误差)。A/D转换的主要技术指标有:
(1) 分辨率。变化一个相邻数码所需要输入的模拟电压的变化量,通常用位数表示,对n位的A/D转换器,分辨率为满刻度电压的1/2^n。
(2) 转换误差。指一个实际的A/D转换器量化值与一个理想的A/D转换器量化值之间的最大偏差,通常以最低有效位的倍数给出。转换误差和分辨率一起共同描述A/D转换器的转换精度。值得一提的是,转换误差或者转换精度的概念在国内外不同的参考文献上含义或形式可能会有所不同。
(3) 转换时间与转换速率。A/D转换器完成一次转换所需要的时间为A/D转换时间。转换时间的倒数为转换速率,即1秒钟完成转换的次数。
常见的A/D转化器有记数式A/D转换器、双积分式A/D转换器、逐次逼近式A/D转换器、并行直接比较式A/D转换器、V/F式A/D转换器等。逐次逼近式A/D转换器速度较高,外围元件较少,是使用比较多的一种A/D转换电路,
13
智能窗帘设计
但其抗干扰能力较差。双积分式A/D转换器具有抗干扰能力强、转换精度高的优点,但速度较慢。V/F式A/D转换器有着双积分式A/D转换器类似的特点,在一些非快速的检测通道中,越来越多地使用V/F转换来取代通常的A/D转换。 3.2.2 A/D转换器的选择
正确选用一个适合的A/D转换器,应当注意以下几个问题:
(1) 选择恰当的位数和转换速率。分辨率和转换速率的选择应比实际的要求略高一点,稍留一点余地。
(2) 确定是否需加采样/保持电路。采样/保持电路主要用来减少孔径误差。由孔径误差、转换速率、信号最高频率来共同决定是否需加采样/保持电路。一般来说,对于分辨率越高、转换速率越低的A/D转换器,当信号频率越高时越有可能需要加采样/保持电路。通常有不少A/D转换器内部已经含有采样/保持电路,这种情况则外部不需再考虑。
(3) 注意A/D转换器的工作电压和基准电压以及模拟输入电压的极性、量程等。
本设计选择的是ADC00809八路八位转换器。 3.2.3 ADC0809的介绍
ADC0809是逐次逼近式八位A/D转换器,片内有八路模拟开关,可对八路模拟电压量实现分时转换,典型转换时间为100μs。片内带有三态输出缓冲器,可直接与单片机的数据总线相连接。
ADC0809的内部逻辑结构和引脚如图3.10所示。图中可见,ADC0809由八位模拟开关、SAR八位逐次逼近式A/D转换器、地址锁存器、控制与时序电路及输出锁存器组成。
图3.10 ADC0809的结构图和引脚图
·IN0~IN7 八路模拟通道输入信号,通过模拟开关实现八路模拟输入信号分时选通。
14
智能窗帘设计
·ADDC、ADDB和ADDA模拟通道选择 编码为000~111,分别选中IN0~IN7。
·ALE 地址锁存信号,其上升沿锁存ADDC、ADDB、ADDA的信号,译码后控制模拟开关,接通八路模拟输入中相应的一路。
·CLK输入时钟 为A/D转换器提供转换的时钟信号,典型的工作频率为640kHz。
·START A/D转换启动信号,正脉冲启动ADDC~ADDA,选中的一路模拟信号开始转换。
·OE 输出允许信号,为高电平时打开三态输出缓冲器,是转换后的数字量从D0~D7脚输出。
·EOC 转换结束信号,启动转换后,EOC变为低电平,转换完成后变为高电平,根据读入转换结果的方式,此信号可用三种方式和单片机相连。
(1) 延时方式:EOC悬空,启动转换并延时100μs后读入转换结果。 (2) 查询方式:EOC接单片机端口线,查得EOC变高,读入转换结果,作为查询信号。
(3) 中断方式:EOC经非门接单片机的中断请求端,将转换结果信号作为中断请求信号向单片机提出中断申请,在中断服务中读入转换结果。
·VREF(+)和VREF(-) 基准电压输入,用于决定输入模拟电压的范围。VREF(+)和VREF(-)是差动的或不共地的电压信号,多数情况下,VREF(+)接5V, VREF(-)接GND,此时输入量成为0~5V。当转换精度要求不高或电源电压VCC较稳定和准确时,VREF(+)可接VCC,否则应单独提供基准电源。
3.2.4 ADC0809与MCS-51单片机的连接设计
ADC0809与8XX51单片机的接口电路如图3.11所示。
15
智能窗帘设计
上面介绍了ADC0809的管脚功能,根据对应功能,我们将其连接到51单片机的管脚。
ADC0809的转换结束信号EOC连接到P3.0;输出允许信号OE连接到P3.1;时钟信号CLK连接到P3.2,由单片机软件编程实现16分频,满足CLK信号低于640kHz的要求;START与ALE均连接到P3.3;D0~D7分别接到单片机P0.0~P0.7(因为单片机学习板内部已将P1口连接电机驱动器,所以采用P0口);VREF(+)和VREF(-)分别连接到+5V电源和GND;ADDA、ADDB、ADDC均连接到GND。
具体的芯片功能实现,需要C语言程序的烧录到单片机,尔后进行控制,下面是具体所编的C语言,通过编程,进行模拟信号向数字信号的转变。
3.3 采集部分C51程序设计
1. 添加头文,端口定义 #include
16
智能窗帘设计
根据以上电路连接进行端口定义。 2. 延时程序
void delay(unsigned int j) {
unsigned int i; for(i=0;i 3. 中断程序 timer0() interrupt 1 { TH0=65530/256; TL0=65530%6; CLK=~CLK; } 4. 模拟信号转换成数字信号 void transfer() { START=0; OE=0; delay(1); while(!EOC); OE=1; light=P0; OE=0; START=1; } 5. 初始化,设置定时器,开中断 void Init() { TMOD=0x01; TH0=65530/256; TL0=65530%6; EA=1; ET0=1; TR0=1; P1=0x0f; } 单片机处理系统接收的信号是由信号采集装置经A/D转换后的数字信号, 17 智能窗帘设计 这就需要用到单片机的信号输入端口,在此设置P0.0~P0.7为输入端口。对信号分析处理后,处理系统需对电机控制装置发出控制指令,这就用到了单片机的输出端口,在此设置P1.0与P1.1为输出端口。 当单片机的P0.0~P0.7端口接收到输入信号后,接下来要做的是对信号的分析。在信号采集装置中,采用了分压电路型式,将光信号转换为电压信号,然后经过A/D转换变成数字信号,所以处理系统要分析的是数字数据。 信号采集装置和单片机使用了同一电源,电压为5.0V,也就是说,电压信号的变化范围为0~5.0V。转换成数字信号后为0~255,所以单片机通过这个数字范围控制步进电机的转动角度。我们采用的是分级调速,把这个区域分成4个区域,每个区域对应转动角度分别为0°,30°,60°,90°。 下面具体介绍控制系统的设计。 18 智能窗帘设计 第4章 控制系统的设计 控制系统由两部分构成:电机的驱动和电机的控制。 电机驱动部分主要由达林顿驱动ULN2003芯片实现。电机控制部分采用步进电机,这是因为步进电机比较容易进行角度控制。下面主要论述ULN2003芯片及步进电机结构与原理,以及C51程序的实现。 4.1 电机驱动部分的设计 4.1.1 ULN2003简介 1.ULN2003的概述 ULN2003是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,可用来驱动继电器。它是双列16见封装,NPN晶体管矩阵,最大驱动电压为50V、电流为500mA、输入电压为5V,适用于TTL、COMS电路等达林顿管组成的驱动电路。它的输出端允许通过电流为200mA,饱和压降VCE约为1V,而集电极与发射极的最高反向耐压VCEO(BR)约为36V。用户输出口的外接负载可根据以上参数估算。采用集电极开路输出,输出电流大,故可直接驱动继电器或固体继电器,也可直接驱动低压灯泡。通常单片机驱动ULN2003时,上拉2kΩ的电阻较为合适,同时,COM引脚应该悬空或接电源。ULN2003是一个非门电路,包含7个单元,但每个单元驱动电流最大可达350mA。下面有引用电路图,9脚可以悬空。比如1脚输入,16脚输出,负载可以接在VCC与16脚之间,不用9脚。 2.ULN2003的作用 ULN2003是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中,可直接驱动继电器等负载。输入5VTTL电平,输出可达500mA/50V。ULN2003是高耐压、大电流达林顿阵列,由7个硅NPN达林顿管组成。该电路的特点如下:ULN2003的每一对达林顿管都串联一个2.7kΩ的基极电阻,在5V的工作电压下它能与TTL和COMS电路直接连接。 ULN2003是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适用于各类要求高速大功率驱动的系统。 3.ULN2003引进图及功能 ULN2003是高耐压、大电流、内部由7个硅NPN达林顿管组成的驱动芯片,其引脚图如图4.1所示。 19 智能窗帘设计 图4.1 ULN2003引脚图 ULN2003经常在以下电路中试用: (1) 显示驱动; (2) 继电器驱动; (3) 照明灯驱动; (4) 电磁阀驱动; (5) 伺服电动机、步进电机驱动等电路中。 ULN2003的每一对达林顿管都串联一个2.7kΩ的基极电阻,在5V的工作电压下它能与TTL和COMS电路直接相连,ULN2003可以并联使用,在相应的OC输出引脚上串联几欧姆的均流电阻后再并联使用,防止阵列电流不平衡。可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。 ULN2003的封装采用DIP16或SOP16。ULN2003可以驱动7个继电器,具有高电压输出特性,并带有共阴极的续流二极管,使器件可用于开关型感性负载。每对达林顿管的额定集电极电流是500mA,达林顿对管还可并联使用以达到更高的输出电流能力。 4.1.2 电机驱动部分电路设计的连接图设计 如图4.2所示为电机驱动部分的连接图。 20 智能窗帘设计 图4.2 电机驱动部分连接图 此图是单片机学习板内部连接图。ULN2003所用的是单片机的P1.0~P1.3接口,输出部分选用13~16引脚,8引脚接地,9引脚所示为连接步进电机的电源。 4.2 电机控制部分的设计 此部分主要是对控制指令的执行。单片机根据读入的数据通过驱动器对电机进行驱动,调节电机转动的角度。下面介绍一下步进电机及其控制原理,了解步进电机使我们能更顺利的完成智能窗帘设计。 4.2.1 步进电机概述 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电动机的转速、停止的位置只取决于脉冲信号的频率的脉冲数,而不受负载变化的影响,即给电动机加一个脉冲信号,电动机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无积累误差等特点,使得在速度、位置等控制领域用步进电机来控制变得非常简单。步进电机实际上是一种单相或多相同步电动机。单相步进电机由单路电脉冲驱动,输出功率一般很小,其用途为微小功率驱动。多相步进电机的多相方波脉冲驱动,在经功率放大后分别送入步进电机各相绕组。当向脉冲分配器输入一个脉冲时,电动机各项的通电状态就发生变化,转子会转过一定的角度(称为步距角)。正常情况下,步进电机转过的总角度和输入的脉冲数成正比;连续输入一定脉冲时,电动机的转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。由于步进电机能直接接收数字量的输入,所以特别适合于微处理器控制。 21 智能窗帘设计 4.2.2 步进电机驱动原理 步进电机有三线式、五线式、六线式三种,但其控制方式均相同,必须以脉冲电流来驱动。若每旋转一圈以20个励磁信号来计算,则每个励磁信号前进 18°,其旋转角度与脉冲数成正比,正、反转可由脉冲顺序来控制。 步进电机的励磁方式可分为全步励磁及半步励磁,其中全部励磁又有1相励磁及2相励磁之分,而半步励磁又称1~2相励磁。 (1) 1相励磁法:在每一瞬间只有一个线圈导通。消耗小,准确度良好,但转矩小,振动较大,每送一励磁信号可走18°。若欲以1相励磁法控制步进电机正转,其励磁顺序如表4.1所示。若励磁信号反向传送,则步进电机反转。 表4.1 正转励磁顺序A→B→C→D→A STEP 1 2 A 1 0 B 0 1 C 0 0 D 0 0 STEP 3 4 A 0 0 B 0 0 C 1 0 D 0 1 (2) 2相励磁法:在每一瞬间会有两个线圈同时导通。因其转巨大,振动小,故为目前使用最多的励磁方式,每送一励磁信号可走18°。若以2相励磁法控制步进电机正转,其励磁顺序如表4.2所示。若励磁信号反向传送,则步进电机反转。 表4.2 正转励磁顺序AB→BC→CD→DA→AB STEP A B C D STEP A B C D 1 1 1 0 0 3 0 0 1 1 2 0 1 1 0 4 1 0 0 1 (3) 1~2相励磁法:为1相与2相轮流交替导通。因分辨率提高,且运转平滑,每送一励磁信号可走9°,故亦被广泛采用。若以1相励磁法控制步进电机正转,其励磁顺序如表4.3所示,若励磁信号反向传送,则步进电机反转。 表4.3 正转励磁顺序A→AB→B→BC→C→CD→D→DA→A STEP A B C D STEP A B C D 1 1 0 0 0 5 0 0 1 0 2 1 1 0 0 6 0 0 1 1 3 0 1 0 0 7 0 0 0 1 4 0 1 1 0 8 1 0 0 1 电动机的负载转矩与速度成反比,速度越快负载转矩越小,但速度快至其极限时,步进电机即不在运转。所以在每走一步后,程序必须延时一段时间,以对转速加以限制。 4.2.3 步进电机的选择 步进电机有步距角(涉及相数)、静转矩及电流三大要素组成。一旦三大要素确定,步进电机的型号便确定下来了。 22 智能窗帘设计 (1) 步距角的选择:电动机的步距角取决于负载精度的要求,将负载的最小分辨率(当量)换算到电机轴上,即每个当量电动机应走多少角度(包括减速)。电动机的步距角应等于或小于此角度。目前市场上步进电机的步距角一般有0.36°/0.72°(五相电动机)、0.9°/1.8°(二、四相电动机)、1.5°/3°(三相电动机)等。 (2) 静力矩的选择:步进电机的动态力矩一下子很难确定,往往先确定电动机的静力矩。静力矩的选择依据是电动机工作的负载,而负载可分为惯性负载和摩擦负载两种。单一的惯性负载和单一的摩擦负载是不存在的。直接启动时(一般由低速)两种负载均要考虑,加速启动时主要考虑惯性负载,恒速运行时只要考虑摩擦负载。一般情况下,静力矩应为摩擦负载的2~3倍,静力矩一旦选定,电动机的机座及长度便能确定下来(几何尺寸)。 (3) 电流的选择:静力矩相同的电动机,由于电流参数不同,其运行特性差别很大可依据矩频特性曲线图,判断电动机的电流。 选择电动机一般应遵循以上步骤。 本次设计选择的是M35SP-7NP四相五线永磁型步进电机。永磁型步进电机的特点为: (1) 大步距角,例如15°、22.5°、30°、45°、90°等。 (2) 起动频率较低,通常为几十到几百Hz(但转速不一定低)。 (3) 控制功率小。 (4) 在断电情况下有定位转矩。 (5) 有强的内阻尼力矩。 4.3 控制部分C语言程序设计 首先介绍此部分的基本情况,单片机读入数字信号,通过P1端口输出,P1端口接ULN2003驱动器,驱动器上面已介绍。驱动器驱动步进电机,电机根据数据所在区域转动,来控制百叶窗摆动角度,从而调节室内光照。 步进电机以脉冲电流来驱动,正、反转由脉冲顺序来驱动。电机正转、反转程序是根据步进电机驱动原理所设置的数据。 主程序是根据单片机读入的数据0~255,来分成四个区域,实现的是分级调速。数据在0~40时,也就是说所测电压小,室外光照弱,步进电机摆动角度控制在0°;数据在45~125时,步进电机转动位置在30°;数据在130~210时,步进电机转动到60°,随着光照增强,百叶窗呈趋于闭合状态;数据在215~225时,步进电机转动到90°,光照过强,百叶窗呈闭合状态。每个区域数据不是连续的的主要原因是,为了步进电机在临界值不抖动,所以设置的死区,在数据没有涉及到的死区,电动机是不动的,从而实现平缓的转动。 23 智能窗帘设计 switch(level)语句是选择进入哪个档,0~3档对应电动机转动角度,分为0档、30°档、60°档、90°档。 1. 电机正转程序 void move(unsigned char step) { unsigned char i; P1=0x0f; for(i=0;i 2. 电机反转程序 void reserve(unsigned char step) { unsigned char i; P1=0x0f; for(i=0;i 3. 转动控制程序 void movesetp(unsigned char level) { 24 智能窗帘设计 } switch(level) { case 0: switch(state) { case 0:break; case 1:reserve(1);break; case 2:reserve(2);break; case 3:reserve(3);break; }state=0;break; case 1: switch(state) { case 0:move(1);break; case 1:break; case 2:reserve(1);break; case 3:reserve(2);break; }state=1;break; case 2: switch(state) { case 0:move(2);break; case 1:move(1);break; case 2:break; case 3:reserve(1);break; }state=2;break; case 3: switch(state) { case 0:move(3);break; case 1:move(2);break; case 2:move(1);break; case 3:break; }state=3;break; } 4. 主程序 main() { Init(); while(1) { //delay(10000); transfer(); 25 智能窗帘设计 //P2=~light; if(light>=0&&light<40)movesetp(0); //当光照转换的数据在0~40,if(light>=45&&light<125)movesetp(1); //当光照转换的数据在if(light>=130&&light<210)movesetp(2); //当光照转换的数据在if(light>=215&&light<=255)movesetp(3); //当光照转换的数据在 转动角度0度 45~125,转动30度 130~210,再转动30度 215~255,再转动30度 } } 26 智能窗帘设计 第5章 硬件电路展示 以上是硬件电路实体,左半部分是信号处理系统,右半部分是控制系统。 27 智能窗帘设计 总结: 智能家居正在进入人们的生活当中,本次毕业设计贴近了人们的日常生活,更有意义。单片机的使用也越来越广泛。 通过这三个月的毕业设计,我更深入的掌握的单片机的使用。总局限于课本的学习不能更好的认识熟悉所学内容,要到实验中去才能掌握所学习的知识,很感谢此次毕业设计给予的学习机会。本次的毕业设计需要制作硬件电路,通过这个制作过程,我积累了很多电路设计的心得,同时也增强了动手制作的能力,对于硬件电路设计更有信心。这次的毕业设计,给今后的学习与工作奠定了基础,是今后发展的桥梁。 28 智能窗帘设计 参考文献: [1] 张映辉. 大学物理实验学习指导书. 大连: 大连海事大学出版社,2006.3 [2] 周润景. 单片机电力设计、分析与制作. 北京: 机械工业出版社,2010.5 [3] 李群芳. 单片机原理、接口及应用. 北京: 清华大学出版社,2007.2 [4] 刘守义. 单片机应用技术. 西安: 西安电子科技大学出版社,2003.9 [5] 夏继强. 单片机实验与实践教程. 北京: 北京航空航天大学出版社,2001.5 [6] 孙建忠. 特种电机及其控制. 北京: 中国水利水电出版社,2005 [7] 康华光. 电子技术基础. 北京: 高等教育出版社,2006.1 [8] 王兆安 黄俊. 电力电子技术. 北京: 机械工业出版社,2008.4 [9] 查普曼(Stephen J. Chpman)原著. Electric Machinery Fundamentals.北京: 清华大学出版社,2008.7 [10] 薛继汉. BASIC CIRCUIT THEORY. 大连:大连海事大学,2004.2 29 智能窗帘设计 致谢: 本次毕业实际过程中遇到了很多没有想到的困难,通过了指导老师和范同学的帮助下,问题才一一解决,在此表示深深的谢意。 此次设计有硬件电路设计,锻炼了我的动手能力,在此还要感谢同舟学社,为我们毕业设计提供了硬件制作的实验室和细心的帮助。 同时还要感谢四年来授予我们知识的老师们,没有基础知识,更深入的学习是进行不了的,在今后的学习与工作当中我会更加努力! 30 智能窗帘设计 附录: 总程序: #include void delay(unsigned int j) { unsigned int i; for(i=0;i timer0() interrupt 1 { TH0=65530/256; TL0=65530%6; CLK=~CLK; } void transfer() { START=0; OE=0; delay(1); while(!EOC); OE=1; light=P0; OE=0; START=1; } void Init() { TMOD=0x01; TH0=65530/256; TL0=65530%6; EA=1; ET0=1; 31 智能窗帘设计 TR0=1; P1=0x0f; } void move(unsigned char step) { unsigned char i; P1=0x0f; for(i=0;i void reserve(unsigned char step) { unsigned char i; P1=0x0f; for(i=0;i void movesetp(unsigned char level) { switch(level) { case 0: switch(state) 32 智能窗帘设计 { case 0:break; case 1:reserve(1);break; case 2:reserve(2);break; case 3:reserve(3);break; }state=0;break; case 1: switch(state) { case 0:move(1);break; case 1:break; case 2:reserve(1);break; case 3:reserve(2);break; }state=1;break; case 2: switch(state) { case 0:move(2);break; case 1:move(1);break; case 2:break; case 3:reserve(1);break; }state=2;break; case 3: switch(state) { case 0:move(3);break; case 1:move(2);break; case 2:move(1);break; case 3:break; }state=3;break; } } main() { Init(); while(1) { //delay(10000); transfer(); //P2=~light; if(light>=0&&light<40)movesetp(0); if(light>=45&&light<125)movesetp(1); 33 智能窗帘设计 if(light>=130&&light<210)movesetp(2); if(light>=215&&light<=255)movesetp(3); } } 注意:在烧录程序时最好保持外接电路的断开,否则程序有可能出现烧录不进去的情况。 34 英文文献翻译 英文文献翻译 Original: The AT89C51 is a low-power, high-performance CMOS 8-bit microcomputer with 4K bytes of Flash Programmable and Erasable Read Only Memory (PEROM) and 128 bytes RAM. The device is manufactured using Atmel’s high density nonvolatile memory technology and is compatible with the industry standard MCS-51? instruction set and pinout. The chip combines a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel AT89C51 is a powerful microcomputer which provides a highly flexible and cost effective solution to many embedded control applications. Features: ? Compatible with MCS-51? Products ? 4K Bytes of In-System Reprogrammable Flash Memory ? Endurance: 1,000 Write/Erase Cycles ? Fully Static Operation: 0 Hz to 24 MHz ? Three-Level Program Memory Lock ? 128 x 8-Bit Internal RAM ? 32 Programmable I/O Lines ? Two 16-Bit Timer/Counters ? Six Interrupt Sources ? Programmable Serial Channel ? Low Power Idle and Power Down Modes The AT89C51 provides the following standard features: 4K bytes of Flash, 128 bytes of RAM, 32 I/O lines, two 16-bit timer/counters, a five vector two-level interrupt architecture, a full duplex serial port, on-chip oscillator and clock circuitry. In addition, the AT89C51 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port and interrupt system to continue functioning. The Power Down Mode saves the RAM contents but freezes the oscillator disabling all other chip functions until the next hardware reset. 1 英文文献翻译 Block Diagram Pin Description: VCC Supply voltage. GND Ground. Port 0 2 英文文献翻译 Port 0 is an 8-bit open drain bidirectional I/O port. As an output port each pin can sink eight TTL inputs. When is are written to port 0 pins, the pins can be used as high impedance inputs. Port 0 may also be configured to be the multiplexed loworder address/data bus during accesses to external program and data memory. In this mode P0 has internal pullups. Port 0 also receives the code bytes during Flash programming, and outputs the code bytes during program verification. External pullups are required during program verification. Port 1 Port 1 is an 8-bit bidirectional I/O port with internal pullups. The Port 1 output buffers can sink/source four TTL inputs. When 1s are written to Port 1 pins they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 1 pins that are externally being pulled low will source current (IIL) because of the internal pullups. Port 1 also receives the low-order address bytes during Flash programming and verification. Port 2 Port 2 is an 8-bit bidirectional I/O port with internal pullups. The Port 2 output buffers can sink/source four TTL inputs. When 1s are written to Port 2 pins they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 2 pins that are externally being pulled low will source current (IIL) because of the internal pullups. Port 2 emits the high-order address byte during fetches from external program memory and during accesses to external data memory that use 16-bit addresses (MOVX @ DPTR). In this application it uses strong internal pull-ups when emitting 1s. During accesses to external data memory that use 8-bit addresses (MOVX @ RI), Port 2 emits the contents of the P2 Special Function Register. Port 2 also receives the high-order address bits and some control signals during Flash programming and verification. Port 3 Port 3 is an 8-bit bidirectional I/O port with internal pullups. The Port 3 output buffers can sink/source four TTL inputs. When 1s are written to Port 3 pins they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 3 pins that are externally being pulled low will source current (IIL) because of the pullups. Port 3 also serves the functions of various special features of the AT89C51 as 3 英文文献翻译 listed below: Port pin P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 alternate functions rxd (serial input port) txd (serial output port) ^int0 (external interrupt0) ^int1 (external interrupt1) t0 (timer0 external input) t1 (timer1 external input) ^WR (external data memory write strobe) ^rd (external data memory read strobe) Port 3 also receives some control signals for Flash programming and verification. RST Reset input. A high on this pin for two machine cycles while the oscillator is running resets the device. ALE/PROG Address Latch Enable output pulse for latching the low byte of the address during accesses to external memory. This pin is also the program pulse input (PROG) during Flash programming. In normal operation ALE is emitted at a constant rate of 1/6 the oscillator frequency, and may be used for external timing or clocking purposes. Note, however, that one ALE pulse is skipped during each access to external Data Memory. If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH. With the bit set, ALE is active only during a MOVX or MOVC instruction. Otherwise, the pin is weakly pulled high. Setting the ALE-disable bit has no effect if the microcontroller is in external execution mode. PSEN Program Store Enable is the read strobe to external program memory. When the AT89C51 is executing code from external program memory, PSEN is activated twice each machine cycle, except that two PSEN activations are skipped during each access to external data memory. EA/VPP External Access Enable. EA must be strapped to GND in order to enable the device to fetch code from external program memory locations starting at 0000H up to FFFFH. Note, however, that if lock bit 1 is programmed, EA will be internally latched on reset. EA should be strapped to VCC for internal program executions. This pin also receives the 12-volt programming enable voltage(VPP) during Flash programming, for parts that require 12-volt VPP. XTAL1 4 英文文献翻译 Input to the inverting oscillator amplifier and input to the internal clock operating circuit. XTAL2 Output from the inverting oscillator amplifier. Oscillator Characteristics XTAL1 and XTAL2 are the input and output, respectively, of an inverting amplifier which can be configured for use as an on-chip oscillator, as shown in Figure 1. Either a quartz crystal or ceramic resonator may be used. To drive the device from an external clock source, XTAL2 should be left unconnected while XTAL1 is driven as shown in Figure 2. There are no requirements on the duty cycle of the external clock signal, since the input to the internal clocking circuitry is through a divide-by-two flip-flop, but minimum and maximum voltage high and low time specifications must be observed. Idle Mode In idle mode, the CPU puts itself to sleep while all the onchip peripherals remain active. The mode is invoked by software. The content of the on-chip RAM and all the special functions registers remain unchanged during this mode. The idle mode can be terminated by any enabled interrupt or by a hardware reset. It should be noted that when idle is terminated by a hard ware reset, the device normally resumes program execution, from where it left off, up to two machine cycles before the internal reset algorithm takes control. On-chip hardware inhibits access to internal RAM in this event, but access to the port pins is not inhibited. To eliminate the possibility of an unexpected write to a port pin when Idle is terminated by reset, the instruction following the one that invokes Idle should not be one that writes to a port pin or to external memory. 5 英文文献翻译 Status of External Pins During Idle and Power Down Modes mode idle Idle Power down Power down Program memory internal External Internal External ALE 1 1 0 0 ^psen 1 1 0 0 Port0 Port1 Port2 Port3 data float Data float data Data Data data data data Data Data Data Data Data data Power Down Mode In the power down mode the oscillator is stopped, and the instruction that invokes power down is the last instruction executed. The on-chip RAM and Special Function Registers retain their values until the power down mode is terminated. The only exit from power down is a hardware reset. Reset redefines the SFRs but does not change the on-chip RAM. The reset should not be activated before VCC is restored to its normal operating level and must be held active long enough to allow the oscillator to restart and stabilize. Program Memory Lock Bits On the chip are three lock bits which can be left unprogrammed (U) or can be programmed (P) to obtain the additional features listed in the table below: Lock Bit Protection Modes Program lock bits Lb1 Lb2 Lb3 1 U 2 P 3 P 4 P P P U U U P U U Protection type No program lock features Movc instructions executed from external program memory are disable from fetching code bytes from internal memory, ^ea is sampled and latched on reset, and further programming of the flash disabled Same as mode 2, also verify is disable. Same as mode 3, also external execution is disabled. When lock bit 1 is programmed, the logic level at the EA pin is sampled and latched during reset. If the device is powered up without a reset, the latch initializes to a random value, and holds that value until reset is activated. It is necessary that the latched value of EA be in agreement with the current logic level at that pin in order for the device to function properly. Programming the Flash: The AT89C51 is normally shipped with the on-chip Flash memory array in the erased state (that is, contents = FFH) and ready to be programmed. The programming interface accepts either a high-voltage (12-volt) or a low-voltage (VCC) program enable signal. The low voltage programming mode provides a convenient way to 6 英文文献翻译 program the AT89C51 inside the user’s system, while the high-voltage programming mode is compatible with conventional third party Flash or EPROM programmers. The AT89C51 is shipped with either the high-voltage or low-voltage programming mode enabled. The respective top-side marking and device signature codes are listed in the following table. Top-side mark signature Vpp=12v AT89C51 xxxx yyww (030H)=1EH (031H)=51H (032H)=FFH Vpp=5v AT89C51 xxxx-5 yyww (030H)=1EH (031H)=51H (032H)=05H The AT89C51 code memory array is programmed byte-bybyte in either programming mode. To program any nonblank byte in the on-chip Flash Programmable and Erasable Read Only Memory, the entire memory must be erased using the Chip Erase Mode. Programming Algorithm: Before programming the AT89C51, the address, data and control signals should be set up according to the Flash programming mode table and Figures 3 and 4. To program the AT89C51, take the following steps. 1. Input the desired memory location on the address lines. 2. Input the appropriate data byte on the data lines. 3. Activate the correct combination of control signals. 4. Raise EA/VPP to 12V for the high-voltage programming mode. 5. Pulse ALE/PROG once to program a byte in the Flash array or the lock bits. The byte-write cycle is self-timed and typically takes no more than 1.5 ms. Repeat steps 1 through 5, changing the address and data for the entire array or until the end of the object file is reached. Data Polling: The AT89C51 features Data Polling to indicate the end of a write cycle. During a write cycle, an attempted read of the last byte written will result in the complement of the written datum on PO.7. Once the write cycle has been completed, true data are valid on all outputs, and the next cycle may begin. Data Polling may begin any time after a write cycle has been initiated. Ready/Busy: The progress of byte programming can also be monitored by the RDY/BSY output signal. P3.4 is pulled low after ALE goes high during programming to indicate BUSY. P3.4 is pulled high again when programming is done to indicate READY. 7 英文文献翻译 Program Verify: If lock bits LB1 and LB2 have not been programmed, the programmed code data can be read back via the address and data lines for verification. The lock bits cannot be verified directly. Verification of the lock bits is achieved by observing that their features are enabled. Chip Erase: The entire Flash Programmable and Erasable Read Only Memory array is erased electrically by using the proper combination of control signals and by holding ALE/PROG low for 10 ms. The code array is written with all “1”s. The chip erase operation must be executed before the code memory can be re-programmed. Reading the Signature Bytes: The signature bytes are read by the same procedure as a normal verification of locations 030H, 031H, and 032H, except that P3.6 and P3.7 must be pulled to a logic low. The values returned are as follows. (030H) = 1EH indicates manufactured by Atmel (031H) = 51H indicates 89C51 (032H) = FFH indicates 12V programming (032H) = 05H indicates 5V programming Programming Interface Every code byte in the Flash array can be written and the entire array can be erased by using the appropriate combination of control signals. The write operation cycle is selftimed and once initiated, will automatically time itself to completion. Table 1 Flash Programming Modes mode Write data Read code data H Write lock Bit-2 H L Bit-3 H L Chip erase H L H/12V H L L L H/12V H L H L H/12V H H L L Bit-1 H L L H H H/12V L H L H H H H H RST ^PSEN L ALE/^PROG ^EA/Vpp H/12V P2.6 L P2.7 H P3.6 H P3.7 H code H 8 英文文献翻译 Read signature syte H L H H L L L L Note: 1.chip erase requires a 10-ms PROG pulse Figure 3. Programming the Flash Figure 4. Verifying the Flash Flash Programming and Verification Characteristics TA = 0°C to 70°C, VCC = 5.0 ??10% Symbol parameter Vpp⑴ Ipp⑴ 1/Tclcl Tavgl Tghax Tdvgl Tghdx Tehsh Programming voltage Programming current enable enable 3 48Tclcl 48Tclcl 48Tclcl 48Tclcl 48Tclcl 10 10 1 0 110 48Tclcl 48Tclcl 48Tclcl 1.0 2.0 min 11.5 max 12.5 1.0 24 Units V mA MHZ us us us us ms Oscillator frequency Address setup to ^PSEN low Address hole after ^PSEN Data setup to ^PSEN low Data hole after ^PSEN P2.7(^enable)high to Vpp Tshgl Vpp setup to ^PSEN low Tghsl⑴ Vpp hole after ^PSEN Tglgh Tavqv Telqv Tehqz Tghbl Twc ^PSEN width Address to data valid ^enable low to data valid Data float after ^enable ^PSEN high to ^busy low Byte write cycle time Note: 1. Only used in 12-volt programming mode. Flash Programming and Verification Waveforms - High Voltage Mode (VPP = 12V) 9 英文文献翻译 Flash Programming and Verification Waveforms - Low Voltage Mode (VPP = 5V) Absolute Maximum Ratings* Operating Temperature.................................. -55°C to +125°C Storage Temperature ..................................... -65°C to +150°C Voltage on Any Pin with Respect to Ground .....................................-1.0V to +7.0V Maximum Operating Voltage............................................. 6.6V DC Output Current...................................................... 15.0 mA DC Characteristics TA = -40°C to 85°C, VCC = 5.0V ??20% (unless otherwise noted) symbol Vil parameter Input low voltage condition (except ^EA) min -0.5 max 0.2Vcc-0.1 units V 10 英文文献翻译 Vil1 Vih Vih1 Vol Vol1 Input low voltage(^EA) Input high voltage Input high voltage Output low voltage⑴(ports 1,2,3 ) Output low voltage⑴(port0,ALE,^PSEN) Except XTAL1,XTAL2 (XTAL1,RST) Iol=1.6mA Ioh=3.2mA Ioh=-60uA,Vcc=-5V+10% Ioh=-25uA Ioh=-60uA,Vcc=5V+10% Ioh=-800UA,Vcc=5V+10% Ioh=-300uA, Ioh=-80uA Vin=0.45V Vin=2V,Vcc=5V+10% 0.45 Maximum IOL per port pin: 10 mA Maximum IOL per 8-bit port: Port 0: 26 mA Ports 1, 2, 3: 15 mA Maximum total IOL for all output pins: 71 mA 2. Minimum VCC for Power Down is 2V. AC Characteristics (Under Operating Conditions; Load Capacitance for Port 0, ALE/PROG, and PSEN = 100 pF; Load Capacitance for all other outputs = 80 pF) External Program and Data Memory Characteristics 11
正在阅读:
智能窗帘设计(步进电机) - 图文03-14
船舶结构与货运(新)11-24
《教育学》考试简答题汇总04-23
口袋妖怪金心银魂攻略及金手指02-20
aspne新闻网站的设计与实现04-16
淮安经济开发区社会事业十二五规划06-29
基于文献计量的高校图书馆特色馆藏研究综述03-21
C语言课程教案09-10
关于描写雪的作文07-03
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 步进电机
- 窗帘
- 图文
- 智能
- 设计
- 2018届中考语文第一轮复习第四部分古诗文阅读第二章第2讲文言句读和翻译练习
- 常见污水处理术语
- 南海区推进村改居工作实施方案
- 异灵耽美文
- 南方电网作业现场违章扣分管理办法 - 图文
- 研究生政治考试试题及答案
- 郑州大学大学生创业扶持项目资金管理办法(试行)
- 工程经济学大作业
- 深度解析新政策下全日制与非全日制硕士
- 2014上海奉贤区高三数学(文理合卷)二模试题(附答案)
- SAP CRM系统TPM配置20121102 - 图文
- 专题《高考物理实验复习》
- 西北大学长安校区校园雨水资源化利用方案研究
- 楼宇智能控制
- 形成完整基础软件体系
- 最新高中物理-闭合电路欧姆定律教案
- 电力拖动自动控制系统期末复习题
- 集体备课活动记录之口语交际
- 从校外教育的角度刍议校内外教育的有效衔接
- 南京大学计算机系刘向阳(Alex X. Liu)教授网络与安全教研室2016年硕士博士及博士后招生广告