习题9部分答案 9.11试按如下要求分别编写82C54的初始化程序:己知82C54的计数器0、1、2和 控制字IO地址依次为104H、105H、106H、107H (1)使计数器1工作在方式0,仅用低8位作二进制计数,计数初值为128 (2)使计数器0工作在方式1,按BCD码计数,计数值为3000 (3)使计数器2工作在方式2,按二进制计数,计数值为02FOH。 解 (1) MOV DX, 07H 控制端口地址给DX MOV AL,01010000B:计数器1控制字 OUT DX, AL MOV DX, O5H MOV AL, 80H 计数初值128 OUT DX, AL (2) MOV DX, 07H MOV AL,0011001B:计数器0控制字 OUT DX, AL MOV DX, 04H MOV AL, OOH 先送低8位 OUT MOV AL, 30H :后送高8位 OUT MO DX, 07H MOV AL,10110100B:计数器2控制字 OUT DX, AL DEC DX MOV AL, OFOH OUT DX, AL 先送低8位 MOV AL, 02H OUT DX, AL 后送高8位 9.12设82C54计数器0、1、2和控制字的I/O地址依次为F8H、F9H、FAH、FBH, 说明如下程序的作用 MOV AL, 33H OUTOFBH, AL MOV AL, 80H 8H, AL MOV AL, 50H OUT OF8H, AL 解:33H即00110011B送入控制地址FBH,表示计数器0采用16位计数,工作方式 1,数据格式为BCD,计数初值为:5080
习 题 9 部分答案 9.11 试按如下要求分别编写 82C54 的初始化程序:己知 82C54 的计数器 0、1、2 和 控制字 I/O 地址依次为 104H、105H、106H、107H。 (1) 使计数器 1 工作在方式 0,仅用低 8 位作二进制计数,计数初值为 128; (2) 使计数器 0 工作在方式 1,按 BCD 码计数,计数值为 3000; (3) 使计数器 2 工作在方式 2,按二进制计数,计数值为 02F0H。 解: (1) MOV DX,07H ;控制端口地址给 DX MOV AL,01010000B ;计数器 1 控制字 OUT DX,AL MOV DX,05H MOV AL,80H ;计数初值 128 OUT DX,AL (2) MOV DX,07H MOV AL,00110011B ;计数器 0 控制字 OUT DX,AL ; MOV DX,04H MOV AL,00H ;先送低 8 位 OUT DX,AL MOV AL,30H ;后送高 8 位 OUT DX,AL (3) MOV DX,07H MOV AL,10110100B ;计数器 2 控制字 OUT DX,AL DEC DX MOV AL,0F0H OUT DX,AL ;先送低 8 位 MOV AL,02H OUT DX,AL ;后送高 8 位 9.12 设 82C54 计数器 0、1、2 和控制字的 I/O 地址依次为 F8H、F9H、FAH、FBH, 说明如下程序的作用。 MOV AL,33H OUT 0FBH,AL MOV AL,80H OUT 0F8H,AL MOV AL,50H 0UT 0F8H,AL 解: 33H 即 00110011B 送入控制地址 FBH,表示计数器 0 采用 16 位计数,工作方式 1,数据格式为 BCD,计数初值为:5080