作文一:《我的音乐盒作文 音乐盒》1300字
我的音乐盒作文 音乐盒
音乐盒_三年级作文
我有一个音乐盒,是我八岁生日时一个姐姐送给我的。
音乐盒放在我的书桌上。它是一个白色的长方体,坐在一个圆形的基座上。音乐盒上面有两只小猪,一只是白色的,一只是黑色的。白猪手上拿着一颗红红的爱心飞向天空,黑猪也不甘落后,插上翅膀,手捧爱心紧跟其后。它们好像要遨游太空。
姐姐说这音乐盒有多种功能。如把它转动几下再放开手,它就会发出优雅而美妙的歌声——《生日快乐》;如果把它的“帽子”打开还可以放照片;它还是一个漂亮的笔筒呢~??
有时我生气时,我就使劲地转它,听着美妙的音乐,看着可爱的黑白猪,渐渐地我就会露出甜甜的微笑。我喜欢我的音乐盒,在我生气时它给我带来欢乐,在我失败时是它给我成功的信心。音乐盒_三年级作文相关内容:可爱的灯_二年级作文 有一天,我对我的好舅舅说:“我们来做一个可爱的电灯吧,舅舅马上同意了。我先叫舅舅到楼下买几个电灯泡,自己拿出了硬纸板,用剪刀剪出一个圆,刷上了绿色,再拿出三个凹进去的玻璃,钻出小孔,等起舅舅来。...
我喜欢的文具_三年级作文 我有一支漂亮的钢笔,那是一位爸爸送给我的。这支钢笔全身是黑色的,摸起来十分光滑,钢笔的两头镶着银白色的圆圈,它比普通钢笔重一倍。打开笔帽,露出长长的笔尖,它的吸管与众不同,普通钢笔是用手捏才能吸水,
而这支钢笔是用手旋转吸...
我房间的灯_二年级作文 在我美丽的房间里,有一盏漂亮的灯,它圆圆的,十分美丽。它上面有许许多多的星星,有红的、蓝的、白的??五光十色,美丽极了~在这盏灯上,有一个大风车,只要把电灯一开,风车会在上面飞快地转着,在炎热的夏天会给我扇风,让我不觉得...
扇子_二年级作文 我有一把心爱的小扇子,是妈妈上周从街上买的。扇子长二十几厘米,把扇子折叠起来,二厘米厚不到,真是小巧玲珑。抓住扇子一头,轻轻一挥,扇子就展开了。轻轻一扇,凉爽而带着清香的风就扑面而来。
我的文具盒_二年级作文 我有一个漂亮的文具盒。那是我和爸爸在乐购超市里买来的。这是个长方形的文具盒,蓝色的底色,盒盖上有5只可爱的叮当猫。左边的这只比较大,大大的脑袋上有两只大眼睛,红红的鼻子像颗红宝石特意嵌上去,鼻子两边各有三根硬硬的胡须排得齐...
小汽车_二年级作文 爸爸妈妈给我买了很多玩具小汽车,特别漂亮。有跑车,有赛车,有轿车,还有一辆我把它叫做无敌车。我家有一个博古架,妈妈把它们一辆一辆摆放在博古架上,博古架就象一个停车场。
一件珍贵的小物品_四年级作文 从我七岁起开始,我的写字台上一直放着一个米老鼠储蓄罐,那是亲人们一同送给我的生日礼物。米老鼠储蓄罐四周画有很多很多讨人喜爱的米老鼠,它们
做着各种各样的表情,有的哭得泪如泉涌,有的笑得前俯后仰,有的气得暴跳如雷,有的累得气...
我的小闹钟_二年级作文 我有一个非常精美的小闹钟,是妈妈给我买的,为了让我上学不迟到。它是一个小蜜蜂的图案。它的颜色是黑黄相间的,头上还长着一对触角,那圆鼓鼓的肚子里面是一个钟表,如果时间到了它的眼睛就会发亮,还会发出“懒虫起床,早上好”的声音...
作文二:《童年的“音乐盒”》400字
童年的“音乐盒”
童年就像一个小小的音乐合,里面装有快乐的事,也有落泪的事。
记得那是我7岁那一年,妈妈在厨房抄菜,突然说没酱油了。妈妈说她要去买酱油,我就连忙说:“不,妈妈走了,大灰狼就回来把我吃掉的。”妈妈笑着说:“那该怎么办呢?”我说:“让我去买。”妈妈同意了。在我出门时我还嘱咐记得别买错了。
我为了记住妈妈的话,我一边走嘴里就一边念着:我要买的是酱油,我要买的是酱油。可是我在路上踩到了一块石头,还翻了一个大跟斗。最糟糕的是我进竟然把酱油倒过来了,成了油酱。
我去到了小买部,跟老板说:“老板我有买油酱。”老板摆出一副惊奇的样子说:“油酱,是什么啊?”我神气的说:“油酱就是油酱,我妈妈叫我买的,错不了。”老板说:“哦!是豆酱啊!”我糊哩糊涂地点点头。
在回家的路上,我在想:我这么小就会帮妈妈忙了,那我长大了,说不定还可以帮国家总理的忙呢!我蹦蹦跳跳就回到了家。
我回到了家,妈妈问我:“好女儿,我的酱油呢?”我说:“不是油酱吗?”妈妈看见了我手上的这一包豆酱,就好象知道我刚刚发生了什么事。就把腰都笑弯了。
有时把这个小小音乐合打开,也会感到快乐。
作文三:《小仙女的音乐盒》700字
小班:小仙女的音乐盒
刘庆霞 活动目标:,、能听辨音源的方向,提高听辨的能力。
,、能遵守游戏规则,愉快地参与游戏。
活动准备:,、动物的头饰人手一个。,、洋娃娃、手机数个。 活动过程:
一、捉迷藏游戏:听辨声音的来源
,.师:小动物们好~(小鸟姐姐好~)今天我们和小仙女一起要到森林里去捉迷藏。(进场)
,.师:用你们的小耳朵听听看小仙女藏在哪里,(幼儿游戏,遍) 3.师:哎呀,小仙女又躲起来了,这一次小仙女要小动物们朦上眼睛去找了,如果你找到她了她就会亲你一下。(游戏,次)
,、小结:小朋友每一次都能找到小仙女,你是怎样找到她的?(用耳朵仔细听音乐)你们真能干,会听着音乐找到小仙女躲的地方。
二、跟着声音走:听辨声音的运动
,师:这一次小仙女又要请小动物们来听着音乐找她,你们可要仔细听哦,这一次小仙女会一边走一边唱歌,听好了她会走到哪里去,(小仙女停下来)“看看,小仙女走到哪里了,”?“哦,我们跟着小仙女来到一个美丽的地方。你们看看有些什么呀,”(观看周围的环境),强调规则:朦上眼睛,,用耳朵听着音乐走的,,强调:仔细听声音朝什么方向走了,
师:这里的风景真美,我们和小仙女在这里玩捉迷藏的游戏吧。记住:小仙女的声音朝哪里走,我们就跟着朝哪里走,这样就会很快找到她的。(游戏,遍) 小结:小动物们真聪明,知道声音朝哪里走就朝哪里找。
三、曲线运动
师:“哎呀,小河到了,我们要绕过小河。?呀,前面又是一座小山坡,我们一起翻过去吧。(可按照前面幼儿说的游戏)
四、出场
师:今天我们玩得真开心,天快黑了我们跟小仙女再见吧。
作文四:《数字音乐盒的设计》8700字
重庆大学本科学生课程设计
数字音乐盒的设计
学 生: 学 号: 指导教师:
专 业:机械电子工程
重庆大学机械工程学院
二O 一五年一月
重庆大学本科学生课程设计任务书
主程序的设计和调试
(即
第五章的内容)
目录
摘 要···························································································································· 1 第一章 音乐盒总体设计······························································································ 2
1.1 设计功能要求······························································································· 2 1.2 总体设计原理······························································································· 2 1.3 总体设计框图······························································································· 3 第二章 系统软件设计·································································································· 4
2.1 编程语言的选择····························································································· 4 2.2 系统程序设计······························································································· 4
2.2.1 主程序流程图······················································································ 4
第三章 硬件接线图及原理·························································································· 6
3.1硬件设计·········································································································· 6
3.1.1 硬件电路······························································································ 6 3.1.2原理说明······························································································· 6
第四章 音频脉冲产生·································································································· 7
1. 节拍的定义········································································································· 8 2. 节拍的产生········································································································· 9 3、码表················································································································ 10 第五章 程序设计········································································································ 11 第六章 收获与体会···································································································· 15 附录······························································································································ 16
数字音乐盒设计
摘 要
为了实现单片机控制音乐播放,此次课程设计做出了尝试,即数字音乐盒的设计。本设计采用了蜂鸣器发声来实现歌曲的播放,能保持基本音调不变,流畅播放出歌曲。现选用AT89C51单片机。
主要设计模块包括蜂鸣器发声部分。。蜂鸣器由单片机的P1.7口控制,实现歌曲播放;彩灯是由普通发光二极管代替,能实现单色长亮和闪烁效果。 主要工作过程是通过按下开关键实现循环播放。
此次设计要利用单片机及KeilC51编程软件编程和PROTEUS 单片机仿真软件和电子电工等方面知识。用KeilC51编程软件编程,用PROTEUS 单片机仿真软件仿真。最后制作实物,将程序下载到单片机中,利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。
关键词:AT89C51单片机; 方波; 音调
第 1 页 共 21 页
数字音乐盒设计
第一章 音乐盒总体设计
1.1 设计功能要求
当开关按下时,判断开关状态,启动定时器T1,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。 2、歌曲《两只老虎》
1.2 总体设计原理
通过单片机的定时器产生一定长度的方波,方波脉冲驱动蜂鸣器发声。要产生音频脉冲,只需算出某一音频的周期(1/音频),然后取半周期的时间定时。利用定时器计时这个半周期时间, 每当计时到后就将输出脉冲的I/O反相, 然后重复计时此半周期时间再对I/O口反相, 就可在I/O脚上得到此频率的脉冲。如中音D0,频率为523HZ, 其周期T=1/523=1912微秒,因此只要令计数器定时1912/2=956,在每计数956次时将I/O口反相, 就可得到中音D0(523HZ)。
当开关按下时,判断开关状态,启动定时器T1,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。
第 2 页 共 21 页
数字音乐盒设计
1.3 总体设计框图
单片机接+5V电源供电,晶振电路产生单片机所需时钟信号,通过功能键产生外部中断,再由I/O接口输出控制蜂鸣器发声,LED 显示,在程序出错时,重新启动单片机工作。
→
↓ →
→
编程设置好定时时间,通过编程器写入AT89C51单片机系统。由AT89C51单片机的定时器每秒钟通过P1.7口控制蜂鸣器。电源,晶振部分,单片机,蜂鸣器部分后面均有详细介绍。
第 3 页 共 21 页
数字音乐盒设计
第二章 系统软件设计
2.1 编程语言的选择
基于单片机的交通灯控制这次采用汇编语言编程,它是一种面对机器的语言,可以直接控制硬件的语言。因为这次还要进行硬件连接,所以可以方便控制各个硬件接口如I/O接口,并且目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。具有保持了机器语言的优点,具有直接和简捷的特点。 就是因为汇编语言的这些特点,所以70%以上的系统软件是用汇编语言编写的。例如某些快速处理、位处理、访问硬件设备等高效程序是用汇编语言编写的。很多高级绘图程序、视频游戏程序是用汇编语言编写的。
所以汇编语言是我们理解整个计算机系统的最佳起点和最有效途径,通过学习和使用汇编语言,能够感知、体会、理解机器的逻辑功能,向上为理解各种软件系统的原理,打下技术理论基础;向下为掌握硬件系统的原理,打下实践应用基础。 单片机烧录的代码,用来编程单片机。
2.2 系统程序设计
2.2.1 主程序流程图
开始要定义音频输出端口,歌曲总数以及每首歌曲的入口地址;然后对定时器初始化,确定工作方式,赋初值,开放中断,启动定时器工作;对音频输出端口初始化;设置音节起始位置和节拍间距,把音节和节拍的入口地址信息存放在固定存储单元中;将取出的音符数+节拍数保存在存储单元中,查询音乐的节拍表;
程序流程图如下:
第 4 页 共 21 页
数字音乐盒设计
《两只老虎》程序流程图
第 5 页 共 21 页
第三章 硬件接线图及原理
3.1硬件设计
3.1.1 硬件电路
本设计中用到89C51单片机,蜂鸣器,电源。 3.1.2原理说明
开关按下时,判断开关状态,启动计数器T1,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。 1. 用p1.7控制蜂鸣器。
2. 电路为12MHZ 晶振频率工作,起振电路中C1,C2均为
30pf
第四章 音频脉冲产生
要产生音频脉冲,只要算出某一音频的周期(1/音频), 然后将此周期除以2, 即为半周期的时间, 利用定时器计时这个半周期时间, 每当计时到后就将输出脉冲的I/O反相, 然后重复计时此半周期时间再对I/O口反相, 就可在I/O脚上得到此频率的脉冲
利用8051的内部定时器使其工作在计数器模式MODE1下, 改变记数值TH0及TL0以产生不同频率的方法。例如频率为523HZ, 其周期T=1/523=1912微秒, 因此只要令计数器定时956/1=956在每记数9次时将I/O口反相, 就可得到中音D0(523HZ)。
记数脉冲值与频率的关系公式如下: N=Fi/2/Fr N :记数值
Fi :内部计时一次为1微秒.故其频率为1MHZ Fr ;要产生的频率 起记数值的求法如下:
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的T =65536-500000/1047=65059
对应不同音调的音符频率表
通过上面的分析可见,为了产生音符,必须求出音符C 低音到高音的所有计数初值。例如:C 调的低音DO 的THTL=65536-500000/262=63627,中音DO 的THTL=65536-500000/523=64580,高音DO 的THTL=65536-500000/1047=65059。 为了编程记谱方便。然后根据音符编码查找对应的计数初值。
1. 节拍的定义
节拍就是一个音符唱多长的时间,例如,4/4是用来表示节拍的。以3/4为例加以说明,它表示乐谱中以四分音符为节拍,每一小节为三拍。比如:1=C 3/4 |1 2 3 4 5 6| ,其中1、2为一拍,3、4、5为一拍,6为一拍共三拍。1、2的时长为四分音符的一半,即为八分音符长,3、4的时长为八分音符的一半,即为十六分音符长,5分时长为四分音符的一半,即为八分音符,6的时长为四分音符长。
那么一拍到底唱多长呢?一般来说,如果乐曲没有特殊说明,一排的时长大约为400-500ms ,我们以一拍的时长为400ms 为例,则当以四分音符为节拍时,四分音符的时长就是400ms ,八分音符的时长就是200ms 。
2. 节拍的产生
在单片机上控制一个音符唱多长可采用循环延时的方法来实现,首先,我们
确定一个基本时长的延时程序,比如十六分音符的时长为基本延时时间,那么,对于一个音符,若它为十六音符,则只需调用一次延时程序,其他一次为它
的倍数即可。例如,1拍=0.4s,1/4拍=0.1s,以此类推;假设1/4拍执行一次延时程序,则1/2拍就执行两次延时程序,所以只要求出1/4延时时间,其余的节拍就
是它的倍数。如表4-3所示。为了记谱方便,将节拍数也进行了编码。
节拍与节拍编码对照表
乐谱节拍
建立了音符编码和节拍编码后,在编程时,每个音符占用一个字节,高4 位是音符编码,低四位是节拍编码。根据上述原则建立乐谱编码表TABLE, 以及按照音符顺序对应的THTL 值表TABLE1。在程序运行的过程中顺序取出乐谱编码,然后查找到对应的THTL 值。
3、码表
1. 按照音符的顺序建立定时器T1的计数初值表。表的首地址位TABLE ,表TABLE 的内容是C 调低音低音5~高音5的计数初值。
*
*
两只老虎
TABLE1:DW 64260 , 64400 , 64524 , 64580,64684 , 64777 ,64820 , 64898,64968 TABLE:
DB 44H,54H,64H,44H,01H DB 44H,54H,64H,44H,01H
DB 64H,74H,84H,02H,64H,74H,84H,02H
DB 82H,92H,82H,72H,64H,44H,01H,82H ,92H,82H,72H,64H,44H,02H DB 44H,14H,44H,02H,44H,14H,44H,08H,00H
第五章 程序设计
*****************************************程序开始
ORG 0000H
LJMP START ORG 001BH LJMP TIME1
//****************************************计数器1的参数设置 START:MOV TMOD,#10H ;定时器1 工作在工作模式1 MOV IE,#88H ;中断使能
//***************************************歌曲《两只老虎》的初始地址的录入
MAIN: MOV 40H,#00H ;设简谱码指针初始值 NEXT: MOV A,40H ;简谱码指针暂存累加器A MOV DPTR,#TABLE ;设简谱码 MOVC A,@A+DPTR
CJNE A,#00H,PLAY ;取到的简谱码不是结束码,传PLAY 取节拍码
LJMP STOP ;是结束码,退出 PLAY: MOV R1,A ;R1暂存简谱码 ANL A,#0FH ;取节拍码 MOV R2,A 节拍码暂存R2 MOV A,R1
ANL A,#0F0H ;取音符码
CJNE A,#00H,MUSIC ;音符码不为0,调发音子程序 CLR TR1 ;音符码为0,不发音 LJMP DEL
//****************************************读取简谱码T 值,歌曲《两只老虎》的演唱 MUSIC:SWAP A DEC A MOV 22H,A ADD A,22H MOV R3,A
MOV DPTR,#TABLE1 ; MOVC A,@A+DPTR
MOV TH1,A ; MOV 21H,A MOV A,R3 INC A
MOVC A,@A+DPTR ; MOV TL1,A ; MOV 20H,A
SETB TR1 ;DEL: LCALL DELAY
INC 40H ;取相应计数值 暂存高位字节 取相应计数值的低位字节 暂存低位字节 启动定时器 指向下一个简谱码
LJMP NEXT
STOP: CLR TR1 ;停止计时器 LJMP MAIN ;返回,重新开始唱 ******************************************定时器1的初始值 TIME1:PUSH ACC ;现场保护 PUSH PSW
CPL P1.7 ;P1.7反相输出,演奏音乐 MOV TL1,20H ;重设计数值 MOV TH1,21H POP PSW POP ACC RETI
//********************************歌曲《两只老虎》的延时程序 DELAY:MOV R7,#02H ;4/4曲调,演示125ms 子程序 DELA1:MOV R6,#125 DELA2:MOV R5,#248 DJNZ R5,$ DJNZ R6,DELA2 DJNZ R7,DELA1 DJNZ R2,DELAY RET
//****************************************歌曲《两只老虎》C 调低音低音~高音的计数初值
TABLE1:DW 64260 , 64400 , 64524 , 64580,64684 , 64777 ,64820 , 64898,64968
//****************************************歌曲《两只老虎》 TABLE:
DB 44H,54H,64H,44H,01H DB 44H,54H,64H,44H,01H
DB 64H,74H,84H,02H,64H,74H,84H,02H
DB 82H,92H,82H,72H,64H,44H,01H,82H ,92H,82H,72H,64H,44H,02H DB 44H,14H,44H,02H,44H,14H,44H,08H,00H
END ;结束
第六章 收获与体会
通过此次课程设计,我们更加深刻的了解了89c51单片机的实践应用,跳出单纯的书本知识。我在本小组担任的主要工作是写《两只老虎》运行的主程序,在书写程序的过程中,弥补了课堂上动手写程序的短板,在平时学的基础知识上,更加透彻的理解程序。在这个过程中,学会了上课期间淡化了的主程序和子程序之间的衔接;对中断的理解不在是书本上那个几条概念,而从写程序中的实践,更清楚了中断的设定;对各种指令的理解也更透彻了,不在是上课期间的死记硬背了,可以简单的运用了。
在本次课程设计的过程之中遇到了重重困难,经过小组讨论和多方论证,都克服了。如本小组另一位同学写《两只老虎》乐谱程序的时候,按照乐谱写好了,但是仿真的时候“真奇怪”的发音总是不准确,和我们讨论了许久,最后才从一个学过音乐的同学那得知是错了的那个音发错了,应该把高音改为低音。
另外,特别感谢助教和老师,在他们的悉心指导下,让我们做成果的更完善了,我们通过做的这一个课程设计对单片机89C51的一个初步认识,比较片面,没有完全展现89c51的强大之处,它更多地应用我们在出生社会后,更多地去学习和挖掘它更广阔的运用。
数字音乐盒设计
附录
第 16 页 共 21 页
作文五:《穿过风雨的音乐盒》700字
龙源期刊网 ://.qikan..
穿过风雨的音乐盒
作者:骆非翔
来源:《高中生 ·青春励志》 2014年第 03期
那一年,他去西藏八宿的一个小乡村支教。
初入校门的那一天,孩子们在学校的操场上排成两排,向他敬礼。那天白雪飘飘,那一只 只举过头顶的手都没有戴手套。
他留了下来,教他们语文、数学、自然、生物,教他们认识山外的山,山外的城。
孩子们来自不同村落,近的就住在乡里,最远的孩子甚至要翻过一座海拔 3 000米的雪 山。那个住在最远地方的孩子,名叫也措,黑黑的小脸,泛着两坨高原红。据说他是学校最穷 的学生,学费一直欠着,全家仅靠一匹马跑运输为生。
也措平日里非常沉默,但是眼神很特别,忧郁中透着惶恐,惶恐中又露出一丝坚定。
雪大的时候,全世界只剩下了白,无法再找到道路。家远的孩子只能留下来,住在老师的 宿舍里。那天,他的宿舍也留下了几个孩子。
那个晚上,孩子们在他的准许下抱着他的吉他乱弹。只有也措,在翻看他的一个小音乐 盒。那是他的女友送给他的生日礼物,虽然他们已分手,但他还是一直保存着。
也措抚摸着那个音乐盒。他走过去,问:“ 你知道它叫什么吗? ”
“ 不。 ” 也措的话总是那么少。
“ 它叫音乐盒,一翻开盖就会唱歌。 ”
“ 是谁送给你的? ” 也措居然问了一个令他措手不及的问题。
“ 是妈妈在我生日的时候送给我的,但是现在坏了。 ” 对着孩子,他还是撒了谎。
也措看了他一眼,低着头不说话了。
那夜的雪很大,他能听到学校后山的树枝被雪压断的声音。那一次,也措在他的宿舍里住 了整整三天,可是从第二天晚上开始,也措便开始想家了,听到半夜风雪沙沙的声音就哭了。 他不由得把他搂在怀里问:“ 想妈妈了,是吗? ”
“ 我要见阿妈。 ” 也措一开口,泪水便掉了一串。
作文六:《数字音乐盒的设计》17900字
单片机与接口技术
课程设计(论文)
数字音乐盒的设计
院(系)名称
专
学
学
指生导姓教业班级 号 名 师 电子与信息工程学院 通信121班 120405003 潘凤麟 高影 讲师
起 止 时 间: 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 数字音乐盒各子程序的设计与分析 ........................................................ 8
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接口集成在一片半导体硅片上的微型计算机。单片机的始祖是由Intel 公司所开发出的MCS-51系列单片机。在20世纪80年代中期以后,Intel 公司以专利转让或技术交换的形式把其开发单片机的内核技术转让给了许多半导体芯片生产厂家,ATMEL 公司就是其中之一,它开发出的AT89C51单片机被人们广泛地应用于生活与生产当中。下面分别简要介绍AT89C51的硬件结构及引脚。
AT89C51单片机的硬件结构如下图1.1所示,主要由8大部分构成:1个8位的微处理器,完成运算与控制功能;片内128B 的数据存储器,可扩展至片外64KB ;64KB 的程序存储器,其类型是Flash ROM,它的读写速度非常快,电擦除次数可达到10000次;4个8位的可编程并行I/O口(P0,P1,P2,P3) ,可提供地址总线,数据总线,以及控制总线;1个全双工的串行口;2个16位的定时/计数器(T0,T1) ;中断系统:包含5个中断源(外部中断0,定时器T0,外部中断1,定时器1,串行口中断)和2个中断优先级(低级,高级);21个特殊功能寄存器。
图1.1 AT89C51硬件结构图
AT89C51的引脚采用40引脚双列直插式封装(DIP )方式,如下图1.2所示,按照功能可将其分为3类:一是电源及时钟引脚:VCC ,VSS ,XTAL1,XTAL2,二是控制引脚:PSEN ,ALE ,EA ,RST ,三是I/O口引脚:P0,P1,P2,P3,为4个8位I/O口的外部引脚。
图1.2 AT89C51引脚分布图
1.2 仿真环境简介
本次课程设计采用Proteus 与keil 进行联合仿真。Proteus 软件是英国Lab Center Electronics 公司出版的EDA 工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA 工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus 可以完成从原理图布图、代码调试到单片机与外围电路的协同仿真,并能够一键切换到PCB 设计,真正实现了从概念到产品的完整设计,是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台。
Proteus 的处理器模型支持8051、HC11
、PIC10/12/16/18/24/30/DsPIC33、A VR 、ARM 、 8086和MSP430等,2010年又增加了Cortex 和DSP 系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR 、Keil 和MATLAB 等多种编译器。
Keil 是美国Keil Software公司出品的51系列兼容单片机C 语言/汇编语言软件开发系统。Keil 提供了包括编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,并通过一个集成开发环境(μVision )将这些部分组合在一起。
把在Keil 中编译,连接,运行后生成的十六进制HEX 文件写入到用Proteus 绘制出的硬件电路图的单片机中,启动电路后,即可完成仿真。
1.3本文研究内容
本文研究的是基于单片机的数字音乐盒设计,经过对资料的查找和分析,我拟出了满足如下技术要求的设计方案。硬件电路部分用Proteus 软件来绘制,软件部分采用Keil 软件,并基于汇编语言来进行程序设计。在仿真时,通过Proteus 与Keil 的联合仿真,得到了满足设计要求的结果。
第2章 数字音乐盒硬件电路图的设计与分析
2.1总体设计方案分析
本次课程设计所设计出的数字音乐盒在硬件电路上主要包括3大部分:蜂鸣器驱动部分,LCD 显示部分和键盘控制部分。它的总体方案框图如下图2.1所示。蜂鸣器驱动部分是采用AT89C51单片机的P3.7引脚产生不同频率的方波,从而去控制蜂鸣器发出不同的音调,这样就可以完成对一首歌曲的播放。LCD 显示部分采用LM032L 作为液晶显示器,并用AT89C51的P0.0~P0.7引脚去控制LCD 来完成乐曲名称或序号的显示。键盘控制部分采用4*4键盘,并用AT89C51的P1.0~P1.7引脚进行控制,以完成对歌曲的选择,暂停与播放功能。下面分别对各硬件电路图作以简要的介绍与分析,总电路原理图将在附录Ⅱ中给出。
图2.1 数字音乐盒总体设计方案框图
2.2 数字音乐盒部分电路原理说明
2.2.1 蜂鸣器驱动部分电路图与原理说明
蜂鸣器驱动电路部分的原理采用AT89C51的P3.7引脚产生不同的频率方波去驱动蜂鸣器发出不同的音调。这些不同的音调由软件设计部分中不同的数码来实现,这些不同的数码就表示不同的频率成分,这些频率成分就会去驱动蜂鸣器发出不同的音调,从而完成对一首歌曲的播放。蜂鸣器驱动部分的电路图如下图2.2所示。
图2.2数字音乐盒蜂鸣器驱动部分示意图
2.2.2 LCD显示部分电路图与原理说明
LCD 是液晶显示器的缩写,它是一种被动式的显示器,即液晶本身并不发光,而是利用液晶经过处理后能够改变光线通过方向的特性,从而达到白底黑字或黑底白字显示的目的。液晶显示器具有低功耗、抗干扰能力强等优点,因而被广泛应用在仪器仪表和控制系统中。而被广泛地应用在各类单片机系统中的显示模块是点阵字符型LCD 显示器,它的模块电路框图如下图2.3所示。
图2.3字符型LCD 模块的电路框图
如图2.3所示,字符型LCD 模块的电路图由控制器HD44780、驱动器HD44100及几个电阻和电容组成。HD44100用作扩展字符显示。该电路模块共有14个引脚,其中8条数据线,3条控制线,3条电源线,通过单片机写入模块的数据和命令,就可以对显示方式和显示的内容作出选择。
如本次课程设计中所设计的LCD 显示部分,它的电路原理图如下图2.4所示。它采用P0.0~P0.7引脚去控制LCD 显示屏,再通过对应的软件指令的设计,即可令显示屏显示歌曲的名称或序号。
图2.4数字音乐盒LCD 显示部分示意图
2.2.3 键盘控制部分电路图与原理说明
常用的键盘接口分为独立式键盘接口和行列式键盘接口。独立式键盘接口适用于按键较少或操作速度较高的场合,而行列式键盘适用于按键数目较多的场合。由于本次课程设计要求能够播放至少3首歌曲,同时要能实现歌曲的暂停与播放功能,故选择按键数目较多的行列式键盘。行列式键盘的键盘结构如下图2.5所示,它由行线和列线组成,而各按键在行、列线的交叉点上。行线通过上拉电阻接到+5V电源上。在无按键按下时,行线处于高电平状态;当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。列线的电平如果为低,则行线电平为低;列线的电平如果为高,则行线的电平也为高,这一点是识别行列式键盘是否按下的关键所在。
图2.5 行列式键盘原理图
本次课程设计所采用的键盘控制系统的原理框图如图下图2.6所示。它使用4*4键盘,并用P1.0~P1.7引脚进行控制,与AT89C51的中断系统相结合,并用软件进行编程后,就可实现对乐曲的播放与暂停功能。
图2.6 数字音乐盒键盘控制部分示意图
第3章 数字音乐盒的软件设计
3.1数字音乐盒总体软件程序流程图与分析
数字音乐盒的三大主要硬件部分为蜂鸣器驱动部分,LCD 显示部分以及键盘控制部分。故按照此硬件构造,可以设计出如下图3.1所示的总体程序流程图。在软件运行之前,第一步操作就是要对系统进行初始化操作。初始化完毕后,即可开始设计系统的核心功能部件,即LCD 的显示和音乐的播放,最后就是键盘控制程序的设计,由于键盘既要控制LCD 显示对应的歌曲名称或序号,又要控制蜂鸣器去播放不同的歌曲,所以把键盘控制程序写在LCD 显示程序设计和蜂鸣器频率控制程序设计的下方,且箭头都指向它。键盘的每次按下都相当于产生了一次中断,故除上述核心程序外,该软件设计还包含一系列的中断子程序,用以完成对歌曲的选择,播放,暂停功能。下面对除中断子程序外的其他核心程序分别作以简要介绍,而包含全部程序的程序清单将在附录Ⅲ中给出。
图3.1 数字音乐盒总体程序流程图
3.2数字音乐盒各子程序的设计与分析
3.2.1 系统初始化子程序设计与分析
系统的初始化操作包括对所使用端口的定义与赋值,汇编起始地址的赋值,中断子程序入口地址的赋值,堆栈的初始化以及LCD 显示屏的初始化。系统初始化子程序设计
如
RS BIT P2.0; 定义液晶显示端口标 RW BIT P2.1 E BIT P2.2 L50MS EQU 60H L1MS EQU 61H L250MS EQU 62H SEC EQU 65H MIN EQU 64H HOU EQU 63H ORG 0000H LJMP MAIN ORG 000BH
LJMP TT0
ORG 001BH ; 中断程序入口地址 LJMP T1INT ORG 1000H
MAIN: ; 液晶初始化 MOV SP,#70H ; 堆栈初始化操作 MOV P0,#01H ; 清屏 LCALL ENABLE
MOV P0,#38H ;8位,2行显示 LCALL ENABLE
下
:
3.2.2 LCD显示子程序设计与分析
AT89C51与LCD 模块接口的软件编程的第一步必须要进行初始化操作,否则将无法正常显示,而常用的初始化方式有两种,一种是利用模块内部的复位电路进行初始化,一种是利用软件进行初始化,在本次课程设计中使用软件初始化方式,软件初始化的流程如下图3.2所示,它通过不断地等待和检查忙标志或延时来不断更改各寄存器的值,从而完成初始化操作。
图3.2 LCD显示屏软件初始化流程图
3.2.3 蜂鸣器频率控制子程序设计与分析
本次课程设计中的蜂鸣器是完成音乐播放功能的核心器件,它受到AT89C51的P3.7引脚的控制,由P3.7引脚产生不同频率的方波,从而使蜂鸣器发出不同的音调,达到播放一首歌曲的效果。
在一首曲子的音符数组中,0xFF 表示休止符,非休止符的数组元素高四位表示音阶,低四位表示节拍。通过音阶查询计数初值并赋值给计数器,从而产生一定频率的音调,而乐曲播放中的节拍则是通过延时来实现的。该部分子程序的主要流程图如下图3.3所示。
图3.3 蜂鸣器控制系统软件部分流程图
3.2.4 键盘控制子程序设计与分析
键盘在单片机系统中采用编程扫描工作方式,它的子程序流程图如图3.4所示。键盘程序的功能主要有四个方面:一是判断键盘上有无键闭合,二是去除键的机械抖动,三是判断闭合键的键号,四是使单片机对键的一次闭合仅作一次处理。
图3.4 键盘控制子程序部分流程图
第4章 仿真结果与分析
4.1仿真结果
利用Proteus 与Keil 进行联合仿真后,得到如下所示的一系列仿真结果。图4.1为按下键盘1键,并播放歌曲《精忠报国》时的LCD 显示图,可以观察到,此时LCD 显示屏上显示了其歌曲序号为序号1;图4.2为按下键盘2键,并播放歌曲《月亮代表我的心》时的LCD 显示图,可以观察到,此时LCD 显示屏上显示了其歌曲序号为序号2;图4.3为按下键盘3键,并播放歌曲《看我72变》时LCD 显示图,可以观察到,此时LCD 显示屏上显示了其歌曲序号为序号3;而当按下键盘E 键,歌曲会进入暂停状态,此时LCD 显示屏上的计时时间不再变化,当再次按下E 键时歌曲会继续播放,继续计时。
图4.1 播放歌曲1时LCD 显示图
图4.2 播放歌曲2时LCD 显示图
图4.3 播放歌曲3时LCD 显示图
4.2仿真步骤与结果分析
首先对Proteus 与Keil 的联合仿真过程作以介绍。仿真时,首先采用Proteus 软件绘制硬件电路图,在Proteus 左侧的原件栏拾取:AT89C51单片机,2N3906三级管,16个按键BUTTON,1个LCD 显示屏LM032L,8个电阻,1个蜂鸣器之后即可连接电路,完成硬件部分的电路设计。
之后采用Keil 软件进行软件编程。打开Keil 软件后的第一步是单击上方状态栏的Project 选项,选择New project,在弹出来的对话框中新建一个文件夹,命名为music ,之后将所有的代码内容都保存到该文件夹中,单击确定后,在弹出来的芯片选择对话框中选择ATMEL 公司,选择其中的AT89C51单片机,并复制启动代码到Target1中。第二步是单击状态栏中的File ,选择New 选项,即可新建一个用于编写代码的文本框,将代码写入后,保存到刚刚建立的文件夹中。由于是采用汇编语言来编写程序,故程序文件的后缀名要写成.asm 。第三步是右键单击左侧Work space 中的Source Group 1, 选择Add files to source group 1,将刚刚保存好的.asm 文件添加到其中。这时状态栏上方编译按钮应由灰色变为被点亮的状态。第四步是右键单击Work space中的Target 1,选择Options for Target 1, 在弹出的对话框中选择Output 界面,在界面中勾选Create HEX file, 之后编译,运行,连接,看到下方程序状态栏中出现Creating HEX file 0 errors 即可。最后一步是打开Proteus, 单击单片机,将刚刚生成的HEX 文件写入到单片机中,单击运行,即可观察仿真结果。
从仿真结果来看,按下键盘的1,2,3键,可以分别播放3首不同的歌曲,4~d键均未定义,而事实上,只要在程序代码中再次添加几首歌曲的数码乐谱,那么当按下4~d键时还可以播放另外10首歌曲,这也就是说,此设计共可播放13首不同的歌曲。而0号键用于复位,e 键用于使歌曲暂停,f 键用于显示“WELCOME HERE”的欢迎界面。
在LCD 显示屏上,按下1号键的同时,显示屏上会显示1,代表1号键已被按下,同时播放歌曲1。当按下其他键时同样可以达到相同的效果。当按下e 键时,执行歌曲暂停播放命令,可以观察到LCD 的计时时间此时暂停,而当再次按下e 键时,歌曲继续播放,计时继续。
此次课程设计得到的仿真结果基本符合设计要求,但其中也存在如下两个问题:一是LCD 显示屏在显示时会出现轻微的闪烁,二是键盘在按下后不能立刻松开,而是需要按下一小段时间,大概1秒钟后,单片机才能作出反应。
第5章 总结
本次单片机与接口技术课程设计共2周,题目是数字音乐盒的设计。
起初在拿到这个设计题目时,并没有清晰的设计思路,经过一番思考,本人想到了要用单片机去驱动蜂鸣器来完成歌曲的播放功能,但是一首歌曲中有不同的音阶和节拍,如何实现这些不同的音阶和节拍第一个困难。在查阅了大量的资料,并在老师的细心指导下,终于明白了单片机系统播放歌曲的原理。即:单片机可以产生不同频率的方波去驱动蜂鸣器发出不同的音调,而这些音调可以用音符数组来实现,不同的歌曲对应不同的音符数组,只要编写出对应的音符数组即可完成对于音阶的控制。而节拍的控制可通过调用延时子程序来实现。
解决了音乐播放的原理问题后,遇到的第二个问题就是LCD 显示部分程序设计和键盘控制程序设计的代码编写问题。本人清醒地意识到我在课堂上所学习到的理论知识并不够深入,以至于在实践中编写程序代码时显得比较捉襟见肘。于是在重新研读教材上对应的理论知识后,终于初步拟出了这两部分的程序设计流程图,按照拟定出的程序设计流程图,本人在老师的指导下完成了对应程序代码的编写。这个过程虽然非常辛苦,但却获益良多。
总之,本次单片机与接口技术课程设计巩固并加深了本人在课堂上所学到的理论知识,并使本人有机会把它们运用到实践中去,激发了本人的学习兴趣,使本人以更加饱满的热情投入到接下来的学习中去。
本人签字:
参考文献
[1] 张毅刚, 彭喜元编著. 单片机原理与应用设计[M].北京:电子工业出版社,2008 [2] 郭天祥编著. 新概念51单片机C 语言教程—入门、提高、开发、扩展全攻略[M].北
京:电子工业出版社,2009
[3] 赵广元编著. Proteus 辅助的单片机原理实践—基础设计、课程设计和毕业设计[M].
北京:北京航空航天大学出版社,2013
[4] 王爽编著. 汇编语言[M](第三版). 北京:清华大学出版社,2013
[5] 郑学坚,朱定华编著. 微型计算机原理及应用[M](第四版). 北京:清华大学出版社,2013 [6] 刘亮. 基于单片机的数字音乐盒设计:电子学报[J].北京2014:11:53-58 [7] 周禹翔. 数字音乐盒的设计与仿真:通信技术[J].北京2015:12:64-44
附 录Ⅰ
总电路原理图
附 录Ⅱ
元器件清单
器件名称 AT89C51单片机 2N3906三极管
按键
LM032L 液晶显示器
电阻 蜂鸣器 电解电容 电容 晶振
数量 1片 1个 16个 1个 9个 1个 1个 2个 1个
附
录
Ⅲ
程序清单
RS BIT P2.0; 定义液晶显示端口标号 RW BIT P2.1 E BIT P2.2
;******************** L50MS EQU 60H L1MS EQU 61H L250MS EQU 62H SEC EQU 65H MIN EQU 64H HOU EQU 63H
;********************* ORG 0000H LJMP MAIN ORG 000BH LJMP TT0 ORG 001BH LJMP T1INT ORG 1000H MAIN: 液晶初始化 MOV SP,#70H MOV P0,#01H ; 清屏 LCALL ENABLE
MOV 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,#00H K3:
单片机与接口技术课程设计(论文)
MOV A,R2 MOV P1,A MOV A,P1
JB ACC.4,L1;为1跳转,第一行无按键 MM1: MOV A,@R1 MOV @R0,A INC R0 MOV A,#00H LJMP LK L1:
JB ACC.5,L2 MOV A,#04H LJMP LK L2:
JB ACC.6,L3 MOV A,#08H LJMP LK L3:
JB ACC.7,NEXT1 MOV A,#0CH LK: ADD A,R4 PUSH ACC K4:
LCALL DELAY1 等待 LCALL KS JNZ K4
MOV R3,#07H CLR A MOV R0,#30H MOV R1,#31H
; 若同时有其他按键,则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,A NOP 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 R0
DJNZ 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 TABLE10 MOV 53H,#LOW TABLE10 LCALL INITILE2 LCALL MAIN0 A44:
CJNE A,#05H,A55 LCALL MODD
MOV 52H,#HIGH TABLE20 MOV 53H,#LOW TABLE20 LCALL INITILE2 LCALL MAIN0 A55:
CJNE A,#06H,A66 LCALL MODD
MOV 52H,#HIGH TABLE30 MOV 53H,#LOW TABLE30 LCALL INITILE2 LCALL MAIN0 A66:
CJNE A,#07H,A77 LCALL MODD
MOV 52H,#HIGH TABLE10 MOV 53H,#LOW TABLE10 LCALL INITILE2 LCALL MAIN0 A77:
CJNE A,#08H,A88
单片机与接口技术课程设计(论文)
LCALL MODD
MOV 52H,#HIGH TABLE20 MOV 53H,#LOW TABLE20 LCALL INITILE2 LCALL MAIN0 A88:
CJNE A,#09H,A99 LCALL MODD
MOV 52H,#HIGH TABLE30 MOV 53H,#LOW TABLE30 LCALL INITILE2 LCALL MAIN0 A99:
CJNE A,#0AH,AAA LCALL MODD
MOV 52H,#HIGH TABLE10 MOV 53H,#LOW TABLE10 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
MOV P0,#0C8H ; 显示小时十位 LCALL ENABLE
MOV B,#10 DIV AB ADD A,#30H
LCALL WRITE2 MOV A,B ADD A,#30H
MOV P0,#0C9H LCALL ENABLE LCALL WRITE2 MOV A,#3AH
MOV P0,#0DH LCALL ENABLE LCALL WRITE2 MOV A,MIN MOV B,#10 DIV AB ADD A,#30H
MOV P0,#0CBH LCALL ENABLE LCALL WRITE2 MOV A,B ADD A,#30H
MOV P0,#0CCH LCALL ENABLE LCALL WRITE2 MOV A,#3AH
MOV P0,#0CDH LCALL ENABLE LCALL WRITE2 MOV A,SEC
; 显示小时个位 ; 显示冒号 ; 显示分十位 ; 显示分个位 ; 显示冒号 MOV P0,#0CEH ; 显示秒十位 LCALL ENABLE LCALL WRITE2 MOV A,B ADD A,#30H
MOV P0,#0CFH ; 显示秒个位 LCALL ENABLE LCALL WRITE2
MOV P0,#0C0H ; 设光标地址 LCALL ENABLE
MOV DPTR,#TABLE2;写数据 LCALL WRITE1 RET; 写指令 ENABLE: CLR RS CLR RW CLR E
LCALL DELAY SETB E RET 写数据 WRITE1: MOV R1,#00H A1: MOV A,R1
MOVC A,@A+DPTR LCALL WRITE2 INC R1
CJNE A,#0FEH,A1 ; 未到字符串末尾继续 RET WRITE2: MOV P0,A SETB RS CLR RW CLR E
LCALL DELAY SETB E RET DELAY: MOV R4,#05 D1:
MOV R5,#0FFH DJNZ R5,$ DJNZ R4,D1 RET 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:DB 'WELCOM HERE',0FEH TABLE2:DB'DFF WB ',0FEH TABLE4:DB 'CAU',0FEH
TABLE3:DB 30H,31H,32H,33H DB 34H,35H,36H,37H DB 38H,39H,41H,42H
DB 43H,44H,45H,46H;播放歌曲程序
单片机与接口技术课程设计(论文)
MAIN0:
MOV TMOD,#11H MOV IE,#8AH MOV TH1,#3CH MOV TL1,#0B0H LCALL ks
JNZ TTM12 MOV 40H,#00H NEXT20: MOV A,40H MOV DPH,52H MOV DPL,53H MOVC A,@A+DPTR MOV R2,A JZ STOP ANL A,#0FH MOV R1,A MOV A,R2 SWAP A ANL A,#0FH JNZ SING CLR TR0 JMP W1 SING: DEC A MOV 22H,A RL A
MOV DPTR,#TABLE00 MOVC A,@A+DPTR
MOV TH0,AMOV 21H,AMOV 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: LCALL K2 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,52H DEC A MOV 52H,A MOV A,53H DEC A MOV 53H,A MOV A,36H DEC A MOV 37H,A TTM2:
RET; 定时器中断子程序0 TT0: PUSH ACC
单片机与接口技术课程设计(论文)
PUSH PSW MOV TL0,20H MOV TH0,21H CPL P3.7 POP PSW POP ACC
RETI ;定时器中断子程序1 T1INT: MOV TH1, #3cH MOV TL1, #0b0H DJNZ 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,#10 DIV AB ADD A,#30H
MOV P0,#0CBH LCALL ENABLE LCALL WRITE2 MOV A,B ADD A,#30H
MOV P0,#0CCH LCALL ENABLE LCALL WRITE2 MOV A,MIN MOV B,#3 MUL AB MOV B,#100 DIV AB MOV R2,A MOV A,#10 XCH A,B DIV AB MOV A,MIN XRL A,#60 JNZ OUT
; 显示分十位 ; 显示分个位
HOUSET: MOV MIN,#00H MOV A,HOU MOV B,#10 DIV AB
ADD A,#30H
MOV P0,#0C8H ; 显示小时十位LCALL ENABLE LCALL WRITE2 MOV A,B ADD A,#30H
MOV P0,#0C9H ; 显示小时个位LCALL ENABLE LCALL 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,#125 W3:
MOV R3,#248 DJNZ R3,$ DJNZ R4,W3 DJNZ R7,W2 DJNZ R1,DELAY30 RET 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,32HDB 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 00H
第三首《看我七十二变》 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 00H
END
作文七:《穿越风雪的音乐盒》1400字
穿越风雪的音乐盒
饰品店货架 ://.kayoume./
那一年,他去西藏八宿的一个小乡支教,支教两年后,他就可以顺利地回城获得一份不错的工作。
学校里的孩子们来自不同的村落,近的就住在乡里,最远的孩子甚至要翻过一座海拔3000米的雪山。他很熟悉那个住在最远地方的孩子,他的名字叫也措,黑黑的小脸上弥漫着两朵高原红。据说,他是这个学校最穷的学生,家里只有一匹马,是整个家唯一的生活来源,为他们背负着生活的重担,春天来的时候,偶尔还能接上几个观光客。
也措平日里非常沉默,但是眼神却很特别,有点怯怯的忧郁,忧郁中透着惶恐,惶恐中又露出一丝坚定。在这个偏僻的小乡村里,他见到的眼神是整齐的,老人和孩子一样,单一而纯静,唯独这个孩子,眼中似乎有很多的内容。
雪大的时候,家远的孩子只能留下来,住在老师的宿舍里。那天,他的宿舍也留下了几个孩子。
那个晚上,孩子们在他的允许下翻看他的东西,并抱着他的吉他乱弹。只有也措,那个忧郁的小也措,在翻看他的一个小小的音乐盒――那是他的初恋女友大一时送给他的生日礼物,虽然毕业前他们已经分手,但他还是一直保存着这只好看的音乐盒。他来了之后的那些日子,总是不停打开它,听那首熟悉的《致爱丽丝》的曲子,听到泪眼模糊,直到有一天,发条崩坏了。
此刻的也措正抚摸着那个音乐盒,眼神,是他熟悉的淡淡的忧郁。
他走过去,问也措:“你知道它叫什么吗,”
“不。”也措的话也总是那么少。
“它叫音乐盒,一翻开盖子就会唱歌。”
“是谁送给你的,”也措居然问了一个令他措手不及的问题。
“是妈妈在我生日的时候送给我的。但是现在坏了,要不就可以让你听一听了。”对着孩子,他还是撒了谎。
也措看了他一眼,就低着头不说话了。
那一次的雪很大,也措在他的宿舍里住了整整三天。可是从第二天晚上开始,也措便开始想家了,听到风雪沙沙的声音就哭了,他不由得把他搂在怀里问:“想妈妈了,是吗,”
“我要见阿妈。”也措一开口,泪水又掉了一串。
他鼓励孩子:“也措,老师的妈妈在很远的地方,老师一年只能见一次妈妈,老师也很想妈妈,但是老师都不哭,不哭了好吗,”
也措不哭了。第三天黄昏,也措的母亲骑着马来到了他的宿舍门口,接走了也措。
那一年的冬天,雪一直很大,过年的时候,雪已经封了路,他很想家,却没有能够回去。
终于到了第二年春天,雪少了,阳光有了暖意。路也通了,不远的镇子开始有了稀少的游客。但是他却没有时间回家了,因为孩子们已经开学了。
也措也来了,依旧不爱说话,总是偷偷地看他。但眼神却不再是淡淡的忧郁,而是似乎有种说不出的欢快。
然后就到了他的生日,没有人为他庆祝,他孤单地为自己点燃了蜡烛。可是三天后,他却意外地收到了一个邮包,拆开来,竟然是一个音乐盒,比他那个还要漂亮。音乐盒里放了一封信,他看着,心就像春天的雪一般簌簌地融化了??
信是北京的一个陌生人寄来的,那人在信中说,他在前一个月来了一次八宿,碰到了一个叫也措的小孩,小孩牵着家里的马送他进山,却没有收他一分钱,只要求他回去之后,在四
月初给他的老师寄一个音乐盒当做生日礼物,因为,老师的妈妈送给老师的音乐盒坏了,老师已经很久没有见妈妈了??
原本,他只需在那里支教两年的,但是他却整整待了六年才回去。
饰品店货架
作文八:《我心爱的音乐盒》800字
------精品文档!值得拥有~------
我心爱的音乐盒
上星期,姑姑到英国游玩,回来时,给我买了一个我梦寐以求木制音乐盒。我迫不及待地把音乐盒赶快拿出,它都是由木头做成的。左边像一个休息室,右边是一间可爱的迷你小屋子,上面都可有一些美丽的图片与一些英文字。
休息室被四根木棒夹住,其中一根木棒上有一个小转盘。休息室的上方有一个“滑滑梯”,它的旁边有一个木制的杯子,它上宽下窄,像一个漏斗,上面还刻有“GOODLUCK”意思是:祝你好运。字母下面还有一个打开的水壶,奇怪的是从水壶口上长出了一朵小花,我想:如果卖花人有这么好的水壶,那他也不会发愁了~
休息室的中央有着两行字,分别是“SHAMROCK”和“SAVINGS”意思是:积蓄了许多三叶草。这两行字的开头字母都刻得特别大,开头字母不但大,而且中间还有一片小小的三叶草,第二行开头字母身上有两条弯曲的线,直到最后一个字母。休息室的下面有一个滑道和一个游泳池。夏天,人们从滑道上滑下来,到游泳池里尽情地游泳;冬天,人们从滑道上滑下来,到游泳池里尽情地泡温泉。
迷你小屋的屋檐是分为两半的,一半上有“HAPPYEASTRE”意思是:快乐的耶稣复活节。旁边还有三只羊在安详地吃草。另一半则整齐地贴着瓦片。四四方方的屋子上,有着一扇可爱的小门,上面有两颗心被一条绳子绑在一起,还被丘比特之箭射中了,在那两颗大心旁边还有许多小心。小屋门上有三颗心,被挂在挂满小心的藤子上。屋顶中央上有一个风车,
------珍贵文档!值得收藏~-----
------精品文档!值得拥有~------
如同烟囱一样。风车上有四块小木板,各有两只啄木鸟、小松鼠对面坐着。
我轻轻地把风车向右一转,便传来了优美的铃声。在风车转动的同时,后面的两个连着线的转盘和休息室上的小转盘,也转动起来。
我做完作业后,都会听一听那优美的铃声,缓解一下心情。是音乐盒给了我快乐和乐趣~
------珍贵文档!值得收藏~-----
作文九:《我心爱的音乐盒》1000字
精品文档
我心爱的音乐盒
小山屋作文 更新:2007-1-15 阅读: 栏目:四年级作文 我心爱的音乐盒我心爱的音乐盒
同达小学 四(2)班 许会
上星期,姑姑到英国游玩,回来时,给我买了一个我梦寐以求木制音乐盒。我迫不及待地把音乐盒赶快拿出,它都是由木头做成的。左边像一个休息室,右边是一间可爱的迷你小屋子,上面都可有一些美丽的图片与一些英文字。
休息室被四根木棒夹住,其中一根木棒上有一个小转盘。休息室的上方有一个“滑滑梯”,它的旁边有一个木制的杯子,它上宽下窄,像一个漏斗,上面还刻有“GOODLUCK”意思是:祝你好运。字母下面还有一个打开的水壶,奇怪的是从水壶口上长出了一朵小花,我想:如果卖花人有这么好的水壶,那他也不会发愁了~
休息室的中央有着两行字,分别是“SHAMROCK”和“SAVINGS”意思是:积蓄了许多三叶草。这两行字的开头字母都刻得特别大,开头字母不但大,而且中间还有一片小小的三叶草,第二行开头字母身上有两条弯曲的线,直到最后一个字母。休息室的下面有一个滑道和一个游泳池。夏天,人们从滑道上滑下来,到游泳池里尽情地游泳;冬天,人们从滑道上滑下来,到游泳池里尽情地泡温泉。
1 / 2
精品文档
迷你小屋的屋檐是分为两半的,一半上有
“HAPPYEASTRE”意思是:快乐的耶稣复活节。旁边还有三只羊在安详地吃草。另一半则整齐地贴着瓦片。四四方方的屋子上,有着一扇可爱的小门,上面有两颗心被一条绳子绑在一起,还被丘比特之箭射中了,在那两颗大心旁边还有许多小心。小屋门上有三颗心,被挂在挂满小心的藤子上。屋顶中央上有一个风车,如同烟囱一样。风车上有四块小木板,各有两只啄木鸟、小松鼠对面坐着。
我轻轻地把风车向右一转,便传来了优美的铃声。在风车转动的同时,后面的两个连着线的转盘和休息室上的小转盘,也转动起来。
我做完作业后,都会听一听那优美的铃声,缓解一下心情。是音乐盒给了我快乐和乐趣~
指导老师:范老师
(投稿:xszw 于 2006-6-1 14:55:52 编审: )
2 / 2
作文十:《数字音乐盒的设计》14300字
课程设计说明书
电子技术课程设计
《数字音乐盒》
课程设计报告
院(系)名称 信 息 工 程 学 院 专 业 班 级 10级 测控技术与仪器 学 号 100119066 学 生 姓 名 刘祖林 指 导 教 师 杨全玖
第 1 页
课程设计说明书
目录
第一章 摘要 .................................................................... 2 第二章 概述 ................................................................... 3
第一节 单片机总体功能简介 ....................................... 3
第二节AT89C51芯片功能和硬件................................ 4
第三节 功能键介绍 .................................................... 6 第三章 系统总体方案及硬件设计 ..................................... 7
第一节 系统设计要求 ................................................. 7
第二节 总体设计方案 ................................................. 7
第三节 系统硬件设计 ................................................. 7
第四节 软件设计 ........................................................ 8 第四章 程序设计流程图 ................................................ 10 第五章 PROTEUS功能仿真 ............................................ 12 总结 ..................................................错误~未定义书签。
致谢 ............................................................................ 15 附 1 原程序代码........................................................... 16 附 2 系统原理图........................................................... 22
第 2 页
课程设计说明书
第一章 摘要
本设计是基于51系列单片机,蜂鸣器,数码管LED的数字音乐盒设计,通过利用I/o一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏各种乐曲(本设计为四首,若有必要,可以增加),可以通过功能键来选择乐曲,暂停,播放,前进,后退等功能。
音乐盒的电路设计过程在硬件与软件方面进行同步。其中,硬件方面选择内部存储资源丰富的AT89C51单片机,时钟采用12MHZ晶体振荡电路。软件方面,从分析电路各个功能子模块的功能、流程图设计,在到程序的编写设计均进行了综合的考虑。编成语言从程序总体设计以及高效性的硬件方面考虑,采用汇编语言进行编写。
在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面复习与准备。在硬件与软件设计时,没有良好的基础知识和实践经验会受到很大的限制,每项功能实现时需要那种硬件,程序该如何编写,如何调试等,没有一定的基础就不可能很好的实现。具体实现功能:
1、利用I/O一定频率的方波,驱动蜂鸣器,发出不同的音调,
从而演奏各种乐曲
2、采用LED显示信息
3、播放时显示歌曲序号
4、可通过功能键选择乐曲,暂停,播放。
第 3 页
课程设计说明书
第二章 概述
目前,各种传感器、变送器、控制仪表已经普遍采用单片机应用系统。它测量、处理、控制功能于一单片机是单片微型机的简称,故又称为微控制器MCU。通常由单块集成电路芯片组成,内部含有计算机的基本功能部件:中央处理器CPU,存储器和I/O接口电路等。因此,单片机只要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
第一节 单片机总体功能简介
单片机是在工业测控需要背景下而产生的,在一个应用系统中。按照测控系统的特点和要求,单片机的应用可分为单机应用和多机应用两大类。我们这次要完成的单片机课程设计就是它的单机应用,下面介绍一下单片机应用领域内的主要内容。
(1) 智能产品
单片机与传统机械产品相结合,使传统机械产品结构简化,控制智能化,购成新一代机电一体化产品。
目前,利用单片机构成的智能产品已广泛应用于家用电器、办公设备、数控机床、纺织机械、 工业设备等行业。
(2) 智能仪表
第 4 页
课程设计说明书
目前,各种传感器、变送器、控制仪表已经普遍采用单片机应用系统。它测量、处理、控制功能于 一体,具有各种智能化功能,如存储、数据处理、查找、判断、联网和语音等功能。
单片机构成的智能仪表,能使仪表具有数字化、智能化、多功能化、综合化等优点。
(3) 测控技术
用于单片机结构的各种工业控制系统中的数据采集系统具有工作稳定可靠、抗干扰能力强的优点。
(4) 智能接口
在计算机系统,特别是较大型的工业测控系统中,除通用外部设备外,还由许多外部通信、采集、多路分配管理、驱动控制等接口。这些外部设备与接口如果完全由主机进行管理,势必会造成主机负担过重,运行速度降低,接 口的管理水平也不可能提高。如果用单片机进行接口的控制与管理,单片机与主机可并行加工处理,可以大量降 低接口的通信密度,极大的提高了接口控制广利水平。在一些通用计算机外部设备上,以实现了单片机的键盘管理、 打印机控制、硬盘驱动控制等。
第二节AT89C51芯片功能和硬件
本系统采用的是51系列的AT89C51单片机进行的计算器设计。
下图为AT89C51单片机的管脚图。
第 5 页
课程设计说明书
(图 1 AT89C51引脚图)
VCC:正电源端
GND:单片机的接地端
XTAL1/XTAL2:片内振荡电路输入/输出端,两端跨接晶体或陶瓷谐振器,与单片机内部反相器构成稳定的自激振荡器。发出的脉冲直接送入片内定的控制部件
RESET:复位端
EA/VPP:寻址外部ROM控制端/编程电源输入端。
第 6 页
课程设计说明书
ALE/PROG:地址锁存允许/编程脉冲输入端。
PSEN:寻址外部程序存储器,选通外部EPROM的端口(OE)。 P0.0~P0.7 P1.0~P1.7 P2.0~P2.7:准双向I/O口。
P3.0~P3.7:具有特定的第二功能(准双向I/O口)。
第三节 功能键介绍
(图 2 音乐盒功能键) START: 播放键判断
SELECT: 选择键判断
PUASE: 停止播放
STOP: 停止键判断
ORDER: 顺序键判断
RAND: 随机键判断
第 7 页
课程设计说明书
第三章 系统总体方案及硬件设计
第一节 系统设计要求
音乐盒的可实现功能:
1 利用I/O口产生一定的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲;
2 采用LED 显示信息;
3 可通过功能键选择乐曲,暂停,播放。
第二节 总体设计方案
由于计算器需要比较多的输入输出口,所以选择使用内部存储资源比较的多AT89C51单片机,8位LED动态显示。扬声器可以用一个准I/O口,采用AT89C51作为运算和控制单元完全满足系统的需要。
第三节 系统硬件设计
方波电路:51核片内由一个反相放大器构成振荡器,本系统采用内部方式,在XTAL1和XTAL2
端外接石英晶体作为定时元件,内部反相放大器自激振荡,产生时钟。时钟发生器对振荡脉冲二分频。
第 8 页
课程设计说明书 如下图所示:
(图3 时钟发生器)
第 9 页
课程设计说明书
第四节 软件设计
本设计的流程如下:
主程序开始
初始化变量及LED接口
初始化方波发生器 晶振管
(图4 系统流程图)
先从主程序开始,接着初始化变量及LED接口,然后初始化方波发生器、晶振管,使LED显示信息,就进入了开机状态,等待动作——选择按键,包括播放键、暂停键、停止键,当然也可以选择返回:加入选择的是播放键,LED上就会显示歌曲编号,与此同时演奏相应的乐曲,此时,你就可以用按键控制乐曲的播放了。
第 10 页
课程设计说明书
第四章 程序设计流程图
电路图的设计及程序设计是否合理,通过proteus软件进行仿真;若不合理就需要修改,直至符合要求。
(1)软件的使用
使用WAVE6000软件的目的是取得源程序的编译文件 (2) Proteus软件介绍
protues是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析各种模拟器件和集成电路。
Proteus ISIS的工作界面是一种标准的Windows界面,如下图所示包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮预览窗口、对象选择器窗口、图形编辑窗口。
运行Proteus程序后,进入软件的界面。通过左侧工具栏的P命令,在Pick Devices左侧窗口中选择所需元件的关键字,然后放置元件并调整方向和位置以及参数设置,最后进行连线。
第 11 页
课程设计说明书
(图5 Proteus界面)
第 12 页
课程设计说明书
第五章 Proteus功能仿真
下面是几张仿真图,由于本次设计是数字音乐盒,而声音没有仿真图,所以仿真图主要是LCD显示歌曲编号和LED灯的显示。
(图6 LED显示仿真)
如图6:
LED等全灭:播放没有开始
D1亮:选择歌曲
D2亮:顺序模式
D3亮:随机模式
全亮:播放暂停
第 13 页
课程设计说明书
(图7LCD显示仿真)
如图7: LCD显示的数字是歌曲的编号。
(图8音乐盒总体仿真图)
第 14 页
课程设计说明书
总结
本学期在做课程设计时,对单片机的硬件设计,软件设计掌握的深度不够,但通过次次课程设计,却改变了很多,首先对于硬件电路的工作原理有了进一步的学习,同样就有了进一步的认识;其次软件方面,在程序的设计,程序的调试方面都学到了很多东西,这是第一次自己独立完成课程设计,很有成就感。
在设计过程中我遇到了很多问题,有知识方面的,但也有个人不良习惯方面的,例如在WAVE上编译程序时,出现好几处错误,经仔细检查才知道并不是程序错误,而是自己输入不规范和输错造成的,这就提醒我在设计过程中一定要细心认真的完成每一步骤每一个环节,才能避免不必要的失误。
另外,我觉得只有在一个好的氛围里才能踏下心来做东西,在设计出现问题时,一定要戒躁,脚踏实地,认真看书,仔细分析,仔细调试,就一定会发现错误,克服困难,这是非常重要。
第 15 页
课程设计说明书
参考文献
【1】《单片机原理及应用技术》
【2】《MC-51单片机应用技术》
【3】《电子制作》
【4】《51 系列单片机设计实例》
【5】《单片机C51程序设计教程与实验》
第 16 页
课程设计说明书
致谢
历时将近两个星期的时间终于将这篇论文写完,在论文的写作过程中遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。尤其要强烈感谢我的论文指导老师老师,对我进行了无私的指导和帮助,不厌其烦的帮助进行论文的修改和改进。另外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。在此向帮助和指导过我的各位老师表示最中心的感谢~
感谢这篇论文所涉及到的各位学者。本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。 感谢我的同学和朋友,在我写论文的过程中给予我了很多你问素材,还在论文的撰写和排版灯过程中提供热情的帮助。
由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和学友批评和指正~
第 17 页
课程设计说明书
附 1 原程序代码
#include
#include
#define K_Order P3_6
#define K_Rand P3_7
#define K_Start P3_0
#define K_Select P3_1
#define K_Puase P3_2
#define K_Stop P3_3
extern void Play_Music(unsigned char music_num); extern void Delay10us(unsigned char tmep); extern void Delay10ms(unsigned char tmep);
第 18 页
课程设计说明书 extern void Delay1s(unsigned char tmep);
extern void Press_Start(void);
extern void Press_Select(void);
extern void Press_Order(void);
extern void Press_Rand(void);
extern void Press_Puase(void);
extern void Press_Stop(void);
void music(unsigned int code *Song);
static unsigned int count;
static unsigned char startflag,selectflag,orderflag,randflag,stopflag,flag,Ledflag;
static unsigned char i,k,temp,step,freq,music_num,randnum;unsigned char code *ptr;
//LED显示代码,共阳极
unsigned char code Seg[4]={ 0xF9,0xA4,0xB0,0x99};
//song1八月桂花香
unsigned char code Song1[]={0x18,0x30,0x1c,0x20,0x10,0x40,0x1c,0x10,0x18,0x10,
0x20,0x10,0x1c,0x10,0x18,0x40,0x1c,0x20,0x20,0x20,
0x1c,0x20,0x18,0x20,0x20,0x80,0xff,0x20,0x30,0x1c,
0x10,0x18,0x20,0x15,0x20,0x1c,0x20,0x20,0x20,0x26,
0x40,0x20,0x20,0x2b,0x20,0x26,0x20,0x20,0x20,0x30,
0x80,0xff,0x20,0x20,0x1c,0x10,0x18,0x10,0x20,0x20,
0x26,0x20,0x2b,0x20,0x30,0x20,0x2b,0x40,0x20,0x20,
0x1c,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2b,0x20,
0x30,0x20,0x2b,0x40,0x20,0x30,0x1c,0x10,0x18,0x20,
0x15,0x20,0x1c,0x20,0x20,0x20,0x26,0x40,0x20,0x20,
0x2b,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,
0x1c,0x10,0x20,0x10,0x1c,0x10,0x20,0x20,0x26,0x20,
0x2b,0x20,0x30,0x20,0x2b,0x40,0x20,0x15,0x1f,0x05,
0x20,0x10,0x1c,0x10,0x20,0x20,0x26,0x20,0x2b,0x20,
0x30,0x20,0x2b,0x40,0x20,0x30,0x1c,0x10,0x18,0x20,
0x15,0x20,0x1c,0x20,0x20,0x20,0x26,0x40,0x20,0x20,
0x2b,0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,
0x1c,0x10,0x18,0x40,0x1c,0x20,0x20,0x20,0x26,0x40,
0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80, 0x00};
//song2波斯猫部分
unsigned char code
Song2[]={0x40,0x19,0x40,0x19,0x40,0x19,0x4c,0x19,0x4c,0x19,0x48,0x19,0x4c,0x19,
0x40,0x19,0x40,0x19,0x40,0x19,0x4c,0x19,0x4c,0x19,0x48,0x19,0x4c,0x19,
0x40,0x19,0x40,0x19,0x40,0x19,0x4c,0x19,0x40,0x19,0x39,0x19,0x33,0x19,0x30,0x19,
0x30,0x19,0x33,0x19,0x33,0x19,
第 19 页
课程设计说明书
0x30,0x32,0x30,0x32,0x30,0x32,0x39,0x19,0x40,0x19,
0x39,0x19,0x40,0x19,0x4c,0x32,0x4c,0x32,
0x39,0x32,0x39,0x32,0x39,0x32,0x40,0x19,0x4c,0x19,
0x40,0x19,0x4c,0x19,0x55,0x32,0x55,0x32,
0x30,0x32,0x30,0x32,0x30,0x32,0x39,0x19,0x40,0x19,
0x39,0x19,0x40,0x19,0x4c,0x32,0x4c,0x32,
0x55,0x32,0x39,0x19,0x4c,0x19,0x4c,0x32,0x4c,0x19,0x40,0x19,
0x39,0x32,0x39,0x19,0x39,0x32,0x24,0x00,0x00}; //song3两只老虎
unsigned char code Song3[]={0x60,0x32,0x55,0x32,0x4c,0x32,0x60,0x32,
0x60,0x32,0x55,0x32,0x4c,0x32,0x60,0x32,
0x4c,0x32,0x48,0x32,0x40,0x32,0x40,0x32,
0x4c,0x32,0x48,0x32,0x40,0x32,0x40,0x32,
0x40,0x19,0x40,0x0d,0x39,0x0d,0x40,0x19,
0x40,0x0d,0x48,0x0d,0x4c,0x32,0x60,0x32,
0x40,0x19,0x40,0x0d,0x39,0x0d,0x40,0x19,
0x40,0x0d,0x48,0x0d,0x4c,0x32,0x60,0x32,
0x60,0x32,0x40,0x32,0x60,0x32,0x60,0x32,
0x60,0x32,0x40,0x32,0x60,0x32,0x60,0x32,0x00};
//song4兰花草
unsigned char code Song4[]={0x72,0x19,0x4c,0x19,0x4c,0x19,0x4c,
0x19,0x4c,0x19,0x4c,0x32,0x55,0x19,
0x60,0x19,0x55,0x19,0x60,0x19,0x65,
0x19,0x72,0x32,0x72,0x32,
0x39,0x19,0x39,0x19,0x39,0x19,0x39,
0x19,0x39,0x32,0x39,0x32,0x40,0x19,
0x97,0x19,0x40,0x19,0x40,0x19,0x48,
0x19,0x4c,0x32,0x4c,0x32,
0x4c,0x19,0x39,0x19,0x39,0x19,0x40,
0x19,0x4c,0x32,0x4c,0x32,0x55,0x19,
0x60,0x19,0x55,0x19,0x60,0x19,0x65,
0x19,0x72,0x32,0x97,0x19,
0x97,0x19,0x60,0x19,0x60,0x19,0x65,
0x19,0x72,0x32,0x72,0x32,0x4c,0x19,
0x55,0x19,0x60,0x19,0x65,0x19,0x7f,
0x19,0x39,0x32,0x39,0x32,0x00};
///////////////////////////////-MAIN-/////////////////////////////// void main(void)
{P1=0xff;
//初始化设置?
SP=0x60; TH0=0xD8; TL0=0xF0; TMOD=0x01;
IE=0x83; IP=0x02; music_num=0; startflag=0; flag=0;
while(1)
第 20 页
课程设计说明书
{ Press_Start();if(startflag==1){ Play_Music(music_num); Delay1s(200); Delay1s(200);}
Press_Select();if(selectflag==1){ Delay1s(100); P2=0x0E; if(music_num>=0&&music_num=0&&music_num<4)&&(flag==1||K_Start==0)){ flag=1;
if(music_num!=0)P1=Seg[music_num-1]; else
P1=Seg[music_num]; Play_Music(music_num);} Delay1s(200);
if(K_Stop==0) break; }}Press_Stop();
if(stopflag==1){ P1=0xFF; P2=0xFF; music_num=0;} }
while(1) ;}
//*----------------子程序区段----------------
//包括:按键判断程序、延时程序、中断处理程序、
// 音乐播放程序、音乐选择程序
//------------------------------------------*
///按键判断程序,如果有按键,则相应标志位置1,否则置0
void Press_Start(void)
//播放键判断
{ if(K_Start==0){ Delay10ms(100);
if(K_Start==0) startflag=1; }
else startflag=0;}void Press_Select(void)
//选择键判断
{ if(K_Select==0){ Delay10ms(100);
if(K_Select==0) selectflag=1; }
else selectflag=0;}void Press_Order(void)
//顺序键判断
{ if(K_Order==0) { Delay10ms(100);
if(K_Order==0) orderflag=1;}
else orderflag=0;}void Press_Rand(void)
//随机键判断
{ if(K_Rand==0) { Delay10ms(100);
if(K_Rand==0) randflag=1; }
else randflag=0;}
void Press_Stop(void)
//停止键判断
第 21 页
课程设计说明书
{ if(K_Stop==0) { Delay10ms(100);
if(K_Stop==0) stopflag=1; }
else stopflag=0;}
//-----------音乐播放子程序--------------
void music(unsigned int code *Song)
{ ptr=Song;
while(*ptr!=0x00)
{ if(K_Stop==0) Delay10ms(100);
if(K_Stop==0)break; freq=*ptr++;
if(freq==0xFF)
//如果频率常数为0xFF,则休止100ms??
Delay1s(10);
else
{step=*(ptr++); TR0=1;
for(i=0;;i++)
{ P2_4=0;
Delay10us(freq);
P2_4=1;
Delay10us(freq);
if(count==step) break; }
TR0=0; count=0;} }}
//---------------------------------------------//音乐选择程序
void Play_Music(unsigned char music_num) { switch(music_num)
{ case 1: music(&Song1); break;
case 2: music(&Song2);break;
case 3: music(&Song3); break;
case 4: music(&Song4); break;}}
//-----------------------------------//------------中断子程序-------------
//定时器0中断
void Intt0(void) interrupt 1 using 3
{ count++; TH0=0xD8; TL0=0xF0;}
//外部中断
void Int0(void) interrupt 0 using 2
{ if(K_Puase==0) { Delay10ms(100);
if(K_Puase==0){ Ledflag=P2;
while(1) { P2=0x00;Delay1s(100);P2=0x0f;
if(K_Stop==0||K_Start==0) break; } P2=Ledflag; } }}
//------------------------------------//-----------延时子程序---------------
void Delay10us(unsigned char temp)
{ unsigned char i,j;
for(i=0;i<temp;i++) for(j=0;j<1;j++) ;}
void Delay10ms(unsigned char temp)
{ unsigned char i,j; for(i=0;i<temp;i++) for(j=0;j<12;j++) ;}
第 22 页
课程设计说明书
void Delay1s(unsigned char temp)
{unsigned char i,j;
for(i=0;i<temp;i++)
for(j=0;j<10;j++)
for(k=0;k<120;k++);}
附 2 系统原理图
第 23 页
课程设计说明书
(图9系统原理图)
转载请注明出处作文大全网 » 我的音乐盒作文音乐盒