基于单片机的LED调光灯PID亮度控制_第1页
基于单片机的LED调光灯PID亮度控制_第2页
基于单片机的LED调光灯PID亮度控制_第3页
基于单片机的LED调光灯PID亮度控制_第4页
基于单片机的LED调光灯PID亮度控制_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计说明书 题 目: LED 调光灯亮度控制 院 (系): 电子工程与自动化学院 专 业: 学生姓名: 学 号: 指导教师: 2011 年 9 月 日 摘 要 亮度是工业中非常关键的一项物理量,在农业 ,现代科学研究和各种高新技术的开发和研究中也是一个非常普遍和常用的测量参数。亮度自动控制的原理主要是:将随亮度变化而变化的物理参数,通过光传感器转变成电的或其他信号,传给处理电路,最后转换成亮度数值显示出来。目前最具发展前景的灯光调节是加入自动控制原理,通过自动控制系统,按照给定参数对对象的反馈信息进行调节,从而满足工农业生产的需求。 本文介绍了以 处理芯片 STC1205A08S2为 核心 器件的亮度控制系统。 STC1205A08S2 是宏晶 以 公司研制的 51内核为主的系列单片机 , 这个芯片设计的时候就吸取其它 51系 列单片很容易被解密的教训,改进了加密机制 。 关键词 : 亮度控制; STC1205A08S2 ; Abstract Brightness is in the industry is the key of a physical quantity, in agriculture, modern scientific research and high technology research and development is also a very common and commonly measured parameters. Automatic brightness control principle is: With the brightness change of the physical parameters, the optical sensor into electrical or other signal, transmitted to the processing circuit, finally converted into brightness value is displayed. At present the most promising light adjustment is added to the theory of automatic control, the automatic control system, according to the given parameters of the feedback information to adjust, to meet the needs of industrial and agricultural production. This paper introduces the processing chip STC1205A08S2 as the core component of the brightness control system. STC1205A08S2 is Hong Jing to the company developed the 51 kernel series consisting mainly of single chip, the chip design when they absorb other 51 series monolithic easily decrypted lessons, improved the encryption mechanism. Keywords: T Brightness control ; STC1205A08S2 引言 . - 1 - 1 课程设计概述 . - 1 - 1.1 课程设计题目 . - 1 - 1.2 主要仪器设备 . - 1 - 2 硬件设计 . - 2 - 2.1 单片机部分 . - 2 - 2.2 亮度反馈部分 . - 2 - 2.3 按键部分 . - 3 - 2.4 串口下载部分 . - 3 - 2.4 LED 执行部件 . - 3 - 3 软件设计 . - 4 - 3.1 流程图设计 . - 4 - 4 系统调试 . - 4 - 4.1 LED 执行部分调试 . - 4 - 4.2 串口下载部分 调试 . - 4 - 4.3 LED 显示 部分调试 . - 4 - 4.4 按键部分调试 . - 4 - 4 .5 系统调试 . - 5 - 5 总结 . - 5 - 5.1 课程设计的过程 . - 5 - 5.2 解决问题 . - 5 - 5.3 心得体会 . - 5 - 参考文献 . - 5 - 附 录 . - 6 - - 1 - 引言 调光灯亮度 作为 一项 光 工参数 ,在工业现场和过程控制中具有至关重要的作用。因而 ,各种以 光敏 作为传感器的 光敏电阻和光敏二极管 普遍使用。本文介绍一种 以光敏电阻 和数据 处理 芯片 STC 构成 的灯光亮度 自动 控制 系统 。 1 课程设计 概述 1.1 课 程设计题目 设计 LED 线性驱动电路和光敏管进行亮度测量电路,再用单片机设计控制器输出PWM,调节 LED 驱动功率,实现亮度的自动控制,通过键盘进行亮度设置,实际亮度可以实时显示。 要求: 1、实现亮度可调; 2、控制精度 1%( 50m); 3、实现亮度闭环反馈控制。 *附加要求:通过 RS232 或 RS485 接口与 PC 机通信,在 PC 机上进行参数显示和设置。 图 1-1 温度控制系统的基本组成 1.2 主要仪器设备 示波器( YB4328D) 1 台 直流稳压电源( DF1731SC3A) 1 台 数字万用表 1 块 PC 机 1 台 测 光 敏感元件 1 个 传感器 单片机系统 灯亮 键盘 显示数码管 - 2 - 2 硬件设计 整个系统以 芯片 STC1205A08S2 为核心部件。 在 STC 最小系统外围添加了 串口下载部分、亮 度 测量部分 、键盘输入部分 和 LCD 显示部分 构成的执行部件 。 2.1 单片机部分 本设计选择的单片机芯片是 STC1205A08S2,其原理图如 2-1 所示。该芯片的 P2.0-3用作键盘数字量输入,为了防止干扰使键盘处于低电平,加入了上拉电阻时按键未按下时始终处于高电平状态; P1.0 作为 光敏电阻反馈数据 输入端口; P0 口显示数据输出到 LCD1602 显示; P1.4 作为 PWM 输出端口 。 图 2-1 STC 控制 系统原理图 2.2 亮度反馈 部分 如图 2-2 所 示 ,图中 RF 为光敏电阻,它可更加接收到的 LED 灯光的亮度改变自身阻值。LED 灯变亮,其阻值越小;反之, LED 灯越亮,其阻值也越大。 图 2-2 亮度反馈原理图 - 3 - 2.3 按键部分 如图 2-3 所示,通过按键可以增大、减小 LED 灯的给定值。给定值的不同,其亮度也不同。通过按键可把 LED 灯调节到合适的亮度。 图 2-3 按键原理图 2.4 串口下载部分 通过下图 2-4 串口下载电路,可以将程序从 PC 机直接下载到板子上的 STC 中,比较方便。 图 2-4 串口下载电路原理图 2.4 LED 执行部件 如下图 2-3 所示, P1.4 输出 PWM 输出控制信号。,根据输出电压占空比不同,灯的亮度也不一样。占空比越大,说明输出电压越大,灯就越亮;反之,占空比越小,即说明输出电压越小,灯就越暗。 - 4 - 图 2-4 LED 执行部件原理图 3 软件设计 3.1 流程图设计 控制现场主程序流程图设计如图 3-1 所示 。 图 3-1 程序流程图 4 系统调试 4.1 LED 执行 部分 调试 装好元件, 接通电源,观察 LED 是否发光。若发光,说明 LED 部分连接正确;若不发光,则说明此部分线路连接有问题 ,应该 用万用便 检查 STC 第五脚,其电压应在 0-5V;还要检查三极管三个脚是否连接正确。 4.2 串口下载部分 调试 把编好的程序通过次串口下载到 STC,若可以下载,则说明此部分连线正确;若不能下载,则检查 RS232 各脚电压是否正常。 4.3 LED 显示部分 调试 将一个正确的显示程序下载到单片机,观察 LCD 是否按要求显示。若按要求显示,说明此部分可以正常工作;若不能显示,则先检查显示器的好坏,其次检查 其各脚的连接是否正确。 4.4 按键部分 调试 按下按键,观察 LED 灯亮度是否有变化,若按要求变化,说明此部分正常工作;若不按要求变开始 LCD1602 和 AD 初始化 PWM 控制 LCD1602 显示 按键按下 - 5 - 化,则应先检查有关按键部分程序是否书写正确,其次检查按键与 STC 的线路连接情况是否正确。 4 .5 系统调试 各个部分的调试完成以后,还需要对整个系统进行调试。 5 总结 5.1 课程设计的过程 首先在老师给我们上课的时候要认真听讲,做好笔记,了解 PI 控制和 PWM 控制,然后去图书馆和网上找相关资料,再找同学商量,交换意见,一起做好仿真。做好前面的事情后就可以做板子写程序 了,对我们来说这是个比较大的工程,要有耐心和恒心。 5.2 解决问题 我们遇到的比较困难的问题基本上都是调试的问题。板子做好以后,下载了程序问题就来了,板子没有反应。这时候,我们不应该着急,要先检查板子上个焊点都是没有虚焊和漏焊的,然后检查是否有线短路,最后就是调试程序了。调试程序要分模块来调,根据程序流程图把每个模块都调试好,在总的调试就可以了。 5.3 心得体会 课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程 。 ”千里之行始于足下 ”。 通过这次课程 设计,我深深体会到这句千古名言的真正含义 。 我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础 。 通过课程设计,使我深深体会到,干任何事都必须耐心,细致 ,以为任何的一个小错误都有可能让我们懊恼一天, 我不禁时刻提示自己,一定 要 养成一种高 度负责,认真对待的良好习惯 。 短短三周是课程设计,使我发现了自己所掌握的知识是真正如此的缺乏,自己综合应用所学的专业知识能力是如此的不足,几年来的学习了那么多的课程,今天才知道自己并不会用 , 想到这里, 我才明白学以致用不是一句简单的话,实 践才是真理。 最后,我要感谢我的老师们, 感谢你们的帮助,感谢你们的支持。 参考文献 1 马忠梅 ,马 岩 ,张 凯 ,等 . 单片机的 C 语言应用程序设计 M . 北京 :北京航空航天大学出版社 ,1997. 2 谭浩强 C 程序设计 M . 北京 :清华大学出版社 ,1991 3 高海生 ,杨文焕 .单片机应用技术大全 M.西南交通大学出版社, 1999-06. 4 徐爱钧 彭秀华 .单片机高级 C51 应用程序设计 M.北京:中国计量出版社, 2001. 5 马盅梅 .单片机的 C 语言应用程 序设计 M.北京:北京航空航天大学出版社 2003. - 6 - 附 录 主要电路 PCB: 实物正面图 实物正面图 - 7 - 实物反面图 实物反面图 电路原理图 电路原理图 现场 ADuC512 程序 /*/ #include reg51.h #include intrins.h - 8 - #include LCD1602.H #define FOSC 24058052L #define BAUD 9600 sbit button1=P22; /按键 -减小亮度 sbit button2=P21; /按键 -增大亮度 sbit button3=P20 ; /按键 -确认 typedef unsigned char BYTE; typedef unsigned int WORD; WORD exp=300; BYTE REV=0; /*AD*/ /*Declare SFR associated with the ADC */ BYTE ch = 0; /ADC channel NO. sfr ADC_CONTR = 0xBC; /ADC control register sfr ADC_RES = 0xBD; /ADC hight 8-bit result register sfr ADC_LOW2 = 0xBE; /ADC low 2-bit result register sfr P1ASF = 0x9D; /P1 secondary function control register /*Define ADC operation const for ADC_CONTR*/ #define ADC_POWER 0x80 /ADC power control bit #define ADC_FLAG 0x10 /ADC complete flag #define ADC_START 0x08 /ADC start control bit #define ADC_SPEEDLL 0x00 /540 clocks #define ADC_SPEEDL 0x20 /360 clocks #define ADC_SPEEDH 0x40 /180 clocks #define ADC_SPEEDHH 0x60 /90 clocks/*- Get ADC result -*/ WORD GetADCResult(BYTE ch) - 9 - WORD ADC_R; ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START; _nop_(); /Must wait before inquiry _nop_(); _nop_(); _nop_(); while (!(ADC_CONTR & ADC_FLAG); /Wait complete flag ADC_CONTR &= ADC_FLAG; /Close ADC ADC_R=ADC_RES*4+ADC_LOW2; /Return ADC result return ADC_R; /*平均值 */ WORD GetADCResult_P() WORD ADC_RP=GetADCResult(0); BYTE i; for(i=0;i10;i+) ADC_RP=(ADC_RP+GetADCResult(0)/2; ADC_RP=ADC_RP*0.48828; return ADC_RP; /*- Initial ADC sfr -*/ void InitADC() /P1ASF = 0xff; ADC_RES = 0; ADC_CONTR = ADC_POWER | ADC_SPEEDLL; Delay(2); /*- showADC() - 10 - -*/ void showADC(WORD j,BYTE x) BYTE i,a3,k=7; for(i=0;i模糊值 WORD r; r=GetADCResult_P(); if(r0xf4) CCAP0H=0xf4; /*- Initial UART -*/ void InitUart() SCON = 0x5a; PCON=0x80; /8 bit data ,no parity bit TMOD = 0x20; /T1 as 8-bit auto reload TH1 = TL1 = -13; /Set Uart baudrate TR1 = 1; /T1 start running /*- Send one byte data to PC Input: dat (UART data) Output:- -*/ void SendData(BYTE dat) while (!TI); /Wait for the previous data is sen TI = 0; /Clear TI flag SBUF = dat; /Send current data /*- - 12 - Send a string to UART Input: s (address of string) Output:None -*/ void SendString(char *s) while (*s) SendData(*s+); /*- -main()- -*/ void main() BYTE stp=5,ii,tab3; InitUart(); InitADC(); init_LCD(); gotoxy(1,0); display_LCD_string( exp: stp: ); gotoxy

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论