《单片机LED课程设计.doc》由会员分享,可在线阅读,更多相关《单片机LED课程设计.doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流单片机LED课程设计.精品文档.摘要家人和其他人带来美的享受。本系统采用单片机AT89C51为中心器件来设计彩灯控制器,并用发光二极管作为被控制部件来显示。系统实用性强、操作简单、扩展性强。彩灯控制器在我门日常生活中有重要的运用,如广告牌的设计和节日彩灯的设计都能运用到它的原理。关键词:AT89C51; 节日彩灯控制器;发光二极管目 录摘要.1设计任务11.1功能及技术指标要求.11.2设计内容.11.3设计思路及关键技术.12彩灯灯的设计程序框图.23彩灯程序的主程序.34系统硬件电路的设计.124.1 时钟源. 124.2 周期控制 .
2、124.3方向控制电路 .134.4执行电路 134.5电路仿真 145原理图.146检测与调试.156.1硬件调试156.2软件调试157总结与体会.168参考文献.169致谢.161.设计任务1.1功能及技术指标要求设计节日彩灯的基本要求:设计一个节日彩灯,要应用DVCC实验系统。1.2、设计内容按设计技术指标进行节日彩灯的硬件和软件设计。1.3设计思路及关键技术一个完整的节日彩灯相当于一个简单的单片机系统,该系统有彩灯设置电路、单片机、显示电路等构成。单片机是集成的IC芯片,只需根据实际要求选型。其他部分都需要根据应用要求和性能指标自行设计。基于单片机的节日彩灯设计时要充分的认识以下几个
3、问题:1.3.1因为本实验是彩灯控制实验,所以要先了解所设计的彩灯变化规律,我们设计的为可以循环移动的彩灯控制电路,灯总数为16盏,一个红灯一个绿灯间隔的排在一起,其工作规律是先红灯1、5亮,其余灭,右移三次后全灭;4 、8亮,其余灭,左移三次后全灭 ;4 、5亮,其余灭,各向两边移三次后全灭 ;1、8亮,其余灭,各向中间移三次后全灭 ,灯移动间隔为1s,然后为全亮,1s后全灭。然后换为绿灯1、5亮,其余灭,右移三次后全灭;4 、8亮,其余灭,左移三次后全灭;4、5 亮,其余灭,各向两边移三次后全灭 ;1、8亮,其余灭,各向中间移三次后全灭 ,灯移动间隔为 1s,然后为全亮,1s后全灭,然后红
4、绿灯全亮,1s后全灭,然后再红灯1、5亮.依次循环。1.3.2双色灯是由8个红色发光二极管管芯和8个绿色发光二极管管芯封装在一起,红灯和绿灯各共用一个负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高点平时,绿灯亮,两端都加高点平时,红色和绿色灯全部亮。 2、节日彩灯的设计程序序构图 开始 红灯1、5 亮,其余灭,右移三次后全灭 红灯4 、 8 亮,其余灭,左移三次后全灭 红灯4 、 5 亮,其余灭,各向两边移三次后全灭 红灯1、,8 亮,其余灭,各向中间移三次后全灭 红灯全亮,1s后全灭绿灯1、5 亮,其余灭,右移三次后全灭 绿灯4 、 8 亮,其余灭,左移
5、三次后全灭 绿灯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 亮,其余灭,左移三次后全灭
6、 状态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
7、秒钟CLR P1.2;CLR P1.6;灭2和6号LED SETB P1.3;SETB P1.7;亮3和7号LEDLCALL LLL1;延时1秒钟 CLR P1.3;CLR P1.7;灭3和7号LEDSETB 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;延时1
8、S CLR P1.3;CLR P1.7;灭3和7号LED SETB P1.2;SETB P1.6;亮2和6号LEDLCALL LLL1;延时1S CLR P1.2;CLR P1.6;灭2和6号LEDSTA:SETB P1.1;STA:SETB P1.5;点亮1和5号LEDLCALL 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 LL
9、L1;延时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号LEDSETB P1.1;SETB P1.8;点亮1和8号LEDLCALL 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;延
10、时1S CLR P1.2;CLR P1.7;灭2和7号LEDSETB 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号LEDLCALL LLL1;延时1S CLR P1.4; CLR P1.5;灭4和5号LED SETB P1.1.1.8 点亮所有红灯(开始状态5)CLR P1.1.1.8灭所有灯 绿灯STA:SETB P1.1;STA:SETB P1.5;点亮1和5号LED(开始状态6) LCALL LLL1;延时1秒钟CLR P1.1;CLR P1
11、.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号LEDLCALL LLL1;延时1秒钟 CLR P1.3;CLR P1.7;灭3和7号LEDSETB 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.
12、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号LEDLCALL LLL1;延时1S CLR P1.2;CLR P1.6;灭2和6号LEDSTA:SETB P1.1;STA:SETB P1.5;点亮1和5号LEDLCALL 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; C
13、LR 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号LEDSETB P1.1;SETB P1.8;点亮1和8号LEDLCALL 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
14、 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号LEDSETB 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号LEDLCALL LLL1;延时1S CLR P1.4; CLR P1.5;灭4和5号LED SETB P1.1.1.8 点亮所有绿灯(开始状态10)CLR P1.1.1.8灭所有绿灯 SETB P1.1.1.8 点亮所有红灯
15、、绿灯(开始状态11)LCALL LLL1;延时1S CLR P1.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:JB P1.0,LP1 MOV B,P1 LCALL DO1 LP1:JB P1.1,LP2 MOV B,P1 L
16、CALL DO2 LP2:JB P1.2,LP3 MOV B,P1 LCALL DO3 LP3:JB P1.3,LP4 MOV B,P1 LCALL DO4 LP4:MOV P0,#0FFH;无按键不等任何事RETDO1: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
17、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
18、 CLR P0.5 LCALL DELAY RET DO4:LCALL DO1 ;状态4 LCALL DO2 LCALL DO3 RET DELAY:MOV R5,#48 ;延时1SL1: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 晶体振荡
19、器产生,再由一个分频器 4060 进行分频即可得到多种不同频率的时钟信号。 4.2 周期控制 这里选用计数器 74LS163 和非门 74LS04 对所输入的时钟信号进行 5 分频,用于控制每一组的八盏灯依次点亮后再熄灭的一轮循环的周期 4 .3方向控制电路 图所示的方向控制电路,单独对于每一组来说,移动的方向只有两种,即左移或右移。 因此,这里用一个 D 触发器 74LS74 将周期控制信号再一次分频,这样在每一个周期控制信号的周期里,方向控制输出不是 0 就是 1 ,正好用于表示左移和右移。 4.4执行电路这个模块比较简单,用发光二极管 LED 将移位寄存器的输出信号显示出来,可以感受到漂
20、亮的彩灯流动的感觉。 这里需要注意的就是要给每一盏 LED 串一个限流电阻,因为移位寄存器的输出信号为 TTL 电平,这个电平超过了 LED 的正常的正向偏置的电压。 由于这里设计的是数字系统,用的都是 TTL 型的数字集成电路芯片,所以给这些器件供电的电压为单电源 +5V 即可,这个电源可以由实验室里的稳压源提供。 4.5电路仿真 将各单元电路原理图综合后输入到软件中,红灯和绿灯的闪亮情况一致,电路综合后并联设置一个开关,对其进行时序仿真和功能仿真。时序仿真可反映每一路信号与时钟信号之间的关系即不同路信号之间的关系。功能仿真可看出执行模块控制彩灯循环点亮的效果。5原理图方向控制周期控制输出驱
21、动时钟源 周期控制 执行 电源 时钟源: 周期性的方波信号,用于控制灯移动的快慢。 周期控制: 用于控制每组灯一轮移动的时间。 方向控制: 用于控制灯移动的方向 输出驱动: 接收上述各模块的控制信号,将其变成需要执行的输出信号。 执行 : 将输出驱动的输出信号表现成循环点亮的形式。 电源: 给整个系统供电。6检测与调试6.1硬件调试 是利用DVCC实验与开发系统、基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。硬件调试可分为静态调试与动态调试两步进行。静态调试是在用户系统未工作时的一种硬件检测。第一步:目测。检查外部的各种元件或者是电路是否有断点。第二步:用万用表测试。先用万用
22、表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。第三步:加电检测。检查所有插座或是器件的电源端是否符合要求的值第四步:联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的方法是由近及远、由分到合。由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时与该元件无关的器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。由分到
23、合的调试即告完成。由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。6.2软件调试:软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。7、总结与体会实现了能根据实际需要的本系统是以单片机AT89C51芯片为核心部件,实现了能通过AT89C51芯片控制节日彩灯实现一些基本的功能。刚开始时,自己通过各种途径,尽可能多的了解有关于彩灯灯这方面的知识,为后面的设计打下基础,后面的进展也很顺利,不过在仿真阶段,由于硬件电路设计的粗心,给自己带来了不小的麻烦
24、,不过问题最终还是得到了解决。通过这次课程设计,使我得到了一次用所学知识来实际解决问题的锻炼,也让自己感觉到大学所学的知识有一部分是很有实用价值的,同时我对单片机的基本知识以及常用的汇编设计程序得到了进一步的巩固。8参考文献8.1.李朝青,单片机原理及接口技术第三版,北京航天航空大学出版社,20088.2张迎新,单片机初级教程单片机基础,北京航空航天大学出版社,20069致谢 在些次课程设计中,非常感谢谢老师的精心指导,由于他的悉心指导和关心,一直激励着我去努力做好本次课程设计,谢老师精湛的专业知识、耐心的工作态度和真诚的待人风格给我留下了非常深刻的印象,对我以后的工作和生活将产生很大的影响。通过些次课程设计,我们获得了丰富的理论知识,极大的提高了实践能力,这将对我今后进一步学习计算机方面的知识有极大的帮助。在此,真挚的向我的导师说声谢谢。 同时,我也在感谢跟我一起完成此次课程设计的同学,我们相互帮助,相互鼓劢,一起并肩作战。他们在我的设计遇到困难的时候,在精神上和行动上都给予我很大的支持,鼓励我不要泄气,说服我勇敢的面对困难,帮助我解决了很多问题,让我的课程设计能够顺利完成。