




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、微機(jī)原理課程設(shè)計(jì)波形發(fā)生器基本要求:(1) 通過(guò)按鍵選擇波形,波形選擇(方波、三角波)。8255 A 和0832(2) 通過(guò)按鍵設(shè)定波形的頻率,同時(shí)波形頻率在數(shù)碼管上顯示。8255A(3) 頻率設(shè)定后,通過(guò)8253精確計(jì)時(shí)來(lái)設(shè)置波形寬度大小,比如方波的占空比。(4) 8259A產(chǎn)生中斷,用示波器顯示輸出波形。附加要求:(1) 通過(guò)按鍵可以增大或者降低頻率;(2) 顯示正弦波。 目 錄一 理論部分1.1 課程設(shè)計(jì)的目的 21.2 課程設(shè)計(jì)要求與內(nèi)容 21.3 總體設(shè)計(jì)方案 2(1)設(shè)計(jì)思想及方案論證2(2)總體設(shè)計(jì)方案框圖31.4 系統(tǒng)硬件設(shè)計(jì) 41.5 系統(tǒng)軟件設(shè)計(jì) 5二 實(shí)踐部分2.1 系統(tǒng)
2、硬件原理簡(jiǎn)介 62.2 程序調(diào)試 92.3 軟件系統(tǒng)的使用說(shuō)明 9三 課程設(shè)計(jì)結(jié)果分析3.1 實(shí)驗(yàn)結(jié)果 103.2 結(jié)果分析 11四 課程設(shè)計(jì)總結(jié) 11五 附錄5.1源程序及說(shuō)明 12波形發(fā)生器一 理論部分1.1 課程設(shè)計(jì)的目的 (1)綜合模擬電子線路、數(shù)字電子技術(shù)和微機(jī)原理等多門(mén)專業(yè)基礎(chǔ)課程的知識(shí),使學(xué)生對(duì)以計(jì)算機(jī)為核心的通信、測(cè)量或控制系統(tǒng)有個(gè)全面了解和實(shí)踐的過(guò)程。(2)掌握常規(guī)芯片的使用方法、掌握簡(jiǎn)單微型計(jì)算機(jī)應(yīng)用系統(tǒng)軟硬的設(shè)計(jì)方法,進(jìn)一步鍛煉同學(xué)們?cè)谖⑿陀?jì)算機(jī)應(yīng)用方面的實(shí)際工作能力,強(qiáng)化本學(xué)科內(nèi)容并擴(kuò)展知識(shí)面。(3)體驗(yàn)分析問(wèn)題、提出解決方案、通過(guò)編程等手段實(shí)現(xiàn)解決方案、不斷調(diào)試最終達(dá)
3、到設(shè)計(jì)要求的全過(guò)程。(4)培養(yǎng)學(xué)生的創(chuàng)造力和對(duì)專業(yè)的適應(yīng)性。1.2 課程設(shè)計(jì)的內(nèi)容和要求1、通過(guò)按鍵選擇波形,波形選擇(方波、三角波、正弦波)。8255 A 和08322、通過(guò)按鍵設(shè)定波形的頻率,同時(shí)波形頻率在數(shù)碼管上顯示。8255A3、頻率設(shè)定后,通過(guò)8253精確計(jì)時(shí)來(lái)設(shè)置波形寬度大小,比如方波的占空比。4、8259A產(chǎn)生中斷,用示波器顯示輸出波形。5、通過(guò)按鍵可以增大或者降低頻率;6、畫(huà)出電路原理圖,說(shuō)明工作原理,編寫(xiě)程序及程序流程圖。1.3 總體設(shè)計(jì)方案(1)設(shè)計(jì)思想及方案論證由于要求達(dá)到模擬信號(hào)波形發(fā)生,因此要由D/A轉(zhuǎn)換芯片0832來(lái)來(lái)完成此項(xiàng)任務(wù),由8253形成波形的主要做法是:先
4、輸出一個(gè)下限電平,將其保持t然后輸出一個(gè)稍高的電平,在保持t,然后重復(fù)此過(guò)程,因此需要延長(zhǎng)0832輸入數(shù)據(jù)的時(shí)間間隔來(lái)改變頻率。如圖1信號(hào)發(fā)生波形圖所示。0832輸入的數(shù)據(jù)的延時(shí)可以通過(guò)軟件完成,也可以通過(guò)硬件完成。由于實(shí)驗(yàn)要求輸出的波的頻率可以改變,且精確,所以選用硬件延時(shí)+5V0V圖1 信號(hào)發(fā)生波形圖 硬件延時(shí)主要由計(jì)時(shí)器8253和中斷控制器8259來(lái)實(shí)現(xiàn)。由8253輸出的方波的高低電平,來(lái)觸發(fā)8259的IR0端,8259給CPU中斷信號(hào),CPU中斷來(lái)執(zhí)行相應(yīng)的中斷子程序,中斷子程序?yàn)橄?832輸出數(shù)據(jù)的程序,通過(guò)選擇此程序可以產(chǎn)生鋸齒波,方波,正弦波。由于0832產(chǎn)生的方波的頻率可以控制
5、,所以每次中斷執(zhí)行波形發(fā)生程序的時(shí)間間隔可以精確控制。以此來(lái)控制輸出的波形頻率。最后通過(guò)8255驅(qū)動(dòng)LED數(shù)碼顯示管,實(shí)現(xiàn)對(duì)輸入的頻率的顯示,由鍵盤(pán)直接輸入波形頻率,通過(guò)LED數(shù)碼顯示管顯示。(2)總體設(shè)計(jì)方案框圖總體設(shè)計(jì)就是先由8255驅(qū)動(dòng)LED顯示輸入的頻率,再通過(guò)8253定時(shí)中斷,中斷的子程序來(lái)執(zhí)行輸出,輸出的信號(hào)經(jīng)過(guò)信號(hào)發(fā)生器形成波形。圖2 硬件簡(jiǎn)圖CLK(1.8432MHZ)Intel8253Intel8259ACPU8086DAC0832Intel8255A示波器LED數(shù)碼顯示管1.4系統(tǒng)硬件設(shè)計(jì)硬件設(shè)計(jì)電路圖圖3 硬件設(shè)計(jì)電路圖XD7XD6XD5XD4XD3XD2XD1XD0D7
6、D6D5D4D3D2D1D0WRRDCSA0INTXIOWXIORIOY0XA2INTRXD7XD6XD5XD4XD3XD2XD1XD0XIOWXIORIOY1XA3XA2D7D6D5D4D3D2D1D0WRRDCSA1A0IR0OUT0CLK0GATE01.8432MHZ+5V82548259AXD7XD6XD5XD4XD3XD2XD1XD0XD7XD6XD5XD4XD3XD2XD1XD0XIOWXIORIOY3XA3XA2D7D6D5D4D3D2D1D0WRRDCSA1A0D7D6D5D4D3D2D1D0WRCSXIOWIOY2OUT示波器PB0PB1PB2PB3PB4PB5PB6PB7P
7、A0PA1PA2PA3PA4PA5ABCDEFGDPX1X2X3X4X5X6LED顯示器8255ADAC0832系 統(tǒng) 總 線系 統(tǒng) 總 線系 統(tǒng) 總 線系 統(tǒng) 總 線1.5系統(tǒng)軟件設(shè)計(jì)軟件設(shè)計(jì)流圖初始化8259、8255、8253、0832 輸入頻率并將計(jì)算所得計(jì)數(shù)初值寫(xiě)入相應(yīng)的8253控制字主程序(無(wú)限循環(huán)程序)有中斷關(guān)電源,退出系統(tǒng) 響應(yīng)中斷,保護(hù)斷點(diǎn)進(jìn)入中斷程序,向0832輸出波結(jié)束中斷開(kāi)始 NY圖4 軟件設(shè)計(jì)流圖二 實(shí)踐部分2.1系統(tǒng)硬件原理簡(jiǎn)介(一)可編程并行I/O接口芯片8255A8255A可編程并行I/O接口芯片,為40個(gè)引腳的雙列直插芯片8255A具有3個(gè)相互獨(dú)立的輸入/輸出
8、通道端口,三種工作方式。方式0基本輸入輸出方式;方式1選通輸入/出方式;方式2雙向選通輸入/輸出方式;圖5 8255A引腳圖引腳功能:RESET:復(fù)位信號(hào),高電平有效,所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成輸入方式。RD:讀命令信號(hào)輸入,低電平有效,用來(lái)控制數(shù)據(jù)由8255A讀WR:寫(xiě)命令信號(hào)輸入,地點(diǎn)平有效,用來(lái)控制寫(xiě)到8255ACS:片選信號(hào)輸入,通過(guò)譯碼器與地址總線相連D0D7:三態(tài)雙向數(shù)據(jù)總線,8255與CPU數(shù)據(jù)傳送的通道,實(shí)現(xiàn)8位數(shù)據(jù)的讀/寫(xiě)操作,控制字和狀態(tài)信息也通過(guò)數(shù)據(jù)總線傳送。(二)可編程定時(shí)/計(jì)數(shù)器Intel8253Intel8253是一種能夠完成定時(shí)
9、和計(jì)數(shù)的芯片,8253內(nèi)部有3個(gè)16位計(jì)數(shù)器通道,通過(guò)對(duì)他們編程,每個(gè)計(jì)數(shù)器可以按照6種工作方式工作,并且都可以按2或10進(jìn)制格式進(jìn)行計(jì)數(shù),最高頻率為2HZ。8253還可以用于許多其他場(chǎng)合,比如可作編程方波發(fā)生器,分頻器等。圖6 8253引腳圖引腳功能:1、數(shù)據(jù)緩沖總線數(shù)據(jù)總線緩沖器是8253與系統(tǒng)總線相連時(shí)使用的接口電路,它由8位雙相三態(tài)緩沖器構(gòu)成,CPU用輸入輸出指令對(duì)8253進(jìn)行讀寫(xiě)操作的信息都由8位數(shù)據(jù)總線傳輸:(1)CPU在對(duì)8253進(jìn)行初始化編程時(shí),向他寫(xiě)入控制字。(2)CPU向某一計(jì)時(shí)器寫(xiě)入計(jì)數(shù)初值。(3)從計(jì)數(shù)器讀出計(jì)數(shù)值。2、讀寫(xiě)控制邏輯讀寫(xiě)控制邏輯接受系統(tǒng)控制總線送來(lái)的輸入
10、信號(hào),經(jīng)由組合后形成控制信號(hào),對(duì)各部分操作進(jìn)行控制。可接受的信號(hào)有:(1)CS片選,低電平有效,由數(shù)據(jù)總線經(jīng)由IO端口譯碼電路產(chǎn)生。只有CS低電平時(shí),CPU才能對(duì)8253進(jìn)行讀寫(xiě)操作。(2)RD讀信號(hào),低電平有效,當(dāng)RD位地電平時(shí),表示CPU正在讀取所選定的計(jì)數(shù)器的通道的內(nèi)容。(3)WR寫(xiě)信號(hào),低電平有效。當(dāng)WR為低電平時(shí),表示CPU正在將計(jì)數(shù)器初值寫(xiě)入所選中的通道口中,或者將控制字寫(xiě)入內(nèi)部寄存器中。(4)A1A2 端口選擇信號(hào),改變它的值,來(lái)選擇8253內(nèi)三個(gè)計(jì)數(shù)器通道。如果8253和與8位數(shù)據(jù)總線的微機(jī)相連,只要將A1A0分別與地址總線相聯(lián)。如果系統(tǒng)采用的是8086CPU,則數(shù)據(jù)總線為16
11、位,傳輸數(shù)據(jù)時(shí),總是將低8位數(shù)據(jù)送往偶地址,將高8位送往奇地址。3、計(jì)數(shù)器8253內(nèi)部包含三個(gè)完全相同俄計(jì)數(shù)器定時(shí)器通道,對(duì)3個(gè)通道的操作是完全獨(dú)立的。每個(gè)通道都包含1個(gè)8位的控制字寄存器,1個(gè)16位的減寄存器,和一個(gè)鎖存器,執(zhí)行部件是一個(gè)16位的減法計(jì)數(shù)器。每個(gè)通道工作時(shí),對(duì)輸入到CLK引腳上的脈沖按2進(jìn)制或10 進(jìn)制格式進(jìn)行計(jì)數(shù)。每當(dāng)輸入一個(gè)時(shí)鐘脈沖,計(jì)數(shù)器減1,當(dāng)計(jì)數(shù)器的值減為0時(shí)從,從OUT引腳輸出一個(gè)脈沖信號(hào)。GATE引腳上的門(mén)控制信號(hào),決定他是否允許計(jì)數(shù)。(三)可編程中斷控制器8259A8259A是8086/8088系列的可編程中斷控制器,8259A為28個(gè)引腳的雙列直插芯片。圖7
12、 8259A引腳圖主要功能:(1)據(jù)8級(jí)優(yōu)先級(jí)控制,通過(guò)聯(lián)級(jí)可以擴(kuò)展到64級(jí)優(yōu)先控制。(2)每一級(jí)中斷可由程序單獨(dú)屏蔽或允許。(3)可提供中斷類型號(hào)傳送給CPU。(4)可以通過(guò)編程選擇多種不同工作方式。引腳功能:D7-D0:雙向數(shù)據(jù)線,三態(tài),與數(shù)據(jù)總線相連。IR7-IR0:外設(shè)的中斷請(qǐng)求信號(hào)輸入端,輸入,中斷請(qǐng)求:可以是電平觸發(fā),或者邊緣觸發(fā)。RD:讀命令信號(hào),輸入,低電平有效,用來(lái)控制數(shù)據(jù)由8259A讀WR:寫(xiě)命令信號(hào),輸入,地點(diǎn)平有效,用來(lái)控制寫(xiě)到8259CS:片選信號(hào),輸入,通過(guò)譯碼器與地址總線相連INT:向CPU發(fā)出中斷請(qǐng)求信號(hào),輸出,與CPU的INTR相連INTA:CPU給8259A
13、的中斷響應(yīng)信號(hào),輸入。(四)D/A轉(zhuǎn)換器DAC0832NSC公司生產(chǎn)的DAC0832,是一種內(nèi)部帶有數(shù)據(jù)輸入寄存器的8位D/A轉(zhuǎn)化器,采用CMOS工藝制成,芯片內(nèi)部R-2R梯形電阻網(wǎng)絡(luò),用于對(duì)參考電壓產(chǎn)生的電壓進(jìn)行分流,完成模數(shù)轉(zhuǎn)換,轉(zhuǎn)換結(jié)果以一組差動(dòng)電流 IOUT1、IOUT2輸出。引腳的功能:VREF : 參考電壓輸入端。根據(jù)需要一定大小的電壓,由于它是轉(zhuǎn)換的基準(zhǔn),要求數(shù)值正確,穩(wěn)定性好。VCC:工作電壓輸入端。AGAN為模擬地,DGAN為數(shù)字地。在模擬電路中,所有的模擬地要連在一起然后將模擬地,數(shù)字地連接到一個(gè)公共接地點(diǎn)。DI7-DI0:數(shù)據(jù)輸入??芍苯舆B接到數(shù)據(jù)總線。IOUT1IOUT
14、2:互補(bǔ)的電流輸出端。為了輸出模擬電壓,需加轉(zhuǎn)換電路。圖8 DAC0832引腳圖2.2程序調(diào)試由于此次課程設(shè)計(jì)涉及內(nèi)容較多程序較長(zhǎng),所以不適合采用整體調(diào)試的方式。因此,采用先逐次調(diào)試獨(dú)立功能模塊,再調(diào)試組合模塊,最后調(diào)試整體程序的方法。具體過(guò)程如下所示:1、調(diào)試0832產(chǎn)生三種波形程序2、調(diào)試輸入頻率計(jì)算計(jì)數(shù)初值程序3、調(diào)試8253輸出方波程序4、調(diào)試8259產(chǎn)生中斷響應(yīng)程序5、調(diào)試8255通過(guò)LED顯示數(shù)據(jù)程序6、調(diào)試輸入頻率計(jì)算計(jì)數(shù)初值并通過(guò)LED顯示數(shù)據(jù)程序7、調(diào)試8253使8259產(chǎn)生中斷的程序8、調(diào)試整體程序2.3 軟件系統(tǒng)的使用說(shuō)明 通過(guò)鍵盤(pán)輸入要輸出的波形的頻率,然后選擇輸出的波
15、形,LED數(shù)碼顯示管上可以顯示輸入的頻率,模擬示波器顯示DAC0832 AUTO端口輸出的波形。三 課程設(shè)計(jì)結(jié)果分析3.1 實(shí)驗(yàn)結(jié)果 圖9 程序運(yùn)行截圖 圖10 矩形波 圖11 三角波 圖12 正弦波3.2 結(jié)果分析運(yùn)行程序時(shí),分別產(chǎn)生100HZ、500HZ、1000HZ、1500HZ、1600HZ的波形,結(jié)果發(fā)現(xiàn)100HZ-1500HZ的波形頻率與所設(shè)定的頻率一致或有極小的偏差,但從1600HZ開(kāi)始誤差逐漸變大,遠(yuǎn)遠(yuǎn)偏離所設(shè)定的頻率,且小于所設(shè)定頻率。究其原因是:執(zhí)行中斷程序的時(shí)間與中斷周期的比值越來(lái)越大,或者說(shuō)隨著頻率增大執(zhí)行中斷響應(yīng)的時(shí)間對(duì)輸出波形頻率的影響越大。所以,頻率越高誤差越大。
16、改進(jìn)方式:精簡(jiǎn)中斷服務(wù)程序,減小程序執(zhí)行時(shí)間;在0832輸出端加上倍頻器,減小0832的輸出頻率,以此降低誤差。四 課程設(shè)計(jì)總結(jié)在這次實(shí)習(xí)中,我鞏固了微機(jī)課中所學(xué)的知識(shí),了解了各種芯片的的用法,各個(gè)接口的名稱和功能。進(jìn)一步鍛煉了在微型計(jì)算機(jī)應(yīng)用方面的實(shí)際工作能力,強(qiáng)化了對(duì)微機(jī)原理學(xué)科內(nèi)容的認(rèn)識(shí)并擴(kuò)展了知識(shí)面。通過(guò)設(shè)計(jì)實(shí)驗(yàn),使我掌握了模擬量 輸入/輸出通道的設(shè)計(jì),常用控制程序的設(shè)計(jì)方法,數(shù)據(jù)處理及非線性補(bǔ)償技術(shù),以及數(shù)字控制器的設(shè)計(jì)方法。 本設(shè)計(jì)從幾個(gè)基礎(chǔ)的部分著手總結(jié)綜合運(yùn)用各種資料最后完成一個(gè)數(shù)字信號(hào)發(fā)生器系統(tǒng)。 通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合的重要性,只有把所學(xué)的理論知識(shí)與實(shí)踐
17、相結(jié) 合起來(lái),從理論中得出結(jié)論,才是真正的知識(shí),才能提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。而且在做課程設(shè)計(jì)的過(guò)程中,不僅是考驗(yàn)自己所學(xué)的微機(jī)原理與接口技術(shù)知識(shí),更是要鍛煉自己的分析問(wèn)題的能力和解決實(shí)際問(wèn)題的能力,而在在此次課程設(shè)計(jì)過(guò)程中得到了充分的體現(xiàn)。 在此次設(shè)計(jì)中體也會(huì)到了交流知識(shí)的重要性,在千篇一律的設(shè)計(jì)中,顯示自己的特色,在實(shí)用 性和執(zhí)行效率間取得平衡,是設(shè)計(jì)的關(guān)鍵所在。通過(guò)這次課程設(shè)計(jì),使我得到了一次用專業(yè)知識(shí)、專業(yè)技能分析和解決問(wèn)題全面系統(tǒng)的鍛煉。使我更加深刻的了解微機(jī)原理與接口技術(shù),以及在常用 編程設(shè)計(jì)思路技巧(特別是匯編語(yǔ)言)的掌握方面都能向前邁了一大步,為日后成為合格的應(yīng)用
18、型 人才打下良好的基礎(chǔ)。五 附錄5.1 源程序及說(shuō)明;*根據(jù)查看端口資源修改下列符號(hào)值*IOY0 EQU 3000H ;片選IOY0對(duì)應(yīng)的端口始地址MY8259_ICW1 EQU IOY0+00H ;實(shí)驗(yàn)系統(tǒng)中8259的ICW1端口地址MY8259_ICW2 EQU IOY0+04H ;實(shí)驗(yàn)系統(tǒng)中8259的ICW2端口地址MY8259_ICW3 EQU IOY0+04H ;實(shí)驗(yàn)系統(tǒng)中8259的ICW3端口地址MY8259_ICW4 EQU IOY0+04H ;實(shí)驗(yàn)系統(tǒng)中8259的ICW4端口地址MY8259_OCW1 EQU IOY0+04H ;實(shí)驗(yàn)系統(tǒng)中8259的OCW1端口地址MY8259
19、_OCW2 EQU IOY0+00H ;實(shí)驗(yàn)系統(tǒng)中8259的OCW2端口地址MY8259_OCW3 EQU IOY0+00H ;實(shí)驗(yàn)系統(tǒng)中8259的OCW3端口地址;*IOY1 EQU 3040H ;片選IOY1對(duì)應(yīng)的端口始地址MY8254_COUNT0 EQU IOY1+00H*4 ;8254計(jì)數(shù)器0端口地址MY8254_COUNT1 EQU IOY1+01H*4 ;8254計(jì)數(shù)器1端口地址MY8254_COUNT2 EQU IOY1+02H*4 ;8254計(jì)數(shù)器2端口地址MY8254_MODE EQU IOY1+03H*4 ;8254控制寄存器端口地址;*IOY2 EQU 3080H ;片
20、選IOY2對(duì)應(yīng)的端口始地址MY8255_A EQU IOY2+00H*4 ;8255的A口地址MY8255_B EQU IOY2+01H*4 ;8255的B口地址MY8255_C EQU IOY2+02H*4 ;8255的C口地址MY8255_MODE EQU IOY2+03H*4 ;8255的控制寄存器地址;*IOY3 EQU 30C0H ;片選IOY3對(duì)應(yīng)的端口始地址DA0832 EQU IOY3+00H*4 ;DA0832的端口地址 ;* STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA1 SEGMENT SINBUF DB 80H,8C
21、H,98H,0A5H,0B0H,0BCH,0C7H,0D1H ;SINBUF正弦波64點(diǎn)采樣值 DB 0DAH,0E2H,0EAH,0F0H,0F6H,0FAH,0FDH,0FFH DB 0FFH,0FDH,0FAH,0F6H,0F0H,0EAH,0E2H,0DAH DB 0D1H,0C7H,0BCH,0B0H,0A5H,98H,8CH,80H DB 7FH,73H,67H,5AH,4FH,43H,38H,2EH DB 25H,1DH,15H,0FH,09H,05H,02H,00H DB 00H,02H,05H,09H,0FH,15H,1DH,25H DB 2EH,38H,43H,4FH,5A
22、H,67H,73H,7FH SANBUF DB 00H,08H,10H,18H,20H,28H,30H,38H ;SANBUF三角波64點(diǎn)采樣值 DB 40H,48H,50H,58H,60H,68H,70H,78H DB 80H,88H,90H,98H,0A0H,0A8H,0B0H,0B8H DB 0C0H,0C8H,0D0H,0D8H,0E0H,0E8H,0F0H,0F8H DB 0F8H,0F0H,0E8H,0E0H,0D8H,0D0H,0C8H,0C0H DB 0B8H,0B0H,0A8H,0A0H,98H,90H,88H,80H DB 78H,70H,68H,60H,58H,50H,4
23、8H,40H DB 38H,30H,28H,20H,18H,10H,08H,00HFANBUF DB 32 DUP(0),32 DUP(0FFH) ;FANBUF方波64點(diǎn)采樣值LEDTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;共陰極數(shù)碼管0-F對(duì)應(yīng)輸入碼值 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H MES DB Press any key to exit!,0AH,0DH,0AH,0DH,$ ;提示語(yǔ)任意按鍵退出DOS 系統(tǒng)MESS1 DB 0DH,0AH,SQUARE-1,0DH,0AH ;功能鍵提示語(yǔ) DB TRIANGLE
24、-2,0DH,0AH DB SINE-3,0DH,0AH DB CHANGE THE FREQZ-4,0DH,0AH DB EXIT-5,0DH,0AH,$ MESS2 DB 0DH,0AH,INPUT THE FREQZ:,0Ah,0DH,$ ;提示輸入六位頻率FLAG4 DB 0H ;判斷是否初次執(zhí)行顯示頻率FLAG5 DB 0H ;判斷是否初次執(zhí)行輸入頻率CHOOSE DB 0H ;保存輸入的功能鍵JISHU DW 0H ;保存波形已經(jīng)輸出的頻率FREQZ DW ? ;保存輸入的頻率COUNT DW ? ;保存根據(jù)輸入頻率所計(jì)算得的計(jì)數(shù)初值COUNT1 DB ? ;計(jì)數(shù)初值低八位COUN
25、T2 DB ? ;計(jì)數(shù)初值高八位SHUJU DB 10 DUP(0) ;保存輸入頻率每位的真實(shí)值DATA1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA1START: MOV AX,DATA1 ;將DATA1放入數(shù)據(jù)段 MOV DS,AX P1: CALL INPUT MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,34H ;計(jì)數(shù)器0,方式2 OUT DX,AL MOV DX,MY8254_COUNT0 ;裝入計(jì)數(shù)初值 MOV AL,COUNT1 ;裝入計(jì)數(shù)初值低字節(jié) OUT DX,AL MOV AL,COUNT2 ;裝入計(jì)數(shù)初值
26、高字節(jié) OUT DX,AL CMP FLAG5,1 ;判斷是否初次執(zhí)行輸入頻率 JZ AA ;不是則跳轉(zhuǎn)到等待輸入功能鍵 CALL DISPLY ;調(diào)用數(shù)碼管顯示輸入頻率程序KL: CMP FLAG4,1 ;判斷是否初次執(zhí)行顯示頻率 JZ AA ;不是則跳轉(zhuǎn)到等待輸入功能鍵 LEA DX,MESS1 ;顯示輸入頻率的提示語(yǔ) MOV AH,09H INT 21H QUERY1:MOV DX,MY8259_ICW1 ;初始化實(shí)驗(yàn)系統(tǒng)中8259的ICW1 MOV AL,13H ;邊沿觸發(fā)、單片8259、需要ICW4 OUT DX,AL MOV DX,MY8259_ICW2 ;初始化實(shí)驗(yàn)系統(tǒng)中8259
27、的ICW2 MOV AL,08H OUT DX,AL MOV DX,MY8259_ICW4 ;初始化實(shí)驗(yàn)系統(tǒng)中8259的ICW4 MOV AL,01H ;非自動(dòng)結(jié)束EOI OUT DX,AL MOV DX,MY8259_OCW1 ;初始化實(shí)驗(yàn)系統(tǒng)中8259的OCW1 MOV AL,0FCH ;打開(kāi)IR0和IR1的屏蔽位QUERY: MOV AH,1 ;判斷是否有按鍵按下 INT 16H JNZ AA ;有按鍵則退出 MOV DX,MY8259_OCW3 ;向8259的OCW3發(fā)送查詢命令 MOV AL,0CH OUT DX,AL IN AL,DX ;讀出查詢字 TEST AL,80H ;判斷中
28、斷是否已響應(yīng) JZ QUERY ;沒(méi)有響應(yīng)則繼續(xù)查詢 AND AL,03H CMP AL,00H JE IR0ISR ;若為IR0請(qǐng)求,跳到IR0處理程序 JMP QUERY ;若不是則跳回繼續(xù)等待 QUIT: MOV AX,4C00H ;結(jié)束程序退出 INT 21H AA: MOV FLAG4,0H ;將標(biāo)志位清零以便下次判斷 MOV FLAG5,0H ;將標(biāo)志位清零以便下次判斷 MOV AH,01H ;輸入功能鍵 INT 21H MOV CHOOSE,AL ;將功能鍵保存 JMP QUERY1 ;跳轉(zhuǎn)到等待程序DISPLY PROC NEAR ;數(shù)碼管顯示程序 MOV DX,MY8255_
29、MODE ;給8255寫(xiě)入控制字 MOV AX,10000000B ;方式0,A口B口輸出 OUT DX,ALAA0: MOV AH,1 ;判斷是否有按鍵按下 INT 16H JNZ KL ;有按鍵則返回 MOV SI,OFFSET SHUJU ;將保存頻率的內(nèi)存地址給SI MOV AH,0FEH ;位選初值 MOV CX,0006H ;位選次數(shù)AA1: MOV AL,AH ;AL保存位選 MOV DX , MY8255_A ;端口地址位操作 OUT DX,AL ROL AL,01H ;下一個(gè)位地址 MOV AH,AL ;AH保存位選 MOV AL, SI ;地址取待顯示內(nèi)容 MOV BX ,
30、OFFSET LEDTAB ;將數(shù)字換成顯示的七段碼 XLAT MOV DX , MY8255_B ;數(shù)碼管輸入的端口地址 OUT DX,AL CALL DELAY ;執(zhí)行延時(shí) INC SI ;指向下一個(gè)內(nèi)存單元 LOOP AA1 ;循環(huán)點(diǎn)亮下一個(gè)LED JMP AA0DISPLY ENDP IR0ISR: ;中斷服務(wù)程序 MOV AL,CHOOSE ;將輸入的功能鍵取出至AL CMP AL,1 ;若為1輸出方波 JZ SQUARE CMP AL,2 ;若為2輸出三角波 JZ TRIANGLE CMP AL,3 ;若為3輸出正弦波 JZ SINE CMP AL,4 ;若為4則跳到X5 JZ X
31、5CMP AL,5 ;若為5則退出 JZ QUIT X5: MOV FLAG5,1 ;標(biāo)志位置1 JMP P1SQUARE: ;方波產(chǎn)生程序 MOV SI,JISHU ;將計(jì)數(shù)值放入SI MOV AL,FANBUF+SI ;將輸出的數(shù)值放入AL MOV DX,DA0832 ;將輸出值寫(xiě)入0832 OUT DX,AL INC SI ;指向下個(gè)輸出值 CMP SI,64 ;判斷是否已經(jīng)輸出64點(diǎn) JNZ LO ;若不是則跳轉(zhuǎn)L0 MOV SI,0H ;否則SI清零LO: MOV JISHU,SI ;將計(jì)數(shù)值保存 JMP EOI ;跳轉(zhuǎn)到中斷結(jié)束TRIANGLE: MOV SI,JISHU ;將計(jì)數(shù)值放入SI MOV AL,SANBUF+SI ;將輸出的數(shù)值放入AL MOV DX,DA0832 ;將輸出值寫(xiě)入0832 OUT DX,AL INC SI ;指向下個(gè)輸出值 CMP SI,64 ;判斷是否已經(jīng)輸出64點(diǎn) JNZ LO ;若不是則跳轉(zhuǎn)L0 MOV SI,0H ;否則SI清零L1: MOV JISHU,SI ;將計(jì)數(shù)值保存 JMP EOI ;跳轉(zhuǎn)到中斷結(jié)束SINE: MOV SI,JISHU ;將計(jì)數(shù)值放入SI MOV AL,SINBUF+SI ;將輸出的數(shù)值放入AL MOV DX,DA0832 ;將輸出值寫(xiě)入083
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)美術(shù)學(xué)科培訓(xùn)
- ICU護(hù)理學(xué)習(xí)文獻(xiàn)匯報(bào)
- 電梯安全知識(shí)教育
- 建筑企業(yè)質(zhì)量安全月培訓(xùn)
- 海關(guān)監(jiān)管體系課件
- 個(gè)人舞蹈教室租賃合同模板
- 罐頭食品HACCP體系評(píng)估與優(yōu)化合同
- 企業(yè)股權(quán)收購(gòu)撤銷(xiāo)及利益分配合同
- 餐飲行業(yè)食品安全事故處理協(xié)議
- 知名餐飲品牌總經(jīng)理任職及品牌推廣合同
- 合并財(cái)務(wù)報(bào)表格式(2019版)
- 心臟射頻消融術(shù)
- 《商務(wù)郵件禮儀》課件
- 《配電自動(dòng)化系統(tǒng)》課件
- 創(chuàng)業(yè)基礎(chǔ)理論與實(shí)務(wù)(寧波財(cái)經(jīng)學(xué)院)知到智慧樹(shù)章節(jié)答案
- 《某飛機(jī)場(chǎng)物業(yè)管理服務(wù)方案》
- 《讓子彈飛》電影賞析
- 移動(dòng)OA系統(tǒng)建設(shè)方案
- DB34T∕ 2423-2015 安徽省城市道路交叉口信號(hào)控制設(shè)計(jì)規(guī)范
- 2023年南京市衛(wèi)健委所屬部分事業(yè)單位招聘考試試題及答案
- 安徽省合肥市2023-2024學(xué)年七年級(jí)下學(xué)期期末考試數(shù)學(xué)試卷(含答案)
評(píng)論
0/150
提交評(píng)論