当前位置:
文档之家› 基于51单片机的照明控制系统
基于51单片机的照明控制系统
2. 系统功能描述
八盏灯依次点亮,即每按下一次开关就点亮一盏灯,八盏灯全亮后,重 复操作。该系统可以自动根据光照强度,实现自动开关灯。
3. 设计达到目标
用一个开关就能控制八盏灯,提高工作效率。光控开关灯,节约能源, 减低人力资源消耗。
二、系统硬件设计 1. 硬件设计方案
本设计采用的单片机是 AT89C52,A/D 转换芯片为 ADC0804。
按键开关控制灯用到了外部中断和 Switch-case 语句。 当有按键按下时,中断开启,局部变量 flag+1。中断返回后,由 Switch-case 语句根据 flag 的值来控制灯的开关。
四、设计调试及结果分析 图 4-1 为刚开始运行的结果
图 4-1 光控结果 当光敏值大于一定值(本次设定为 231)时,灯 D10 亮。如下图 4-2-1
广西科技大学
课程设计报告
课程名称 单片机 C 语言应用程序设计
题目名称 基于单片机的照明控制系统
学生学院 电气与信息工程学院
专业班级
测控 121
学生学号
201200304002
学生姓名
黄诚文
2015 年 7 月 13 日
一、设计项目简介 1. 设计意义及目的
随着经济的发展和科技的进步,人们对照明器具节能和科学管理提出了 更高的要求,使得智能照明控制的地位越来越重要。传统的照明模式,只能是人 工操作,不灵活,费时费力。而采用智能照明控制系统后,可以根据不同场合, 对时间段和工作模式进行划分,把不必要的照明灯具关掉,在需要时自动开启。 利用自然光,在保证必要照明的同时,有效减少了灯具的工作时间,节省了不必 要的能源开支,也延长了灯具的寿命。在一般情况下,不需要用户的参与,照明 控制系统自动实现开关功能大大减少了人们的管理工作。因此在照明推广智能照 明系统具有重要的意义。
五、结束语 通过这次课程设计,让我更加深刻了解课本知识,和以往对知识的疏忽得
以补充,在设计过程中遇到一些模糊的公式和专业用语,在使用手册时,有的数 据很难查出,但是这些问题经过这次设计,都一一得以解决,我相信这本书中还 有很多我为搞清楚的问题,但是这次的课程设计给我相当的基础知识,为我以后 工作打下了严实的基础。 虽然这次课程是那么短暂的 2 周时间,我感觉到这些 天我的所学胜过我这一学期所学,这次任务原则上是设计,其实就是一次大的作 业,是让我对课本知识的巩固和对基本公式的熟悉和应用,计算机软件使用和 C 语言编程过程中的那些困难,使我做事的耐心和仔细程度得以提高。课程设计是 培训学生运用本专业所学的理论知识和专业知识来分析解决实际问题的重要教 学环节,是对三年所学知识的复习和巩固。同样,也促使了同学们的相互探讨, 相互学习。因此,我们必须认真、谨慎、踏实、一步一步的完成设计。如果时间 可以重来,我可能会认真的去学习和研究,也可能会自己独立的完成一个项目, 我相信无论是谁看到自己做出的成果时心里一定会很兴奋。此次设计让我明白了 一个很深刻的道理:团队精神固然很重要,但人往往还是要靠自己的努力,自己 亲身去经历,这样自己的心里才会踏实,学到的东西才会更多。 六、附录
光敏电阻
A/D 转换电路
AT89C52
手动开关
光控 LED
手控 LED
图 2-1 系统硬件总述图
STC89C52 单片机简介 STC89C52 是 51 系 列 单 片 机 的 一 个 型 号 , 它 是 STCMEL 公 司 生 产
的。 STC89C52 是一个低电压,高性能 CMOS 8 位单片机,片内含 8k bytes 的可 反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器(RAM), 器件采用 STCMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器和 Flash 存储单元,功能强大的 STC89C52 单片机可为您提供许多较复杂系统控制应用场合。 STC89C52 有 40 个引脚, 32 个外部双向输入/输出(I/O)端口,同时内含 2 个外中断口,3 个 16 位可编 程定时计数器,2 个全双工串行通信口,2 个读写口线,STC89C52 可以按照常规 方法进行编程,但不可以在线编程(S 系列的才支持在线编程)。其将通用的微处理 器和 Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低 开发成本。 STC89C52 有 PDIP、PQFP/TQFP 及 PLCC 等三种封装形式,以适应 不同产品的需求。
ADC0804 芯片 集成 A/D 转换器品种繁多,选用时应综合考虑各种因素选取集成芯片。一般逐次比较
型 A/D 转换器用的比较多,ADC0804 就是这类单片集成 A/D 转换器。ADC0804 是一款 8 位、单通道、低价格 A/D 转换器,主要特点是:模数转换时间大约 100us;方便 TTL 或 CMOS 标准接口;可以满足差分电压输入;具有参考电压输入端;内含时钟发生器;单电源工作时 (0~5)V 输入电压范围是 0~5V;不需要调零等等。ADC0804 是一款早期的 AD 转换器, 因其价格低廉而在要求不高的场合得到广泛应用。
开始 A/D 初 始 化
中断 延时
外部中断初始化
检测是否有按
N
键按下?
环境光检测
光线
Y
足
够?
N
灯亮
等 待 中 断
Switch-case
灯亮
ห้องสมุดไป่ตู้
Y N
检测按键是否释放
Y
Flag 加 1
中断返回
程序设计说明
光敏开关控制主要是由环境光的强弱来决定,当光照强度大时,光敏电阻阻 值下降,分压下降,当其值小于设定值时,灯灭;当其值大于设定值时,环境光 弱,则灯亮。
图 2-4
下图 2-5 为硬件整体连接图
图 2-5 3. 电路 PCB 图设计及说明 首先生成 PCB,然后拖动,如图 2-6
图 2-6
然后设置双层自动布线并适当改动,然后放置走线。图 2-7 为最后改动结果
三、系统软件设计 1. 软件设计方案
照明控制系统
图 2-7
手
光
动
强
控
控
制
制
2. 软件设计框图(流程图)及说明
1. 电路原理图整体绘制图
2. 电路 PCB 图整体绘制图
3. 相关程序代码 #include<reg52.h> #include<intrins.h> sbit cs=P3^0; sbit wr=P3^2; sbit rd=P3^1; sbit deng=P3^4; sbit key=P3^3; unsigned char flag; void delayms(unsigned int xms) {
图 4-2-1 当小于此值时,灯灭,如图 4-2-2
图 4-2-2
按键开关控制结果 每按一次按键亮一盏灯,直到八盏灯全亮。 下图 4-3 为按一次按键的结果
图 4-3
下图 4-4 为连续按 5 次按键的结果 图 4-4
下图 4-5 为连续按 8 次按键的结果
图 4-5
此时再按一次按键所有灯灭,重复操作。
switch (flag)
{
case 0:P2=0xff;break;
case 1:P2=0xfe;break; //1111 1110
case 2:P2=0xfc;break;
case 3:P2=0xf8;break;
case 4:P2=0xf0;break;
case 5:P2=0xe0;break;
case 6:P2=0xc0;break;
case 7:P2=0x80;break; //1000 0000
case 8:P2=0x00;break;
case 9:P2=0xfe;flag=0;break;
}
b=read_adc0804();
if(b<100)
//213
deng=0;
else
deng=1;
unsigned int i,j; for(i=xms;i>0;i--)
for(j=110;j>0;j--); } read_adc0804() {
unsigned char a; cs=1; wr=1; cs=0; _nop_(); wr=0; _nop_(); wr=1; delayms(1); P1=0xff; rd=1; _nop_(); rd=0; _nop_(); a=P1; rd=1; return a; } void main() { unsigned char b; EA=1; EX1=1; IT1=1; while(1) {
}
}
void duan(void) interrupt 2
{
delayms(10);
if(key==0)
{
flag++;
}
while(!key);
}
要求在第四点中,给出仿真设计电路、仿真结果以及相关说明分析;做实物
的同学给出调试实物、结果图片以及相关说明分析。
2. 系统电路原理图设计及说明
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可 以工作的系统。对 51 系列单片机来说,最小系统一般应该包括:单片机、晶振电 路、复位电路。 下图 2-2 为单片机最小系统
图 2-2
下图 2-4 为 ADC0804 经典电路连接
图 2-3 下图 2-2 为 ADC0804 与 89C52 的连接