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...