欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      微機(jī)原理課設(shè)[五篇范例]

      時(shí)間:2019-05-13 22:54:32下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《微機(jī)原理課設(shè)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《微機(jī)原理課設(shè)》。

      第一篇:微機(jī)原理課設(shè)

      微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與綜合專業(yè)班級(jí)學(xué)生姓名學(xué)生學(xué)號(hào)指導(dǎo)老師實(shí)驗(yàn)課程設(shè)計(jì)

      ——信號(hào)發(fā)生器功能程序設(shè)計(jì)

      第一章

      設(shè)計(jì)課題概述

      本學(xué)期開(kāi)設(shè)的《微型計(jì)算機(jī)原理與接口技術(shù)》理論課程是一門專業(yè)基礎(chǔ)課程,1.1 課程設(shè)計(jì)目的

      它的主要內(nèi)容包括微型計(jì)算機(jī)體系結(jié)構(gòu)、8086 微處理器和指令系統(tǒng)、匯編語(yǔ)言設(shè)計(jì)以及微型計(jì)算機(jī)各個(gè)組成部分介紹等內(nèi)容。要求學(xué)生對(duì)微機(jī)原理中的基本概念有較深入的了解,能夠系統(tǒng)地掌握微型計(jì)算機(jī)的結(jié)構(gòu)、8086 微處理器和指令系統(tǒng)、匯編語(yǔ)言程序設(shè)計(jì)方法、微機(jī)系統(tǒng)的接口電路設(shè)計(jì)及編程方法等,并具有綜合運(yùn)用所學(xué)知識(shí)分析問(wèn)題和解決問(wèn)題的能力。

      《微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與綜合實(shí)驗(yàn)(實(shí)踐)》課程設(shè)計(jì),讓學(xué)生對(duì)微機(jī)系統(tǒng)有一個(gè)較全面的理解,掌握常規(guī)的芯片使用方法、掌握簡(jiǎn)單的微型計(jì)算機(jī)應(yīng)用系統(tǒng)軟硬件的設(shè)計(jì)方法,對(duì)典型數(shù)字接口電路的應(yīng)用技術(shù)有一個(gè)較深入的掌握,并對(duì)應(yīng)用系統(tǒng)進(jìn)行硬件原理和軟件編程進(jìn)行分析、設(shè)計(jì)和調(diào)試,達(dá)到基本掌握簡(jiǎn)單微型計(jì)算機(jī)應(yīng)用系統(tǒng)軟硬件的設(shè)計(jì)方法,提高項(xiàng)目開(kāi)發(fā)能力的目的。課程中要求學(xué)生根據(jù)課程設(shè)計(jì)指導(dǎo)書來(lái)選擇課題,并且獨(dú)立完成課題,寫出課程設(shè)計(jì)說(shuō)明書,畫出電路原理圖,說(shuō)明工作原理,畫出電路板圖,編寫程序以及程序流程圖。

      針對(duì)《信號(hào)發(fā)生器功能程序設(shè)計(jì)》這一課題,主要涉及到硬件的連接(主要用到芯片有:8086CPU,DAC0832,8255,74LS273,74LS138,運(yùn)放等)以及數(shù)碼管,鍵盤矩陣硬件,示波器等連接原理圖,程序的編寫(主要涉及到顯示波形,數(shù)碼管顯示以及通過(guò)小鍵盤來(lái)對(duì)波形進(jìn)行選擇控制)以及各個(gè)子程序或程序段的程序流程等,通過(guò)課程設(shè)計(jì)不僅可以鍛煉學(xué)生在微機(jī)應(yīng)用方面的實(shí)際工作能力,將所學(xué)轉(zhuǎn)化為所用,更是一個(gè)鍛煉解決實(shí)際問(wèn)題能力的很好機(jī)會(huì)。

      1.2 課程設(shè)計(jì)要求

      (1)、分別用C語(yǔ)言和匯編語(yǔ)言編程完成硬件接口功能設(shè)計(jì);(2)、硬件電路基于80x86微機(jī)的接口電路;

      (3)、程序功能要求:小鍵盤給定、數(shù)碼管(屏幕)顯示,并產(chǎn)生對(duì)應(yīng)信號(hào)波形(D/A)輸出(信號(hào)波形包括正弦波、三角波、方波、鋸齒波)、輸出信號(hào)波形幅度、頻率可調(diào)。(注意:按鍵數(shù)量應(yīng)盡量少)。

      ? 實(shí)現(xiàn)技術(shù)指標(biāo)

      (1)、完全用小鍵盤控制各波形間的切換和頻率和幅值的調(diào)節(jié)以及退出。(2)、實(shí)現(xiàn)正弦波、三角波、方波和鋸齒波信號(hào)的產(chǎn)生。(3)、數(shù)碼管同步顯示當(dāng)前工作波形的頻率和幅值。(4)、實(shí)現(xiàn)頻率的1到5倍可調(diào)。(5)、實(shí)現(xiàn)幅值的1到5倍可調(diào)。

      ? 使用說(shuō)明

      (1)、小鍵盤第一列對(duì)應(yīng)0-3,第二列對(duì)應(yīng)4—7。

      (2)、開(kāi)始選擇0—3分別對(duì)應(yīng)方波,三角波,鋸齒波,正弦波。同時(shí)數(shù)碼管會(huì)顯示當(dāng)前波形的幅值和頻率。

      (3)、有波形產(chǎn)生以后,再調(diào)節(jié)幅值和頻率。0對(duì)應(yīng)增大頻率,1對(duì)應(yīng)減小頻率,2對(duì)應(yīng)減小幅值,3對(duì)應(yīng)增大幅值。

      (4)、頻率和幅值可以實(shí)現(xiàn)1到5倍可調(diào),同時(shí)數(shù)碼管會(huì)顯示當(dāng)前波形的幅值和頻率的倍數(shù)(1~5)。

      (5)、任何時(shí)候4都對(duì)應(yīng)退出,回到最開(kāi)始的選擇波形狀態(tài),數(shù)碼管歸零。

      第二章 設(shè)計(jì)思想和實(shí)施方案

      2.1功能分析

      2.1.1波形產(chǎn)生

      由于要由數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào)來(lái)產(chǎn)生波形,因此要由D/A轉(zhuǎn)換芯片DAC0832來(lái)完成此項(xiàng)任務(wù)。通過(guò)匯編語(yǔ)言編寫各個(gè)波形子程序,由于要顯示波形,所以每輸出一個(gè)值,都要進(jìn)行一定時(shí)間的延時(shí),掃描沒(méi)有按鍵按下后再輸出下一個(gè)值,直到形成一個(gè)周期的代碼。利用循環(huán),就可產(chǎn)生連續(xù)波形代碼,再通過(guò)8255輸出給DAC0832,將數(shù)字量轉(zhuǎn)換成模擬量輸出,即可得各種波形。具體方案在后面有分析。

      2.1.2波形切換

      波形的選擇和調(diào)節(jié)由小鍵盤控制。第一列從上到下編碼為0,1,2,3,分別對(duì)應(yīng)方波、三角波、鋸齒波、正弦波。第二列第一個(gè)鍵的鍵值為4,對(duì)應(yīng)退出波形,可以重新選擇波形,實(shí)現(xiàn)波形切換。當(dāng)沒(méi)有輸出波形的時(shí)候,也就是輸出為零,選擇0到3就會(huì)進(jìn)入相應(yīng)的波形子程序。進(jìn)入波形子程序以后,每一個(gè)點(diǎn)輸出之前都會(huì)調(diào)用掃描子程序,判斷是否有鍵按下,有則跳轉(zhuǎn)到相應(yīng)的程序斷去執(zhí)行,無(wú)則繼續(xù)。由于小鍵盤掃描在程序總是存在的,因此可隨時(shí)進(jìn)行波形間的切換。

      2.1.3 數(shù)碼管顯示

      數(shù)碼管同步顯示當(dāng)前波形的幅值和頻率。硬件上由8086將數(shù)據(jù)輸出給8255,8255再將輸出送給數(shù)碼管的A~Dp,顯示相應(yīng)字符。軟件上定義一個(gè)緩沖區(qū)存放波形的幅值和頻率,顯示數(shù)碼管時(shí),利用緩沖區(qū)的數(shù)值查找數(shù)碼管鍵值表再輸出對(duì)應(yīng)數(shù)值。循環(huán)輸出波形時(shí)也循環(huán)輸出緩沖區(qū)內(nèi)容對(duì)應(yīng)的值,就可以同步顯示波形的幅值和頻率。利用小鍵盤掃描得到的鍵值進(jìn)行判斷,對(duì)緩沖區(qū)內(nèi)的幅值頻率進(jìn)行相應(yīng)的改變,使數(shù)碼管能顯示不同的幅值和頻率。

      2.1.4小鍵盤控制

      使用實(shí)驗(yàn)箱上4×4鍵盤,可以實(shí)現(xiàn)切換波形,調(diào)頻、調(diào)幅和退出波形的控制功能。Protues內(nèi)的鍵盤矩陣掃描時(shí)輪流選通一行,然后從端口處讀取列數(shù)據(jù),如果有按鍵則讀取的數(shù)據(jù)肯定有一位為0,經(jīng)過(guò)取反后,盡有一位為1,然后再根據(jù)選取的列和讀取的行值,確定按的是哪一個(gè)鍵,然后將鍵值編碼保存在一個(gè)名為keyass的存儲(chǔ)單元里。當(dāng)有鍵按下時(shí),從keyass內(nèi)取出鍵值進(jìn)行判斷,就能轉(zhuǎn)入相應(yīng)的子程序進(jìn)行控制,并且鍵盤掃描、獲取鍵值等子程序也能夠很好的嵌入在其他程序中,方便調(diào)用。

      2.1.5有極調(diào)頻

      改變波形子程序中的各個(gè)數(shù)據(jù)輸出時(shí)間,即延時(shí),就可改變整個(gè)波形的頻率。延時(shí)越短頻率越高。定義三個(gè)緩沖區(qū)來(lái)存放延時(shí),其中一個(gè)存放初始值3,一個(gè)存放當(dāng)前波形的延時(shí),還有一個(gè)作為中間暫存用。產(chǎn)生波形以后,取出延時(shí)初值存入中間暫存緩沖區(qū),再掃描鍵盤:0對(duì)應(yīng)減小延時(shí),1對(duì)應(yīng)增大延時(shí),無(wú)鍵則不改變延時(shí)。對(duì)暫存區(qū)的數(shù)值進(jìn)行相應(yīng)操作后,將最后的值存入名為tiaopin的緩沖區(qū)內(nèi)作為當(dāng)前波形的延時(shí)。

      2.1.6有極調(diào)幅

      和有級(jí)調(diào)頻類似,有極調(diào)幅也是定義三個(gè)緩沖區(qū),功能和有極調(diào)頻類似。幅值緩沖區(qū)存放的是輸出點(diǎn)的值的放大倍數(shù),調(diào)節(jié)放大倍數(shù)也就使幅值改變了。產(chǎn)生波形以后,取出倍數(shù)初值存入中間暫存緩沖區(qū),再掃描鍵盤:2對(duì)應(yīng)減小倍數(shù),3對(duì)應(yīng)增大倍數(shù),無(wú)鍵則不改變倍數(shù)。對(duì)暫存區(qū)的數(shù)值進(jìn)行相應(yīng)操作后,將最后的值存入名為tiaofu的緩沖區(qū)內(nèi)作為當(dāng)前波形的幅值放大倍數(shù)。

      2.1.6開(kāi)始結(jié)束

      用小鍵盤第二列第一個(gè)也就是4來(lái)結(jié)束波形,無(wú)論在什么時(shí)候只在小鍵盤掃描到了4鍵,它就會(huì)無(wú)條件跳出程序,返回起始狀態(tài),等待選擇波形,同時(shí)數(shù)碼管顯示零。

      2.2所用芯片功能簡(jiǎn)介

      2.2.1 8086功能簡(jiǎn)介

      8086 CPU是由總線接口部件BIU和執(zhí)行部件EU這兩大部分構(gòu)成??偩€接口部件BIU是8086 CPU在存儲(chǔ)器和I/O設(shè)備之間的接口部件,負(fù)責(zé)對(duì)全部引腳的操作,即8086對(duì)存儲(chǔ)器和I/O設(shè)備的所有操作都是由BIU完成的。所有對(duì)外部總線的操作都必須有正確的地址和適當(dāng)?shù)目刂菩盘?hào),BIU中的各部件主要是圍繞這個(gè)目標(biāo)設(shè)計(jì)的。它提供了16位雙向數(shù)據(jù)總線、20位地址總線和若干條控制總線。

      其具體任務(wù)是:負(fù)責(zé)從內(nèi)存單元中預(yù)取指令,并將它們送到指令隊(duì)列緩沖器暫存。CPU執(zhí)行指令時(shí),總線接口單元要配合執(zhí)行單元,從指定的內(nèi)存單元或I/O端口中取出數(shù)據(jù)傳送給執(zhí)行單元,或者把執(zhí)行單元的處理結(jié)果傳送到指定的內(nèi)存單元或I/O端口中。

      執(zhí)行單元EU中包含1個(gè)16位的運(yùn)算器ALU、8個(gè)16位的寄存器、1個(gè)16位標(biāo)志寄存器FR、1個(gè)運(yùn)算暫存器和執(zhí)行單元的控制電路。這個(gè)單元進(jìn)行所有指令的解釋和執(zhí)行,同時(shí)管理上述有關(guān)的寄存器。EU對(duì)指令的執(zhí)行是從取指令操作碼開(kāi)始的,它從總線接口單元的指令隊(duì)列緩沖器中每次取一個(gè)字節(jié)。如果指令隊(duì)列緩沖器中是空的,那么EU就要等待BIU通過(guò)外部總線從存儲(chǔ)器中取得指令并送到EU,通過(guò)譯碼電路分析,發(fā)出相應(yīng)控制命令,控制ALU數(shù)據(jù)總線中數(shù)據(jù)的流向。

      管腳圖如下:

      2.2.2 8255A功能簡(jiǎn)介

      8255A具有24條輸入/輸出引腳、可編程的通用并行輸入/輸出接口電路。它是一片使用單一+5V電源的40腳雙列直插式大規(guī)模集成電路。8255A的通用性強(qiáng),使用靈活,通過(guò)它CPU可直接與外設(shè)相連。

      8255A在使用前要寫入一個(gè)方式控制字,選擇A、B、C三個(gè)端口各自的工作方式,共有三種。方式0 :基本的輸入輸出方式,即無(wú)須聯(lián)絡(luò)就可以直接進(jìn)行的 I/O方式。其中A、B、C口的高四位或低四位可分別設(shè)置成輸入或輸出;方式1 :選通I/O,此時(shí)接口和外圍設(shè)備需聯(lián)絡(luò)信號(hào)進(jìn)行協(xié)調(diào),只有A口和B口可以工作在方式1,此時(shí)C口的某些線被規(guī)定為A口或B口與外圍設(shè)備的聯(lián)絡(luò)信號(hào),余下的線只有基本的I/O功能,即只工作在方式0;方式2: 雙向I/O方式,只有A口可以工作在這種方式,該I/O線即可輸入又可輸出,此時(shí)C口有5條線被規(guī)定為A口和外圍設(shè)備的雙向聯(lián)絡(luò)線,C口剩下的三條線可作為B口方式1的聯(lián)絡(luò)線,也可以和B口一起方式0的I/O線。

      管腳圖如下:

      2.2.3 DAC0832功能簡(jiǎn)介

      DAC0832是采用CMOS工藝制成的單片電流輸出型8位數(shù) / 模轉(zhuǎn)換器。它由倒T型R-2R電阻網(wǎng)絡(luò)、模擬開(kāi)關(guān)、運(yùn)算放大器和參考電壓VREF四大部分組成。電路有極好的溫度跟隨性,使用了COMS電流開(kāi)關(guān)和控制邏輯而獲得低功耗、低輸出的泄漏電流誤差。集成電路內(nèi)有兩級(jí)輸入寄存器,使DAC0832芯片具備雙緩沖、單緩沖和直通三種輸入方式,以便適于各種電路的需要.DAC0832有8個(gè)輸入端(其中每個(gè)輸入端是8位二進(jìn)制數(shù)的一位),有一個(gè)模擬輸出端。輸入可有2的8次方,即256個(gè)不同的二進(jìn)制組態(tài),輸出為256個(gè)電壓之一,即輸出電壓不是整個(gè)電壓范圍內(nèi)任意值,而只能是256個(gè)可能值。

      D/A轉(zhuǎn)換結(jié)果采用電流形式輸出。若需要相應(yīng)的模擬電壓信號(hào),可通過(guò)一個(gè)高輸入阻抗的線性運(yùn)算放大器實(shí)現(xiàn)。運(yùn)放的反饋電阻可通過(guò)RFB端引用片內(nèi)固有電阻,也可外接。DAC0832邏輯輸入滿足TTL電平,可直接與TTL電路或微機(jī)電路連接。

      DAC0832的管腳圖如下:

      2.2.4 74LS273功能簡(jiǎn)介

      地址鎖存器就是一個(gè)暫存器,它根據(jù)控制信號(hào)的狀態(tài),將總線上地址代碼暫存起來(lái)。8086/8088數(shù)據(jù)和地址總線采用分時(shí)復(fù)用操作方法,即用同一總線既傳輸數(shù)據(jù)又傳輸?shù)刂?。?dāng)微處理器與存儲(chǔ)器交換信號(hào)時(shí),首先由CPU發(fā)出存儲(chǔ)器地址,同時(shí)發(fā)出允許鎖存信號(hào)ALE給鎖存器,當(dāng)鎖存器接到該信號(hào)后將地址/數(shù)據(jù)總線上的地址鎖存在總線上,隨后才能傳輸數(shù)據(jù)。

      地址鎖存器74LS273是帶清除端的八D觸發(fā)器,只有清除端為高電平時(shí)才具有鎖存功能,鎖存控制端為11腳CLK,在上升沿鎖存。8086的ALE端輸出的鎖存控制信號(hào)必須經(jīng)反相器后才能連到74LS273的CLK端,以滿足CLK在上升沿鎖存的要求。74LS273的引腳1D~8D為數(shù)據(jù)輸入端,1Q~8Q為數(shù)據(jù)輸出端,WR:主清除端,低電平觸發(fā),即當(dāng)為低電平時(shí),芯片被清除,輸出全為0。CP(CLK):觸發(fā)端,上升沿觸發(fā),即當(dāng)CP從低到高電平時(shí),D0~D7的數(shù)據(jù)通過(guò)芯片,為0時(shí)將數(shù)據(jù)鎖存,D0~D7的數(shù)據(jù)不變。由于8086有20位物理地址,所以需要用3片74LS273級(jí)聯(lián)。

      74LS273的管腳圖如右:

      2.3 實(shí)施方案

      2.3.1系統(tǒng)總體設(shè)計(jì)方案

      該設(shè)計(jì)包括硬件設(shè)計(jì)和軟件設(shè)計(jì)兩部分。

      1.硬件上要求以8086CPU為核心進(jìn)行電路設(shè)計(jì)。完全用小鍵盤對(duì)波形進(jìn)行控制。小鍵盤作為產(chǎn)生波形、波形切換、調(diào)節(jié)頻率,調(diào)節(jié)幅值、退出波形的控制端口。8255A芯片完成對(duì)小鍵盤掃描,獲取鍵值編碼以及輸出到數(shù)碼管。通過(guò)DAC0832將數(shù)字量轉(zhuǎn)換成模擬量輸出,再由轉(zhuǎn)換電路將電流輸出轉(zhuǎn)換為電壓輸出產(chǎn)生各種波形,通過(guò)虛擬示波器顯示出波形。由于8255A的A,B,C端口都已使用,所以采用鍵盤控制進(jìn)行幅值和頻率的有極調(diào)節(jié)。

      2.軟件方面要設(shè)計(jì)方波,三角波,鋸齒波,正弦波何時(shí)產(chǎn)生,如何產(chǎn)生,何時(shí)退出,并且還要設(shè)計(jì)如何通過(guò)對(duì)按鍵的判斷,對(duì)頻率和幅值進(jìn)行調(diào)節(jié)。

      方波比較簡(jiǎn)單,先掃描鍵盤,無(wú)鍵按下時(shí)輸出零,保持一個(gè)延時(shí),再掃描鍵盤,無(wú)鍵按下時(shí)輸出20H的倍數(shù),該倍數(shù)就是我定義的幅值,再延時(shí),循環(huán)該周期就可得到方波。如果有鍵按下就會(huì)轉(zhuǎn)入相應(yīng)子程序。

      三角波分為兩段,因它的上升斜坡和下降斜坡都是線性關(guān)系,所以只要由數(shù)字量的增減來(lái)控制就可以了。產(chǎn)生上升斜坡時(shí)讓輸出值從零開(kāi)始逐漸遞增,其上升的最大值是30乘以放大倍數(shù),相反,產(chǎn)生下降斜坡時(shí),讓輸出值從最大值逐漸遞減到零。為簡(jiǎn)單起見(jiàn),這里采用的是查表法,在數(shù)據(jù)段定義了三角波函數(shù)表,規(guī)律如上。其幅值由放大倍數(shù)控制,頻率是由輸出點(diǎn)之間的延時(shí)來(lái)控制。

      鋸齒波截取三角波的上升斜坡部分,到達(dá)最大值后就跳回最低值0,方法與三角波相同,也采用查表法。先定義了鋸齒波的函數(shù)表,輸出時(shí)只要按著函數(shù)表一個(gè)一個(gè)往下輸出,當(dāng)顯示到最大值即一個(gè)周期內(nèi)的最后一個(gè)值再將指針指向表的首地址就開(kāi)始了新的周期。其幅值由放大倍數(shù)控制,頻率是由輸出點(diǎn)之間的延時(shí)來(lái)控制。

      正弦波也是用的查表法。該方法的優(yōu)點(diǎn)是速度快,但在精度高的情況下要求的存儲(chǔ)器容量也要增大,所以此種方法應(yīng)用在對(duì)精度要求不高的場(chǎng)合。本程序中制造了一張正弦數(shù)字量表,即查函數(shù)表得到的值轉(zhuǎn)換成十進(jìn)制數(shù)填表。一個(gè)周期內(nèi),采樣點(diǎn)越多,精度越高,本實(shí)驗(yàn)中采樣點(diǎn)為40點(diǎn)/周期。正弦數(shù)字量表中的值為參考值,對(duì)于不同幅值的正弦波可以通過(guò)把表中的每個(gè)值乘以相同的倍數(shù)得到,其頻率由改變輸出點(diǎn)之間的延時(shí)來(lái)實(shí)現(xiàn)。

      頻率和幅值的調(diào)節(jié)由每個(gè)點(diǎn)的延時(shí)和幅值的放大倍數(shù)決定。在各個(gè)波形輸出之前,先讀取頻率和幅值的初值,若要增加(減小)頻率,則使延時(shí)減(加)1;若要增大(減?。┓担瑒t使原幅值基礎(chǔ)值得放大倍數(shù)加(減)1。然后再將改變后的幅值頻率送給原波形進(jìn)行輸出,同時(shí),幅值和頻率的值作為偏移量查找數(shù)碼管顯示表,然后送給對(duì)應(yīng)的數(shù)碼管顯示。

      2.3.2系統(tǒng)設(shè)計(jì)方框圖

      第三章 典型程序模塊及編程技巧分析

      3.1鍵盤掃描模塊

      小鍵盤工作原理:

      (1)初始化8255的工作方式:A,B口作為輸出,C口低四位作為輸入。矩陣的X1~X4接到輸出端口PA0-PA3上,用程序控制4條行線的輸出。4條列線Y1~Y4連接到輸入端口C的PC0-PC3。用讀指令讀取C口狀態(tài)時(shí),可讀取鍵盤的列號(hào)。

      (2)在無(wú)鍵按下的時(shí)候,由于接到+5V上的上拉電阻的作用,列線被置成高電平。壓下某一個(gè)鍵所在的行線和列線接通。這時(shí),如果向被壓下的鍵所在的行線上輸出一個(gè)低電平信號(hào),則對(duì)應(yīng)的列線也呈現(xiàn)低電平。當(dāng)從C口讀取列線信號(hào)時(shí),便能檢測(cè)到該列線上的低電平。

      (3)掃描鍵盤時(shí),A口輸出全0,讀C口,取低四位再取反,若為0則無(wú)鍵輸入,若不為零則轉(zhuǎn)獲取鍵值子程序。獲取鍵值時(shí),對(duì)X1到X4輪流選中,即輪流輸出0。先把第一行賦0,讀C口檢測(cè)是不是第一行,不是再繼續(xù)第二行,沒(méi)有的話總共循環(huán)4次跳出循環(huán),這樣根據(jù)選中的行和讀入的列狀態(tài)中低電平的位置,便能確定哪個(gè)鍵被按下了。檢測(cè)到按鍵后,對(duì)壓下的鍵進(jìn)行編碼,將該鍵的行列信號(hào)轉(zhuǎn)化成16進(jìn)制碼,將鍵值存入緩沖區(qū),以便以后利用進(jìn)行判斷比較。接著繼續(xù)掃描按鍵,等待按鍵釋放。

      具體的實(shí)現(xiàn)如下:

      CCSCAN掃描按鍵是否有鍵按下: CCSCAN PROC

      NEAR

      ;掃描是否有按鍵閉合子程序

      MOV

      AL,00H

      MOV

      DX,MY8255_A;將4列全選通,X1~X4置0

      OUT

      DX,AL

      MOV

      DX,MY8255_C

      IN

      AL,DX

      ;讀Y1~Y4

      NOT

      AL

      AND

      AL,0FH

      ;取出Y1~Y4的反值

      RET

      CCSCAN ENDP

      如果有按鍵,就獲取按鍵碼的功能,4×4鍵盤的編碼, 從上到下,從左到右,依次編碼為0~F, 如果有按鍵, 則轉(zhuǎn)入到按鍵處理子程序模塊執(zhí)行, 如果沒(méi)有,則返回主程序循環(huán)。具體的實(shí)現(xiàn)代碼如下:

      GETKEY1 PROC

      NEAR

      ;獲取鍵值子程序

      CALL

      DIS

      ;顯示刷新

      CALL

      DALLY

      ;延時(shí)

      CALL

      DALLY

      ;延時(shí)

      CALL

      CLEAR

      ;清屏

      CALL

      JNZ

      JMP

      GETKEY2: MOV

      MOV

      COLUM: MOV

      MOV

      OUT

      MOV

      IN

      L1: TEST

      JNZ

      MOV

      JMP

      L2: TEST

      JNZ

      MOV

      JMP

      L3: TEST

      JNZ

      MOV

      JMP

      L4: TEST

      JNZ

      MOV

      KCODE: ADD

      CCSCAN

      ;再次掃描按鍵

      GETKEY2

      ;有鍵按下則跳置GETKEY2 BEGIN1

      ;否則跳回開(kāi)始繼續(xù)循環(huán)

      CH,0FEH

      CL,00H

      ;設(shè)置當(dāng)前檢測(cè)的是第幾列

      AL,CH

      ;選取一列,將X1~X4中一個(gè)置0

      DX,MY8255_A DX,AL

      DX,MY8255_C;讀Y1~Y4,用于判斷哪一行按鍵閉合 AL,DX

      AL,01H

      ;是否為第1行 L2

      ;不是則繼續(xù)判斷

      AL,00H

      ;設(shè)置第1行第1列的對(duì)應(yīng)的鍵值

      KCODE

      AL,02H

      ;是否為第2行 L3

      ;不是則繼續(xù)判斷

      AL,04H

      ;設(shè)置第2行第1列的對(duì)應(yīng)的鍵值

      KCODE

      AL,04H

      ;是否為第3行 L4

      ;不是則繼續(xù)判斷

      AL,08H

      ;設(shè)置第3行第1列的對(duì)應(yīng)的鍵值

      KCODE

      AL,08H

      ;是否為第4行 NEXT

      ;不是則繼續(xù)判斷

      AL,0CH

      ;設(shè)置第4行第1列的對(duì)應(yīng)的鍵值

      AL,CL

      ;將第1列的值加上當(dāng)前列數(shù),確定按鍵值

      CALL

      PUTBUF

      ;保存按鍵值

      PUSH

      AX

      KON: CALL

      DIS

      ;顯示刷新

      CALL

      CLEAR

      ;清屏

      CALL

      CCSCAN

      ;掃描按鍵,判斷按鍵是否彈起

      JNZ

      KON

      ;未彈起則繼續(xù)循環(huán)等待彈起

      POP

      AX

      NEXT: INC

      CL

      ;當(dāng)前檢測(cè)的列數(shù)遞增

      MOV

      AL,CH

      TEST

      AL,08H

      ;檢測(cè)是否掃描到第4列

      JZ

      KERR

      ;是則跳回到開(kāi)始處

      ROL

      AL,1

      ;沒(méi)檢測(cè)到第4列則準(zhǔn)備檢測(cè)下一列

      MOV

      CH,AL

      JMP

      COLUM

      KERR: RET

      GETKEY1 ENDP PUTBUF PROC

      NEAR

      ;保存鍵值子程序

      MOV

      DI,OFFSET KEY

      MOV

      [DI],AL

      CMP

      DI,2FFFH

      JNZ

      GOBACK

      MOV

      DI,3004H

      GOBACK: RET

      PUTBUF ENDP

      3.2數(shù)碼管顯示模塊

      4個(gè)數(shù)碼管的X端為選通端,將小鍵盤的X1~X4對(duì)應(yīng)接到數(shù)碼管,這樣掃描小鍵盤的時(shí)候,也就選中了數(shù)碼管,當(dāng)調(diào)用getkey1獲取鍵值子程序的時(shí)候,數(shù)碼管輪流選中,也就可以控制哪個(gè)數(shù)碼管顯示什么內(nèi)容。通過(guò)對(duì)8255寫入數(shù)據(jù),由B口輸出給數(shù)碼管的A~Dp,當(dāng)沒(méi)有波形輸入時(shí),數(shù)碼管顯示0數(shù)碼管;定義兩個(gè)緩沖區(qū)存放幅值和頻率,有波形輸出時(shí),同步顯示該波形的幅值和頻率。

      先在數(shù)據(jù)段定義一個(gè)緩沖區(qū)存放數(shù)碼管顯示0~F的段位值表: DTABLE DB

      3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB

      7FH,6FH,77H,7CH,39H,5EH,79H,71H 因?yàn)橐恢憋@示數(shù)碼管,所以將顯示部分作為子程序,方便經(jīng)常調(diào)用。DIS PROC

      NEAR

      ;顯示鍵值子程序

      AGAIN:

      PUSH

      AX

      ;以緩沖區(qū)存放的鍵值為鍵值表偏移找到鍵值

      并顯示

      MOV

      SI,3000H

      ;緩沖區(qū)3000H內(nèi)存放了當(dāng)前波形的幅

      值,3001H存放了頻率。

      MOV

      DL,0F7H MOV

      AL,DL PUSH

      DX MOV

      DX,MY8255_A OUT

      DX,AL

      ;設(shè)置X1~X4,選通一個(gè)數(shù)碼管 MOV

      AL,[SI]

      ;取出緩沖區(qū)中存放鍵值 MOV

      BX,OFFSET DTABLE AND

      AX,00FFH ADD

      BX,AX MOV

      AL,[BX]

      ;將鍵值作為偏移和鍵值基地址相加得到

      相應(yīng)的鍵值

      MOV

      DX,MY8255_B OUT

      DX,AL

      ;寫入數(shù)碼管A~Dp CALL

      DALLY INC

      SI

      ;取下一個(gè)鍵值 POP

      DX MOV

      AL,DL TEST

      AL,01H

      ;判斷是否顯示完? JZ

      OUT1

      ;顯示完,返回 ROR

      AL,1 MOV

      DL,AL

      JMP

      AGAIN

      ;未顯示完,跳回繼續(xù)

      OUT1: POP

      AX

      RET

      DIS ENDP 3.3有級(jí)調(diào)頻調(diào)幅判斷及控制模塊

      改變波形產(chǎn)生子程序中的各個(gè)數(shù)據(jù)輸出時(shí)間,及延時(shí),就可改變整個(gè)波形的頻率。改變波形產(chǎn)生子程序中的每次輸出數(shù)值的放大倍數(shù),就可以改變整個(gè)波形的幅值。而實(shí)現(xiàn)有級(jí)變化的初值是在數(shù)據(jù)段預(yù)先定義的數(shù)據(jù)表。

      在選擇波形以后,才能調(diào)節(jié)頻率和幅值,頻率和幅值的調(diào)節(jié)由小鍵盤控制。在3000H和3001H的緩沖區(qū)內(nèi)存放了幅值和頻率的初值3,在每個(gè)波形輸出之前先掃描鍵盤,鍵值存在KEY里,對(duì)KEY值進(jìn)行判斷后,取出緩沖區(qū)的初值做相應(yīng)改變:0選擇增大頻率,1選擇減小頻率,2選擇減小幅值,3選擇增大幅值,4退出波形,返回開(kāi)始狀態(tài)。

      具體的實(shí)現(xiàn)代碼如下:

      AMPLFENC PROC

      NEAR

      ;調(diào)節(jié)幅值頻率子程序

      CALL

      DIS

      ;刷新

      CALL

      CCSCAN

      ;再次掃描按鍵

      JNZ

      TRI1

      ;有鍵按下則跳置tri1

      JMP

      TRI5

      ;沒(méi)按鍵按下就跳出該子程序

      TRI1: CALL

      DIS

      ;刷新

      CALL

      GETKEY1

      MOV

      SI,OFFSET KEY

      MOV

      AL,[SI]

      CMP

      AL,4

      ;第五個(gè)鍵就退出

      JZ

      TRI10

      JZ

      TRI5

      CMP

      AL,0

      ;第一個(gè)鍵減少周期

      JNZ

      TRI2

      MOV

      DI,3001H

      ;取延時(shí)初值

      MOV

      BL,[DI]

      CMP

      BL,01H

      JE

      TRI5

      DEC

      BL

      MOV

      [DI],BL

      JMP

      TRI5

      TRI2: CMP

      AL,1

      ;第二個(gè)鍵增加周期

      JNZ

      MOV

      MOV

      CMP

      JE

      INC

      MOV

      JMP

      TRI3: CMP

      JNZ

      MOV

      MOV

      CMP

      JE

      DEC

      MOV

      JMP

      TRI4: CMP

      JNZ

      MOV

      MOV

      CMP

      JE

      INC

      MOV

      JMP

      TRI3

      DI,3001H BL,[DI] BL,05H TRI5 BL [DI],BL TRI5

      AL,2

      TRI4 DI,3000H

      BL,[DI]

      BL,01H TRI5 BL [DI],BL TRI5

      AL,3

      TRI5 DI,3000H

      BL,[DI]

      BL,05H TRI5 BL [DI],BL TRI5

      ;取延時(shí)初值;第三個(gè)鍵減少幅度

      ;取幅值初值;第四個(gè)鍵增加幅度

      ;取幅值初值

      TRI10: JMP

      FAR PTR BEGIN0

      TRI5: RET

      AMPLFENC ENDP

      3.4 波形切換及基本控制模塊

      這個(gè)模塊是本次設(shè)計(jì)的主程序,它控制了波形的輸出和切換。它是根據(jù)對(duì)小鍵盤的操作來(lái)實(shí)現(xiàn)的,不同按鍵對(duì)應(yīng)的編碼轉(zhuǎn)入不同模塊(0:方波,1:三角波,2:鋸齒波,3:正弦波,4:退出波形)。先掃描鍵盤是否有鍵按下,若無(wú)循環(huán)等待,若有則將鍵值保存再比較,然后實(shí)現(xiàn)相應(yīng)操作。為使程序可循環(huán)使用,不至于顯示一次波形就退出,在執(zhí)行完子程序返回時(shí),不退出系統(tǒng),而是返回到開(kāi)始等待輸入狀態(tài),這樣就能切換波形。

      具體的實(shí)現(xiàn)代碼如下:

      BEGIN0: MOV

      SI,3000H

      ;把數(shù)碼管清0

      MOV

      AL,00H

      ;先初始化鍵值為0

      MOV

      [SI],AL

      MOV

      AL,00H

      MOV

      [SI+1],AL

      MOV

      AL,00H

      MOV

      [SI+2],AL

      MOV

      AL,00H

      MOV

      [SI+3],AL

      MOV

      SI,OFFSET KEY

      MOV

      AL,00H

      MOV

      [SI],AL BEGIN1: CALL

      DIS

      ;顯示刷新

      CALL

      CCSCAN

      ;再次掃描按鍵

      JNZ

      LBEGIN0

      ;有鍵按下則跳置LBEGIN0

      JMP

      BEGIN1;不是按下第一或二鍵就繼續(xù)等待輸入

      LBEGIN0: CALL

      GETKEY1

      ;第二個(gè)菜單等待輸入

      CALL

      DIS

      MOV

      SI,OFFSET KEY

      MOV

      AL,[SI]

      CMP

      AL,4

      ;第5個(gè)鍵退出

      JZ

      BEGIN0

      CMP

      AL,0

      ;第1個(gè)鍵到squ(方波)函數(shù)

      JZ

      LBEGIN1

      CMP

      AL,1

      ;第2個(gè)鍵到tri(三角波)函數(shù)

      JZ

      LBEGIN2

      CMP

      AL,2

      ;第3個(gè)鍵到rec(鋸齒)函數(shù)

      JZ

      LBEGIN3

      CMP

      AL,3

      ;第4個(gè)鍵到sin(正弦)函數(shù)

      JZ

      LBEGIN4

      JMP

      BEGIN1

      ;其他鍵則跳到繼續(xù)等待輸入

      LBEGIN1: CALL

      SQUREW

      ;SQUARE

      JMP

      BEGIN0

      LBEGIN2: CALL

      TRIW

      ;TRIANGLE

      JMP

      BEGIN0

      LBEGIN3: CALL

      RCTW

      ;RECANGLE

      JMP

      BEGIN0

      LBEGIN4: CALL

      SINW

      ;SIN

      JMP

      BEGIN0

      ;執(zhí)行完輸出波形之后 回到開(kāi)始狀態(tài)

      JMP

      BEGIN0

      3.5波形產(chǎn)生模塊 3.5.1方波

      方波的產(chǎn)生只要使DAC0832輸出一個(gè)較大值(此處用20H),并延時(shí)一段時(shí)間,再輸出一個(gè)較小值(此處用00F),延時(shí)一段相同時(shí)間,就是方波的一個(gè)周期。但因?yàn)閷?shí)現(xiàn)過(guò)程中結(jié)合了數(shù)碼管的顯示以及頻率幅值的調(diào)節(jié)所以并不那么簡(jiǎn)單。先將幅值和頻率的初值放入暫存緩沖區(qū),使數(shù)碼管顯示,掃描鍵盤,無(wú)鍵按下則繼續(xù),有鍵按下則先判斷是否為0到3,是則調(diào)節(jié)頻率幅值,是4則退出波形。執(zhí)行相應(yīng)操作后刷新數(shù)碼管,將新的幅值和頻率存在TIAOFU和TIAOPIN的緩沖區(qū)內(nèi),把低電平的值乘以TIAOFU輸出,延遲時(shí)間乘以TIAOPIN,使該值持續(xù)一段時(shí)間,輸出高電平的過(guò)程與低電平相同,循環(huán)該周期就得到連續(xù)方波。

      具體的實(shí)現(xiàn)代碼如下:

      SQUREW PROC

      NEAR

      ;方波發(fā)生子程序

      MOV

      MOV

      MOV

      MOV

      MOV

      MOV

      MOV

      MOV

      SQUR1: CALL 調(diào)節(jié)幅值頻率

      MOV

      MOV

      CMP

      JZ

      CALL

      MOV

      MOV

      MOV

      MOV

      MOV

      MOV

      MOV

      MOV

      TRILOOP1: MOV

      MOV

      DI,OFFSET FENC

      ;初始化顯示管的值為3

      AL,[DI]

      SI,3000H

      [SI],AL

      DI,OFFSET AMPL

      AL,[DI]

      SI,3001H

      [SI],AL

      AMPLFENC

      ;調(diào)節(jié)幅值頻率子程序,有鍵按下是

      SI,OFFSET KEY

      ;按下第五個(gè)鍵就退出

      AL,4

      [SI],AL

      SQUA

      DIS

      ;刷新數(shù)碼管

      SI,3000H

      BL,[SI]

      DI,OFFSET TIAOFU

      [DI],BL

      SI,3001H

      AL,[SI]

      SI,OFFSET TIAOPIN

      [SI],AL

      DX,DA0832

      ;輸出低電平

      輸出方波形

      AL,00H

      OUT

      DX,AL

      CALL

      DIS

      ;刷新

      PUSH

      CX

      PUSH

      AX

      MOV

      CL,TIAOPIN

      MOV

      CH,00H

      D11: MOV

      D21: DEC

      PUSH

      PUSH

      CALL

      CALL

      JNZ

      POP

      POP

      JNZ

      LOOP

      POP

      POP

      CALL

      JNZ

      MOV

      MOV

      MUL

      MOV

      OUT

      CALL

      PUSH

      PUSH

      MOV

      MOV

      D12: MOV

      AX,00FFH AX AX CX DIS

      CCSCAN

      ;再次掃描按鍵 SQUR1

      ;有鍵按下則跳置squr1, CX AX D21 D11 AX CX

      CCSCAN

      ;再次掃描按鍵

      SQUR1;有鍵按下則跳置squr1,改變幅值頻率 BL,TIAOFU AL,20H BL

      DX,DA0832

      ;輸出高電平DX,AL

      DIS

      ;刷新 CX AX CL,TIAOPIN CH,00H AX,00FFH

      D22: DEC

      AX

      PUSH

      AX

      PUSH

      CX

      CALL

      DIS

      CALL

      CCSCAN

      ;再次掃描按鍵

      JNZ

      SQUR1

      ;有鍵按下則跳置tri1

      POP

      CX

      POP

      AX

      JNZ

      D22

      LOOP

      D12

      POP

      AX

      POP

      CX

      JZ

      TRILOOP1

      ;沒(méi)按鍵時(shí)繼續(xù)輸出波形

      SQUA: RET

      SQUREW ENDP

      3.5.2三角波

      三角波理論上有兩段,上升和下降,上升時(shí)從最低值開(kāi)始自增,直到最大值,然后再自減至最低。本設(shè)計(jì)中,因?yàn)閷?duì)波形精度要求不是很高,所以采用按列表輸出的方式,即先在數(shù)據(jù)段定義了一段三角波一個(gè)周期內(nèi)的采樣值的數(shù)字量表,采樣頻率為60點(diǎn)/周期。數(shù)字量表中的值為參考值,輸出三角波時(shí)通過(guò)把表中的每個(gè)值乘以相同的倍數(shù),該倍數(shù)為我們?cè)O(shè)定的幅值。波形輸出方式都相同,這里簡(jiǎn)要說(shuō)明:先將幅值和頻率的初值放入暫存緩沖區(qū),使數(shù)碼管顯示,掃描鍵盤,執(zhí)行相應(yīng)操作后刷新數(shù)碼管,將新的幅值和頻率存在TIAOFU和TIAOPIN的緩沖區(qū)內(nèi),將第一個(gè)數(shù)字量乘以TIAOFU輸出,延遲時(shí)間乘以TIAOPIN,再掃描,輸出第二個(gè)值,直到指針指完該數(shù)字量表再循環(huán)該周期就得到連續(xù)三角波。

      具體的實(shí)現(xiàn)代碼如下:

      TRITAB

      DB

      1,2,3,4,5,6,7,8,9,10,11,12,13,14,15;三角函數(shù)表

      DB

      16,17,18,19,20,21,22,23,24,25,26,27,28,29,30

      DB

      30,29,28,27,26,25,24,23,22,21,20,19,18,17,16

      DB

      15,14,13,12,11,10,9,8,7,6,5,4,3,2,1 TRIW PROC

      NEAR

      ;三角波形子程序

      MOV

      DI,OFFSET FENC

      MOV

      AL,[DI]

      MOV

      SI,3000H

      MOV

      [SI],AL

      TRA1:

      TRLOOP1:

      TRLOOP2:

      MOV

      DI,OFFSET AMPL MOV

      AL,[DI] MOV

      SI,3001H MOV

      [SI],AL CALL

      AMPLFENC MOV

      SI,OFFSET KEY MOV

      AL,4 CMP

      [SI],AL JZ

      TRIA CALL

      DIS MOV

      SI,3000H MOV

      BL,[SI] MOV

      DI,OFFSET TIAOFU MOV

      [DI],BL MOV

      SI,3001H MOV

      AL,[SI] MOV

      SI,OFFSET TIAOPIN MOV

      [SI],AL MOV

      SI,OFFSET TRITAB MOV

      AL,[SI] MOV

      BL,TIAOFU MUL

      BL MOV

      DX,DA0832

      ;啟動(dòng)D/A轉(zhuǎn)換 OUT

      DX,AL PUSH

      AX PUSH

      SI

      PUSH

      CX

      MOV

      CL,TIAOPIN

      MOV

      CH,00H

      DALLYTRI1: CALL

      DIS

      CALL

      CCSCAN

      JNZ

      TRA1

      LOOP

      DALLYTRI1

      POP

      CX

      POP

      SI

      POP

      AX

      INC

      SI

      CMP

      SI,OFFSET RCTTAB

      JNZ

      TRLOOP2

      JMP

      TRLOOP1

      TRIA: RET

      TRIW ENDP

      3.5.3鋸齒波

      鋸齒波就是截取了三角波的上升部分,由最小值自增到達(dá)最大值后下一個(gè)值就返回最小值。本設(shè)計(jì)中鋸齒波的產(chǎn)生方式也是對(duì)鋸齒波采樣,采樣周期為32點(diǎn)/周期,然后以采樣表為基礎(chǔ)輸出。鋸齒波的輸出方式與三角波相同,這里不再重復(fù)。

      具體的實(shí)現(xiàn)代碼如下:

      先在數(shù)據(jù)段定義一張鋸齒波采樣后的數(shù)字量表: RCTTAB DB

      1,2,3,4,5,6,7,8

      ;鋸齒函數(shù)表

      DB

      9,10,11,12,13,14,15,16

      DB

      17,18,19,20,21,22,23,24

      DB

      25,26,27,28,29,30,31,32 RCTW PROC

      NEAR

      ;鋸齒波形子程序

      MOV

      DI,OFFSET FENC

      MOV

      AL,[DI]

      MOV

      SI,3000H

      MOV

      [SI],AL

      MOV

      DI,OFFSET AMPL

      MOV

      AL,[DI]

      MOV

      SI,3001H

      MOV

      [SI],AL

      RCT1: CALL

      AMPLFENC

      MOV

      MOV

      CMP

      JZ

      CALL

      MOV

      MOV

      MOV

      MOV

      MOV

      MOV

      MOV

      MOV

      RCLOOP1: MOV

      RCLOOP2: MOV

      MOV

      MUL

      MOV

      OUT

      PUSH

      PUSH

      PUSH

      MOV

      MOV

      DALLYRCT1: CALL

      CALL

      SI,OFFSET KEY AL,4 [SI],AL DIS SI,3000H BL,[SI]

      DI,OFFSET TIAOFU [DI],BL SI,3001H AL,[SI]

      SI,OFFSET TIAOPIN [SI],AL

      SI,OFFSET RCTTAB AL,[SI] BL,TIAOFU BL

      DX,DA0832

      ;啟動(dòng)D/A轉(zhuǎn)換 DX,AL AX SI CX CL,TIAOPIN CH,00H

      ;刷新,掃描,延時(shí)CCSCAN

      RCTA

      DIS

      JNZ

      RCT1

      LOOP

      DALLYRCT1

      POP

      CX

      POP

      SI

      POP

      AX

      INC

      SI

      ;下一個(gè)值

      CMP

      SI,OFFSET STR1

      JNZ

      RCLOOP2

      JMP

      RCLOOP1

      RCTA: RET

      RCTW ENDP

      3.5.4正弦波

      正弦波的產(chǎn)生方式有兩種,一種是通過(guò)調(diào)用函數(shù)輸出,精度較高,第二種為采樣查表法。本實(shí)驗(yàn)精度要求不高,所以采用第二種。該方法與前面的三角波,鋸齒波方法相同,對(duì)一個(gè)周期內(nèi)的正弦波采樣,采樣周期為40點(diǎn)/周期,輸出方式與三角波相同,不再重復(fù)。

      先在數(shù)據(jù)段定義正弦波的采樣數(shù)字量表:

      SINTAB DB

      16,19,21,23,25,27,29,30,31,32,32,32

      ;正弦函數(shù)表

      DB

      31,30,29,27,25,23,21,19,16,13,11,9

      DB

      7,5,3,2,1,0,0,0,1,2,3,5,7,9,11,13 SINW PROC

      NEAR

      ;正弦波的子程序

      MOV

      DI,OFFSET FENC

      MOV

      AL,[DI]

      MOV

      SI,3000H

      ;取幅值初值

      MOV

      [SI],AL

      MOV

      DI,OFFSET AMPL

      MOV

      AL,[DI]

      MOV

      SI,3001H

      ;取頻率初值

      MOV

      [SI],AL

      SINA1: CALL

      AMPLFENC

      MOV

      SI,OFFSET KEY

      MOV

      AL,4

      CMP

      [SI],AL

      JZ

      SINA

      CALL

      DIS

      MOV

      SI,3000H

      MOV

      BL,[SI]

      MOV

      MOV

      MOV

      MOV

      MOV

      MOV

      SINLOOP1: MOV

      SINLOOP2: MOV

      MOV

      MUL

      MOV

      OUT

      PUSH

      PUSH

      PUSH

      MOV

      MOV

      DALLYSIN1: CALL

      CALL

      JNZ

      LOOP

      POP

      POP

      POP

      INC

      CMP

      DI,OFFSET TIAOFU [DI],BL SI,3001H AL,[SI]

      SI,OFFSET TIAOPIN [SI],AL

      SI,OFFSET SINTAB AL,[SI] BL,TIAOFU BL

      DX,DA0832

      ;啟動(dòng)D/A轉(zhuǎn)換

      DX,AL AX SI CX CL,TIAOPIN CH,00H CCSCAN SINA1 DALLYSIN1 CX SI AX SI

      SI,OFFSET TRITAB

      ;是否結(jié)束一個(gè)周期

      DIS

      JNZ

      SINLOOP2

      JMP

      SINLOOP1

      SINA: RET

      SINW ENDP

      第四章 系統(tǒng)調(diào)試遇到的問(wèn)題及解決方法

      本次課程設(shè)計(jì)是對(duì)前幾次微機(jī)原理實(shí)驗(yàn)的檢驗(yàn),也是微機(jī)原理與接口技術(shù)這門課程的綜合應(yīng)用。前幾次軟件實(shí)驗(yàn),我都積極地實(shí)現(xiàn)了拓展題目的要求,所以在選擇課題的時(shí)候,我第一印象就感覺(jué)到信號(hào)發(fā)生器對(duì)軟件要求要大于硬件要求,重點(diǎn)是編程,所以,在選擇了這個(gè)題目以后我就開(kāi)始思考用何種方式實(shí)現(xiàn)。

      整體分析后,硬件電路的系統(tǒng)設(shè)計(jì)比較簡(jiǎn)單,主程序的設(shè)計(jì)思路也比較清晰,主要分為波形產(chǎn)生,數(shù)碼管顯示,鍵盤控制,頻率幅值調(diào)節(jié)四個(gè)模塊。但是具體每個(gè)模塊的實(shí)現(xiàn)卻又遇到了很多的問(wèn)題,方案上也有些調(diào)整。

      在此次實(shí)驗(yàn)系統(tǒng)調(diào)試的過(guò)程中,把整個(gè)大的程序劃分為幾個(gè)小模塊分開(kāi)調(diào)試好,無(wú)誤后再寫主程序?qū)⒏鱾€(gè)子程序整合起來(lái)。雖然一開(kāi)始感覺(jué)思路是很好的,但是在實(shí)現(xiàn)過(guò)程中遇到了很大的麻煩。

      1.硬件的連線。硬件連好后,將方波子程序載入8086,最開(kāi)始示波器連輸出都沒(méi)有,DAC0832的片選端一直沒(méi)有被選中,我總是以為是地址的問(wèn)題,可是怎么檢查程序也是沒(méi)有理由出錯(cuò)的,最后發(fā)現(xiàn)DAC0832的WR端虛接了,軟件畫圖容易出現(xiàn)虛接的情況,所以連線的時(shí)候一定要小心。

      2.小鍵盤控制,這也是整個(gè)程序中最核心的部分。這個(gè)子程序加在程序的最前面的,如果沒(méi)有掃描到鍵值,整個(gè)程序就會(huì)陷入死循環(huán),不會(huì)有任何輸出變化。要使鍵盤掃描得到鍵值,我參考了實(shí)驗(yàn)指導(dǎo)書上的小鍵盤控制,先把小鍵盤掃描的程序單獨(dú)給出來(lái),看能否顯示數(shù)字,結(jié)果并不能正常顯示,反復(fù)檢查調(diào)試以后,修改了鍵值的存儲(chǔ)方式以及延時(shí),將其修改后,小鍵盤方面能正常掃描了。

      3.其實(shí)最復(fù)雜的是將數(shù)碼管顯示和小鍵盤掃描整合在一起。數(shù)碼管顯示問(wèn)題一直很復(fù)雜,總是不能正常的顯示,明明小鍵盤Y端有變化,表明有鍵按下,但是數(shù)碼管就是不能將要顯示的數(shù)平穩(wěn)地顯示,剛開(kāi)始只顯示零,后來(lái)經(jīng)修改后,會(huì)偶爾顯示一下幅值或頻率但又立馬變了,并且顯示的數(shù)字也不正確,貌似會(huì)和之前顯示的數(shù)字有重雙影。查唐都的實(shí)驗(yàn)說(shuō)明得知,數(shù)碼管只提供了一個(gè)8位數(shù)據(jù)端口,一次只能讓一個(gè)數(shù)碼管顯示數(shù)據(jù),然后顯示過(guò)程特別地快,基本上看不到想要的結(jié)果,并且閃爍得特別厲害。經(jīng)過(guò)反復(fù)一直地查找修改,終于發(fā)現(xiàn),有兩個(gè)數(shù)碼管顯示的內(nèi)容重疊了,原來(lái)是要顯示的兩個(gè)存儲(chǔ)單元的地址弄混了,并且延時(shí)也有問(wèn)題。但是數(shù)碼管的延時(shí)又涉及到波形每個(gè)輸出點(diǎn)的延時(shí),所以將波形產(chǎn)生方面,我改用了采樣數(shù)字量表,使所有的波形產(chǎn)生都簡(jiǎn)化了,同時(shí)也使延時(shí)更短,改為增加循環(huán)次數(shù),并且使數(shù)碼管顯示也加入循環(huán)里,這樣利用視覺(jué)暫留,就能看到同時(shí)顯示幅值和頻率。

      4.在小鍵盤實(shí)現(xiàn)中還出現(xiàn)了一個(gè)很重要的問(wèn)題,就是在執(zhí)行到對(duì)應(yīng)的波形時(shí)要怎么樣跳出然后執(zhí)行到另外一個(gè)波形里面去。原本我想多設(shè)置幾個(gè)按鍵,4個(gè)負(fù)責(zé)選擇波形,4個(gè)負(fù)責(zé)調(diào)幅調(diào)頻,還要加一個(gè)退出按鍵,每輸出一個(gè)周期就掃描一次,可是這樣按鍵太多了程序顯得臃腫,并且沒(méi)有波形的情況調(diào)節(jié)頻率也是沒(méi)有意義的,而且一個(gè)周期的時(shí)間,很有可能使你的按鍵落空,沒(méi)有掃描進(jìn)去。最后決定只用5個(gè)鍵。沒(méi)有波形時(shí)4個(gè)按鍵選擇波形,每次執(zhí)行完一個(gè)點(diǎn)后再重新鍵盤掃描,此時(shí)那4個(gè)鍵又代表調(diào)幅和調(diào)頻,而4鍵從始至終設(shè)置為退出鍵,只要任何時(shí)候掃描到此鍵就返回初始狀態(tài),重新進(jìn)入波形選擇,這樣就實(shí)現(xiàn)了波形的切換,又使按鍵有效率更高,而且按鍵數(shù)量也很少。

      5.方波和三角波的波形產(chǎn)生的程序并不難。鋸齒波就是截取三角波的一半,而正弦波,我找到的正弦波采樣值序列表都很長(zhǎng),而且值都比較大,所以最后,我用計(jì)算器在0~2π內(nèi)取了40個(gè)點(diǎn)的正弦值。最后在調(diào)節(jié)幅值的時(shí)候,當(dāng)調(diào)到最大幅值時(shí),有兩種波形失真了,尤其正弦波和三角波形被截頂了。但是我觀察到鋸齒波卻能正常顯示,原來(lái)鋸齒波的采樣數(shù)字量表的最大值比較小,經(jīng)放大最大倍數(shù)后也沒(méi)有超出范圍。這可能是因?yàn)榉糯蠛笳也ǖ淖畲笾狄呀?jīng)超出了運(yùn)放輸出的最大電壓,所以導(dǎo)致截頂失真。所以我將數(shù)字量的值整體縮小了,最后總算達(dá)到滿意的效果。第五章 課程設(shè)計(jì)收獲與體會(huì)

      本次課程設(shè)計(jì)在面臨考試的巨大壓力和編程難度的雙重壓力下終于完成了。這讓我對(duì)于微機(jī)原理與接口技術(shù)這門課程又有了更深的了解,尤其是匯編語(yǔ)言的運(yùn)用。這是一次很好的實(shí)踐的機(jī)會(huì),將我們之前幾個(gè)星期做的微機(jī)原理與接口技術(shù)實(shí)驗(yàn)的軟件和硬件部分都結(jié)合起來(lái),靈活的運(yùn)用,鍛煉我們學(xué)以致用,解決實(shí)際問(wèn)題的能力。我在此次課程設(shè)計(jì)中受益匪淺,收獲良多。

      本次設(shè)計(jì)我是用仿真完成的,因?yàn)樯蠈W(xué)期在模電數(shù)電課程設(shè)計(jì)中也使用到了protues軟件,所以這次的設(shè)計(jì),對(duì)于protues的使用我一點(diǎn)也不陌生。但是,這次的仿真比起以前模電數(shù)電仿真要復(fù)雜多了。因?yàn)檫@次我選擇的信號(hào)發(fā)生器重點(diǎn)就是匯編語(yǔ)言程序的編寫和調(diào)試,程序出現(xiàn)的錯(cuò)誤比硬件出現(xiàn)的錯(cuò)要難找的多,尤其是邏輯錯(cuò)誤,有的時(shí)候看都看不出來(lái)。但是我還是比較喜歡匯編語(yǔ)言的,可能是對(duì)C已經(jīng)忘得差不多了的緣故吧,腦子里只有匯編。匯編是一門很原始的語(yǔ)言,但是也是一門很有用的語(yǔ)言,通過(guò)這么一個(gè)比較大的實(shí)驗(yàn),讓我對(duì)匯編的理解有了進(jìn)一步的加深。雖然中間過(guò)程有苦有煎熬,但是還是很值得回味的,因?yàn)槲覀兙褪窃谶@樣一次又一次煎熬中才熬出了頭,才不斷成長(zhǎng)為更加強(qiáng)大的人。

      在這次設(shè)計(jì)中,一開(kāi)始想的比較簡(jiǎn)單和樂(lè)觀,因?yàn)樵谧鑫C(jī)原理編程實(shí)驗(yàn)的時(shí)候,我們接觸的都是幾十行到一百來(lái)行的小程序,寫完一檢查就能比較輕松地查找到錯(cuò)誤,但是這次的題目重點(diǎn)就在編程。一開(kāi)始,我以為這些程序不會(huì)錯(cuò),電路也比較簡(jiǎn)單。所以當(dāng)我很快的連好電路,再幾個(gè)子程序都加載進(jìn)去的時(shí)候,就完全不是我想象的那樣輸出。而且從整個(gè)電路分析,我也找不到問(wèn)題到底出在哪里。我必須要一步一步地再回頭檢查錯(cuò)誤。這樣有可能還檢查不出來(lái),最后我只能從一個(gè)小模塊開(kāi)始重新連電路,再將該模塊對(duì)應(yīng)的程序加載,有問(wèn)題再改。就這樣,一步一步,只有解決了局部的問(wèn)題,才能為解決整體的問(wèn)題提供可能。

      在小鍵盤和數(shù)碼管顯示的模塊,確實(shí)一度陷入瓶頸,不知道問(wèn)題出在哪里,為什么就是不能顯示。我去了幾次實(shí)驗(yàn)室,想和大家交流一下,但是選擇這個(gè)題目的人真的很少,最后找到幾個(gè)同學(xué),但是他們迫于考試壓力要么放棄了仿真,要么放棄了小鍵盤,當(dāng)時(shí)的情緒真是非常抑郁,難道就真的做不出來(lái)了嗎?怎么可能?就是不相信,感覺(jué)就差一點(diǎn)點(diǎn),就要實(shí)現(xiàn)了,因?yàn)閳?jiān)持,因?yàn)閳?jiān)信,因?yàn)閳?jiān)定,哪怕這個(gè)茬再難找也會(huì)原形畢露的。當(dāng)看到數(shù)碼管顯示正常,自己的心血終于有了結(jié)果,內(nèi)心的喜悅溢于言表。有句話說(shuō)得對(duì):失敗就是離成功最近的地方,邁過(guò)去了就是另一片天。

      這次的課程設(shè)計(jì),我要十分感謝同學(xué)們給予我的幫助,還有李志明老師的指導(dǎo),讓我在短短的幾個(gè)星期里學(xué)到了很多很實(shí)用的知識(shí),通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才是真正的知識(shí),才能提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。而且在做課程設(shè)計(jì)的過(guò)程中,不僅是考驗(yàn)自己所學(xué)的《微機(jī)原理》知識(shí),更是要鍛煉自己的分析問(wèn)題的能力和解決實(shí)際問(wèn)題的能力,而在此次課程設(shè)計(jì)過(guò)程中得到了充分的體現(xiàn)。雖然在設(shè)計(jì)的過(guò)程遇到了各種各樣的問(wèn)題,但同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,通過(guò)這次課程設(shè)計(jì),把以前所學(xué)過(guò)的知識(shí)重新溫習(xí),加以鞏固。

      這回顧起此次課程設(shè)計(jì),我收獲頗豐,不僅鞏固了《微機(jī)原理》的知識(shí),而且鍛煉了動(dòng)手設(shè)計(jì),解決實(shí)際問(wèn)題的能力,同時(shí)讓我堅(jiān)定了一個(gè)信念,學(xué)習(xí)上,沒(méi)有攀登不了的山峰,即使山重水復(fù)疑無(wú)路,只要堅(jiān)持下去,也會(huì)看到柳暗花明又一村。在今后的學(xué)習(xí)中,我也會(huì)將以這樣的精神面對(duì)所有的困難。

      第六章 參考文獻(xiàn)

      1.《微機(jī)原理與接口技術(shù)(第4版)》周荷琴等 中國(guó)科學(xué)技術(shù)大學(xué)出版社 2.《TD-PIT+實(shí)驗(yàn)教程》 3.《TD-PIT+用戶手冊(cè)》

      第七章 附錄

      7.1匯編源程序

      IOY0 EQU

      0C400H

      ;片選IOY0對(duì)應(yīng)的端口始地址

      IOY1 EQU

      0C440H

      ;片選IOY0對(duì)應(yīng)的端口始地址;*****************************************************************

      MY8255_A EQU

      IOY0+00H*4;8255的A口地址

      MY8255_B EQU

      IOY0+01H*4;8255的B口地址

      MY8255_C EQU

      IOY0+02H*4;8255的C口地址

      MY8255_MODE EQU

      IOY0+03H*4;8255的控制寄存器地址

      DA0832 EQU

      IOY1+00H*4;DA0832的端口地址

      STACK1 SEGMENT

      STACK

      DW

      256 DUP(?)

      STACK1 ENDS

      DATA SEGMENT

      DTABLE DB

      3FH,06H,5BH,4FH,66H,6DH,7DH DB

      07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H

      ;鍵值表,0~F對(duì)應(yīng)的7段數(shù)碼管的段位值

      SINTAB DB

      16,19,21,23,25,27,29,30,31,32,32,32 DB

      31,30,29,27,25,23,21,19,16

      ;正弦函數(shù)表

      DB

      13,11,9,7,5,3,2,1,0,0,0,1,2,3,5,7,9,11,13

      TRITAB DB

      1,2,3,4,5,6,7,8,9,10,11,12,13,14,15;三角函數(shù)表

      DB

      16,17,18,19,20,21,22,23,24,25,26,27,28,29,30

      DB

      30,29,28,27,26,25,24,23,22,21,20,19,18,17,16

      DB

      15,14,13,12,11,10,9,8,7,6,5,4,3,2,1

      RCTTAB DB

      1,2,3,4,5,6,7,8

      ;鋸齒函數(shù)表

      DB

      9,10,11,12,13,14,15,16

      DB

      17,18,19,20,21,22,23,24

      DB

      25,26,27,28,29,30,31,32

      STR1 DB

      'press 0~3 to output wave',0AH,0DH

      DB

      'press 4to quit ',0AH,0DH,'$'

      AMPL DB

      FENC DB

      TIAOFU DB

      ?

      TIAOPIN DB

      ?

      KEY DB

      ?

      DATA ENDS

      CODE SEGMENT

      ASSUME

      CS:CODE,DS:DATA

      START: MOV

      AX,DATA

      MOV

      DS,AX

      MOV

      DX,MY8255_MODE

      ;初始化8255工作方式

      MOV

      AL,81H

      ;方式0,A口、B口輸出,C口低4位輸入

      OUT

      DX,AL

      BEGIN0: MOV

      SI,3000H

      ;把數(shù)碼管清0

      MOV

      AL,00H

      ;先初始化鍵值為0

      MOV

      [SI],AL

      MOV

      AL,00H

      MOV

      [SI+1],AL

      MOV

      AL,00H

      MOV

      [SI+2],AL

      MOV

      AL,00H

      MOV

      [SI+3],AL

      MOV

      SI,OFFSET KEY

      MOV

      AL,00H

      MOV

      [SI],AL

      BEGIN1: CALL

      DIS

      ;顯示刷新

      CALL

      CCSCAN

      ;再次掃描按鍵

      JNZ

      LBEGIN0

      ;有鍵按下則跳置LBEGIN0

      JMP

      BEGIN1

      ;不是按下第一或二鍵就繼續(xù)等待輸入

      LBEGIN0: CALL

      GETKEY1

      ;第二個(gè)菜單等待輸入

      CALL

      DIS

      MOV

      SI,OFFSET KEY

      MOV

      AL,[SI]

      CMP

      AL,4

      ;第5個(gè)鍵退出

      JZ

      BEGIN0

      CMP

      AL,0

      ;第1個(gè)鍵到squ(方波)函數(shù)

      JZ

      CMP

      JZ

      CMP

      JZ

      CMP

      JZ

      JMP

      LBEGIN1: CALL

      JMP

      LBEGIN2: CALL

      JMP

      LBEGIN3: CALL

      JMP

      LBEGIN4: CALL

      JMP

      JMP

      SQUREW PROC

      MOV

      MOV

      MOV

      MOV

      MOV

      MOV

      MOV

      LBEGIN1

      AL,1

      ;第2個(gè)鍵到tri(三角波)函數(shù) LBEGIN2

      AL,2

      ;第3個(gè)鍵到rec(鋸齒)函數(shù) LBEGIN3

      AL,3

      ;第4個(gè)鍵到sin(正弦)函數(shù) LBEGIN4

      BEGIN1

      ;其他鍵則跳到繼續(xù)等待輸入 SQUREW

      ;SQUARE BEGIN0

      TRIW

      ;TRIANGLE BEGIN0

      RCTW

      ;RECANGLE BEGIN0

      SINW

      ;SIN

      BEGIN0

      ;執(zhí)行完輸出波形之后 回到開(kāi)始狀態(tài) BEGIN0

      ;上面是主程序

      NEAR

      ;方波發(fā)生子程序

      DI,OFFSET FENC

      ;初始化顯示管的值為3 AL,[DI] SI,3000H [SI],AL

      DI,OFFSET AMPL AL,[DI] SI,3001H

      MOV

      [SI],AL

      SQUR1: CALL

      AMPLFENC

      ;調(diào)節(jié)幅值頻率子程序,有鍵按下是調(diào)節(jié)幅值頻率

      MOV

      SI,OFFSET KEY

      ;按下第五個(gè)鍵就退出

      MOV

      AL,4

      CMP

      [SI],AL

      TRILOOP1:

      D11:

      D21:

      JZ

      SQUA CALL

      DIS MOV

      SI,3000H MOV

      BL,[SI] MOV

      DI,OFFSET TIAOFU MOV

      [DI],BL MOV

      SI,3001H MOV

      AL,[SI] MOV

      SI,OFFSET TIAOPIN MOV

      [SI],AL

      DX,DA0832

      ;輸出低電平

      輸出方波形 MOV

      AL,00H OUT

      DX,AL CALL

      DIS

      ;刷新 PUSH

      CX PUSH

      AX MOV

      CL,TIAOPIN MOV

      CH,00H MOV

      AX,00FFH DEC

      AX PUSH

      AX PUSH

      CX CALL

      DIS CALL

      CCSCAN

      ;再次掃描按鍵 JNZ

      SQUR1

      ;有鍵按下則跳置squr1, POP

      CX

      MOV

      POP

      AX

      JNZ

      D21

      LOOP

      D11

      POP

      AX

      POP

      CX

      CALL

      CCSCAN

      ;再次掃描按鍵

      JNZ

      MOV

      MOV

      MUL

      MOV

      OUT

      CALL

      PUSH

      PUSH

      MOV

      MOV

      D12: MOV

      D22: DEC

      PUSH

      PUSH

      CALL

      CALL

      JNZ

      POP

      POP

      JNZ

      LOOP

      POP

      POP

      JZ

      SQUA: RET

      SQUR1

      ;有鍵按下則跳置squr1,改變幅值頻率 BL,TIAOFU AL,20H BL

      DX,DA0832

      ;輸出高電平

      DX,AL

      DIS

      ;刷新

      CX AX CL,TIAOPIN CH,00H AX,00FFH AX AX CX DIS

      CCSCAN

      ;再次掃描按鍵 SQUR1

      ;有鍵按下則跳置tri1 CX AX D22 D12 AX CX

      TRILOOP1

      ;沒(méi)按鍵時(shí)繼續(xù)輸出波形

      SQUREW ENDP

      TRIW PROC

      NEAR

      ;三角波形子程序

      MOV

      DI,OFFSET FENC

      MOV

      AL,[DI]

      MOV

      SI,3000H

      TRA1:

      TRLOOP1:

      TRLOOP2:

      MOV

      [SI],AL MOV

      DI,OFFSET AMPL MOV

      AL,[DI] MOV

      SI,3001H MOV

      [SI],AL CALL

      AMPLFENC MOV

      SI,OFFSET KEY MOV

      AL,4 CMP

      [SI],AL JZ

      TRIA CALL

      DIS MOV

      SI,3000H MOV

      BL,[SI] MOV

      DI,OFFSET TIAOFU MOV

      [DI],BL MOV

      SI,3001H MOV

      AL,[SI] MOV

      SI,OFFSET TIAOPIN MOV

      [SI],AL MOV

      SI,OFFSET TRITAB MOV

      AL,[SI] MOV

      BL,TIAOFU MUL

      BL MOV

      DX,DA0832

      ;啟動(dòng)D/A轉(zhuǎn)換 OUT

      DX,AL PUSH

      AX

      PUSH

      SI

      PUSH

      CX

      MOV

      CL,TIAOPIN

      MOV

      CH,00H

      DALLYTRI1: CALL

      DIS

      CALL

      CCSCAN

      JNZ

      LOOP

      POP

      POP

      POP

      INC

      CMP

      JNZ

      JMP

      TRIA: RET

      TRIW ENDP

      RCTW PROC

      MOV

      MOV

      MOV

      MOV

      MOV

      MOV

      MOV

      MOV

      RCT1: CALL

      MOV

      MOV

      CMP

      JZ

      CALL

      TRA1 DALLYTRI1 CX SI AX SI

      SI,OFFSET RCTTAB TRLOOP2 TRLOOP1

      NEAR

      ;鋸齒波形子程序 DI,OFFSET FENC AL,[DI] SI,3000H [SI],AL

      DI,OFFSET AMPL AL,[DI] SI,3001H [SI],AL AMPLFENC SI,OFFSET KEY AL,4 [SI],AL RCTA DIS

      MOV

      SI,3000H

      MOV

      BL,[SI]

      MOV

      DI,OFFSET TIAOFU

      MOV

      [DI],BL

      MOV

      SI,3001H

      MOV

      AL,[SI]

      MOV

      MOV

      RCLOOP1: MOV

      RCLOOP2: MOV

      MOV

      MUL

      MOV

      OUT

      PUSH

      PUSH

      PUSH

      MOV

      MOV

      DALLYRCT1: CALL

      CALL

      JNZ

      LOOP

      POP

      POP

      POP

      INC

      CMP

      JNZ

      JMP

      RCTA: RET

      RCTW ENDP

      SI,OFFSET TIAOPIN [SI],AL

      SI,OFFSET RCTTAB AL,[SI] BL,TIAOFU BL

      DX,DA0832

      ;啟動(dòng)D/A轉(zhuǎn)換 DX,AL AX SI CX CL,TIAOPIN CH,00H CCSCAN RCT1 DALLYRCT1 CX SI AX SI

      SI,OFFSET STR1 RCLOOP2 RCLOOP1

      DIS

      SINW PROC

      NEAR

      ;正弦波的子程序

      MOV

      DI,OFFSET FENC

      MOV

      AL,[DI]

      MOV

      SI,3000H

      MOV

      [SI],AL

      SINA1:

      SINLOOP1:

      SINLOOP2:

      MOV

      DI,OFFSET AMPL MOV

      AL,[DI] MOV

      SI,3001H MOV

      [SI],AL CALL

      AMPLFENC MOV

      SI,OFFSET KEY MOV

      AL,4 CMP

      [SI],AL JZ

      SINA CALL

      DIS MOV

      SI,3000H MOV

      BL,[SI] MOV

      DI,OFFSET TIAOFU MOV

      [DI],BL MOV

      SI,3001H MOV

      AL,[SI] MOV

      SI,OFFSET TIAOPIN MOV

      [SI],AL MOV

      SI,OFFSET SINTAB MOV

      AL,[SI] MOV

      BL,TIAOFU MUL

      BL MOV

      DX,DA0832

      ;啟動(dòng)D/A轉(zhuǎn)換 OUT

      DX,AL PUSH

      AX PUSH

      SI

      PUSH

      CX

      MOV

      CL,TIAOPIN

      MOV

      CH,00H

      DALLYSIN1: CALL

      DIS

      CALL

      CCSCAN

      JNZ

      SINA1

      LOOP

      POP

      POP

      POP

      INC

      CMP

      JNZ

      JMP

      SINA: RET

      SINW ENDP

      AMPLFENC PROC

      CALL

      CALL

      JNZ

      JMP

      TRI1: CALL

      CALL

      MOV

      MOV

      CMP

      JZ

      JZ

      CMP

      JNZ

      MOV

      DALLYSIN1 CX SI AX SI

      SI,OFFSET TRITAB SINLOOP2 SINLOOP1

      NEAR

      ;調(diào)節(jié)幅值頻率子程序 DIS

      ;刷新

      CCSCAN

      ;再次掃描按鍵 TRI1

      ;有鍵按下則跳置tri1 TRI5

      ;沒(méi)按鍵按下就跳出該子程序DIS

      ;刷新 GETKEY1

      SI,OFFSET KEY

      AL,[SI]

      AL,4

      ;第五個(gè)鍵就退出 TRI10 TRI5

      AL,0

      ;第一個(gè)鍵減少周期 TRI2

      DI,3001H

      MOV

      BL,[DI]

      CMP

      BL,01H

      JE

      TRI5

      DEC

      BL

      MOV

      [DI],BL

      JMP

      TRI5

      TRI2: CMP

      JNZ

      MOV

      MOV

      CMP

      JE

      INC

      MOV

      JMP

      TRI3: CMP

      JNZ

      MOV

      MOV

      CMP

      JE

      DEC

      MOV

      JMP

      TRI4: CMP

      JNZ

      MOV

      MOV

      CMP

      JE

      INC

      MOV

      AL,1

      TRI3 DI,3001H BL,[DI] BL,05H TRI5 BL [DI],BL TRI5

      AL,2

      TRI4 DI,3000H BL,[DI] BL,01H TRI5 BL [DI],BL TRI5

      AL,3

      TRI5 DI,3000H BL,[DI] BL,05H TRI5 BL [DI],BL

      ;第二個(gè)鍵增加周期;第三個(gè)鍵減少幅度;第四個(gè)鍵增加幅度

      JMP

      TRI5

      TRI10: JMP

      FAR PTR BEGIN0

      TRI5: RET

      AMPLFENC ENDP

      GETKEY1 PROC

      NEAR

      CALL

      CALL

      CALL

      CALL

      CALL

      JNZ

      JMP

      GETKEY2: MOV

      MOV

      COLUM: MOV

      MOV

      OUT

      MOV

      IN

      L1: TEST

      JNZ

      MOV

      JMP

      L2: TEST

      JNZ

      MOV

      JMP

      L3: TEST

      JNZ

      MOV

      JMP

      DIS

      ;顯示刷新 DALLY DALLY

      CLEAR

      ;清屏

      CCSCAN

      ;再次掃描按鍵

      GETKEY2

      ;有鍵按下則跳置GETKEY2 BEGIN1

      ;否則跳回開(kāi)始繼續(xù)循環(huán)

      CH,0FEH

      CL,00H

      ;設(shè)置當(dāng)前檢測(cè)的是第幾列

      AL,CH

      ;選取一列,將X1~X4中一個(gè)置0

      DX,MY8255_A DX,AL

      DX,MY8255_C;讀Y1~Y4,用于判斷是哪一行按鍵閉合AL,DX

      AL,01H

      ;是否為第1行 L2

      ;不是則繼續(xù)判斷

      AL,00H

      ;設(shè)置第1行第1列的對(duì)應(yīng)的鍵值

      KCODE

      AL,02H

      ;是否為第2行 L3

      ;不是則繼續(xù)判斷

      AL,04H

      ;設(shè)置第2行第1列的對(duì)應(yīng)的鍵值

      KCODE

      AL,04H

      ;是否為第3行 L4

      ;不是則繼續(xù)判斷

      AL,08H

      ;設(shè)置第3行第1列的對(duì)應(yīng)的鍵值

      KCODE

      L4: TEST

      AL,08H

      ;是否為第4行

      JNZ

      NEXT

      ;不是則繼續(xù)判斷

      MOV

      AL,0CH

      ;設(shè)置第4行第1列的對(duì)應(yīng)的鍵值

      KCODE: ADD

      AL,CL

      ;將第1列的值加上當(dāng)前列數(shù),確定按鍵值

      CALL

      PUTBUF

      ;保存按鍵值

      PUSH

      AX

      KON: CALL

      CALL

      CALL

      JNZ

      POP

      NEXT: INC

      MOV

      TEST

      JZ

      ROL

      MOV

      JMP

      KERR: RET

      GETKEY1 ENDP

      CCSCAN PROC

      MOV

      MOV

      OUT

      MOV

      IN

      NOT

      AND

      RET

      CCSCAN ENDP

      DIS

      ;顯示刷新 CLEAR

      ;清屏

      CCSCAN

      ;掃描按鍵,判斷按鍵是否彈起 KON

      ;未彈起則繼續(xù)循環(huán)等待彈起 AX

      CL

      ;當(dāng)前檢測(cè)的列數(shù)遞增

      AL,CH

      AL,08H

      ;檢測(cè)是否掃描到第4列 KERR

      ;是則跳回到開(kāi)始處

      AL,1

      ;沒(méi)檢測(cè)到第4列則準(zhǔn)備檢測(cè)下一列

      CH,AL COLUM NEAR

      ;掃描是否有按鍵閉合子程序

      AL,00H

      DX,MY8255_A;將4列全選通,X1~X4置0 DX,AL DX,MY8255_C AL,DX

      ;讀Y1~Y4 AL

      AL,0FH

      ;取出Y1~Y4的反值

      CLEAR PROC

      NEAR

      ;清除數(shù)碼管顯示子程序

      MOV

      DX,MY8255_B;段位置0即可清除數(shù)碼管顯示

      MOV

      AL,00H

      OUT

      DX,AL

      RET

      CLEAR ENDP

      DIS

      鍵值并顯示

      AGAIN:

      相應(yīng)的鍵值

      NEAR

      ;顯示鍵值子程序

      PUSH

      AX

      ;以緩沖區(qū)存放的鍵值為鍵值表偏移找到MOV

      SI,3000H MOV

      DL,0F7H MOV

      AL,DL PUSH

      DX MOV

      DX,MY8255_A OUT

      DX,AL

      ;設(shè)置X1~X4,選通一個(gè)數(shù)碼管 MOV

      AL,[SI]

      ;取出緩沖區(qū)中存放鍵值 MOV

      BX,OFFSET DTABLE AND

      AX,00FFH ADD

      BX,AX MOV

      AL,[BX]

      ;將鍵值作為偏移和鍵值基地址相加得到MOV

      DX,MY8255_B OUT

      DX,AL

      ;寫入數(shù)碼管A~Dp CALL

      DALLY INC

      SI

      ;取下一個(gè)鍵值 POP

      DX MOV

      AL,DL TEST

      AL,01H

      ;判斷是否顯示完? JZ

      OUT1

      ;顯示完,返回 ROR

      AL,1 MOV

      DL,AL PROC

      JMP

      AGAIN

      ;未顯示完,跳回繼續(xù)

      OUT1: POP

      AX

      RET

      DIS ENDP

      PUTBUF PROC

      NEAR

      ;保存鍵值子程序

      MOV

      MOV

      CMP

      JNZ

      MOV

      GOBACK: RET

      PUTBUF ENDP

      DALLY PROC

      PUSH

      MOV

      D1: MOV

      D2: DEC

      JNZ

      LOOP

      POP

      RET

      DALLY ENDP

      CODE ENDS

      END

      DI,OFFSET KEY [DI],AL DI,2FFFH GOBACK DI,3004H NEAR

      ;軟件延時(shí)子程序 CX CX,000FH AX,000FH AX D2 D1 CX START

      7.2 8086 最小模式的硬件連接圖

      第二篇:微機(jī)原理課設(shè)

      目錄

      一.課程設(shè)計(jì)的實(shí)驗(yàn)?zāi)康呐c要求……………………………2 1.教學(xué)目的……………………………2 2.教學(xué)要求……………………………2 3.主要技術(shù)指標(biāo)……………………………2 二.課程設(shè)計(jì)課題的分析……………………………2 三.課程設(shè)計(jì)的結(jié)果……………………………4 1.實(shí)驗(yàn)代碼……………………………4 2.實(shí)驗(yàn)現(xiàn)象……………………………10 四.心得體會(huì) ……………………………12 五.參考文獻(xiàn) ……………………………12

      一、課程設(shè)計(jì)的目的與要求 1.教學(xué)目的

      本課程的課程設(shè)計(jì)是自動(dòng)化專業(yè)學(xué)生學(xué)習(xí)完《微機(jī)原理及應(yīng)用》課程后,進(jìn)行的一次以匯編語(yǔ)言為主,硬件設(shè)計(jì)為輔的綜合訓(xùn)練。本課程設(shè)計(jì)的其目的在于加深對(duì)微機(jī)原理基本知識(shí)的理解,掌握匯編語(yǔ)言程序設(shè)計(jì)的基本方法;掌握運(yùn)用微機(jī)原理開(kāi)發(fā)系統(tǒng)的基本方法。2.教學(xué)要求

      從課程設(shè)計(jì)的目的出發(fā),通過(guò)設(shè)計(jì)工作的各個(gè)環(huán)節(jié),達(dá)到以下要求: 1)掌握匯編語(yǔ)言程序設(shè)計(jì)的基本方法。

      2)進(jìn)一步理解各種接口電路的應(yīng)用。例如8255并行接口,8253定時(shí)器等。3)掌握利用PC機(jī)揚(yáng)聲器發(fā)出不同頻率聲音的方法。3.主要技術(shù)指標(biāo)

      1)在程序運(yùn)行時(shí)使PC即成為一架可彈奏的電子琴。當(dāng)按下數(shù)字鍵1-8時(shí),依次發(fā)出1,2,3,4,5,6,7,I這八個(gè)音調(diào)。2)在程序運(yùn)行時(shí)使PC自動(dòng)按要求提示演奏樂(lè)曲。

      二、課程設(shè)計(jì)課題的分析

      圖1.揚(yáng)聲器工作原理圖示

      圖2.主程序工作流程圖

      圖3.樂(lè)曲演奏子程序工作流程圖 圖4.電子琴子程序工作流程圖

      圖5.揚(yáng)聲器工作流程圖

      三、課程設(shè)計(jì)的結(jié)果

      1、實(shí)驗(yàn)代碼

      DATA

      SEGMENT INFO1

      DB 0AH, 0DH, 'WELCOME YOU TO COME HERE!$'

      DB 0AH, 0DH, 'THIS IS A MUSIC PROGRAM!$' DB 0AH, 0DH, 'PLEASE SELECLT!$' INFO4

      DB 0AH, 0DH, 'INPUT ERROR!$' INFO5

      DB 0AH, 0DH, 'PLEASE INPUT AGAIN!$' MUSLIST

      DB 0AH, 0DH, '========================='

      DB 0AH, 0DH, 'Press1

      HuanLeSong' DB 0AH, 0DH, 'Press2

      KaiXin' DB 0AH, 0DH, 'Press3

      XiaoBuWuQu' DB 0AH, 0DH, 'Press4

      Wonderful' DB 0AH, 0DH, 'Press5

      SCALE PLAY ' DB 0AH, 0DH, 'Press6

      EXIT' DB 0AH, 0DH, '=========================' DB 0AH, 0DH, '$' MUS_FRQ1

      DW 330, 330, 350, 393, 393, 350, 330, 294

      DW 262, 262, 294, 330, 330, 294, 294 DW 330, 330, 350, 393, 393, 350, 330, 294

      DW 262, 262, 294, 330, 294, 262, 262 DW 294, 294, 330, 262, 294, 330, 350, 330, 262 DW 294, 330, 350, 330, 262, 262, 294, 393 DW 330, 330, 350, 393, 393, 350, 330, 294 DW 262, 262, 294, 330, 294, 262, 262,-1 MUS_TIM1

      DW 8 DUP(100)

      DW 7 DUP(100),200 DW 8 DUP(100)DW 7 DUP(100),200 DW 5 DUP(100),50,50,2 DUP(100)DW 100,50,50,4 DUP(100),200 DW 8 DUP(100)DW 7 DUP(100),200 MUS_FRQ2

      DW 330, 294, 262, 294, 3 DUP(330)DW 3 DUP(294), 330, 392, 392 DW 330, 294, 262, 294, 4 DUP(330)DW 294, 294, 330, 294, 262,-1 MUS_TIM2

      DW 6 DUP(100),200 DW 2 DUP(100,100,200)DW 8 DUP(100)DW 4 DUP(100),400 MUS_FRQ3

      DW 392, 262, 294, 330, 350, 392, 262, 262 DW 440, 350, 392, 440, 494, 524, 262, 262 DW 350, 392, 350, 330, 294, 330

      DW 350, 330, 294, 262, 294, 330, 294, 262, 247, 262,-1 MUS_TIM3

      DW 200, 4 DUP(100), 200, 200, 200 DW 200, 4 DUP(100), 200, 200, 200 DW 200, 4 DUP(100), 200 DW 4 DUP(100), 200, 4 DUP(100), 400 MUS_FRQ4

      DW 330, 392, 330, 294, 330, 392, 330, 394, 330 DW 330, 392, 330, 294, 262, 294, 330, 392, 294

      DW 262, 262, 220, 196, 196, 220, 262, 294, 330, 262,-1 MUS_TIM4

      DW 3 DUP(200), 100, 100, 200, 100, 100, 400 DW 2 DUP(200,200,100,100), 400 DW 3 DUP(200,100,100), 400 TABLE

      DW 262, 294, 330, 349, 392, 440, 494, 525

      NUMB

      DB 0AH, 0DH, 'Keyboard number 1~8 keys play notes of the scale'

      DB 0AH, 0DH, 'Enter or Ctrl+C to exit' DB 0AH, 0DH, '$' DATA

      ENDS STACK

      SEGMENT

      PARA STACK 'STACK'

      STA

      DB 200 DUP('STACK')

      STACK

      ENDS CODE

      SEGMENT ASSUME DS: DATA, SS: STACK, CS: CODE, ES: DATA START:

      MOV AX, DATA

      MOV DS, AX MOV ES, AX MOV AX, STACK

      MOV SS, AX SHOW

      MACRO B MOV DX, OFFSET B

      MOV AH, 09H

      INT 21H ENDM SHOW INFO1 LOP:

      SHOW MUSLIST MOV AH, 01H

      INT

      21H

      CMP AL, 36H

      JZ

      RETU

      CMP AL, 31H

      JNZ

      B0 CALL MUSIC1

      JMP

      EXIT1 B0:

      CMP

      AL, 32H

      JNZ

      C0 CALL MUSIC2

      JMP

      EXIT1 C0:

      CMP

      AL, 33H

      JNZ

      D0 CALL MUSIC3

      JMP

      EXIT1 D0:

      CMP

      AL, 34H

      JNZ

      E0 CALL MUSIC4

      JMP

      EXIT1 E0:

      CMP

      AL, 35H

      JNZ

      EXIT SHOW NUMB CALL MUSIC5 EXIT1:

      SHOW INFO5

      JMP

      LOP EXIT:

      SHOW INFO4 SHOW INFO5

      JMP

      LOP RETU:

      MOV AX, 4C00H

      INT

      21H MUSIC1

      PROC

      LEA

      SI, MUS_FRQ1

      LEA

      BP,DS: MUS_TIM1 FREQ1:

      MOV DI, [SI] CMP DI,-1

      JE

      END_MUS1 MOV BX, DS: [BP] CALL GENSOUND

      ADD

      SI,2

      ADD

      BP,2 JMP FREQ1

      END_MUS1:RET MUSIC1

      ENDP MUSIC2

      PROC

      LEA

      SI, MUS_FRQ2

      LEA

      BP,DS: MUS_TIM2 FREQ2:

      MOV DI, [SI] CMP DI,-1

      JE

      END_MUS2 MOV BX, DS: [BP] CALL GENSOUND

      ADD

      SI,2

      ADD

      BP,2

      JMP FREQ2

      END_MUS2:RET MUSIC2

      ENDP MUSIC3

      PROC

      LEA

      SI, MUS_FRQ3

      LEA

      BP,DS: MUS_TIM3 FREQ3:

      MOV DI, [SI] CMP DI,-1

      JE

      END_MUS3 MOV BX, DS: [BP] CALL GENSOUND

      ADD

      SI,2

      ADD

      BP,2 JMP FREQ3

      END_MUS3:RET MUSIC3

      ENDP MUSIC4

      PROC

      LEA

      SI, MUS_FRQ4

      LEA

      BP,DS: MUS_TIM4 FREQ4:

      MOV DI, [SI] CMP DI,-1

      JE

      END_MUS4 MOV BX, DS: [BP] CALL GENSOUND

      ADD

      SI,2

      ADD

      BP,2 JMP FREQ4

      END_MUS4:RET MUSIC4

      ENDP MUSIC5

      PROC NEAR PUSH AX PUSH BX PUSH CX LOP5:

      MOV AH, 01H

      INT

      21H

      CMP AL, 0DH

      JE

      EXIT5

      CMP AL, 31H

      JB

      LOP5

      CMP AL, 38H

      JA

      LOP5

      AND AX, 0FH

      SHL

      AX, 1

      SUB

      AX, 2

      MOV SI, AX MOV BX, OFFSET TABLE MOV DI, [BX][SI]

      MOV BX, 100

      CALL

      GENSOUND

      JMP LOP5 EXIT5:

      POP CX POP BX POP AX

      RET MUSIC5

      ENDP GENSOUND

      PROC

      PUSH AX PUSH BX PUSH CX PUSH DX PUSH DI MOV AL, 0B6H

      OUT

      43H, AL

      MOV

      DX, 12H

      MOV AX, 533H*896 DIV DI OUT 42H, AL

      MOV AL, AH OUT 42H, AL

      IN AL, 61H

      MOV AH, AL OR AL, 3

      OUT 61H, AL

      PUSH AX

      WAIT1:

      MOV CX, 1200

      DELA1:

      IN AL, 61H

      AND AL, 10H CMP AL, AH JE DELA1 MOV AH,AL LOOP DELA1 DEC BX JNZ WAIT1 POP AX MOV AL, AH OUT 61H, AL

      POP DI POP DX POP CX

      POP

      BX POP AX

      RET GENSOUND ENDP CODE

      ENDS END

      START

      2、實(shí)驗(yàn)現(xiàn)象

      1.進(jìn)入DOS后在DOS界面進(jìn)行匯編鏈接并生成可執(zhí)行文件.exe 2.雙擊可執(zhí)行文件DZQ.exe進(jìn)入操作界面如圖所示

      操作界面初始界面

      3.在進(jìn)行操作的時(shí)候只要在鍵盤上按1-4這數(shù)字鍵就可以聽(tīng)取歌曲1-4,按數(shù)字鍵5時(shí)進(jìn)入電子琴界面,這時(shí)候1-8分別表示音樂(lè)CDEFGABC這幾個(gè)音符。按回車后退出電子琴操作界面,這時(shí)候按6退出程序。

      按數(shù)字鍵5后進(jìn)入電子琴界面

      四、心得體會(huì)

      這次課程設(shè)計(jì)給我的感覺(jué)是:與其說(shuō)這次課設(shè)是一個(gè)任務(wù),不如說(shuō)是期末對(duì)微機(jī)原理的一次系統(tǒng)的復(fù)習(xí)。通過(guò)課設(shè),我弄清楚了課本上一些比較晦澀但是又非常重要的章節(jié)的內(nèi)容,例如:鍵盤和顯示器DOS功能調(diào)用,數(shù)據(jù)定義偽指令的使用,子程序的嵌套,8253芯片的初始化等等。

      剛拿到課設(shè)題目時(shí)可以說(shuō)是毫無(wú)思緒,但是通過(guò)查閱資料,模仿別人的程序,不斷理解,拼湊,改進(jìn),終于按照課設(shè)要求完成任務(wù)。剛開(kāi)始上機(jī)運(yùn)行程序出現(xiàn)的問(wèn)題不可謂不多,但是通過(guò)匯編的錯(cuò)誤提示,我很容易的發(fā)現(xiàn)了問(wèn)題并改正了它,如果不是上機(jī)運(yùn)行,而是一味的盯著程序檢查,那樣的話真可謂無(wú)從下手,事倍功半。這個(gè)告訴我有時(shí)候動(dòng)動(dòng)手實(shí)踐,遠(yuǎn)比啃書學(xué)習(xí)知識(shí)的效率要高得多。

      五、參考文獻(xiàn)

      [1] 王忠民.微型計(jì)算機(jī)原理(第二版).西安:西安電子科技大學(xué)出版社,2007年

      [2] 馬春燕.微機(jī)原理與接口技術(shù)實(shí)驗(yàn)與學(xué)習(xí)輔導(dǎo).北京:電子工業(yè)出版社.2007年

      第三篇:通信原理課設(shè)(本站推薦)

      一、音頻傳輸系統(tǒng)設(shè)計(jì)..................................................................................................................1

      1.設(shè)計(jì)目的................................................................................................................................1 2.設(shè)計(jì)內(nèi)容................................................................................................................................1 3.實(shí)現(xiàn)步驟................................................................................................................................1 4.結(jié)論及思考............................................................................................................................5

      二、數(shù)字傳輸系統(tǒng)設(shè)計(jì)..................................................................................................................7

      1.設(shè)計(jì)目的................................................................................................................................7 2.設(shè)計(jì)內(nèi)容................................................................................................................................7 3.實(shí)現(xiàn)步驟..............................................................................................................................11 4.結(jié)論及思考..........................................................................................................................17

      三、總結(jié)與收獲............................................................................................................................18 指導(dǎo)教師意見(jiàn)................................................................................................................................19

      《通信原理》課程設(shè)計(jì)報(bào)告

      一、音頻傳輸系統(tǒng)設(shè)計(jì)

      1.設(shè)計(jì)目的

      通信的基本形式是在信源和信宿之間建立一條傳遞信息的通道,通信系統(tǒng)通常由 信源,變換器,信道,反變換器,信宿以及等效噪聲等幾部分構(gòu)成.通過(guò)這次音頻傳輸系統(tǒng)設(shè)計(jì),我們可以深刻體會(huì)到信號(hào)在通信系統(tǒng)中的傳輸和處理過(guò)程有一個(gè)更加清晰的認(rèn)識(shí)和理解,對(duì)于模擬通信系統(tǒng),考查學(xué)生對(duì)調(diào)制技術(shù)的理解和使用, 同時(shí),通過(guò)音頻傳輸系統(tǒng)的設(shè)計(jì),我們更加深刻理解了模擬通信系統(tǒng)設(shè)計(jì),以及模擬通信系統(tǒng)下最重要的調(diào)制技術(shù)的應(yīng)用和設(shè)計(jì),鍛煉了我們獨(dú)立思考和分析工程問(wèn)題的能力,同時(shí),通過(guò)設(shè)計(jì)和實(shí)現(xiàn),我們對(duì)復(fù)雜的工程問(wèn)題會(huì)有更加深刻的認(rèn)識(shí),對(duì)一個(gè)完整的模擬通信系統(tǒng)會(huì)有一個(gè)更加清晰和完善的概念.2.設(shè)計(jì)內(nèi)容

      利用NI-USRP節(jié)點(diǎn)設(shè)備接收實(shí)際的廣播信號(hào).結(jié)合LABVIEW,實(shí)現(xiàn)對(duì)音頻信號(hào)的調(diào)制解調(diào),觀察接收信號(hào)的質(zhì)量并進(jìn)行分析.3.實(shí)現(xiàn)步驟

      音頻傳輸系統(tǒng)包括發(fā)送端和接收端: 音頻傳輸系統(tǒng)TX.vi: 發(fā)射端主程序的前面板如圖,前面板左側(cè)為參數(shù)輸入圖部分。

      (1)首先,用NI-USRP Configuration Utility觀察確保硬件與電腦連接上,以及硬件的地址。

      (2)然后修改發(fā)送端前面板的“設(shè)備的IP地址”。

      (3)可以設(shè)置聲音文件路徑(labview只能識(shí)別wav格式音頻文件)。

      (4)USRP配置各類程序控制參數(shù),包括IQ速率,可以更改,但是發(fā)送端與接收端的IQ速率要相同,載波頻率就是頻點(diǎn)頻率。

      《通信原理》課程設(shè)計(jì)報(bào)告

      此模塊的作用是根據(jù)輸入的路徑獲取音頻文件,對(duì)應(yīng)于程序框圖SUBVI OPEN Waveform File.vi,輸入是外部音頻文件的路徑,要求必須是wav格式。如果留空,則會(huì)自動(dòng)選擇默認(rèn)音頻文件,輸出時(shí)聲音文件的引用句柄,每次從聲音文件中讀取的樣點(diǎn)數(shù)以及任務(wù)id。此外,這個(gè)子程序還留有一個(gè)選擇是否同時(shí)播放的選項(xiàng),程序的前面板會(huì)有一個(gè)勾選框,可以選擇是否在發(fā)送的同時(shí)也播放聲音。

      2.讀取聲音波形

      這個(gè)模塊的作用是將打開(kāi)音頻文件模塊中得到的聲音文件轉(zhuǎn)換成波形數(shù)組形式輸出,同時(shí),還將波形數(shù)據(jù)寫進(jìn)聲音輸出設(shè)備,使得在發(fā)送端可以聽(tīng)到將要發(fā)送的聲音,如果在前面板勾選了同時(shí)播放聲音這個(gè)選項(xiàng),那么就可以通過(guò)電腦聲卡播放出聲音,對(duì)應(yīng)于程序框圖中的SubVI Read Waveforem File.vi子程序。

      輸出是波形數(shù)據(jù)、任務(wù)ID以及文件標(biāo)示和同時(shí)播放聲音這個(gè)選項(xiàng)。3.進(jìn)行FM調(diào)制

      該模塊的作用是對(duì)音頻進(jìn)行FM調(diào)制,對(duì)應(yīng)于Exercises FM Modulation.vi

      圖1-3FM調(diào)制圖

      該模塊的輸入是聲音波形數(shù)據(jù),IQ 采樣率和頻偏,輸出是經(jīng)過(guò)FM調(diào)制后的時(shí)域波形,調(diào)制后的波形數(shù)據(jù)進(jìn)入niUSRP Write Tx Data(poly)函數(shù)。根據(jù)前面板上配置后的各項(xiàng)參數(shù)發(fā)射到空間中,以供接收端程序,普通的FM收音機(jī)或者有FM接收功能的手機(jī)接收。

      該模塊需要分兩步完成對(duì)聲音信號(hào)的FM調(diào)制。

      《通信原理》課程設(shè)計(jì)報(bào)告

      4.結(jié)論及思考

      思考:

      1.頻偏的意義是什么?它怎樣影響調(diào)制信號(hào)?從聽(tīng)眾的角度,能做些什么來(lái)解決這些影響,做一些測(cè)試驗(yàn)證觀點(diǎn)。

      mf = 最大頻偏低頻信號(hào)的頻率,B = 2*(mf+1)F,影響帶寬,而帶寬影響噪聲,所以同時(shí)頻偏也影響輸出信噪比。

      從聽(tīng)眾的角度來(lái)講,因?yàn)楣矎V播的頻帶范圍是有限的,為87.5~108MHz,以100KHz為步進(jìn)搜索電臺(tái)。我們?cè)谑褂猛ㄐ畔到y(tǒng)時(shí)應(yīng)該避開(kāi)這些公共頻帶。

      2.找出一些能證明所設(shè)計(jì)的FM收發(fā)機(jī)性能優(yōu)劣的技術(shù)指標(biāo)

      采樣率的大?。航邮諜C(jī)的采樣效率越高,相同信噪比下收聽(tīng)效果越好。天線增益:天線增益越小,接收效果越好。結(jié)論:

      1.利用NI-USRP節(jié)電設(shè)備,結(jié)合LabVIEW,我實(shí)現(xiàn)了對(duì)音頻信號(hào)的調(diào)制解調(diào),收聽(tīng)到了包含有噪聲的音樂(lè)。

      2.提高接收質(zhì)量:有很多因素影響FM通信系統(tǒng)的有效性和可靠性,如帶寬、頻偏、增益和載波頻率對(duì)FM通信系統(tǒng)的影響較大。經(jīng)測(cè)試,提高增益和減小頻偏可以有效改善質(zhì)量。

      《通信原理》課程設(shè)計(jì)報(bào)告

      3、信源編碼

      該模塊主要是完成霍夫曼編碼—基于有序頻率二叉樹(shù)的編碼。

      圖2-2信源編碼

      4、信道編碼

      這里主要是使用的(7,4)分組編碼

      5、脈沖調(diào)制

      主要完成添加訓(xùn)練隊(duì)列以及脈沖成形濾波的功能。其中添加訓(xùn)練序列主要是為了接收端可以頻偏校正。

      6、信道設(shè)置

      主要在信道中加入白噪聲。

      《通信原理》課程設(shè)計(jì)報(bào)告

      前面板左下方是接受信號(hào)的它的星座圖,和誤碼率曲線。可以通過(guò)這些來(lái)判斷程序是否正確。

      圖2-5數(shù)字傳輸系統(tǒng)接收端

      而對(duì)接收端的程序框圖進(jìn)行分析:

      1、初始化

      實(shí)現(xiàn)USRP初始化和配置USRP的參數(shù),此時(shí)注意與發(fā)送對(duì)應(yīng)。如圖所示。

      圖2-6初始化框圖

      2、信號(hào)檢測(cè)

      《通信原理》課程設(shè)計(jì)報(bào)告

      2.設(shè)計(jì)內(nèi)容

      1)完成信道編碼即(7,4)分組編碼的過(guò)程,此時(shí)需要完成Exercises Encode-74.vi,學(xué)習(xí)(7,4)分組碼譯碼的過(guò)程。

      2)將脈沖調(diào)制模塊的QPSK/BPSK程序圖補(bǔ)充完整 3)學(xué)習(xí)信源編碼即霍夫曼編譯碼的過(guò)程 3.實(shí)現(xiàn)步驟

      1)發(fā)送端接收端程序結(jié)構(gòu):

      圖2-6發(fā)送端(1)

      圖2-7發(fā)送端(2)

      發(fā)送端程序框圖:

      《通信原理》課程設(shè)計(jì)報(bào)告

      設(shè)置生成矩陣,然后輸入前面板的生成矩陣內(nèi),打開(kāi)程序框圖,進(jìn)行設(shè)計(jì)。

      圖2-9分組碼程序框圖

      設(shè)計(jì)圖如下:

      輸入后將長(zhǎng)串輸入數(shù)據(jù)流進(jìn)行長(zhǎng)度為4的分塊。也即為4維數(shù)組。和G矩陣相乘,之后再轉(zhuǎn)化為一維數(shù)組。由于矩陣乘法是數(shù)值相加的過(guò)程,而分組編碼是異或過(guò)程,因此需要將矩陣內(nèi)每個(gè)元素除二取余,余數(shù)即為正確的異或過(guò)程。

      分組碼譯碼: 首先設(shè)計(jì)校驗(yàn)矩陣H。接著設(shè)計(jì)程序框圖如下:

      圖2-10解調(diào)程序框圖

      《通信原理》課程設(shè)計(jì)報(bào)告

      入信號(hào)平均能量,將此能量與符號(hào)能量相乘乘上信號(hào)幅值,得到輸出信號(hào)

      圖2-12 BPSK設(shè)計(jì)

      BPSK。BPSK解調(diào)如圖所示。輸入數(shù)據(jù)流對(duì)2取余,輸出到下一個(gè)框圖,0對(duì)應(yīng)1,1對(duì)應(yīng)-1.4)利用USRP設(shè)備實(shí)現(xiàn)圖像發(fā)送 首先設(shè)置硬件設(shè)備,選擇好天線,然后打開(kāi)發(fā)送端和接收端。得到結(jié)果如下:

      圖2-13發(fā)送和接收?qǐng)D像

      在圖像傳輸過(guò)程中會(huì)出現(xiàn)噪聲干擾,通過(guò)增大增益可以使噪聲減小。

      《通信原理》課程設(shè)計(jì)報(bào)告

      (備注:此處要求手寫,不得拷貝,要有自己的心得體會(huì))

      本人簽名:

      日指導(dǎo)教師意見(jiàn)

      第四篇:通信原理課設(shè)

      沈陽(yáng)理工大學(xué)通信系統(tǒng)課程設(shè)計(jì)

      摘 要

      摘要:所謂調(diào)制,就是在傳送信號(hào)的一方將所要傳送的信號(hào)附加在高頻振蕩上,再由天線發(fā)射出去。這里高頻振蕩波就是攜帶信號(hào)的運(yùn)載工具,也叫載波。振幅調(diào)制,就是由調(diào)制信號(hào)去控制高頻載波的振幅,直至隨調(diào)制信號(hào)做線性變化。在線性調(diào)制系列中,最先應(yīng)用的一種幅度調(diào)制是全調(diào)幅或常規(guī)調(diào)幅,簡(jiǎn)稱為調(diào)幅(AM)。為了提高傳輸?shù)男剩€有載波受到抑制的雙邊帶調(diào)幅波(DSB)和單邊帶調(diào)幅波(SSB)。在頻域中已調(diào)波頻譜是基帶調(diào)制信號(hào)頻譜的線性位移;在時(shí)域中,已調(diào)波包絡(luò)與調(diào)制信號(hào)波形呈線性關(guān)系。

      本課程設(shè)計(jì)主要利用MATLAB集成環(huán)境下的Simulink仿真平臺(tái),設(shè)計(jì)一個(gè)AM調(diào)制與相干解調(diào)通信系統(tǒng),分別在理想信道和非理想信道中運(yùn)行,并把運(yùn)行仿真結(jié)果輸入顯示器,根據(jù)顯示結(jié)果分析所設(shè)計(jì)的系統(tǒng)性能。經(jīng)過(guò)調(diào)制,初步實(shí)現(xiàn)了設(shè)計(jì)目標(biāo),并且經(jīng)過(guò)適當(dāng)?shù)耐晟坪?,?shí)驗(yàn)成功。

      關(guān)鍵詞: MATLAB7.1 ;Simulink仿真平臺(tái);AM調(diào)制;相干解調(diào)

      沈陽(yáng)理工大學(xué)通信系統(tǒng)課程設(shè)計(jì)

      目錄 課程設(shè)計(jì)目的…………………………………………………………1 課程設(shè)計(jì)要求…………………………………………………………1 相關(guān)知識(shí)………………………………………………………………1 課程設(shè)計(jì)分析…………………………………………………………2 仿真……………………………………………………………………6

      6結(jié)果分析………………………………………………………………10 參考文獻(xiàn)………………………………………………………………12

      沈陽(yáng)理工大學(xué)通信系統(tǒng)課程設(shè)計(jì)

      1.課程設(shè)計(jì)的目的

      1.掌握模擬系統(tǒng)AM調(diào)制和解調(diào)原理。2.掌握模擬系統(tǒng)AM調(diào)制和解調(diào)的設(shè)計(jì)方法。

      3.掌握用MATLAB分析系統(tǒng)時(shí)域、頻域特性的方法,進(jìn)一步鍛煉應(yīng)用MATLAB進(jìn)行編程仿真的能力。

      4.熟悉基于Simulink的動(dòng)態(tài)建模和仿真的步驟和過(guò)程。

      2.課程設(shè)計(jì)的要求

      利用Matlab軟件進(jìn)行振幅調(diào)制和解調(diào)程序設(shè)計(jì),輸出顯示調(diào)制信號(hào)、載波信號(hào)以及已調(diào)信號(hào)波形,并輸出顯示三種信號(hào)頻譜圖。對(duì)產(chǎn)生波形進(jìn)行分析,并通過(guò)參數(shù)的改變,觀察波形變化,分析實(shí)驗(yàn)現(xiàn)象。

      3.相關(guān)知識(shí) 3.1 AM調(diào)制原理

      幅度調(diào)制是用調(diào)制信號(hào)去控制高頻正弦載波的幅度,使其按調(diào)制信號(hào)的規(guī)律變化的過(guò)程。幅度調(diào)制器的一般模型如圖2.1所示。

      圖3.1—1 幅度調(diào)制模型

      在圖2-1中,若假設(shè)濾波器為全通網(wǎng)絡(luò)(=1),調(diào)制信號(hào)m?t?疊加直流A0后再與載波相乘,則輸出的信號(hào)就是常規(guī)雙邊帶(AM)調(diào)幅.AM調(diào)制器模型如圖2-2所示

      圖3.1—2 AM調(diào)制模型

      AM信號(hào)波形的包絡(luò)與輸入基帶信號(hào)m?t?成正比,故用包絡(luò)檢波的方法很容易恢復(fù)原始調(diào)制信號(hào)。但為了保證包絡(luò)檢波時(shí)不發(fā)生失真,必須滿足A0?m?t?max,否

      沈陽(yáng)理工大學(xué)通信系統(tǒng)課程設(shè)計(jì)

      則將出現(xiàn)過(guò)調(diào)幅現(xiàn)象而帶來(lái)失真。AM信號(hào)的頻譜是由載頻分量和上、下兩個(gè)邊帶組成(通常稱頻譜中畫斜線的部分為上邊帶,不畫斜線的部分為下邊帶)。上邊帶的頻譜與原調(diào)制信號(hào)的頻譜結(jié)構(gòu)相同,下邊帶是上邊帶的鏡像。顯然,無(wú)論是上邊帶還是下邊帶,都含有原調(diào)制信號(hào)的完整信息。故AM信號(hào)是帶有載波的雙邊帶信號(hào),它的帶寬信號(hào)帶寬的兩倍。

      3.2 相干解調(diào)

      由AM信號(hào)的頻譜可知,如果將已調(diào)信號(hào)的頻譜搬回到原點(diǎn)位置,即可得到原始的調(diào)制信號(hào)頻譜,從而恢復(fù)出原始信號(hào)。解調(diào)中的頻譜搬移同樣可用調(diào)制時(shí)的相乘運(yùn)算來(lái)實(shí)現(xiàn)。相干解調(diào)的關(guān)鍵是是必須產(chǎn)生一個(gè)與調(diào)制器同頻同相位的載波。如果同頻同相位的條件得不到滿足,則會(huì)破壞原始信號(hào)的恢復(fù)。

      4.課程設(shè)計(jì)分析

      4.1雙邊帶幅度調(diào)制

      在DSB-AM系統(tǒng)中,已調(diào)信號(hào)的幅度正比與消息信號(hào)。這種調(diào)制通過(guò)使用乘法器完成,將消息信號(hào)嗎m(t)與載波Accos(2πfct),如圖4.1—1所示,表示為:

      u(t)=Acm(t)cos(2πfct)

      (1)

      圖 4.1—1 DSB-AM調(diào)制原理結(jié)構(gòu)框圖

      其中

      c(t)=Accos(2πfct)

      (2)

      是載波,而m(t)是消息信號(hào)。若以單頻正弦信號(hào)調(diào)制為例,那么典型波形如圖4.1—2所示。

      沈陽(yáng)理工大學(xué)通信系統(tǒng)課程設(shè)計(jì)

      現(xiàn)取u(t)的傅立葉變換,可以得到DSB-AM信號(hào)的頻域表示為:

      (3)

      其中M(f)是m(t)的傅立葉變換。很明顯可以看出,這種調(diào)制方式將消息信號(hào)的頻譜進(jìn)行了搬移,并在幅度上乘以Ac/2,傳輸帶寬Br是消息信號(hào)帶寬的兩倍,也就是說(shuō):

      Br=2W

      (4)

      圖3顯示了一個(gè)典型的消息信號(hào)的頻譜及其相對(duì)應(yīng)的DSB-AM已調(diào)信號(hào)的頻譜。

      圖4.1—2 消息信號(hào)與DSB-AM已調(diào)信號(hào)的頻譜

      已調(diào)信號(hào)的功率為

      (5)

      其中Pm是消息信號(hào)的功率。在DSB-AM通信系統(tǒng)中,信噪比SNR等于基帶的SNR,也就是:

      沈陽(yáng)理工大學(xué)通信系統(tǒng)課程設(shè)計(jì)

      (6)

      其中PR是接收到的功率(在接收端已調(diào)信號(hào)的功率),N0是噪聲功率譜密度(假定為白噪聲),W是信號(hào)噪聲的帶寬。

      4.2雙邊帶抑制載波幅度調(diào)制

      4.2.1.DSB信號(hào)的表達(dá)式、頻譜及帶寬

      在幅度調(diào)制的一般模型中,若假設(shè)濾波器為全通網(wǎng)絡(luò)(=1),調(diào)制信號(hào)

      中無(wú)直流分量,則輸出的已調(diào)信號(hào)就是無(wú)載波分量的雙邊帶調(diào)制信號(hào),或稱抑制載波雙邊帶(DSB-SC)調(diào)制信號(hào),簡(jiǎn)稱雙邊帶(DSB)信號(hào)。

      DSB調(diào)制器模型如圖4.2.1—1所示。可見(jiàn)DSB信號(hào)實(shí)質(zhì)上就是基帶信號(hào)與載波直接相乘,其時(shí)域和頻域表示式分別為

      圖4.2.1—1DSB-SC調(diào)制模型

      (7)

      (8)

      DSB信號(hào)的包絡(luò)不再與

      成正比,故不能進(jìn)行包絡(luò)檢波,需采用相干解調(diào);除不再含有載頻分量離散譜外,DSB信號(hào)的頻譜與AM信號(hào)的完全相同,仍由上下對(duì)稱的兩個(gè)邊帶組成。故DSB信號(hào)是不帶載波的雙邊帶信號(hào),它的帶寬與AM信號(hào)相同,也為基帶信號(hào)帶寬的兩倍,即

      4.2.2.DSB信號(hào)的解調(diào)

      DSB信號(hào)只能采用相干解調(diào),其模型與AM信號(hào)相干解調(diào)時(shí)完全相同,此時(shí),乘法器輸出

      沈陽(yáng)理工大學(xué)通信系統(tǒng)課程設(shè)計(jì)

      經(jīng)低通濾波器濾除高次項(xiàng),得

      (9)

      即無(wú)失真地恢復(fù)出原始電信號(hào)。

      抑制載波的雙邊帶幅度調(diào)制的好處是,節(jié)省了載波發(fā)射功率,調(diào)制效率高;調(diào)制電路簡(jiǎn)單,僅用一個(gè)乘法器就可實(shí)現(xiàn)。缺點(diǎn)是占用頻帶寬度比較寬,為基帶信號(hào)的2倍。

      沈陽(yáng)理工大學(xué)通信系統(tǒng)課程設(shè)計(jì)

      5.仿真

      5.1雙邊帶頻帶幅度調(diào)制的系統(tǒng)仿真

      圖5.1-1雙邊帶頻帶幅度調(diào)制的系統(tǒng)仿真框圖

      圖5.1-2 DSB AM Modulator Passband(雙邊帶頻帶幅度調(diào)制器)的主要參數(shù)

      沈陽(yáng)理工大學(xué)通信系統(tǒng)課程設(shè)計(jì)

      圖5.1-3 DBS AM Demodulator Passband(雙邊帶頻帶幅度解調(diào)器)的主要參數(shù)

      圖5.1-4 DBS AM(雙邊帶幅度調(diào)制)頻譜儀(Spectrum Scope)的主要參數(shù)

      沈陽(yáng)理工大學(xué)通信系統(tǒng)課程設(shè)計(jì)

      5.2雙邊帶抑制載波幅度調(diào)制系統(tǒng)仿真

      圖5.2-1 雙邊帶抑制載波幅度調(diào)制的系統(tǒng)仿真框圖

      圖5.2-2 DSB-SC AM 信號(hào)發(fā)生器(Signal Generator)的主要參數(shù)

      沈陽(yáng)理工大學(xué)通信系統(tǒng)課程設(shè)計(jì)

      圖5.2-3 DSB-SC AM Modualtor Passband(雙邊帶頻帶抑制幅度調(diào)制器)的主要參數(shù)

      圖5.2-4 DSB-SC AM的頻譜儀(Spectrum Scope)的主要參數(shù)

      沈陽(yáng)理工大學(xué)通信系統(tǒng)課程設(shè)計(jì)

      6.結(jié)果分析

      6.1雙邊帶頻帶幅度調(diào)制的系統(tǒng)仿真結(jié)果

      圖6.1-1雙邊帶頻帶幅度調(diào)制后的頻域圖

      圖6.1-2雙邊帶頻帶幅度調(diào)制仿真系統(tǒng)中示波器的波形圖

      沈陽(yáng)理工大學(xué)通信系統(tǒng)課程設(shè)計(jì)

      6.2雙邊帶抑制載波幅度調(diào)制系統(tǒng)仿真結(jié)果

      圖6.2-1 雙邊帶頻帶抑制幅度調(diào)制后調(diào)制信號(hào)的頻域圖

      圖6.2-2 雙邊帶抑制幅度調(diào)制后調(diào)制信號(hào)的時(shí)域圖

      沈陽(yáng)理工大學(xué)通信系統(tǒng)課程設(shè)計(jì)

      7.參考文獻(xiàn)

      【1】桑林,郝建軍,劉丹,【數(shù)字通信】,北京郵電大學(xué)出版社,2002 【2】苗云長(zhǎng)等主編,【現(xiàn)代通信原理及應(yīng)用】,電子工業(yè)出版社,2005 【3】吳偉鈴,龐沁華,【通信原理】,北京郵電大學(xué)出版社,2005 【4】張圣勤,【MATLAB7.0實(shí)用教程】桑林,郝建軍,劉丹,數(shù)字通信,北京郵電大學(xué)出版社,2002 【5】邵玉斌,【Matlab/Simulink通信原理建模與仿真實(shí)例分析】,清華大學(xué)出版社,2008 【6】沈偉慈?!就ㄐ烹娐贰?,西安電子科技大學(xué)出版社,2007

      第五篇:微機(jī)硬件課設(shè)(紅綠燈)

      微機(jī)原理實(shí)驗(yàn)課程設(shè)計(jì)

      硬件部分

      東華大學(xué)信息學(xué)院

      2013.1

      一. 基礎(chǔ)實(shí)驗(yàn)部分

      實(shí)驗(yàn)1存儲(chǔ)器讀寫實(shí)驗(yàn)

      一、實(shí)驗(yàn)?zāi)康?/p>

      1.掌握PC機(jī)外存擴(kuò)展的方法。2.熟悉6264芯片的接口方法。

      3.掌握8086十六位數(shù)據(jù)存儲(chǔ)的方法。

      二、實(shí)驗(yàn)設(shè)備

      微機(jī)實(shí)驗(yàn)箱、8086CPU模塊。

      三、實(shí)驗(yàn)內(nèi)容

      向02000~020FFH單元的偶地址送入AAH,奇地址送入55H。

      四、實(shí)驗(yàn)原理介紹

      本實(shí)驗(yàn)用到存儲(chǔ)器電路

      五、實(shí)驗(yàn)步驟和要求

      1、實(shí)驗(yàn)接線:本實(shí)驗(yàn)無(wú)需接線。

      2、編寫調(diào)試程序

      3、運(yùn)行實(shí)驗(yàn)程序,可采取單步、設(shè)置斷點(diǎn)方式,打開(kāi)內(nèi)存窗口可看到內(nèi)存區(qū)的變化。本實(shí)驗(yàn)的主要目的是學(xué)會(huì)用使用工具軟件,掌握用單步執(zhí)行和斷點(diǎn)方式運(yùn)行程序,觀察寄存器和內(nèi)存中的數(shù)據(jù)變化等程序調(diào)試的手段。

      六、實(shí)驗(yàn)提示

      七、實(shí)驗(yàn)范例程序框圖及源代碼(實(shí)驗(yàn)程序名:RAM.ASM)

      八、思考題

      1、單步執(zhí)行到“intram”標(biāo)號(hào)的語(yǔ)句時(shí),ds寄存器的數(shù)據(jù)是什么?采用斷點(diǎn)方式運(yùn)行時(shí)執(zhí)行到第一個(gè)斷點(diǎn)處,2000H~202FH內(nèi)存單元的數(shù)據(jù)是什么?執(zhí)行到第二個(gè)斷點(diǎn)處,2000H~200FH內(nèi)存單元的數(shù)據(jù)是什么?并根據(jù)觀察結(jié)果和對(duì)源程序的判讀簡(jiǎn)述源程序的運(yùn)行效果。

      答:?jiǎn)尾綀?zhí)行到“intram”標(biāo)號(hào)的語(yǔ)句時(shí),ds寄存器的數(shù)據(jù)都為00。

      斷點(diǎn)方式運(yùn)行時(shí)執(zhí)行到第一個(gè)斷點(diǎn)處時(shí),2000H~202FH內(nèi)存單元的數(shù)據(jù)都為00。

      到第二個(gè)斷點(diǎn)處,2000H~200FH內(nèi)存單元偶地址都為AA,奇地址都為00。

      2、修改程序,實(shí)現(xiàn)從2000H到200FH單元依次賦值00H~0FH的功能。答:只需改變intram 和 fil中相關(guān)的程序: 需改動(dòng)的原程序:

      intram: mov [si],al

      incsi loopintram mov si,1000h;設(shè)置斷點(diǎn)處 mov cx,100h mov ax,55aah fil:

      mov [si],ax;RAM區(qū)循環(huán)置數(shù) incsi

      改為:

      intram: mov [si],al incsi loopintram mov si,1000h;設(shè)置斷點(diǎn)處

      mov cx,100h mov ax,0100h fil:

      mov [si],ax incsi addax,0202h incsi loopfil

      ;RAM區(qū)循環(huán)置數(shù)

      實(shí)驗(yàn)2簡(jiǎn)單I/O口擴(kuò)展實(shí)驗(yàn)

      一、實(shí)驗(yàn)?zāi)康?/p>

      1、熟悉74LS273,74LS244的應(yīng)用接口方法。

      2、掌握用鎖存器、三態(tài)門擴(kuò)展簡(jiǎn)單并行輸入、輸出口的方法。

      二、實(shí)驗(yàn)設(shè)備

      微機(jī)實(shí)驗(yàn)箱、8086CPU模塊。

      三、實(shí)驗(yàn)內(nèi)容

      邏輯電平開(kāi)關(guān)的狀態(tài)輸入74LS244,然后通過(guò)74LS273鎖存輸出,利用LED顯示電路作為輸出的狀態(tài)顯示。

      四、實(shí)驗(yàn)原理介紹

      本實(shí)驗(yàn)用到兩部分電路:開(kāi)關(guān)量輸入輸出電路,簡(jiǎn)單I/O口擴(kuò)展電路。

      五、實(shí)驗(yàn)步驟

      1、實(shí)驗(yàn)接線:(?表示相互連接)CS0 ?CS244; CS1?CS273;平推開(kāi)關(guān)的輸出K1~K8 ? IN0~I(xiàn)N7(對(duì)應(yīng)連接); O0~O7?LED1~LED8。

      2、編輯程序,單步運(yùn)行,調(diào)試程序

      3、調(diào)試通過(guò)后,全速運(yùn)行程序,觀看實(shí)驗(yàn)結(jié)果。

      4、編寫實(shí)驗(yàn)報(bào)告。

      六、實(shí)驗(yàn)提示

      七、實(shí)驗(yàn)結(jié)果

      程序全速運(yùn)行后,邏輯電平開(kāi)關(guān)的狀態(tài)改變應(yīng)能在LED上顯示出來(lái)。例如:K2置于L位置,則對(duì)應(yīng)的LED2應(yīng)該點(diǎn)亮。

      八、實(shí)驗(yàn)范例程序框圖(實(shí)驗(yàn)程序名: T244273.ASM)

      九、程序源代碼清單

      十、思考題:

      將74LS244的片選信號(hào)CS244改接CS2,將74LS273的片選信號(hào)CS273改接CS3,修改程序?qū)崿F(xiàn)與范例程序相同的功能。

      答:只需改變程序中start相應(yīng)的輸入輸出口地址。需改動(dòng)的原程序:

      start:

      mov dx,04a0h

      inal,dx mov dx,04b0h outdx,al 改為:

      start:

      mov dx,04c0h

      inal,dx mov dx,04d0h outdx,al

      實(shí)驗(yàn)3 8255并行口實(shí)驗(yàn)

      一、實(shí)驗(yàn)?zāi)康?/p>

      掌握8255A的編程原理。

      二、實(shí)驗(yàn)設(shè)備

      微機(jī)實(shí)驗(yàn)箱、8086CPU模塊。

      三、實(shí)驗(yàn)內(nèi)容

      8255A的A口作為輸入口,與邏輯電平開(kāi)關(guān)相連。8255A的B口作為輸出口,與發(fā)光二極管相連。編寫程序,使得邏輯電平開(kāi)關(guān)的變化在發(fā)光二極管上顯示出來(lái)。

      四、實(shí)驗(yàn)原理介紹

      本實(shí)驗(yàn)用到兩部分電路:開(kāi)關(guān)量輸入輸出電路和8255可編程并口電路。

      五、實(shí)驗(yàn)步驟

      1、實(shí)驗(yàn)接線

      CS0?CS8255; PA0~PA7?平推開(kāi)關(guān)的輸出K1~K8; PB0~PB7?發(fā)光二極管的輸入LED1~LED8。

      2、編程并全速或單步運(yùn)行。

      3、全速運(yùn)行時(shí)撥動(dòng)開(kāi)關(guān),觀察發(fā)光二極管的變化。當(dāng)開(kāi)關(guān)某位置于L時(shí),對(duì)應(yīng)的發(fā)光二極管點(diǎn)亮,置于H時(shí)熄滅。

      六、實(shí)驗(yàn)提示

      七、實(shí)驗(yàn)結(jié)果

      程序全速運(yùn)行后,邏輯電平開(kāi)關(guān)的狀態(tài)改變應(yīng)能在LED上顯示出來(lái)。例如: K2置于L位置,則對(duì)應(yīng)的LED2應(yīng)該點(diǎn)亮。

      八、實(shí)驗(yàn)范例程序框圖及源代碼(實(shí)驗(yàn)程序名:t8255.asm)

      九、思考題:

      1、修改接線CS2?CS8255,并要求開(kāi)關(guān)置“H”(下)位置時(shí)對(duì)應(yīng)LED亮,修改程序?qū)崿F(xiàn)相應(yīng)功能。

      答:改變相應(yīng)的輸入輸出口地址,并將讀入ax的值取反。

      需改動(dòng)的原程序: start:

      mov dx,04a6h

      mov ax,90h

      out dx,ax

      start1:

      mov dx,04a0h

      in ax,dx

      mov dx,04a2h

      out dx,ax

      jmp start1 改動(dòng)后: start:

      mov dx,04c6h

      mov ax,90h

      out dx,ax

      start1:

      mov dx,04c0h

      in ax,dx

      mov dx,04c2h not

      ax

      out dx,ax

      jmp start1

      實(shí)驗(yàn)4 8253定時(shí)器/計(jì)數(shù)器接口實(shí)驗(yàn)

      一、實(shí)驗(yàn)?zāi)康?/p>

      掌握8253定時(shí)器的編程原理,用示波器觀察不同模式下的輸出波形。

      二、實(shí)驗(yàn)設(shè)備

      微機(jī)實(shí)驗(yàn)箱、8086CPU模塊、示波器。

      三、實(shí)驗(yàn)內(nèi)容

      了解8253計(jì)數(shù)器的不同工作方式,掌握其初始化控制字對(duì)定時(shí)/記數(shù)效果的影響。

      四、實(shí)驗(yàn)原理介紹

      本實(shí)驗(yàn)用到兩部分電路:脈沖產(chǎn)生電路、8253定時(shí)器/計(jì)數(shù)器電路

      五、實(shí)驗(yàn)步驟

      1、實(shí)驗(yàn)連線:

      CS0?CS8253OUT0?8253CLK2 OUT2?LED1 OUT1?LED2 CLK3?8253CLK0,CLK3?8253CLK1

      2、編程調(diào)試程序

      3、全速運(yùn)行,觀察實(shí)驗(yàn)結(jié)果

      六、實(shí)驗(yàn)提示

      七、實(shí)驗(yàn)結(jié)果

      程序全速運(yùn)行后,LED1按一定周期閃爍(周期理論值為0.2s),LED2在高頻脈沖信號(hào)(約15KHz)影響下,有微弱的光亮,但無(wú)明顯的周期變化現(xiàn)象。

      八、實(shí)驗(yàn)范例程序框圖及源代碼(實(shí)驗(yàn)程序名:t8253.asm)

      九、思考題:

      1、為什么說(shuō)范例程序運(yùn)行時(shí)LED1閃爍周期的理論值是0.2秒?在范例程序設(shè)置LED2的最大閃爍周期是多少?請(qǐng)分析說(shuō)明。

      答:因?yàn)門2采用OUT0的輸出為時(shí)鐘,且T2中設(shè)置初值為04h,則OUT2輸出方波周期為4*0.05s=0.2s 因?yàn)镺UT1?LED2,則LED2的周期即為計(jì)數(shù)器T1的周期,且T1的計(jì)數(shù)初值由程序知為32h=50d,所以最大周期為50*4/3*10^6=6.67x10^-5s。

      2、修改片選信號(hào)接線使CS1和CS8253連接,并要求LED1的閃爍周期變?yōu)?秒(亮2秒,滅2秒),修改程序?qū)崿F(xiàn)功能。答:因?yàn)?/0.05=80d=50h,所以只需改變相應(yīng)的計(jì)數(shù)值和片選接口地址。

      需改動(dòng)的原程序: mov ax,0b6h

      out dx,ax mov dx,04a4h mov ax,04h out dx,ax mov ax,0 out dx,ax 改動(dòng)后:

      mov ax,0b6h

      out dx,ax mov dx,04b4h mov ax,50h out dx,ax mov ax,0 out dx,ax 其余列出的程序段都只要將片選接口地址中的a改為b即可。

      實(shí)驗(yàn)5 8259中斷控制器實(shí)驗(yàn)

      一、實(shí)驗(yàn)?zāi)康?/p>

      1、掌握8259A的工作原理。

      2、掌握編寫中斷服務(wù)程序方法。

      3、掌握初始化中斷向量的方法。

      二、實(shí)驗(yàn)設(shè)備

      微機(jī)實(shí)驗(yàn)箱、8086CPU模塊。

      三、實(shí)驗(yàn)內(nèi)容

      了解中斷處理的原理,掌握利用中斷控制器進(jìn)行中斷申請(qǐng)和中斷操作的方法。

      四、實(shí)驗(yàn)原理介紹

      本實(shí)驗(yàn)用到三部分電路:電平開(kāi)關(guān)電路、簡(jiǎn)單I/O口擴(kuò)展電路和8259中斷控制器電路。

      五、實(shí)驗(yàn)步驟

      1、實(shí)驗(yàn)接線

      CS0?CS8259

      CS3 ?CS273 O0~O3?LED1~LED4

      K1~K4?IR0~I(xiàn)R3 INT?INT(8086CPU板)INTA?INTA(8086CPU板)CS0?CS8253OUT0?8253CLK2 OUT2?LED1 OUT1?LED2 CLK3?8253CLK0,CLK3?8253CLK1

      2、編譯調(diào)試程序

      3、全速運(yùn)行程序,撥動(dòng)某一電平開(kāi)關(guān),觀察LED的亮滅情況。

      六、實(shí)驗(yàn)提示

      七、實(shí)驗(yàn)結(jié)果

      全速運(yùn)行程序,由上往下?lián)軇?dòng)開(kāi)關(guān)時(shí),相應(yīng)位置的LED點(diǎn)亮,其余LED全滅。

      八、實(shí)驗(yàn)范例程序框圖及源代碼(實(shí)驗(yàn)程序名:t8259.asm)

      九、思考題:

      1、說(shuō)明源代碼8259初始化所設(shè)置的所有中斷控制字的值和含義(按位說(shuō)明)。

      答:ICW1為初始化字,13h即00010011b,對(duì)應(yīng)于邊沿觸發(fā),間距為8,單片8259A,需要ICW4。

      ICW2為中斷類型碼字,80h即10000000b,對(duì)應(yīng)于IR0~IR7的中斷類型碼為80h~87h。

      ICW3為中斷結(jié)束方式字,01h即00000001b,對(duì)應(yīng)于普通全嵌套方式,非緩沖方式,正常EOI,8086/8088模式。

      OCW1為屏蔽控制字,00h即00000000b,對(duì)應(yīng)于8為全部復(fù)位屏蔽。

      2、修改接線IR3?P+(實(shí)驗(yàn)箱右下角),并修改源程序,使按實(shí)驗(yàn)箱右下角“Pules”鍵時(shí)LED1~LED4全亮。

      答:改變程序最后IR2的中斷服務(wù)程序的設(shè)定值,即由0fbh改為0f0h.二、綜合設(shè)計(jì)實(shí)驗(yàn)部分

      一、設(shè)計(jì)要求

      參考基礎(chǔ)實(shí)驗(yàn)的實(shí)驗(yàn)1~實(shí)驗(yàn)5所使用的硬件和范例程序,設(shè)計(jì)一個(gè)簡(jiǎn)單的紅綠燈控制系統(tǒng),用LED1~LED4表示兩組紅綠燈,每組紅燈、綠燈各1只。要求實(shí)現(xiàn)以下功能:

      (1)紅綠燈的定時(shí)切換(每10秒切換一次)

      (2)設(shè)置燈光測(cè)試開(kāi)關(guān)K1,當(dāng)K1打開(kāi)(高電平)時(shí),LED1~LED4全亮,關(guān)閉后恢復(fù)正常。

      二、實(shí)驗(yàn)設(shè)備

      微機(jī)實(shí)驗(yàn)箱、8086CPU模塊。

      三、實(shí)驗(yàn)內(nèi)容

      了解中斷處理的原理,掌握利用中斷控制器進(jìn)行中斷申請(qǐng)和中斷操作的方法。

      四、實(shí)驗(yàn)原理介紹

      本實(shí)驗(yàn)用到五部分電路:電平開(kāi)關(guān)電路、簡(jiǎn)單I/O口擴(kuò)展電路和8259中斷控制器電路,脈沖產(chǎn)生電路、8253定時(shí)器/計(jì)數(shù)器電路

      五、實(shí)驗(yàn)步驟

      1、實(shí)驗(yàn)接線

      CS0?CS8259CS0?CS8253 CS0?CS273 O0?LED101?LED2 02?LED403?LED3 INT?INT(8086CPU板)INTA?INTA(8086CPU板)OUT0?8253CLK2 OUT2?IR0 OUT1?k1 IR1?k1CLK3?8253CLK0,CLK3?8253CLK1

      2、編譯調(diào)試程序

      3、全速運(yùn)行程序,觀察結(jié)果。

      六、實(shí)驗(yàn)提示

      (1)定時(shí)功能可利用8253實(shí)現(xiàn),利用定時(shí)器輸出作為中斷申請(qǐng),利用中斷處理切換LED的顯示;LED狀態(tài)可用內(nèi)存保存或用I/O口讀取。

      (2)測(cè)試功能運(yùn)行可在主循環(huán)中通過(guò)I/O口讀取開(kāi)關(guān)狀態(tài)后判定,或利用中斷處理方式運(yùn)行。

      七、實(shí)驗(yàn)結(jié)果

      全速運(yùn)行程序,LED1和LED3為一組,LED12和LED4為一組,兩組燈每亮10秒切換一次,撥動(dòng)k1開(kāi)關(guān),觀察是否出現(xiàn)LED1~LED4全亮,關(guān)閉后恢復(fù)正常。

      八、程序框圖及源代碼

      ASSUME

      CS:CODE CODE SEGMENT

      PUBLIC

      ORG

      100H START:

      MOV

      CX,0

      MOV

      BX,0FAH START1:

      CLI

      MOV

      DX,04A0H

      MOV

      AX,13H

      OUT

      DX,AX

      ;ICW1, ICW4 NEEDED

      MOV

      DX,04A2H

      MOV

      AX,80H

      OUT

      DX,AX

      ;ICW2 中斷類型80h

      MOV

      AX,01H

      ;01

      OUT

      DX,AX

      ;ICW4

      MOV

      AX,00H

      OUT

      DX,AX

      ;OCW1, 開(kāi)放所有中斷

      NOP

      ;以上為8259初始化

      MOV

      AX,0

      MOV

      DS,AX

      MOV

      DI,200H

      ;初始化中斷向量表

      MOV

      AX,OFFSETINT0

      MOV

      DS:[DI],AX

      ADD

      DI,2

      MOV

      DS:[DI],100H

      ADD

      DI,2

      MOV

      AX,OFFSET INT1

      MOV

      DS:[DI],AX

      ADD

      DI,2

      MOV

      DS:[DI],100H

      ADD

      DI,2

      MOV

      AX,OFFSET INT2

      MOV

      DS:[DI],AX

      ADD

      DI,2

      MOV

      DS:[DI],100H

      ADD

      DI,2

      MOV

      AX,OFFSETINT3

      MOV

      DS:[DI],AX

      ADD

      DI,2

      ;上述程序?yàn)樾酒?259的初始化程序

      MOV

      DS:[DI],100H

      ;建議不熟練者不要修改。

      MOV

      DX,04A6H

      ;控制寄存器

      MOV

      AX,36H

      ;計(jì)數(shù)器0,方式3

      OUT

      DX,AX

      MOV

      DX,04A0H

      MOV

      AX,7CH

      OUT

      DX,AX

      MOV

      AX,92H

      OUT

      DX,AX

      ;計(jì)數(shù)值927Ch

      MOV

      DX,04A6H

      MOV

      AX,0B6H

      ;計(jì)數(shù)器2,方式3

      OUT

      DX,AX

      MOV

      DX,04A4H

      MAIN:

      WAITING:

      DELAY:

      INT0:

      NOT

      INT1:

      MOV

      INT2:

      INT3:

      NOP

      MOV

      CODE

      MOV

      AX,90H

      OUT

      DX,AX

      MOV

      AX,01H

      ;計(jì)數(shù)初值0190h

      OUT

      DX,AX

      MOV

      AX,0H

      STI

      ;開(kāi)中斷。

      CMP

      AX,0H

      JE

      WAITING

      ;沒(méi)發(fā)生中斷,則等待

      NOP

      NOP

      MOV

      DX,04A0H

      OUT

      DX,AX

      ;對(duì)應(yīng)LED燈亮

      MOV

      CX,0

      LOOP

      DELAY

      ;數(shù)字濾波,按鍵去抖

      JMP

      START1

      CLI

      ;關(guān)中斷。以下類推。

      NOP

      ;此兩行為IR0的中斷服務(wù)程序 BX

      ;輸出取反

      MOV

      AX,BX

      ;用戶可修改。

      IRET

      ;中斷返回,以下類推。

      CLI

      NOP

      ;此兩行為IR1的中斷服務(wù)程序,AX,0F0H

      ;用戶可修改。

      IRET

      CLI

      NOP

      ;此兩行為IR2的中斷服務(wù)程序,MOV

      AX,0F5H

      ;用戶可修改。

      IRET

      CLI

      ;此兩行為IR3的中斷服務(wù)程序,AX,0F7H

      ;用戶可修改。

      IRET

      ENDS

      END

      START

      九.運(yùn)行結(jié)果調(diào)試問(wèn)題及解決方法

      1.對(duì)于亮10秒鐘的時(shí)間設(shè)定問(wèn)題,一開(kāi)始是算好初值為190h,直接將其賦給AX而忽略了其高位低位的情況,導(dǎo)致驗(yàn)證結(jié)果時(shí)總是只有3秒左右,發(fā)現(xiàn)后改為先低位后高位復(fù)制即達(dá)到設(shè)定要求:

      MOV

      AX,90H OUT

      DX,AX

      MOV

      AX,01H

      ;計(jì)數(shù)初值0190h

      OUT

      DX,AX

      2.對(duì)于撥動(dòng)k1開(kāi)關(guān)后LED1~LED4全亮的情況,一開(kāi)始實(shí)驗(yàn)結(jié)果總是四個(gè)燈都亮但都只保持10秒的設(shè)定時(shí)間,之后又恢復(fù)到兩組燈每亮10秒切換一次的情況。當(dāng)將開(kāi)關(guān)量k1改為脈沖輸入的時(shí)候發(fā)現(xiàn)每一次脈沖信號(hào)也可以產(chǎn)生相同的實(shí)驗(yàn)結(jié)果,由此想到所設(shè)計(jì)的程序運(yùn)行周期的情況,一次中斷的產(chǎn)生與有效作用的時(shí)間只在這一總線周期內(nèi),因此可以在原有中斷的基礎(chǔ)上再人為的加上周期小于總線周期的脈沖有效信號(hào),使其在k1為高電平時(shí)期不斷地執(zhí)行中斷程序,因此可在k1有效時(shí)使LED1~LED4一直保持全亮,而k1低電平后又恢復(fù)原狀態(tài),具體操作為將脈沖輸出out1也接到k1上

      下載微機(jī)原理課設(shè)[五篇范例]word格式文檔
      下載微機(jī)原理課設(shè)[五篇范例].doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        編譯原理課設(shè)總結(jié)(定稿)

        董楠楠1006010101 經(jīng)過(guò)一個(gè)星期的編譯原理課程設(shè)計(jì),在老師的指導(dǎo)以及小組同學(xué)的互相幫助下順利完成該課程設(shè)計(jì)。通過(guò)該課程設(shè)計(jì),收獲很多。 此次課設(shè),我們小組用的是java語(yǔ)言,在......

        通信原理課設(shè)文檔simulink

        《通信原理》課程設(shè)計(jì) 開(kāi)機(jī),啟動(dòng)Matlab,在工作窗口Simulink。 模塊庫(kù)——>各個(gè)模塊 Simulink:基本模塊庫(kù) Commuinications Blockset:通信模塊庫(kù) Signal Processing Blockset:信......

        通信原理課設(shè)概況

        沈陽(yáng)理工大學(xué)通信系統(tǒng)課程設(shè)計(jì)報(bào)告 一.設(shè)計(jì)平臺(tái) Simulink是Matlab環(huán)境下的一部分,它通過(guò)使用框圖的方式編輯建模,比較直觀。Simulink是一種基于MATLAB的框圖設(shè)計(jì)環(huán)境,是實(shí)現(xiàn)動(dòng)......

        化工原理課設(shè)結(jié)束語(yǔ)

        本次化工原理課程設(shè)計(jì)的題目是《填料吸收塔的設(shè)計(jì)》,在上課的時(shí)候老師對(duì)課設(shè)內(nèi)容已經(jīng)做了基本的介紹,自己也有了一定的心理準(zhǔn)備。本次課設(shè)的設(shè)計(jì)內(nèi)容包括吸收流程的選定、填料......

        通信原理課設(shè)題目

        現(xiàn)代通信原理課設(shè)題目 一、基于SystemView的模擬通信系統(tǒng)的仿真設(shè)計(jì) 1、AM 2、DSB 3、SSB 4、FM 5、AM超外差收音機(jī)仿真設(shè)計(jì);雙路FM語(yǔ)音通信系統(tǒng)仿真設(shè)計(jì)(至少選做一種)二、基......

        微機(jī)原理課程設(shè)計(jì)

        電子信息科學(xué)與技術(shù)《微機(jī)原理》課程設(shè)計(jì) 一、本次課程設(shè)計(jì)的目的和意義 學(xué)習(xí)和掌握計(jì)算機(jī)中常用接口電路的應(yīng)用和設(shè)計(jì)技術(shù),充分認(rèn)識(shí)理論知識(shí)對(duì)應(yīng)用技術(shù)的指導(dǎo)性作用,進(jìn)一步加......

        微機(jī)原理課程設(shè)計(jì)

        匯編程序設(shè)計(jì)題 題目一 密碼設(shè)置模擬 該程序可以進(jìn)行密碼的設(shè)置(第一次)和修改(已設(shè)置密碼)。要求輸入的密碼不顯示。 題目二 計(jì)算器 編輯程序可以實(shí)現(xiàn)鍵盤輸入數(shù)據(jù)與運(yùn)算符......

        2008微機(jī)原理課程設(shè)計(jì)

        《微機(jī)原理及接口》課程設(shè)計(jì)任務(wù)書 適用專業(yè):05電子信息工程 通信工程 一、 本次課程設(shè)計(jì)的目的和意義 學(xué)習(xí)和掌握計(jì)算機(jī)中常用接口電路的應(yīng)用和設(shè)計(jì)技術(shù),充分認(rèn)識(shí)理論知識(shí)對(duì)......