《最新微机原理10PPT课件》由会员分享,可在线阅读,更多相关《最新微机原理10PPT课件(38页珍藏版)》请在金锄头文库上搜索。
1、微机原理微机原理10107.1 概述概述一、接口电路的分类和功能一、接口电路的分类和功能外设必须通过接口电路与外设必须通过接口电路与CPU相连接相连接数数据据总总线线控控制制总总线线地地址址总总线线接口电路接口电路外外部部设设备备数据线数据线控制线控制线状态线状态线三、三、I/O端口的编址方式端口的编址方式端口地址是一种重要资源端口地址是一种重要资源三、三、I/O端口的编址方式端口的编址方式端口的寻址端口的寻址把端口地址放在把端口地址放在DX寄存器中,对该端口进行读写寄存器中,对该端口进行读写IN AL, DXOUT DX, ALP. 83可寻址的端口号为可寻址的端口号为065535(FFFF
2、H)端口地址小于或等于端口地址小于或等于FFH(255),可以用立即数表示端口地址可以用立即数表示端口地址IN AL, 42HOUT 43H, AL7.2 CPU与外设数据传送的方式与外设数据传送的方式程序传送方式程序传送方式中断传送方式中断传送方式DMA传送方式传送方式无条件传送无条件传送程序查询传送(条件传送)程序查询传送(条件传送)一、程序传送方式一、程序传送方式(一)无条件传送(一)无条件传送CPU与外设间的数据交换在程序控制下进行与外设间的数据交换在程序控制下进行不查询外设状态,认为外设已经准备就绪,直接与外设传送数据不查询外设状态,认为外设已经准备就绪,直接与外设传送数据外设准备就
3、绪外设准备就绪:对于输入设备,已经把数据放入接口电路的数:对于输入设备,已经把数据放入接口电路的数据输入寄存器,据输入寄存器,CPU可以读取;对于输出设备,已经准备好接可以读取;对于输出设备,已经准备好接收数据(接口电路的数据输出寄存器已空),收数据(接口电路的数据输出寄存器已空),CPU可以向它输可以向它输出数据出数据由于不查询外设状态,接口电路不需要状态寄存器由于不查询外设状态,接口电路不需要状态寄存器一、程序传送方式一、程序传送方式输入缓存输入缓存输出锁存输出锁存无条件程序传送的原理,无条件程序传送的原理,P. 197一、程序传送方式一、程序传送方式(二)程序查询传送(二)程序查询传送在
4、执行输入输出前,要先查询接口中状态寄存器的状态。在执行输入输出前,要先查询接口中状态寄存器的状态。输入时,状态寄存器的状态指示要输入的数据是否已经准备就绪输入时,状态寄存器的状态指示要输入的数据是否已经准备就绪输出时,状态寄存器的状态指示输出设备是否空闲输出时,状态寄存器的状态指示输出设备是否空闲P. 199二、中断传送方式二、中断传送方式使用查询方式,使用查询方式,CPU必须检测接口电路的状态寄存器,如果设备必须检测接口电路的状态寄存器,如果设备未准备好,未准备好,CPU就要不断地查询,降低了就要不断地查询,降低了CPU的运行效率的运行效率中断方式:当外设作好传送准备后,主动向中断方式:当外
5、设作好传送准备后,主动向CPU请求中断,请求中断,CPU响应中断后在中断处理程序中与外设交换数据。若外设未准备好,响应中断后在中断处理程序中与外设交换数据。若外设未准备好,CPU可以执行其他程序,提高了可以执行其他程序,提高了CPU的利用率的利用率每条指令完成后,每条指令完成后,CPU均可响应中断,因此当设备准备好时,可均可响应中断,因此当设备准备好时,可及时与及时与CPU交换数据,提高了实时性交换数据,提高了实时性三、三、DMA传送方式传送方式对于高速外设(如磁盘、高速对于高速外设(如磁盘、高速A/D),中断方式不能满足数据),中断方式不能满足数据传输速度的要求。传输速度的要求。DMA=Di
6、rect Memory Access直接存储器访问直接存储器访问DMA方式是一种由专门的硬件电路执行方式是一种由专门的硬件电路执行I/O的数据传送方式,的数据传送方式,它可以让外设接口直接与内存进行高速的数据传送,而不必经它可以让外设接口直接与内存进行高速的数据传送,而不必经过过CPU。这种专门的硬件电路称为。这种专门的硬件电路称为DMA控制器,简称控制器,简称DMAC7.3 可编程计时器可编程计时器/计数器计数器8253一、计数一、计数/定时的工作原理定时的工作原理计数计数/定时的功能定时的功能对外部事件发生次数进行计数对外部事件发生次数进行计数计算机系统经常用到定时信号,如计算机系统经常用
7、到定时信号,如DRAM刷新定时刷新定时计数和计时本质上是相同的,它们都是对一个输入脉冲进行计数和计时本质上是相同的,它们都是对一个输入脉冲进行计数,如果输入脉冲的频率一定,那么记录脉冲的个数与所计数,如果输入脉冲的频率一定,那么记录脉冲的个数与所需的时间是一一对应的关系。需的时间是一一对应的关系。例如输入脉冲频率为例如输入脉冲频率为2MHz,那么计数,那么计数2 106 计时计时1秒秒因此,使用同一个芯片,既能计数,又能计时因此,使用同一个芯片,既能计数,又能计时计时器计时器/计数器计数器一、计数一、计数/定时的工作原理定时的工作原理控制寄存器控制寄存器初始值寄存器初始值寄存器计数器计数器计数
8、输出寄存器计数输出寄存器状态寄存器状态寄存器CLKGATEOUT组成:组成:控制寄存器控制寄存器决定工作模式决定工作模式状态寄存器状态寄存器反应工作状态反应工作状态初值寄存器初值寄存器计数的初值计数的初值计数输出寄存器计数输出寄存器CPU从中读从中读当前计数值当前计数值计数器计数器执行计数操作,执行计数操作,CPU不能访问不能访问一、计数一、计数/定时的工作原理定时的工作原理工作原理:对工作原理:对CLK信号进行减信号进行减1计数计数首先,首先,CPU把控制字写入控制寄存器,计数初始值写入初值寄存器把控制字写入控制寄存器,计数初始值写入初值寄存器计数从初值开始,每当计数从初值开始,每当CLK信
9、号出现一次,计数值减信号出现一次,计数值减1当计数值减到当计数值减到0,从,从OUT端输出规定的信号端输出规定的信号CLK信号出现时,计数器是否减信号出现时,计数器是否减1,由门控信号,由门控信号GATE控制控制一、计数一、计数/定时的工作原理定时的工作原理CLK是计数输入信号,计数器对是计数输入信号,计数器对CLK端出现的脉冲个数进行计数端出现的脉冲个数进行计数CLK端可以输入外部事件端可以输入外部事件CLK端可以接入固定频率的时钟信号,从而实现计时端可以接入固定频率的时钟信号,从而实现计时OUT信号在计数结束时发生变化信号在计数结束时发生变化可将可将OUT作为外部设备的控制信号作为外部设备
10、的控制信号可将可将OUT作为向作为向CPU申请中断的信号申请中断的信号CPU可以从计数输出寄存器读出当前计数值。可以从计数输出寄存器读出当前计数值。读前,应向控制寄存器发送锁存命令读前,应向控制寄存器发送锁存命令二、二、8253的编程结构的编程结构1片片8253内部有三个计数器,结构完全相同内部有三个计数器,结构完全相同8253的引脚、内部结构、寻址方式的引脚、内部结构、寻址方式P. 229每个计数器内部都有一个每个计数器内部都有一个8位控制寄存器,三个控制寄存器使位控制寄存器,三个控制寄存器使用相同的端口,在编程结构图中画为一个用相同的端口,在编程结构图中画为一个8253没有状态寄存器没有状
11、态寄存器二、二、8253的编程结构的编程结构8253控制字的格式控制字的格式P. 230每个计数器的初值寄存器(每个计数器的初值寄存器(CR)、输出锁存器()、输出锁存器(OL)都是都是16位位的,但它们对应相同的一个的,但它们对应相同的一个8位端口地址,所以位端口地址,所以16位的位的CR、OL作为两个作为两个8位寄存器读写,由控制寄存器控制读写高位寄存器读写,由控制寄存器控制读写高8位位/低低8位位三、三、8253的编程命令的编程命令初始化初始化1)写入控制字)写入控制字2)按控制字要求写入计数初值)按控制字要求写入计数初值计数器初值计算:计数器初值计算:N=fCLK/fOUT例:设三个计
12、数器的例:设三个计数器的CR/OL端口地址为端口地址为70H、71H、72H,控制,控制寄存器端口地址寄存器端口地址73H。计数器。计数器0,工作模式,工作模式2,CR/OL仅使用低仅使用低8位,初值为位,初值为100,计数值使用二进制,计数值使用二进制MOV AL, 14HOUT 73H, ALMOV AL, 100OUT 70H, AL三、三、8253的编程命令的编程命令例:设三个计数器的例:设三个计数器的CR/OL端口地址为端口地址为70H、71H、72H,控制,控制寄存器端口地址寄存器端口地址73H。计数器。计数器1,工作模式,工作模式1,CR/OL使用使用16位,位,初值为初值为12
13、34,计数值使用,计数值使用BCDMOV AL, 73HOUT 73H, ALMOV AX, 1234HOUT 71H, ALMOV AL, AHOUT 71H, AL三、三、8253的编程命令的编程命令读出命令读出命令1)发出锁存命令,使当前计数值锁存在)发出锁存命令,使当前计数值锁存在OL中中2)读)读OL,获得当前计数值,获得当前计数值例:设三个计数器的例:设三个计数器的CR/OL端口地址为端口地址为70H、71H、72H,控制,控制寄存器端口地址寄存器端口地址73H。读出计数器。读出计数器0的当前计数值,放在的当前计数值,放在BX中中MOV AL, 0HOUT 73H, ALIN AL
14、, 70HMOV BL, ALIN AL, 70HMOV BH, AL四、四、8253的工作模式的工作模式工作模式决定以下内容:工作模式决定以下内容:1)门控信号的影响)门控信号的影响高电平允许,当高电平允许,当GATE=0,即使出现,即使出现CLK,也不计数,也不计数模式模式0,2,3,4上升沿允许(上升沿触发)上升沿允许(上升沿触发)模式模式1,52)OUT信号的状态信号的状态写入控制字后,写入控制字后, OUT的状态的状态计数过程中,计数过程中, OUT的状态的状态计数终了,计数终了, OUT的状态的状态3)计数操作可否重复)计数操作可否重复不可重复不可重复模式模式0,4自动重复自动重复
15、模式模式2,3条件重复条件重复模式模式1,5四、四、8253的工作模式的工作模式六种工作模式六种工作模式P. 230计数初值写入初值寄存器后,要经过一个计数初值写入初值寄存器后,要经过一个CLK输入后才开始计数输入后才开始计数(或,经过一个(或,经过一个CLK后,后,计数初值才到达计数执行部件计数初值才到达计数执行部件)计数器在计数器在CLK的下降沿使计数值减的下降沿使计数值减1四、四、8253的工作模式的工作模式方式方式0:计数初值写入计数初值写入CR后,后,OUT由由0到到1跳变出现在跳变出现在n+1个时钟脉冲之个时钟脉冲之后后延迟时间延迟时间TD=(n+1)TCLK方式方式1:单脉冲宽度
16、单脉冲宽度T=n TCLK方式方式2:对输入端对输入端n个时钟脉冲,在输出端仅出现一个时钟脉冲个时钟脉冲,在输出端仅出现一个时钟脉冲N分频计数器分频计数器四、四、8253的工作模式的工作模式方式方式3:例:计数器工作模式例:计数器工作模式3,计数器初值,计数器初值15,时钟脉冲频率为,时钟脉冲频率为2MHz,确定,确定OUT端输出方波的特性。端输出方波的特性。解:解:TCLK=1/2MHz=500ns计数器初值计数器初值15为奇数,输出分频波高电平宽度为奇数,输出分频波高电平宽度 TCLK(N+1)/2=4 s输出分频波低电平宽度输出分频波低电平宽度 TCLK(N-1)/2=3.5 s方式方式
17、4、5:触发后触发后n+1个时钟脉冲之后输出端产生选通脉冲信号个时钟脉冲之后输出端产生选通脉冲信号四、四、8253的工作模式的工作模式例:计数器例:计数器0工作模式工作模式4,初始化计数器,初始化计数器,使装入计数器使装入计数器10 s后产后产生选通信号生选通信号(设时钟频率设时钟频率2MHz,8253端口地址为端口地址为50H53H)。解:解:n+1=T/ TCLK=10/0.5=20 n=19=13HMOV AL, 18HOUT 53H, ALMOV AL, 13HOUT 50H, AL五、五、8253的应用的应用1. PC机中机中8253的应用的应用计数器计数器0:向系统日历时钟提供定时
18、中断:向系统日历时钟提供定时中断模式模式3,控制字,控制字36H,计数器初始值,计数器初始值0计数器计数器1:动态:动态RAM刷新刷新模式模式2,控制字,控制字54H,计数器初始值,计数器初始值18(12H)计数器计数器2:控制扬声器发声:控制扬声器发声模式模式3,控制字,控制字B6H,计数器初始值,计数器初始值1331(533H)PC机中,机中,8253的端口地址为的端口地址为40H43H五、五、8253的应用的应用2. 扬声器控制扬声器控制设计一个程序,使扬声器发出设计一个程序,使扬声器发出600Hz频率的声音,按下任意键频率的声音,按下任意键声音停止声音停止PC机的发声系统以计数器机的发
19、声系统以计数器2为核心。为核心。CLK2的输入频率的输入频率1.19MHz,改变计数器初值可以由改变计数器初值可以由OUT2得到不同频率的方波输出得到不同频率的方波输出对于对于600Hz,计数初值,计数初值1.19MHz/600Hz=1938发声系统受发声系统受8255芯片芯片B口的两个输出端线口的两个输出端线PB0、PB1的控制的控制PB0为为1,使,使GATE2为为1,计数器,计数器2能正常计数能正常计数PB1为为1,打开输出控制门,打开输出控制门五、五、8253的应用的应用2. 扬声器控制扬声器控制CODE SEGMENT ASSUME CS:CODESTART: IN AL, 61H
20、OR AL, 03H OUT 61H, AL MOVAX, 1983 OUT 42H, AL MOVAL, AH OUT 42, AL MOVAH, 01H INT 21H INAl, 61H AND AL, 0FCH OUT 61H, AL MOVAH, 4CH INT 21HCODE ENDS END START五、五、8253的应用的应用3. 以以2MHz输入输入8253,实现每,实现每5秒定时中断(设秒定时中断(设8253端口地址端口地址40H43H)分析:分析:8253最大初值最大初值65536,CLK=2MHz可实现最大时间间隔可实现最大时间间隔65536/(2 106)=32.7
21、69ms所以需要两个计数器串联,一个计数器的输出作为另一个计数所以需要两个计数器串联,一个计数器的输出作为另一个计数器的输入器的输入五、五、8253的应用的应用计数器计数器1:模式:模式2,OUT1每每5ms输出一个脉冲输出一个脉冲初值初值(2 106)/(1/0.005)=10000计数器计数器0:模式:模式2,OUT0每每5s输出一个脉冲输出一个脉冲初值初值(1/0.005)/(1/5)=1000OUT0GATE0CLK0OUT1GATE1CLK1+5V+5V2MHz每每5秒产生秒产生一个脉冲一个脉冲五、五、8253的应用的应用程序:程序:MOV AL, 74HOUT 43H, ALMOV
22、 AX, 10000OUT 41H, ALMOV AL, AHOUT 41H, ALMOV AL, 74H MOV AL, 34HOUT 43H, ALMOV AX, 1000OUT 40H, ALMOV AL, AHOUT 40H, AL作业作业1.试述试述CPU与外设交换数据的方式及其特点与外设交换数据的方式及其特点2.设设8253三个计数器的三个计数器的CR/OL端口地址为端口地址为70H、71H、72H,控,控制寄存器端口地址制寄存器端口地址73H。编写程序片段,使:。编写程序片段,使:计数器计数器0,工作模式,工作模式1,使用,使用16位,初值为位,初值为1234,BCD计数计数计数
23、器计数器1,工作模式,工作模式4,使用低,使用低8位,初值为位,初值为100,二进制计数,二进制计数计数器计数器2,工作模式,工作模式2,使用,使用16位,初值为位,初值为65536,二进制计数,二进制计数3.设设8253的端口地址同的端口地址同2,编写程序片段,读出计数器,编写程序片段,读出计数器2的内容,的内容,并把读出的数据装入寄存器并把读出的数据装入寄存器AX.4.设计数器的时钟输入频率为设计数器的时钟输入频率为1.91MHz,为产生,为产生25KHZ的的 方波方波输出信号,应向计数器装入的计数初值为多少?输出信号,应向计数器装入的计数初值为多少?5.音符音符1、2、3、4、5、6、7的频率分别为的频率分别为350、393、441、467、525、589、661,编写一个程序,使用户按下,编写一个程序,使用户按下17键时扬声器发键时扬声器发出相应的音符,按下其他键退出程序。出相应的音符,按下其他键退出程序。结束语结束语谢谢大家聆听!谢谢大家聆听!38