微机原理课程设计(电子琴)_第1页
微机原理课程设计(电子琴)_第2页
微机原理课程设计(电子琴)_第3页
微机原理课程设计(电子琴)_第4页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录一、前言 .11.1汇编语言简介.11.1.1概述 .11.1.2汇编语言的特点 .1二、课程设计的目的和意义 . .22.1设计目的 .22.2设计意义 .22.3设计所需设备.2三、课程设计的容和要求 . .33.1设计容 .33.2设计要求 .3四、课程设计的相关技术 . .44.1可编程定时器 / 计数器 8253 .44.1.1 8253的主要特性 .44.1.28253的部结构 .44.1.3.8253的控制字和初始化编程 .54.2可编程并行输入 / 输出接口芯片 8255A .64.2.1 8255的主要特性 .64.2.2 8255SA 的部结构 .74.2.3 825

2、5A 的引脚信号 .84.2.4 8255A 的控制字 .104.3.电路连接 . .114.4.工作原理 . .12五、课程设计过程 .135.1电子琴设计思路 . .135.2程序流程图设计 .145.3软件各模块容.145.3.1.开启扬声器 . .145.3.2.关闭扬声器 . .155.3.3.演奏单音符 . .155.3.4.控制演奏时间 . .165.4 程序清单及详细注释 .16六、课程设计结果 .19七、课程设计小结 .20八、参考文献 .21下载可编辑一、前言1.1 汇编语言简介1.1.1概述汇编语言是面向机器的程序设计语言。在汇编语合中, 用助记符代替操作码,用地址符号

3、(Symbol) 或标号 (Label) 代替地址码。这样用符号代替机器语言的二进制码,就把机器语音变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器个能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编语言把汇编程序翻译成机器语言的过程称为汇编。1.1.2汇编语言的特点1. 面向机器的低级语言, 通常是为特定的计算机或系列计算机专门设计的。2. 保持了机器语言的优点,具有直接和简捷的特点。3. 可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O 端口等。4. 目标代码简短,占用存

4、少,执行速度快,是高效的程序设计语言。5. 经常与高级语言配合使用,应用十分广泛。.专业 .整理 .下载可编辑二、课程设计的目的和意义2.1 设计目的微机原理及接口技术课程设计是对所学课程容的全面、系统的总结、巩固和提高的一项课程实践活动。根据汇编语言的特点,选择相应的课题,在老师的指导下, 有学生独立完成。 课程设计要求同学们熟悉汇编语言的编程、连接、调试、运行等步骤,以及设计中所设计的相关软硬知识。通过课程设计,一方面提高运用汇编语言变成解决实际问题的能力,另一方面使同学们更深入的了解计算机系统部的有关知识,为以后的学习和系统开发奠定良好的基础。2.2 设计意义通过课程设计要进一步锻炼同学

5、们在微型计算机应用方面的实际工作能力。计算机科学在应用上得到飞速发展,因此,学习这方面的知识必须紧密联系实际,掌握这方面的知识更要强调实际问题的能力。通过设计着重学会面对一个实际问题,如何自己收集资料,如何自己去学习新的知识,如何去制定解决问题的方案并通过实践不断地区分析和解决前进道路上的一切问题,最终到达胜利的彼岸。2.3 设计所需设备16 位的汇编语言程序设计有几种工作环境,本实验以及所有程序都是通过 MASM5.0编译的, MASM5.0一个汇编语言的编译、连接、调试及运行的集成环境。支持标号的快速定位,编译速度快。可编程定时器计数器 8253,扬声器.专业 .整理 .下载可编辑三、课程

6、设计的容和要求3.1 设计容用汇编语言独立完成一个程序题,以达到熟练运用汇编语言编程实现有比较完整功能的系统的目的。(1).通过 D/A 转换器产生模拟信号,使PC机作为简易的电子琴 .(2).掌握利用 pc 机扬声器发出不同频率声音的方法.(3).学习利用系统功能调用从键盘上读取字符的方法.3.2 设计要求设计一电子发声控制,用键盘数字 1、 2、 3、 4、 5、6、7、8 代替音乐键中音部分 1、2、3、4、 5、 6、 7、8,在输入 1 7 时可发出对应的音乐上的 1,2,3,4,5, 6, 7 音,可发出对应频率的声音,控制发音的输出,模拟电子琴的发音。按下 CTRL-C则退出“钢

7、琴”状态 .要求:从键盘上读入音符并在屏幕上显示。8253 定时器的 3 个计数器的时钟频率为1.1931MHz ,则计数器 2 输入的是时钟频率与音符频率相除的值,即1.1931M/262。对 8253 定时器设置后就可以驱动扬声器。其技术完成可利用8253 计数器来控制其输出频率的值, 及 8255 开启控制发声装备。整体完成一个 PC机模拟的的电子琴。.专业 .整理 .下载可编辑四、课程设计的相关技术4.1 可编程定时器 / 计数器 82534.1.1 8253的主要特性8253 是为微型计算机配套而设计的一个可编程定时器/ 计数器芯片, 24引脚双列直插式封装。其主特性是:1. 单一正

8、 5v 电源, NMOS工艺制成。2. 片具有 3 个独立的 16 位减法计数器,每个计数器又可分成两个 8 位的计数器。3. 计数频率为 02Mhz。4两种 计数方式:即二进制或BCD方式计数。5. 六种工作方式,即可对系统时钟脉冲计数实现定时,又可对外部事件进行计数。6. 可由软件或硬件控制开始计数或停止计数。4.1.2 8253的部结构8253 的部结构主要由以下的几个部分组成:( 1)、数据总线缓冲器:数据缓冲器为 8 位、双向、三态的缓冲器, CPU通过它,一方面可以向控制寄存器写入控制字,向计数器写计数初值;另一方面可以从计数器读取当前计数值。( 2)、读/ 写逻辑电路:读 / 写

9、控制逻辑从系统总线接收输入信号, 经过译码,实现 8253 各部分的控制( 3)、控制字寄存器:接收从 CPU来的控制字,并由控制字的 D7,D6 位的编码决定控制字节写入哪个计数器的控制寄存器( 4)、计数器1. 一片 8253 部有 3 个独立的计数器,每个计数器对外有3 只引肢,GATA:门控信号;计数脉冲输入端;OUT :计数器输出端。.专业 .整理 .下载可编辑2. 通常在系统设计时, A1,A0 接系统地址线 A1A0,因此一片 8253 占用4 个连续的口地址,即当CS0 时:A1A000 选中 0 号计数器; A1A001 选中 1 号计数器;A1A010 选中 2 号计数器;

10、 A1A0=11选中控制器寄存器;3. 计数器有两种启动方式:软件启动和硬件启动。软件启动: 在 GATE为高电平时,装入计数初值后, 每个 CLK信号下降沿使计数器计数一次。硬件启动:装入计数初值后不计数, 等到 GATE信号出现低电平到高电平的跃变之后,每个 CLK信号下降沿使计数器计数一次。4. 每个计数器有 6 种工作方式可供选择方式 0:软件启动的“事件计数器” ,减 1 计数,计数值减到 0 时输出高电平 ;方式 1:硬件启动时的“单脉冲发生器” ,减 1 计数,计数值减到 0 时输出负脉冲;方式 2:软件启动的“脉冲发生器” ,减 1 计数,计数值减到 1 时输出负脉冲;方式 3

11、:软件启支的“方波发生器” ,减 2 计数;方式 4:软件启动的“单脉冲发生器” ,减 1 计数,牙地数值减到 0 时输出负脉冲;、方式 5:硬件启动的“单脉冲发生器” ,减 1 计数,计数值减到 0 时输出负脉冲。其中,方式 2、方式 3 具有初值自动重装的功能,因此,工作在方式 2、方式 3 的时候,计数器能够输出连续信号。4.1.3.8253的控制字和初始化编程(1). 初始化编程分两步进行,首先向控制寄存器写入控制字,预置相关计数器的工作方式,通报计数初值的写入顺序;承受后向使用的计数器写入计数初值。计数初值的计算公式如下:计数初值 Fclk/Fout.专业 .整理 .下载可编辑(2)

12、.8253的控制字控制字格式如下图所示,对于8253 而言, D7D6人 1 是无效控制字,对于 8254 而言, D7D611 是读出命令的标志之一。8253 的控制字格式4.2 可编程并行输入 / 输出接口芯片 8255A4.2.1 8255的主要特性(1) 8255A 是一个具有两个8 位( A 和 B 口)和两个 4 位( C 口高低四位),最多可达 24 位的并行输入输出端口的接口芯片,它为Intel系列CPU与外部设备之间提供TTL 电平兼容的接口,如打印机、AD、DA 转换器、键盘、步进电机以及需要同时两位以上信息传送的一切形式的并行接口。并且它的 PC口还具有按位置位复位功能,

13、为PC口作为联络信号时的按位控制提供了强有力的支持。(2) 8255A 能适应 CPU与 I O接口之间的多种数据传送方式的要求。如无条件传送,应答方式(查询)传送,中断方式传送,与此相应,8255A设置了方式 0、方式 1 以及方式 2(双向传送)。( 3) 8255A 可执行功能很强,容丰富的两条命令(方式字和控制字)为用户如何根据外界条件( I O设备需要哪些信号线以及它能提供哪些状态.专业 .整理 .下载可编辑线)来使用 8255A 构成多种接口电路,为组建微机应用系统提供了灵活方便的编程环境。它不仅作为并行接口用于Intel公司的 CPU系列,还可用于其他几乎所有CPU以及单片机。是

14、一种名付其实的通用并行接口芯片。8255A执行命令过程中和执行命令完毕之后,所产生的状态,保留在状态字中,以供查询。(4) 8255A PC 口的使用比较特殊,除作数据口外,当工作在1 方式和2 方式时,它的部分信号线被分配作专用联络信号;PC 口可以进行按位控制;在 CPU取 8255A状态时,PC口又作 1,2 方式的状态口用等等。 这是使用 8255的难点所在,学习时要特别予以注意。( 5) 8255A 芯片部主要由控制寄存器、状态寄存器和数据寄存器组成,因此,以后的编程主要也是对这三类寄存器进行访问。4.2.2 8255SA的部结构可编程并行接口Intel8255A,其部结构如图4-1

15、 所示,由以下4 个部分组成 :图 4-1输入 / 输出端口 A、B、C 。这三个端口均可看作是I/O 端口,但它们的结构和功能也稍有不同。 A 口和 B 口是一个独立的8 位 I/O 口。 C 口:可以看作是一个独立的 8 位 I/O 口;也可以看作是两个独立的4 位 I/O 口。.专业 .整理 .下载可编辑A 组和 B 组控制电路。这是两组根据 CPU命令控制 8255A工作方式的电路,这些控制电路部设有控制寄存器, 可以根据 CPU送来的编程命令来控制 8255A的工作方式,也可以根据编程命令来对 C 口的指定位进行置 / 复位的操作。 A 组控制电路用来控制 A 口及 C 口的高 4

16、位; B 组控制电路用来控制 B 口及 C 口的低 4 位读 / 写控制逻辑。(同上:它负责管理 8255A的数据传输过程。 它接收 CS*及 RD*、WR*、RESET,还有来自系统地址总线的口地址选择信号A0 和 A1。将这些信号组合后, 得到对 A组控制部件和B 组控制部件的控制命令, 并将命令发给这两个部件,以完成对数据、状态信息和控制信息的传输。)数据总缓冲器 。(同上:它是 8 位的双向的三态缓冲器。 作为 8255A 与系统总线连接的界面,输入 / 输出的数据, CPU的编程命令以及外设通过 8255A 传送的工作状态等信息,都是通过它来传输的。 )4.2.3 8255A的引脚信

17、号如图 4-2 所示是 8255A的芯片引脚信号。 除了电源和地以外, 其他信号可以分为两组:图 4-21. 和外设一边相连的:PA7-PA0: A 组数据信号PB7-PB0: B 组数据信号.专业 .整理 .下载可编辑PC7-PC0: C 组数据信号2. 和 CPU一边相连的:RESET:复位信号,低电平有效。当 RESET信号来到时,所有部寄存器就被清除,同时, 3 个数据端口被自动设为输入端口。D7-D0:它们是 8255A的数据线,和系统数据总线相连。CS*:芯片选择信号,低电平有效。在一个系统中,一般根据全部接口芯片来分配若干较低位地址(比如A5、 A4、A3)来组成各种芯片选择码,

18、当这几位地址组成某一个代码时, 译码器便往 8255A 的 CS*端输出一个低电平,于是 8255A被选中。只有当CS* 有效时,读信号RD*和写信号 WR*才对 8255A有效。RD*:芯片读出信号低电平有效。WR*:芯片写入信号低电平有效。A1、A0:端口选择信号。8255A 部有 3 个数据端口和一个控制端口,共四个端口。规定当 A1、A0 为 00 时,选中 A 端口;为 01 时,选中 B 端口;为 10 时,选中 C端口;为 11 时,选中控制口。8255A 的几个控制信号和传输动作之间的关系如下表8255A 的控制信号与传输动作的对应关系CAARW传输 说明S* 10D*R*00

19、001数据从端口 A 送数据总线00101数据从端口 B 送数据总线01001数据从端口 C 送数据总线00010数据从数据总线送端口 A00110数据从数据总线送端口 B01010数据从数据总线送端口 C如果 D7为 1,则由数据总线往控制寄存器写入控制字;01110如果 D7 为 0,则由数据总线输入的数据作为对C 端口的置 1、置 0 命令1XXXXD7D0进入高阻状态.专业 .整理 .下载可编辑01101非法的信号组合0XX11D7D0进入高阻状态4.2.4 8255A 的控制字1. 工作方式控制字8255 有三种工作方式:方式0、方式 1、方式 2。两组端口可分别指定不同的工作方式。

20、每组端口在某种工作方式下, 并不要求各信号同为输入或同为输出,而是可以分别指定。方式选择控制字的格式如图 4-3 所示。图 4-32.PC 口控制字PC 口的各信号线常作为控制线来使用,因此,经常需要单独对每根信号线置 1 或置 0。这种操作用向 PC口控制字寄存器送出 PC口控制字来实现。 PC口控制字格式如图 4-4 所示。.专业 .整理 .下载可编辑图 4-4应用注意:PC口控制字虽然是对端口C操作,但应写入到控制口地址,而不是写入到 PC数据口。编程举例:设 PA 数据口地址 00E0H,PB 数据口地址 00E2H, PC数据口地址 00E4H,控制口 00E6H4.3. 电路连接(

21、1)8253 和 8255 连接如下.专业 .整理 .下载可编辑(2)PC 机扬声器电路以及相关接口电路如下:PC机扬声器电路以及相关接口电路4.4. 工作原理PC中的定时电路有三个通道,通道3 用于发声,通道1 用于控制系统部的时钟。大家都十分清楚用DOS的 TIME 命令可以观察并修改系统部的一个时钟,这个时钟之所以能连续运转主要依靠定时器的通道1。通道 1 的工作方式和通道 3 一样,但是系统启动时设定其发出一个频率固定为 18.2Hz 的信号,这个信号直接送到系统中的 中断控制器 。每一个 Hz 都产生一个硬件中断, 一般称这个硬中断为 IRQ0 ,对应的中断号是 08H。也就是说,当

22、计算机启动后,我们的机器看上去十分平静, 但实际上 CPU非常忙碌。 在定时器的控制下每隔 55 毫秒就要执行一个 08H 号中断,这个中断的主要工作就是连续地计数。在存 0040H:006CH处有四字节的存储空间专门用于保存计数值, CPU每执行一次 08H中断,这四字节的计数值就被加 1,不难算出这个计数值每增加 1091 后时间恰好过了 1 分钟,每增加 65454 后时间恰好过了 1 小时。系统部的时钟之所以能准确走时, 靠得就是 08H中断和这四字节的计数值。 因此我们要想精确的定时,必须依靠时钟计数值才行。由于 PC计算机的时钟晶振为1.1931816MHz,根据频率的公式:f=1

23、/T.专业 .整理 .下载可编辑则频率周期为T=1/f定时器的计数器为 16 位计数器,则最大的计数值为 65536,那么其定时时间为:t=65536*T=65536/f=0.0549254(秒)即: PC定时器每秒可中断18.2065 次。五、课程设计过程5.1电子琴设计思路1. 先进行七种频率的设定各种音调对应的频率2,初始化 8253 计数器,调键盘输入功能调用3 输入对应的一个字符, 如果是其他任意键将退出如果在18 则将指针指向所对应的频率,通过初值转换程序转换成所对应的初值。4开启扬声器,程序后附。将初值通过42 端口输出。延时一定的时间,转入下一个,初始化8253,等待键盘输入。

24、.专业 .整理 .下载可编辑5.2 程序流程图设计程序流程图5.3 软件各模块容5.3.1.开启扬声器扬声器的开启电路如图所示, PC系列机的发声系统其核心部件为系统定时器的 2 号计数器,系统初始化时, 2 号计数器的工作方式为方波发生器,计数初值为二进制数,.专业 .整理 .下载可编辑用户只需改变计数初值就能得到不同的频率的方波输出门控制信号和扬声器输入82芯片相连, 和端同时为高电平时可使扬声器发声, PB0 和 PB1 同时为 0 时,扬声器关闭。 2 号计时器的端口地址为 42H,8255 端口地址为 61H,执行如下程序时可以打开扬声器:PUSHAXIN AL,61HOR AL,0

25、3HOUT 61H,ALPOPAL5.3.2.关闭扬声器执行如下的程序可以关闭扬声器:IN AL,61HAND AL,0FCHOUT 61H,AL5.3.3.演奏单音符每一种曲调中, 各个音符有不同的频率对2 号计数器只需设置不同的计数初值即可输出不同的频率,从而发出不同的音调,计数初值的计算公式如下:计数初值 =1.193182MHZ/输出频率1.193182MHZ转换成十六进制数应该为1234DEH,因此接通扬声器的前提下,执行下列的程序段即可发出与频率对应的音调MOV DX,12HMOV AX,34DEHMOV CX,频率值DIVCXOUT42H,ALMOVAL,AHMOV42H,AL.

26、专业 .整理 .下载可编辑5.3.4.控制演奏时间DLY PROC NEARPUSH CXPUSH DXMOV DX,10000DL1: MOV CX,6000DL2: LOOP DL2DEC DXJNZ DL1POP DXPOP CXRETDLY ENDP5.4 程序清单及详细注释DATA SEGMENTTABLE DW 262,294,330,347,392,440,494,523 ; 存入各个频率值 MESG DB WELCOME TO THE MUSIC WORLD! ,0DH,0AH ;操作提示DB EXIT:CTRL+CPLAY:PRESS 18 $,0DH,0AHDATA END

27、SCODE SEGMENTASSUME CS:CODE , DS:DATA , SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV AH,9;显示操作提示LEA DX,MESGINT 21HNEXT: MOV AH ,01H; 等待输入并有回显.专业 .整理 .下载可编辑INT 21H; 系统功能调用CMP AL,08H; 输入 CTRLC?JZ EXIT; 是则退出 DOSCMP AL,31H; 和 1 比较JB ESC; 如果比 1 小则等待重新输入CMP AL,38H; 和 8 比较JA ESC; 如果比 8 大则等待重新输入SUB AL,31H; 取偏移地址SH

28、L AL,01; 乘以 2,频率存储为字型,占两单元XOR AH,AH; 清 0AX高位MOV SI,AX; 取偏移量MOV AX,34DEHMOV DX,0012HDIV WORDPTR TABLESI; 求初值,存入AXPUSH AX; 保存 AX的值IN AL,61H; 开启扬声器OR AL,03HOUT 61H,ALPOP AX; 恢复 AX的值OUT 42H,AL; 输出初值MOV AL,AHOUT 42H,ALCALL DLY; 调用延时程序IN AL,61H; 关闭扬声器AND AL,0FCHOUT 61H,ALJMP NEXT; 重新等待输入EXIT: MOV AH,4CH;

29、退出 DOSINT 21H.专业 .整理 .下载可编辑ESC: NOP; 重新等待输入JMP NEXTDLY PROC NEAR; 延时程序PUSH CXPUSH DXMOV DX,10000DL1: MOV CX,6000DL2: LOOP DL2DEC DXJNZ DL1POP DXPOP CXRETDLY ENDPCODE ENDSEND START.专业 .整理 .下载可编辑六、课程设计结果双击生成的 EXE程序,出现等待界面,输入18 的任意字符,可发出对应频率的声音,并显示在屏幕上。输入其他字符,刚显示该字符,但无声音。如果输入 CTRLC 则退出程序。运行结果如下:图 6-1.专业 .整理 .下载可编辑七、课程设计小结微机原理与应用这门课程刚刚结束,但是由于以前我们实验课时实在是太少了,所以这次试验刚开始时最大的感觉就是以前

温馨提示

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

评论

0/150

提交评论