基于单片机的音乐发生器设计说明Word文档下载推荐.docx
- 文档编号:5698870
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:26
- 大小:179.12KB
基于单片机的音乐发生器设计说明Word文档下载推荐.docx
《基于单片机的音乐发生器设计说明Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机的音乐发生器设计说明Word文档下载推荐.docx(26页珍藏版)》请在冰点文库上搜索。
第1章绪论
1.1单片机介绍
单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。
单片机由芯片仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
早期的单片机都是8位或4位的。
其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。
此后在8031上发展出了MCS51系列单片机系统。
基于这一系统的单片机系统直到现在还在广泛使用。
随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。
90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。
随着INTELi960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。
而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。
目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端[1]的型号也只有10美元。
当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。
而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。
单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。
事实上单片机是世界上数量最多的计算机。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。
手机、、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。
而个人电脑中也会有为数不少的单片机在工作。
汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!
单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机部也用和电脑功能类似的模块,比如CPU,存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元,用它来做一些控制电器一类不是很复杂的工作足矣了。
我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影,它主要是作为控制部分的核心部件。
它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。
单片机是靠程序运行的,并且可以修改。
通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。
一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!
但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!
只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!
由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?
很多高级的语言已经达到了可视化编程的水平为什么不用呢?
原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。
一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!
对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。
单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。
一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。
可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
不过,这种电脑,通常是指个人计算机,简称PC机。
它由主机、键盘、显示器等组成。
还有一类计算机,大多数人却不怎么熟悉。
这种计算机就是把智能赋予各种机械的单片机。
顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。
因为它体积小,通常都藏在被控机械的“肚子”里。
它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。
现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。
现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。
究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。
1.2单片机历史
单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。
1)SCM即单片微型计算机(SingleChipMicrocomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。
“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。
在开创嵌入式系统独立发展道路上,Intel公司功不可没。
2)MCU即微控制器(MicroControllerUnit)阶段,主要的技术发展方向是:
不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。
它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。
从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。
在发展MCU方面,最著名的厂家当数Philips公司。
Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。
因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。
3)单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;
因此,专用单片机的发展自然形成了SoC(SystemonChip)化趋势。
随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。
因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。
第2章Intel51系列单片机
2.1
MCS-51单片机简述
MCS-51是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。
INTEL公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生产的。
MCS-51系列单片机分为两大系列,即51子系列与52子系列。
51子系列:
基本型,根据片ROM的配置,对应的芯片为8031、8051、8751、8951;
52子系列:
增强型,根据片ROM的配置,对应的芯片为8032、8052、8752、8952;
2.28051与80C51的区别
80C51单片机是在8051的基础上发展起来的,也就是说在单片机的发展过程中是先有8051,然后才有80C51的。
8051单片机与80C51单片机从外形看是完全一样的,其指令系统、引脚信号、总线等完全一致(完全兼容),也就是说在8051下开发的软件完全可以在80C51上应用,反过来,在89C51下开发的软件也可以在8051上应用。
这两种单片机是完全可移植的。
8051与80C51单片机的主要差别就在于芯片的制造工艺上。
80C51的制造工艺是在8051基础上进行了改进。
8051系列单片机采用的是HMOS工艺:
高速度、高密度;
80C51系列单片机采用的是CHMOS工艺:
高速度、高密度、低功耗;
也就是说80C51单片机是一种低功耗单片机。
2.38051单片机的引脚功能
图中给出了40引脚的8051单片机的引脚图,40个引脚按引脚功能大致可分为4个种类:
电源、时钟、控制和I/O引脚。
图2.18051单片机的引脚图
2.3.1电源
1)VCC-芯片电源,接+5V;
2)VSS-接地端;
注:
用万用表测试单片机引脚电压一般为0v或者5v,这是标准的TTL电平。
但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0v-5v之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机引脚电压仍保持在0v或者5v。
2.3.2时钟
时钟:
XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。
2.3.3控制线
1)ALE/PROG:
地址锁存允许/片EPROM编程脉冲。
①ALE功能:
用来锁存P0口送出的低8位地址。
②PROG功能:
片有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
2)PSEN:
外ROM读选通信号。
3)RST/VPD:
复位/备用电源。
①RST(Reset)功能:
复位信号输入端。
②VPD功能:
在Vcc掉电情况下,接备用电源。
4)EA/Vpp:
外ROM选择/片EPROM编程电源。
①EA功能:
外ROM选择端。
②Vpp功能:
片有EPROM芯片,在EPROM编程期间,施加编程电源Vpp。
2.3.4I/O线
80C51共有4个8位并行I/O端口:
P0、P1、P2、P3口,共32个引脚。
P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线),
P3口第二功能为:
P30RXD串行输入口
P31TXD串行输出口
P32INT0外部中断0(低电平有效)
P33INT1外部中断1(低电平有效)
P34T0定时计数器0
P35T1定时计数器1
P36WR外部数据存储器写选通(低电平有效)
P37RD外部数据存储器读选通(低电平有效)
2.451单片机部结构
图2.251单片机部结构图
从部结构简图可以看出,51单片机部有以下主要部分:
1)CPU512)振荡器及定时电路
3)4KB程序存储器4)128B数据存储器
5)2个16位定时/计数器6)64KB总线扩展控制
7)可编程I/O8)可编程串行口
9)中断系统
2.551系列的特性
1)片存储器容量较小,一般部ROM:
8KB以下,部RAM:
256KB以下
2)可靠性高
3)易扩展
4)控制功能强
5)易于开发
2.6单片机相关常用名词解释
总线:
指能为多个部件服务的信息传送线,在微机系统中各个部件通过总线相互通信。
地址总线(AB):
地址总线是单向的,用于传送地址信息。
地址总线的宽度为16位,因此基外部存储器直接寻址64K,16位地址总线由P0口经地址锁存器提供低8位地址(A0~A7),P2口直接提供高8位地址(A8~A15)。
数据总线(DB):
一般为双向,用于CPU与存储器,CPU与外设、或外设与外设之间传送数据信息(包括实际意义的数据和指令码)。
数据总线宽度为8位,由P0口提供。
控制总线(CB):
是计算机系统中所有控制信号的总称,在控制总线中传送的是控制信息。
由P3口的第二功能状态和4根独立的控制总线,RESET、EA、ALE、PSEN组成。
存储器:
用来存放计算机中的所有信息:
包括程序、原始数据、运算的中间结果及最终结果等。
只读存储器(ROM):
只读存储器在使用时,只能读出而不能写入,断电后ROM中的信息不会丢失。
因此一般用来存放一些固定程序,如监控程序、子程序、字库及数据表等。
ROM按存储信息的方法又可分为以下几种:
掩膜ROM:
掩膜ROM也称固定ROM,它是由厂家编好程序写入ROM(称固化)供用户使用,用户不能更改部程序,其特点是价格便宜。
可编程的只读存储器(PROM):
它的容可由用户根据自已所编程序一次性写入,一旦写入,只能读出,而不能再进行更改,这类存储器现在也成为OTP(OnlyTimeProgrammable)。
可改写的只读存储器EPROM:
前两种ROM只能进行一次性写入,因而用户较少使用,目前较为流行的ROM芯片为EPROM。
因为它的容可以通过紫外线照射而彻底擦除,擦除后又可重新写入新的程序。
可电改写只读存储器(EEPROM):
EEPROM可用电的方法写入和清除其容,其编程电压和清除电压均与微机CPU的5V工作电压相同,不需另加电压。
它既有与RAM一样读写操作简便,又有数据不会因掉电而丢失的优点,因而使用极为方便。
现在这种存储器的使用最为广泛。
随机存储器(RAM):
这种存储器又叫读写存储器。
它不仅能读取存放在存储单元中的数据,还能随时写入新的数据,写入后原来的数据就丢失了。
断电后RAM中的信息全部丢失。
因此,RAM常用于存放经常要改变的程序或中间计算结果等信息。
RAM按照存储信息的方式,又可分为静态和动态两种。
静态SRAM:
其特点是只要有电源加于存储器,数据就能长期保存。
动态DRAM:
写入的信息只能保存若干ms时间,因此,每隔一定时间必须重新写入一次,以保持原来的信息不变。
可现场改写的非易失性存储器:
这种存储器的特点是:
从原理上看,它们属于ROM型存储器,从功能上看,它们又可以随时改写信息,作用又相当于RAM。
所以,ROM、RAM的定义和划分已逐渐的失去意义。
快擦写存储器(FLASH):
这种存储器是在EPROM和EEPROM的制造基础上产生的一种非易失性存储器。
其集成度高,制造成本低于DRAM,既具有SRAM读写的灵活性和较快的访问速度,又具有ROM在断电后可不丢失信息的特点,所以发展迅速。
铁电存储器FRAM:
它是利用铁电材料极化方向来存储数据的。
它的特点是集成度高,读写速度快,成本低,读写周期短。
时钟周期:
计算机在时钟信号的作用下,以节拍方式工作。
因此必须有一个时钟发生电路,输入微处理器的时钟信号的周期称为时钟周期。
机器周期:
机器完成一个动作所需的时间称为机器周期,一般由一个或一个以上的时钟周期组成。
在我们讲述的MCS-51系列单片机中,一个机器周期由12个时钟周期组成。
指令周期:
执行一条指令(如“MOV
A,#34H”,该指令的含义是将立即数34H传送到微处理器的累加器A中)所需时间称为指令周期,它由一个到数个机器周期组成。
指令周期的长短取决于指令的类型,即指令将要进行的操作步聚及复杂程度。
汇编:
是能完成一定任务的机器指令的集合。
二进制数:
只有0和1两个数码,基数为二。
16进制数:
采用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F等16个数码,其中A-F相应的十进数为10-15,基数是16。
指令:
是计算机所能执行的一种基本操作的描述,是计算机软件的基本单元。
字节:
8位二进制数组成一个字节,在存储器中以字节为单位存储信息。
字:
2个字节组成一个字。
双字:
2个字组成一个双字。
补码:
机器数可用不同的码制来表示,补码表示法是最常用的一种,正数采用符号+绝对值表示,即数的最高有效位为0,数的其余部分则表示数的绝对值;
负数的表示要麻烦一些,先写出与该负数相对应的正数的补码表示,然后将其按位求反,最后在末位加1,就可以得到该负数的补码表示了。
偏移地址:
存储单元距离段起始位置的偏移量简称偏移地址,由于限定每段不超过64KB,所以偏移地址也可以用16位数据表示。
物理地址:
在1M字节的存储器里,每一个存储单元都有一个唯一的20位地址,称为该存储单元的物理地址,把段地址左移4位再加上偏移地址就形成物理地址。
代码段:
程序员在编制程序时要把存储器划分成段,代码段用来存放程序的指令序列,代码段的段地址存放在CS中,指令指针寄存器IP指示代码段中指令的偏移地址,处理器利用CS:
IP取得下一条要执行的指令。
数据段:
数据段存放当前运行程序所用的数据,数据段的段地址存放在DS中。
附加段:
附加段是附加的数据段,也用于数据的保存,另外,串操作指令将附加段作为其目的操作数的存放区域。
附加段的段地址存放在ES中。
堆栈段:
堆栈段是堆栈所在的主存区域,堆栈段的段地址存放在SS中,堆栈指针寄存器SP指示堆栈栈顶的偏移地址,处理器利用SS:
SP操作堆栈中的数据。
堆栈:
堆栈是一个"
后进先出"
的主存区域,位于堆栈段中,使用SS段寄存器记录其段地址。
它只有一个出入口,即当前栈顶,栈顶是地址较小的一端(低端),它用堆栈指针寄存器SP指定。
堆栈有两种以字为单位的基本操作,对应两条基本指令:
进栈指令PUSH和出栈指令POP。
伪指令:
汇编语言程序的语句除指令外还包括伪指令和宏指令,伪指令又称为伪操作,它不象机器指令那样是在程序运行期间由计算机来执行的,它是在汇编程序对源程序汇编期间由汇编程序处理的操作,完成诸如数据定义、分配存储区、指示程序结束等功能。
宏指令:
宏是源程序中一段有独立功能的程序代码,它只需要在源程序中定义一次,就可以多次调用,调用时只需要用一个宏指令语句就可以了。
宏指令是用户自定义的指令,在编程时将多次使用的功能用一条宏指令来代替。
子程序:
子程序又称为过程,它相当于高级语言中的过程和函数。
在一个程序的不同部分,往往要用到类似的程序段,这些程序段的功能和结构形式都相同,只是某些变量的赋值不同,此时就可以把这些程序段写成子程序形式,以便需要时可以调用它;
某些常用的特定功能的程序段也可编制成子程序的形式供用户使用。
中断:
中断是一种使CPU中止正在执行的程序而转去处理特殊事件的操作,这些引起中断的事件称为中断源,它们可能是来自外设的输入输出请求,也可能是计算机的一些异常事故或其它部原因。
中断处理程序:
当中断发生时,处理器中止当前正在运行的程序,而转到处理特殊事件的程序段中去执行,这种处理中断的子程序就是中断处理程序,又称为中断服务程序。
中断处理程序的入口地址被安排在中断向量表中。
BIOS中断:
在存储器系统中,从地址0FE000H开始的8KROM中装有BIOS(Basic
Input/Output
System)例行程序。
驻留在ROM中的基本输入输出程序BIOS提供了系统加电自检、引导装入、主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。
BIOS中断给程序员编程带来很大方便,程序员不必了解硬件I/O接口的特性,可直接用指令设置参数,然后中断调用BIOS中的程序。
暂存器:
用来暂存由数据总线或通用寄存器送来的操作数,并把它作为另一个操作数。
掉电保护:
指在正常供电电源掉电时,迅速用备用直流电源供电,以保证在一段时间信息不会丢失,当主电源恢复供电时,又自动切换为主电源供电。
寄存器寻址:
操作数在寄存器中,由指令操作码中的rrr三位的值和PSW中RS1及RS0的状态,选中某个工作寄存器区的某个寄存器,然后进行相应的指令操作。
波特率:
即每秒钟传送二进制数的位数,波特率越高,数据传输的速度越快。
D/A转换:
即将二进制数量转换成与其量值成正比的电流信号或电压信号。
A/D转换:
即将模拟量转换成相应的数字量,然而送计算机处理。
串行方式:
指数据的各位分时传送,只需一条数据线,外加一条公共信号地线和若干条控制信号线。
并行方式:
指数据的各位同时传送,每一条数据都需要一条传输线。
SLEEP
MODI
睡觉模式:
保证程序部运行,但与外部的传输等动作已停止的一种运行模式。
linking
连接:
把编译后生成的
*.obj
文件与其它
*.obj文件合并成机器能识别的机器文件。
I&
sup2;
C:
输入与输出共用一条传输线,而时钟由另一条线控制的一种串行传输方式。
SFR
特殊功能寄存器区:
8051
把
CPU
中的专用寄存器、并行端口锁存器、串行口与定时器/计数器的控制寄存器集中安排到一个区域,离散地分布在地址从
80H
到
FFH
围,这个区域称为特殊功能寄存器区
SFR。
2.7并行I/O口
51单片机有四个并行I/O口:
P0,P1,P2,P3。
2.7.1P0端口的结构及工作原理
P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及V1、V2场效应管驱动电路构成。
在P0口中,有两个三态的缓冲器,在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),上面一个是读锁存器的缓冲器,下面一个是读引脚的缓冲器,读取P0.X引脚上的数据,要使这个三态缓冲器有效,引脚上的数据才会传输到部数据总线上。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 音乐 发生器 设计 说明