《實(shí)驗(yàn)十四 可編程的計(jì)數(shù)、定時(shí)器 8253芯片實(shí)驗(yàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《實(shí)驗(yàn)十四 可編程的計(jì)數(shù)、定時(shí)器 8253芯片實(shí)驗(yàn)(15頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、
實(shí)驗(yàn)十四 8253 可編程計(jì)數(shù)器/定時(shí)器實(shí)驗(yàn)要求
一、實(shí)驗(yàn)?zāi)康?
1、掌握8253的主要性能及其初始化編程。
2、學(xué)會(huì)根據(jù)實(shí)驗(yàn)要求設(shè)計(jì)8253的接口電路。
二、實(shí)驗(yàn)技術(shù)準(zhǔn)備
8253主要功能有:
(1)一片上有三個(gè)獨(dú)立的16位計(jì)數(shù)器通道。
(2)每個(gè)計(jì)數(shù)器都可以按照二進(jìn)制或十進(jìn)制計(jì)數(shù)。
(3)每個(gè)計(jì)數(shù)器的計(jì)數(shù)速率可達(dá)2MHz。
(4)每個(gè)通道有6種工作方式,可由程序設(shè)置和改變。
1 / 15
8253內(nèi)部結(jié)構(gòu)
8253管
2、腳圖
注:實(shí)驗(yàn)箱上使用的是8254芯片,8254芯片是8253芯片的增強(qiáng)型,管腳完全相同。
實(shí)驗(yàn)箱上的8254芯片電源和數(shù)據(jù)線均已連接好,實(shí)驗(yàn)時(shí)連接好讀寫控制模塊信號(hào)
芯片即可工作。
8253的端口選擇表
CS
RD
WR
A1
A0
寄存器選擇和操作
0
1
0
0
0
寫入計(jì)數(shù)器#0
0
1
0
0
1
寫入計(jì)數(shù)器#1
0
1
0
3、
1
0
寫入計(jì)數(shù)器#2
0
1
0
1
1
寫入控制寄存器
0
0
1
0
0
讀計(jì)數(shù)器#0
0
0
1
0
1
讀計(jì)數(shù)器#1
0
0
1
1
0
讀計(jì)數(shù)器#2
0
0
1
1
1
無操作(三態(tài))
1
禁止(三態(tài))
0
1
1
無操作(三態(tài))
8253控制字格式
4、
計(jì)數(shù)值N與輸出波形關(guān)系
方式
N與輸出波形的關(guān)系
0
寫入計(jì)數(shù)值N后,經(jīng)過N+1個(gè)CLK脈沖輸出變高
1
單拍脈沖的寬度為N個(gè)CLK脈沖
2
每N個(gè)CLK脈沖,輸出一個(gè)寬度為CLK周期的脈沖
3
寫入N后,輸出:1)1/2N個(gè)CLK高電平,1/2N個(gè)CLK低電平(N為偶數(shù))2)(N+1)/個(gè)CLK高電平,(N-1)/2個(gè)CLK低電平(N為奇數(shù))
4
寫入N后過N+1個(gè)CLK,輸出寬度為1個(gè)CLK脈沖
5
門控觸發(fā)后,過N+1個(gè)CLK,輸出寬度為1個(gè)CLK脈沖
門控輸入信號(hào)的作用
方式
5、
GATE
低或變?yōu)榈?
上升沿
高
0
禁止計(jì)數(shù)
允許計(jì)數(shù)
1
1)啟動(dòng)計(jì)數(shù)
2)下一個(gè)CLK脈沖使輸出變低
2
1)立即計(jì)數(shù)
2)立即使輸出變高
1)重新裝入計(jì)數(shù)值
2)啟動(dòng)計(jì)數(shù)
允許計(jì)數(shù)
3
1)禁止計(jì)數(shù)
2)立即使輸出變高
啟動(dòng)計(jì)數(shù)
允許計(jì)數(shù)
4
禁止計(jì)數(shù)
允許計(jì)數(shù)
5
啟動(dòng)計(jì)數(shù)
6、
8253有六種不同的工作方式:
方式0——計(jì)數(shù)結(jié)束產(chǎn)生中斷方式
方式1——可編程單次脈沖方式
方式2——分頻工作方式
方式3——方波方式
方式4——軟件觸發(fā)選通方式
方式5——硬件觸發(fā)選通方式
我們要求通過對(duì)方式0、方式1的實(shí)驗(yàn),來了解和掌握8253主要性能及其初始化編程。
1、 方式0 計(jì)數(shù)器結(jié)束中斷方式
當(dāng)選定8253工作于方式0,并對(duì)選定的計(jì)數(shù)器寫入控制字時(shí),該計(jì)數(shù)器的輸出端OUT立即變?yōu)榈碗娖?。要使?jì)數(shù)器能夠進(jìn)行計(jì)數(shù),門控信號(hào)GATE必須為高。若CPU利用輸出指令向計(jì)數(shù)器寫入計(jì)數(shù)值
7、時(shí)(N=5),寫WRn的上升沿把計(jì)數(shù)值寫入計(jì)數(shù)寄存器。在WRn上升沿后的下一個(gè)時(shí)鐘脈沖
CLK的下降沿時(shí),才把計(jì)數(shù)值N寫入計(jì)數(shù)寄存器執(zhí)行單元CE。在CLK到來時(shí)開始減1計(jì)數(shù)??偣惨?jīng)過N+1個(gè)CLK脈沖后計(jì)數(shù)器減為0,這時(shí)OUT引腳由低電平變?yōu)楦唠娖?。利用由低電平變?yōu)楦唠娖秸冃盘?hào)向CPU發(fā)出中斷請(qǐng)求。
方式0波形圖
2、 方式1 可編程單穩(wěn)態(tài)輸出方式
當(dāng)CPU用控制字設(shè)定計(jì)數(shù)器工作于方式1時(shí),計(jì)數(shù)器的輸出OUT立即變?yōu)楦唠娖?,在CPU裝入計(jì)數(shù)值N后,必須等到GATE由低電平到高電平的跳變,產(chǎn)生一個(gè)上升沿后
8、,才能在下一個(gè)時(shí)鐘脈沖CLK的下降沿將N值裝入計(jì)數(shù)器執(zhí)行單元,同時(shí)輸出端OUT由高電平向低電平跳變,以后每來一個(gè)時(shí)鐘脈沖,計(jì)數(shù)器就開始減1操作,當(dāng)計(jì)數(shù)器的值減為0時(shí),OUT產(chǎn)生由低到高的正跳變。
這樣,在OUT的引腳得到一個(gè)負(fù)的單脈沖,單脈沖的寬度可以由程序控制,寬度等于時(shí)鐘脈沖寬度乘以計(jì)數(shù)器N的值。
方式1波形圖
實(shí)驗(yàn)內(nèi)容:
第一題:
8253方式0:用消抖電路產(chǎn)生的脈沖作為CLK信號(hào),OUT接LED。程序運(yùn)行5秒后將計(jì)數(shù)器的余值顯示在屏幕上。分析計(jì)數(shù)常數(shù)N與CLK的關(guān)系(要求在5秒鐘內(nèi)產(chǎn)生LCK脈沖若干次)。
9、 硬件測(cè)試:
1、 硬件接線完畢檢查無誤后,點(diǎn)擊工具欄中的“工具軟件”,選“接口調(diào)試工具”。
2、 在數(shù)據(jù)發(fā)送框里,選“IO地址”,在“起始地址”欄里先填寫8254控制字地址,
在右邊輸入框內(nèi)填寫控制字,再點(diǎn)擊“發(fā)送數(shù)據(jù)”。(寫8254控制字)
3、 在數(shù)據(jù)發(fā)送框里,選“IO地址”,在“起始地址”欄里先填寫選中計(jì)數(shù)器地址,
在右邊輸入框內(nèi)填寫計(jì)數(shù)值,再點(diǎn)擊“發(fā)送數(shù)據(jù)”。(填寫計(jì)數(shù)器值)
4、 在數(shù)據(jù)接收框里,選“IO地址”,在“起始地址”欄里填寫選中計(jì)數(shù)器地址,按動(dòng)消抖脈沖按鈕一次,
產(chǎn)生一個(gè)計(jì)數(shù)脈沖,再點(diǎn)擊“
10、接收數(shù)據(jù)”,在右邊輸出框內(nèi)為填入計(jì)數(shù)器的值。
5、 再按動(dòng)消抖脈沖按鈕一次,產(chǎn)生一個(gè)計(jì)數(shù)脈沖,再點(diǎn)擊“接收數(shù)據(jù)”,在右邊輸出框內(nèi)為計(jì)數(shù)器
(N-1)的值。
第二題:
8253方式1:計(jì)數(shù)器1工作在方式1,CLK1和GATE1信號(hào)由消抖電路產(chǎn)生,OUT1接LED,驗(yàn)證CLK1、GATE1和OUT1三者關(guān)系。
要求:CLK1、GATE1分別接LED監(jiān)視,初態(tài)LED均滅。
思考題:在不改動(dòng)源程序的條件下,如何控制GATE信號(hào)的
再次插入,來加寬輸出脈沖的寬度。
實(shí)驗(yàn)要求:
1、 畫出正確的邏輯圖;
2、 寫出正確的源程序并加以必要的注釋;
3、
4、
5、
6、 溫馨提示:最好仔細(xì)閱讀后才下載使用,萬分感謝!
7、
8、