欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于单片机音乐倒数定时器的设计文档格式.docx

    • 资源ID:6538755       资源大小:107.58KB        全文页数:34页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机音乐倒数定时器的设计文档格式.docx

    1、PROG-110 可编程器,是一种用数字简码控制的产品,它的特点是:自带一套用于输入数码的按键和显示程序的数码管,只要我们现场输入一列2位数码,编制的程序即能完成,即编,即用。每一种数字简码控制器,它都自带一套系统软件,每一套系统软件都有一套相对应的指令表,配套的指令表表明,只要输入什么样的数,程序将去做什么事,输入一列数,它就会按次序去完成你要求它做的所有的事。但是首先PROG-110模块总共只有6个I/O端口,这就必须扩展模块端口,用两部以上模块串联,但花钱要多;其次是程序过长,PROG-110模块的E2PROM存储器24C01只可输入128步程序;第三是受PROG-110模块跳转指令步数

    2、的限制。方案二:利用单片机、LCD显示器和压电喇叭单片机具有性能高、速度快、体积小、价格低、稳定可靠、应用广泛、通用性强等突出优点。它在硬件结构、指令系统、I/O端口、功率消耗及可靠性等方面均有其独特之处,其最显著的特点之一就是具有非常有效的控制功能。而LCD显示器具有体积小、重量轻、工作电压低、功耗极低、显示内容丰富、稳定可靠、成本低、控制驱动方便、接口简单易用、模块化结构紧凑等特点。综上所述,按照设计要求我选择第二种方案,即利用单片机和LCD显示器来实现定时倒数,通过压电喇叭来发出音乐。 1.2 单片机选择方案采用8051单片机8051单片机内部包含一个8位CPU、一个片内振荡器及时钟电路

    3、、ROM程序存储器、RAM数据存储器、两个16位定时器/计数器、可分别寻址64KB的程序存储器空间和64KB的数据存储器空间、32条可编程的I/O口线(4个8位并行I/O端口)、一个可编程全双工串行口、具有5个中断源和2个优先级的中断结构。可以有效实现本次设计中要求的各项功能。具体的设计流程可见图1:2单元电路设计2.1控制电路图1 设计流程图倒数计数器的控制电路可以见附图,其中主要分为以下几部分单片机80518051 基本资料如下:图2 8051引脚图 8051主要使用引脚功能说明如下: 8051的引脚40接+5V电源,引脚20接电源地线。 传统8051工作时钟的最高为12MHz。 EA引脚

    4、低电平动作用来存取外部程序ROM控制。 EA接地,由外部程序ROM来执行程序。 EA接高电平,由内部ROM来执行程序。 开机时必须加入芯片重置信号。(RESET) RESET信号高电平动作,高电平时产生芯片重置。 RESET信号低电平时,由程序ROM地址0开始执行程序。在本次设计中采用的8051外接电路如图3所示:图3 8051外接电路图8051系列的单片机的时钟方式分为内部方式和外部方式。内部方式就是在单片机的引脚18、19外接晶振,就够成了自激振荡器在单片机内部产生时钟脉冲信号。外部时钟方式是把外部已经有的时钟信号引入到单片机内部。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工

    5、作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间。用一个12MHz晶振和两个30Pf瓷片电容组成,为单片机提供标准时钟,其中两个瓷片电容可以增加电路的稳定性,可以抗噪声增加稳定性,不容易死机。在8051中之所以采用高性能的振荡电路,因为:1.单片机电子钟的计时脉冲基准是由外部晶振的频率经过12分频后提供,采用内部的定时/计数器来实现计时功能。所以,外接晶振频率精确度直接影响电子钟计时的准确性。2.单片机电子钟利用内部定时/计数器溢出产生中断(

    6、12M晶振一般为50ms)再乘以相应的倍率来实现秒、分、时的转换。大家都知道从定时/计数器产生中断请求到响 应中断需要3-8个机器周期,定时中断子程序中的数据入栈和重装定时/计数器的初值还需要占用数个机器周期,还有从中断入口转到中断子程序也要占用一定的机器周期。工作指示灯LED,送出低电平时,LED点亮,高电平时则使LED熄灭。即 程序执行中有情况产生时,LED闪动一下。 用于状态区分,如状态1闪动一下,状态2闪动两下。 程序执行中遇到特殊错误时,持续闪动。LCD显示器图4 LCD芯片接线图本次设计使用的倒数计时LCD控制,使用的是16字*2行设计。图4中为4位控制电路,以8051 P0的6调

    7、输出控制线来实现控制,P0还有提升电阻以增强其驱动能力,控制信号如下:R/W=0,LCD执行写入的动作,RS寄存器选择控制线。EN启用控制线。VO亮度调整控制引脚。D0D7双向的数据总线。必须在有亮度照明的地方,才能看见时间,若使用LCD,选择有背光显示的模块,则在夜晚或黑暗的场合也可以使用,有背光显示的LCD模块在引脚上,与无背光显示的模块兼容,指示价格较贵,一般显示的背光颜色为黄光,与手机的背光颜色相似。按键控制按键控制室控制程序执行时数据的输入或是特殊功能的设置及操作,使用8051端口2的4条输入口,由程序来控制,平时输入端为高电平,当有按键按下则相对位会呈现低电平,进过轮流扫描判断输入

    8、端是否为低电平,便可知道按下的是哪一个按钮。压电喇叭图5 压电喇叭接线图8051端口3的第4位是压电喇叭的驱动位,持续送出工作脉冲可以推动喇叭发出哔的声响,当工作频率越高时,声音越清脆,工作频率低时,声音则较低沉。继电器继电器接点说明如下:NC:常闭点。以COM为共同点,NC与COM在平时是呈导通。COM:共同点。输出控制接点的共同接点。NO:常开点。NO与COM平时呈开路的状态,当继电器动作时,NO与COM导通,NC与COM则呈开路状态。电源输入J1为+5V电源输入,当电源加入时电源指示灯LED将亮起,用哪个以指示电源供给正常,定时器在倒数时间到后压电喇叭会发出音乐旋律,并启动继电器使其状态

    9、为ON,控制继电器的ON/OFF状态,可以直接控制家电开关。2.2控制程序本课程设计中,可以学习利用单片机定时器设计时间计时处理,其时分秒控制,定时器0计时中断程序每个5ms中断一次当做一个计数,每中断一次则计数加1,当计数200次时,表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了,若计数到了则将相关变量清除为0。单片机定时器负责定时的技术,不会因为案件处理而中断时间描述的增加,时,分,秒数据是存在变量内并写入LCD而显示相关时间的。在主控程序循环中主要工作为扫描是否有按键,若有按键则做相应的功能处理,同时也检查所倒数的时间是否为0,若为0表示倒数的时间终了,应该执

    10、行想对应的工作了,图为主程序控制工作流程。时间计时处理程序时等过了1s 后,则更新时间数据,将最新剩余倒数的分秒的时间数据转换为数字数据,并显示在LCD上。程序中如何判断是否已过了1s?可以设一旧秒数变量,当新旧秒数变量不一样时,则表示已过了1s,要做相关程序处理了。倒数计时闹铃的动作利用时间计时处理来做秒数倒数,当所设置的时间为0,压电喇叭则不断发出音乐声,LED持续闪动,启动继电器,有继电器可以控制家电开启或关闭。音乐声的产生也是有定时器来产生固定频率的方波信号推动压电喇叭,发出旋律。而定时器原先已利用设计时间计时处理了,怎么能在设计来做音乐旋律的控制?在此设计定义一个音乐演奏标志,若音乐

    11、演奏标志为0则执行中断程序中计时程序的部分程序,若音乐演奏标志为1则执行音乐发生控制程序。因此只要适当的运用程序设计技巧,计时中断程序中可以做许多种不同的工作,而这些工作是需要特定一段时间久必须要被触发而被执行的程序。倒数计数器控制程序文件名为DSDS.ASM。注意:在程序中128行有以下的指令:SINCLUDE (DSDS1.ASM); 加载程序一起来汇编及编译表示在主程序DSDS.ASM中还会自动加载另一程序DSDS1.ASM程序一起进来汇编及编译,只是为了方便程序编译用,一些测试正确的程序代码可以分别存档好方便管理,此外整个程序源代码长度也不至于太长,不方便编辑。DSDS1.ASM主要的

    12、程序代码功能为以定时器演奏歌曲旋律的控制。3软件程设计和调试3.1延时时间的计算若我们想设计程序执行100ms时间延时,程序可以设计如下DELAY: MOV R6, #50D1:MOV R7,#100 DJNZ R7,$ DJNZ R6,D1 DJNZ R5,DELAY RET如果震荡频率为12MHz则执行时间按为T=1+50*(1+100*2)+2+2+2us =10.057ms如果执行10次此子程序,则延时时间约为100ms3.2工作方式设计本次设计中采用的定时器模式0来设计,在此方式中T0、T0可以进行13位的计时,其值保存在两个8位的定时寄存器中。对于其中任一定时器,工作时钟可以由内部

    13、或是外部来提供,由C/T位来决定做定时器还是计数器。定时器的时钟为系统工作时钟除以12.此次试验中采用12MHz石英震荡器则产生1us的计数时间脉冲宽度。本次实验的定时器计时时间为5ms,因此定时器0需计数5000次,其定时器初值的加载可以计算如下:TL0=(8192-5000).MOD.32TL1=(8192-5000)/32执行后的结果为,产生的脉冲宽度为T=5ms3.3有定时器产生各种频率的声音我们可以设定发音的频率来改变声音产生音乐,计时时间长短也是按照发音的频率而定的。由频率值推得定时器计数初值由下关系式得到:T=1/f(us) ;方波宽度Co=(int)t/2 ;定时器所得计数的次

    14、数Lo=(8192-co)%32 ;计数初值低字节Hi=(8192-co)/32 ;计数初值高字节软件的编译和调试使用的是KEIL软件,文件格式是ASM。3.4子程序说明DSDS.ASM 主要控制子程序说明如下:INIT:初始化控制变量。INIT_TIMER:初始化定时器接口,使用定时器0的模式0计时。T0_INT:定时器0计时中断程序每隔5ms中断一次,或是做音乐演奏控制。SHOW_DIG:在LCD的第一行显示数字。SHOW_DIG2: 在LCD的第二行显示数字。SET_LCD:对LCD做初始化工作。CLR_LINE1:清除LCD的第一行显示字符。CLR_LINE2:清除LCD的第二行显示字

    15、符。LCD_PRINT:在LCD的第一或第二行显示字符。WCOM:以4位控制方式将命令写至LCD。WDATA:以4位控制方式将数据写入LCD。LCDP1:在LCD的第一行显示字符。LCDP2: 在LCD的第二行显示字符。CONV1:将分秒的倒数数据转换为数字数据系那是在LCD第二行。DOWN_TIME:检查是否计时终了。SET_TIME:设置所要倒数的时间。BZ:压电喇叭发出哔一声。TIME_OUT:计时终止启动音乐演奏。DSDS1.ASM主要控制子程序说明如下:MUSIC:以定时器0计时中断程序做音乐演奏控制。PLAY:演奏单音控制。PLAY_SONG:测试演奏音乐。SOUND_ON:启动定

    16、时器0开始计时,是喇叭发声。SOUND_OFF:停止定时器0计时动作,喇叭静音。LOAD_VALUE:一查表法由音阶计数值来载入定时器计数初值。3.5具体程序解释下面是对本次程序的说明解释,定义使用软件,文件名称,每个键的作用。;- DSDS.ASM 8051 COUNT DOWN TIMER WITH LCD+MUSIC K1: SET MIN 0-60 K2:UP K3:DOWN K4:OK K2: 5 MIN K3:10 MIN K4:20 MIN- 5 mS isr MOV TL0,#(8192-5000).MOD.32 MOV TH0,#(8192-5000)/32以下是开始对各个变

    17、量的具体定义,加载字节,确定时间常数,时间变量的存放,倒数的分钟秒钟的存放地址,各变量的含义。LOA EQU 24HIA EQU 99CO EQU 200 ;5ms中断计数时间常数,计数200次表示1sMUB EQU 20H.0HOUR EQU 30HMIN EQU 31HSEC EQU 32HDEDA EQU 33H ; 5 mS计数值SEC0 EQU 34H ;存放旧的秒数X EQU 35H ;LCD 显示的地址MM EQU 36H ; 倒数时间分钟数SS EQU 37H ; 倒数时间秒钟数LO EQU 38HHI EQU 39HTC EQU 3AH以下是对四个按键的定义K1 EQU P2

    18、.4K2 EQU P2.5K3 EQU P2.6K4 EQU P2.7以下是对LCD、继电器、喇叭、灯的定义RS EQU P0.0EN EQU P0.1RY1 EQU P3.5RY2 EQU P3.6SPK EQU P3.4WLED EQU P3.7程序开始,代码由地址0开始执行,使用的是定时器0中断ORG 0H JMP START ORG 0BH ;T0中断 JMP T0_INTSTART:SETB MUB ;测试音乐演奏 CALL MUSIC CLR EN ;LCD 的状态设为OFF CLR RY1 CLR RY2 CLR MUB ;清除音乐演奏标志 CALL LED_BL CALL SE

    19、T_LCD CALL BZ CALL INIT CALL INIT_TIMER CALL MENULOOP:CALL DOWN_TIME JB K1,L1 ;对按键进行检测 JNB K1,$ 按键1按下: MOV MM,#3 MOV SS,#1 MOV DPTR,#MADJ MOV A,#1 CALL LCD_PRINT CALL SET_TIME MOV DPTR,#MMENU JMP LOOPL1: JB K2,L2 JNB K2,$按键2按下: MOV MM,#5L2: JB K3,L3 JNB K3,$按键3按下: MOV MM,#10L3: JB K4,L4 JNB K4,$ 按键4

    20、按下: MOV MM,#20L4:JMP LOOP ;继续循环执行$INCLUDE (DSDS1.ASM)以下是在显示器上显示的时间消息:-LMESS1: DB LCD LINE 1 .,0LMESS2:TIME TITLE:DSDS.ASM 8051 DOWN COUNT WITH LCD+MUSIC以下是初始化控制变量MOV DEDA,#0 ;将所有时间计时清为0MOV SEC0,#0 MOV SEC,#0 MOV MIN,#0 MOV HOUR,#0;定义倒数时间:以下是初始化定时器接口,使用定时器0模式0计时 MOV TMOD,#00000000B MOV IE, #10000010B

    21、 MOV TL0,#LOA MOV TH0,#HIA SETB TR0JNB MUB,W0 ;T0计时中断程序每5ms中断一次,音乐演奏标志为0时则执行计时程序 MOV TL0,LO ;对音乐的加载 MOV TH0,HI CPL SPK RETIW0:PUSH ACC ;对时间计数的初始化 INC DEDA判断是否为1S MOV A,DEDA CJNE A,#CO,W1 MOV DEDA, #0 CPL WLED INC SEC MOV A,SEC CJNE A,#60,W1 判断是否1分到了 INC MIN MOV A, MIN判断是否1小时到了 INC HOUR MOV A, HOUR C

    22、JNE A,#24,W1 MOV SEC,#0 ;清除时间变量为0W1: POP ACC ;将累加器有堆栈取出以下是使LCD第一行显示 A:DIG X: LCD X POS SHOW ON LCD LINE1MOV B,#10 DIV AB ADD A,#30H PUSH B MOV B,X CALL LCDP1 POP B MOV A,B INC X以下是使LCD第二行显示 SHOW ON LCD LINE2 MOV B,#10 DIV AB CALL LCDP2以下是LCD的控制程序设计:SET_LCD:CLR EN ;启动失效 CALL INIT_LCD ;初始化LCD MOV R5,#

    23、10 CALL DELAY MOV DPTR,#LMESS1 MOV A,#1 ;显示在第一行 MOV DPTR,#LMESS2 MOV A,#2 ;显示在第二行LCD控制指令初始化:INIT_LCD1:MOV A,#28H CALL WCOM MOV A,#0CH MOV A,#0EH MOV A,#01H清除LCD的第一行字符: MOV A,#80H MOV R0,#24CLR1: MOV A,# CALL WDATA DJNZ R0,CLR1在LCD的第一行或第二行显示字符: CJNE A,#1,LINE2 ;判断是否为第一行LINE1: CALL CLR_LINE JMP FILLLINE2: MOV A,#0C0HFILL: ;填入字符 CLR A MOVC A,A+DPTR CJNE A,#0,LC1LC1:写入数据 INC DPTRCLR_LINE:清除该行的LCD字符CL1: DJNZ R0,CL1DE: MOV R7, #5 ;短暂延时EN1:短脉冲产生启用信号 SETB EN CALL DE CLR ENINIT_LCD:4位I/O控制LCD接口初始化 MOV P0, #30H CALL EN1 MOV P0, #20H CALL E


    注意事项

    本文(基于单片机音乐倒数定时器的设计文档格式.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开