单片机音乐彩灯设计.doc_第1页
单片机音乐彩灯设计.doc_第2页
单片机音乐彩灯设计.doc_第3页
单片机音乐彩灯设计.doc_第4页
单片机音乐彩灯设计.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

艺术彩灯控制系统设计一概述11艺术彩灯的设计背景及意义彩灯是人们日常生活中的一种装饰用品,它美观大方,尤其在节日期间,倍增节日气氛。它蕴涵着丰富的文化底蕴,被广泛地应用于各种店面的装饰。变换无穷的彩灯样式,给城市增添活力,吸引着人们的注意力,深受人民的喜爱。在日常生活中,人们还将彩灯摆放成各种图案,增添美感。随着电子技术的发展,应用系统向着小型化、快速化、大容量、重量轻的方向发展。科学技术更加贴近人们的生活,向着满足人们需求的方向发展。节日彩灯的设计与制作工艺也一步一步的走向成熟。1.2系统设计功能概述本设计是以AT89C51单片机为基础的音乐彩灯控制方案,来实现对LED彩灯的控制。以AT89C51单片机作为主控核心,通过汇编语言来控制单片机按下“开始”按键,8个LED灯从上到下开始循环点亮,按下“上”按键,灯由上向下流动,按下“下”按键,灯由下向上流动,按下“停止”按键,所有灯为暗。二彩灯设计内容简要:2.1彩灯设计任务:以单片机为核心,设计一个节日音乐彩灯控制器。2.2彩灯设计要求:P1.2-开始,按此键则灯开始流动(由上而下)。P1.3-停止,按此键则停止流动,所有灯为暗。P1.4-上,按此键则灯由上向下流动。P1.5-下,按此键则灯由下向上流动。2.3彩灯总体控制框图:3.2AT89C51单片机硬件结构:AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlashProgrammableandErasableReadOnlyMemory)的单片机芯片,它采用静态CMOS工艺制造8位微处理器,最高工作频率位24MHZ。AT89C5外形及引脚排列如图所示:管脚说明:RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。EA/VPP:当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。XTAL1和XTAL2:反向振荡放大器的输入及内部时钟工作电路的输入。33系统的硬件构成及功能描述:控制系统硬件设计电路图如图所示:四系统的软件设计ORG 0000H AJMP MAIN ORG 000BH AJMP INT ORG 0020H MAIN: JNB P1.2,START ;判断按键P1.2(开始键)为0时转MAIN程序 JMP MAIN ;否则返回 START: MOV 50H,#HIGH TABLE10 ;开始(默认情况下上到下) MOV 51H,#LOW TABLE10 ACALL BOFANG ;音乐播放初始设置 LJMP DOWNLIGHTSTOP: MOV P0,#0FFH ;停止 SETB P3.5 JNB P1.2,START AJMP STOP DOWN: MOV 50H,#HIGH TABLE10 ;上到下 MOV 51H,#LOW TABLE10 ACALL BOFANG ;音乐播放初始设置 DOWNLIGHT: MOV DPTR,#TABLE1 ;将TABLE1首地址赋数据指针 AJMP GETDATA UP: MOV 50H,#HIGH TABLE10 ;下到上 MOV 51H,#LOW TABLE10 ACALL BOFANG ;音乐播放初始设置 UPLIGHT: MOV DPTR,#TABLE2 ;将TABLE2首地址赋数据指针 GETDATA: MOV R0,#08H MOV R6,DPH ;暂存指针值 MOV R7,DPL LOOP: CLR A ;A清零 MOV DPH,R6 MOV DPL,R7 MOVC A,A+DPTR ;表数据送A MOV P0,A ;将A值送P0端口 INC DPTR ;数据指针加1,指向表中的下一数据 MOV R6,DPH MOV R7,DPL JNB P1.2,START ;P1.2口低电平则转START程序执行 JNB P1.3,STOP ;P1.3口低电平则转STOP程序执行 JNB P1.4,DOWN ;P1.4口低电平则转DOWN执行 JNB P1.5,UP ;P1.5口低电平则转UP左循环程序执行 LJMP MUSIC ;跳转音乐程序 BACK: DJNZ R0,LOOP CLR A ;判断是上还是下 MOV DPH,R6 MOV DPL,R7 MOVC A,A+DPTR JNZ DOWNLIGHT LJMP UPLIGHT BOFANG: MOV TMOD,#11H ;音乐播放初始设置 MOV IE,#82H MOV 40H,#00H RET MUSIC: MOV A,40H ;音乐播放处理 MOV DPH,50H ;取表地址 MOV DPL,51HMOVC A,A+DPTR ;将表数据送累加器A JZ STOP2 ;累加器A为0则转移(说明歌曲播放完 得重新播放) MOV R1,A ANL A,#0FH RL A MOV R2,A MOV A,R1 SWAP A ANL A,#0FH JNZ SING CLR TR0 LJMP W1 SING: DEC A MOV 22H,A RL A MOV DPTR,#TABLE00 MOVC A,A+DPTR MOV TH0,A MOV 21H,A MOV A,22H RL A INC A MOVC A,A+DPTR MOV TL0,A MOV 20H,A SETB TR0 W1: LCALL DELAY INC 40H JNZ STOP1 ;A不为0则转移 LJMP BACK STOP1: CLR TR0 ;音符结束重新播放处理 LJMP BACK STOP2: CLR TR0 ;整首歌曲播放结束处理 MOV R2,#03H LCALL DELAY LCALL BOFANG LJMP BACK TABLE00: DW 64580,64684,64777,64820 DW 64898,64968,65030,64260 DW 64400,64524,65058,63835,64021INT: PUSH PSW PUSH ACC MOV TH0,21H MOV TL0,20H CPL P3.5 POP ACC POP PSW RETI DELAY: MOV R4,#100 ;延时100ms LOOP3: MOV R5,#0FFHLOOP4: DJNZ R5,$ DJNZ R4,LOOP3 DJNZ R2,DELAY RET TABLE1: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH,01H TABLE2:DB 7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH,0FEH,00H TABLE10: DB 0d4H,84H,94H,82H,92H DB 12H,22H,82H,92H,02H,92H,82H,0d2H DB 82H,92H,14H,84H,02H,0d1H,0d1H DB 0c2H,0d2H,84H,0d2H,0d2H,82H,82H DB 84H,82H,82H,94H,82H,0d2H DB 82H,82H,82H,92H,02H,82H,82H,0d2H DB 0c4H,84H,0d4H,92H,0d2H DB 82H,0d2H,82H,92H,98H DB 04H,94H,88H DB 04H,94H,88H DB 04H,94H,88H DB 04H,94H,88H,04H DB 32H,32H,22H,12H,02H,92H,12H,92H DB 32H,32H,22H,12H,02H,92H,12H,92H DB 32H,32H,22H,12H,02H,92H,12H,22H DB 54H,44H,34H,12H,22H DB 34H,22H,12H,02H,92H,12H,92H DB 32H,32H,22H,12H,02H,92H,12H,92H DB 32H,32H,22H,12H,02H,92H,12H,22H DB 54H,44H,32H,22H,12H,92H DB 00H END4.1程序流程图:四系统的软件设计4.1程序流程图:程序如下:ORG0000HAJMPMAINORG000BHAJMPINTORG0020HMAIN:JNBP1.2,START;判断按键P1.2(开始键)为0时转MAIN程序JMPMAIN;否则返回START:MOV50H,#HIGHTABLE10开始(默认情况下上到下)MOV51H,#LOWTABLE10ACALLBOFANG;音乐播放初始设置LJMPDOWNLIGHTSTOP:MOVP0,#0FFH停止SETBP3.5JNBP1.2,STARTAJMPSTOPDOWN:MOV50H,#HIGHTABLE10;上到下MOV51H,#LOWTABLE10ACALLBOFANG;音乐播放初始设置DOWNLIGHT:MOVDPTR,#TABLE1;将TABLE1首地址赋数据指针AJMPGETDATAUP:MOV50H,#HIGHTABLE10;下到上MOV51H,#LOWTABLE10ACALLBOFANG;音乐播放初始设置UPLIGHT:MOVDPTR,#TABLE2;将TABLE2首地址赋数据指针GETDATA:MOVR0,#08HMOVR6,DPH;暂存指针值MOVR7,DPLLOOP:CLRA;A清零MOVDPH,R6MOVDPL,R7MOVCA,A+DPTR;表数据送AMOVP0,A;将A值送P0端口INCDPTR;数据指针加1,指向表中的下一数据MOVR6,DPHMOVR7,DPLJNBP1.2,START;P1.2口低电平则转START程序执行JNBP1.3,STOP;P1.3口低电平则转STOP程序执行JNBP1.4,DOWN;P1.4口低电平则转DOWN执行JNBP1.5,UP;P1.5口低电平则转UP左循环程序执行LJMPMUSIC;跳转音乐程序BACK:DJNZR0,LOOPCLRA;判断是上还是下MOVDPH,R6MOVDPL,R7MOVCA,A+DPTRJNZDOWNLIGHTLJMPUPLIGHTBOFANG:MOVTMOD,#11H;音乐播放初始设置MOVIE,#82HMOV40H,#00HRETMUSIC:MOVA,40H;音乐播放处理MOVDPH,50H;取表地址MOVDPL,51HMOVCA,A+DPTR;将表数据送累加器AJZSTOP2;累加器A为0则转移(说明歌曲播放完得重新播放)MOVR1,AANLA,#0FHRLAMOVR2,AMOVA,R1SWAPAANLA,#0FHJNZSINGCLRTR0LJMPW1SING:DECAMOV22H,ARLAMOVDPTR,#TABLE00MOVCA,A+DPTRMOVTH0,AMOV21H,AMOVA,22HRLAINCAMOVCA,A+DPTRMOVTL0,AMOV20H,ASETBTR0W1:LCALLDELAYINC40HJNZSTOP1;A不为0则转移LJMPBACKSTOP1:CLRTR0;音符结束重新播放处理LJMPBACKSTOP2:CLRTR0;整首歌曲播放结束处理MOVR2,#03HLCALLDELAYLCALLBOFANGLJMPBACKTABLE00:DW64580,64684,64777,64820DW64898,64968,65030,64260DW64400,64524,65058,63835,64021INT:PUSHPSWPUSHACCMOVTH0,21HMOVTL0,20HCPLP3.5POPACCPOPPSWRETIDELAY:MOVR4,#100;延时100msLOOP3:MOVR5,#0FFHLOOP4:DJNZR5,$DJNZR4,LOOP3DJNZR2,DELAYRETTABLE1:DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH,01HTABLE2:DB7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH,0FEH,00H;-TABLE10:DB0d4H,84H,94H,82H,92HDB12H,22H,82H,92H,02H,92H,82H,0d2HDB82H,92H,14H,84H,02H,0d1H,0d1HDB0c2H,0d2H,84H,0d2H,0d2H,82H,82HDB84H,82H,82H,94H,82H,0d2HDB82H,82H,82H,92H,02H,82H,82H,0d2HDB0c4H,84H,0d4H,92H,0d2HDB82H,0d2H,82H,92H,98HDB04H,94H,88HDB04H,94H,88HDB04H,94H,88HDB04H,94H,88H,04HDB32H,32H,22H,12H,02H,92H,12H,92HDB32H,32H,22H,12H,02H,92H,12H,92HDB32H,32H,22H,12H,02H,92H,12H,22HDB54H,44H,34H,12H,22HDB34H,22H,12H,02H,92H,12H,92HDB32H,32H,22H,12H,02H,92H,12H,92HDB32H,32H,22H,12H,02H,92H,12H,22HDB54H,44H,32H,22H,12H,92HDB00HEND五设计体会:历时2个星期的单片机课程设计,我从中受益匪浅。因为对我而言学到的不仅是专业知识,而且是团队的合作精神。作为一个团队,分工就显得尤为重要,我主要负责系统硬件电路设计和最终调试的任务,我和搭档互相帮助,彼此勉励,有问题一起寻求解决之道

温馨提示

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

评论

0/150

提交评论