




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录一、前言11.1汇编语言简介11.1.1概述11.1.2汇编语言的特点1二、课程设计的目的和意义22.1设计目的22.2设计意义22.3设计所需设备2三、课程设计的内容和要求33.1设计内容33.2设计要求3四、课程设计的相关技术44.1可编程定时器/计数器825344.1.1 8253的主要特性44.1.2 8253的内部结构44.1.3.8253的控制字和初始化编程54.2可编程并行输入/输出接口芯片8255A64.2.1 8255的主要特性64.2.28255SA的内部结构74.2.38255A的引脚信号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概述汇编语言是面向机器的程序设计语言。在汇编语合中,用助记符代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语音变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器个能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编语言把汇编程序翻译成机器语言的过程称为汇编。1.1.2汇编语言的特点1.面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。2.保持了机器语言的优点,具有直接和简捷的特点。3.可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。4.目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。5.经常与高级语言配合使用,应用十分广泛。二、课程设计的目的和意义2.1设计目的微机原理及接口技术课程设计是对所学课程内容的全面、系统的总结、巩固和提高的一项课程实践活动。根据汇编语言的特点,选择相应的课题,在老师的指导下,有学生独立完成。课程设计要求同学们熟悉汇编语言的编程、连接、调试、运行等步骤,以及设计中所设计的相关软硬知识。通过课程设计,一方面提高运用汇编语言变成解决实际问题的能力,另一方面使同学们更深入的了解计算机系统内部的有关知识,为以后的学习和系统开发奠定良好的基础。2.2设计意义通过课程设计要进一步锻炼同学们在微型计算机应用方面的实际工作能力。计算机科学在应用上得到飞速发展,因此,学习这方面的知识必须紧密联系实际,掌握这方面的知识更要强调实际问题的能力。通过设计着重学会面对一个实际问题,如何自己收集资料,如何自己去学习新的知识,如何去制定解决问题的方案并通过实践不断地区分析和解决前进道路上的一切问题,最终到达胜利的彼岸。2.3设计所需设备16位的汇编语言程序设计有几种工作环境,本实验以及所有程序都是通过MASM5.0编译的,MASM5.0一个汇编语言的编译、连接、调试及运行的集成环境。支持标号的快速定位,编译速度快。可编程定时器计数器8253,扬声器三、课程设计的内容和要求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,在输入17时可发出对应的音乐上的1,2,3,4,5,6,7音,可发出对应频率的声音,控制发音的输出,模拟电子琴的发音。按下CTRL-C则退出“钢琴”状态.要求:从键盘上读入音符并在屏幕上显示。8253定时器的3个计数器的时钟频率为1.1931MHz ,则计数器2输入的是时钟频率与音符频率相除的值,即 1.1931M/262 。对8253定时器设置后就可以驱动扬声器。其技术完成可利用8253计数器来控制其输出频率的值,及8255开启控制发声装备。整体完成一个PC机模拟的的电子琴。四、课程设计的相关技术4.1可编程定时器/计数器82534.1.1 8253的主要特性8253是为微型计算机配套而设计的一个可编程定时器/计数器芯片,24引脚双列直插式封装。其主特性是:1.单一正5v电源,NMOS工艺制成。2.片内具有3个独立的16位减法计数器,每个计数器又可分成两个8位的计数器。3.计数频率为02Mhz。4两种 计数方式:即二进制或BCD方式计数。5.六种工作方式,即可对系统时钟脉冲计数实现定时,又可对外部事件进行计数。6.可由软件或硬件控制开始计数或停止计数。4.1.2 8253的内部结构8253的内部结构主要由以下的几个部分组成:(1)、数据总线缓冲器:数据缓冲器为8位、双向、三态的缓冲器,CPU通过它,一方面可以向控制寄存器写入控制字,向计数器写计数初值;另一方面可以从计数器读取当前计数值。(2)、读/写逻辑电路:读/写控制逻辑从系统总线接收输入信号,经过译码,实现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号计数器;A1A0=11选中控制器寄存器;3. 计数器有两种启动方式:软件启动和硬件启动。软件启动:在GATE为高电平时,装入计数初值后,每个CLK信号下降沿使计数器计数一次。硬件启动:装入计数初值后不计数,等到GATE信号出现低电平到高电平的跃变之后,每个CLK信号下降沿使计数器计数一次。4. 每个计数器有6种工作方式可供选择方式0:软件启动的“事件计数器”,减1计数,计数值减到0时输出高电平;方式1:硬件启动时的“单脉冲发生器”,减1计数,计数值减到0时输出负脉冲;方式2:软件启动的“脉冲发生器”,减1计数,计数值减到1时输出负脉冲;方式3:软件启支的“方波发生器”,减2计数;方式4:软件启动的“单脉冲发生器”,减1计数,牙地数值减到0时输出负脉冲;、方式5:硬件启动的“单脉冲发生器”,减1计数,计数值减到0时输出负脉冲。其中,方式2、方式3具有初值自动重装的功能,因此,工作在方式2、方式3的时候,计数器能够输出连续信号。4.1.3.8253的控制字和初始化编程(1).初始化编程分两步进行,首先向控制寄存器写入控制字,预置相关计数器的工作方式,通报计数初值的写入顺序;承受后向使用的计数器写入计数初值。计数初值的计算公式如下: 计数初值Fclk/Fout(2).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口还具有按位置位复位功能,为PC口作为联络信号时的按位控制提供了强有力的支持。 (2) 8255A能适应CPU与IO接口之间的多种数据传送方式的要求。如无条件传送,应答方式(查询)传送,中断方式传送,与此相应,8255A设置了方式0、方式1以及方式2(双向传送)。(3) 8255A可执行功能很强,内容丰富的两条命令(方式字和控制字)为用户如何根据外界条件(IO设备需要哪些信号线以及它能提供哪些状态线)来使用8255A构成多种接口电路,为组建微机应用系统提供了灵活方便的编程环境。它不仅作为并行接口用于Intel公司的CPU 系列,还可用于其他几乎所有CPU以及单片机。是一种名付其实的通用并行接口芯片。8255A执行命令过程中和执行命令完毕之后,所产生的状态,保留在状态字中,以供查询。(4) 8255A PC口的使用比较特殊,除作数据口外,当工作在1方式和2方式时,它的部分信号线被分配作专用联络信号;PC 口可以进行按位控制;在CPU取8255A状态时,PC口又作1,2方式的状态口用等等。这是使用8255的难点所在,学习时要特别予以注意。(5) 8255A芯片内部主要由控制寄存器、状态寄存器和数据寄存器组成,因此,以后的编程主要也是对这三类寄存器进行访问。4.2.28255SA的内部结构可编程并行接口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口的指定位进行置/复位的操作。A组控制电路用来控制A口及C口的高4位;B组控制电路用来控制B口及C口的低4位读/写控制逻辑 。(同上:它负责管理8255A的数据传输过程。它接收CS*及RD*、WR*、RESET,还有来自系统地址总线的口地址选择信号A0和A1。将这些信号组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令发给这两个部件,以完成对数据、状态信息和控制信息的传输。)数据总缓冲器 。(同上:它是8位的双向的三态缓冲器。作为8255A与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255A传送的工作状态等信息,都是通过它来传输的。)4.2.38255A的引脚信号 如图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)来组成各种芯片选择码,当这几位地址组成某一个代码时,译码器便往8255A的CS*端输出一个低电平,于是8255A被选中。只有当 CS*有效时,读信号RD*和写信号WR*才对8255A有效。 RD*:芯片读出信号低电平有效。 WR*:芯片写入信号低电平有效。 A1、A0:端口选择信号。 8255A内部有3个数据端口和一个控制端口,共四个端口。规定当A1、A0为00时,选中A端口;为01时,选中B端口;为10时,选中C端口;为11时,选中控制口。 8255A的几个控制信号和传输动作之间的关系如下表8255A的控制信号与传输动作的对应关系 CS*A1A0RD*WR*传输 说明00001数据从端口A送数据总线00101数据从端口B送数据总线01001数据从端口C送数据总线00010数据从数据总线送端口A00110数据从数据总线送端口B01010数据从数据总线送端口C01110如果D7为1,则由数据总线往控制寄存器写入控制字;如果D7为0,则由数据总线输入的数据作为对C端口的置1、置0命令1XXXXD7D0进入高阻状态01101非法的信号组合0XX11D7D0进入高阻状态4.2.4 8255A的控制字1.工作方式控制字8255有三种工作方式:方式0、方式1、方式2。两组端口可分别指定不同的工作方式。每组端口在某种工作方式下,并不要求各信号同为输入或同为输出,而是可以分别指定。方式选择控制字的格式如 图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.电路连接(1)8253和8255连接如下(2)PC机扬声器电路以及相关接口电路如下:PC机扬声器电路以及相关接口电路4.4.工作原理PC中的定时电路有三个通道,通道3用于发声,通道1用于控制系统内部的时钟。大家都十分清楚用DOS的TIME命令可以观察并修改系统内部的一个时钟,这个时钟之所以能连续运转主要依靠定时器的通道1。通道1的工作方式和通道3一样,但是系统启动时设定其发出一个频率固定为18.2Hz的信号,这个信号直接送到系统中的中断控制器。每一个Hz都产生一个硬件中断,一般称这个硬中断为IRQ0,对应的中断号是08H。也就是说,当计算机启动后,我们的机器看上去十分平静,但实际上CPU非常忙碌。在定时器的控制下每隔55毫秒就要执行一个08H号中断,这个中断的主要工作就是连续地计数。在内存0040H:006CH处有四字节的存储空间专门用于保存计数值,CPU每执行一次08H中断,这四字节的计数值就被加1,不难算出这个计数值每增加1091后时间恰好过了1分钟,每增加65454后时间恰好过了1小时。系统内部的时钟之所以能准确走时,靠得就是08H中断和这四字节的计数值。因此我们要想精确的定时,必须依靠时钟计数值才行。由于PC计算机的时钟晶振为1.1931816MHz,根据频率的公式:f=1/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,等待键盘输入。5.2程序流程图设计程序流程图5.3软件各模块内容5.3.1.开启扬声器扬声器的开启电路如图所示,PC系列机的发声系统其核心部件为系统定时器的2号计数器,系统初始化时,2号计数器的工作方式为方波发生器,计数初值为二进制数,用户只需改变计数初值就能得到不同的频率的方波输出门控制信号和扬声器输入82芯片相连,和端同时为高电平时可使扬声器发声,PB0和PB1同时为0时,扬声器关闭。2号计时器的端口地址为42H,8255端口地址为61H,执行如下程序时可以打开扬声器: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,12H MOV AX,34DEH MOV CX,频率值 DIV CX OUT 42H,AL MOV AL,AH MOV 42H,AL5.3.4.控制演奏时间DLY PROC NEAR PUSH CX PUSH DX MOV DX,10000DL1: MOV CX,6000DL2: LOOP DL2 DEC DX JNZ DL1 POP DX POP CX RETDLY ENDP5.4程序清单及详细注释DATA SEGMENT TABLE DW 262,294,330,347,392,440,494,523 ;存入各个频率值MESG DB WELCOME TO THE MUSIC WORLD! ,0DH,0AH ;操作提示 DB EXIT:CTRL+C PLAY:PRESS 18 $,0DH,0AHDATA ENDSCODE SEGMENT ASSUME CS:CODE , DS:DATA , SS:STACKSTART:MOV AX,DATA MOV DS,AX MOV AH,9 ;显示操作提示LEA DX,MESG INT 21HNEXT: MOV AH ,01H;等待输入并有回显 INT 21H;系统功能调用 CMP AL,08H ;输入CTRLC? JZ EXIT;是则退出DOS CMP AL,31H;和1比较 JB ESC;如果比1小则等待重新输入 CMP AL,38H;和8比较 JA ESC;如果比8大则等待重新输入 SUB AL,31H;取偏移地址 SHL AL,01;乘以2,频率存储为字型,占两单元 XOR AH,AH;清0AX高位 MOV SI,AX;取偏移量 MOV AX,34DEH MOV DX,0012H DIV WORD PTR TABLESI ;求初值,存入AX PUSH AX;保存AX的值 IN AL,61H;开启扬声器 OR AL,03H OUT 61H,AL POP AX;恢复AX的值 OUT 42H,AL;输出初值 MOV AL,AH OUT 42H,AL CALL DLY;调用延时程序 IN AL,61H;关闭扬声器 AND AL,0FCH OUT 61H,AL JMP NEXT;重新等待输入EXIT: MOV AH,4CH ;退出DOS INT 21HESC: NOP;重新等待输入 JMP NEXT DLY PROC NEAR ;延时程序 PUSH CX PUSH DX MOV DX,10000DL1: MOV CX,6000DL2: LOOP DL2 DEC DX JNZ DL1 POP DX POP CX RETDLY ENDPCODE ENDS END START六、课程设计结果双击生成的EXE程序,出现等待界面,输入18的任意字符,可发出对应频率的声音,并显示在屏幕上。输入其他字符,刚显示该字符,但无声音。如果输入CTRLC则退出程序。运行结果如下:图6-1七、课程设计小结微机原理与应用这门课程刚刚结束,但是由于以前我们实验课时实在是太少了,所以这次试验刚开始时最大的感觉就是以前学过的东西很难一下子拿出来应用。通过老师的提示及相关实验指导书的资料
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广西南宁市司法局招聘工作人员3人考前自测高频考点模拟试题附答案详解(突破训练)
- 2025年洛阳宜阳县选聘县属国有集团公司部长10名考前自测高频考点模拟试题及答案详解(名校卷)
- 2025广东肇庆市怀集县卫生健康局赴高校招聘卫生专业技术人员52人考前自测高频考点模拟试题及参考答案详解
- 2025年上海中医药大学附属曙光医院淮南医院招聘27人考前自测高频考点模拟试题附答案详解(模拟题)
- 雅安市名山区茗投产业集团有限公司公开招聘合同制员工考试及人员笔试历年参考题库附带答案详解
- 2025年衢州市卫生健康委员会衢州市妇幼保健院招聘编外人员1人模拟试卷及答案详解(夺冠)
- 浙江国企招聘2025台州市永宁产业投资集团有限公司下属子公司公开招聘工作人员5人笔试历年参考题库附带答案详解
- 成都东部集团有限公司及下属企业公开招聘(94人)笔试历年参考题库附带答案详解
- 中国电建2025届校园招聘全面启动笔试历年参考题库附带答案详解
- 2025陕西西咸新区秦汉物业管理有限公司招聘笔试历年参考题库附带答案详解
- 2025-2030儿童心理健康服务市场需求分析与行业趋势及发展策略报告
- 人工智能+新能源设备研发应用分析报告
- 公路施工汇报材料
- 对银行消防培训课件
- 保安节前安全培训课件
- 临床运动处方实践专家共识(2025)解读 3
- 2025-2030礼品包装品牌化运营策略及消费者偏好与市场营销渠道研究
- 小学数学课堂教学提问的教学策略讲座稿
- 食品安全事故流行病学个案调查表
- 风机运行记录表
- 2021新高考语文Ⅰ卷现代文阅读Ⅱ小说《石门阵》赏析及试题详细解析
评论
0/150
提交评论