单片机最小系统 电子琴Word格式文档下载.docx
- 文档编号:16526298
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:26
- 大小:242.86KB
单片机最小系统 电子琴Word格式文档下载.docx
《单片机最小系统 电子琴Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机最小系统 电子琴Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
3、Protel99sePCB图如下:
图2PCB图
四、程序流程图
简易电子琴系统程序框图如下:
图3程序流程图
5.1系统主要组成部分
简易电子琴系统主要分为三个部分:
单片机最小系统,4X4矩阵按键,发声系统。
所用主要元件有:
AT89S51,LM386N1,16个按键。
5.2单片机最小系统部分
本实验中选用AT89S51作为主芯片,其特性为:
5.2.1简介
AT89S51是一个低功耗,高性能CMOS8位单芯片内含4kBytesSP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序内存,采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,断电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断启动或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
5.2.2主要特性:
·
8031CPU与MCS-51兼容
4K字节可编程FLASH存储器(寿命:
1000写/擦循环)
全静态工作:
0Hz-24KHz
三级程序存储器保密锁定
128*8位内部RAM
32条可编程I/O线
两个16位定时器/计数器
6个中断源
可编程串行通道
低功耗的闲置和掉电模式
片内振荡器和时钟电路
5.2.3管脚说明:
一、I/O端口:
P0.0~P0.7,P1.0~1.7,P2.0~P2.7,P3.0~P3.7。
89S51共有4个I/O端口,为P0、P1、P2、P3,4个I/O口都是双向的,且每个口都具有锁存器。
每个口有8条线,共计32条I/O线。
各端口的功能叙述如下:
1.P0有三个功能:
(1)外部扩充存储器时,当作数据总线(D0~D7)。
(2)外部扩充存储器时,当作地址总线(A0~A7)。
(3)不扩充时,可做一般I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。
2.P1只做I/O口使用,其内部有上拉电阻。
3.P2有两个功能:
(1)扩充外部存储器时,当作地址总线(A8~A15)使用。
(2)做I/O使用,其内部有上拉电阻。
4.P3有两种功能。
除了作为I/O使用外(内部有上拉电阻),还有一些特殊功能,如表所示由特殊寄存器来设置。
5.主电源引脚
Vss——(20脚):
电路低电平
Vcc——(40脚):
正常运行和编程校验(80151/8052)时为+5V电源
6.RST/VPD——(9脚):
RST即Reset(复位)信号输入端。
振荡器工作时,由该引脚输入脉宽2个以上机器周期的高电平时复位单片微机。
当外部在RST与Vcc之间接一个电容(约10µ
F)和在RST与Vcc之间接一个电阻(约8.2kΩ)时,就可实现加电复位功能。
VPD为备用电源输入端,即当VCC掉电时,由此引脚提供备用电源,以保持内部RAM的信息。
7.ALE/PGOG——(30脚):
ALE,允许地址锁存信号输出。
当访问外部存储器时,ALE信号的负跳变将P0口上的低8位地址送入锁存器。
在非访问外部存储器间,ALE仍以1/16振荡频率固定不变的速率输出,因此它能作外部时钟或定时信号用。
当访问外部数据存储器时,将以1/12振荡频率输出。
PROG为编程脉冲输入端,即当选用8751单片微机时,对片内程序存储器进行编程时,由此引脚输入编程脉冲。
8.PSEN——(29脚):
程序储存使能端。
(1)内部程序存储器读取;
不动作。
(2)外部程序存储器读取(ROM):
在每个机器周期会动作两次。
(3)外部程序存储器读取(RAM):
两个/PSEN脉冲被跳国不会输出。
(4)外接ROM时,与ROM的/OE脚连接。
9.EA/VPP——(31脚)
(1)接高电平时:
CPU读取内部程序存储器(ROM),如8051/8/052。
扩充外部ROM:
当读取内部程序存储器超过0FFF(8051)时,自动读取外部ROM。
(2)接低电平时:
CPU读取外部程序存储器(ROM),如8031/8032。
(3)8751烧写内部EPROM时,利用此脚输入21V的烧写电压。
10.XTAL1——(19脚)XTAL2——(18脚):
接石英晶体振荡器。
机器周期=石英晶体/12,如12MHz石英晶体/12=1微秒。
I/O口作为输入口时有两种工作方式即所谓的读端口与读引脚读端口时实际上并不从外部读入数据而是把端口锁存器的内容读入到内部总线经过某种运算或变换后再写回到端口锁存器只有读端口时才真正地把外部的数据读入到内部总线上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作这是由硬件自动完成的不需要我们操心
读引脚时也就是把端口作为外部输入线时首先要通过外部指令把端口锁存器置1然后再实行读引脚操作否则就可能读入出错为什么看上面的图如果不对端口置1端口锁存器原来的状态有可能为0Q端为0Q^为1加到场效应管栅极的信号为1该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1若先执行置1操作则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入由于在输入操作时还必须附加一个准备动作所以这类I/O口被称为准双向口89C51的P0/P1/P2/P3口作为输入时都是准双向口接下来让我们再看另一个问题从图中可以看出这四个端口还有一个差别除了P1口外P0P2P3口都还有其他的功能
二、89S51系列单片机引脚功能分类
基本引脚:
电源VCC、VSS,时钟XTAL2、XTAL1和复位RST。
并行扩展总线:
数据总线P0口,地址总线P0口(低8位)、P2口(高8位)和控制总线ALE、PSEN、EA。
串行通信总线:
发送口TXD和接受口RXD。
I/O端口:
P1口为普通I/O口,P3口可复用作普通I/O口,P0、P2口不作并行口时也可作普通I/O口。
三、单片机的引脚应用特性
1.并行总线的构成
89S51并行总线的构成如图2.7所示。
并行总线特点:
(1)P0口为地址/数据复用口。
(2)两个独立的并行扩展空间。
程序存储器使用PSEN取指控制信号,数据采用WR、RD存取控制信号。
(3)外围扩展统一编址。
在64KB的空间上,可扩展外数据存储器或其他外围器件。
2.引脚复用特性
P3口、P0口、P2口均可用作普通I/O口。
3.I/O的驱动特性
由于采用CMOS电路,输入电流极微,通常不考虑I/O端口的扇出能力,当负载为LED、继电器等功率驱动元件时才考虑驱动能力。
89S51单片机的内部结构主要由8个部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器、I/0口(PO口、pl口、PZ口、P3口)、串行
口、定时器/计数器、中断系统和特殊寄存器(SFR)。
其中,微处理器由运算器
和控制逻辑组成,主要包括累加器(ACC)、B寄存器、临时存储器(TMPITMPZ)、算术运算单元ALU等。
特殊功能寄存器SFR(SpecialFunctionRegister)是用来对片内各功能单元进行管理、控制、监视的控制寄存器和状态寄存器,是位于片内数据存储器上的一个特殊功能的RAM区,其地址范围为80H一FFH。
SFR主要包括PO口锁存器、PI口锁存器、PZ口锁存器、P3口实现复位之后PC的值是O00OH,因此,程序的入口地址为0000H,CPU从O000H开始执行操作。
模式控制寄存器TMOD为OOH,表示定时器/计数器都处于方式O工作状态,而THO、TLO、THI、TLI均为OOH则表示定时器/计数器复位后都清零。
PO、Pl、PZ和P3端口复位后锁存器都处于“1”状态。
工作状态下,每当ALE是高电平的第一个时钟(S1P2、S4P2),P2口被拉低而PO口为高阻态。
实际进行芯片解剖时,可以根据寄存器复位状态下的特殊值来判断功能电路块。
工作时如果芯片的外部选通信号亚被拉为高电平,则首先访问内部数据存贮器。
如果虱总是保持低电平,则只访问外部程序存贮器,也就是说,无论是否有内部程序存贮器,所有的程序取指都是直接指向外部ROM的。
当执行外部程序存贮器内的程序时,每个机器周期内都是PSEN两次有效,ALE两次输出高电平,用于锁存地址的低位字节。
我们在开始进行反向解剖时,没有设计使用芯片内部的FLASH,因此只选用访问外部程序存贮器方式。
在这种状态下,得到的PSEN、ALE的频率是振荡器频率的1/6,PSEN信号波形占空比为1/1,而ALE信号波形占空比为1/2。
每个机器周期中ALE信号的高电平为S1P2
S2PI、S4P2、S5P1,PSEN信号的高电平为S1P2、S2P1、S2P2、S4P2、
SSP1、S5P5。
总之,CPU在PSEN、ALE和外部数据存储器写选通信号WR
读选通信号而的共同作用实现功能。
89S51内部结构
AT89S51引脚图及实物图
5.34X4矩阵按键
本实验中使用的4X4矩阵按键,为16个按键排列而成,PCB图如下:
程序如下:
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
ACALLKS
JZMAIN
ACALLDELAY
JZMAIN
ACALLSCANNING
MOVR4,A
ADDA,R4
MOVDPTR,#TJMP
JMP@A+DPTR
KS:
MOVA,#00H
MOVP1,A
MOVP1,#0FH
MOVA,P1
CPLA
ANLA,#0FH
RET
SCANNING:
MOVR2,#0EFH
MOVR3,#00H
LINE0:
MOVA,R2
JBACC.3,LINE4
AJMPFIND
LINE4:
JBACC.2,LINE8
MOVA,#04H
LINE8:
JBACC.1,LINE12
MOVA,#08H
LINE12:
JBACC.0,ALINE
MOVA,#0CH
ALINE:
INCR3
RLA
JNBACC.0,BACK
MOVR2,A
AJMPLINE0
FIND:
ADDA,R3
BACK:
DELAY:
MOVR7,#100
BB:
MOVR6,#49
NOP
AA:
DJNZR6,AA
DJNZR7,BB
TJMP:
AJMPKEY0
AJMPKEY1
AJMPKEY2
AJMPKEY3
AJMPKEY4
AJMPKEY5
AJMPKEY6
AJMPKEY7
AJMPKEY8
AJMPKEY9
AJMPKEY10
AJMPKEY11
AJMPKEY12
AJMPKEY13
AJMPKEY14
AJMPKEY15
KEY0:
CLRA
AJMPMAIN
KEY1:
MOVP2,A
ADDA,#01
DAA
AJMPMIAN
KEY2:
MOVP2,#0A4H
AJMPMAIN
KEY3:
MOVP2,#0B0H
KEY4:
MOVP2,#99H
KEY5:
MOVP2,#92H
KEY6:
MOVP2,#82H
KEY7:
MOVP2,#0F8H
KEY8:
MOVP2,#80H
KEY9:
MOVP2,#90H
KEY10:
MOVP2,#88H
KEY11:
MOVP2,#83H
KEY12:
MOVP2,#0C6H
KEY13:
MOVP2,#0A1H
KEY14:
MOVP2,#86H
KEY15:
MOVP2,#8EH
END
5.4发声系统
电路图如下:
LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。
一、LM386内部电路
与通用型集成运放相类似,它是一个三级放大电路。
第一级为差分放大电路,T1和T3、T2和T4分别构成复合管,作为差分放大电路的放大管;
T5和T6组成镜像电流源作为T1和T2的有源负载;
T3和T4信号从管的基极输入,从T2管的集电极输出,为双端输入单端输出差分电路。
使用镜像电流源作为差分放大电路有源负载,可使单端输出电路的增益近似等于双端输出电容的增益。
第二级为共射放大电路,T7为放大管,恒流源作有源负载,以增大放大倍数。
第三级中的T8和T9管复合成PNP型管,与NPN型管T10构成准互补输出级。
二极管D1和D2为输出级提供合适的偏置电压,可以消除交越失真。
引脚2为反相输入端,引脚3为同相输入端。
电路由单电源供电,故为OTL电路。
输出端(引脚5)应外接输出电容后再接负载。
电阻R7从输出端连接到T2的发射极,形成反馈通路,并与R5和R6构成反馈网络,从而引入了深度电压串联负反馈,使整个电路具有稳定的电压增益。
5.5电路板的制作
Protel99功能强大,为我们进行电子电路原理图和印制板图的设计提供了良好的操作环境。
用Protell99进行电路设计分为两大部分:
原理图的设计和电路板的设计。
原理图的设计实在SCH系统中进行的,电路原理图是印刷板电路设计的基础,只有设计好原理图才有可能进行下一步的电路板设计。
用protel99进行电路板设计的第一步是其原理图的设计。
显然,原理图决定整个电路的基本功能,也是接下来生成网表和设计印刷板电路的基础。
具体步骤如下:
(1)图面设置:
Protel99允许用户根据电路的规模设置图面的大小,按照偏好和习惯设置图面的样式。
实际上,设置图面就是设置了一个工作平面,以后的工作就要在这个平面上进行。
所以图面应该设置得足够大,为进一步工作提供一个足够大的工作空间。
(2)放置元件:
所谓放置元件就是从元件库中选取所需得元件,将其布置到图面上合适的位置,有时还要重定义元件的编号、封装。
元件的封装很重要,要根据元件的实际尺寸和实际封装来决定,要是元件没封装好,将会给以后电路板的制作带来很大的麻烦。
这些都是下一步工作的基础。
Protel99为用户提供了一个非完备的元件库,并且允许用户对这个元件库进行编辑或者新建自己的元件库。
电路板的制作过程
(1)打印:
将生成的PCB图打印到热转印纸上,需注意线不能太窄,墨要加重,否则制板时容易断线,如果在操作过程中断了线,可用电烙铁将锡带过。
(2)熨烫:
将热转印纸覆在铜板上,用电熨斗进行熨烫,关键要注意熨烫的时间,不能太久,也不能时间太短,否则,太久会把铜板烫坏,不够的话墨迹覆不上去。
(3)腐蚀:
把铜板放到三氯化铁溶液中腐蚀,需注意溶液浓度要较高,最好用热水配置,这样腐蚀更快,一般3分钟即可。
如果时间过长,需剩下的铜线也可能被腐蚀。
(4)打孔:
打孔时注意钻头尺寸,本次用的钻头大小是0.712mm的,最需注意的地方是集成块的管脚,如果打孔误差大,管座就很难插上。
(5)放置元件:
放置前应先打磨一下打孔后留下的毛刺,并均匀地涂上松香水(目的是防止铜线氧化,易于焊锡覆着焊盘,但多涂会导致焊接时焊点变黑,影响美观)。
放置元件时注意集成块的管脚,二极管和电解电容的正负,这些都是平时比较容易出错的地方。
(6)焊接:
焊接技术比较难掌握,焊锡、烙铁与焊盘的位置关系,焊锡熔化时间
长短,松香水的浓度,烙铁的温度等等,都是影响焊点美观的因素。
(7)检查:
检查是否有虚焊,集成块管脚位置是否正确,电源引线位置是否恰当等。
检查完毕就能进行调试了。
六、源程序
KEYBUFEQU30H
STH0EQU31H
STL0EQU32H
TEMPEQU33H
ORG00H
LJMPSTART
ORG0BH
LJMPINT_T0
START:
MOVTMOD,#01H
SETBET0
SETBEA
WAIT:
MOVP3,#0FFH
CLRP3.4
MOVA,P3
ANLA,#0FH
XRLA,#0FH
JZNOKEY1
LCALLDELY10MS
ANLA,#0FH
CJNEA,#0EH,NK1
MOVKEYBUF,#0
LJMPDK1
NK1:
CJNEA,#0DH,NK2
MOVKEYBUF,#1
NK2:
CJNEA,#0BH,NK3
MOVKEYBUF,#2
NK3:
CJNEA,#07H,NK4
MOVKEYBUF,#3
NK4:
DK1:
MOVA,KEYBUF
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVP0,A
MOVB,#2
MULAB
MOVTEMP,A
MOVDPTR,#TABLE1
MOVSTH0,A
MOVTH0,A
INCTEMP
MOVA,TEMP
MOVSTL0,A
MOVTL0,A
SETBTR0
DK1A:
JNZDK1A
CLRTR0
NOKEY1:
CLRP3.5
JZNOKEY2
CJNEA,#0EH,NK5
MOVKEYBUF,#4
LJMPDK2
NK5:
CJNEA,#0DH,NK6
MOVKEYBUF,#5
NK6:
CJNEA,#0BH,NK7
MOVKEYBUF,#6
NK7:
CJNEA,#07H,NK8
MOVKEYBUF,#7
NK8:
DK2:
DK2A:
JNZDK2A
NOKEY2:
CLRP3.6
JZNOKEY3
CJNEA,#0EH,NK9
MOVKEYBUF,#8
LJMPDK3
NK9:
CJNEA,#0DH,NK10
MOVKEYBUF,#9
NK10:
CJNEA,#0BH,NK11
MOVKEYBUF,#10
NK11:
CJNEA,#07H,NK12
MOVKEYBUF,#11
NK12:
DK3:
MOV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机最小系统 电子琴 单片机 最小 系统