课程设计(论文)-基于单片机的电子音响设计.doc

上传人:yyf 文档编号:3292772 上传时间:2019-08-08 格式:DOC 页数:19 大小:346.01KB
返回 下载 相关 举报
课程设计(论文)-基于单片机的电子音响设计.doc_第1页
第1页 / 共19页
课程设计(论文)-基于单片机的电子音响设计.doc_第2页
第2页 / 共19页
课程设计(论文)-基于单片机的电子音响设计.doc_第3页
第3页 / 共19页
课程设计(论文)-基于单片机的电子音响设计.doc_第4页
第4页 / 共19页
课程设计(论文)-基于单片机的电子音响设计.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《课程设计(论文)-基于单片机的电子音响设计.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)-基于单片机的电子音响设计.doc(19页珍藏版)》请在三一文库上搜索。

1、硬件实习 摘要: 单片机是一种集成电路芯片,采用超大规模技术,把具有数据处理能力的微处 理器、随机存取数据存储器、只读程序存储器、输入输出电路、可能还包括定时计 数器、串口通信口、显示驱动电路,脉宽调制电路、模拟多路转换器及 A/D 转换器 等电路集成到一块芯片上,构成一个最小而完善的计算机系统。这些电路在软件的 控制下准确、迅速、高效地完成程序设计者事先规定的任务。此次电子音响(定时 器/计数器)实验,设计的系统是以 51 系列单片机 80C51 为主控制器,几个按键、 扬声器等组成。根据代码设计用定时器 0 控制,通过按钮的选择,产生一定频率的 脉冲,驱动蜂鸣器,放出音。外接两个按钮,用这

2、两个键来控制喇叭发出不同的声 音。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性 价比较高等,具有一定的实用和参考价值。 关键词 单片机 80C51;电子音响;定时器 0 硬件实习 目目录录 1 引言引言.1 2 概述概述.1 2.1 课题来源与意义1 2.2 系统主要功能以及所做工作1 3 硬件系统设计硬件系统设计.1 3.1 总体设计1 3.2 模块设计2 3.3 硬件设计3 4 软件设计软件设计.5 4.1 音调和节拍.5 4.2 软件设计流程9 4.3 源程序代码9 实习体会实习体会.14 参参 考考 文文 献献.15 硬件实习 - 1 - 1 1 引言引言 单片

3、机控制系统能够取代以前利用复杂电子线路或者数字电路构成的控制系统, 可以软件控制来实现,并能够实现智能化。现在的单片机的控制范畴无所不在,例 如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的 应用领域越来越广泛。 2 2 概述概述 2.1 课题来源与意义课题来源与意义 随着经济的发展、科技的突飞猛进,芯片业得到了迅速的发展,是单片机技术 在各种民用和工业控制等领域得到更广泛的应用。单片机凭借其低成本、高性能的 不可代替优势已经成为了微电脑控制的主力军。学习单片机的有效方法是将理论与 实践并重,因此通过对单片机电子音响的设计和研究,鼓励学生在熟悉基本原理的 前提下,与实际

4、应用相联系,提出自己的方案,来完善设计,使得他们更好的掌握 单片机的应用。 2.2 系统主要功能以及所做工作系统主要功能以及所做工作 本次课程设计的要求用定时器 0 或定时器 1 定时产生不同的频率,利用开关组 进行选择,从 P3 口输出方波频率,然后送驱动电路,推动喇叭发声。编写程序,调 试运行,拨动不同的开关,使喇叭发出不同的声音。 3 3 硬件系统设计硬件系统设计 3.1 总体设计总体设计 实现这个课题我们使用 80C51 作为控制主体,系统针对一首曲子进行编码,然 后查表播放,乐谱中每一个音符都与某一个特定的频率相对应。单片机音乐演奏控 制通过控制内部定时器 T0 来产生不同频率的方波

5、,从而驱动喇叭发出不同音符的声 音。外接两个按钮,用这两个键来控制喇叭发出不同的声音。 模块图如下: 硬件实习 - 2 - 主体控 制模块 时钟模块 放大电路 按钮控制模块 图 3-1 系统模块图 3.2 模块设计模块设计 3.2.1 主体控制模块 芯片 80C51 是核心,P0、P1、P2、P3 口均可以作为 I/O 口使用。P0 口接 2 个按 键,分别进行方式选择,控制喇叭发出不同的声音。 图 3-2 主体控制模块图 3.2.2 按键控制模块 按键控制模块采用独立式按键接口设计。独立式按键是每一个按键占用一根 I/O 端线。特点:各个按键相互独立,电路配置灵活;按键数量较多时,I/O 端

6、线耗费较 多,电路复杂;软件结构简单。 按键去抖动问题:键盘的抖动时间一般为 510ms,抖动现象会引起 CPU 对一次 键操作进行多次处理,从而可能产生错误。 软件去抖动:检测到按键按下后,执行延时子程序后再确认是否确实按下,消 硬件实习 - 3 - 除抖动影响。 图 3-3 按钮控制模块图 3.2.3 时钟模块 时钟电路用于产生单片机工作时所需的时钟信号,在芯片的外部通过 18 脚、19 脚接晶体振荡器和微调电容,形成反馈电路,构成一个稳定的自激振荡器。电路中 的 C1、C2 取 30Pf 左右,二晶体振荡器的频率范围通常是 1.2-12MHZ,晶体振荡器的 频率越高,振荡频率越高。 图

7、3-4 时钟模块图 3.3 硬件设计硬件设计 使用 Protel 99 SE 绘制原理图,绘制相应的原件封装,进行电气规则检查并生 成原件清单。如图 3-5。使用 Protel 99 SE 绘制 PCB 印刷电路板设计,如图 3-6。 硬件实习 - 4 - 图 3-5 Protel 硬件连接图 图 3-6 PCB 硬件连接图 使用 Proteus 仿真软件,根据已经画出的 Protel 99 SE 的原理图,绘制出了仿 真图,而且在设计的功能的要求的基础上,我又增加了数码管的显示,用于对按键 选择的显示功能,以及增加了流水灯的功能,在播放音乐时候,可以进行流水灯的 显示,增添了视觉上的效果。仿

8、真图如下图 3-7。 硬件实习 - 5 - 图 3-7 Proteus 仿真图 仿真运行后,按下按键 SW2,选择模式 1,此时数码管显示“1” ,同时流水灯进 行花样变化,喇叭可以放出歌曲 1,效果如图 3-8。. 图 3-8 Proteus 仿真运行图 4 4 软件设计软件设计 4.1 音调和节拍音调和节拍 4.1.1 音调与频率 硬件实习 - 6 - 一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率, 也就是说不能象电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两 个概念即可,也就是“音调”和“节拍” 。音调表示一个音符唱多高的频率,节拍表 示一个音符唱多长

9、的时间。乐谱中每一个音符都与某一个特定的频率相对应。单片 机音乐演奏控制通过控制内部定时器 T0 来产生不同频率的方波,从而驱动喇叭发出 不同音符的声音。 调号-音乐上指用以确定乐曲主音高度的符号。很明显一个八度就有 12 个半音。 A、B、C、D、E、F、G。经过研究,全世界都用这些字母来表示固定的音高。 比如,A 这个音,标准的音高为每秒钟振动 440 周。 升 C 调:1#C,也就是降 D 调:1BD;277(频率) 升 D 调:1#D,也就是降 E 调:1BE;311 升 F 调:1#F,也就是降 G 调:1BG;369 升 G 调:1#G,也就是降 A 调:1BA;415 升 A 调

10、:1#A,也就是降 B 调:1BB。466, C 262 #C277 D 294 #D(bE)311 E 330 F 349 #F369 G 392 #G415 A 440. #A466 B 494 所谓 1A,就是说,这首歌曲的“导”要唱得同 A 一样高,人们也把这首歌曲 叫做 A 调歌曲,或叫“唱 A 调” 。1C,就是说,这首歌曲的“导”要唱得同 C 一样 高,或者说“这歌曲唱 C 调” 。同样是“导” ,不同的调唱起来的高低是不一样的。 在音乐中所谓“音调” ,其实就是我们常说的“音高” 。在音乐中常把中央 C 上 方的 A 音定为标准音高,其频率 f=440Hz。当两个声音信号的频率

11、相差一倍时,也即 f2=2f1 时,则称 f2 比 f1 高一个倍频程, 在音乐中 1(do)与 . 1,2(来)与 . 2 正好相差一个倍频程,在音乐学中称它相差一个八度音。在一个八度音内,有 12 个 半音。以 1i 八音区为例, 12 个半音是:11、12、22、2 3、34、44,45、5 一5、56、66、67、7i。这 12 个音 阶的分度基本上是以对数关系来划分的。如果我们只要知道了这十二个音符的音高, 也就是其基本音调的频率,我们就可根据倍频程的关系得到其他音符基本音调的频 率。 知道了一个音符的频率后,怎样让单片机发出相应频率的声音呢?一般说来, 硬件实习 - 7 - 常采用

12、的方法就是通过单片机的定时器定时中断,将单片机上对应蜂鸣器的 I/O 口 来回取反,或者说来回清零,置位,从而让蜂鸣器发出声音,为了让单片机发出不 同频率的声音,我们只需将定时器予置不同的定时值就可实现。那么怎样确定一个 频率所对应的定时器的定时值呢?以标准音高 A 为例: A 的频率 f = 440 Hz,其对应的周期为: T = 1/ f = 1/440 =2272s 单片机上对应蜂鸣器的 I/O 口来回取反的时间应为: t = T/2 = 2272/2 = 1136s 这个时间 t 也就是单片机上定时器应有的中断触发时间。一般情况下,单片机 奏乐时,其定时器为工作方式 1,它以振荡器的十

13、二分频信号为计数脉冲。设振荡器 频率为 f0,则定时器的予置初值由下式来确定: t = 12 *(TALL THL)/ f0 式中 TALL = 216 = 65536,THL 为定时器待确定的计数初值。因此定时器的高低 计数器的初值为: TH = THL / 256 = ( TALL t* f0/12) / 256 TL = THL % 256 = ( TALL t* f0/12) %256 将 t=1136s 代入上面两式(注意:计算时应将时间和频率的单位换算一致) , 即可求出标准音高 A 在单片机晶振频率 f0=12Mhz,定时器在工作方式 1 下的定时器 高低计数器的予置初值为 :

14、TH440Hz = (65536 1136 * 12/12) /256 = FBH TL440Hz = (65536 1136 * 12/12)%256 = 90H 根据上面的求解方法,我们就可求出其他音调相应的计数器的予置初值。 4.1.2 节拍与周期 音符的节拍我们可以举例来说明。在一张乐谱中,我们经常会看到这样的表达式, 如 1=C 、1=G 等等,这里 1=C,1=G 表示乐谱的曲调,和我们前面所谈的音 4 4 4 3 调有很大的关联,、就是用来表示节拍的。以为例加以说明,它表示乐谱中 4 4 4 3 4 3 以四分音符为节拍,每一小结有三拍。比如: 其中 1 、2 为一拍,3、4、5

15、 为一拍,6 为一拍共三拍。1 、2 的时长为四分音 符的一半,即为八分音符长,3、4 的时长为八分音符的一半,即为十六分音符长, 硬件实习 - 8 - 5 的时长为四分音符的一半,即为八分音符长,6 的时长为四分音符长。那么一拍到 底该唱多长呢?一般说来,如果乐曲没有特殊说明,一拍的时长大约为 400500ms 。我们以一拍的时长为 400ms 为例,则当以四分音符为节拍时,四分音符的时长就 为 400ms,八分音符的时长就为 200ms,十六分音符的时长就为 100ms。 可见,在单片机上控制一个音符唱多长可采用循环延时的方法来实现。首先,我 们确定一个基本时长的延时程序,比如说以十六分音

16、符的时长为基本延时时间,那 么,对于一个音符,如果它为十六分音符,则只需调用一次延时程序,如果它为八 分音符,则只需调用二次延时程序,如果它为四分音符,则只需调用四次延时程序, 依次类推。 通过上面关于一个音符音调和节拍的确定方法,我们就可以在单片机上实现演奏 音乐了。具体的实现方法为:将乐谱中的每个音符的音调及节拍变换成相应的音调 参数和节拍参数,将他们做成数据表格,存放在存储器中,通过程序取出一个音符 的相关参数,播放该音符,该音符唱完后,接着取出下一个音符的相关参数, 如此直到播放完毕最后一个音符,根据需要也可循环不停地播放整个乐曲。另外, 对于乐曲中的休止符,一般将其音调参数设为 FF

17、H,FFH,其节拍参数与其他音符的 节拍参数确定方法一致,乐曲结束用节拍参数为 00H 来表示。 下面给出部分音符(三个八度音)的频率以及以单片机晶振频率 f0=12Mhz,定时 器在工作方式 1 下的定时器高低计数器的予置初值 : 表 4-1 音调与频率对应表 C 调音符 . 1 # . 1 . 2 # . 2 . 3 . 4 # . 4 . 5 # . 5 . 6 # . 6 . 7 频率 Hz26 2 27 7 29 3 31 1 32 9 34 9 37 0 39 2 41 5 44 0 46 6 49 4 TH/TLF8 8B F8 F2 F9 5B F9 B7 FA 14 FA 6

18、6 FA B9 FB 03 FB 4A FB 8F FB CF FC 0B C 调音符11#22#344#55#66#7 频率 Hz52 3 55 3 58 6 62 1 65 8 69 7 73 9 78 3 83 0 87 9 93 1 98 7 TH/TLFC 43 FC 78 FC AB FC DB FD 08 FD 33 FD 5B FD 81 FD A5 FD C7 FD E7 FE 05 C 调音符 . 1 # . 1 . 2 # . 2 . 3 . 4 # . 4 . 5 # . 5 . 6 # . 6 . 7 频率 Hz10 45 11 06 11 71 12 41 13 1

19、6 13 93 14 76 15 63 16 58 17 55 18 60 19 71 硬件实习 - 9 - 4.2 软件设计流程软件设计流程 T0 初始化并开中断 允放 T0 中断 装入音符到 T 值到 T0 读取按键值 开始启动 启动 T0 工作 停止 T0 工作 T0 中断入口 重装 TH0,TL0 初值 中断返回 图 4-1 软件设计流程图 4.3 源程序代码源程序代码 #include #include unsigned char Count; unsigned char keys; sbit _Speak =P34 ; /喇叭控制脚 #define led P2 /数码管 unsi

20、gned char pattern_P2= 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF9,0xF3,0xE7,0xCF,0x9F,0x3F,0xFF,0xA A,0x55,0x18,0xFF,0xF0,0x0F,0x00,0xFF,0xF8,0xF1,0xE3,0xC7,0x8F,0x1F,0x3F,0x7F,0x7F,0x3F,0x1 F,0x8F,0xC7,0xE3,0xF1,0xF8,0xFF,0x00,0x00,0xFF,0xFF,0x0F,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xF F,0xFF,0xFF,

21、0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0 xFF,0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF; unsigned char code SONG1 = /祝你平安 0x26,0x20,0x20,0x20

22、,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20, 0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20, 0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20, 0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0

23、x20, 0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10, 0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20, 0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20, 0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x

24、30,0x20,0x1c,0x20,0x20,0x20, TH/TLFB 21 FE 3C FE 55 FE 6D FE 84 FE 99 FE AD FE C0 FE 02 FE E3 FE F3 FF 02 硬件实习 - 10 - 0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10, 0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80, 0x18,0x20,0x18,0x20,

25、0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20, 0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20, 0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10, 0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00,; unsigned char code SONG2 = /路边

26、的野花不要采 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,

27、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,0

28、x20,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,0x

29、18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,0x00, ; void Time_Init() TMOD = 0x11; IE = 0x8a; IP = 0x02; TH0 = 0xD8; TL0 = 0xEF; /12MZ 晶振,10ms TH1 = (65536 - 50000)/256; TL1 = (65536 - 50000)%256; TR1 = 1; void Time0_Int() interrupt 1 TH0 = 0xD8; TL0 = 0xEF; Count+; /长度加 1 void Time0_LED() interrupt 3 stat

30、ic unsigned char L_Count = 0,n=0; TH1 = (65536 - 50000)/256; TL1 = (65536 - 50000)%256; if(+L_Count = 5) L_Count = 0; led=pattern_P2n+; 硬件实习 - 11 - n%=104; /*- 功能:1MS 延时子程序 -*/ void Delay_xMs(unsigned int x) unsigned int i,j; for( i =0;i x;i+ ) for( j =0;j3;j+ ); /*- 功能:歌曲播放子程序 i 为播放哪一段曲目 -*/ void P

31、lay_Song1(unsigned char i) unsigned char Temp1,Temp2; unsigned int Addr; /P0=0xc0; P0=0xf9; Count = 0; /中断计数器清 0 Addr = i * 217; while(1) Temp1 = SONG1Addr+; if ( Temp1 = 0xFF ) /休止符 TR0 = 0; Delay_xMs(100); else if ( Temp1 = 0x00 ) /歌曲结束符 return; else Temp2 = SONG1Addr+; TR0 = 1; while(1) _Speak =

32、_Speak; 硬件实习 - 12 - Delay_xMs(Temp1); if ( Temp2 = Count ) Count = 0; break; void Play_Song2(unsigned char i) unsigned char Temp1,Temp2; unsigned int Addr; /P0=0xc0; P0=0xa4; Count = 0; /中断计数器清 0 Addr = i * 217; while(1) Temp1 = SONG2Addr+; if ( Temp1 = 0xFF ) /休止符 TR0 = 0; Delay_xMs(100); else if (

33、 Temp1 = 0x00 ) /歌曲结束符 return; else Temp2 = SONG2Addr+; TR0 = 1; while(1) _Speak = _Speak; Delay_xMs(Temp1); if ( Temp2 = Count ) Count = 0; break; 硬件实习 - 13 - /*- 功能:主程序 -*/ void main() Time_Init(); /定时器 0 中断初始化 P3=0xfe; P1=0xff; /将 Port2 规划为输入口 while(1) /while 循环 keys=P1; /读取按钮 switch(keys) /判断 ca

34、se 0x01:Play_Song1(0); break; /按下 S1,播放第一首歌 case 0x02:Play_Song2(0); break; /按下 S2,播放第二首歌 /while 循环结束 硬件实习 - 14 - 实习体会 通过这次的课程设计,让我学习到了很多知识以及认识到了很多问题。同时我意 识到了一个很重要的问题,那就是课程设计之前的准备工作也是很重要的,包括提 前预习设计的题目,上网和去图书馆查阅资料。我清楚的知道了,资料也是那么重 要,否则在一个新颖的题目面前,你将无从下手。通过准备工作,这样可以保正在 设计的时候,有了充足的准备,使得自己不会在真正要开始课程设计的时候,

35、对着 题目发呆,没有什么进展。因此,我觉得这个也是对待学习的一种好的态度,以后 在学习中,也要一直以这种好的态度对待。 本次实习所设计的系统针对一首曲子进行编码,然后查表播放,乐谱中每一个 音符都与某一个特定的频率相对应。单片机音乐演奏控制通过控制内部定时器 T0 来 产生不同频率的方波,从而驱动喇叭发出不同音符的声音。外接两个按钮,用这两 个键来控制喇叭发出不同的声音。在程序设计的过程中,也遇到了好多的问题,刚 开始在代码调试的时候,一直会存在错误,也有过很失望的时候,但是都没有放弃, 在同学以及老师的帮助下,我们把代码进行了修改,才得以完成了电子音响的基本 功能。 总的来说,这次设计获益胜

36、多。因为本次课程设计是一个团队的合作,所以, 不仅使得我们团结合作,学习到了知识,还让我们更加的学会沟通。不仅培养了实 践能力,还培养了设计思维,同时也锻炼了动手实际操作能力,在摸索该如何设计 电路使之实现所需功能的过程中,锻炼了运用所学知识的灵活性,加深了对知识的 理解及提高了解决问题的能力。在体会到设计电路的艰辛的同时,更能体会到成功 喜悦和快乐。 硬件实习 - 15 - 参 考 文 献 1 康华光.电子技术基础数字部分(第五版).高等教育出版社,2006 2 严天峰.单片机应用系统设计与仿真调试.北京:北京航空航天大学出版社, 2005 3 李广弟,朱秀月,冷祖祁.单片机基础(第三版).北京:北京航空航天大学 出版社,2007 4 赵建领.51 系列单片机开发宝典M.北京.电子工业出版社,2007 5 王曙霞.单片机实验与实训指导M.西安.西安电子科技大学出版社,2007 6 胡汉才.单片机原理及其接口技术M.北京.清华大学出版社,2004 7 梅丽凤.王艳秋.单片机原理及接口技术.清华大学出版社.北京交通大学出 版社.2007 硬件实习 - 16 -

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1