《實(shí)驗(yàn)十四 可編程的計(jì)數(shù)、定時(shí)器 8253芯片實(shí)驗(yàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《實(shí)驗(yàn)十四 可編程的計(jì)數(shù)、定時(shí)器 8253芯片實(shí)驗(yàn)(15頁(yè)珍藏版)》請(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管腳圖 注:實(shí)驗(yàn)箱上使用的是8254芯片,8254芯片是8253芯片的增強(qiáng)型,管腳完全相同。實(shí)驗(yàn)箱上的8254芯片電源和數(shù)據(jù)線均已連接好,實(shí)驗(yàn)時(shí)連接好讀寫(xiě)控制模塊信號(hào)芯片即可工作。 825
2、3的端口選擇表 CS RD WR A1 A0 寄存器選擇和操作 0 1 0 0 0 寫(xiě)入計(jì)數(shù)器0 0 1 0 0 1 寫(xiě)入計(jì)數(shù)器1 0 1 0 1 0 寫(xiě)入計(jì)數(shù)器2 0 1 0 1 1 寫(xiě)入控制寄存器 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 無(wú)操作(三態(tài)) 1 禁止(三態(tài)) 0 1 1 無(wú)操作(三態(tài)) 8253控制字格式 計(jì)數(shù)值N與輸出波形關(guān)系 方式 N與輸出波形的關(guān)系 0寫(xiě)入計(jì)數(shù)值N后,經(jīng)過(guò)N1個(gè)CLK脈沖輸出變高 1單拍脈沖的寬度為N個(gè)CLK脈沖 2每N個(gè)CLK脈沖,輸出一個(gè)寬度為CLK周期的脈沖 3寫(xiě)入N后,輸出
3、:1)1/2N個(gè)CLK高電平,1/2N個(gè)CLK低電平(N為偶數(shù))2)(N+1)/個(gè)CLK高電平,(N-1)/2個(gè)CLK低電平(N為奇數(shù)) 4寫(xiě)入N后過(guò)N+1個(gè)CLK,輸出寬度為1個(gè)CLK脈沖 5門(mén)控觸發(fā)后,過(guò)N+1個(gè)CLK,輸出寬度為1個(gè)CLK脈沖門(mén)控輸入信號(hào)的作用 方式 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ù) 8253有六種不同的工作方式: 方式0計(jì)數(shù)結(jié)
4、束產(chǎn)生中斷方式 方式1可編程單次脈沖方式 方式2分頻工作方式 方式3方波方式 方式4軟件觸發(fā)選通方式方式5硬件觸發(fā)選通方式我們要求通過(guò)對(duì)方式0、方式1的實(shí)驗(yàn),來(lái)了解和掌握8253主要性能及其初始化編程。1、 方式0 計(jì)數(shù)器結(jié)束中斷方式當(dāng)選定8253工作于方式0,并對(duì)選定的計(jì)數(shù)器寫(xiě)入控制字時(shí),該計(jì)數(shù)器的輸出端OUT立即變?yōu)榈碗娖?。要使?jì)數(shù)器能夠進(jìn)行計(jì)數(shù),門(mén)控信號(hào)GATE必須為高。若CPU利用輸出指令向計(jì)數(shù)器寫(xiě)入計(jì)數(shù)值時(shí)(N=5),寫(xiě)WRn的上升沿把計(jì)數(shù)值寫(xiě)入計(jì)數(shù)寄存器。在WRn上升沿后的下一個(gè)時(shí)鐘脈沖CLK的下降沿時(shí),才把計(jì)數(shù)值N寫(xiě)入計(jì)數(shù)寄存器執(zhí)行單元CE。在CLK到來(lái)時(shí)開(kāi)始減1計(jì)數(shù)。總共要經(jīng)過(guò)
5、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)楦唠娖剑贑PU裝入計(jì)數(shù)值N后,必須等到GATE由低電平到高電平的跳變,產(chǎn)生一個(gè)上升沿后,才能在下一個(gè)時(shí)鐘脈沖CLK的下降沿將N值裝入計(jì)數(shù)器執(zhí)行單元,同時(shí)輸出端OUT由高電平向低電平跳變,以后每來(lái)一個(gè)時(shí)鐘脈沖,計(jì)數(shù)器就開(kāi)始減1操作,當(dāng)計(jì)數(shù)器的值減為0時(shí),OUT產(chǎn)生由低到高的正跳變。這樣,在OUT的引腳得到一個(gè)負(fù)的單脈沖,單脈沖的寬度可以由程序控制,寬度等于時(shí)鐘
6、脈沖寬度乘以計(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脈沖若干次)。 硬件測(cè)試:1、 硬件接線完畢檢查無(wú)誤后,點(diǎn)擊工具欄中的“工具軟件”,選“接口調(diào)試工具”。 2、 在數(shù)據(jù)發(fā)送框里,選“IO地址”,在“起始地址”欄里先填寫(xiě)8254控制字地址,在右邊輸入框內(nèi)填寫(xiě)控制字,再點(diǎn)擊“發(fā)送數(shù)據(jù)”。(寫(xiě)8254控制字)3、 在數(shù)據(jù)發(fā)送框里,選“IO地址”,在“起始地址”欄里先填寫(xiě)選中計(jì)數(shù)器地址,在右邊輸入框內(nèi)填寫(xiě)計(jì)數(shù)值,再點(diǎn)擊“發(fā)送數(shù)據(jù)”。
7、(填寫(xiě)計(jì)數(shù)器值)4、 在數(shù)據(jù)接收框里,選“IO地址”,在“起始地址”欄里填寫(xiě)選中計(jì)數(shù)器地址,按動(dòng)消抖脈沖按鈕一次,產(chǎn)生一個(gè)計(jì)數(shù)脈沖,再點(diǎn)擊“接收數(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)的再次插入,來(lái)加寬輸出脈沖的寬度。 實(shí)驗(yàn)要求:1、 畫(huà)出正確的邏輯圖;2、 寫(xiě)出正確的源程序并加以必要的注釋;3、 4、 5、6、 溫馨提示:最好仔細(xì)閱讀后才下載使用,萬(wàn)分感謝!7、8、