8253的工作方式
方式0:中斷方式
計數(shù)結(jié)束時,OUT信號由低變高,可以用作中斷請求筛欢。
【寫入控制字】
??OUT立刻變?yōu)榈碗娖?br>
【寫入初值】
??延遲一個時鐘周期開始計數(shù)
【計數(shù)過程】
??1.計數(shù)過程OUT一直保持低電平寡具,直到計數(shù)器為0,OUT端立即變成高電平彻秆。
??2.門電路信號GATE為高電平時,計數(shù)器工作论悴;低電平時掖棉,計數(shù)器停止工作,但是計數(shù)值不變膀估,如果GATE再次變高幔亥,計數(shù)器繼續(xù)工作,GATE在方式0中相當(dāng)于暫停開關(guān)察纯。
??3. 計數(shù)期間帕棉,如果從新寫入計數(shù)值,計數(shù)器按照新寫入的初值從新工作饼记,相當(dāng)覆蓋原初值香伴。
??4. 方式0的計數(shù)初值為一次有效,當(dāng)完成一次計數(shù)后具则,若要再次計數(shù)需要從新寫入初值即纲。
【OUT端輸出】
??直到計數(shù)器為0,OUT端立即變成高電平博肋。(可用于計數(shù)結(jié)束時低斋,利用產(chǎn)生的高電平向CPU發(fā)起中斷請求)
方式1:可編程單脈沖發(fā)生器
【寫入控制字】
??OUT端立刻變?yōu)楦唠娖健?br>
【寫入初值】
??計數(shù)器不立即開始工作蜂厅,需要等待GATE信號出現(xiàn)一個上升沿才開始計數(shù)。
【計數(shù)過程】
??1. 開始計數(shù)時膊畴,OUT由高變低掘猿,并在計數(shù)時始終保持低電平。從而形成一個負(fù)單脈沖的前沿唇跨。
??2. 計數(shù)為0時稠通,OUT由低變高,形成負(fù)單脈沖的后沿买猖。
??3. 計數(shù)過程中改橘,GATE信號的變化(高變低)不影響計數(shù)過程,但是如果出現(xiàn)GETA上升沿(低變高)政勃,則會從初值從新計數(shù)唧龄,使得OUT輸出的負(fù)單脈沖變寬。
??4. 方式1的計數(shù)值一次有效奸远,完成計數(shù)需要從新寫入初值。
【OUT輸出端】
??輸出單脈沖寬度為CLK周期的n倍(n為計數(shù)初值)讽挟,并僅產(chǎn)生一個負(fù)脈沖懒叛。
方式2:頻率發(fā)生器(分頻器)
【寫入控制字】
??OUT變?yōu)楦唠娖健?br>
【寫入初值后】
??GATE高電平為高電平,立刻開始計數(shù)耽梅。
【計數(shù)過程中】
??1.OUT保持高電平不變薛窥,計數(shù)到1時,OUT產(chǎn)生一個CLK周期的負(fù)脈沖眼姐。計數(shù)到0時诅迷,自動從初值再次計數(shù),實(shí)現(xiàn)循環(huán)計數(shù)众旗。
??2.若計數(shù)過程中罢杉,GATE變?yōu)榈碗娖剑瑒t暫停計數(shù)贡歧,待到GATE恢復(fù)高電平后滩租,從初值從新開始計數(shù)。
??3.若計數(shù)過程需要改變OUT輸出頻率利朵,可以在計數(shù)的任何時候?qū)懭胄碌某踔德上耄⒉粫绊懏?dāng)前計數(shù)周期,且會在下一個計數(shù)周期會根據(jù)新的初值開始計數(shù)绍弟。
【OUT輸出端】
??OUT端輸出一定頻率的負(fù)脈沖序列技即,負(fù)脈沖寬度為固定的一個CLK周期,重復(fù)周期為CKL的n倍(n為初值)樟遣。
方式3:方波發(fā)生器
【寫入控制字】
??OUT端變?yōu)榈碗娖健?br>
【寫入初值】
??OUT端立刻變?yōu)楦唠娖蕉穑珿ATE為高電平時身笤,立刻開始計數(shù)。
【計數(shù)過程】
??1.GATE信號為高電平澈歉,計數(shù)器工作展鸡。
??2.若初值n為偶數(shù),計數(shù)值減到n/2時埃难,OUT端變?yōu)榈碗娖接ū祝钡接嫈?shù)為0,計數(shù)會從初值從新開始計數(shù)涡尘。
??3.若n為奇數(shù)忍弛,OUT端的高電平寬度為(n+1)/2,低電平為(n-1/)2考抄。
??4.計數(shù)過程GATE變?yōu)榈碗娖较妇危瑒t暫定計數(shù),待到GATE再次有效時川梅,會從初值從新計數(shù)疯兼。
??5.允許計數(shù)過程任何時候改變計數(shù)初值,不影響當(dāng)前計數(shù)周期贫途,且會在下一個計數(shù)周期開始新的初值計數(shù)吧彪。
【OUT輸出】
??n為偶數(shù)時,輸出正脈沖負(fù)脈沖1:1的方波丢早。
??n為奇數(shù)時姨裸,輸出輸出的正脈沖比負(fù)脈沖多一個CLK周期。
方式4:軟件觸發(fā)方式
??方式4和方式0相似怨酝,不同點(diǎn)在于方式0結(jié)束時傀缩,輸出高電平,方式4輸出低電平农猬。
??因為計數(shù)過程中是由軟件把計數(shù)初值裝入計數(shù)器來觸發(fā)的赡艰。
【寫入控制字】
??OUT端變?yōu)楦唠娖健?br>
【寫入初值】
??若GATE為高電平,則立即開始計數(shù)盛险。
【計數(shù)過程】
??若GATE變?yōu)榈碗娖矫樘瑒t停止計數(shù),待到GATE變?yōu)楦唠娖娇嗑颍瑒t從初值從新計數(shù)换帜。
【OUT輸出】
??計數(shù)值減到0時,輸出一個寬度為CLK周期的負(fù)脈沖鹤啡。
方式5:硬件觸發(fā)方式
??方式5和方式2相似惯驼,不同點(diǎn)在于方式2結(jié)束時,自動循環(huán);方式5需要GATE信號才開始進(jìn)入下一個循環(huán)祟牲。
??由GATE上升沿觸發(fā)計數(shù)開始工作隙畜。
【寫入控制字】
??OUT變?yōu)楦唠娖健?br>
【寫入初值】
??需要等待一個GATE上升沿,計數(shù)器才開始工作说贝。
【計數(shù)過程】
??允許計數(shù)過程中任何時候改變初值议惰,不影響當(dāng)前計數(shù)周期,且會在下個周期乡恕,從新的初值開始計數(shù)言询。
??計數(shù)結(jié)束時,會自動裝入初值傲宜,但并不會自動開始运杭,需要等待GATE信號上升沿才開始計數(shù)。
【OUT輸出】
??輸出寬度固定為一個CLK周期的負(fù)脈沖函卒,表示計數(shù)結(jié)束辆憔。