基于AT89C52单片机的简易电子琴设计报告.doc

上传人:asd****56 文档编号:70323993 上传时间:2023-01-19 格式:DOC 页数:30 大小:635.23KB
返回 下载 相关 举报
基于AT89C52单片机的简易电子琴设计报告.doc_第1页
第1页 / 共30页
基于AT89C52单片机的简易电子琴设计报告.doc_第2页
第2页 / 共30页
点击查看更多>>
资源描述

《基于AT89C52单片机的简易电子琴设计报告.doc》由会员分享,可在线阅读,更多相关《基于AT89C52单片机的简易电子琴设计报告.doc(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、单片机原理及应用期末课程设计基于AT89C52单片机的简易电子琴 单片机原理及应用期末课程设计 题 目: 基于AT89C52单片机的简易电子琴 专 业: 计算机科学与技术(非师范) 目 录第1节 引 言4 1.1 单片机发音概述4 1.1.1 音调 41.1.2节拍71.1.3单片机演奏音乐的方法8 1.2本次设计的任务和主要内容8第2节 系统的主要硬件电路的设计92.1 单片机控制系统原理92.1.1 芯片的选用 92.1.2 简易电子琴的组成框图 102.1.3 简易电子琴的proteus总体仿真图 102.2 单片机主机系统电路 112.2.1 时钟频率 112.2.2 晶振电路 112

2、.2.3 键盘扫描 122.2.4 发音电路 142.2.5 供电及复位电路 14第3节 系统的软件设计 163.1 主程序 163.1.1 主程序流程图 163.1.2 主程序 173.2 歌曲播放子程序243.3 产生1/8拍延时子程序253.4 发音子程序253.5 延时子程序253.6 1/8拍周期表263.7 延时参数表 263.8 10ms延时子程序 263.9 中断服务子程序273.10 音符参数表273.11 计数器初值表273.12 预存歌曲表兰花草27第4节 结束语 29参考文献 30 基于AT89C52单片机的简易电子琴第1节 引 言 随着生活水平的提高,在放松自己的同时

3、又能提高各个方面的能力。学习和欣赏音乐可以在使人们得到放松的同时,提高人们的精神品质和个人素养。当代,爱好音乐的年轻人越来越多,有不少人自己练习弹奏乐器,作为业余爱好和一种放松的手段,鉴于一些乐器学习难度大需要太多的学习时间,且其价格又太过于高昂,使得一部分有这种想法的人不得不放弃这种想法。而一些简易的电子乐器价格相对便宜,学习上手快,价格相对便宜,一般人容易负担的起,能够满足一般爱好者的需求。故简易电子乐器的研制具有一定的社会意义。本次课程设计主要研究基于AT89C52单片机的16键简易电子琴的设计。1.1 单片机发音概述 由于单片机的强大功能,除了在测试控制领域中有着广泛的应用外,还有一些

4、而有趣的应用。比如,使用单片机可以驱动蜂鸣器或者扬声器发出声音,还可以控制其发出不同的声调,从而连接起来构成一个曲子。目前,市场上有很多种音乐模块或者音乐芯片,可以直接产生各种曲子。但是,这种模块价格比较昂贵,电路结构比较复杂。如果系统中仅需要产生简单的音符或者简短的曲子,可以使用单片机配合简单的扬声器而产生需要的音乐效果。一般说来,单片机不像其他专业乐器那样能奏出多种音色的声音,即不包含相应幅度的谐波频率。单片机演奏的音乐基本都是单音频率。因此单片机演奏音乐比较简单,只需要清楚“音调”和“节拍”。音调表示一个音符唱多高的频率节拍表示一个音符唱多长的时间1.1.1音调 音调是音乐学中的名词,与

5、平时所说的音高十分相似。在音乐中常把中音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个音符的音高,也就是其基本的音乐的频率,就可以根据音符之间的倍频程关系得到其他音

6、符基本的音调频率。知道了一个音符的频率后,便可以让单片机发出相应的频率的振荡信号,从而产生相应的音符声音。常采用的方法是通过单片机的定时器进行定时中断,在中断服务子程序中将单片机上外界扬声器的I/O口来回置高电平或置低电平,从而让扬声器发出声音。为了让单片机发出不同频率音符的声音,只需将定时器预置不同的定时值来实现。 以标准音高A为例:标准音高A的频率 f=440Hz,其对应的周期为: (1-1)因此需要在单片机I/O口输出周期为 T=2272us的方波脉冲,如图1-1所示图1-1单片机控制音调示意图由上图可知: 单片机输出高电平和低电平信号均为: (1-2)也就是说,单片机上定时器的中断触发

7、时间为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晶振频率定时器在工作

8、方式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

9、 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标识乐谱的曲调,简

10、单的说就是跟音调有关系;这里的、用来表示节拍。对于音符的节拍,以为例。它表示乐谱中以四分音符为节拍,每一小节有三拍。1= G的节拍示意图,见图1-2 在图中,总共有三拍:1、2为一拍,3、4、5为一拍,6为一拍。从时长角度看,1、2的时长为四分音的一半,即为八分音符长;3、4的时长为八分音符的一半,即为十六分音符长;5的时长为四分音符的一半,即为八分音符长;6的时长为四分音符长。1=G图1-2节拍示意图对于一拍的发音时间,如果乐曲没有特殊说明,一般说来,一拍的时长大约为400450ms。如果这里规定一拍的时长为400ms,那么以四分音符为节拍时,四分音符的时长为400ms,八分音符的时长为20

11、0ms,十六分音符的时长为100ms。从而,在单片机上可采用循环延时的办法来实现控制一个音符唱多长时间。首先要编写一个精确的基本时长的延时程序,比如说以八分音符的时长为基本延时时间,那么对于一个音符,如果它是四分音符,只需调用四次延时程序,如果它是二分音符,则只需调用八次延时程序,以此类推。 1.1.3单片机电子琴演奏音乐的方法步骤一:将乐谱中的每个音符的音调及节拍变换成相应的音调参数和节拍数。步骤二:将这些参数做成数据表格,存放在存储器中。步骤三:通过按键调用程序取出一个音符的相关参数,播放该音符。步骤四:播放完该音符后,等待下一次按键调用程序去取出下一次的音符的相关参数,再播放音符。对于演

12、奏乐曲,一般将休止符的音调参数设置为FFH,节拍参数设置为00H。1.2本设计任务和主要内容本次课程设计主要研究基于AT89C52单片机的16键简易电子琴的设计。具体要求实现以下功能: 按下音符键可以发出相应的音符 按下音乐播放键可以自动播放预先存在内存中的曲子第2节 系统主要硬件电路设计 2.1 单片机控制系统原理2.1.1芯片选用在本次课程设计中我采用Atmel公司的AT89C52单片机。AT89C52是美国Atmel公司生产的低电压、高性能CMOS 8位单片机,片内含8KB的可反复檫写的程序存储器和12B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产

13、,兼容标准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个中

14、断源 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时钟频率 单片机必须在时钟的驱动下才能工作。在单片机内部有一个时钟振荡电路,只需要外

15、接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。外部振荡源电路一般选用石英晶体振荡器,此电路在加电大约延迟10mS后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容C1,C2,作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1,C2的典型值为30PF。 单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。起大小是时钟信号频率的倒数,常用fosc表示。如时钟频率为12MHz,即fosc=12MHz,则时钟周期为1/12s。2.2.2 晶振

16、电路AT89C52单片机的定时控制功能是用时钟电路和振荡器完成的,而根据硬件电路的不同,连接方式分为内部时钟方式和外部时钟方式。本设计中采用内部时钟方式。单片机内部有一个反相放大器XTAL1、XTAL2分别为反相放大器的输入端和输出端,外接定时反馈元件组成振荡器(内部时钟方式),产生时钟送至单片机内部各元件。时钟频率越高,单片机控制器的控制节拍就越快,运算速度也就越快。一般来说单片机内部有一个带反馈的线性反相放大器,外界晶振(或接陶瓷振荡器)和电容就可组成振荡器,如图2-4所示。加电以后延时一段时间(约10ms)振荡器产生时钟,不受软件控制,图中X1为晶振,震荡产生的时钟频率主要由Y1确定。电

17、容C1,C2的作用有两个:一是帮助振荡器起振,二是对振荡器的频率起微调作用,典型值为30pF。图2-4 晶振电路2.2.3键盘扫描在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘,如图2-5,图2-6所示。图2-5 独立键盘图2-6 矩阵键盘它们各有自己的特点,其中独立键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中;矩阵键盘与独立键盘有很大区别,首先在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要烦琐,但它在节省端口资源上有优势得多,因此它更适合于多按键电路。本次课程设计,我采用矩阵式键盘电路,这样可以大大的节省单片机I/O的开销。键盘电路见图

18、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

19、.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 CL

20、R 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,#

21、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 ST

22、L0,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 MO

23、V 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 MO

24、V 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,#

25、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 S

26、TL0,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,#1

27、3 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 S

28、TL0,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:MOVR

29、2,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 延时子程序;

30、= 延时子程序 =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

31、,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

32、 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,2E02

33、H,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;END 结 束 语 单片机作为一门软硬件相结合的学科,让许多像我这样的非电子专业的学生头疼不已。起初,我也属于一个比较“怕硬”的

34、计算机学生,由于大一大二的数电模电没学好,所以一提到硬件方面的东西,我就觉得头疼。最初听余老师讲的单片机的课的时候,属于余老师每问必倒的学生之一。因此,最初对于这门课并没有多少兴趣。最初从指令系统,寻址方式,到单片机的内部资源,一点概念都没有。虽然每次课都看着大屏幕,听着老师讲课,但还是觉得整门课听的比较吃力。我觉得单片机作为微型计算机的一种,必然和计算机有一定的共性。后来有一段时间,我在课余的时间去旁听了几堂韩建民老师的计算机组成原理,对计算机的指令系统和寻址方式有了点认识,再回过头来看单片机的指令系统的时候觉得慢慢的有头绪了,不再像原先那样摸不着头脑。实验课做实验的时候也不再像之前那样呆在

35、实验室不知道该干什么。当我第一次在试验仪上成功的调试出三角波的程序,看到示波器上的三角波图形,突然觉得单片机也是蛮有意思的,那种感觉就像第一次用C-FREE第一次在计算机上编写出第一个“Hello world”程序一样。之后也就开始慢慢加紧补前面落下的知识。到要做课程设计的时候,发现依然学到用时方恨少,到图书馆里借书,上网查资料,费了不少劲才完成这次课程设计,虽然做的蛮吃力的,但通过这次课程设计我比较好的对指令系统,内部资源和人机交互的知识大体复习了一遍,发现了不少缺漏,很好的补缺补漏了一遍。因为平时时间没合理的安排和利用,课程设计到了最后这一周才完成,可能有不少缺漏或者错误,希望老师加以批评

36、指正。在此,我要对要求我们做这次课程设计的余老师致以衷心的感谢,因为余老师给了我一次难得的锻炼的机会。最后,我还要感谢韩建民老师和电子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百度百科.音符(Online) . - 29 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 休闲娱乐

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁