当前位置:文档之家› 8253问答题

8253问答题

1、8253可编程计数器有两种启动方式,在软件启动时,要使计数正常进行,GATE端必须为()电平,如果是硬件启动呢?答:8253可编程计数器有两种启动方式,在软件启动时,要使计数正常进行,GATE端必须为(高)电平;如果是硬件启动,则要在写入计数初值后使GA TE端出现一个由低到高的正跳变,以启动计数。

2、某个计算机应用系统采用8253的计数器0作频率发生器,输出频率为500Hz;用计数器1产生1000Hz的连续方波信号,输入8253的时钟频率为1.19MHz。

试问:初始化时送到计数器0和计数器1计数初值分别为多少?计数器工作在什么方式下?解:计数器0工作在方式2,其计数初值为=1.19MHz/500Hz=2380计数器1工作在方式3,其计数初值为=1.19MHz/1000Hz=11903、若要求8253用软件产生一次性中断,最好采用哪种工作方式?现在用计数器0对外部脉冲计数,每计满10 000个产生一次中断,请写出工作方式控制字及计数值。

解:若8253用软件产生一次性中断,最好采用方式0,即计数结束后产生中断的工作方式。

但若要求每计满10 000个产生一次中断,则表示具有重复中断的功能,因此,此时应使用计数器0工作于方式3,即连续方波输出方式。

其工作方式控制字为0011X111B,计数初值=10 0004、试编写一段程序,按下列要求设置如下图中8254的三个计数器计数器0:二进制计数,在操作方式0下操作,计数初值为1234H计数器1:BCD计数,在操作方式2下操作,计数初值为100H计数器2:二进制计数,在操作方式4下操作,计数初值为1FFFH解:计数器0的方式字=00110000B计数器1的方式字=01010101B计数器2的方式字=10111000BMOV AL , 30HOUT 4CH , ALMOV AL , 55HOUT 4CH , ALMOV AL , 0B8HOUT 4CH , ALMOV AL , 34HOUT 40H , ALMOV AL , 12HOUT 40H , ALMOV AL , 00HOUT 44H , ALMOV AL , 01HOUT 44H , ALMOV AL , 0FFHOUT 48H , ALMOV AL , 1FHOUT 48H , AL5、试编写一个在计数进行的过程中进行读计数器2内容的程序段,并把读取的值放入AX 寄存器中,假设8253定位在I/O地址40H上,其中芯片输入线A1、A0分别接到A3、A2。

解:MOV AL , 1000XXXXBOUT 4CH , ALIN AL ,48HMOV BL ,ALIN AL ,48HMOV AH , ALMOV AL , BL6、设8253芯片的端口地址为230H~233H.要求通道0工作在方式3,计数器初值01F0H。

通道1工作在方式2,计数器初值0064H。

试编制初始化程序解:MOV DX , 233HMOV AL , 36HOUT DX , ALMOV DX , 230HMOV AL , 0F0HOUT DX , ALMOV AL , 01HOUT DX , ALMOV DX , 233HMOV AL , 74HOUT DX , ALMOV DX , 231HMOV AL , 64HOUT DX , ALMOV AL , 00HOUT DX , AL7、要求8253输出周期为100ms的方波。

设系统时钟为2MHz,口地址为1E0H~1E3H,CPU 为8088解:计数器初值N=100ms /(1/ 2MHz )=20×10000>65535,故需要两个计数通道协助完成,设选用通道0和通道1MOV AL , 17HMOV DX , 1E3HOUT DX , ALMOV AL , 20HMOV DX , 1E0HOUT DX , ALMOV AL , 57HMOV DX , 1E3HOUT DX , ALMOV AL , 00MOV DX , 1E1HOUT DX , AL8、若要用8253通道0,工作在方式1,按二-十进制计数,计数值为5080,初始化编程为什么?(若端口地址为F8H~FBH)解:确定通道控制字00 11 001 1MOV AL , 33HOUT 0FBH , ALMOV AL , 80HOUT 0F8H , ALMOV AL , 50HOUT 0F8H , AL9、编程将8253计数器0设置为模式1,计数初值为3000H;计数器1设置为模式2,计数初值为2010H;计数器2设置为模式4,计数初值为4030H;口地址为80H~83H,CPU为8088.解:计数通道0 控制字00 10 001 0=22H计数通道1 控制字01 11 010 0=74H计数通道2 控制字10 11 100 0=B8HMOV AL , 22HOUT 83H , ALMOV AL , 30HOUT 80H , ALMOV AL , 74HOUT 83H , ALMOV AL , 10HOUT 81H , ALMOV AL , 20HOUT 81H , ALMOV AL , 0B8HOUT 83H , ALMOV AL , 30HOUT 82H , ALMOV AL , 40HOUT 82H , AL10、PC/XT中的8253的通道0为系统提供恒定的时钟基准。

通道0的工作方式控制字是36H,规定以方式3工作,计数初值为216(即0000H)。

OUT0输出频率为18.2Hz(1.193/216)基准方波信号。

该信号送给中断控制器8259A的中断请求端IRQ0,申请中断,中断周期为55ms,CPU在中断服务子程序中,对该基准信号进行处理,计算出当前时间。

在ROM-BIOS对8253通道0的编程?解:MOV AL , 00 11 011 0BOUT 43H , ALMOV AL , 0OUT 40H , ALOUT 40H , AL11、若要读取通道1的16位计数值,其程序为什么?(若端口地址为F8H~FBH)解:MOV AL , 40HOUT 0FBH , ALIN AL , 0F9HMOV CL , ALIN AL , 0F9HMOV CH , AL12、设8253的口地址为0C8H~0CBH,计数脉冲为1MHz,试说明下述程序段的作用:MOV AL , 35HOUT 0CBH , ALMOV AL , 00OUT 0C8H , ALMOV AL , 50HOUT 0C8H , ALMOV CX , 100LP: NOPLOOP LPMOV AL , 00HOUT 0CBH , ALIN AL , 0C8HMOV AH , ALIN AL , 0C8H解:设置8253计数通道0工作在方式2,每5ms(=(1/1MHz)*5000)发一个负脉冲。

延时一段时间后读出当前计数值,并存入在AX中。

13、设某8088系统中,8253占用口地址40H~43H。

其实现产生电子时钟基准(定时时间为50ms)和产生方波用作扬声器音调控制(频率为1kHz)。

试为其编制8253的初始化程序(设系统中提供计数时钟为2MHz)解:产生电子时钟基准可采用方式2,计数初值N=50ms*(1/2MHz)=100000>65535,故需要2个计数通道协作完成,设选用通道0和通道1通道0:控制字=00 11 010 0B,计数初值=1000通道1:控制字=01 01 010 0B,计数初值=100产生方波采用方式2,计数初值=(1/1kHz)*(1/1MHz)=1000<65535,故需要一个计数通道完成,设选用通道2.计数初值=1000H,控制字=10 10 011 1BMOV AL , 00 11 010 0BOUT 43H , ALMOV AX , 1000OUT 40H , ALMOV AL , AHMOV AL , 01 01 010 0BOUT 43H , ALMOV AL , 100OUT 41H , ALMOV AL , 10 10 011 1BOUT 43H , ALMOV AL , 10HOUT 42H , AL14、试用PC系统的8254组成一个时钟系统。

0通道作为秒计数器,1通道作为分计数器,2通道作为时计数器。

设系统提供的计数脉冲频率已被分频为50kHz,口地址为90H~93H。

编制初始化程序并画出连线图。

解:计数器0 计数初值=1s/(1/50kHz)=50000 控制字=00 11 010 0 B计数器1 计数初值=60 控制字=01 01 010 0 B计数器2 计数初值=60 控制字=10 01 010 1 B8254CLK0OUT0CLK1OUT1CLK2OUT250kHzMOV AL , 34HOUT 93H , ALMOV AX , 50000OUT 90H , ALMOV AL , AHOUT 90H , ALMOV AL , 54HOUT 93H , ALMOV AL , 60OUT 91H , ALMOV AL , 95HOUT 93H , ALMOV AL , 60HOUT 92H , AL15、设8253的4个端口地址分别为210H、211H、212H、213H,其计数器0的时钟CLK0端输入1MHz脉冲,编程使其实现:1)将计数器0设置为连续产生20kHz方波;2)将1)中计数器0的输出OUT0作为计数器1的时钟CLK1,使其连续产生20ms定时中断解:要计数器0设置为连续产生20kHz方波,需设置方式3,方式控制字00 01 011 0B 计数器初值=1MHz/20kHz=50=32H初始化程序如下:MOV DX , 213HOUT DX , ALMOV DX , 210HMOV AL , 32HOUT DX , AL将OUT0作为计数器1的时钟CLK1 计数器初值=20kHz/50Hz=400=190H 方式控制字01 11 011 0BMOV AL , 01 11 011 0BMOV DX , 213HOUT DX , ALMOV DX , 211HMOV AX , 190HOUT DX , ALMOV AL , AHOUT DX , AL16、若8253芯片的接口地址为D0D0H~D0D3H,时钟信号频率为2MHz。

现利用计数器0、1、2分别产生周期为10μs的对称方波及每1ms和1s产生一个负脉冲,试画出连接图,编写初始化程序。

8253CLK0OUT0CLK1OUT1CLK2OUT22MHz解:计数器0 计数初值=10μs /0.5μs =20计数器1 计数初值=1ms /0.5μs=2000计数器2 计数初值=(1s /0.5μs)/2000=2*106/2000=1000MOV DX , 0D0D3HMOV AL , 16HOUT DX , ALMOV AL , 74HOUT DX , ALMOV AL , 0B4HOUT DX , ALMOV DX , 0D0D0HMOV AL , 20OUT DX , ALMOV DX , 0D0D1HMOV AX , 2000OUT DX , ALOUT DX , ALMOV DX , 0D0D2HMOV AX , 1000OUT DX , ALMOV AL , AHOUT DX , AL17、PC/XT中8253产生声音3个程序,见PPT,回答问题18、Stack segment stackDw 64 dup(?)Stack endsCode segmentAssume cs:codeStart: in al , 21hand al , 7fhout 21h , almov al , 90hout 43h , almov al , 05hout 42h , alhlta1: stijmp a1irq7: mov ax , 014dhint 10hmov ax , 0120hint 10hin al , 20hout 20h , aliretcode endsend start(1)试验步骤(3)中在内存中填入IRQ 7中断矢量,请描述如何完成?使用反汇编U 命令,查找irq7: mov ax , 014dh 地址(IP=1220H CS=0000H ),然后使用E 命令将0000:003CH 单元填写IRQ 7中断程序入口地址。

相关主题