2017毕业论文-基于AT89C52单片机的16键简易电子琴的设计.doc_第1页
2017毕业论文-基于AT89C52单片机的16键简易电子琴的设计.doc_第2页
2017毕业论文-基于AT89C52单片机的16键简易电子琴的设计.doc_第3页
2017毕业论文-基于AT89C52单片机的16键简易电子琴的设计.doc_第4页
2017毕业论文-基于AT89C52单片机的16键简易电子琴的设计.doc_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉纺织大学2011届毕业设计论文1 绪论 随着生活水平的提高,在放松自己的同时又能提高各个方面的能力。学习和欣赏音乐可以在使人们得到放松的同时,提高人们的精神品质和个人素养。当代,爱好音乐的年轻人越来越多,有不少人自己练习弹奏乐器,作为业余爱好和一种放松的手段,鉴于一些乐器学习难度大需要太多的学习时间,且其价格又太过于高昂,使得一部分有这种想法的人不得不放弃这种想法。而一些简易的电子乐器价格相对便宜,学习上手快,价格相对便宜,一般人容易负担的起,能够满足一般爱好者的需求。故简易电子乐器的研制具有一定的社会意义。本次课程设计主要研究基于AT89C52单片机的16键简易电子琴的设计。1.1 单片机发音概述 由于单片机的强大功能,除了在测试控制领域中有着广泛的应用外,还有一些而有趣的应用。比如,使用单片机可以驱动蜂鸣器或者扬声器发出声音,还可以控制其发出不同的声调,从而连接起来构成一个曲子。目前,市场上有很多种音乐模块或者音乐芯片,可以直接产生各种曲子。但是,这种模块价格比较昂贵,电路结构比较复杂。如果系统中仅需要产生简单的音符或者简短的曲子,可以使用单片机配合简单的扬声器而产生需要的音乐效果。一般说来,单片机不像其他专业乐器那样能奏出多种音色的声音,即不包含相应幅度的谐波频率。单片机演奏的音乐基本都是单音频率。因此单片机演奏音乐比较简单,只需要清楚“音调”和“节拍”。 音调表示一个音符唱多高的频率; 节拍表示一个音符唱多长的时间。1.1.1 音调音调是音乐学中的名词,与平时所说的音高十分相似。在音乐中常把中音C上方的A音定为标准音高,其频率为 f = 440Hz,其余音均与其进行比较。 和为两个音符,如果两个音符的频率相差一倍时,即时,则称比高一个倍频程。在音乐中音符1(do)与音符之间正好相差一个倍频程,在音乐学中称它相差一个八度音。在一个八度音里,有12个半音。以1-八音区为例。12个半音是:1-#1,#1-2,2-#2,#23,34,4-#4,#45,5-#5,#56,6-#6,#67,7-。由于人耳的听觉效果,这12个音节的分度基本上是以对数关系来划分的。只要知道了这12个音符的音高,也就是其基本的音乐的频率,就可以根据音符之间的倍频程关系得到其他音符基本的音调频率。知道了一个音符的频率后,便可以让单片机发出相应的频率的振荡信号,从而产生相应的音符声音。常采用的方法是通过单片机的定时器进行定时中断,在中断服务子程序中将单片机上外界扬声器的I/O口来回置高电平或置低电平,从而让扬声器发出声音。为了让单片机发出不同频率音符的声音,只需将定时器预置不同的定时值来实现。 以标准音高A为例:标准音高A的频率 f=440Hz,其对应的周期为: (1-1)因此需要在单片机I/O口输出周期为 T=2272us的方波脉冲,如图1-1所示图1-1单片机控制音调示意图由上图可知: 单片机输出高电平和低电平信号均为: (1-2)也就是说,单片机上定时器的中断触发时间为1136us。如果单片机采用定时器工作方式1,它以振荡器的十二分频信号为计数脉冲。设外接晶振的振荡器频率为f0,则定时器的预置初值由下式来确定: (1-3) 式中,Count = =65536, 为定时器待确定的计数初值。因此定时器的高低计数器的初值为: (1-4) (1-5)如果单片机外接12MHz的晶振,则,将t=1136us和代入上面两式,即可求得标准音高A在单片机定时器工作方式1下的定时器高低计数器的初值为: (1-6) (1-7)根据上面的求法,我们可以求出其他音调相应的计数器的预置初值。在单片机晶振频率,定时器在工作方式1下定时器计数初值见表1-1表1-1晶振频率定时器在工作方式1下定时器计数初值表音符频率/Hz计数初值音符频率/Hz计数初值低1 DO26263628# 4 FA #74064860#1 DO#27763731中 5 SO78464898低2 RE29463835# 5 SO#83164934#1 RE#31163928中 6 LA88064968低 3 MI33064021# 6 LA#93264994低 4 FA34964013中 7 SI98895030#4 FA#37064185高 1 DO104665058低5 SO39264260# 1 DO110965085#5 SO41564331高117565110低 6 LA44064400#2 RE#124565134#6 LA#46664463高 3 MI131865157低7 SI49464524高 4 FA139765178中 1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO 156865217中 2 RE58764684# 5 SO#166165235#2 RE#62264732高 6 LA176065252中 3 MI65964777# 6 LA#186565268中 4 FA69864820高 7 SI1967652831.1.2 节拍在一张完整乐谱开头,都有如1=C、1=G等等的标识。这里1=C,1=G标识乐谱的曲调,简单的说就是跟音调有关系;这里的、用来表示节拍。对于音符的节拍,以为例。它表示乐谱中以四分音符为节拍,每一小节有三拍。1= G的节拍示意图,见图1-2 在图中,总共有三拍:1、2为一拍,3、4、5为一拍,6为一拍。从时长角度看,1、2的时长为四分音的一半,即为八分音符长;3、4的时长为八分音符的一半,即为十六分音符长;5的时长为四分音符的一半,即为八分音符长;6的时长为四分音符长。1=G图1-2节拍示意图对于一拍的发音时间,如果乐曲没有特殊说明,一般说来,一拍的时长大约为400450ms。如果这里规定一拍的时长为400ms,那么以四分音符为节拍时,四分音符的时长为400ms,八分音符的时长为200ms,十六分音符的时长为100ms。从而,在单片机上可采用循环延时的办法来实现控制一个音符唱多长时间。首先要编写一个精确的基本时长的延时程序,比如说以八分音符的时长为基本延时时间,那么对于一个音符,如果它是四分音符,只需调用四次延时程序,如果它是二分音符,则只需调用八次延时程序,以此类推。1.2 本设计任务和主要内容本次课程设计主要研究基于AT89C52单片机的16键简易电子琴的设计。具体要求实现以下功能:(1) 按下音符键可以发出相应的音符;(2) 播放预存曲目。2 系统的主要硬件电路的设计2.1 单片机控制系统原理2.1.1 芯片选用 在本次课程设计中我采用Atmel公司的AT89C52单片机。AT89C52是美国Atmel公司生产的低电压、高性能CMOS 8位单片机,片内含8KB的可反复檫写的程序存储器和12B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内配置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C52单片机可灵活应用于各种控制领域。AT89C52单片机属于AT89C51单片机的增强型,与Intel公司的80C52在引脚排列、硬件组成、工作特点和指令系统等方面兼容。AT89C52引脚图见图2-1.图2-1 AT89C52引脚图其主要功能特性: 兼容MCS51指令系统 8k可反复擦写(1000次)Flash ROM 32个双向I/O口 256x8bit内部RAM 3个16位可编程定时/计数器中断 时钟频率0-24MHz 2个串行中断 可编程UART串行通道 2个外部中断源 共6个中断源 2个读写中断口线 3级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能 2.1.2 简易电子琴的组成框图AT89C5244矩阵键盘发音电路供电及复位电路晶振电路 图2-2 电子琴系统原理框图2.1.3 简易电子琴的proteus总体仿真图 电子琴的proteus总体仿真图见图2-3。按下MUSICKEY键,系统自动播放预存在内存中的曲子,按下RESKEY键,系统复位,停止播放。按下矩阵键盘中的任意键,扬声器发出相应的音符。图2-3 简易电子琴的proteus总体仿真图2.2 单片机主机系统电路2.2.1 时钟频率 单片机必须在时钟的驱动下才能工作。在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。外部振荡源电路一般选用石英晶体振荡器,此电路在加电大约延迟10mS后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容C1,C2,作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1,C2的典型值为30PF。 单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。起大小是时钟信号频率的倒数,常用fosc表示。如时钟频率为12MHz,即fosc=12MHz,则时钟周期为1/12s。2.2.2 晶振电路AT89C52单片机的定时控制功能是用时钟电路和振荡器完成的,而根据硬件电路的不同,连接方式分为内部时钟方式和外部时钟方式。本设计中采用内部时钟方式。单片机内部有一个反相放大器XTAL1、XTAL2分别为反相放大器的输入端和输出端,外接定时反馈元件组成振荡器(内部时钟方式),产生时钟送至单片机内部各元件。时钟频率越高,单片机控制器的控制节拍就越快,运算速度也就越快。一般来说单片机内部有一个带反馈的线性反相放大器,外界晶振(或接陶瓷振荡器)和电容就可组成振荡器,如图2-4所示。加电以后延时一段时间(约10ms)振荡器产生时钟,不受软件控制,图中X1为晶振,震荡产生的时钟频率主要由Y1确定。电容C1,C2的作用有两个:一是帮助振荡器起振,二是对振荡器的频率起微调作用,典型值为30pF。图2-4 晶振电路2.2.3 键盘扫描在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘,如图2-5,图2-6所示。图2-5 独立键盘图2-6 矩阵键盘它们各有自己的特点,其中独立键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中;矩阵键盘与独立键盘有很大区别,首先在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要烦琐,但它在节省端口资源上有优势得多,因此它更适合于多按键电路。本次课程设计,我采用矩阵式键盘电路,这样可以大大的节省单片机I/O的开销。键盘电路见图2-7:图2-7 键盘电路在按键过程中常产生“毛刺” 现象,如图2-8所示,要消除“毛刺”现象,这里采用最常用的方法,即延时重复扫描法,延时法的原理为:因为“毛刺”脉冲一般持续时间短,约为几ms,而我们按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后,再延时一段时间(10ms20ms)后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。 图2-8 “毛刺”现象2.2.4 发音电路 电子琴发音电路见图2-9。图2-9 电子琴发音电路2.2.5 供电及复位电路 电子琴的供电电路和复位电路见图2-10。图2-10 电子琴供电及复位电路3 系统的软件设计3.1 主程序3.1.1 主程序的流程图 主程序的程序流程图见图3-1.按键是否按下开始去抖动,延时10ms扫描按键位置做一次按键处理,播放相应的音符或音乐按键是否按下图3-1程序流程图3.1.2 主程序 KEYBUF EQU 30H STH0 EQU 31H STL0 EQU 32H TEMP EQU 33H SPKEQUP1.6; 蜂鸣器所在端口ORG 0000H LJMP START ORG 0BH LJMP INT_T0 ;转定时器T0中断服务程序START:MOV TMOD,#01H ;选择定时器T0工作于方式1SETB ET0 ;允许T0溢出中断SETB EA WAIT: MOV P2,#0FFH CLR P2.4 ;从第四行开始扫描MOV A,P2 ANL A,#0FH ;屏蔽高四位,高四位为行,低四位为列XRL A,#0FH JZ NOKEY1 ;判断是否有键按下,没有就跳转LCALL DELY10MS MOV A,P2 ;消除抖动和干扰ANL A,#0FH XRL A,#0FH JZ NOKEY1 MOV A,P2 ;确定有键按下以后的处理ANL A,#0FH CJNE A,#0EH,NK1 ;是否为第四行第一列的键被按下MOV KEYBUF,#0 ;保存列号LJMP DK1 NK1:CJNE A,#0DH,NK2 MOV KEYBUF,#1 LJMP DK1 NK2:CJNE A,#0BH,NK3 MOV KEYBUF,#2 LJMP DK1 NK3:CJNE A,#07H,NK4 MOV KEYBUF,#3 LJMP DK1 NK4:NOP DK1: ;第四行的处理MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 ;Table1以字保存,所以散转MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV STH0,A ;送入高字节MOV TH0,A INC TEMP MOV A,TEMP MOVC A,A+DPTR MOV STL0,A ;送入低字节MOV TL0,A SETB TR0 DK1A:MOV A,P2 ;判断按键是否松开ANL A,#0FH XRL A,#0FH JNZ DK1A CLR TR0 NOKEY1: MOV P2,#0FFH CLR P2.5 MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY2 LCALL DELY10MS MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY2 MOV A,P2 ANL A,#0FH CJNE A,#0EH,NK5 MOV KEYBUF,#4 LJMP DK2 NK5:CJNE A,#0DH,NK6 MOV KEYBUF,#5 LJMP DK2 NK6:CJNE A,#0BH,NK7 MOV KEYBUF,#6 LJMP DK2 NK7:CJNE A,#07H,NK8 MOV KEYBUF,#7 LJMP DK2 NK8:NOP DK2: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV STH0,A MOV TH0,A INC TEMP MOV A,TEMP MOVC A,A+DPTR MOV STL0,A MOV TL0,A SETB TR0 DK2A:MOV A,P2 ANL A,#0FH XRL A,#0FH JNZ DK2A CLR TR0 NOKEY2: MOV P2,#0FFH CLR P2.6 MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY3 LCALL DELY10MS MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY3 MOV A,P2 ANL A,#0FH CJNE A,#0EH,NK9 MOV KEYBUF,#8 LJMP DK3 NK9:CJNE A,#0DH,NK10 MOV KEYBUF,#9 LJMP DK3 NK10:CJNE A,#0BH,NK11 MOV KEYBUF,#10 LJMP DK3 NK11:CJNE A,#07H,NK12 MOV KEYBUF,#11 LJMP DK3 NK12:NOP DK3: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV STH0,A MOV TH0,A INC TEMP MOV A,TEMP MOVC A,A+DPTR MOV STL0,A MOV TL0,A SETB TR0 DK3A:MOV A,P2ANL A,#0FH XRL A,#0FH JNZ DK3A CLR TR0 NOKEY3: MOV P2,#0FFH CLR P2.7 MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY4 LCALL DELY10MS MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY4 MOV A,P2 ANL A,#0FH CJNE A,#0EH,NK13 MOV KEYBUF,#12 LJMP DK4 NK13:CJNE A,#0DH,NK14 MOV KEYBUF,#13 LJMP DK4 NK14:CJNE A,#0BH,NK15 MOV KEYBUF,#14 LJMP DK4 NK15:CJNE A,#07H,NK16 MOV KEYBUF,#15 LJMP DK4 NK16:NOP DK4: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV STH0,A MOV TH0,A INC TEMP MOV A,TEMP MOVC A,A+DPTR MOV STL0,A MOV TL0,A SETB TR0 DK4A:MOV A,P2 ANL A,#0FH XRL A,#0FH JNZ DK4A CLR TR0 NOKEY4:JNB P1.0,MUSICLJMP WAIT MUSIC:MOVR3,#00HNEXT:MOVA,R3MOVDPTR,#TABLE2MOVCA,A+DPTRJZMUSICMOVR7,AINCR3MOVA,R3MOVCA,A+DPTRMOVR2,AACALLSONGINCR3SJMPNEXT3.2 歌曲播放子程序;= 歌曲播放子程序 =SONG:MOVA,R2; 取出节拍RLAJNZKEEPMOVA,#01HKEEP:MOVR2,AREPEAT:ACALLEIGHTHDJNZR2,REPEATRET3.3 产生1/8拍延时子程序;= 产生1/8拍延时子程序 =EIGHTH:MOVA,R7; 查表取出廷时参数,保存到R4MOVDPTR,#DELAY_TMOVCA,A+DPTRMOVR4,AMOVA,R7; 查表取出1/8拍周期数,保存到R5MOVDPTR,#S_PARAMOVCA,A+DPTRMOVR5,ANEXTCYC:ACALLSOUNDDJNZR5,NEXTCYCRET3.4 发音子程序;= 发声子程序 =SOUND:SETBSPKACALLSDELAYCLRSPKACALLSDELAYRET3.5 延时子程序;= 延时子程序 =SDELAY:MOVA,R4; 廷时值在R4内MOVR0,AXL2:MOVR1,#03HDL1:NOPDJNZR1,DL1DJNZR0,XL2RET3.6 1/8拍周期表;= 1/8拍周期表 =S_PARA:DS1DHDB15H,16H,00DB19H,00H,1CH,00H,1FH,21H,00H,25HDB00H,29H,2CH,00H,31H,34H,37H,00HDB3EH,41H,00H,49H,00H,52H,57H,00HDB62H3.7 延时参数表;= 延时参数表 =DELAY_T:DS1DHDB7EH,77H,00HDB6AH,00H,5EH,00H,54H,4FH,00H,46HDB00H,3FH,3BH,00H,35H,32H,2FH,00HDB2AH,27H,00H,23H,00H,1FH,1DH,0C0HDB1AH3.8 10ms延时子程序;= 10ms延时子程序 =DELY10MS: MOV R6,#10 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET3.9 中断服务子程序;= 中断服务子程序 =INT_T0: MOV TH0,STH0 MOV TL0,STL0 CPL P1.6 RETI3.10 音符参数表;= 音符参数表=TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H3.11 计数器初值表;= 计数器初值表=TABLE1: DW 64021,64103,64260,64400 DW 64524,64580,64684,64777 DW 64820,64898,64968,65030 DW 65058,65110,65157,651783.12 预存歌曲表;= 预存歌曲表 =TABLE2:DW2202H,2902H,2902H,2902H,2906H,2702H; DW2502H,2702H,2502H,2402H,2208H;DW2E02H,2E02H,2E02H,2E02H,2E06H,2C02H;DW2902H,2C02H,2D02H,2A02H,2908H;DW2902H,2E02H,2E02H,2C02H,2906H,2702H;DW2502H,2702H,2502H,2402H,2206H,1D02H;DW1D02H,2502H,2502H,2402H,2206H,2902H;DW2702H,2502H,2402H,2002H,2208H;DW0000H;END4 结 束 语 单片机作为一门软硬件相结合的学科,让许多像我这样的非电子专业的学生头疼不已。起初,我也属于一个比较“怕硬”的计算机学生,由于大一大二的数电模电没学好,所以一提到硬件方面的东西,我就觉得头疼。最初听余老师讲的单片机的课的时候,属于余老师每问必倒的学生之一。因此,最初对于这门课并没有多少兴趣。最初从指令系统,寻址方式,到单片机的内部资源,一点概念都没有。虽然每次课都看着大屏幕,听着老师讲课,但还是觉得整门课听的比较吃力。我觉得单片机作为微型计算机的一种,必然和计算机有一定的共性。后来有一段时间,我在课余的时间去旁听了几堂韩建民老师的计算机组成原理,对计算机的指令系统和寻址方式有了点认识,再回过头来看单片机的指令系统的时候觉得慢慢的有头绪了,不再像原先那样摸不着头脑。实验课做实验的时候也不再像之前那样呆在实验室不知道该干什么。当我第一次在试验仪上成功的调试出三角波的程序,看到示波器上的三角波图形,突然觉得单片机也是蛮有意思的,那种感觉就像第一次用C-FREE第一次在计算机上编写出第一个“Hello world”程序一样。之后也就开始慢慢加紧补前面落下的知识。到要做课程设计的时候,发现依然学到用时方恨少,到图书馆里借书,上网查资料,费了不少劲才完成这次课程设计,虽然做的蛮吃力的,但通过这次课程设计我比较好的对指令系统,内部资源和人机交互的知识大体复习了一遍,发现了不少缺漏,很好的补缺补漏了一遍。因为平时时间没合理的安排和利用,课程设计到了最后这一周才完成,可能有不少缺漏或者错误,希望老师加以批评指正。在此,我要对要求我们做这次课程设计的余老师致以衷心的感谢,因为余老师给了我一次难得的锻炼的机会。最后,我还要感谢韩建民老师和电子071的张琦同学,他们曾多次不厌其烦地为我解答了不少疑惑,使我在对指令系统的理解上少走了不少弯路。 参考文献1 张鑫,华臻,陈书谦.单片机原理与应用.M.电子工业出版社,2009.6 2 肖婧.单片入门与趣味实验设计M.北京航空航天大学出版社,2008.43 陈明荧.8051单片机课程设计实训教材M.清华大学出版社,2004.34 赵建领.51系列单片机开发宝典M.电子工业出版社,2007.45 求是科技.8051系列单片机C程序设计完全手册M.人民邮电出版社,2006.46 楼然苗,李光飞.51系列单片机设计实例M.北京航空航天大学出版社,2003.37 侯媛彬等,凌阳单片机原理及其毕业设计精选 2006年,科学出版社 8 罗亚非,凌阳十六位单片机应用基础2003年 北京航空航天大学出版社 9 北京北阳电子有限公司,061A凌阳单片机及其附带光盘2003年 10张毅刚等, MCS-51单片机应用设计,哈工大出版社,2004年第2版 11霍孟友等,单片机原理与应用,机械工业出版社,2004.1 12霍孟友等,单片机原理与应用学习概要及题解,机械工业出版社,2005.3 13许泳龙等,单片机原理及应用,机械工业出版社,2005.1 外文资料DescriptionThe AT89C51 is a low-power, high-performance CMOS 8-bit microcomputer with 4K bytes of Flash programmable and erasable read only memory (PEROM). The device is manufactured using Atmels high-density nonvolatile memory technology and is compatible with the industry-standard MCS-51 instruction set and pinout. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventional nonvolatile memory programmer. By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel AT89C51 is a powerful microcomputer which provides a highly-flexible and cost-effective solution to many embedded control applications.Function characteristicThe AT89C51 provides the following standard features: 4K bytes of Flash, 128 bytes of RAM, 32 I/O lines, two 16-bit timer/counters, a five vector two-level interrupt architecture, a full duplex serial port, on-chip oscillator and clock circuitry. In addition, the AT89C51 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port and interrupt system to continue functioning. The Power-down Mode saves the RAM contents but freezes the oscillator disabling all other chip functions until the next hardware reset.Pin DescriptionVCC:Supply voltage.GND:Ground.Port 0:Port 0 is an 8-bit open-drain bi-directional I/O port. As an output port, each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as highimpedance inputs.Port 0 may also be configured to be the multiplexed loworder address/data bus during accesses to external program and data memory. In this mode P0 has internal pullups.Port 0 also receives the code bytes during Flash programming,and outputs the code bytes during programverification. External pullups are required during programverification.Port 1Port 1 is an 8-bit bi-directional I/O port with internal pullups.The Port 1 output buffers can sink/source four TTL inputs.When 1s are written to Port 1 pins they are pulled high by the internal pullups and can be used as inputs. As inputs,Port 1 pins that are externally being pulled low will source current (IIL) because of the internal pullups.Port 1 also receives the low-order address bytes during Flash programming and verification.Port 2Port 2 is an 8-bit bi-directional I/O port with internal pullups.The Port 2 output buffers can sink/source four TTL inputs.When 1s are written to Port 2 pins they are pulled high by the internal pullups and can be used as inputs. As inputs,Port 2 pins that are externally being pulled low will source current, because of the internal pullups.Port 2 emits the high-order address byte during fetches from external program memory and during accesses to external data memory that use 16-bit addresses. In this application, it uses strong internal pullupswhen emitting 1s. During accesses to external data memory that use 8-bit addresses, Port 2 emits the contents of the P2 Special Function Register.Port 2 also receives the high-order address bits and some control signals during Flash programming and verification.Port 3Port 3 is an 8-bit bi-directional I/O port with internal pullups.The Port 3 output buffers can sink/source four TTL inputs.When 1s are written to Port 3 pins they are pulled high by the internal pullups and can be used as inputs. As inputs,Port 3 pins that are externally being pulled low will source current (IIL) because of the pullups.Port 3 also serves the functions of various special features of the AT89C51 as listed below:Port 3 also receives some control signals for Flash programming and verification.RSTReset input. A high on this pin for two machine cycles while the oscillator is running resets the device.ALE/PROGAddress Latch Enable output pulse for latching the low byte of the address during accesses to external memory. This pin is also the program pulse input (PROG) during Flash programming.In normal operation ALE is emitted at a constant rate of 1/6 the oscillator frequency, and may be used for external timing or clocking purposes. Note, however, that one ALE pulse is skipped during each access to external Data Memory.If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH. With the bit set, ALE is active only during a MOVX or MOVC instruction. Otherwise, the pin is weakly pulled high. Setting the ALE-disable bit has no effect if the microcontroller is in external execution mode.PSENProgram Store Enable is the read strobe to external program memory.When the AT89C51 is executing code from external program memory, PSEN is activated twice each machine cycle, except that two PSEN activations are skipped during each access to external data memory.EA/VPPExternal Access Enable. EA must be strapped to GND in order to enable the device to fetch code from external program memory locations starting at 0000H up to FFFFH. Note, however, that if lock bit 1 is programmed, EA will be internally latched on reset.EA should be strapped to VCC for internal program executions.This pin also receives the 12-volt programming enable voltage(VPP) during Flash programming, for parts that require12-volt VPP.XTAL1Input to the inverting oscillator amplifier and input to the internal clock operating circuit.XTAL2Output from the inverting oscillator amplifier.Oscillator CharacteristicsXTAL1 and XTAL2 are the input and output, respectively,of an inverting amplifier which can be configured for use as an on-chip oscillator, as shown in Figure 1.Either a quartz crystal or ceramic resonator may be used. To drive the device from an external clock source, XTAL2 should be left unconnected

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论