资源描述
- -
摘要
家人和其他人带来美的享受。本系统采用单片机AT89C51为中心器件来设计彩灯控制器,并用发光二极管作为被控制部件来显示。系统实用性强、操作简单、扩展性强。彩灯控制器在我门日常生活中有重要的运用,如广告牌的设计和节日彩灯的设计都能运用到它的原理。
关键词:AT89C51; 节日彩灯控制器;发光二极管
目 录
摘要………………………………………………………..
1设计任务……………………………………………………1
1.1功能及技术指标要求…………………………………..1
1.2设计容………………………………………………..1
1.3设计思路及关键技术…………………………………….1
2彩灯灯的设计程序框图…………………………………….2
3彩灯程序的主程序………………………………………….3
4系统硬件电路的设计……………………………………….12
4.1 时钟源........................................ 12
4.2 周期控制 ..................................... 12
4.3方向控制电路 …………………………………………….13
4.4执行电路 …………………………………………………13
4.5电路仿真………………………………………14
5原理图………………………………………………….14
6检测与调试…………………………………………….15
6.1硬件调试……………………………………………15
6.2软件调试……………………………………………15
7总结与体会……………………………………………..16
8参考文献………………………………………………..16
9致……………………………………………………..16
1.设计任务
1.1功能及技术指标要求
设计节日彩灯的根本要求:设计一个节日彩灯,要应用DVCC实验系统。
1.2、设计容
按设计技术指标进展节日彩灯的硬件和软件设计。
1.3设计思路及关键技术
一个完整的节日彩灯相当于一个简单的单片机系统,该系统有彩灯设置电路、单片机、显示电路等构成。单片机是集成的IC芯片,只需根据实际要求选型。其他局部都需要根据应用要求和性能指标自行设计。
基于单片机的节日彩灯设计时要充分的认识以下几个问题:
1.3.1因为本实验是彩灯控制实验,所以要先了解所设计的彩灯变化规律,我们设计的为可以循环移动的彩灯控制电路,灯总数为16盏,一个红灯一个绿灯间隔的排在一起,其工作规律是先红灯1、5亮,其余灭,右移三次后全灭;4、8亮,其余灭,左移三次后全灭 ;4 、5亮,其余灭,各向两边移三次后全灭 ;1、8亮,其余灭,各向中间移三次后全灭 ,灯移动间隔为1s,然后为全亮,1s后全灭。然后换为绿灯1、5亮,其余灭,右移三次后全灭;4 、8亮,其余灭,左移三次后全灭;4、5 亮,其余灭,各向两边移三次后全灭 ;1、8亮,其余灭,各向中间移三次后全灭 ,灯移动间隔为 1s,然后为全亮,1s后全灭,然后红绿灯全亮,1s后全灭,然后再红灯1、5亮….依次循环。
1.3.2双色灯是由8个红色发光二极管管芯和8个绿色发光二极管管芯封装在一起,红灯和绿灯各共用一个负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高点平时,绿灯亮,两端都加高点平时,红色和绿色灯全部亮。
2、节日彩灯的设计程序序构图
开场
红灯1、5 亮,其余灭,右移三次后全灭
红灯4 、 8 亮,其余灭,左移三次后全灭
红灯4、 5 亮,其余灭,各向两边移三次后全灭
红灯1、,8 亮,其余灭,各向中间移三次后全灭
红灯全亮,1s后全灭
绿灯1、5 亮,其余灭,右移三次后全灭
绿灯4 、 8 亮,其余灭,左移三次后全灭
绿灯4、 5 亮,其余灭,各向两边移三次后全灭
绿灯1、,8 亮,其余灭,各向中间移三次后全灭
绿灯全亮,1s后全灭
红绿灯全亮
灯移动间隔为 1S
3.节日彩灯设计的主程序
程序如下:
LED 一次为红灯LED1-LED8,一次为绿灯LED1-LED8
状态1:红灯1、5亮,其余灭,右移三次后全灭
状态2:红灯4 、 8 亮,其余灭,左移三次后全灭
状态3:红灯4、 5 亮,其余灭,各向两边移三次后全灭
状态4:红灯1、,8 亮,其余灭,各向中间移三次后全灭
状态5: 红灯全亮,1s后全灭
状态6:绿灯1、5 亮,其余灭,右移三次后全灭
状态7:绿灯4 、 8 亮,其余灭,左移三次后全灭
状态8:绿灯4、 5 亮,其余灭,各向两边移三次后全灭
状态9:绿灯1、,8 亮,其余灭,各向中间移三次后全灭
状态10: 绿灯全亮,1s后全灭
状态11:红绿灯全亮
设用P1.0作供电控制,P1.1--P1.8分别控制8只LED,“1〞亮,“0〞灭。
MOV P1,#0;置灯全暗
红色灯
JNB P1.0,$;P1.0=0时那么等待通电
STA:SETB P1.1;
STA:SETB P1.5;点亮1和5号LED(开场状态1)
LCALL LLL1;延时1秒钟
CLR P1.1;
CLR P1.5;灭1和5号LED
SETB P1.2;
SETB P1.6;点亮2和6号LED
LCALL LLL1;延时1秒钟
CLR P1.2;
CLR P1.6;灭2和6号LED
SETB P1.3;
SETB P1.7;亮3和7号LED
LCALL LLL1;延时1秒钟
CLR P1.3;
CLR P1.7;灭3和7号LED
SETB P1.4;
SETB P1.8;点亮4和8号LED
LCALL LLL1;延时1秒钟
CLR P1.4;
CLR P1.8;灭4和8号LED
SETB P1.4;
SETB P1.8;再次点亮4和8号LED(开场状态2)
LCALL LLL1;延时1S
CLR P1.4;
CLR P1.8;灭4和8号LED
SETB P1.3;
SETB P1.7;点亮3和7号LED
LCALL LLL1;延时1S
CLR P1.3;
CLR P1.7;灭3和7号LED
SETB P1.2;
SETB P1.6;亮2和6号LED
LCALL LLL1;延时1S
CLR P1.2;
CLR P1.6;灭2和6号LED
STA:SETB P1.1;
STA:SETB P1.5;点亮1和5号LED
LCALL LLL1;延时1秒钟
CLR P1.1;
CLR P1.5;灭1和5号LED
SETB P1.4;
SETB P1.5;点亮4和5号LED(开场状态3)
LCALL LLL1;延时1S
CLR P1.4;
CLR P1.5;灭4和5号LED
SETB P1.3;
SETB P1.6;点亮3和6号LED
LCALL LLL1;延时1S
CLR P1.3;
CLR P1.6;灭3和6号LED
SETB P1.2;
SETB P1.7;亮2和7号LED
LCALL LLL1;延时1S
CLR P1.2;
CLR P1.7;灭2和7号LED
SETB P1.1;
SETB P1.8;点亮1和8号LED
LCALL LLL1;延时1S
CLR P1.1;
CLR P1.8;灭1和8号LED
SETB P1.1;
SETB P1.8;再次点亮1和8号LED〔开场状态4〕
LCALL LLL1;延时1S
CLR P1.1;
CLR P1.8;灭1和8号LED
SETB P1.2;
SETB P1.7;亮2和7号LED
LCALL LLL1;延时1S
CLR P1.2;
CLR P1.7;灭2和7号LED
SETB P1.3;
SETB P1.6;点亮3和6号LED
LCALL LLL1;延时1S
CLR P1.3;
CLR P1.6;灭3和6号LED
SETB P1.4;
SETB P1.5;点亮4和5号LED
LCALL LLL1;延时1S
CLR P1.4;
CLR P1.5;灭4和5号LED
SETB P1.1..1.8 点亮所有红灯(开场状态5)
CLRP1.1..1.8灭所有灯
绿灯
STA:SETB P1.1;
STA:SETB P1.5;点亮1和5号LED(开场状态6)
LCALL LLL1;延时1秒钟
CLR P1.1;
CLR P1.5;灭1和5号LED
SETB P1.2;
SETB P1.6;点亮2和6号LED
LCALL LLL1;延时1秒钟
CLR P1.2;
CLR P1.6;灭2和6号LED
SETB P1.3;
SETB P1.7;亮3和7号LED
LCALL LLL1;延时1秒钟
CLR P1.3;
CLR P1.7;灭3和7号LED
SETB P1.4;
SETB P1.8;点亮4和8号LED
LCALL LLL1;延时1秒钟
CLR P1.4;
CLR P1.8;灭4和8号LED
SETB P1.4;
SETB P1.8;再次点亮4和8号LED(开场状态7)
LCALL LLL1;延时1S
CLR P1.4;
CLR P1.8;灭4和8号LED
SETB P1.3;
SETB P1.7;点亮3和7号LED
LCALL LLL1;延时1S
CLR P1.3;
CLR P1.7;灭3和7号LED
SETB P1.2;
SETB P1.6;亮2和6号LED
LCALL LLL1;延时1S
CLR P1.2;
CLR P1.6;灭2和6号LED
STA:SETB P1.1;
STA:SETB P1.5;点亮1和5号LED
LCALL LLL1;延时1秒钟
CLR P1.1;
CLR P1.5;灭1和5号LED
SETB P1.4;
SETB P1.5;点亮4和5号LED(开场状态8)
LCALL LLL1;延时1S
CLR P1.4;
CLR P1.5;灭4和5号LED
SETB P1.3;
SETB P1.6;点亮3和6号LED
LCALL LLL1;延时1S
CLR P1.3;
CLR P1.6;灭3和6号LED
SETB P1.2;
SETB P1.7;亮2和7号LED
LCALL LLL1;延时1S
CLR P1.2;
CLR P1.7;灭2和7号LED
SETB P1.1;
SETB P1.8;点亮1和8号LED
LCALL LLL1;延时1S
CLR P1.1;
CLR P1.8;灭1和8号LED
SETB P1.1;
SETB P1.8;再次点亮1和8号LED〔开场状态9〕
LCALL LLL1;延时1S
CLR P1.1;
CLR P1.8;灭1和8号LED
SETB P1.2;
SETB P1.7;亮2和7号LED
LCALL LLL1;延时1S
CLR P1.2;
CLR P1.7;灭2和7号LED
SETB P1.3;
SETB P1.6;点亮3和6号LED
LCALL LLL1;延时1S
CLR P1.3;
CLR P1.6;灭3和6号LED
SETB P1.4;
SETB P1.5;点亮4和5号LED
LCALL LLL1;延时1S
CLR P1.4;
CLR P1.5;灭4和5号LED
SETB P1.1..1.8 点亮所有绿灯(开场状态10)
CLRP1.1..1.8灭所有绿灯
SETB P1.1..1.8 点亮所有红灯、绿灯(开场状态11)
LCALL LLL1;延时1S
CLRP1.1..1.8灭所有红灯和绿灯
SJMP STA;转入状态1
ORG 00H
SJMP MAIN
ORG 40H
MAIN:MOV SP,#05FH
MOV P1,#0FFH ;按键输入 ,从P1.0-P1.8 分别代表状态1-8,低电平有效
MOV P0,#0FFH ;LED输出,p1.1-p1.8 分别是LED1-LED8高电平为LED点亮,低电平为LED息灭
LOOP:LCALL DO
SJMP LOOP
DO: P1.0,LP1
MOV B,P1
LCALL DO1
LP1: P1.1,LP2
MOV B,P1
LCALL DO2
LP2: P1.2,LP3
MOV B,P1
LCALL DO3
LP3: P1.3,LP4
MOV B,P1
LCALL DO4
LP4:MOV P0,#0FFH;无按键不等任何事
RET
DO1:MOV P0,#0FFH ;状态1
CLR P0.0
LCALL DELAY
LCALL DELAY
MOV P0,#0FFH
CLR P0.1
LCALL DELAY
LCALL DELAY
MOV P0,#0FFH
CLR P0.2
LCALL DELAY
LCALL DELAY
MOV P0,#0FFH
CLR P0.3
LCALL DELAY
LCALL DELAY
MOV P0,#0FFH
CLR P0.4
LCALL DELAY
LCALL DELAY
MOV P0,#0FFH
CLR P0.5
LCALL DELAY
LCALL DELAY
RET
DO2:MOV P0,#0FFH ;状态2
CLR P0.0
LCALL DELAY
MOV P0,#0FFH
CLR P0.2
LCALL DELAY
MOV P0,#0FFH
CLR P0.4
LCALL DELAY
RET
DO3:MOV P0,#0FFH ;状态3
CLR P0.1
LCALL DELAY
MOV P0,#0FFH
CLR P0.3
LCALL DELAY
MOV P0,#0FFH
CLR P0.5
LCALL DELAY
RET
DO4:LCALL DO1 ;状态4
LCALL DO2
LCALL DO3
RET
DELAY:MOV R5,#48 ;延时1S
L1:MOV R6,#0FAH
L2:MOV R7,#0FAH
L3:MOV A,P1
CJNE A,B,L4
DJNZ R7,L3
DJNZ R6,L2
DJNZ R5,L1
L4:RET
END
4.系统硬件电路的设计
十六盏灯可分为二组、每组只有八个红灯和八个绿灯,红灯和绿灯的移动方向各有二种,即左移或右移、组与组之间只有一种亮灯模式为全亮。
单元电路设计
4.1 时钟源
时钟源主要是由一个 32kHz 晶体振荡器产生,再由一个分频器 4060 进展分频即
可得到多种不同频率的时钟信号。
4.2 周期控制
这里选用计数器 74LS163 和非门 74LS04 对所输入的时钟信号进展 5 分频,用于控制每一组的八盏灯依次点亮后再熄灭的一轮循环的周期
4 .3方向控制电路
图所示的方向控制电路,单独对于每一组来说,移动的方向只有两种,即左移或右移。 因此,这里用一个 D 触发器 74LS74 将周期控制信号再一次分频,这样在每一个周期控制信号的周期里,方向控制输出不是 0 就是 1 ,正好用于表示左移和右移。
4.4执行电路
这个模块比拟简单,用发光二极管 LED 将移位存放器的输出信号显示出来,可以感受到漂亮的彩灯流动的感觉。 这里需要注意的就是要给每一盏 LED 串一个限流电阻,因为移位存放器的输出信号为 TTL 电平,这个电平超过了 LED 的正常的正向偏置的电压。 由于这里设计的是数字系统,用的都是 TTL 型的数字集成电路芯片,所以给这些器件供电的电压为单电源 +5V 即可,这个电源可以由实验室里的稳压源提供。
4.5电路仿真
将各单元电路原理图综合后输入到软件中,红灯和绿灯的闪亮情况一致,电路综合后并联设置一个开关,对其进展时序仿真和功能仿真。时序仿真可反映每一路信号与时钟信号之间的关系即不同路信号之间的关系。功能仿真可看出执行模块控制彩灯循环点亮的效果。
5.原理图
方向控制
周期控制
输
出
驱
动
时钟源 周期控制
执行
电源
时钟源: 周期性的方波信号,用于控制灯移动的快慢。
周期控制: 用于控制每组灯一轮移动的时间。
方向控制: 用于控制灯移动的方向
输出驱动: 接收上述各模块的控制信号,将其变成需要执行的输出信号。
执行 : 将输出驱动的输出信号表现成循环点亮的形式。
电源: 给整个系统供电。6.检测与调试
6.1硬件调试
是利用DVCC实验与开发系统、根本测试仪器〔万用表、示波器等〕,检查用户系统硬件中存在的故障。
硬件调试可分为静态调试与动态调试两步进展。
静态调试是在用户系统未工作时的一种硬件检测。
第一步:目测。检查外部的各种元件或者是电路是否有断点。
第二步:用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。
第三步:加电检测。检查所有插座或是器件的电源端是否符合要求的值
第四步:联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。
动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件部故障、器件连接逻辑错误等的一种硬件检查。动态调试的方法是由近及远、由分到合。由分到合是指首先按逻辑功能将用户系统硬件电路分为假设干块,当调试电路时与该元件无关的器件全部从用户系统中去掉,这样可以将故障围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块参加系统中,在对各块电路功能及各电路间可能存在的相互联系进展调试。由分到合的调试即告完成。由近及远是将信号流经的各器件按照距离单片机的逻辑距离进展由近及远的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。
6.2软件调试:
软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。
7、总结与体会
实现了能根据实际需要的本系统是以单片机AT89C51芯片为核心部件,实现了能通过AT89C51芯片控制节日彩灯实现一些根本的功能。刚开场时,自己通过各种途径,尽可能多的了解有关于彩灯灯这方面的知识,为后面的设计打下根底,后面的进展也很顺利,不过在仿真阶段,由于硬件电路设计的粗心,给自己带来了不小的麻烦,不过问题最终还是得到了解决。通过这次课程设计,使我得到了一次用所学知识来实际解决问题的锻炼,也让自己感觉到大学所学的知识有一局部是很有实用价值的,同时我对单片机的根本知识以及常用的汇编设计程序得到了进一步的稳固。
8.参考文献
8.1.朝青,?单片机原理及接口技术?第三版,航天航空大学,2021
8.2迎新,?单片机初级教程——单片机根底?,航空航天大学,2006
9.致
在些次课程设计中,非常感教师的精心指导,由于他的悉心指导和关心,一直鼓励着我去努力做好本次课程设计,教师精湛的专业知识、耐心的工作态度和真诚的待人风格给我留下了非常深刻的印象,对我以后的工作和生活将产生很大的影响。通过些次课程设计,我们获得了丰富的理论知识,极大的提高了实践能力,这将对我今后进一步学习计算机方面的知识有极大的帮助。在此,真挚的向我的导师说声。
同时,我也在感跟我一起完成此次课程设计的同学,我们相互帮助,相互鼓劢,一起并肩作战。他们在我的设计遇到困难的时候,在精神上和行动上都给予我很大的支持,鼓励我不要泄气,说服我勇敢的面对困难,帮助我解决了很多问题,让我的课程设计能够顺利完成。
- word.zl
展开阅读全文