创意流水灯设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CHANGZHOU INSTITUTE OF TECHNOLOGY

设计说明书

项目名称:创意流水灯设计

二级学院:电气与光电工程学院

专业:电气工程与自动化班级:

学生姓名:学号:

指导教师:职称:

时间: 2016年10月14日—2017年1月19日

目录

1、设计内容和要求 (3)

2、系统总体结构 (3)

3、硬件设计 (4)

单片机最小系统 (4)

芯片与输入输出设备的连接 (4)

4、软件设计 (5)

总体分析与编程思路 (5)

主程序与按键处理程序 (5)

流水灯效果程序 (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)口上。系统总体结构如图

3、硬件设计

单片机最小系统

本课题选择的51 单片机是ATMEL 公司89C52 芯片,封装形式为DIP40。除在VCC(40 引脚)提供5V 电源、GND(20 引脚)接地外,要构成最小系统,须提供振荡输入与上电复位电路(见图)。XTAL1 与XTAL2 为片内振荡电路输入线,连接2 只22pF 微调电容与石英晶振,这里选择的振荡频率为12MHz,石英晶振起振后,在XTAL2 线上输出一个3V 左右的正弦波,片内OSC 电路按晶振同频产生自激振荡。在RST 线上连接10uF 电容C1 与10K 分压电阻R9,电容正极连接电源,电阻接地,上电后芯片复位,将PC 存储器清0。

图 AT89C52 最小系统

芯片与输入输出设备的连接

由于AT89C52 的I/O 口可以提供20mA 电流,足以驱动LED,因此只须把16 只LED 分别连接在AT89C52 的一个P0,P2 口上,将4个按键连接在P3(0-3)口上即可。为了起到限流作用,在LED 与电源回路中串接200 欧的电阻。该课题的电气原理图,见附件2。

4、软件设计

总体分析与编程思路

该设计分为主程序、各效果程序以及按键处理程序,由于需要在LED 灯亮的同时响应按键输入,因此使用一定时器T1,每50MS 扫描P3口一次,读取输入的按键值,再进行相应的变化操作。

主程序和按键处理程序

主程序主要负责为各变量赋初值,设置并开启定时器,根据效果号调用效果程序,其流程图如图4-1。

图4-1主程序流程图

图4-2 T1中断流程图

T1中断程序主要用来处理按键输入,每50MS 扫描P3口一次,读取按键值,并根据键值修改效果号,其流程图如图4-2。

流水灯效果程序

流水灯效果主要思路是通过循环更改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]单片机教程网百度百科

附件1.元件清单

附件 2.硬件原理图

附件3.程序清单

#include <>

#include <>

#define uchar unsigned char

uchar i,j,k,t,n,s;

void single_cycle(void);

void comp_cycle(void);

void shine_cycle(void);

void delay_10us(void);

void delay_1ms(void);

void delay_200ms(void);

void getkeyvalue(void);

void main(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-熄灭

{

case 1: single_cycle();break;

case 2: comp_cycle();break;

case 3: shine_cycle();break;

case 4: P0=0xff; P2=0xff;break;

}

}

}

void single_cycle(void) //单灯效果程序

{

P0=0xfe;

P2=0xff;

for (k=0;k<7;k++)

{

delay_200ms();

P0=~((~P0)<<1);

}

相关文档
最新文档