目录1.引言 (1)2.系统总体设计方案 (1)2.1 设计思路 (1)2.2 总体框图 (2)3.系统硬件设计 (2)3.1 总硬件原理图 (2)3.2 模块原理图 (3)3.2.1 光敏电阻电路 (3)3.2.2 电机驱动电路 (6)3.2.3单片机电路 (8)4.元件清单 (10)5.系统调试与测试结果 (10)5.1软件编程与调试 (10)5.2 硬件调试 (12)6.测试结果分析 (13)7.总结 (13)8.参考文献 (13)1.引言随着电子技术的飞速发展,微电子技术得到越来越多的应用,同时影响着人们生活工作的方方面面。
自动窗控制系统经历了从无到有,并逐步丰富功能和可靠性发展。
为了减少因光线过强引起的显示器显示模糊程度,解决人们经常手动操作闭合窗帘的烦恼, 在此,我设计出了“自动感光启闭办公百叶窗”,智能控制室内光线. 通过室外光敏电阻感受光强变化,单片机接收光敏电阻信号,从而驱动步进电机使百叶窗闭合和打开,调整进入室内的光线;当室内光线达到适宜时,室内光敏传感器向单片机发出信号,单片机控制步进电机停止转动。
这样使室内光线始终保持舒适宜人,让人们能够全神贯注地工作,解决了因窗帘开合,进入室内的光线过强或过弱给人们日常生活和工作带来的不便.本课设描述的就是一种可根据环境光强的百叶窗控制系统的实现原理和过程。
2.系统总体设计方案2.1 设计思路本次设计采用AT89C51单片机作为系统控制器,采用光敏电阻强弱转换为电信号的高低电平对现场光强弱的识别,并通过H桥式电路来驱动直流电机,在通过电机的转动来控制窗帘的转动。
图2—1 系统总体框3.系统硬件设计3.1 总硬件原理图图3—1 总硬件原理3.2.1 光敏电阻电路光敏电路中通过改变小灯离光敏电阻的距离来改变光照强弱,实现百叶窗的功能,如图3—2所示,小灯是可以上下变化的。
图3—2光敏电阻电路研究光敏电阻特性:(一)基本原理:①光线的作用下,电子吸收光子的能量从键合状态过渡到自由状态,引起电导率的变化,这种现象称为光电导效应。
②光电导效应是半导体材料的一种体效应。
光照愈强,器件自身的电阻愈小。
基于这种效应的光电器件称光敏电阻。
③光敏电阻无极性,其工作特性与入射光光强、波长和外加电压有关。
(二)需用器件与单元:主机箱、安装架、普通光源、各种滤光镜、光电器件模板、光敏电阻探头、照度计模板、光照度探头。
(三)测量实验步骤:(1)亮电阻和暗电阻测量①光敏电阻实验原理如图3—1图3—1光敏电阻实验②调节光敏电阻工作电压③亮电阻测试④暗电阻测试⑤实验结果分析:一般情况下,实用的光敏电阻的暗电阻往往超过1MΩ,甚至高达100MΩ,而亮电阻则在几kΩ以下,可见测量数据有效。
(2) 光照特性测试光敏电阻的工作电压一定时(5V),它的阻值(光电流)随光照度变化而变化。
按表3-2进行测量,作图3-2.。
分析:理论上,光敏电阻在弱光照下,光电流I与光照度E具有良好的线性;在强光照下则为非线性。
根据测试数据所画得的光照特性曲线较好地满足上述情况,说明实验操作准确。
(3) 伏安特性测试光敏电阻在一定的光照度下,光电流随外加电压的变化而变化①调节光源电压为100Lx时对应的电压值②调节光敏电阻工作电压的值读取相应的光电流③重复测试不同照度的伏安特性,将测量数据填入表3-3,并作图3-3。
分析:①由图3-3可知,在给定光照下,光敏电阻的阻值与外加电压无关,仅由光敏电阻本身性质决定,但是不同光照情况下的伏安特性具有不同的斜率,即光照强度不同,阻值不同。
②当光敏电阻承受的功率超过它本身的额定功率,曲线开始变弯,说明光电流趋向饱和。
(4) 光谱特性测试光敏电阻在一定的工作电压时,在等能量、不同波长的光作用下,其阻值的变化是不同的,即光电流大小不一样。
本实验光功率以1mW为标准,更换光源前端盖的滤光镜获得不同波长的光。
将测量数据填入表3-4,并作图3-4分析:光谱特性与光敏电阻材料有关。
从图3-4可知,本实验选用的光敏电阻的光谱响应范围在可见光区域,而峰值大概出现在600nm,在稍离此波长的光谱响应迅速衰减,在远离处则无响应。
因此,在选用光敏电阻时,应把光敏电阻的材料和光源种类相结合考虑,以获得满意的结果3.2.2 电机驱动电路通过H桥式电路来驱动直流电机,如图3—5图3—5 电机驱动电路(一)、H桥式电机驱动电路图3—6中所示为一个典型的直流电机控制电路。
电路得名于“H桥式驱动电路”是因为它的形状酷似字母H。
4个三极管组成H的4条垂直腿,而电机就是H中的横杠(注意:图3—6及随后的两个图都只是示意图,而不是完整的电路图,其中三极管的驱动电路没有画来。
图3—6 H桥式电机驱动电路如图所示,H桥式电机驱动电路包括4个三极管和一个电机。
要使电机运转,必须导通对角线上的一对三极管。
根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。
图3—6H桥式电机驱动电路,要使电机运转,必须使对角线上的一对三极管导通。
图3—6中H桥电路驱动电机顺时针转动例如图3—7所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经Q4回到电源负极。
按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。
当三极管Q1和Q4导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动(电机周围的箭头指示为顺时针方向)图3—7 电机顺时针转动图3—8中H桥电路驱动电机逆时针转动,图示为另一对三极管Q2和Q3导通的情况,电流将从右至左流过电机。
当三极管Q2和Q3导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动(电机周围的箭头表示为逆时针方向)。
图3—8 电机逆时针转动(二)、使能控制和方向逻辑驱动电机时,保证H桥上两个同侧的三极管不会同时导通非常重要。
如果三极管Q1和Q2同时导通,那么电流就会从正极穿过两个三极管直接回到负极。
此时,电路中除了三极管外没有其他任何负载,因此电路上的电流就可能达到最大值(该电流仅受电源性能限制)3.2.3单片机电路最小应用系统如图3—9图3—9 单片机最小应用系统① 51单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。
② 51单片机最小系统晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。
③ 51单片机最小系统起振电容C2、C3一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好④ P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。
其他接口内部有上拉电阻,作为输出口时不需外加上拉电阻。
设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。
计数值N乘以机器周期Tcy就是定时时间t。
设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。
在每个机器周期的S5P2期间采样T0、T1引脚电平。
当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。
由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。
当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2 ms⑤P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL 门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
⑥P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL 门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
⑦P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口:P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。
4.元件清单元件序号器件名称与型号主要参数数量(个)备注1 单片机(AT89C51)4Kb code,12MHz,2x16-bit Timer1 无2 光敏电阻(TORCH_LDR) 800K 1 灯泡距离电阻丝的远近表示光强弱3 三极管(TIP31.YIP32)无各6,2个无4 晶振(CRYSTAL) 12KHZ 1 无5 电阻(RES)10K,0.22K,1K,各9,1, 4个无6 电动机(MOTOR-DC) 12V、100mH 1 无7 开关(BUTTON.SW-SPDT)无 5 无8 集成运放(LM358)无 1 无9 电容(CAP-ELEC)30PF,10UF 各1,2个无5.系统调试与测试结果5.1软件编程与调试(1)主程序设计:#include<reg52.h>sbit p01=P0^1;sbit p05=P0^5;sbit p06=P0^6;sbit p07=P0^7;sbit p27=P2^6;sbit p28=P2^7;int main(void){while(1 ){if(p05==1){if(p01==1){p27=0;p28=1;}else{if(p01==0){ p27=1;p28=0;}else { p27=1;p28=1; } }}else if(p06==p07){p27=0;p28=0;}else{if(p06==1&&p07==0){p27=1;p28=0;}if(p06==0&&p07==1){p27=0;p28=1;}}}}(2)程序调试软件调试一般分为以下四个阶段:1、编写程序并查错;2、在kelic语言的编译系统中编译源程序3、对程序进行编译连接,并及时发现程序中存在的错误;4、改正错误。