2019/11/22 品剂数0南始化。工作于方,款三进计爱,计袁值为 1. 初始化编程 确定控制字+ 设增口 初始化偏混:测楼通电源时,诸知8253之类的可输程外国接口 地址为2A0Hw2A3H, 芯片通常处于未定义状态, 在使用之前,必须用序记他们 则初始化程序为: 初始化为所需的希定横式,这个过避称为初始化喻程。 MOV DX,2A3H ,控制嘴口地址为2A3H 初始化步麋: MOV AL32H :00110010B ·(1)写入控制字 OUT DX,AL 1送方式控制字到控制寄存最 委式战这耀保 MOV DX,2AOH ,计数器0塘口地址为2A0H MOV AL,80H ,(2)写入计数初值 OUT DX,AL ;先可低8位计数值到计款每 MOV AL50H 得蜂装驶.装金踏告 DX,AL :再写高8位计敢值到计教警0 2.读取8253的计数值 当8253计数值是16位时,CPU受分两次读入,通常徽法: 3.应用举例 (1)利用GATE信号使计数过程菱停 例:读取计数器0的16位计数值,采用敏存器黄存方式,其程序为: >定时设置 MOV AL,OOH MOV DX,2A3H >用8253产生各种波形 OUT DX,AL MOV DX,2AOH IN AL,DX XCHG ALAH ,智存AH IN ALDX :读取计煮露0高8位数据 XCHG AL AH :AX中为计数鲁0的16位计教值 23 6
2019/11/22 6 •初始化编程:刚接通电源时,诸如8253之类的可编程外围接口 芯片通常都处于未定义状态,在使用之前,必须用程序把他们 初始化为所需的特定模式,这个过程称为初始化编程。 •初始化步骤: •(1)写入控制字 •用输出指令向控制字寄存器写入一个控制字,以选定计数器通道,规定该 计数器的工作方式和计数格式。写入控制字还起到复位作用,使输出端out 变为规定的初始状态,并使计数器清0 •(2)写入计数初值 •用输出指令向选中的计数器端口地址中写入一个计数初值,初值设置时要 符合控制字中有关格式的规定。初值可以是8位数据,也可以是16位数据。 1. 初始化编程 •0 •0 •1 •1 •0 •0 •1 •0 •D7 D6 D5 D4 D3 D2 D1 D0 •计数器 0 •先写低8位 •再写高8位 •方式 1 •二进制计 数 例:对计数器0初始化。工作于方式1,按二进制计数,计数值为 5080H。 确定控制字: 设端口 地址为2A0H~2A3H, 则初始化程序为: MOV DX,2A3H ;控制端口地址为2A3H MOV AL,32H ;00110010B OUT DX,AL ;送方式控制字到控制寄存器 MOV DX,2A0H ;计数器0端口地址为2A0H MOV AL,80H OUT DX,AL ;先写低8位计数值到计数器 MOV AL,50H OUT DX,AL ;再写高8位计数值到计数器0 •;命令控制字送控制口 •;读取计数器0低8位数 据 当8253计数值是16位时,CPU要分两次读入,通常做法: (1)利用GATE信号使计数过程暂停 (2)利用命令控制字(SC1 SC0 000000B)将待读计数值锁存至其 锁存器,这种方法不影响计数过程。注意,控制字应写入控制端口。 CPU读取此锁存器后,锁存自动解除。 例:读取计数器0的 16位计数值,采用锁存器锁存方式,其程序为: MOV AL,00H MOV DX,2A3H OUT DX,AL MOV DX,2A0H IN AL,DX XCHG AL,AH ;暂存AH IN AL,DX ;读取计数器0高8位数据 XCHG AL,AH ;AX中为计数器0的16位计数值 2. 读取8253的计数值 定时设置 用8253产生各种波形 3. 应用举例 21 22 23 24
2019/11/22 。 8253定时设置(8253的级联) 。8253物始化方法: 例:用8253来控制一个LED发光二极管的点亮和德灭,要 。控制字 求点亮10秒钟后再让它德灭10秒钟,8253的各嘴口地址 为81H、83H、85H和87H, ·计数初值:=定时时间tx时钟频率fo =定时时间t/时钟脉中周期Tc 45 ·知:f。=1M巴,景大计数潮值:5536 A A,825 MH 一个定时器最大定时时间: D1-D DT-D OUT M/f,-66636/100-0.065536a CLK LED 26 初始化程序 、 用8253产生各种定时波形 MOV AL,00110111B :道控侧华先读可备字节,同高字节,方式3,CD计最 -OUT 87H,AL 在某个以8086为CPU的系统中使用了一块8253芯片, MOV AL,0OH,计值李节 所用的时钟脉冲频率为1MHZ。要求3个计兼通道分别完成以 OUT 81H,AL 下功能: MOV AL,SOH 计量物值高李节 (1)通道0输出颜率为2KHz的方波: +OUT 81H,AL M0VAL,01100111B (2)通道1输出党度为480us的单敢神: :悬道12制字,先读写低李节,后高半节,方或3,8CD计量 (3)通道2用堰作方式触发,输出单脉冲,时间常数为26。 -OUT 87H,AL ,MOV AL,8OH,计初恤高*节 OUT 83H,AL 27 28 7
2019/11/22 7 • 8253初始化方法: • 控制字 • 计数初值: n=定时时间t时钟频率fc • =定时时间t/时钟脉冲周期Tc • 如: fc =1MHZ,最大计数初值: 65536 • 一个定时器最大定时时间: • N/fc =65536/ 106 =0.065536s 例:用8253来控制一个LED发光二极管的点亮和熄灭,要 求点亮10秒钟后再让它熄灭10秒钟,8253的各端口地址 为81H、83H、85H和87H。 8253 定时设置(8253的级联) 初始化程序 •MOV AL,00110111B •;通道0控制字,先读写低字节,后高字节,方式3,BCD计数 •OUT 87H,AL •MOV AL,00H;计数初值低字节 •OUT 81H,AL •MOV AL,50H;计数初值高字节 •OUT 81H,AL •MOV AL,01100111B •;通道1控制字,先读写低字节,后高字节,方式3,BCD计数 •OUT 87H,AL •MOV AL,80H;计数初值高字节 •OUT 83H,AL 在某个以8086为CPU的系统中使用了一块8253芯片, 所用的时钟脉冲频率为1MHZ。要求3个计数通道分别完成以 下功能: (1)通道0输出频率为2KHZ的方波; (2)通道1输出宽度为480us的单脉冲; (3)通道2用硬件方式触发,输出单脉冲,时间常数为26。 用8253产生各种定时波形 25 26 27 28