




免费预览已结束,剩余40页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,8237a的地址扩展,8237a16条地址线 808620条 8028624条 38632条 扩展方法增加页地址寄存器 dma传送时的高位地址由“页面寄存器”提供,页面寄存器由cpu的输出指令实现写入 dmac1的通道0通道3:8237a提供系统a0a15低16位地址,页面寄存器输出系统a16a23高8位地址 dmac2的通道5通道7:8237a提供系统a1a16的16位地址,而系统a0被强迫为逻辑0,页面寄存器仅输出高7位地址a17a23,2,例,试初始化dma通道2为写传送,用于将软盘一个扇区的数据(512byte)传送到内存中 入口条件:es:bx=缓冲区首地址 initdma2 proc mov al,04h ;命令字 out 08h,al ;08h 命令寄存器端口 mov al,46h ;方式字 out 0bh,al ;0bh 方式寄存器端口 此时dl为页地址,bx为基地址,3,out 0ch,al ;0ch 先/后触发器 ;软件命令,al为任意值 mov al,bl ;写基地址低8位 out 04h,al ;04h 写ch2的基地址和当前 mov al,bh ;地址寄存器 out 04h,al mov al,dl ;写页地址寄存器 out 81h,al mov al,0ffh ;写字节数 out 05h,al ;05h 写ch2的基字节数和当 mov al,01h ;前字节数寄存器,4,out 05h,al mov al,02h ;单通道屏蔽字 out 0ah,al ;去除ch2的屏蔽 mov al,10h out 08h,al ;重写命令字,开dma ret initdma2 endp,5,命令字,命令字:0000 0100b=04h,6,方式字,方式字:0100 0110b=46h,7,8237a各寄存器对应的端口地址,第五章 定时器/计数器接口,intel8253,9,5.1 概述,计数器 记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲的个数,进而获知外设的某种状态 定时器 由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔,10,5.1 概述,实现定时/计数的三种方法 1、软件方法 cpu执行每条指令所需时间是固定的,通过编制一个延时程序段让微处理器执行, 可得到定时的时间。这种方法通用性和灵活性好,但占用cpu时间。 2、不可编程的硬件方法 采用分频器、单稳电路或简易定时电路控制定时时间,例如555定时电路,这种方法不占用cpu时间,但通用性、灵活性差。 3、可编程计数器/定时器方法 软件硬件相结合,用可编程定时器芯片构成定时电路,可由软件设定定时与计数功能,设定后与cpu并行工作,不占用cpu时间,使用灵活。,11,5.2 8253可编程定时/计数器,一、8253的特性 8253采用+5v单一电源,24引脚dip封装 (1)片内具有3个独立的16位计数通道 (2)计数频率(clk时钟频率)为02.6mhz (3)每个通道独立定时或计数,可以按二进制或bcd计数 (4)每个通道可编程设定6种不同的工作方式 (5)可由软件或硬件控制开始计数或停止计数 (6)所有输入/输出引脚与ttl兼容,12,8253,13,二、8253的内部结构,14,二、8253的内部结构,数据总线缓冲器 8位双向三态的缓冲器,可直接挂在数据总线上。 1.可以向控制寄存器写入控制字,向计数器写入计数初值 2.可由cpu通过该缓冲器读取计数器的当前计数值,15,二、8253的内部结构,读/写控制逻辑 功能: 1.接收来自cpu的控制信号,包括读信号、写信号、片选信号和芯片内部寄存器的寻址信号a1、a0, 2.8253各计数器的读/写操作,16,二、8253的内部结构,控制字寄存器 接收来自cpu的控制字,并由控制字d7、d6位的编码决定该控制字写入哪一个计数器的控制寄存器中,17,8253的控制字,在8254中是锁存命令特征位,此时d3-d0无效,低8位自动填0,最小0001h 最大0000h,最小1 最大104 若初值为20d,直接写20h就可以了,18,每个计数器通道的结构,计数初值存于预置寄存器;,输出锁存器用于写入锁存命令时, 锁定当前计数值,在计数过程中, 减计数器的值不断递减, 而预置寄存器中的预置不变。,19,三、8253的引脚,clk0,1,2,时钟脉冲输入端。 用于输入定时脉冲或计数脉冲信号。 clk可以是系统时钟脉冲,也可以由其他脉冲源提供,20,三、8253的引脚,out0,1,2,,计数输出端。 在不同方式的计数过程中,out引脚上输出相应的信号,21,三、8253的引脚,gate0,1,2,门控输入端。 用于外部控制计数器的启动和停止计数的操作。 两个或两个以上计数器连用时,可用此信号来同步,22,四、8253的工作方式,intel8253的每个计数通道都有6种工作方式。这6种工作方式主要有五点不同: 1)启动方式不同; 2)输出波形不同; 3)门控信号gate对计数过程的影响不同; 4)在计数过程中重新写入计数初值对计数过程的影响不同; 5)计数结束后,计数器是否恢复计数初值并自动重复计数不同。,23,1、方式 0 (计数结束输出高电平),写入控制字,out端立即变为低电平 计数初值装入该计数器后,计数开始。软件启动 在整个计数过程中,out保持低电平,当计数器减为0时,out输出高电平。 计数器只计一遍不重复计数 计数过程中,gate端应保持高电平 计数过程中可以随时修改初值:装入计数值为8位时,立即开始计数;装入16位计数值时,在写入第一个字节后停止计数,等第二个字节写入后开始新的计数。,24,2、方式1(可编程单拍脉冲),写入控制字,out端为高电平 装入初值后,在gate信号的上升沿后的下一个clk脉冲的下降沿开始计数,out变为低电平 在整个计数过程中,out保持低电平 当计数器减为0时,out变为高电平,输出一个单脉冲 若gate信号再由低变高,可再产生一个单脉冲。可多次触发计数 gate上升沿触发,计数值可重复使用。硬件启动,可重复计数,25,3、方式2(分频器),写入控制字,输出变高 装入初值,开始计数软件启动 由gate信号控制,若gate信号为0时,暂停计数,当变为高电平的下一个clk脉冲又开始重新计数硬件启动 计数过程中,cpu可随时改变计数值,但下次计数才按新的计数值计数 8253相当于一个分频脉冲产生器,若计数值为n,则每输入n个clk脉冲,输出一个脉冲,脉冲宽度等于clk周期。,26,4、方式3(方波发生器),cpu写入控制字后out变高 写入计数值后,若gate=1则自动开始计数软件启动 gate可以控制计数,若gate=0暂停计数,gate=1允许计数硬件启动 计数过程中,新装入值不影响原计数过程。 前 n/2或(n+1)/2 个clk,out为高,后n/2或(n-1)/2 个clk, out为低。 输出周期性方波,若计数值为n,则输出的方波周期是nclk周期。 重复计数,27,方式3的应用,计数器0:方式3,计数值:65536,输出频率为1.19318mhz6553618.206hz的方波,门控为常启状态,这个方波信号不断产生。 out0端接8259a的irq0,用作中断请求信号 每秒产生18.206次中断请求,或说每隔55ms(54.925493ms)申请一次中断 dos系统利用计数器0的这个特点,通过08号中断服务程序实现了日时钟计时功能,28,计数工作方式3 计数值0=65536,计数工作方式2 计数值18,29,5、方式4(软件触发选通),写入控制字,out端为高电平 写入计数初值后立即开始计数软件启动 计数器计到0时,out变为低电平,经过一个clk脉冲周期,out又变高,计数器停止计数 只有写入新计数值才能开始新的计数不自动重复计数 要求gate一直为高电平,若为低则暂停,30,6、方式5(硬件触发选通),写入控制字,out变高 写入计数初值 由gate信号的上升沿触发开始计数。计到0后,out变为低电平。经一个clk周期后,out又变为高电平,并停止计数 等下次gate触发才能再计数不自动重复计数 计数初值可多次使用,31,6种工作方式对比,32,8253-工作方式与门控信号的关系,33,5.3 8253应用实例,先初始化,步骤如下: 1.写入方式控制字,以选择计数通道,确定其工作方式。 2.写入计数初值到对应的计数通道中,确定计数定时时间。 几点说明: 先写控制字,后写计数初始值 每个计数通道的控制字都要写入同一控制口,计数初始值则写入指定计数通道对应的端口 对3个计数通道的初始化编程没有先后顺序,但对某一通道若需写初值的高位,则必须按照先写低位后些高位的顺序,34,计数初值的计算,8253用于定时: 定时时间时钟脉冲周期tc计数初值n 8253用于计数/分频 时钟脉冲频率tc=输出脉冲频率计数初值n 例如: 某微机中8253的计数脉冲频率是1mhz,则时钟脉冲周期tc1/1mhz1us,若需定时1ms,则设置的计数器初值 n1000,35,例1 初始化,某8253各计数通道地址分别为0f8h、0fah、0fch,控制字端口0feh,计数通道0工作于方式1,按照二进制计数,计数 初始值为500,试对其初始化编程,mov al, 32h out 0feh,al mov ax, 500 out 0f8h,al mov al, ah out 0f8h,al,36,例2 组合成32位计数器,37,例3 分频器设计,某微机系统中8253的端口地址为250h253h,如何用该定时器将1mhz的脉冲变为1hz的脉冲?,38,例3 分频器设计,mov al, 27h ;计数器0控制字,写mb,方式3,bcd mov dx, 253h out dx, al mov al, 67h ;计数器 1控制字,写mb,方式3,bcd out dx, al mov dx, 0250h mov al, 02h ;计数器 0时间常数(bcd数高8位) out dx, al mov al, 50h ;计数器 1时间常数(bcd数高8位) mov dx, 0251h out dx, al,00 10 011 1,01 10 011 1,0 2 0 0=200,5 0 0 0=5000,39,例4 定时中断控制,某微机应用系统中,系统提供一个频率为10khz的时钟信号,要求每隔10ms完成一次扫描键盘的工作。为了提高cpu的工作效率,采用定时中断的方式进行键盘的扫描。 分析: 在该系统中,采用8253定时器的通道0来实现规定的要求。将8253芯片的clk0接到系统的10khz时钟上,out0输出接到cpu的中断请求线上,8253的端口地址为10h13h。,40,例4 定时中断控制,(1)工作方式的选择 由于该系统每隔10ms完成一次动作,则扫描键盘的动作频率为100hz,可选用方式2来实现。 当8253定时器工作在方式2时,在写入控制字与计数初值后,定时器就启动工作,每到10ms时间,即计数器减到1时,输出端0ut0输出一个clk周期的低电平,向cpu申请中断,完成键盘扫描,同时按原设定值重新开始计数,从而实现计数值的自动重装。,41,例4 定时中断控制,(2)确定计数初值 由给定可知,fclk0=10khz,则tclk0=0.1ms,所以计数初值为: n= tout0/ tclk0=10ms/0.1ms=100,即64h。 (3)初始化编程 根据以上要求,可确定8253通道0的方式控制字为00010100b,即14h。 初始化程序段如下: mov al,14h out l3h,al mov al,64h out 10h,al,42,例5 扬声器控制,xt机使用一片8253。3个计数通道分别用于日时钟计时、dram刷新定时和扬声器发声。 计数器的计数通道地址分别为40h、41h、42h,方式控制字的端口地址为43h。 三个计数器通道的时钟输入clk均从intel8284a时钟发生器pclk端经二分频得到,频率为1.19318mhz,周期838ns。 使计数器2工作在方式3,作为方波发生器输出约1khz的方波。(896.5hz)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版司法局《移送执行申请书》民事类法律文书(空白模板)
- 临近地下室施工方案
- 深沟槽全是石方施工方案
- 咨询年度方案范文
- 轻质内外墙施工方案
- 寻宝记漫画营销推广方案
- 老旧建筑翻新加固方案设计
- 小型酒店客房营销方案
- 咨询目标与咨询方案
- 装修施工方案怎么编制的
- 电路检查记录表
- 设计交底记录表
- 2023年安徽省公安机关警务辅助人员条例训练题库211题及答案
- 华为质量管理评估模型(31个评估要素和评估报告)
- 模具凸凹模工艺文件工序卡
- 麻醉科降低围术期低体温PDCA
- GB 42590-2023民用无人驾驶航空器系统安全要求
- 《精神科护理学》练习题及答案
- 护士执业注册体检表
- 直升机结构与系统版
- 新生儿疾病诊疗规范诊疗指南诊疗常规2022版
评论
0/150
提交评论