资源描述:
《2012(2)微机接口作业题解_CH8.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、2012(2)微机接口作业题解_CH8.doc【8.1】已知8253的端口地址为0200H~0203H,将8253CNT0设置为方式1,计数初值为3000H,CNT1设置为方式2,计数初值为2010H,CNT2设置为方式4,计数初值为4030H。试进行初始化编程。解:(1)分析此题给定了每个计数通道的工作方式和初值(大于一个字节,16位二进制数/也可理解为BCD码),但并没指定计数方式。(2)初始化程序段如下:;CNT0初始化MOVDX,0203HMOVAL,00110010B;二进制数初值,若BCD码:CW=00110011BOUTDX,ALMOVDX,0200HMOVAX,3000H;O
2、UTDX,ALMOVAL,AHOUTDX,AL;CNT1初始化MOVDX,0203HMOVAL,01110100B;二进制数初值,若BCD码:CW=00110101BOUTDX,ALMOVDX,0201HMOVAX,2010H;OUTDX,ALMOVAL,AHOUTDX,AL;CNT2初始化MOVDX,0203HMOVAL,10111000B;二进制数初值,若BCD码:CW=10111001BOUTDX,ALMOVDX,0202H;MOVAX,4030HOUTDX,ALMOVAL,AHOUTDX,AL第1页共18页2012(2)微机接口作业题解_CH8.doc【8.2】有一实验台Intel8
3、253(图8.47)占用端口地址为0200H~0203H,要求CNT0工作于方式2,输出脉冲周期为20ms,CLK0输入脉冲f=250kHz,如果要求CNT2的输出OUT2产生周期为500ms的方波,画出对应的接线,编写包括初始化程序在内完整的源程序。解:(1)各计数通道的初值分析:通道0:N0=250kHz*20ms=5000,可采用单通道分频;通道2:若由f=250kHz作为时钟源,则N2=250kHz*500ms=125000,超出一个计数通道允许的最大计数值,需用另一计数通道级联;若由通道0的输出作为时钟源,则N2=500ms/20ms=25,可采用单通道分频,本题解以此作答;(2)
4、初始化程序段如下:;CNT0初始化MOVDX,0203HMOVAL,00110101B;方式2,2字节BCD码计数OUTDX,ALMOVDX,0200HMOVAX,5000H;N0=250kHz*20ms=5000OUTDX,ALMOVAL,AHOUTDX,AL;CNT2初始化MOVDX,0203HMOVAL,10010111B;方式3(方波),1字节BCD码计数OUTDX,ALMOVDX,0202HMOVAL,25H;N2=500ms/20ms=25OUTDX,AL第2页共18页2012(2)微机接口作业题解_CH8.doc【8.4】PC系统中,定时器8253端口地址为0200H~0203
5、H,CNT0输入时钟f=250kHz,现要求CNT2的输出OUT2产生周期为20ms的10个脉冲信号,如何实现,画出连线,并编写程序。解:(1)分析:本题的核心是:要求通道2输出10个周期为20ms的脉冲信号,即在启动后,OUT2输出10个脉冲(20ms*10=200ms)后,输出保持状态不变。据此,可设置CNT2为方式2或方式3,作为连续工作方式,产生周期为20ms(50Hz)的连续脉冲。而由外部电路来控制通道2只输出10个脉冲信号,即硬件方案;或由程序控制来实现OUT2输出10个脉冲,即软件方案。而对通道0只要求提供输入时钟f=250kHz接入,没有其它要求;所有方案应体现:OUT2只产
6、生周期为20ms的10个脉冲信号,CLK0固定接f=250kHz时钟输入。(2)通道2门控信号时间控制方案控制通道2的门控信号,使其有效时间为10个脉冲的总时间,即200ms;µ方案一®通道0采用方式1,CLK0接250kHz时钟,由初值控制OUT0输出脉冲宽度为200ms的脉冲(初值N0=250kHz*200ms=50000,采用16位BIN计数),经反相后接通道2的门控触发信号GATE2。®通道2采用方式2或3,CLK2接250kHz时钟,初值N2=250kHz*20ms=5000,可采用16位BIN或BCD计数。®该方案中通道0的门控需脉冲触发,须由另一个通道或可控的外电路提供。®其程
7、序控制上,应先对通道0写控制字和初值,但不给GATE0触发脉冲,使其输出复位为高电平(反相后为低电平),禁止通道2计数输出脉冲,并保持GATE2低电平;然后对通道2写控制字和初值,使其具备输出20ms周期脉冲输出的条件;再对GATE0发出触发脉冲,使其OUT0输出低电平(反相后为高电平),允许通道2计数并输出20ms周期的脉冲;经过200ms、OUT2输出10个脉冲后,OUT0输出高电平(反相后为低电平),禁