幫忙做一道微機原理題

2021-03-12 19:09:32 字數 1835 閱讀 9806

1樓:湯旺河邊

8253初始化程式設計,重點有二:

1、確定控制字

2、計數器計數初值

把這兩個搞準了,程式設計就很簡單了。

首先確定控制字。8253晶片有一個8位的控制字暫存器(d7d6d5d4d3d2d1d0),其中,d7d6:計數器(通道)選擇,d5d4:

計數器讀/寫方式,d3d2d1:計數器工作方式,d0:計數方式(二進位制或bcd計數)。

依題意,

d7d6:00(計數器0)

d5d4:11(先讀/寫低8位,後讀/寫高8位)d3d2d1:001(數字單穩)

d0:1(bcd計數)

這樣,控制字確定為:00110011b

然後再確定計數器初值。外部時鐘fclk=40khz,要out端產生一個寬度為20ms的負脈衝,則計數初值=40khz x 20ms=800(十進位制)。

下面就可以寫初始化程式了,

mov al,33h ;控制字:00110011bout 87h,al ;寫入控制字

xor al,al

out 84h,al ;向計數器0寫低8位初值mov al,8

out 84h,al ;向計數器0寫高8位初值

2樓:

fclk = 40khz 和tc=20ms 得計數器初值為:n=800(十進位制)

所以應置初值為800(十進位制)

程式如下:

mov al,31h

out 87h,al ;設定計數器 0的操作方式mov al,00h

out 84h,al ;對計數0置低 8位初值mov al,08h

out 84h,al ;置高 8位初值【分析】:本題考查的知識點是8253的程式設計,計算計數初始值:tc=800(十進位制),所以應置初值為800(十進行)進行計數。

3樓:

fclk = 40khz 和t0=20ms(f0=0.05khz) 故計數器0初值為:n0=fclk/f0=40khz/0.05khz=800 (十進位制數)

程式如下:

mov al,00110011b;控制字:通道0,先寫低8位再寫高8位,方式1,bcd計數

out 87h,al ;寫入通道0控制字mov al,00h

out 84h,al ;對通道0置低 8位初值mov al,08h

out 84h,al ;置高 8位初值

4樓:匿名使用者

mov al,33h

out 87h,al

mov al,00h

out 84h,al

mov al,08h

out 84h,al

fclk = 40khz 和tc=20ms 則計數器初值為:n=800(十進位制)所以應置初值為800(十進位制)

out 87h,al ;設定計數器 0的操作方式out 84h,al ;對計數0置低 8位初值out 84h,al ;置高 8位初值

5樓:中心供氧and空氣淨化

回答者: miniflydreamer - 七級 2010-1-14 13:09

寫的不錯,滿足lz的需求了,但是對我來說不是很全面。

如果我是lz的微機老師,你提交他寫的東西給我,我最多給你63分。

6樓:匿名使用者

不會做,哈哈……

等待高手。

7樓:匿名使用者

一畢業就都忘了,鬱悶呢

8樓:敬津哈婉慧

我可以幫你做,不過要收點小費了

幫我做一道題,幫我算一道題

點o在四邊形abcd內,則 aob,boc,cod,aod之和為360 aob 6 aob 2 aob 12 aob 36021 aob 360 aob 120 7 aod 12 aob 1440 7 設男職工有a人,女職工有b人,按照題目意思有 48a 13b 32 a b 得到a b 19 16...

幫幫忙做一道數學題

設這個三位數為100a 10b c.100a 10b c 11k a b c 100a 10b c a b c 11k 99a 9b 11k 9b 11k b 0a b c 11 a c 11 a 1,b 0 這個三位數為100 a 1,b 1 這個三位數為101 a 1,b 2 這個三位數為102...

一道關於數學加法原理的題,一道關於數學的題,大家幫幫忙!

一位數,1 5,有5個。0不是正整數,不能計算在內 兩位數,十位上不能選0,有5種選法,選掉10位後,剩下5個數均可排在個位 所以,兩位數有5 5 25個 三位數,百位上不能選0,有5種選法,剩下十位有6 1 5種選法,個位有6 2 4種選法,所以,三位數有5 5 4 100個 共有5 25 100...