问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

微机的题目:求“8254初始化及其应用”的解答!谢谢!

发布网友 发布时间:2022-04-23 12:35

我来回答

2个回答

热心网友 时间:2023-10-13 14:52

7.3.2 8254工作方式及其初始化编程
http://www.tyut.e.cn/kecheng1/2008/site04/courseware/chapter7/7.3.2.htm

7.3.2 8254工作方式及其初始化编程

1.8254工作方式
  8254的每个计数器有六种工作方式,同一芯片中的三个计数器可以通过初始化分别设定为不同的工作方式,但是不论哪种工作方式都应遵循以下规则:

  ① 控制字写入控制寄存器后,控制逻辑电路复位,输出信号OUT进入初始状态(高电平或低电平)。

  ② 计数初始值写入CR后,经过一个时钟周期,送入CE。

  ③ 通常在时钟脉冲CLK的上升沿对门控信号GATE采样。在不同工作方式下,对门控信号的触发方式有不同的要求。

  ④ 在时钟脉冲CLK的下降沿,计数器减“1”计数。

(1)方式0:计数结束产生中断(interrupt on terminal count)

  方式0时序如图7.21所示。   图7.21 方式0时序

  在写入控制字CW(control word)后,OUT引脚初始电平为低电平,写入计数初始值N之后的第一个CLK的下降沿将N装入计数执行部件,待下一个CLK的下降沿到来且门控信号GATE为高电平时,开始启动减“1”计数,随后每一个CLK的下降沿,计数器减1。在计数过程中,OUT引脚一直保持低电平,直到计数为“0”时,OUT引脚输出由低电平变为高电平,并且保持高电平。

  方式0的特点:计数初始值无自动装入功能,若要继续计数,则需要重新写入计数初始值。门控信号GATE用来控制CE,当GATE为高电平时,允许计数;当GATE为低电平时,禁止计数。当GATE重新为高电平时,计数器接着当前的计数值继续计数。计数期间给计数器装入新值,则会在写入计数初始值后重新开始计数过程。

  由于方式0在计数结束后,OUT引脚输出一个由低电平到高电平的跳变信号,因此可以用它作为计数结束的中断请求信号。

(2)方式1:可重复触发的单稳态触发器(hardware retriggerable one shot)

  方式1时序如图7.22所示,    图7.22 方式1时序

  在写入控制字CW后,OUT引脚初始电平为高,写入计数值N后,计数器并不开始计数,直到GATE上升沿触发之后的第一个CLK的下降沿,将N装入CE,待下一个CLK的下降沿开始计数,OUT引脚由高电平变为低电平。在整个计数过程中,OUT引脚都保持低电平,直到计数为“0”时变为高电平。一个计数过程结束后,OUT引脚输出一个宽度为N倍时钟周期的负脉冲,可作为单稳态触发器的输入信号。

  方式1的特点:硬件启动计数,即由门控信号GATE的上升沿触发计数。在计数过程中,CPU可改变计数值,但是对计数过程没有影响。计数为“0”,OUT引脚输出高电平,若再次触发,则计数器将按新输入的计数初始值进行计数。

(3)方式2:分频器(rate generator)

  方式2时序如图7.23所示,     图7.23 方式2时序

  控制字CW写入之后,OUT引脚初始电平为高,在写入计数值N之后第一个CLK的下降沿将N装入计数执行单元CE,待下一个CLK的下降沿到来且门控信号GATE为高电平时,启动计数。在计数过程中,OUT引脚始终保持高电平,直到CE减到“1”时,OUT引脚变为低电平,维持一个时钟周期后,又恢复为高电平,同时自动将计数值N加载到CE,重新启动计数,形成循环计数过程,OUT引脚连续输出负脉冲。

  方式2的特点:计数初始值有自动装入功能,不用重新写入计数值,计数过程可由GATE信号控制。当GATE为低电平时,暂停计数;在GATE变为高电平后的下一个CLK脉冲使计数器恢复计数初始值,重新开始计数。

(4)方式3:方波发生器(square wave mode)

  方式3时序如图7.24所示,     图7.24 方式3时序

  工作原理与方式2类似,有自动重复计数功能,但OUT引脚输出的波形不同。当计数值N为偶数时,OUT输出对称的方波信号,正负脉冲的宽度为个时钟周期;当计数值N为奇数时,OUT输出不对称的方波信号,正脉冲宽度为个时钟周期,负脉冲宽度为个时钟周期。

(5)方式4:软件触发计数(software triggered strobe)

  方式4时序如图7.25所示,     图7.25 方式4时序

  写入控制字CW后,OUT初始电平为高,在写入计数初始值N之后的第一个CLK的下降沿将N装入计数执行单元CE,待下一个计数脉冲信号CLK到来且门控信号GATE为高电平时(即软件启动),开始计数。当计数为“0”时,OUT引脚由高电平变为低电平,维持一个时钟周期,OUT引脚由低电平变为高电平。一次计数过程结束后,OUT引脚输出宽度为一个时钟周期的负脉冲信号.

  方式4的特点:无自动重复计数功能,只有在输入新的计数值后,才能开始新的计数。若设置的计数值为N,则在写入计数值N个时钟脉冲之后,才使OUT引脚产生一个负脉冲信号。

(6)方式5:硬件触发计数(hardware triggered strobe)

  方式5时序如图7.26所示,     图7.26 方式5时序

  写入控制字CW后,OUT引脚初始电平为高,在写入计数值N后,计数器并不开始计数,只有GATE信号出现由低到高的上升沿(即硬件启动)之后的第一个CLK的下降沿,将N装入计数执行单元CE,待下一个CLK的下降沿才开始计数。当计数为“0”后,OUT引脚由高电平变为低电平,维持一个时钟周期,OUT引脚由低电平变为高电平。一次计数过程结束后,OUT引脚输出宽度为一个时钟周期的负脉冲信号。

  方式5输出波形与方式4相同。两种工作方式的区别是:方式4为软件启动计数,即GATE=1,写入计数初始值时启动计数;方式5为硬件启动计数,即先写入计数初始值,由GATE的上升沿触发,启动计数。

  在设置8254的工作方式时,需要注意上述六种工作方式的一些特点:方式0, 1, 4, 5的计数初始值无自动加载功能,当一次计数结束后,若要继续计数,需要再次编程写入计数值;方式2和方式3的计数初始值有自动加载功能,只要写入一次计数值,就可以连续进行重复计数。方式2, 4, 5的输出波形虽然相同,即都是宽度为一个时钟周期的负脉冲,但方式2可以连续自动工作,方式4由软件触发启动,方式5由硬件触发启动。

8254的六种工作方式的特点及其功能见表7.5。

      表7.5 8254的六种工作方式的特点及其功能

2.8254初始化编程
  8254的每个计数器都必须在写入控制字和计数初始值后,才能启动工作,因此,在初始化编程时,必须通过写入控制字来设定计数器的工作方式和写入计数初始值。

(1)控制字的格式

8254控制字的格式如图7.27所示。

        图7.27 8254控制字的格式

  D0:计数初始值计数方式选择。D0=1,BCD码计数;D0=0,二进制数计数。

  8254有BCD码和二进制数两种计数方式。若采用二进制数计数(16位),计数值的范围为0000~FFFFH,最大值为216,即十进制数的65536,表示为0000H;若采用BCD码计数(四位十进制数),计数值的范围为0000~9999,最大值为104,即十进制数的10000,表示为0000。

  D3D2D1:工作方式选择位。因为M2M1M0的二进制编码有八种(即000~111),而8254有六种工作方式,所以,方式2和方式3的M2位可设为任意值0或者1。

  D5D4:读/写计数器控制。计数值的读出或写入可按字节或字两种方式进行操作,用RW1和RW0的编码01, 10, 11来控制读出或写入计数值的顺序和字节数。若按字节读/写时,可选择低8位或高8位;若按字读写时,分为两步完成,即先读/写低8位后读/写高8位。

  D7D6:计数器选择。D7D6的四个状态分别对应选择计数器0, 1和2,三个计数器的控制寄存器使用相同的端口地址。

  需要注意的是:CPU对8254的某个计数器进行读出操作时,有两种方法。一种方法是先由控制字的RW1和RW0设定读出顺序与格式,然后由输入(IN)指令对所选计数器进行读出操作。采用这种方法时,为了确保被读出的当前计数值稳定,可利用门控信号GATE或者阻止时钟输入的方法,暂时禁止计数器操作。另一种方法是先给8254发锁存命令(即设定RW1和RW0为00),然后按照先读取低字节、后读取高字节的顺序将当前计数值读出。当8254接收到锁存命令后,将当前的计数值锁存到计数锁存寄存器中,供CPU读取。

(2)8254的读回命令

  8254的读回命令可以将三个计数器的计数值和状态锁存,并向CPU返回一个状态字,如图7.28所示。

        图7.28 8254的读回命令

  D7=1, D6=1时,为读回命令。

  D5=0为锁存计数值,以便CPU读取当前计数值。

  D4=0为锁存状态信息。

  D3~D1是计数器选择位,一次可以锁存一个计数器、两个计数器或者三个计数器中的计数值或状态信息。当某一计数器的计数值或状态信息被CPU读取后,锁存失效。

  读回命令写入控制端口,状态信息和计数值都通过计数器端口读取。如果使读回命令的D5和D4位都为0,即状态信息和计数值都要读回,读取的顺序是:先读取状态信息,后读取计数值。

(3)计数初始值的设定

  计数初始值(或称计数常数)可根据8254的实际应用和工作方式来设定,一般有如下几种情况:

  ① 作为发生器,应选择方式2或方式3。它实际上是一个分频器,因此计数常数就是分频系数,即:分频系数(fi为输入CLK频率,f0为OUT输出频率)。

  ② 作为定时器,计数脉冲CLK通常来自系统内部时钟,计数常数就是定时系数,即:定时系数(T为定时时间,tclk为时钟周期,fclk为时钟频率)。

  ③ 作为计数器,计数脉冲通常来自系统外部,因此,计数常数为外部事件的脉冲个数。

(4)8254初始化编程

  在编写初始化程序时,由于8254的三个计数器的控制字都是独立的,而他们的计数常数都有各自的地址单元,因此初始化编程顺序比较灵活,可以写入一个计数器的控制字和计数常数之后,再写入另一个计数器的控制字和计数常数,也可以把所有计数器的控制字都写入之后,再写入计数常数。需要注意的是:计数器的控制字必须在其计数常数之前写入,计数常数的低8位须在高8位之前写入。下面通过示例说明8254的初始化编程方法。

【例7.6】 某系统使用一片8254,要求完成如下功能:

  ① 计数器0对外部事件计数,记满100次向CPU发出中断请求;

  ② 计数器1产生频率为1kHz的方波信号,设输入时钟CLK1为2.5MHz;

  ③ 计数器2作为标准时钟,每秒向CPU发一次中断请求,输入时钟CLK2由OUT1提供。

  根据题意,确定相应通道的工作方式控制字及计数常数:

  计数器0的控制字为00010000B,即10H(方式0、二进制计数),计数常数为100。

  计数器1的控制字为01110110B,即76H(方式3、二进制计数)。

  计数常数为:=2.5MHz/1kHz=2500。

  计数器2的控制字为10110001B,即B1H(方式0、BCD计数)。

  计数常数为:=1s×1kHz=1000。

  设8254的端口地址为80H~83H,编制初始化程序如下:

  MOV AL, 10H     ; 计数器0控制字
  OUT 83H, AL     ; 写入控制端口
  MOV AL, 100     ; 计数常数100
  OUT 80, AL      ; 写入计数器0的低字节
  MOV AL, 76H     ; 计数器1控制字
  OUT 83H, AL     ; 写入控制端口
  MOV AX, 2500     ; 计数常数2500
  OUT 81H, AL     ; 写入计数器1低字节
  MOV AL, AH
  OUT 81H, A      ; 写入计数器1高字节
  MOV AL, 0B1H     ; 计数器2控制字
  OUT 83H, AL     ; 写入控制端口
  MOV AX, 1000H    ; 计数常数1000(BCD码为1000H)
  OUT 82H, AL     ; 写入计数器2低字节
  MOV AL, AH
  OUT 82H, AL     ; 写入计数器2高字节

热心网友 时间:2023-10-13 14:52

8254 的初始化
——————————————————————————
初始化分为两步:
向控制寄存器写入方式控制字,确定所要使用的计数器的工作方式;
向使用的计数器写入计数初值。

你的题目没有具体数值,所以进行自设。

设某微机系统中8254的端口地址为40H~43H,要求计数器0工作在方式0,计数初值为0DEH,按二进制计数;计数器1工作在方式2,计数初值为1000D,按BCD码计数。试写出初始化程序段。

初始化程序如下:
MOVAL,10H;写通道0控制字
OUT43H,AL
MOVAL,0DEH ;写通道0计数初值
OUT40H,AL
MOVAL,65H;写通道1控制字
OUT43H,AL
MOVAL,10H;写通道1计数初值
OUT41H,AL

8254 的应用
——————————————————————————
1. 8254控制扬声器
2. PWM脉宽调制
3. 电机转速测量

热心网友 时间:2023-10-13 14:52

7.3.2 8254工作方式及其初始化编程
http://www.tyut.e.cn/kecheng1/2008/site04/courseware/chapter7/7.3.2.htm

7.3.2 8254工作方式及其初始化编程

1.8254工作方式
  8254的每个计数器有六种工作方式,同一芯片中的三个计数器可以通过初始化分别设定为不同的工作方式,但是不论哪种工作方式都应遵循以下规则:

  ① 控制字写入控制寄存器后,控制逻辑电路复位,输出信号OUT进入初始状态(高电平或低电平)。

  ② 计数初始值写入CR后,经过一个时钟周期,送入CE。

  ③ 通常在时钟脉冲CLK的上升沿对门控信号GATE采样。在不同工作方式下,对门控信号的触发方式有不同的要求。

  ④ 在时钟脉冲CLK的下降沿,计数器减“1”计数。

(1)方式0:计数结束产生中断(interrupt on terminal count)

  方式0时序如图7.21所示。   图7.21 方式0时序

  在写入控制字CW(control word)后,OUT引脚初始电平为低电平,写入计数初始值N之后的第一个CLK的下降沿将N装入计数执行部件,待下一个CLK的下降沿到来且门控信号GATE为高电平时,开始启动减“1”计数,随后每一个CLK的下降沿,计数器减1。在计数过程中,OUT引脚一直保持低电平,直到计数为“0”时,OUT引脚输出由低电平变为高电平,并且保持高电平。

  方式0的特点:计数初始值无自动装入功能,若要继续计数,则需要重新写入计数初始值。门控信号GATE用来控制CE,当GATE为高电平时,允许计数;当GATE为低电平时,禁止计数。当GATE重新为高电平时,计数器接着当前的计数值继续计数。计数期间给计数器装入新值,则会在写入计数初始值后重新开始计数过程。

  由于方式0在计数结束后,OUT引脚输出一个由低电平到高电平的跳变信号,因此可以用它作为计数结束的中断请求信号。

(2)方式1:可重复触发的单稳态触发器(hardware retriggerable one shot)

  方式1时序如图7.22所示,    图7.22 方式1时序

  在写入控制字CW后,OUT引脚初始电平为高,写入计数值N后,计数器并不开始计数,直到GATE上升沿触发之后的第一个CLK的下降沿,将N装入CE,待下一个CLK的下降沿开始计数,OUT引脚由高电平变为低电平。在整个计数过程中,OUT引脚都保持低电平,直到计数为“0”时变为高电平。一个计数过程结束后,OUT引脚输出一个宽度为N倍时钟周期的负脉冲,可作为单稳态触发器的输入信号。

  方式1的特点:硬件启动计数,即由门控信号GATE的上升沿触发计数。在计数过程中,CPU可改变计数值,但是对计数过程没有影响。计数为“0”,OUT引脚输出高电平,若再次触发,则计数器将按新输入的计数初始值进行计数。

(3)方式2:分频器(rate generator)

  方式2时序如图7.23所示,     图7.23 方式2时序

  控制字CW写入之后,OUT引脚初始电平为高,在写入计数值N之后第一个CLK的下降沿将N装入计数执行单元CE,待下一个CLK的下降沿到来且门控信号GATE为高电平时,启动计数。在计数过程中,OUT引脚始终保持高电平,直到CE减到“1”时,OUT引脚变为低电平,维持一个时钟周期后,又恢复为高电平,同时自动将计数值N加载到CE,重新启动计数,形成循环计数过程,OUT引脚连续输出负脉冲。

  方式2的特点:计数初始值有自动装入功能,不用重新写入计数值,计数过程可由GATE信号控制。当GATE为低电平时,暂停计数;在GATE变为高电平后的下一个CLK脉冲使计数器恢复计数初始值,重新开始计数。

(4)方式3:方波发生器(square wave mode)

  方式3时序如图7.24所示,     图7.24 方式3时序

  工作原理与方式2类似,有自动重复计数功能,但OUT引脚输出的波形不同。当计数值N为偶数时,OUT输出对称的方波信号,正负脉冲的宽度为个时钟周期;当计数值N为奇数时,OUT输出不对称的方波信号,正脉冲宽度为个时钟周期,负脉冲宽度为个时钟周期。

(5)方式4:软件触发计数(software triggered strobe)

  方式4时序如图7.25所示,     图7.25 方式4时序

  写入控制字CW后,OUT初始电平为高,在写入计数初始值N之后的第一个CLK的下降沿将N装入计数执行单元CE,待下一个计数脉冲信号CLK到来且门控信号GATE为高电平时(即软件启动),开始计数。当计数为“0”时,OUT引脚由高电平变为低电平,维持一个时钟周期,OUT引脚由低电平变为高电平。一次计数过程结束后,OUT引脚输出宽度为一个时钟周期的负脉冲信号.

  方式4的特点:无自动重复计数功能,只有在输入新的计数值后,才能开始新的计数。若设置的计数值为N,则在写入计数值N个时钟脉冲之后,才使OUT引脚产生一个负脉冲信号。

(6)方式5:硬件触发计数(hardware triggered strobe)

  方式5时序如图7.26所示,     图7.26 方式5时序

  写入控制字CW后,OUT引脚初始电平为高,在写入计数值N后,计数器并不开始计数,只有GATE信号出现由低到高的上升沿(即硬件启动)之后的第一个CLK的下降沿,将N装入计数执行单元CE,待下一个CLK的下降沿才开始计数。当计数为“0”后,OUT引脚由高电平变为低电平,维持一个时钟周期,OUT引脚由低电平变为高电平。一次计数过程结束后,OUT引脚输出宽度为一个时钟周期的负脉冲信号。

  方式5输出波形与方式4相同。两种工作方式的区别是:方式4为软件启动计数,即GATE=1,写入计数初始值时启动计数;方式5为硬件启动计数,即先写入计数初始值,由GATE的上升沿触发,启动计数。

  在设置8254的工作方式时,需要注意上述六种工作方式的一些特点:方式0, 1, 4, 5的计数初始值无自动加载功能,当一次计数结束后,若要继续计数,需要再次编程写入计数值;方式2和方式3的计数初始值有自动加载功能,只要写入一次计数值,就可以连续进行重复计数。方式2, 4, 5的输出波形虽然相同,即都是宽度为一个时钟周期的负脉冲,但方式2可以连续自动工作,方式4由软件触发启动,方式5由硬件触发启动。

8254的六种工作方式的特点及其功能见表7.5。

      表7.5 8254的六种工作方式的特点及其功能

2.8254初始化编程
  8254的每个计数器都必须在写入控制字和计数初始值后,才能启动工作,因此,在初始化编程时,必须通过写入控制字来设定计数器的工作方式和写入计数初始值。

(1)控制字的格式

8254控制字的格式如图7.27所示。

        图7.27 8254控制字的格式

  D0:计数初始值计数方式选择。D0=1,BCD码计数;D0=0,二进制数计数。

  8254有BCD码和二进制数两种计数方式。若采用二进制数计数(16位),计数值的范围为0000~FFFFH,最大值为216,即十进制数的65536,表示为0000H;若采用BCD码计数(四位十进制数),计数值的范围为0000~9999,最大值为104,即十进制数的10000,表示为0000。

  D3D2D1:工作方式选择位。因为M2M1M0的二进制编码有八种(即000~111),而8254有六种工作方式,所以,方式2和方式3的M2位可设为任意值0或者1。

  D5D4:读/写计数器控制。计数值的读出或写入可按字节或字两种方式进行操作,用RW1和RW0的编码01, 10, 11来控制读出或写入计数值的顺序和字节数。若按字节读/写时,可选择低8位或高8位;若按字读写时,分为两步完成,即先读/写低8位后读/写高8位。

  D7D6:计数器选择。D7D6的四个状态分别对应选择计数器0, 1和2,三个计数器的控制寄存器使用相同的端口地址。

  需要注意的是:CPU对8254的某个计数器进行读出操作时,有两种方法。一种方法是先由控制字的RW1和RW0设定读出顺序与格式,然后由输入(IN)指令对所选计数器进行读出操作。采用这种方法时,为了确保被读出的当前计数值稳定,可利用门控信号GATE或者阻止时钟输入的方法,暂时禁止计数器操作。另一种方法是先给8254发锁存命令(即设定RW1和RW0为00),然后按照先读取低字节、后读取高字节的顺序将当前计数值读出。当8254接收到锁存命令后,将当前的计数值锁存到计数锁存寄存器中,供CPU读取。

(2)8254的读回命令

  8254的读回命令可以将三个计数器的计数值和状态锁存,并向CPU返回一个状态字,如图7.28所示。

        图7.28 8254的读回命令

  D7=1, D6=1时,为读回命令。

  D5=0为锁存计数值,以便CPU读取当前计数值。

  D4=0为锁存状态信息。

  D3~D1是计数器选择位,一次可以锁存一个计数器、两个计数器或者三个计数器中的计数值或状态信息。当某一计数器的计数值或状态信息被CPU读取后,锁存失效。

  读回命令写入控制端口,状态信息和计数值都通过计数器端口读取。如果使读回命令的D5和D4位都为0,即状态信息和计数值都要读回,读取的顺序是:先读取状态信息,后读取计数值。

(3)计数初始值的设定

  计数初始值(或称计数常数)可根据8254的实际应用和工作方式来设定,一般有如下几种情况:

  ① 作为发生器,应选择方式2或方式3。它实际上是一个分频器,因此计数常数就是分频系数,即:分频系数(fi为输入CLK频率,f0为OUT输出频率)。

  ② 作为定时器,计数脉冲CLK通常来自系统内部时钟,计数常数就是定时系数,即:定时系数(T为定时时间,tclk为时钟周期,fclk为时钟频率)。

  ③ 作为计数器,计数脉冲通常来自系统外部,因此,计数常数为外部事件的脉冲个数。

(4)8254初始化编程

  在编写初始化程序时,由于8254的三个计数器的控制字都是独立的,而他们的计数常数都有各自的地址单元,因此初始化编程顺序比较灵活,可以写入一个计数器的控制字和计数常数之后,再写入另一个计数器的控制字和计数常数,也可以把所有计数器的控制字都写入之后,再写入计数常数。需要注意的是:计数器的控制字必须在其计数常数之前写入,计数常数的低8位须在高8位之前写入。下面通过示例说明8254的初始化编程方法。

【例7.6】 某系统使用一片8254,要求完成如下功能:

  ① 计数器0对外部事件计数,记满100次向CPU发出中断请求;

  ② 计数器1产生频率为1kHz的方波信号,设输入时钟CLK1为2.5MHz;

  ③ 计数器2作为标准时钟,每秒向CPU发一次中断请求,输入时钟CLK2由OUT1提供。

  根据题意,确定相应通道的工作方式控制字及计数常数:

  计数器0的控制字为00010000B,即10H(方式0、二进制计数),计数常数为100。

  计数器1的控制字为01110110B,即76H(方式3、二进制计数)。

  计数常数为:=2.5MHz/1kHz=2500。

  计数器2的控制字为10110001B,即B1H(方式0、BCD计数)。

  计数常数为:=1s×1kHz=1000。

  设8254的端口地址为80H~83H,编制初始化程序如下:

  MOV AL, 10H     ; 计数器0控制字
  OUT 83H, AL     ; 写入控制端口
  MOV AL, 100     ; 计数常数100
  OUT 80, AL      ; 写入计数器0的低字节
  MOV AL, 76H     ; 计数器1控制字
  OUT 83H, AL     ; 写入控制端口
  MOV AX, 2500     ; 计数常数2500
  OUT 81H, AL     ; 写入计数器1低字节
  MOV AL, AH
  OUT 81H, A      ; 写入计数器1高字节
  MOV AL, 0B1H     ; 计数器2控制字
  OUT 83H, AL     ; 写入控制端口
  MOV AX, 1000H    ; 计数常数1000(BCD码为1000H)
  OUT 82H, AL     ; 写入计数器2低字节
  MOV AL, AH
  OUT 82H, AL     ; 写入计数器2高字节

热心网友 时间:2023-10-13 14:52

8254 的初始化
——————————————————————————
初始化分为两步:
向控制寄存器写入方式控制字,确定所要使用的计数器的工作方式;
向使用的计数器写入计数初值。

你的题目没有具体数值,所以进行自设。

设某微机系统中8254的端口地址为40H~43H,要求计数器0工作在方式0,计数初值为0DEH,按二进制计数;计数器1工作在方式2,计数初值为1000D,按BCD码计数。试写出初始化程序段。

初始化程序如下:
MOVAL,10H;写通道0控制字
OUT43H,AL
MOVAL,0DEH ;写通道0计数初值
OUT40H,AL
MOVAL,65H;写通道1控制字
OUT43H,AL
MOVAL,10H;写通道1计数初值
OUT41H,AL

8254 的应用
——————————————————————————
1. 8254控制扬声器
2. PWM脉宽调制
3. 电机转速测量
微机的题目:求“8254初始化及其应用”的解答!谢谢!

(4)8254初始化编程 在编写初始化程序时,由于8254的三个计数器的控制字都是独立的,而他们的计数常数都有各自的地址单元,因此初始化编程顺序比较灵活,可以写入一个计数器的控制字和计数常数之后,再写入另一个计数器的控制字和计数常数,也可以把所有计数器的控制字都写入之后,再写入计数常数。需要注意的是:计数器的...

编码器的工作原理是怎样的?

光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。光电编码器每转输出60(我们用老板没有说)个脉冲,五线制。其中两根为电源线,三根为脉冲线(A相、B相、Z)。电源的工作电压为 (+5~+24V)直流电源。光...

电子钟课程设计(微机原理)急需!!!

MOV DX,MY8254_MODE ;8254初始化 MOV AL,15H ; 00010101:计数器0,只读低八位,方式2分频器,十进制 OUT DX,AL MOV DX,MY8254_COUNT0 MOV AL,0 OUT DX,AL MOV DX,MY8255_MODE ;8255初始化 MOV AL,81H ;10000001:A口:方式0,输出,B口:方式 0 ,;输出,C口:低四位输入,高四位输出 OUT DX...

有关微机原理的3道题目,,,

1、最多只用过2级级联,三片的话最多有22个中断 2、这题是要问总线周期的流程吗???这要看是读周期还是写周期,四个时钟周期T1\T2\T3\T4,以读周期为例:T1时CPU通过20位地址总线发送地址,指出要读取的外设的端口地址,锁存器锁存地址,T2输出段寄存器状态信息和中断允许情况,准备从外设读取...

8253a的初始化编程 8254初始化编程 8255初始化步骤 8254初始化程序怎么写 8254初始化编程命令字 8255a初始化程序怎么写 8253初始化 8259a初始化程序 8250初始化程序
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么叫做项目融资贷款 小区物业要买公众责任险,要向物业公司打报告,报告范文怎么写_百度知 ... ...证被亲戚拿去做银行抵押贷款了,当初我签字担保人,现在怎么处理_百度... ...现在他一直没还款银行要起诉他了,他有房产证等他能用房子抵压吗... 破坏小区围墙进入小区偷盗公众责任险要赔付吗 2023-08-05 如何基于 uni-push2.0 实现全平台推送 ...叫我拿房产证复印件去银行帮他做担保人,然后还说每个月给我二干四... 洗脸扑会过期吗 2023-08-15 如何在 uni-app 中检测 APP 端是否有通知权限 减肥期间怎么饮食饿了怎么办 GPIO初始化奇怪的事 求psp10005.50-D3系统的全部设置 包皮包茎破裂,流血了,我该怎么办 三凌PLC M8002如何使用 包皮下裂口怎么办 电脑的d3键亮一下后就黑屏。 如何配置UEFI/GPT 包皮与龟头连接处破裂,怎么办 魔兽世界wow卡在正在初始化不动呀,好久了都不动怎么解决呢?? 包皮内侧破皮怎么办? 想修改bios的TPM,但是忘记surface uefi密码无法进入bios,求教怎么找回密码 PSP系统版本5.50GEN-D3 如何降级到5.05GEN-D3 l给inux中安装软件时,挂载的方式只能用于rpm格式的软件吗?其他格式怎 ... 本人初次使用HT1621B驱动4位8段LCD,请问高手用单片机怎样控制?其中的D0~D3,A0~A5各表示意思?谢谢 圣罗兰包皮包都磨破皮了该怎么修复? 之前用*连的一个wifi结果有一天就连不上了 但是系统中那个wufi还是在的 *怎么都搜 鬼泣4怎么就玩不了了..什么d3derr... 开机显SurfaceUEFI界面怎么办? 男人包皮破皮了很痛,怎么办 主板d3和d4什么意思,简单描述,谢谢 绝对高分求解!51单片机如何初始化DTMF的芯片MT8888和如何设置各种模式? 安装帝国时代3后出现 缺少d3-d9.dll文件 牙线是什么?有何作用? 什么是牙线? 水牙线是什么东东?怎么用呀? 牙线是什么 牙线有哪些类型 水牙线等于牙线? 什么叫牙线牙线怎么用? 什么叫牙线,那里能找到 水牙线与牙线有什么区别?哪个清洁效果好? 比牙签还牛的东西叫什么还有一根线? 牙线棒的介绍 牙签和牙线到底有什么区别,为何牙线这么贵? 牙线的组成 牙线价格及种类、优点介绍 牙线的选购技巧 牙线有哪些种类 牙签还是牙线知乎 牙线棒是一次性的还是可以多次使用 中国明星死于新冠名单有哪些? 结石姐JessieJ感染新冠,英国还有哪些艺人感染过新冠肺炎?