单片机节日彩灯设计.docx

上传人:b****6 文档编号:5886084 上传时间:2023-01-01 格式:DOCX 页数:10 大小:169.70KB
下载 相关 举报
单片机节日彩灯设计.docx_第1页
第1页 / 共10页
单片机节日彩灯设计.docx_第2页
第2页 / 共10页
单片机节日彩灯设计.docx_第3页
第3页 / 共10页
单片机节日彩灯设计.docx_第4页
第4页 / 共10页
单片机节日彩灯设计.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

单片机节日彩灯设计.docx

《单片机节日彩灯设计.docx》由会员分享,可在线阅读,更多相关《单片机节日彩灯设计.docx(10页珍藏版)》请在冰豆网上搜索。

单片机节日彩灯设计.docx

单片机节日彩灯设计

石家庄铁道大学四方学院

集中实践报告书

 

课题名称

节日彩灯控制器设计

姓名

学号

系、部

电气工程系

专业班级

指导教师

 

2016年7月6日

一、设计任务及要求:

设计任务:

设计一个节日彩灯控制器

设计要求:

1.设计4个按键S0、S1、S2、S3,

S0—开始按此键则灯开始流动(由上而下);

S1—停止,按此键则停止流动,所有灯为暗;

S2—上,按此键则灯由上向下流动;

S3—下,按此键则灯由下向上流动。

2.由按键控制功能的流水灯,其中的LED采取共阳极接法,通过依次向连接LED的I/O口送出低电平,可实现题目要求的功能。

3.要求做出实物。

二、指导教师评语:

 

三、成绩

 

指导教师签名:

年月日

目录

第1章设计目的1

第2章设计要求1

第3章 硬件电路设计1

3.1 系统结构框图1

3.2 STC89C52单片机最小系统2

3.3 总电路图3

第4章 软件设计3

4.1 主程序设计3

4.2LED灯子程序设计5

4.3源程序6

第5章 结论8

参考文献9

第1章设计目的

1、掌握单片机实际系统的开发步骤。

2、熟悉节日彩灯控制器的工作原理。

3、加深对单片机汇编语言的认识和理解,并会编程。

第2章设计要求

1、设计4个按键S0、S1、S2、S3,

S0—开始按此键则灯开始流动(由上而下);

S1—停止,按此键则停止流动,所有灯为暗;

S2—上,按此键则灯由上向下流动;

S3—下,按此键则灯由下向上流动。

2、由按键控制功能的流水灯,其中的LED采取共阳极接法,通过依次向连接LED的I/O口送出低电平,可实现题目要求的功能。

3、要求做出实物。

第3章硬件电路设计

3.1系统结构框图

节日彩灯控制系统主要由单片机、LED显示器、开关及电源组成。

其结构框图如图3-1所示。

 

图3-1系统结构框图

3.2STC89C52单片机最小系统

单片机最小系统主要包括:

单片机、复位电路、晶振电路。

89C52共有四个八位的并行双向口,即有32根输入输出口线。

各口的每一位均由锁存器、输出驱动器和输入缓冲器组成。

STC89C52芯片有40个引脚,引脚图如图3-2所示,各引脚功能介绍如下:

 

图3-2STC89C52引脚图

VCC(40引脚):

电源电压。

VSS(20引脚):

接地。

P1端口(P1.0~P1.7,1~8引脚):

P1口是一个带内部上拉电阻的8位双向I/O口。

P1的输出缓冲器可驱动4个TTL负载。

对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。

P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。

P1口特点是输出锁存器,输出时没有条件。

输入缓冲,输入时有条件,即需要先将该口设为输入状态,先输出1。

此外,P1.0和P1.1是多功能的。

P1.0还可以作为定时器/计数器2的外部输入端T2。

P1.1还可以作为定时器/计数器2的外部控制端T2EX。

P3端口(P3.0~P3.7,10~17引脚):

P3是一个带内部上拉电阻的8位双向I/O端口。

P3的输出缓冲器可驱动4个TTL负载。

对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。

P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。

P3口除作为一般I/O口外,还有其他一些复用功能如下:

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,外部数据存储器读选通。

RST(9引脚):

复位输入。

当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。

ALE(30引脚):

地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。

XTAL1(19引脚):

振荡器反相放大器和内部时钟发生电路的输入端。

XTAL2(18引脚):

振荡器反相放大器的输入端

3.3总电路图

节日彩灯控制器的总电路图如图3-3所示。

 

图3-3总电路图

第4章软件设计

4.1主程序设计

没有任何按键按下时,8个LED灯均呈现灭灯的状态,并一直在等待按键。

按下Key1键后,8个LED灯自上而下循环流动,检测有没有按下停止键即Key2,若按下停止键则立即停止流动,否则检测是否按下Key3和Key4,若都没有按下则灯继续保持原先的状态流动。

当Key3被按下,灯自下而上流动,同样也要检测是否按下Key2,按下则停止,否则继续自下而上流动。

同理,当Key4被按下时,灯自上而下流动,如果按下Key2,按下则停止,否则继续自上而下流动。

当既按下Key3又按下Key4则灯自上而下,后自下而上流动。

主程序流程图如图4-1所示。

 

图4-1主程序流程图

4.2LED灯子程序设计

在本设计中的LED灯的流动有两个方向,分别为自上而下和自下而上,首先赋初值,取表中的数,将数值给P1口,并延时输出,满足条件则自动加一或减一。

因而得到流程图为图4-2所示。

 

图4-2LED灯子程序流程图

4.3源程序

#include

#defineuintunsignedint

#defineucharunsignedchar

voidsan();

voidwu();

voiddelay(uint);

sbitkey2=P3^5;//关闭彩灯的开关

sbitkey1=P3^4;//启动彩灯的开关

sbitkey3=P3^3;//控制彩灯右移的开关

sbitkey4=P3^1;//控制彩灯左移的开关

uchartemp;//定义一个无符号字符型数据变量

uchartemp1;//定义一个无符号字符型数据变量

uchartemp2;/定义一个无符号字符型数据变量

uinta;

intc;

voidmain()//主程序

{

while

(1)//判断哪个开关被按下

{

if(key1==0)

{

san();

}

if(key2==0)

{

P1=0xff;

}

if(key3==0)

{

san();

}

if(key4==0)

{

wu();

}

}

}

voidsan()

{

uchartable[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//定义一个数组

for(a=0;a<8;a++)

{

temp=table[a];//将数组赋值给变量temp

P1=temp;

delay(300);//延时

}

}

voiddelay(uintz)//延时程序

{

uintx,y;

for(x=100;x>0;x--)

for(y=z;y>0;y--);

}

 

voidwu()

{

uchartable1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//定义一个数组

for(c=7;c>-1;c--)

{

temp1=table1[c];//将数组赋值给变量temp1

P1=temp1;

delay(300);//延时

}

}

第5章结论

参考文献

[1]高峰.单片微型计算机原理与接口技术[M].科学出版社,2007

[2]张志良.单片机原理与控制技术[M].机械工业出版社,2007

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1