创意流水灯设计.docx
- 文档编号:26546941
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:16
- 大小:598.90KB
创意流水灯设计.docx
《创意流水灯设计.docx》由会员分享,可在线阅读,更多相关《创意流水灯设计.docx(16页珍藏版)》请在冰豆网上搜索。
创意流水灯设计
CHANGZHOUINSTITUTEOFTECHNOLOGY
设计说明书
项目名称:
创意流水灯设计
二级学院:
电气与光电工程学院
专业:
电气工程与自动化
班级:
学生姓名:
学号:
指导教师:
职称:
时间:
2016年10月14日—2017年1月19日
1、设计内容和要求………………………………………………………3
2、系统总体结构…………………………………………………………3
3、硬件设计………………………………………………………………4
3.1单片机最小系统…………………………………………………4
3.2芯片与输入输出设备的连接……………………………………4
4、软件设计………………………………………………………………5
4.1总体分析与编程思路……………………………………………5
4.2主程序与按键处理程序…………………………………………5
4.3流水灯效果程序…………………………………………………5
5、系统调试………………………………………………………………5
6、设计小结………………………………………………………………7
7、参考文献………………………………………………………………8
附录1.元件清单……………………………………………………………8
附录2.硬件原理图………………………………………………………8
附录3.程序清单…………………………………………………………9
1、设计内容和要求
单片机应用系统在工业控制,生产自动化、机电一体化等领域有着广泛的应用。
上学期较系统的学习了51单片机的基础知识,本学期主要围绕课题进行了实践训练。
本课题选择了一心形LED效果进行创意设计。
要求通过按键控制,实现流水灯三种不同的闪烁方法
(1)按1键,单灯循环
(2)按2键,依次亮起再依次熄灭
(3)按3键,渐明渐暗
(4)按4键,关闭
2、系统总体结构
由于51单片机I/O口可以提供20mA电流,足以驱动LED,因此只要构成最小系统即可,LED共16只接在P0口与P2口上,四个按键接在P3(0-3)口上。
系统总体结构如图2.1
3、硬件设计
3.1单片机最小系统
本课题选择的51单片机是ATMEL公司89C52芯片,封装形式为DIP40。
除在VCC(40引脚)提供5V电源、GND(20引脚)接地外,要构成最小系统,须提供振荡输入与上电复位电路(见图3.1)。
XTAL1与XTAL2为片内振荡电路输入线,连接2只22pF微调电容与石英晶振,这里选择的振荡频率为12MHz,石英晶振起振后,在XTAL2线上输出一个3V左右的正弦波,片内OSC电路按晶振同频产生自激振荡。
在RST线上连接10uF电容C1与10K分压电阻R9,电容正极连接电源,电阻接地,上电后芯片复位,将PC存储器清0。
图3.1AT89C52最小系统
3.2芯片与输入输出设备的连接
由于AT89C52的I/O口可以提供20mA电流,足以驱动LED,因此只须把16只LED分别连接在AT89C52的一个P0,P2口上,将4个按键连接在P3(0-3)口上即可。
为了起到限流作用,在LED与电源回路中串接200欧的电阻。
该课题的电气原理图,见附件2。
4、软件设计
4.1总体分析与编程思路
该设计分为主程序、各效果程序以及按键处理程序,由于需要在LED灯亮的同时响应按键输入,因此使用一定时器T1,每50MS扫描P3口一次,读取输入的按键值,再进行相应的变化操作。
4.2主程序和按键处理程序
主程序主要负责为各变量赋初值,设置并开启定时器,根据效果号调用效果程序,其流程图如图4-1。
图4-1主程序流程图
图4-2T1中断流程图
T1中断程序主要用来处理按键输入,每50MS扫描P3口一次,读取按键值,并根据键值修改效果号,其流程图如图4-2。
4.3流水灯效果程序
流水灯效果主要思路是通过循环更改P0口与P2口的电平值(低亮高灭)来点亮和熄灭接在这些口上的流水灯,如单灯循环是将P0与P2口单个口的电平改为低电平,顺序点亮与熄灭是是将P0与P2一个一个口电平依次的改为低电平或高电平,而渐明渐暗是以MS为单位,改变P0口与P2口电平高低的时间(即PWM),来达到效果。
具体见程序清单。
5、系统调试
程序编写完成后,经过排错、编译,生成相对应的编译结果文件(hex
文件),在Proteus7中搭建好电路,将hex文件送入AT89C52芯片中进行模
拟,运行结果如下图5-1至5-3。
在模拟成功的情况下,试做实物如图5-4,调试成功
图5-1单灯循环运行效果
图5-2依次亮依次灭运行效果
图5-3渐亮渐暗运行效果
图5-4实物图
6、设计小结
经过将近一个星期的课程设计,创意LED灯设计基本完成,系统功能基本实现,测试运行也基本正常。
这个课题让我对51单片机I/O口控制、定时器、PWM等知识有了更深的认识。
当然这个系统还存在许多有待完善的地方:
功能相对较少,界面设计得不够精致完美。
通过本次课程设计,我更深刻的认识到:
单片机基础知识要熟练掌握;要充分利用网络这个大的资料库;对待任何事情都要有耐心和恒心,遇到问题要冷静地思考,积极找出症结所在,逐个解决。
7、参考文献
[1]李丽荣,张常全,郑建红.51单片机应用设计[M].北京:
北京理工
大学出版社,2012
[2]王建,宋永昌.88例学会51单片机[M].北京:
中国电力出版社,
2014
[3]张义和等.例说51单片机:
C语言版[M].北京:
人民邮电出版社,
2010
[4]张齐,朱宁西.单片机应用系统设计技术—基于C51的Proteus仿真(第
3版)[M].北京:
电子工业出版社,2013
[5]许维蓥,郑荣焕.proteus电子电路设计及仿真[M].北京:
电子工
业出版社,2014
[6]单片机教程网
[7]XX百科
附件1.元件清单
序号
名称
型号、参数
备注
数量
1
CPU
AT89C52
DIP40封装
1
2
管座
DIP-40
1
3
晶振
11.0592MHz
1
4
元片电容
22pf
2
5
电解电容
10uf/16V
1
6
接线端子
XH2.54-4P2.54mm
10
7
电阻
10K/0.25W
金属膜1/4W
1
8
排阻
A10-103或A09-103
直插
2
9
单排排针
直针1*402.54mm
2
10
双排排针
直针2*402.54mm
1
11
LED
16
附件2.硬件原理图
附件3.程序清单
#include
#include
#defineucharunsignedchar
uchari,j,k,t,n,s;
voidsingle_cycle(void);
voidcomp_cycle(void);
voidshine_cycle(void);
voiddelay_10us(void);
voiddelay_1ms(void);
voiddelay_200ms(void);
voidgetkeyvalue(void);
voidmain(void)
{
P3=0xff;
s=1;//效果号,初始值1为单灯循环
EA=1;//总中断允许
TMOD=0x11;//定时器T0,T1均工作在1模式下
ET1=1;//T1允许
TH1=(65536-9216*5)/256;//T1装初值
TL1=(65536-9216*5)%256;
TR1=1;//T1打开
while
(1)//主循环
{
switch(s)//判断效果号1-单灯2-顺序3-明暗4-熄灭
{
case1:
single_cycle();break;
case2:
comp_cycle();break;
case3:
shine_cycle();break;
case4:
P0=0xff;P2=0xff;break;
}
}
}
voidsingle_cycle(void)//单灯效果程序
{
P0=0xfe;
P2=0xff;
for(k=0;k<7;k++)
{
delay_200ms();
P0=~((~P0)<<1);
}
P0=0x7f;
delay_200ms();
P0=0xff;
P2=0xfe;
for(k=0;k<7;k++)
{
delay_200ms();
P2=~((~P2)<<1);
}
P2=0x7f;
delay_200ms();
}
voidcomp_cycle(void)//顺序点亮再熄灭效果程序
{
P0=0xfe;
for(k=0;k<7;k++)
{
delay_200ms();
P0=P0&(P0<<1);
}
P0=0x00;
delay_200ms();
P2=0xfe;
for(k=0;k<7;k++)
{
delay_200ms();
P2=P2&(P2<<1);
}
P2=0x00;
delay_200ms();
P0=0x01;
for(k=0;k<7;k++)
{
delay_200ms();
P0=P0|(P0<<1);
}
P0=0xff;
delay_200ms();
P2=0x01;
for(k=0;k<7;k++)
{
delay_200ms();
P2=P2|(P2<<1);
}
P2=0xff;
delay_200ms();
}
voidshine_cycle(void)//渐明渐暗效果程序
{
k=1;
while(k<=5)
{
for(n=0;n<200;n++)
{
P0=0x00;
P2=0x00;
for(t=0;t P0=0xff; P2=0xff; for(t=0;t<5-k;t++)delay_1ms(); } k++; } k=5; while(k>0) { for(n=0;n<200;n++) { P0=0x00; P2=0x00; for(t=5;t>k;t--)delay_1ms(); P0=0xff; P2=0xff; for(t=5-k;t>0;t--)delay_1ms(); } k--; } } voiddelay_10us(void)//10US延时程序 { _nop_(); _nop_(); _nop_(); _nop_(); } voiddelay_1ms(void)//1MS延时程序 { for(i=0;i<100;i++)delay_10us(); } voiddelay_200ms(void) { for(j=0;j<200;j++)delay_1ms(); } voidInterrupt_time1(void)interrupt3//定时器1每隔50MS扫描键盘一次 { EA=0; TR1=0; TH1=(65536-9216*5)/256;//重装定时器 TL1=(65536-9216*5)%256; EA=1; TR1=1; getkeyvalue();//取键值 } voidgetkeyvalue(void)//读取键值函数,判别P3口值并更改效果号 { uchark_code; k_code=P3; if(k_code! =0xff) { switch(k_code) { case0xfe: s=1;break; case0xfd: s=2;break; case0xfb: s=3;break; case0xf7: s=4;break; } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 创意 流水 设计