节日彩灯控制器设计_第1页
节日彩灯控制器设计_第2页
节日彩灯控制器设计_第3页
节日彩灯控制器设计_第4页
节日彩灯控制器设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、2013 级单片机接口设计课程设计石家庄铁道大学四方学院集中实践报告书节日彩灯控制器设计课题名称 姓 名 学 号 系、部 专业班级 指导教师吴春慧20137762电气工程系方 1353-2牛晓燕2016年7月6日一、设计任务及要求:设计任务:设计一个节日彩灯控制器,通过按钮控制彩灯的各种变化。设计要求:1设计4个按键so、si、s2、s3,50 开始按此键则灯开始流动(由上而下);51 停止,按此键则停止流动,所有灯为暗;52 上,按此键则灯由上向下流动;53 下,按此键则灯由下向上流动。2. 由按键控制功能的流水灯,其中的led采取共阳极接法,通过依次向连接led 的i/o 口送出低电平,可

2、实现题目要求的功能。3. 要求做出实物。二、指导教师评语:三、成绩指导教师签名:年 月 日第1章设计目的2第2章设计要求2第3章硬件电路设计23. 1系统结构框图23. 2stc89c52 单片机33.3总电路图4第4章软件设计54.1主程序设计54.2led灯子程序设计74.2延时子程序设计74. 3源程序8第5章结论10参考文献11第1章设计目的1、掌握单片机实际系统的开发步骤。2、熟悉节fi彩灯控制器的工作原理。3、加深对单片机汇编语言的认识和理解,并会编程。第2章设计要求1、设计4个按键so、si、s2、s3,50 开始按此键则灯开始流动(由上而下);51 停止,按此键则停止流动,所有

3、灯为暗;52 上,按此键则灯由上向下流动;53 下,按此键则灯由下向上流动。2、由按键控制功能的流水灯,其中的led采取共阳极接法,通过依次向连接led的i/o 口送出低电平,可实现题目要求的功能。3、要求做出实物。第3章硬件电路设计3. 1系统结构框图节fi彩灯控制系统主要由单片机、led显示器、开关及电源组成。其结构 框图如图31所示。八个led灯显示器a开关 单片机最小系统 5v电源图3-1系统结构框图3. 2 stc89c52 单片机89c52本质是一种低耗高性能的微控制器。它的主要特性是拥有8k字节的 程序存储空间;512字节的数据存储空间;内带4k字节的eeprom存储空间和 可直

4、接使用串行口下载。此外,它还是增强型的80c51单片机,有6时钟/机器 周期和12时钟/机器周期可以任意选择,同时它的指令代码完全兼容传统80c51 单片机。89c52共有四个八位的并行双向口,即有32根输入输出口线。各口的每一 位均由锁存器、输出驱动器和输入缓冲器组成。stc89c52芯片有40个引脚, 引脚图如图32所示,各引脚功能介绍如下:t2/p1.0 l t2ex/p1.1 p1.2 p1.3 p1.4 p1.5 p1.6 p1.7 rst rxd/p3.0 txd/p3.1 int0/p3.2 int1/p3.3t0/p3.4 匸t1/p3.5 匚wr/p3.6 匸rd/p3.7

5、匸xtal2 匸xtal1 匸 gnd r2345678910111213141516仃1819204039383736353433323130292827262524232221vccpo.o/adopo.1/ad1p0.2/ad2p0.3/ad3p0.4/ad4p0.5/ad5p0.6/ad6p0.7/ad7 ea/vpp ale/progpsenp2.7/a15p2.6/a14p2.5/a13p2.4/a12p2.3/a11p2.2/a10p2.1/a9p2.0/a8图32 stc89c52引脚图vcc(40引脚):电源电压。vss(20引脚):接地。p1端口(p1.0p1.7, 18引

6、脚):p1 口是一个带内部上拉电阻的8位双向i/o o pl的输出缓冲器可驱动4个ttl负载。对端口写入1时,通过内部的上拉 电阻把端口拉到高电位,这是可用作输入口。p1 口作输入口使用时,因为有内 部上拉电阻,那些被外部拉低的引脚会输岀一个电流。p1 口特点是输出锁存器, 输出时没有条件。输入缓冲,输入时有条件,即需要先将该口设为输入状态,先 输岀1。此外,p1.0和p1.1是多功能的。p1.0还可以作为定时器/计数器2的外 部输入端t2o p1.1还可以作为定时器/计数器2的外部控制端t2exop3端口(p3.0p3.7, 1017引脚):p3是一个带内部上拉电阻的8位双向i/o 端口。p

7、3的输出缓冲器可驱动4个ttl负载。对端口写入1时,通过内部的上 拉电阻把端口拉到高电位,这时可用作输入口。p3做输入口使用时,因为有内 部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。p3 口除作为一般 i/o 口外,还有其他一些复用功能如下:p3.0rxd,串行输入口。p3.1txd,串行输出口。p3.2into,外部中断0的请求。p3.3int1,外部中断1的请求。p3.4t0,定时器/计数器0外部计数脉冲。p3.5t1,定时器/计数器,1外部计数脉冲。p3.6-wr,外部数据存储器写选通。p3.7-rd,外部数据存储器读选通。rst(9引脚):复位输入。当输入连续两个机器周期以上

8、高电平时为有效, 用来完成单片机单片机的复位初始化操作。ale(30引脚):地址锁存控制信号(ale)是访问外部程序存储器时,锁存低 8位地址的输岀脉冲。xtalk19引脚):振荡器反相放大器和内部时钟发生电路的输入端。xtal2(18引脚):振荡器反相放大器的输入端。3. 3总电路图在总电路图中,复位电路与晶振电路是单片机最小系统中包括的电路,复位 连在at89c52的9引脚,而晶振电路的两条接线分别与18、19引脚相连。对于 本次设计,还需要将8个led灯接入电阻中,并且分别与8个限流电阻相连保 护发光二极管,与单片机的p1 口相连。4个按键so、si、s2、s3分别连单片机 的p3.4、

9、p3.5、p3.3和p3.1由这四个按键来控制灯的启动、停止、由上而下、 由下而上。由按键控制功能的led工作的方式,其中的led采取共阳极接法,通过依 次向连接led的i/o 口送出低电平,可实现题fi要求的功能。节口彩灯控制器的总电路图如图3-5所示。-5v1kr3r?r6?10vcc?11p00?12p01?13p02?14p03?15p04?16p05?17p06匹tp07?30ea>31ale>32psen?33p20>34p21>35p22>36p23>37p24xtal2p25ktal1p26jndp275_6 7 匸9io" nl6

10、tsl920 丄 ai89c52rs=|h10k+ c3=10ufcl=22pf12msoinc2=22pfsis3s2 o38373635343332313029282726252423222139图3-3总电路图第4章软件设计4.1主程序设计节口彩灯控制器设计的功能是:当在没有任何按键按下时,8个led灯均 呈现灭灯的状态,并一直在等待按键的按下。当按下开始键so键后,8个led 灯自上而下循环流动,检测有没有按下停止键即s1,若按下停止键s1则立即停 止流动,否则检测是否按下按键s2或者按键s3,若都没有按下则灯继续保持原 先的状态流动。当按键s3被按下,灯自下而上流动,同样也要检测是否

11、按下停 止键s1,按下则停止,否则灯将继续自下而上流动。同理,当按键s2被按下时, 灯自上而下流动,如果按下停止键s1,按下则停止,否则灯将继续自上而下流 动。当既按下s2又按下s3时,灯将先自上而下流动,后自下而上流动。通过四 个键si、s2、s3、s4的控制,实现彩灯的亮、灭和彩灯的流动显示,以及在不 同情况下的彩灯的流动变换。这是整个节口彩灯的完整控制与流动过程。节h彩灯控制器的主程序流程图如图41所示图4-1主程序流程图4.2 led灯子程序设计在本设计中的led灯的流动有两个方向,分别为自上而下和自下而上,无 论是哪种方式,其led灯的子程序都是一样的过程。首先赋初值,取表中的数,将

12、数值给p1 口,然后判断led灯是否循环完了 8次。如果循坏完8次则对应led灯亮,并延时输出。如果没有循环完8次, 将返回原处重新开始。因而得到流程图为图42所示。图4-2 led灯子程序流程图4.2延时子程序设计对于led灯循环显示程序来说,由于单片机运行速度非常快,以至于当灯 亮时人眼看不见,不方便检测与监控,因此在程序中需要添加延时子程序。同时 延时子程序还可以有效的防止抖动。延时子程序运用了两个foi循环嵌套,外循 环执行一次,内循坏执行z次,因此延时时间为loozo延时子程序的流程图如图43所示。开始定义无符号整型数x>给x賦初值为100给y赋初值为zx自减一y自减一结束图4

13、-3子程序流程图4.3源程序#include<reg52.h>#define uint unsigned int #define uchar unsigned char void san();void wu();void delay(uint);sbit key2=p3a5;/关闭彩灯的开关sbit keyl=p3八4;/启动彩灯的开关sbit key3=p3a3;/控制彩灯右移的开关sbit key4=p3al;/控制彩灯左移的开关 uchar temp;/定义一个无符号字符型数据变量 uchar temp 1;/定义一个无符号字符型数据变量 uchar temp2;/定义一个无

14、符号字符型数据变量 uint a;int c;void main()/主程序while(l)/判断哪个开关被按下if(key 1 =0) san();if(key2=0) pl=0xff; if(key3=0) san();if(key4=0) wu();void san()uchar table=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;定义一个数组for(a=0;a<8;a+)temp=tablea;/将数组赋值给变量temppl=temp;delay(300); 延时void delay(uint z)延时程序 uint x,y;for(x=1

15、00;x>0;x-)for(y=z;y>0;y-);void wu()uchar table 1 =0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/定义一个数 组for(c=7;c>-l;c)templ=table 1 c;将数组赋值给变量temp 1p1 =temp 1;delay(300);/ 延时第5章结论在本次课程设计中,我们用的是multisim软件画图,然后经过不断地仿真、 调试成功。最后根据本设计做出实物并与计算机相连,完成整个设计。本设计做 的是实物,我主要负责软件部分,但是我也参与了硕件部分,利用我们编好的程 序成功写入到了单片机当中,然后实现了 led灯的从上往下,从下往上,以及 反复往返流动。本次设计主要运用c语言对单片机进行编程控制。只需要节fi彩灯的程序 分为三部分即可:主程序、led灯的程序,延时程序。主程序要根据题目要求 画出主程序框图,依据主电路图及主流程图编程。led灯的程序分两个流动方

温馨提示

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

评论

0/150

提交评论