毕业设计(论文)基于汇编语言与接口技术的音乐盒设计.doc

上传人:laozhun 文档编号:2882093 上传时间:2023-03-01 格式:DOC 页数:29 大小:1.37MB
返回 下载 相关 举报
毕业设计(论文)基于汇编语言与接口技术的音乐盒设计.doc_第1页
第1页 / 共29页
毕业设计(论文)基于汇编语言与接口技术的音乐盒设计.doc_第2页
第2页 / 共29页
毕业设计(论文)基于汇编语言与接口技术的音乐盒设计.doc_第3页
第3页 / 共29页
毕业设计(论文)基于汇编语言与接口技术的音乐盒设计.doc_第4页
第4页 / 共29页
毕业设计(论文)基于汇编语言与接口技术的音乐盒设计.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《毕业设计(论文)基于汇编语言与接口技术的音乐盒设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于汇编语言与接口技术的音乐盒设计.doc(29页珍藏版)》请在三一办公上搜索。

1、摘要用计算机来解决实际问题,需要编写程序。程序是由指令组成的,一条条指令规定了计算机究竟要执行什么样的操作,计算机只要按编写的顺序执行完程序中的指令,问题也就解决了。汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。本设计是基于汇编语言与接口技术的音乐盒设计。依据PC机系统发声的基本原理,制作成多功能音乐盒。该音乐盒主要实现的功能有:1、程运行后首先在屏幕上显示出乐曲菜单,制作者姓名。2、用键盘键A、B、C选择相应的乐曲。3、输入错误时要有适当提示,并允许重新输入。4、选择Q键后可以正常退出程序。5、允许中断。可以在没有听完整首歌曲时人为中断听下一首歌曲,

2、或退出。本设计利用8255A、8253的工作原理发声。用masm、link软件对音乐盒源程序进行调试。关键词:汇编语言 计算机接口技术 音乐盒 8253 8255A目录 摘要1绪论21 设计思路32 乐理知识42.1 乐理知识简述42.2 音符与频率的关系43 设计原理53.1 8255A的功能53.2 8253 的功能73.3 发声原理93.4 DOS功能调用123.4.1 1号功能调用123.4.2 2号功能调用123.4.3 9号功能调用123.4.4 10号功能调用123.4.5 16号功能调用133.5 子程序调用144 程序154.1 程序流程图154.2 程序代码164.3 程序

3、的运行22结束语25致谢26参考文献27绪论编写程序的语言有三种:高级语言,汇编语言和机器语言。机器语言是一种面向机器的程序设计语言。指令系统是机器语言的基础,其指令是由0和1构成的二进制代码串,其编写的程序可以被计算机直接识别,直接执行。一般说来,机器言程序的执行速度快,占用的内存空间小。汇编又称为符号语言,实际上是一种符号化的机器语言。汇编语言比机器语言直观,容易记忆和理解,用汇编语言编写的程序也比机器语言程序易读、易检查、易修改。汇编语言程序设计在微机应用中占有重要地位.一般来说,凡是在微机中涉及与硬件电路有关的应用系统,如微机控制系统中的检测和控制部分,仪器仪表中的计算机控制和数据处理

4、部分,家用电器的计算机控制部分等,其应用程序部分都是用汇编语言来编写的。在计算机系统中除了CPU以及基本硬件之外,还有各种外部设备,比如显示器、键盘、打印机、磁盘驱动器、光盘驱动器等。这些外部设备需要与CPU进行大量的信息交换,根据CPU的要求进行各种操作。进行信息交换时,由于各种原因(比如电平、时序等的不同),这些外部设备不能与CPU直接相连,它们之间的信息交换必须经过一个中间电路,也就是接口电路才能实现。本设计是基于汇编基础上,利用接口电路中的8253,8255功能使电脑发声而设计的音乐盒。音乐盒的主要功能是,根据按键不同,而选择播放不同的歌曲,和退出等操作。1 设计思路PC的扬声器驱动系

5、统如图1-1所示。 图1-1 PC的扬声驱动系统 扬声器的发声是由输出寄存器(即8255A的PB口)的两位进行控制的。输出寄存器的端口地址为61H。扬声器发声最简单的方式:直接对端口61H的D1位交替输出0或1(同时61H的D0位清0),使扬声器交替地通与断,推动扬声器发声。 由于扬声器总是随时可用的,因此CPU可用直接I/O方式对其进行操作。8253定时计数器的计数通道2用于提供系统的扬声器音频信号,但8253计数器通道2输出的方波受8255A PB0输出高电平时才允许计数通道2的方波输出。该方波又与PB1相与后送扬声器的驱动电路,去驱动扬声器发声。一般情况下,可让PB0输出高电平,通过对8

6、253编程设置方波输出频率以控制发声频率。通过控制8255A PB1输出以控制发声时间。8253计数值的计算方法为:计数值时钟频率音符频率(时钟频率1.19318 MHz1234DCH)所以利用8255和8253来制作音乐盒,详细步骤见下面设计原理部分.2乐理知识2.1 乐理知识简述1 2 3 4 5 6 7do remifa solla si七个音不都一样高,而是从左到右一个比一个高上去的,一这七个音为基础,在它们的上方或下方加圆点来表明更高或更低的音,上方的圆点叫“高音点”下方加的圆点叫“低音点” 。长短音:音乐中的音不光有高低,还要有长短,一个音可以唱得时间很长,也可以唱得很短促。长短音

7、的标记方法,主要用“增时线”和“减时线” ,加写在音的右边或下边,如在5的右边加写一条横线(5),就使5延长了一倍,要是在5的下边写一条横线( 5 ),就使5减短了一半,也即减短1/2。附点在音符右方加一个圆点,这个音叫“附点音符” ,附点的作用是把音符的时值延长1/2。2.2 音符与频率的关系不包括钢琴键盘的黑键,用简譜表示的C大调音符与频率近似值的对应关系如下: . 音符 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 . . . . . . . 频率131 147 165 175 196 220 247 262 294 330 349 392 440 494 5233 设计原

8、理3.1 8259A的功能8255A是一种功能很强的可编程并行接口芯片,采用NMOS工艺制造,它有三个8位并行输入/输出端口;可工作于三种工作方式,分别为方式0、方式1、方式2;能按无条件传送、查询传送和中断传送方式进行数据传送。 8255A的内部结构如图3-1所示。 图3-1 8255A的内部结构8255A的功能如表31所示表3-1 8255A的端口寻址和操作功能表3.2 8253的功能8253的内部结构8253的内部结构如图3-2a所示 图3-2a 8253的内部结构8253读/写逻辑信号组合的功能以及各计数器通道、控制字寄存器在PC机中的地址分配如表3-2a所示表3-2a 8253读/写

9、逻辑信号组合功能及地址分配8253的控制字 8253的控制字用于选择哪个计数器通道工作,三个通道可同时工作,但是要分别进行初始化;用于规定读/写操作格式或类型,8253可以有8位的计数值或16位的计数值,可以按二进制计数或按二十进制计数;用于选择工作方式,8253共有六种工作方式。 8253是由主机编程设定的,通过把一个8位的控制字写入8253的控制字寄存器,使8253按照某种给定的方式工作。控制字的定义如图3-2b所示。 图3-2b 8253的控制字3.3 发声原理8253在PC机中的应用 IBM PC/XT机系统板上使用了一片8253,其连接如图3-3所示。计数器通道2用于驱动扬声器发声。

10、8253的端口地址范围是40H43H,片选 图3-3 PC/XT中的8253 单拍脉冲的宽度n1输入时钟CLK的周期n1Tclkn1(1/Fclk) n1单拍脉冲的宽度/输入时钟CLK的周期计数器2的发声程序 计数器2的输出送往扬声器发声电路。门控信号GATE2接8255并行接口电路的PB0,因此计数器2的计数过程将受到PB0的控制,而PB0又受I/O端口61H的D0位的控制, 当PB0=1时,OUT2才能输出方波。OUT2和PB1经过一个与门接至扬声器驱动电路。因此OUT2也将受到PB1的控制,而PB1又受I/O端口61H的D1位的控制。ROM-BIOS中的发声子程序BEEP使计数器2工作于

11、方式3,产生约为1 kHz的方波,程序如下:BEEP PROC MOVAL, 10110110B ;计数器2,方式3,16位计数,二进制计数 OUT 43H, AL;写入控制字 MOV AX, 0533H ;计数初值为0533H1331(1.193 18 MHz/1331896 Hz) OUT 42H, AL;写入计数初值低8位 MOV AL, AH OUT 42H, AL ;写入计数初值高8位 IN AL, 61H ;读8255端口B的原值MOV AH, AL ;暂存AH OR AL, 03H ;使PB01、PB11 OUT 61H, AL ;输出,使扬声器发声 SUB CX, CX LOP

12、: LOOP LOP;延时 DEC BL ;BL值由入口参数提供,决定发声长短 JNZ LOP ;BL6发长声,BL1发短声MOV AL, AH OUT 61H, AL ;恢复8255端口B的原值,停止发声 RET ;返回 BEEP ENDP 利用PC机中的定时器/计数器电路8253可以使扬声器发声并且还可以用来演奏简单的乐曲。 声音的产生 在PC机中产生声音可以通过使用8253的计数器2,工作于方式3来实现。设置控制字的指令为 MOV AL,0B6H ;计数器2,方式3,16位计数,二进制计数 OUT 43H,AL设置好控制字后要根据声音的频率对计数器2(也就是42H端口),设定对应的计数初

13、值。指令如下: MOV AL,计数初值低8位 OUT 42H,AL MOV AL,计数初值高8位 OUT 42H,AL然后通过设定PC机中的并行接口电路8255的PB0、PB1,打开扬声器的门电路,就可以发出该频率的声音了。实现该功能的指令如下: IN AL, 61H;读取8255端口B的值 MOV AH, AL;暂存AH OR AL, 03H;使PB01、PB11 OUT 61H, AL;输出,使扬声器发声如果提供给8253计数器2的CLK的时钟频率为1 193 180 Hz,即1234DCH,并把要求发出的声音的频率值放入DI中,使AX获得对应的计数初值的指令为 MOV DX,12H MO

14、V AX,34DCH DIV DI 上述指令执行后计数初值在AX中,然后可以分别按低字节和高字节输出至42H端口,使计数器产生所需频率的声音(音符)。在实际应用中,计数初值要根据实际系统中的时钟频率来计算。延时程序及其作用 当时钟为1 193 180 Hz时,延时10 ms可用如下延时程序实现: DELAY:MOV CX,2801 LOP10:LOOP LOP10如果实际应用环境中的时钟频率较高,则应重新计算并设置延时时间。编写演奏乐曲需要把与音符所对应的频率放在FREQ表中,把与音符所对应的节拍(延时次数值)放在TIME表中。然后由主程序控制,逐一按音符的频率和节拍值,使扬声器发出声音。当与

15、音符对应的频率值为0时,停止演奏。子程序PLAY的功能是使扬声器发出声音,演奏乐曲。由DI指定音符的频率,BX指定与音符对应的节拍。SI指向频率表FREQ,BP指向节拍表TIME。频率表以0结尾,用于作为程序结束的条件:如果取来的频率值为0,则程序结束。3.4 DOS功能调用3.4.1 1号功能调用从键盘输入一个字符(1号调用)调用格式: MOV AH,1 INT 21H扫描键盘将从键盘输入的一个字符的ASCII码送入AL中(回显 )。3.4.2 2号功能调用屏幕显示一个字符(2功能号调用)调用格式: MOV AH,2 MOV DL,字符的ASCII码 INT 21H3.4.3 9号功能调用屏

16、幕显示一个字符串(9功能号调用)调用格式: MOV AH,9 MOV DX,字符串的首地址(偏移地址) INT 21H3.4.4 10号功能调用从键盘输入字符串 (10功能号调用)功能:从键盘接收字符串送入内存的输入缓冲区,同时送显示器显示。调用前要求: 先定义一个输入缓冲区 MAXLENDB100;第1个字节指出缓冲区能容纳的字符个数,即缓冲区长度,不能为0 ACLENDB?;第2个字节保留,以存放实际输入的字符个数 STRING DB 100 DUP(?);第3个字节开始存放从键盘输入的字符串。调用格式:LEADX,MAXLEN(缓冲区首偏移地址) MOVAH,10 INT21H 注意:调

17、用时,要求DS:DX指向输入缓冲区 3.4.5 16号功能调用键盘驱动程序(16号功能调用)1、当某个BIOS程序中具有多种不同功能时,用不同的编号功能号加以区分,并约定功能号存放在寄存器AH中。其调用方法与DOS功能调用类似:(1)功能号AH (2)入口参数指定寄存器(3)指令“INTn”实现对BIOS子程序的调用 下面以键盘I/O中断调用为例介绍BIOS中断调用的方法。 2、键盘I/O中断调用示例键盘I/O中断调用(INT16H)有三个功能,功能号为02。(1) AH=0 功能:从键盘读入字符送AL。出口参数:(AL)键入字符的ASCII码 ;(AH)键入字符的扫描码 MOVAH,0 IN

18、T16H 调用结果:将键盘输入字符的ASCII码送AL,扫描码送AH。 (2)AH=1 功能:从键盘读入字符送AL,并设置ZF标志,若按过任一健,则置ZF=0,否则ZF=1。 出口参数:ZF=0,键盘有输入,(AL)键入字符的ASCII码 ZF=1,键盘无输入 (3)AH=2 功能:读取特殊功能建的状态。 出口参数:AL中是各特殊功能键的状态 AL中某位为1,表示对应键按下;为0则表示未按下3.5 子程序调用子程序的概念 在程序设计中,我们会发现一些多次无规律重复的程序段或语句序列。解决此类问题一个行之有效的方法就是将它们设计成可供反复调用的独立的子程序结构,以便在需要时调用。在汇编语言中,子

19、程序又称过程。调用子程序的程序称为主调程序或主程序子程序的结构:1、 子程序与循环程序的区别2、子程序的调用与返回3、入口参数与出口参数的传递4、现场的保护与恢复子程序的定义子程序的定义是由过程定义伪指令PROC和ENDP来完成的。其格式如下:过程名 PROC NEAR/FAR 子程序体过程名 ENDP其中PROC表示过程定义开始,ENDP表示过程定义结束。过程名是过程入口地址的符号表示。一般过程名同标号一样,具有三种属性,即段属性、偏移地址属性以及类型属性子程序体一般包括: 1、保护现场 2、根据入口参数进行处理 3、产生出口参数 4、恢复现场 5、RET子程序的调用与返回:调用 CALL

20、标号功能:1、主程序的下一条指令入栈,即IP指针入栈2、转向子程第的第一条指令,既标号指定的子程序第1条指令的偏移地址送IP返回 RET功能:返回到主程序CALL指令的下一条指令,即将下一条指令地址送IP。 4 程序4.1 程序流程图 4.2 程序代码DATA SEGMENTSTR1 DB 0DH,0AH,welcom you come to here! Wenguanghong dian zi gong cheng xi 09 dian 301ban STR2 DB 0DH,0AH,this is a music program !$STR3 DB 0DH,0AH,please select

21、 !$STR4 DB 0DH,0AH,input error !$STR5 DB 0DH,0AH,please input again !$STR6 DB 0DH,0AH,A shao nian zhuang zhi bu yan chou $STR7 DB 0DH,0AH,B wo niu yu huang li niao $STR8 DB 0DH,0AH,C mei li de tong hua $STR9 DB 0DH,0AH,Q EXIT $FREQ1 DW 294,392,392,294,330,262,220,262,196,262,262,220,262,294,330,392,

22、294,294 DW 294,392,392,294,330,262,220,262,220,196,196,220,262,294,330,220,196,196 DW 392,392,392,330,392,440,392,330,440,440,392,330,294,392,294,330,262,220 DW 392,220,262,220,392,440,392,330,392,294,392,392,392,330,392,440,440,392 DW 330,440,440,392,440,392,330,294,294,392,294,330,262,220,196,220,

23、262,220,294,262,294,220,196 DW 392,294,330,262,220,196,220,262,220,294,262,294,220,196,196,0TIME1 DW 25,25,37,6,6,25,12,12,50,19,6,12,12,25,12,12,50,50 DW 25,25,37,6,6,25,12,12,50,19,6,12,12,12,25,12,50,50 DW 19,6,12,6,6,37,12,12,12,6,6,12,50,12,6,6,12,12 DW 19,6,25,12,12,6,6,6,6,50,19,6,12,6,6,12,2

24、5,12 DW 12,12,12,6,6,6,6,12,25,12,6,6,12,12,19,6,25,12,12,6,6,12,50 DW 12,6,6,12,12,19,6,25,12,12,6,6,12,50,50FREQ2 DW 392,392,392,392,330,392,262,440,392,392,392,392,392,330,294,262,330,294 DW 294,330,392,392,392,330,330,294,262,262,294,330,262,262,220,196,220,196 DW 392,392,392,330,392,262,440,392

25、,392,392,392,392,330,294,262,330,294 DW 262,330,294,294,330,392,392,330,330,294,262,262,294,330,262,262,220 DW 196,392,392,392,392,330,294,262,440,392,392,440,262,294,262,294,330,294,262,0TIME2 DW 6,12,6,12,6,6,12,12,25,6,12,6,12,6,6,12,12,25 DW 19,6,12,6,6,12,6,6,12,12,19,6,12,6,6,12,12,25 DW 6,12,

26、6,12,6,6,12,12,25,6,12,6,12,6,6,12,12,25DW 12,12,12,12,12,6,6,12,12,19,6,12,6,6 DW 12,12,25,6,12,6,12,6,6,12,12,12,6,6,12,12,12,12,25,25,50FREQ3 DW 220,330,247,220,262,294,262,330,220,440,392,440,392,294,349,330,330,330 DW 220,440,392,294,330,349,330,294,262,220,330,294,247,220,220 DW 220,247,262,29

27、4,330,262,247,196,220,262,294,330,330 DW 220,247,262,294,330,262,247,196,220,262,294,262,262 DW 220,247,262,294,330,262,247,196,220,262,294,262,330,330 DW 220,247,262,294,330,262,247,196,220,262,294,262,262,262 DW 262,262,294,330,262,247,196,262,247,196,247,220,220,220,0TIME3 DW 25,25,50,12,12,19,6,

28、50,25,25,12,12,12,12,12,12,25,50 DW 25,25,19,6,12,12,25,25,50,25,25,37,12,50,25 DW 12,12,12,12,12,12,25,25,12,12,12,12,25 DW 12,12,12,12,12,12,25,25,12,12,12,12,25 DW 12,12,12,12,12,12,25,25,12,12,6,12,12,25 DW 12,12,12,12,12,12,25,25,6,6,12,12,12,50 DW 12,6,6,12,12,25,25,25,25,50,12,12,25,50DATA EN

29、DSSTACK SEGMENTDB 200 DUP (?)STACK ENDSCODE SEGMENTASSUME DS:DATA,SS:STACK,CS:CODESTART:MOV AX,DATAMOV DS,AX MOV DX,OFFSET STR1 MOV AH,9INT 21HLEA DX,STR2 MOV AH,9INT 21HLEA DX,STR3 MOV AH,9INT 21HLEA DX,STR6 MOV AH,9INT 21HLEA DX,STR7 MOV AH,9INT 21HLEA DX,STR8 MOV AH,9INT 21HLEA DX,STR9 MOV AH,9IN

30、T 21HMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HJMP INPUTXSH:MOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HLEA DX,STR5 MOV AH,9 INT 21HMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HINPUT: MOV AH,1 INT 21HCMP AL,QJE EXIT CMP AL,AJNE N1LEA SI,FREQ1 LEA BP,TIME1LOP:MOV DI,SIC

31、MP DI,0JZ XSHMOV BX,DS:BPCALL PLAYADD SI,2ADD BP,2JMP LOPJMP XSHN1:CMP AL,BJNE N2LEA SI,FREQ2LEA BP,TIME2JMP LOPN2:CMP AL,CJNE ERRORLEA SI,FREQ3LEA BP,TIME3JMP LOPERROR:LEA DX,STR4 MOV AH,9 INT 21HLEA DX,STR5 MOV AH,9 INT 21HLEA DX,STR6 MOV AH,9 INT 21HLEA DX,STR7 MOV AH,9 INT 21HLEA DX,STR8 MOV AH,

32、9 INT 21HLEA DX,STR9 MOV AH,9 INT 21HMOV AH,02HMOV DL,0AHINT 21HJMP INPUTJMP INPUT EXIT:MOV AH,4CH INT 21H PLAY PROC PUSH AXPUSH BXPUSH CXPUSH DXPUSH DIMOV AH,1 INT 16HJZ PLAY1 JMP START play1:MOV AL,0B6HOUT 43H,ALMOV DX,12HMOV AX,348CHDIV DIOUT 42H,ALMOV AL,AHOUT 42H,ALIN AL,61HMOV AH,ALOR AL,03HOU

33、T 61H,ALCALL DELAY1MOV AL,AHOUT 61H,ALPOP DIPOP DXPOP CXPOP BXPOP AXRET PLAY ENDPDELAY1 PROCSHL BX,1SHL BX,1SHL BX,1SHL BX,1SHL BX,1SHL BX,1SHL BX,1SHL BX,1DELAY:MOV CX,0FFFFHLOP10:LOOP LOP10DEC BXJNZ DELAYRETDELAY1 ENDPCODE ENDSENDSTART4.3程序的运行如上编写好程序后,在运行里输入cmd后,回车输入程序文件夹所在的盘符加冒号E:,回车,cd空格输入文件夹名lz

34、q,然后输入masm,回车,输入程序所在的记事本名zq后,回车,回车,回车,再回车,无误后显示如图然后输入link空格记事本名,回车如图然后回车,回车,再回车,如图后输入zq回车,如图然后就可以欣赏歌曲了,输入大写字母A播放歌曲,少年壮志不言愁,输入B播放蜗牛与黄鹂鸟,输入C播放美丽的童话,输入Q退出播放,其中可以在播放歌曲过程中中断,进行下一首要播放的歌曲(16号功能的调用)。结束语本次毕业设计论文算是画上了句号,感觉如卸重担,总算是松了口气,在做这个毕设时,不知我熬了多少个日日夜夜,每晚都要熬到深夜才入睡。从中我体会到了辛苦,还有喜悦。当我一遍一遍的去编写程序,又一遍一遍的修改时,真的很烦

35、,很累,很想放弃,当得到指导老师的指导时,我豁然开朗,再回去修改了一翻,终于完成了,达到了我想要的结果。当时真的十分高兴,那种成功的喜悦不能言表。除了那些感受之外,我还学到了很多知识,专业课方面的知识有:更近一步的学习了汇编语言中DOS功能号的调用,子程序的调用等,还有计算机接口技术里8255A的功能作用,8253的功能作用,及发声原理等,除了专业课的知识外,还学到了音乐方面的乐理知识,有指导老师讲的,还有自己查资料学的,使我不再是音乐盲了。写论文的时候,使我提高了打字速度,进一步熟练了五笔打字法。在制图过程中,我学会了画图,才道自己也可以制作课件。完成毕业设计,离不开指导老师的耐心和细心指导

36、,使我少做了很多无用功,使我受益匪浅。在此表示十分的感谢。虽然经过细心完成但出错之处在所难免,还恳请老师在此批改我的论文。完成了这次的毕设,只是一小步的进步,我还要在以后的时间里更进一步的去学习我的专业知识,只有不断的去学习,才能使自己不断地进步。学无止境,人生有涯,而知识无涯。致谢完成这个毕业设计离不开我的导师唐老师的耐心的指导,和多次辛苦的批改,在此表示衷心的感谢!到一声老师您辛苦了!在唐老师的指导中,我学到了好多以前没学到的知识比如音乐方面的知识、16号功能的调用,让我的程序如我所愿、EDIT命令的应用等,使我受益匪浅。大学生活一晃而过,回首走过的岁月,心中倍感充实,当我写完这篇毕业论文

37、的时候,有一种如释重负的感觉,感慨良多。再次诚挚的感谢我的论文指导老师唐老师。她在忙碌的教学工作中挤出时间来审查、修改我的论文。还有教过我的所有老师们,你们严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;他们循循善诱的教导和不拘一格的思路给予我无尽的启迪。感谢三年中陪伴在我身边的同学、朋友,感谢他们为我提出的有益的建议和意见,有了他们的支持、鼓励和帮助,我才充实的度过了三年的学习生活,给我的大学生活,画上了圆满的句号。谢谢!参考文献1王成端.汇编语言程序设计M.北京:高等教育出版社,20032王成端.微机接口技术M.2版.北京:高等教育出版社,20043丁辉.汇编语言程序设计.北京:电子工业出版社,20014张念准,江浩.USB总线开发技术指南.北京:国防工业出版社,5庄琴生.计算机接口技术.西安:电子科技大学出版社.20046 7 白雨峰.21世纪文体百科知识丛书.内蒙古:人民出版社.20068 肖雪儿.百唱不厌中国歌曲.四川:文艺出版社.2007

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号