


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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.2 8253 的部结构 4的控制字和初始化编程 54.2 可编程并行输入 /输出接口芯片 8255A 64.2.1 8255 的主要特性 6422.8255SA的部结构 7423.8255A的引脚信号 84.2.4 8255A
2、的控制字 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汇编语言简介概述汇编语言是面向机器的程序设计语言。在汇编语合中,用助记符代替操 作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机 器语言的二进制码,就把机器语音变成了汇编语言
3、。于是汇编语言亦称为符 号语言。使用汇编语言编写的程序,机器个能直接识别,要由一种程序将汇 编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系 统软件中语言处理系统软件。汇编语言把汇编程序翻译成机器语言的过程称 为汇编。汇编语言的特点1. 面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。2. 保持了机器语言的优点,具有直接和简捷的特点。3. 可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPUI/O端口等。4. 目标代码简短,占用存少,执行速度快,是高效的程序设计语言。5. 经常与高级语言配合使用,应用十分广泛。、课程设计的目的和意义2.1设计目的微机
4、原理及接口技术课程设计是对所学课程容的全面、系统的总结、巩固和提高的一项课程实践活动。根据汇编语言的特点,选择相应的课题,在 老师的指导下,有学生独立完成。课程设计要求同学们熟悉汇编语言的编程、 连接、调试、运行等步骤,以及设计中所设计的相关软硬知识。通过课程设 计,一方面提高运用汇编语言变成解决实际问题的能力,另一方面使同学们 更深入的了解计算机系统部的有关知识,为以后的学习和系统开发奠定良好 的基础。2.2设计意义通过课程设计要进一步锻炼同学们在微型计算机应用方面的实际工作 能力。计算机科学在应用上得到飞速发展,因此,学习这方面的知识必须紧 密联系实际,掌握这方面的知识更要强调实际问题的能
5、力。通过设计着重学 会面对一个实际问题,如何自己收集资料,如何自己去学习新的知识,如何 去制定解决问题的方案并通过实践不断地区分析和解决前进道路上的一切问 题,最终到达胜利的彼岸。2.3设计所需设备16位的汇编语言程序设计有几种工作环境,本实验以及所有程序都是 通过MASM5.C编译的,MASM5.C一个汇编语言的编译、连接、调试及运行的 集成环境。支持标号的快速定位,编译速度快。可编程定时器计数器8253,扬声器三、课程设计的容和要求3.1设计容用汇编语言独立完成一个程序题,以达到熟练运用汇编语言编程实现有 比较完整功能的系统的目的。(1) .通过D/A转换器产生模拟信号,使PC机作为简易的
6、电子琴.(2) .掌握利用pc机扬声器发出不同频率声音的方法.(3) .学习利用系统功能调用从键盘上读取字符的方法.3.2设计要求设计一电子发声控制,用键盘数字 1、2、3、4、5、6 7、8代替音乐 键中音部分1、2、3、4、5、6、7、8,在输入17时可发出对应的音乐上 的1, 2, 3, 4, 5, 6, 7音,可发出对应频率的声音,控制发音的输出,模 拟电子琴的发音。按下CTRL-C则退出“钢琴”状态.要求:从键盘上读入音符并在屏幕上显示。音苻2加"I45p頻率<Hz)鼻26力2943333?4401494<52斧8253定时器的3个计数器的时钟频率为1.1931
7、MHz ,则计数器2输入的是时 钟频率与音符频率相除的值,即1.1931M/262。对8253定时器设置后就可 以驱动扬声器。其技术完成可利用8253计数器来控制其输出频率的值,及8255开启控 制发声装备。整体完成一个PC机模拟的的电子琴。四、课程设计的相关技术4.1 .可编程定时器/计数器82534.1.1 8253 的主要特性8253是为微型计算机配套而设计的一个可编程定时器 /计数器芯片,24 引脚双列直插式封装。其主特性是:1. 单一正5v电源,NMO工艺制成。2. 片具有3个独立的16位减法计数器,每个计数器又可分成两个8位的 计数器。3. 计数频率为02Mhz4. 两种 计数方式
8、:即二进制或BCD方式计数。5. 六种工作方式,即可对系统时钟脉冲计数实现定时,又可对外部事件 进行计数。6. 可由软件或硬件控制开始计数或停止计数。4.1.2 8253 的部结构8253的部结构主要由以下的几个部分组成:(1) 、数据总线缓冲器:数据缓冲器为 8位、双向、三态的缓冲器,CPU通 过它,一方面可以向控制寄存器写入控制字,向计数器写计数初值;另一方 面可以从计数器读取当前计数值。(2) 、读/写逻辑电路:读/写控制逻辑从系统总线接收输入信号, 经过译码, 实现8253各部分的控制(3) 、控制字寄存器:接收从CPU来的控制字,并由控制字的D7, D6位的编 码决定控制字节写入哪个
9、计数器的控制寄存器(4) 、计数器1. 一片8253部有3个独立的计数器,每个计数器对外有 3只引肢, GATA门控信号;计数脉冲输入端;OUT:计数器输出端。2. 通常在系统设计时,A1,A0接系统地址线A1A0因此一片8253占用 4个连续的口地址,即当CS= 0时:A1A0= 00选中0号计数器;A1A0= 01选中1号计数器;A1A0= 10选中2号计数器;A1A0=11选中控制器寄存器;3. 计数器有两种启动方式:软件启动和硬件启动。软件启动:在GATE为高电平时,装入计数初值后,每个CLK信号下降沿使计 数器计数一次。硬件启动:装入计数初值后不计数,等到GATE言号出现低电平到高电
10、平 的跃变之后,每个CLK信号下降沿使计数器计数一次。4. 每个计数器有6种工作方式可供选择方式0:软件启动的“事件计数器”,减1计数,计数值减到0时输出高 电平;方式1:硬件启动时的“单脉冲发生器”,减1计数,计数值减到0时输 出负脉冲;方式2:软件启动的“脉冲发生器”,减1计数,计数值减到1时输出负 脉冲;方式3:软件启支的“方波发生器”,减2计数;方式4:软件启动的“单脉冲发生器”,减1计数,牙地数值减到0时输 出负脉冲;、方式5:硬件启动的“单脉冲发生器”,减1计数,计数值减到0时输出 负脉冲。其中,方式2、方式3具有初值自动重装的功能,因此,工作在方式2、方式3的时候,计数器能够输出
11、连续信号。的控制字和初始化编程(1) .初始化编程分两步进行,首先向控制寄存器写入控制字,预置相关计数 器的工作方式,通报计数初值的写入顺序;承受后向使用的计数器写入计数 初值。计数初值的计算公式如下:计数初值=Fclk/Fout.8253的控制字控制字格式如下图所示,对于 8253而言,D7D4人1是无效控制字, 对于8254而言,D7D4 11是读出命令的标志之一。8253的控制字格式4.2 .可编程并行输入/输出接口芯片8255A8255 的主要特性(1) 8255A是一个具有两个8位(A和B 口)和两个4位(C 口高/ 低四位),最多可达24位的并行输入输出端口的接口芯片,它为 Int
12、el系列 CPU与外部设备之间提供TTL电平兼容的接口,如打印机、A/D D/A转换 器、键盘、步进电机以及需要同时两位以上信息传送的一切形式的并行接口。并且它的PC口还具有按位置位/复位功能,为 PC口作为联络信号时的按位 控制提供了强有力的支持。(2)8255A能适应CPU与 I /O接口之间的多种数据传送方式的要求。如无条件传送,应答方式(查询)传送,中断方式传送,与此相应,8255A设置了方式0、方式1以及方式2 (双向传送)。(3)8255A可执行功能很强,容丰富的两条命令(方式字和控制字) 为用户如何根据外界条件(I/O设备需要哪些信号线以及它能提供哪些状态线)来使用8255A构成
13、多种接口电路,为组建微机应用系统提供了灵活方便 的编程环境。它不仅作为并行接口用于In tel公司的CPU系列,还可用于其他几乎所有CPU以及单片机。是一种名付其实的通用并行接口芯片。8255A执行命令过程中和执行命令完毕之后,所产生的状态,保留在状态字中,以 供查询。(4) 8255A PC 口的使用比较特殊,除作数据口外,当工作在1方式和 2方式时,它的部分信号线被分配作专用联络信号;PC 口可以进行按位控制; 在CPU取 8255A状态时,PC口又作1,2方式的状态口用等等。这是使用8255 的难点所在,学习时要特别予以注意。(5)8255A芯片部主要由控制寄存器、状态寄存器和数据寄存器
14、组成,因此,以 后的编程主要也是对这三类寄存器进行访问。4.2.2 . 8255SA的部结构可编程并行接口 Intel8255A,其部结构如图4-1所示,由以下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 口
15、的指定位进行置/复位的操作。A组控 制电路用来控制A口及C口的高4位;B组控制电路用来控制B 口及C口的低4 位 读/写控制逻辑。(同上:它负责管理8255A的数据传输过程。它接收CS* 及RD* WR* RESET还有来自系统地址总线的口地址选择信号 A0和A1。将这 些信号组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令发给 这两个部件,以完成对数据、状态信息和控制信息的传输。) 数据总缓冲器。(同上:它是8位的双向的三态缓冲器。作为8255A与系 统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过 8255A传 送的工作状态等信息,都是通过它来传输的。)4.2.
16、3 . 8255A的引脚信号如图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)来组成各种芯片选择码,当这几位 地址组成某一个代码时,译码
17、器便往8255A的CS*端输出一个低电平,于是8255A 被选中。只有当CS*有效时,读信号 RD和写信号 WR才对8255A有效。RD*:芯片读出信号低电平有效。WR*芯片写入信号低电平有效。A1、A0:端口选择信号。8255A部有3个数据端口和一个控制端口,共四 个端口。规定当A1、A0为00时,选中A端口;为01时,选中B端口;为10时, 选中C端口;为11时,选中控制口。8255A的几个控制信号和传输动作之间的关系如下表8255A的控制信号与传输动作的对应关系S*C1A0AD*RR*W传输说明00001 数据从端口 A送数据总线00101 数据从端口 B送数据总线01001 数据从端口
18、 C送数据总线00010 数据从数据总线送端口 A00110 数据从数据总线送端口 B01010 数据从数据总线送端口 C0111如果D7为1,则由数据总线往控制寄存器写入控制字;0 如果D7为0,则由数据总线输入的数据作为对 C端口的置1、置0命令1XXXX D7D0进入高阻状态01101 非法的信号组合0XX11D7D0进入高阻状态424 .8255A的控制字1工作方式控制字8255有三种工作方式:方式0、方式1、方式2。两组端口可分别指定不同 的工作方式。每组端口在某种工作方式下,并不要求各信号同为输入或同为输出, 而是可以分别指定。方式选择控制字的格式如 图4-3所示。图4-32.PC
19、 口控制字PC 口的各信号线常作为控制线来使用,因此,经常需要单独对每根信号线置1或置0。这种操作用向PC口控制字寄存器送出PC口控制字来实现。PC口控 制字格式如图4-4所示。图4-4应用注意:PC口控制字虽然是对端口 C操作,但应写入到控制口地址,而 不是写入到PC数据口。编程举例:设PA数据口地址OOEOH, PB数据口地址00E2H, PC数据口地 址 00E4H,控制口 00E6H43电路连接825332551MH2-1CLKOJT0UT9-PA9*1GATE8CSCS1260H 卜_(1)8253和8255连接如下W2* 口 地址 PA口计敷器i 4111 昏融器龙- 4如I 控制
20、寄存蛊=45H(2)PC机扬声器电路以及相关接口电路如下:PBn=6lll 叱口= 62H 捽制口 WFTPC机扬声器电路以及相关接口电路44工作原理PC中的定时电路有三个通道,通道 3用于发声,通道1用于控制系统部的 时钟。大家都十分清楚用DOS勺"TIME"命令可以观察并修改系统部的一个时钟, 这个时钟之所以能连续运转主要依靠定时器的通道1。通道1的工作方式和通道3一样,但是系统启动时设定其发出一个频率固定 为18.2Hz的信号,这个信号直接送到系统中的"中断控制器"。每一个"Hz"都产 生一个硬件中断,一般称这个硬中断为&quo
21、t;IRQ0",对应的中断号是08耳也就是说, 当计算机启动后,我们的机器看上去十分平静,但实际上CPU非常忙碌。在定时器的控制下每隔55毫秒就要执行一个08H号中断,这个中断的主要工作就是连 续地计数。在存"0040H: 006CH处有四字节的存储空间专门用于保存计数值,CPU每执行一次08H中断,这四字节的计数值就被加1,不难算出这个计数值每增加1091 后时间恰好过了 1分钟,每增加65454后时间恰好过了 1小时。系统部的时钟之 所以能准确走时,靠得就是08H中断和这四字节的计数值。因此我们要想精确的 定时,必须依靠时钟计数值才行。由于PC计算机的时钟晶振为1.19
22、31816MHz根据频率的公式:f=1/T则频率周期为T=1/f定时器的计数器为16位计数器,则最大的计数值为65536,那么其定时时间为:t=65536*T=65536/f=0.0549254(秒)即:PC定时器每秒可中断18.2065次。五、课程设计过程5.1电子琴设计思路1.先进行七种频率的设定音符护加13护频率 <Hz) *2亦294<33W玮2392p44052知中各种音调对应的频率2,初始化8253计数器,调键盘输入功能调用3输入对应的一个字符,如果是其他任意键将退出如果在18则将指针 指向所对应的频率,通过初值转换程序转换成所对应的初值。4开启扬声器,程序后附。将初值
23、通过 42端口输出。延时一定的时间, 转入下一个,初始化8253,等待键盘输入。5.2程序流程图设计程序流程图5.3软件各模块容531.开启扬声器 - * -ij-l扬声器的开启电路如图所示,PC系列机的发声系统其核心部件为系统定时器的 2号计数器,系统初始化时,2号计数器的工作方式为方波发生器,计数初值为二进制数,用户只需改变计数初值就能得到不同的频率的方波输出门控制信号GATE2和扬声器输入82 5 5芯片PBO相连,PBO和PE1端同时为高电平 时可使扬声器发声,PBO和PB1同时为0时,扬声器关闭。2号计时器的端 口地址为42H, 8255端口地址为61H,执行如下程序时可以打开扬声器
24、:PUSH AXIN AL,61HOR AL,03HOUT 61H,ALPOP AL5.3.2. 关闭扬声器执行如下的程序可以关闭扬声器:IN AL,61HAND AL,0FCHOUT 61H,AL5.3.3. 演奏单音符每一种曲调中,各个音符有不同的频率对2号计数器只需设置不同的计数初 值即可输出不同的频率,从而发出不同的音调,计数初值的计算公式如下:计数初值=1.193182MHZ输出频率1.193182MHZ专换成十六进制数应该为1234DEH因此接通扬声器的前提下, 执行下列的程序段即可发出与频率对应的音调MOV DX,12HMOV AX,34DEHMOV CX, 频率值DIV CXO
25、UT 42H,ALMOV AL,AHMOV 42H,AL5.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+C PLA
26、Y:PRESS 18 $',0DH,0AHDATA ENDSCODE 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;输入 CTRL C?JZ EXIT;是则退出DOSCMP AL,31H;和1比较JB ESC;如果比1小则等待重新输入CMP AL,38H;和8比较JA ESC;如果比8大则等待重新输入SUB AL,31H;取偏移地址
27、SHL AL,01;乘以2,频率存储为字型,占两单元XOR AH,AH;清0AX高位MOV SI,AX;取偏移量MOV AX,34DEHMOV DX,0012HDIV WORD PTR 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;退出DOSINT 21HESC: NOP;重新等待输入JMP NEXTDLY PROC NEAR;延时程序PUSH CXPUSH DXMOV DX,10000DL1: MOV CX,6000DL2: LOOP DL2DEC DXJNZ DL1POP DXPOP CXRETDLY ENDPCODE ENDSEND START六、课程设计结果双击生成的EXE程序,出现等待界面,输入18的任意字符,可发出对应频 率的声音,并显示在屏幕上。输入其他字符,刚显示该字符,但无声音。如 果输入CTRL C则退出程序。运行结果如下:图6-1七、课程设计小结微机原理与应用这门课程刚刚结束,但是由于以前我们实验课时实在是太少 了,所以这
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电线电缆标准知识培训课件
- 电磁式电压表的原理
- 高考励志课件
- 电瓶车刹车知识培训内容课件
- 1.3 第2课时地球的公转 同步分层练(含答案)地理人教版七年级上册
- 北京音乐联考试题分析及答案
- 北京初三道法开卷考试及答案
- 电焊工常用知识培训课件
- 董秘资格考试题库及答案
- 聊城中考试题及答案
- 医疗纠纷防范培训
- 2024版《糖尿病健康宣教》课件
- 《大学》原文全文无删减版
- 资产并购咨询合同模板
- 字画作品买卖合同模板
- 口腔护理操作评分标准框架
- 人教PEP版小学英语五年级下册复习教案(全册)
- 2024年初中数学人教版七年级上册新教材培训心得体会
- NB-T 33025-2020 电动汽车快速更换电池箱通.用要求
- 建筑工程词汇表收集
- 延保服务合同范本
评论
0/150
提交评论