课程设计-数字音乐盒

合集下载

数字音乐盒的设计讲解

数字音乐盒的设计讲解

单片机与接口技术课程设计(论文) 数字音乐盒的设计院(系)名称电子与信息工程学院专业班级通信121班学号*********学生姓名潘凤麟指导教师高影讲师起止时间:2015.7.4—2015.7.13课程设计(论文)任务及评语院(系):电子与信息工程学院教研室:通信工程摘要单片机是把CPU、存储器和I/O接口集成在一片半导体硅片上的微型计算机。

本次课程设计所设计出的数字音乐盒就是基于单片机的一个系统。

它的的硬件电路部分采用Proteus软件进行设计,以AT89C51单片机作为主芯片,用其I/O口产生不同频率的方波来驱动蜂鸣器发出不同的音调,再配以LCD显示屏和4*4键盘实现必要的显示和控制。

软件部分采用Keil与Proteus进行联合仿真,并用汇编语言来设计程序,把用Keil生成的HEX文件写入到单片机中即可实现设计所要求的功能。

通过Proteus与Keil的联合仿真,该数字音乐盒可播放3首不同的歌曲,并可通过LCD显示屏显示歌曲名称或序号;可通过4*4键盘实现对歌曲的选择,暂停,与播放功能,故仿真结果符合设计要求。

关键词:数字音乐盒;LCD显示屏;键盘目录第1章绪论 (1)1.1 AT89C51简介 (1)1.2 仿真环境简介 (2)1.3本文研究内容 (3)第2章数字音乐盒硬件电路图的设计与分析 (4)2.1 总体设计方案分析 (4)2.2 数字音乐盒部分电路原理说明 (4)2.2.1 蜂鸣器驱动部分电路图与原理说明 (4)2.2.2 LCD显示部分电路图与原理说明 (5)2.2.3 键盘控制部分电路图与原理说明 (6)第3章数字音乐盒的软件设计 (7)3.1 数字音乐盒总体软件程序流程图与分析 (8)3.2 数字音乐盒各子程序的设计与分析 ......................... 错误!未定义书签。

3.2.1 系统初始化子程序设计与分析 (9)3.2.2 LCD显示子程序设计与分析 (10)3.2.3 蜂鸣器频率控制子程序设计与分析 (11)3.2.4 键盘控制子程序设计与分析 (11)第4章仿真结果与分析 (12)4.1 仿真结果 (12)4.2 仿真步骤与结果分析 (13)第5章总结 (16)参考文献 (17)附录Ⅰ (18)附录Ⅱ (19)附录Ⅲ (20)第1章绪论1.1 AT89C51简介所谓单片机,是指把CPU、存储器和I/O接口集成在一片半导体硅片上的微型计算机。

《数字音乐盒》设计报告

《数字音乐盒》设计报告

《数字音乐盒》设计报告
设计目标:
本数字音乐盒旨在提供一种方便、易用的音乐播放体验,让用户可以随时随地享受自己喜欢的音乐。

具体设计要求如下:
1. 支持多种音频格式,如MP3、FLAC等。

2. 采用简洁、直观的用户界面,方便用户操作。

3. 支持多种播放模式,如顺序播放、随机播放等,并且能够记忆用户播放模式。

4. 提供多种音效调节和均衡器设置,使用户可以自由调整音乐效果。

5. 支持歌词显示功能,使用户可以更好地理解音乐。

6. 支持歌曲收藏功能,使用户可以方便地收藏自己的喜爱歌曲。

设计思路与方案:
本数字音乐盒采用嵌入式系统设计,主要硬件部件包括音频芯片、显示屏幕和按键模块,其中音频芯片为核心部件,支持多种音频格式的解码和播放。

用户界面设计上,采用五向导航及确认键来进行操作,主界面分为“音乐播放”和“歌曲收藏”两大模块。

在“音乐播放”模块中,
用户可以选择不同的播放模式,包括顺序播放、随机播放和循环播放。

在播放过程中,用户可以通过前进、后退、暂停等操作来控制音乐播放进程。

同时,也提供了多种音效调节和均衡器设置,用户可以自行选择调整音乐效果。

在播放过程中,歌词会自动显示在屏幕上,方便用户理解歌曲。

在“歌曲收藏”模块中,用户可以收藏自己喜爱的歌曲,方便日后收听。

总结:
本数字音乐盒设计主要针对音乐爱好者,通过简洁、易用的界面设计和多种音效、播放模式等功能的设计,为用户提供了更为便捷、自由的音乐播放体验。

同时,歌曲收藏功能也使用户可以随时查找和收听自己喜爱的歌曲,满足用户对音乐的品质需求。

《数字音乐盒》课程设计

《数字音乐盒》课程设计

《数字音乐盒》课程设计报告专业:通信工程班级:0801姓名:张雨阳指导教师:李晶二零一一年六月二十二日目录1、设计任务和要求 (2)2、总体设计 (2)3、硬件设计 (3)3.1硬件电路 (3)3.2原理说明 (3)4、软件设计 (3)5、仿真、安装和调试 (4)6、收获与体会 (5)参考文献 (6)附件1:元件清单 (7)附件2: 总电路图 (7)附件3:音乐程序 (8)1、设计任务和要求(1)利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演乐曲(内存两首乐曲)。

(2)采用七段数码管显示当前播放的歌曲序号。

(3)可通过功能键选择乐曲,暂停,播放,上一曲,下一曲。

2、总体设计(1)要产生音频脉冲,只要算出某一音频的周期(1/音频),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O口反相,就可在I/O脚上得到此频率的脉冲(2)利用8051的内部定时器使其工作在计数器模式MODE1下,改变记数值TH0及TL0以产生不同频率的方法。

例如频率为523HZ,其周期T=1/523=1912微秒,因此只要令计数器定时956/1=956在每记数9次时将I/O口反相,就可得到中音D0(523HZ)。

记数脉冲值与频率的关系公式如下:N=Fi/2/Fr N:记数值Fi:内部计时一次为1微秒.故其频率为1MHZFr;要产生的频率(3):起记数值的求法如下:T=65536-N=65536-Fi/2/Fr例如:设K=65536,F=1000000=Fi=1MHZ,求低音D0(523HZ),高音的D0(1046HZ)的记数值。

T=65536-N=65536-Fi/2/Fr=65536-1000000/2/Fr=65536-500000/Fr低音D0的T=65536-500000/262=63627中音D0的T=65536-500000/523=64580低音D0的T6=5536-500000/1047=650593、硬件设计3.1 硬件电路本设计中用到89C51单片机,喇叭,七段显示数码管LED。

数字音乐盒的设计与实现

数字音乐盒的设计与实现
716
86
Fa
1397
43
43
Fa#
370
1351
162
Fa#
740
676
81
Fa#
1480
41
41
So
392
1276
153
So
784
638
77
So
1568
38
38
So#
415
1205
145
So#
831
602
72
So#
1661
36
36
La
440
1136
136
La
880
568
68
La
1760
34
34
La#
附录(关键部分程序清单)
#in elude <reg51.h>
#defi ne ucharu nsig nedchar
#defi neuint un sig nedi nt
#define LEDLen 6
xdataunsignedcharOUTBIT _at_0x8002;//位控制口
xdataunsignedcharOUTSEG _at_0x8004;//段控制口
社,20154பைடு நூலகம்
[2]张仁彦,高正中,黄鹤松.单片机原理及应用.北京:机械工业出版社,
2016.3.
[3]付先成,,高恒强,蔡红娟.单片机原理与C语言程序设计.武汉:华中科技大
学出版社,2015.8.
[4]张校珩.单片机C语言编程100例■北京:中国电力出版社,2014.1.
⑸唐颖■单片机综合设计实例与实验■北京:电子工业出版社,2015.1.

数字音乐盒课程设计

数字音乐盒课程设计

数字音乐盒课程设计一、课程目标知识目标:1. 让学生掌握数字音乐的基础知识,包括音符、音阶、节奏等概念;2. 培养学生运用电子设备进行音乐创作的能力,了解数字音乐盒的基本原理;3. 让学生了解不同音乐风格的特点,拓展音乐视野。

技能目标:1. 培养学生运用音乐软件进行创作、编辑和播放数字音乐的能力;2. 提高学生团队协作能力,学会与他人共同完成音乐作品;3. 培养学生创新思维,能够独立设计并制作具有个人特色的数字音乐作品。

情感态度价值观目标:1. 培养学生对音乐的热爱和兴趣,激发他们积极参与音乐活动的热情;2. 培养学生尊重他人作品,树立正确的版权意识;3. 通过音乐创作,培养学生审美观念,提高审美情趣。

分析课程性质、学生特点和教学要求,本课程目标旨在让五年级学生在掌握音乐基础知识的基础上,运用现代科技手段创作音乐作品。

课程将帮助学生将所学知识应用于实际操作中,培养他们的创新精神和团队协作能力,同时提高音乐素养,为今后的音乐学习打下坚实基础。

二、教学内容1. 数字音乐基础知识:音符、音阶、节奏、拍子等基本概念的学习,使学生能够理解音乐的基本元素。

- 教材章节:第一章《音乐的基础知识》- 内容列举:音符的识别、音阶的构成、节奏的练习。

2. 数字音乐创作:运用音乐软件(如GarageBand)进行音乐创作,了解数字音乐盒的工作原理。

- 教材章节:第二章《数字音乐创作》- 内容列举:音乐软件的介绍与操作、音色的选择与搭配、简单旋律的创作。

3. 音乐风格学习:学习不同音乐风格的特点,分析经典作品,培养学生音乐鉴赏能力。

- 教材章节:第三章《音乐风格》- 内容列举:流行音乐、古典音乐、民族音乐等风格的学习与鉴赏。

4. 团队协作与创作实践:分组进行音乐创作,培养学生团队协作能力和创新思维。

- 教材章节:第四章《音乐创作实践》- 内容列举:团队协作流程、音乐创作方法、作品展示与评价。

5. 音乐作品展示与评价:展示学生创作的数字音乐作品,进行自评、互评和教师评价,提高学生的审美观念。

8086音乐盒课程设计

8086音乐盒课程设计

8086音乐盒课程设计一、课程目标知识目标:1. 学生能理解8086音乐盒的基本工作原理和组成结构。

2. 学生掌握使用8086处理器编程,控制音乐盒播放不同旋律的方法。

3. 学生了解音乐盒中音符与频率的关系,能运用此关系创作简单旋律。

技能目标:1. 学生能够运用汇编语言编写程序,实现音乐盒的基本控制功能。

2. 学生通过实践操作,培养动手能力和问题解决能力,提升编程技巧。

3. 学生学会运用逻辑思维和算法设计,实现对音乐盒旋律的精确控制。

情感态度价值观目标:1. 学生培养对计算机硬件和编程的兴趣,激发探索精神。

2. 学生在团队协作中,学会沟通与分享,培养合作精神。

3. 学生通过创作音乐盒旋律,培养审美情趣,提高人文素养。

本课程针对高中年级学生,结合学科特点,将理论知识与实践操作相结合,旨在提高学生的编程技能、动手能力和创新意识。

课程目标具体明确,可衡量,以便于学生和教师在教学过程中有针对性地进行评估和调整。

通过本课程的学习,学生将能够掌握8086音乐盒的相关知识,提升编程技能,并在创作过程中培养良好的情感态度价值观。

二、教学内容1. 8086音乐盒硬件组成及工作原理- 8086处理器基础知识- 音乐盒硬件结构及功能- 音符与频率的关系2. 汇编语言编程基础- 汇编语言指令系统- 程序结构及编写规范- 常用寄存器及功能3. 音乐盒编程控制- 软件编程控制硬件原理- 音乐盒播放旋律的编程方法- 实例分析与操作演示4. 实践操作与作品创作- 编程练习:控制音乐盒播放指定旋律- 创作实践:自主设计音乐盒旋律- 团队协作:分组讨论、展示与评价教学内容根据课程目标,结合教材相关章节,制定详细的教学大纲。

教学安排注重科学性和系统性,从基础知识到实践操作,逐步引导学生掌握8086音乐盒的相关知识。

在教学过程中,教师需关注学生个体差异,合理安排教学进度,确保学生能够扎实掌握所学内容。

同时,通过实践操作和作品创作,培养学生动手能力、创新意识和团队协作精神。

数字逻辑课程设计音乐盒

数字逻辑课程设计音乐盒

数字逻辑课程设计音乐盒一、教学目标本课程旨在通过音乐盒的制作,让学生掌握数字逻辑的基本原理和技能,培养学生的创新意识和动手能力。

具体目标如下:1.知识目标:使学生了解音乐盒的工作原理,理解数字逻辑的基本概念和电路组成。

2.技能目标:培养学生运用数字逻辑设计简单电路的能力,以及使用相关工具和软件进行编程和调试的能力。

3.情感态度价值观目标:培养学生对科技创新的热爱,增强团队协作意识,提高问题解决能力。

二、教学内容教学内容主要包括音乐盒的工作原理、数字逻辑基本电路、编程与调试等。

具体安排如下:1.音乐盒的工作原理:介绍音乐盒的基本结构和工作原理,使学生了解音乐盒是如何产生音乐的。

2.数字逻辑基本电路:讲解数字逻辑电路的组成、功能和应用,包括编码器、译码器、触发器等。

3.编程与调试:教授如何使用相关工具和软件进行编程,让学生动手实践,调试并优化电路。

三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。

1.讲授法:用于讲解音乐盒的工作原理和数字逻辑基本电路。

2.讨论法:在课堂上学生进行讨论,分享学习心得和解决问题的方法。

3.案例分析法:分析具体案例,使学生更好地理解数字逻辑电路在实际应用中的作用。

4.实验法:让学生动手制作音乐盒,培养实际操作能力和团队协作精神。

四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备等。

1.教材:选用权威、实用的教材,为学生提供系统的数字逻辑知识。

2.参考书:提供丰富的参考资料,帮助学生拓展知识面。

3.多媒体资料:制作精美的课件和视频,直观地展示音乐盒的制作过程。

4.实验设备:提供充足的实验设备,确保每个学生都能动手实践。

五、教学评估本课程的评估方式包括平时表现、作业和考试等,以全面客观地评价学生的学习成果。

1.平时表现:评估学生在课堂上的参与度、提问和回答问题的表现,以及团队合作和沟通能力。

2.作业:布置适量的作业,评估学生的理解和应用能力,以及对数字逻辑电路的掌握程度。

《数字音乐盒》设计报告

《数字音乐盒》设计报告
精英团队,稳步发展:我们拥有丰富的人力资源,主要类型有学术研究,软件开发,管理信息技术,图形技术,市场营销等。公司目前拥有骨干四名,同时扮演着员工角色,其中都是本科生。公司在产品开发和设计时查阅了不少专家的相关著作和论文,令我公司在科研,开发和市场营销以及售后服务等方面齐头并进。
持续创新,系列服务:经过很艰辛的努力,我们已经取得了一定的成果,并将在接下来的一段时间推出由本公司自主研发的音乐盒。同时,我们还会为用户提供相关的技术服务,方案制作和系统开发的服务。
图1-2音乐盒硬件电路原理图
3:音符频率和节拍的产生方法
3.1音符频率我们知道,之所以 Nhomakorabea不同的音调正是因为不同的音符对应不同的频率。表1-3给出了我们从低音1到高音7所对应的频率。即在编程时我们要根据音调的变化调整频率的变化。
3.2利用定时器/计数器0产生音符频率
利用单片机的内部定时器/计数器0,使其工作在模式1,定时中断,然后控制P3.7引脚的输出每次取反,就可以在P3.7的引脚输出相应的方波频率。改变计数初值就可以改变频率。即要产生音频输出方波,首先要算出某一个音频的周期(1/f),然后将此周期除以2,得到半个周期的时间。定时器的定时时间等于半个周期,定时时间到就将输出脉冲取反,重复上述过程,就可以在P3.7脚上得某一音频的脉冲。
例如:中音1(DO)的频率=523Hz,周期T=1/523s=1912毫秒;
定时器/计数器0的定时时间为:T/2=956毫秒;
定时956毫秒的计数值=定时时间/机器周期=956毫秒/1毫秒=956(时钟频率=12MHz)
装入TH0、TL0的计数初值THTL=65536-956=64580.
将64580装入TH0、TL0寄存器中,启动T1工作后,每计数956次时将产生溢出中断,进入中断服务程序是,每次对P3.0引脚的输出值进行取反,就可得到中音DO(523Hz)的音符频率。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计-数字音乐盒课程设计要求:1.利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少三首乐曲,每首不少于30秒)2.采用LCD显示信息3.开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称)4.可通过功能键选择乐曲,暂停,播放。

5.选作内容:显示乐曲播放时间或剩余时间硬件电路:本设计中用到了89C51单片机,4*4键盘,蜂鸣器,16*2 LCD,七段显示数码管LED。

原理说明:当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。

同时启动定时器T1,显示乐曲播放的时间,并动LCD,显示歌曲号及播放时间。

也可在LED显示歌曲号。

(1)硬件电路中用P1.0~P1.7控制按键,其中P1.0~P1.3扫描行,P1.4~P1.7扫描列。

(2)用P0.0~P0.7,P2.0~P2.7控制LED,其中P0.0~P0.7控制七段码a,b,c,d,e,f,g,用P2.0~P2.7为数码管位选信号。

(3)用,P2.0~P2.2作为LCD的RS,R/W,E的控制信号。

用P0.0~P0.7作为LCD的D0~D7的控制信号。

(4)用P3.7口控制蜂鸣器。

(5)电路为12MHZ晶振频率工作,起振电路中C1,C2均为30pf。

电路图:【试验时请仔细阅读后文说明!此图仅为我站制作,并不代表原作者意愿;若您制作成功,望在网络推广。

】实验控制流程图如下:S BIT P2.0 ;定义液晶显示端口标号RW BIT P2.1E BIT P2.2;******************************************** L50MS EQU 60HL1MS EQU 61HL250MS EQU 62HSEC EQU 65HMIN EQU 64HHOU EQU 63H;******************************************* org 0000hljmp mainORG 000BHLJMP TT0ORG 001BHLJMP T1INTorg 1000hmain:;-----------------------;液晶初始化MOV SP,#70HMOV P0,#01H ;清屏CALL ENABLEMOV P0,#38H ;8位,2行显示lCALL ENABLE MOV P0,#0FH ;屏显on,光标on,闪烁on lCALL ENABLE MOV P0,#06H ;计数地址加1,显示幕on lCALL ENABLE ;-------------------------------内存初始化lcall initil ;------------------------------- key1: lcall key lcall modd ljmp key1 ;---------------------键盘扫描key: nop nop lcall ks jnz k1 ;有按键转到K1 lcall kaiji lcall SOP xn: ljmp key k1: lcall modd lcall modd lcall ks jnz k2 ljmp key k2:mov R2,#0feh ;读键盘mov R4,#00hk3:mov A,R2mov P1,Amov A,P1JB ACC.4,L1 ;为1跳转,第一行无按键mov a,#00hljmp lkL1:jb acc.5,L2mov a,#04hljmp lkL2:jb acc.6,L3mov a,#08hljmp lkL3:jb acc.7,next1mov a,#0ch;------------------------------------------------------- lk:add a,R4push acck4:lcall delay1 ;若同时有其他按键,则等待lcall ksjnz k4;--------------------------------------------------------mov r3,#07h clr a mov r0,#30h mov r1,#31h mm1: mov a,@r1 mov @r0,a inc r0 inc r1 djnz r3,mm1 pop acc mov @r0,a RET;------------------------------------------------------ next1: inc R4 ;------列扫描mov a,R2 JNB acc.3,n2 ljmp n1 n2:ljmp key n1:rl a mov R2,a ljmp k3 ;---------------------------------------------- ks:mov a,#0f0h ;判断P1口mov P1,anop nop mov a,P1 cpl a anl a,#0f0h RET;-------------------------------------------------- DELAY1: SETB RS0 dl: mov R5,#0ah dl2: mov R6,#63 dl3: nop nop djnz R6,dl3 djnz R5,dl2 CLR RS0 RET;--------------------------------------------------- ;30H-37H初值为零;---------------------------------------------------- initil: mov r3,#08h mov r0,#30h m1: mov @r0,#00h inc r0djnz r3,m1 RET ;---------------------------------------------------- ;显示;--------------------------------------------------- modd: MOV P0,#8EH lCALL ENABLE mov A,37H mov DPTR,#TABLE3 MOVC A,@A+DPTR lCALL WRITE2 RET ;-------------------------------------------------- ;开机提示字;------------------------------------------------- kaiji: mov a,37h cjne a,#0fh,DFF MOV P0,#80H ;设光标地址lCALL ENABLE MOV DPTR,#TABLE1;写数据lCALL WRITE1 DFF: RET ;---------------------------------------------- ;按键值播放歌曲;---------------------------------------------- SOP:mov a,37h cjne a,#01h,A11 LCALL MODD MOV 52H,#HIGH TABLE10 MOV 53H,#LOW TABLE10 LCALL INITILE2 lcall MAIN0 A11: CJNE A,#02H,A22 LCALL MODD MOV 52H,#HIGH TABLE20 MOV 53H,#LOW TABLE20 LCALL INITILE2 lcall MAIN0 A22: CJNE A,#03H,A33 LCALL MODD MOV 52H,#HIGH TABLE30 MOV 53H,#LOW TABLE30 LCALL INITILE2 lcall MAIN0 A33: CJNE A,#04H,A44 LCALL MODD MOV 52H,#HIGH TABLE40 MOV 53H,#LOW TABLE40 LCALL INITILE2 lcall MAIN0 A44:CJNE A,#05H,A55 LCALL MODD MOV 52H,#HIGH TABLE50 MOV 53H,#LOW TABLE50 LCALL INITILE2 lcall MAIN0A55:CJNE A,#06H,A66 LCALL MODD MOV 52H,#HIGH TABLE60 MOV 53H,#LOW TABLE60 LCALL INITILE2 lcall MAIN0A66:CJNE A,#07H,A77 LCALL MODD MOV 52H,#HIGH TABLE70 MOV 53H,#LOW TABLE70 LCALL INITILE2 lcall MAIN0A77:CJNE A,#08H,A88 LCALL MODD MOV 52H,#HIGH TABLE80 MOV 53H,#LOW TABLE80 LCALL INITILE2 lcall MAIN0A88:CJNE A,#09H,A99MOV 52H,#HIGH TABLE90 MOV 53H,#LOW TABLE90 LCALL INITILE2 lcall MAIN0 A99: CJNE A,#0AH,AAA LCALL MODD MOV 52H,#HIGH TABLE100 MOV 53H,#LOW TABLE100 LCALL INITILE2 lcall MAIN0 AAA:RET ;****************************************** INITILE2: MOV L50MS,#20 MOV L1MS,#00H MOV L250MS,#00H MOV SEC,#00H MOV MIN,#00H MOV HOU,#00H MOV A,HOU MOV B,#10 DIV AB ADD A,#30H ;将BCD吗转化为ASIIC码MOV P0,#0C8H ;显示小时十位CALL ENABLE CALL WRITE2 MOV A,BMOV P0,#0C9H ;显示小时个位CALL ENABLECALL WRITE2MOV A,#3AHMOV P0,#0DH ;显示冒号CALL ENABLECALL WRITE2MOV A,MINMOV B,#10DIV ABADD A,#30HMOV P0,#0CBH ;显示分十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0CCH ;显示分个位CALL ENABLECALL WRITE2MOV A,#3AHMOV P0,#0CDH ;显示冒号CALL ENABLECALL WRITE2MOV A,SECMOV B,#10DIV ABADD A,#30HMOV P0,#0CEH ;显示秒十位CALL WRITE2MOV A,BADD A,#30HMOV P0,#0CFH ;显示秒个位CALL ENABLECALL WRITE2MOV P0,#0C0H ;设光标地址CALL ENABLEMOV DPTR,#TABLE2;写数据CALL WRITE1RET;*********************************************写指令ENABLE:CLR RSCLR RWCLR ELCALL DELAYSETB ERET;**********************************************写数据WRITE1:MOV R1,#00HA1:MOV A,R1MOVC A,@A+DPTRCALL WRITE2INC R1CJNE A,#0FEH,A1 ;未到字符串末尾继续RETWRITE2:MOV P0,ASETB RSCLR RWCLR ECALL DELAYSETB ERET;********************************************** DELAY:MOV R4,#05D1:MOV R5,#0FFHDJNZ R5,$DJNZ R4,D1RET;---------------------------------------------- TAB:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h db 80h,90h,88h,83h,0c6h,0a1h,86h,8eh TAB1:db 89h,86h,0c7h,0c7h,0c0h TAB2:db 0c6h,88h,0c0h TABLE1:DBWELCOM HERE,0FEH TABLE2:DBDFF WB ,0FEH TABLE4:DB CAU,0FEH TABLE3:DB 30H,31H,32H,33h DB 34H,35H,36H,37H DB 38h,39H,41H,42HDB 43H,44H,45H,46H;-------------------------------------------------------------------- ;播放歌曲程序;-------------------------------------------------------------------- MAIN0:MOV TMOD,#11HMOV IE,#8aH;MOV TH1,#3cH;MOV TL1,#0b0Hlcall ksjnz TTM12MOV 40H,#00H;--------------------------------------------------------- NEXT20:MOV A,40HMOV DPH,52HMOV DPL,53HMOVC A,@A+DPTRMOV R2,AJZ STOPANL A,#0FHMOV R1,AMOV A,R2SWAP AANL A,#0FHJNZ SINGCLR TR0JMP W1;----------------------------------------------------------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 SETB TR1 W1: LCALL DELAY30 INC 40H LCALL KS ;------有键跳出JNZ STOP LJMP NEXT20 ;----------------------------------------------------------- STOP: CLR TR0 CLR TR1 LJMP MAIN0 ;---------------------------------------------------------- TTM12:MOV A,37H CJNE A,#0EH,TTM13 CLR TR1 LCALL DELAY1 TTM120: LCALL KS LCALL DELAY1 JZ TTM120 LCALL K2 MOV A,37H CJNE A,#0EH,TTM120 SETB TR1 LJMP NEXT20 TTM13: CJNE A,#0CH,TTM14 MOV A,52H INC A MOV 52H,A MOV A,53H INC A MOV 53H,A MOV A,36H INC A MOV 37H,A LJMP TTM2 TTM14: CJNE A,#0DH,TTM2 MOV A,52HMOV 52H,A MOV A,53HDEC AMOV 53H,A MOV A,36HDEC AMOV 37H,A;------------------------------------------------------ TTM2:RET;*************************************************** ;定时器中断子程序0 ;*************************************************** TT0:PUSH ACC PUSH PSWMOV TL0,20H MOV TH0,21H CPL P3.7POP PSWPOP ACCRETI;*************************************************** ;定时器中断子程序1 ;*************************************************** T1INT:MOV TH1, #3cH MOV TL1, #0b0HDJNZ L50MS,X4 MOV L50MS,#20 ;****************---每秒种时钟刷新秒显示一次SECSET: MOV A,SEC MOV B,#10 DIV AB ADD A,#30H MOV P0,#0CEH ;显示秒十位lCALL ENABLE lCALL WRITE2 MOV A,B ADD A,#30H MOV P0,#0CFH ;显示秒个位lCALL ENABLE lCALL WRITE2 MOV A,SEC INC A MOV SEC,A XRL A,#60 X4:JNZ OUT MINSET: MOV SEC,#00H ;*************************************每分钟刷新分显示一次MOV A,MIN INC A MOV MIN,A MOV B,#10DIV ABADD A,#30HMOV P0,#0CBH ;显示分十位lCALL ENABLElCALL WRITE2MOV A,BADD A,#30HMOV P0,#0CCH ;显示分个位lCALL ENABLElCALL WRITE2MOV A,MINMOV B,#3MUL ABMOV B,#100DIV ABMOV R2,AMOV A,#10XCH A,BDIV ABMOV A,MINXRL A,#60JNZ OUTHOUSET:MOV MIN,#00H;**************************************每小时刷新小时显示一次MOV A,HOUMOV B,#10DIV ABADD A,#30H ;将BCD吗转化为ASIIC码MOV P0,#0C8H ;显示小时十位CALL ENABLE CALL WRITE2 MOV A,B ADD A,#30H MOV P0,#0C9H ;显示小时个位CALL ENABLE CALL WRITE2 MOV A,HOU INC A MOV HOU,A XRL A,#10 JNZ OUT SJMP OVERFLOW OUT: RETI ;*************************************溢出处理OVERFLOW: MOV L50MS,#20 MOV L1MS,#00H MOV L250MS,#00H MOV SEC,#00H MOV MIN,#00H MOV HOU,#00H RETI ;-------------------------------------------------------------------- DELAY30: MOV R7,#2 W2:MOV R4,#125W3:MOV R3,#248DJNZ R3,$DJNZ R4,W3DJNZ R7,W2DJNZ R1,DELAY30RET;-------------------------------------------------------------------- TABLE00:DW 64580,64684,64777,64820 DW 64898,64968,65030,64260 DW 64400,64524,65058,63835,64021 ;------------------------------------------------------------------- ;第一首《精忠报国》;-------------------------------------------------------------------- TABLE10:DB 66H,52H,36H,22H,12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22H DB 32H,52H,22H,42H,38H,66H,52H,36H,22H,12H,22H,22H,32H,98H DB 24H,22H,32H,54H,52H,32H,92H,12H,92H,82H,98H,66H,52H,36H,22H DB 12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22H,32H,52H,22H,42H,38H DB 66H,52H,36H,22H,12H,22H,22H,32H,98H,24H,22H,32H,54H,52H,32H DB 22H,12H,92H,82H,98H,14H,24H,34H,44H,64H,0B4H,64H,32H,52H DB 62H,0B2H,62H,52H,38H,24H,22H,32H,54H,52H,62H,52H,32H,32H,22H,38H DB 64H,0B4H,64H,32H,52H,62H,0B2H,62H,52H,38H,22H,22H,22H,32H,52H,52H DB 52H,62H,7FH,74H,04H,58H,6FH DB 00;-------------------------------------------------------------------- ;第二首《月亮代表我的心》TABLE20: DB 02H,82H DB 16H,32H,54H,02H,52H DB 0A6H,32H,54H,02H,52H DB 64H,74H,0B6H,64H DB 52H,5CH,32H,22H DB 16H,12H,14H,32H,22H DB 16H,12H,14H,22H,32H DB 26H,12H,94H,22H,32H DB 2CH DB 32H,52H DB 36H,22H,14H,54H DB 0ACH,92H,0A2H DB 96H,0A2H,96H,82H DB 3CH,54H DB 36H,22H,14H,54H DB 0ACH,92H,0A2H DB 16H,12H,14H,22H,32H DB 2CH,02H,82H DB 16H,32H,56H,12H DB 0A6H,32H,56H,52H DB 66H,72H,0B6H,62H DB 62H,52H,58H,32H,22H DB 16H,12H,14H,32H,22H DB 16H,12H,14H,22H,32H DB 26H,92H,0A4H,12H,22H DB 1CH DB 00;第三首《看我七十二变》;------------------------------------------------------------------- TABLE30: 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 00;-------------------------------------------------------------------- ;第四首《同一首歌》;-------------------------------------------------------------------- TABLE40:DB 88h,14h,24h,36H,42H,34H,14H,28H,14H,94H DB 1fH,88H,14H,24H,34H,32H,42H,54H,14H DB 46H,32H,54H,22H,32H,32H,22H,2CH,38H,54H,74H DB 76H,62H,68H,54H,52H,62H,74H,62H,52H,3fH DB 46H,42H,54H,64H,54H,42H,32H,28H,0a4H,0a2H DB 92H,84H,94H,1fH,0b8H,68H,46H,52H,68H DB 74H,72H,72H,74H,62H,52H,3fH,0b8H,68H DB 46H,52H,68H,64H,62H,62H,64H,42H,32H,2fH DB 58H,14H,24H,36H,42H,34H,12H,12H,26H,22H,24H,22H,12H DB 94H,9cH,0a8H,0a6H,92H,84H,64H,54H,22H,22H,46H,42H,44H,32H,22H,5fH DB 00;-------------------------------------------------------------------- ;第五首《大海》;-------------------------------------------------------------------- TABLE50:DB 82H,92H,12H,14H,12H,14H,92H,82H,12H,14H,22H,14H,92H,12H,22H,24H DB 22H,24H,12H,92H,22H,24H,32H,24H,32H,52H,62H,54H,52H,64H,52H,32H DB 22H,32H,22H,12H,94H,82H,92H,12H,14H,12H,14H,94H,1cH DB 82H,92H,12H,14H,12H,14H,92H,82H,12H,14H,22H,14H,92H,12H,22H,24H DB 22H,24H,12H,92H,22H,24H,32H,24H,32H,52H,62H,54H,52H,64H,52H,32H DB 22H,32H,22H,12H,94H,82H,92H,12H,14H,12H,14H,22H,12H,1cH,32H,52H DB 62H,64H,62H,64H,0b2H,62H,52H,54H,62H,54H,32H,22H DB 12H,14H,12H,14H,24H,3cH,32H,22H,12H,14H,12H,14H,0b2H,62H,52H,54H,62H,54H,32H,52H DB 66H,0b2H,0b4H,62H,52H,5cH,32H,52H,62H,64H,62H,64H,0b2H,62H,52H,54H DB 62H,54H,32H,22H,12H,14H,12H,14H,54H,3cH,32H,22H,12H,14H,12H,14H,22H,32H DB 52H,54H,32H,54H,32H,52H,6fH,04H,02H,92H,32H,24H,12H,1fH DB 00;-------------------------------------------------------------------- ;第六首《两只蝴蝶》;--------------------------------------------------------------------TABLE60:DB 32H,22H,38H,02H,22H,32H,22H,18H,04H,92H,12H,24H,22H,32H,22H,12H,92H,92H,88H,04H,32H,22H DB 38H,02H,22H,32H,22H,18H,04H,92H,12H,24H,22H,32H,22H,21H,92H,12H,28H,04H,32H,22H DB 38H,02H,22H,32H,22H,18H,04H,92H,12H,24H,22H,32H,22H,12H,92H,91H,11H,88HDB 04H,32H,52H,58H,02H,52H,62H,52H,38H,04H,22H,22H,24H,22H,32H,22H,12H,92H,92H DB 12H,12H,1cH,08H,02H,52H,52H,62H,0b2H,72H,72H,62H,32H,22H,22H,22HDB 38H,02H,32H,32H,52H,64H,64H,02H,92H,32H,22H,28H,04H,32H,52H,52H,32H,54H,02H,0b4H,72H DB 62H,72H,34H,02H,62H,62H,72H,62H,52H,32H,22H,02H,32H,22H,32HDB 58H,02H,52H,52H,62H,0b2H,72H,72H,62H,32H,22H,22H,22HDB 38H,02H,32H,32H,52H,64H,64H,02H,92H,32H,22H,28H,04H,32H,52H,52H,32H,54H,02H,0b4H,72H DB 62H,72H,34H,02H,62H,62H,72H,62H,52H,32H,22H,02H,84H,92H,1cHDB 00;--------------------------------------------------------------------;第七首<<世上只有妈妈好>>;--------------------------------------------------------------------TABLE70:DB 66H,52H,34H,54H,0B4H,62H,52H,68H,34H,52H,62H,54H,34H,12H,92H,52H,32H,28HDB 26H,32H,54H,52H,62H,34H,24H,18H,56H,32H,22H,12H,92H,12H,8FHDB 66H,52H,34H,54H,0B4H,62H,52H,68H,34H,52H,62H,54H,34H,12H,92H,52H,32H,28HDB 26H,32H,54H,52H,62H,34H,24H,18H,56H,32H,22H,12H,92H,12H,8FHDB 66H,52H,34H,54H,0B4H,62H,52H,68H,34H,52H,62H,54H,34H,12H,92H,52H,32H,28HDB 26H,32H,54H,52H,62H,34H,24H,18H,56H,32H,22H,12H,92H,12H,8FHDB 00;--------------------------------------------------------------------;第八首歌《彩云追月》;--------------------------------------------------------------------TABLE80:DB 86H,92H,12H,22H,32H,52H,68H,63H,52H,34H,62H,0B2H,0B2H,62H,51H,61H,51H,31H,54HDB 62H,0B2H,0B2H,62H,52H,32H,52H,52H,51H,61H,51H,31H,34H,52H,62H,74H,32H,52H,52H,32H,21H,31H,21H,11H,24HDB 32H,52H,52H,32H,22H,12H,24H,32H,52H,52H,32H,62H,52H,61H,51H,31H,21H,21H,31H,21H,11H,1CHDB 21H,31H,22H,23H,31H,21H,18H,02H,0B2H,0BCH,0B4H,72H,61H,51H,72H,61H,71H,61H,51H,61H,71H,61H,6FHDB 86H,94H,12H,22H,32H,52H,64H,62H,51H,31H,52H,21H,31H,21H,33H,62H,0B2H,0B2H,62H,51H,61H,51H,31H,54HDB 62H,0B2H,72H,61H,51H,51H,61H,51H,31H,54H,61H,0B2H,72H,61H,51H,51H,61H,51H,31H,32H,21H,11H,32H,51H,61H,54HDB 02H,32H,24H,32H,52H,52H,32H,22H,31H,21H,11H,24H,32H,52H,62H,0B2H,72H,61H,51H,61H,51H,31H,32H,52H,52H,32H,62HDB 51H,31H,31H,21H,11H,91H,23H,31H,21H,1CH,12H,24H,32H,62H,51H,31H,34H,0B4H,72H,61H,51H,63H,71H,64HDB 0B2H,54H,72H,62H,71H,61H,54H,61H,51H,31H,21H,34H,73H,61H,54H,22H,32H,52H,22H,36H,52H,62H,61H,31H,32H,21H,11H,21H,11H,91H,81H DB 94H,52H,62H,52H,42H,32H,22H,32H,52H,0B4H,74H,64H,52H,61H,51H,41H,5CH,02H,52H,0B4H,74H,63H,51H,61H,51H,31H,21HDB 00;--------------------------------------------------------------------;第九首<<十年>>;--------------------------------------------------------------------TABLE90:DB 02H,11H,21H,32H,32H,22H,32H,21H,11H,0A1H,91H,92H,0D1H,91H,83H,91H,0A2H,91H,81H,94H,11H,0A1H,91H,0A1H,98H,03H,81H,0A1H,0A1H,91H,0A1 DB 98H,04H,02H,11H,21H,32H,32H,22H,32H,21H,31H,51H,11H,13H,31H,22H,22H,21H,11H,0A1H,11H,13H,11H,11H,0A1H,91H,0A1HDB 11H,93H,94H,03H,81H,11H,0A1H,91H,81H,92H,0A1H,91H,94H,08H,03H,81H,32H,21H,11H,22H,31H,21H,21H,83HDB 01H,11H,91H,0A1H,11H,61H,51H,11H,34H,01H,31H,21H,31H,48H,23H,31H,32H,42H,38H,03H,11H,21H,52H,31HDB 33H,31H,31H,41H,51H,61H,23H,21H,21H,41H,31H,21H,13H,0D1H,0D1H,21H,11H,0A1H,11H,91H,92H,91H,11H,0A1H,91HDB 0A1H,31H,31H,22H,0A1H,11H,14H,01H,11H,21H,31H,63H,31H,42H,51H,31H,31H,22H,11H,21H,52H,31H,33H,31H,31H,41HDB 51H,61H,23H,21H,21H,41H,31H,21H,13H,0D1H,0D1H,21H,11H,0A1H,11H,91H,92H,91H,11H,0A1H,91HDB 0A2H,41H,31H,22H,31H,21H,12H,12H,11H,11H,21H,31H,63H,51H,32H,11H,21H,26H,11H,0A1H,18HDB 00;--------------------------------------------------------------------;第十首<<你的爱给了谁>>;--------------------------------------------------------------------TABLE100:DB 02H,91H,0A1H,16H,21H,11H,0A6H,81H,0A1H,9CH,02H,91H,0A1H,16H,21H,31H,24H,21H,0A1H,11H,0A1HDB 9CH,02H,11H,21H,36H,32H,24H,21H,0A1H,11H,0A1H,9CH,02H,91H,0A1H,14H,11H,11H,21H,11H,0A4H,04H,04H,02H,0A1H,11H,0A1H,93H,92HDB02H,61H,71H,0B4H,0B2H,0B1H,0B1H,76H,0B1H,71H,6CH,02H,61H,71H,0B6H,0B1H,0B1H,76H,0B1H,71H,6CH,02H,51H,61H,56H,61H,51H,54H,51H,0B1H,71H 1HDB 72H,62H,68H,02H,61H,51H,66H,62H,58H,0CH,02H,51H,41H,5FHDB 02H,91H,0A1H,16H,21H,11H,0A6H,81H,0A1H,9CH,02H,91H,0A1H,16H,21H,31H,24H,21H,0A1H,11H,0A1HDB 9CH,02H,11H,21H,36H,32H,24H,21H,0A1H,11H,0A1H,9CH,02H,91H,0A1H,14H,11H,11H,21H,11H,0A4H,04H,04H,02H,0A1H,11H,0A1H,93H,92H DB02H,61H,71H,0B4H,0B2H,0B1H,0B1H,76H,0B1H,71H,6CH,02H,61H,71H,0B6H,0B1H,0B1H,76H,0B1H,71H,6CH,02H,51H,61H,56H,61H,51H,54H,51H,0B1H,71H 1HDB 66H,62H,54H,0B2H,71H,61H,6CHDB 00END按键功能说明:1~A:十首歌曲C:上一首歌曲D:下一首歌曲E:歌曲暂停F:开机画面程序调试中出现的问题及解决的办法:1.有时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发行是因为程序中有的指令书写得不规范导致的,例如有的RET返回指令一要按正确格式书写或在两行指令间最好不要留空行。

相关文档
最新文档