版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、課課程程設設計計任任務務書書學生姓名:學生姓名: * 專業(yè)班級:專業(yè)班級: 電信 0802 指導教師:指導教師: * 工作單位:工作單位: 信息工程學院 題題 目:打字練習程序設計目:打字練習程序設計初始條件:初始條件:具備數(shù)字電路的理論知識;具備微機原理的理論知識和實踐能力;熟悉匯編語言編程技術;熟悉 80x86 的 cpu 結構和指令系統(tǒng);熟悉相關常用接口電路的設計使用方法。要求完成的主要任務:要求完成的主要任務:(包括課程設計工作量及其技術要求,以及說明書撰寫等具體要求)1、隨機顯示一段字符(可含有字母和數(shù)字)2、根據(jù)屏幕顯示進行打字練習,出錯時聲響報警3、打字完成后統(tǒng)計正確率和打字時間
2、4、程序采用匯編語言在 pc 機上完成5、完成符合學校要求的設計說明書時間安排:時間安排:一周,其中 2 天程序設計,2 天程序調試,1 天完成課程設計報告書及答辯指導教師簽名:指導教師簽名: 年年 月月 日日1系主任(或責任教師)簽名:系主任(或責任教師)簽名: 年年 月月 日日1.設計概述設計概述.2設計題目.22設計要求.2設計方案.22.硬件說明硬件說明.38255a介紹.38253a介紹.33.軟件流程軟件流程.9軟件流程圖軟件流程圖.94.部分結果截圖部分結果截圖.115.調試正確的程序清單調試正確的程序清單.126.設計心得設計心得.16 摘要本次課程設計是利用微機原理知識和匯編
3、語言來完成打字練習的程序設計,是要求可以顯示打字時間,正確率等趣味練習。能夠正確運用書上的語句進行3簡單功能的設計,在不斷的編程與檢查問題的過程中提高自己的能力,真正達到學習知識的目的。對典型的微機應用系統(tǒng)進行設計,要求根據(jù)具體的課題題目畫出系統(tǒng)結構框圖、系統(tǒng)接線圖;能用所學習的匯編語言進行典型的程序設計并上機進行調試。本次設計主要運用了8255a和8253a兩個芯片。其中8255a是intel公司生產(chǎn)的為x86系列cpu配套的可編程并行接口芯片,也可以用于其他微處理器系統(tǒng)中。通過對它進行編程,芯片可工作于不同的工作方式。在微型計算機系統(tǒng)中,用8255a作接口時,通常不需要附加外部邏輯電路就可
4、直接為cpu提供數(shù)據(jù)通道,因此得到了極為廣泛的應用。8253a是可編程定時計數(shù)器,它是intel公司專為x86系列cpu配置的外圍接口芯片。它在微機系統(tǒng)中可用作定時器和計數(shù)器。定時時間與計數(shù)次數(shù)由用戶事先設定。 關鍵詞:匯編語言、8255a、8253a1. 設計概述設計概述 設計題目設計題目 打字練習程序設計 設計要求41、隨機顯示一段字符(可含有字母和數(shù)字)2、根據(jù)屏幕顯示進行打字練習,出錯時聲響報警3、打字完成后統(tǒng)計正確率和打字時間4、程序采用匯編語言在pc機上完成5、完成符合學校要求的設計說明書用led 點陣顯示器ldm-1088ax 來隨機顯示26 個英文字母,以按 az 26 個鍵來
5、模擬打字,如果在某個字母點亮期間按下相應字母鍵,表示打字正確并熄燈,記錄擊中次數(shù)。實現(xiàn)下列功能:1.用數(shù)字按鍵選擇打字練習的速度(即點陣上字母刷新的速度);2.按鍵開始打字練習;3.點陣顯示的字母以一定速度(如每1 秒或2 秒換一個字母)刷新,打字需在該字母的點亮期間進行才算有效;4.若在某個字母的出現(xiàn)時間內(nèi)未有打字動作,則該次打字失敗,屏幕上顯示“超時”;5.若一次打字錯誤,屏幕上顯示“錯誤”, 微機發(fā)出一次短暫的鳴響,并且在該字母未被更新之前還可以進行第二次、第三次打字動作;6.每次打字正確,屏幕上顯示“正確”,并將燈全部熄滅,分數(shù)加1;7.按鍵退出打字過程,顯示所得的分數(shù);.退出后屏幕上
6、顯示繼續(xù)游戲的提示。 設計方案設計方案 設計方案選擇與討論(1)本課程設計通過對8253 的設置,使之產(chǎn)生一定頻率的波形,將該波形輸出到中斷口irq。每次進入中斷都刷新led點陣上的字母顯示,從而控制打字練習的速度。通過改變8253的計數(shù)初值可以改變速度。(2)8253 通道1 工作于方式3,輸入1mhz 的時鐘,設置分頻系數(shù)為1000,輸出1khz 的方波,此輸出作為通道0 的輸入時鐘。通道0 工作于方式3,分頻系數(shù)為 用戶輸入的速度等級1000。 注:速度等級:1-快速 2-中速 3-慢速(3)將8255 的a 口接到led 點陣的col18,c 口接到led 點陣的row18,每當進入中
7、斷,就把在數(shù)據(jù)段存好的字母的段碼送到a 口和c 口,顯示相應的字母。(4) 每個字母都需要分段循環(huán)顯示,利用人眼的視覺暫留便可看見點陣上顯示整個字母。5(5)為避免中斷服務程序過長,在寫中斷服務程序時,只需要把中斷標志置1即可,其余操作可在主程序中進行。(6)在字母顯示期間,要不斷讀取按鍵輸入,直到按鍵正確或進入下一次中斷(即表示該字母的出現(xiàn)時間已經(jīng)結束),準備出現(xiàn)下一個字母。(7)在字母顯示期間,若讀入的按鍵是錯誤的,則在屏幕上顯示“錯誤”,并繼續(xù)顯示該字母,等待按鍵或中斷;若未能在字母消失前按下正確的鍵,則在屏幕上顯示“超時”,并顯示下一個字母;若在字母消失前按下正確的鍵,則在屏幕上顯示“
8、正確”,往a 口和c 口輸出00h,使字母消失,分數(shù)加1,并準備顯示下一個字母。(8)在字母顯示期間,若按鍵輸入是鍵則結束本次游戲。每次游戲結束后進入等待按鍵的狀態(tài)按鍵退出程序,按鍵則開始下一次游戲。2. 硬件說明硬件說明 8255a介紹介紹8255a是intel公司生產(chǎn)的為x86系列cpu配套的可編程并行接口芯片,也可以用于其他微處理器系統(tǒng)中。通過對它進行編程,芯片可工作于不同的工作方式。在微型計算機系統(tǒng)中,用8255a作接口時,通常不需要附加外部邏輯電路就可直接為cpu提供數(shù)據(jù)通道,因此得到了極為廣泛的應用。1. 8255a內(nèi)部結構內(nèi)部結構b 組控制部件內(nèi)部db(8)數(shù)據(jù)總線緩沖器讀/寫控
9、制邏輯a0a組端口a(8)a組端口c(高4位)b組端口c(低4位)b組端口b(8)a 組控制控制部件部件件pa7pa0pc7pc4pc3pc0pb7pb0d7d0csa1rdwr 8255a內(nèi)部結構框圖reset68255a的內(nèi)部結構框圖如上圖所示,其內(nèi)部由以下四部分組成。 (1) 端口a、端口b和端口c端口a、端口b和端口c都是8位端口,可以選擇作為輸入或輸出。還可以將端口c的高4位和低4位分開使用,分別作為輸入或輸出。當端口a和端口b作為選通輸入或輸出的數(shù)據(jù)端口時,端口c的指定位與端口a和端口b配合使用,用做控制信號或狀態(tài)信號。 (2) a組控制和b組控制部件這兩組控制部件有兩個功能:一是
10、接收來自芯片內(nèi)部數(shù)據(jù)總線上的控制字;二是接收來自讀寫控制邏輯電路的讀寫命令,以此來決定兩組端口的工作方式和讀寫操作。(3)數(shù)據(jù)總線緩沖器它是一個雙向三態(tài)的8位數(shù)據(jù)緩沖器,8255a正是通過它與系統(tǒng)數(shù)據(jù)總線相連。輸入數(shù)據(jù)、輸出數(shù)據(jù)、cpu發(fā)給8255a的控制字都是通過該部件傳遞的。(4) 讀寫控制邏輯電路讀/寫控制邏輯電路的功能是負責管理8255a的數(shù)據(jù)傳輸過程。它接收cs及來自地址總線的信號a1、a0(在8086總線中為a2、a1)和控制總線的信號reset、wr、rd,將它們組合后,得到對a組控制部件和b組控制部件的控制命令,并將命令送給這兩個部件,再由它們完成對數(shù)據(jù)信息,狀態(tài)信息和控制信息
11、的傳輸。2. 8255a的工作方式的工作方式8255a共有三種工作方式:1方式 0 為基本輸入/輸出方式,方式 0 下,可供使用的是兩個 8 位口(a 口和 b 口)及兩個 4 位口(c 口高 4 位部分和低 4 位部分) 。四個口可以是輸入和輸出的任何組合。方式 0 適用于無條件數(shù)據(jù)傳送,也可以把 c 口的某一位作為狀態(tài)位,實現(xiàn)查詢方式的數(shù)據(jù)傳送。2方式 1 為選通輸入/輸出方式,a 口和 b 口分別用于數(shù)據(jù)的輸入/輸出。而 c 口則作為數(shù)據(jù)傳送的聯(lián)絡信號。a 口和 b 口的聯(lián)絡信號都是三個,如果 a 或 b 只有一個口按方式1 使用,則剩下的另外 13 位口線仍然可按方式 0 使用。如果兩
12、個口都按方式 1 使用,則還剩下 2 位口線,這兩位口線仍然可以進行位狀態(tài)的輸入輸出。方式 1 適用于查詢或中斷方式的數(shù)據(jù)輸入/輸出。8255 作為輸入時如下圖。輸入過程如下:當輸入設備準備好數(shù)據(jù),將數(shù)據(jù)送至pa7pa0 或 pb7pb0,同時發(fā) ,在 下降沿控制下,8255 將 pa7pa0 或pb7pb0 上的數(shù)據(jù)鎖存到 a 口或 b 口數(shù)據(jù)輸入寄存器中,同時 8255 向輸入設備發(fā) ibf有效,告知輸入設備暫緩送數(shù)。8255a 可以兩種方式通知 cpu 取走數(shù)據(jù): 第一種方式是用中斷方式,在 inte=1ibf=1 時, 的上升沿使 intr=1,8255 向 cpu 提出中斷申請,cp
13、u 以中斷方式取走數(shù)據(jù),在 cpu 響應中斷后,執(zhí)行 in 指令,將 8255 a 口或 b 口數(shù)據(jù)輸入寄存器中的數(shù)據(jù)取走,同時, 信號的下降沿清除 intr 信號, 信號的上升沿復位 ibf。輸入設備僅當檢測到 ibf 為低電平后,才開始傳送下一個數(shù)據(jù),如此循環(huán);第二種方式是用軟件查詢,cpu 僅當查詢到 ibf=1 時,才從 8255a 口或 b 口數(shù)據(jù)輸入寄存器中取走數(shù)據(jù)。7 8255 作為輸出時如下圖所示。輸出過程如下:首先 cpu 執(zhí)行 out 指令,在 信號的下降沿 cpu 輸出的數(shù)據(jù)送入 8255 數(shù)據(jù)輸出緩沖器,并使 intr 復位。 信號上升沿將 置為有效,通知輸出設備,cp
14、u 已把數(shù)據(jù)輸出到 8255 的指定端口中,輸出設備接到信號有效后,發(fā)有效,下降沿將 置為 1, 上升沿表示輸出設備已從 8255a 指定端口取走數(shù)據(jù),此時若 inte=1,則 intr 被置為高電平,向 cpu 申請中斷,cpu 可采用中斷方式輸出下一個數(shù)據(jù)。cpu 也可通過查詢 信號,若 =1,cpu 輸出下一個數(shù)據(jù)給 8255a,即查詢方式傳送數(shù)據(jù)。3方式 2 雙向數(shù)據(jù)傳送方式。只允許 a 口工作在方式 2,當 a 口工作在方式 2 時,b 口可工作在方式 0 或方式 1。 所謂雙向,即 a 口可分時進行 i/o 操作。 a 口工作在方式 2,信號聯(lián)絡線如下: (pc6), (pc7),
15、 (pc4),ibfa(pc5); inte1(pc6)與輸出中斷有關,可由用戶給 8255a 控制字寄存器送 pc6 的置位/復位字來實現(xiàn)允許/禁止 a 口輸出中斷。 inte2(pc4):與輸入中斷有關,可由用戶給 8255a 控制字寄存器送 pc4 的置位/復位字來實現(xiàn)允許/禁止 a 口輸入中斷。 intra(pc3):i/o 中斷申請,高電平有效,產(chǎn)生中斷請求信號的條件為: intra=ibfainte2 (輸入8中斷); intra= inte1 (輸出中斷)。 在本設計系統(tǒng)中運用的是工作方式0,這種方式比較簡單。在這里,主要是a口用于輸入,與8個常開型開關連接,用于采集輸入。3.
16、8255a的控制字的控制字 (1) 工作方式選擇控制字 它可以使8255a的三個端口工作于不同的工作方式。(2) c口按位置位/復位控制字8255a的c口具有位控功能,即端口c的8位中的任一位都可通過cpu向8255a的控制寄存器寫入一個按位置位/復位控制字來置1或清0,而c口中其他位的狀態(tài)不變。8253a介紹介紹8253a是可編程定時計數(shù)器,它是intel公司專為x86系列cpu配置的外圍接口芯片。它在微機系統(tǒng)中可用作定時器和計數(shù)器。定時時間與計數(shù)次數(shù)由用戶事先設定。方式控制字的特征位d d d7 7 7a口工作方式0 0 方式00 1 方式11 方式21 1 1d d d6 6 6d d
17、d5 5 5d d d4 4 4d d d3 3 3d d d2d d d1d d d0a口輸入/輸出1 輸入0 輸出 c 口高四位位輸入/輸出1 輸入0 輸出b口工作方式0 方式01 方式1b口輸入/輸出1 輸入0 輸出c口低四位輸入/輸出1 輸入0 輸出91. 8253a內(nèi)部結構內(nèi)部結構四大部分:數(shù)據(jù)總線緩沖器、讀寫控制邏輯、控制字寄存器以及三個獨立的16位的計數(shù)器通道。這三個計數(shù)器分別是計數(shù)器0通道、計數(shù)器1通道和計數(shù)器2通道。(1)數(shù)據(jù)總線緩沖器:8位的雙向三態(tài)緩沖器。用于暫存數(shù)據(jù),使用在以下幾個方面:cpu在初始化編程時,向8253寫入控制字。cpu向某一通道寫計數(shù)初值。cpu從某一
18、通道讀計數(shù)初值。(2)讀寫控制邏輯電路:接受輸入的rd、wr、cs、a1、a0等信號組合產(chǎn)生出對8253要執(zhí)行的操作,見操作表。(3)控制字寄存器:只能寫入,不能讀出。8初始化編程時,寫入控制字決定通道的工作方式。(4)3個計數(shù)器:分別為0、1和2,是3個獨立的計數(shù)定時通道,都可按不同的方式工作。每個計數(shù)器內(nèi)部都包含一個16位的預置初始值寄存器。一個可預置數(shù)減法計數(shù)器和一個鎖存器。2. 8253a的工作方式的工作方式(1) 方式0:計數(shù)結束產(chǎn)生中斷方式 當寫入控制字后,out變?yōu)榈碗娖?,當寫入初值后立即開始計數(shù),當計數(shù)結束時,變成高電平。 (2) 方式1:可編程單次脈沖方式 當初值裝入后且ga
19、te由低變高時,out變?yōu)榈碗娖剑嫈?shù)結束變?yōu)楦唠娖健?(3) 方式2:頻率發(fā)生器方式 當初值裝入時,out變?yōu)楦?;計?shù)結束,out變?yōu)榈?。該方式下如果計?shù)未結束,但gate為低時,立即停止計數(shù),強制out變高,當gate再變高時,便啟動一次新的計數(shù)周期。(4) 方式3:方波發(fā)生器 當裝入初值后,在gate上升沿啟動計數(shù),out 輸出高電平; 當計數(shù)完成一半時,out輸出低電平。 (5) 方式4:軟件觸發(fā)選通數(shù)據(jù)總線緩沖器d7 d0 計數(shù)器0rda0wr計數(shù)器1讀 / 寫邏 輯a1cs計數(shù)器2控 制寄存器10 當寫入控制字后,out輸出為高;裝入初值且gate為高時開始計數(shù),當計數(shù)結束,out
20、端輸出一個寬度等于一個時鐘周期的負脈沖。 (6) 方式5:硬件觸發(fā)選通在gate上升沿啟動計數(shù)器,out一直保持高電平;計數(shù)結束,out端輸出一個寬度等于一個時鐘周期的負脈沖。 3.2. 8253a的控制字的控制字bcdbcdbcdm0m0m0m1m1m1m2m2m2rl0rl0rl0rl1rl1rl1sc0sc0sc0sc1sc1sc1rl1rl1rl1bcdbcdbcdm0m0m0m1m1m1m2m2m2rl0rl0rl0sc0sc0sc0sc1sc1sc10二進制碼讀寫001方式1000方式001只讀寫低字節(jié)01計數(shù)器100計數(shù)器01 bcd碼讀寫*10方式2000方式011先低再高10
21、只讀寫高字節(jié)10計數(shù)器2*11方式311非法101方式5100方式400將ce送ol118255a的控制字格式3軟件流程軟件流程1.軟件流程圖軟件流程圖. 開始輸入速度等級并顯示,把速度等級轉化為分頻系數(shù)輸入速度等級并顯示,把速度等級轉化為分頻系數(shù)初始化8255,方式0,a 口輸出,b 口輸出,c 口輸出設置中斷向量,開放irq7 中斷,段寄存器重新賦值清記分器cl,清中斷標致bh, si 指向隨機字母表mes1按鍵開始游戲,開中斷nbh1? bh0;產(chǎn)生一個隨機數(shù),把si+隨機數(shù)指向的字符存入al bh0;產(chǎn)生一個隨機數(shù),把si+隨機數(shù)指向的字符存入al提示超時判斷al 中的字符是az 中的
22、哪一個,并讓di 指向相應字母的碼表分3 段循環(huán)把該字母的碼表輸出到a口和c口,輸出的過程中查詢中斷標志和鍵盤n錯誤提示按鍵正確?退出本次游戲y把存在cl 中的分數(shù)轉換為十進制顯示出來向a 口和c 口輸出00h,使該字母消失,提示正確,鳴響一次,分數(shù)加1(inc cl)提示開始下一次游戲或結束bh1?輸入122.22.2、功能圖、功能圖:開始 段地址初始化隨機產(chǎn)生字符串開窗口開始打字輸入字符字符=27?退出打字屏幕上顯示結果結束將產(chǎn)生的字符串輸出到屏幕上緩沖區(qū)中字是否打完?yynny結束133.23.2、各功能模塊及流程圖、各功能模塊及流程圖 輸出正確率模塊 計算打字時間并輸出模塊 輸出正確率
23、rightrata_outmov ax,rnumber mov cx,100mul cxdiv anumbermov bx,ax輸出整數(shù)部分輸出.輸出小數(shù)部分輸出%結束14計計算算打打字字時時間間并并輸輸出出u us se et ti im me ea an nd do ou ut t 提提取取打打字字結結束束時時系系統(tǒng)統(tǒng)時時間間 s su ub b d dh h, ,s st ti im me e 2 2 j ja ae e s se ec cu un nb bl lo ow w a ad dd d d dh h, ,6 60 0 d de ec c c cl l s su ub b c c
24、l l, ,s st ti im me e 1 1 j jn ns s m mi in nu un nb bl lo ow wj jz z s se ec cu un nb bl lo ow wa ad dd d c cl l, ,6 60 0 d de ec c c ch h s su ub b c ch h, ,s st ti im me e 0 0 c ca al ll l o ou ut tt ti im me e結結束束n nn nn ny yy yy y154部分結果截圖部分結果截圖經(jīng)過對程序的連接和編譯,生成的可執(zhí)行文件,進入界面如上圖所示:游戲過程的界面如上圖:165. 調試后
25、的正確程序清單調試后的正確程序清單stack segment ;堆棧段db 100stack endsdata segment ;數(shù)據(jù)段ioport equ 0c400h-0280hport0 equ ioport+2b0h ;8279 數(shù)據(jù)端口port1 equ ioport+2b1h ;8279 控制端口led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h ;led字型代碼表db 67h,37h,73h,31h,3eh,36h,66hio8253a equ ioport+280h ;8253計數(shù)器0端口
26、io8253b equ ioport+283h ;8253控制器端口io8255a equ ioport+288h ;8255端口a地址io8255b equ ioport+28bh ;8255控制端口地址 io0832a equ ioport+290h ;0832數(shù)據(jù)輸入端口wave db 80h,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdh db 0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96h db 80h,66h,4eh,38h,25h,15h,09h,04hdb 00h,04h,09h,15h,25h,38h,4eh,66h ;正弦波
27、數(shù)據(jù),32個time db 120,110,100,89,79,70,60,50 ;產(chǎn)生不同音階時8253的計數(shù)器初值msg1 db please press one of 0,1,2,3,4,5,6,7,8,r,:,0dh,0ah ;程序開始時的提示信息db function:,0dh,0ah db 0 = edit music and end with 9,less then 100 db r = return to dos,0dh,0ah,$ ;r返回dosmsg2 db 0dh,0ah,input error,take a rechoice,0dh,0ah,0dh,0ah,$ ;輸入錯
28、誤的提示信息data endscode segment ;代碼段assume cs:code,ds:datastart: mov ax,datamov ds,ax mov dx,port1 ;初始化8279芯片mov al,0d3hout dx,al ;清除8279內(nèi)部顯示ram狀態(tài)為全“0”mov al,2ah17out dx,al ;設定8279分頻系數(shù)mov al,40h out dx,al ;讀fifo/傳感器mov al,00hout dx,al ;鍵盤、顯示器方式設置:8個8位字符左端傳人,編碼掃描鍵盤mov al,80hout dx,al ;寫顯示器ram命令lea dx,msg
29、1 ;顯示提示信息mov ah,09hint 21hbegin: call judgekey ;調用鍵盤程序,判斷輸入lp0: cmp al,13h ;r鍵,返回dos命令jnz lp1mov ax,4c00h ;返回dosint 21hlp1: cmp al,1 ;輸入是否超出范圍,是則跳到提示出錯程序段 jb err cmp al,7 ja err call sound ;調用發(fā)音子程序,播放按下的相應音階 jmp begin ;返回初始界面musi: mov al,di ;音樂播放程序段 cmp al,9 ;檢查是否為當前音樂結束標志9 jz begin ;是則跳回初始界面 mov bu
30、ff,al ;將當前音階存入緩沖 call sound ;調用發(fā)音子程序 inc di ;取下一音階 jmp musi ;重復 err: lea dx,msg2 ;提示出錯程序段 mov ah,09h ;顯示提示出錯信息 int 21h lea dx,msg1 ;回到初始界面 int 21h jmp begin judgekey proc near ;鍵盤輸入判斷程序 mov dx,port1 mov al,0d1h out dx,al ;清led顯示read: mov dx,port118 in al,dx and al,07h jz read ;讀狀態(tài),看鍵盤是否有鍵按下,無則繼續(xù)讀取ke
31、yn: mov dx,port0 ;有鍵按下,判斷按鍵位置 in al,dxmov bl,aland al,07hand bl,38hmov cl,03shr bl,clcmp bl,00hjnz line2add al,08h ;為第一行的鍵,鍵位值加08hjmp quit1 line2: cmp bl,01h jnz line3jmp quit1 ;為第二行的鍵,直接返回line3: add al,10h ;為第三行的鍵,鍵位值加10hquit1: mov buff,al ;將鍵位信息存入buff retjudgekey endpdisp proc near ;顯示子程序 push ax
32、mov ax,data mov ds,ax mov dx,port1 mov al,80h ;寫8279顯示ram控制字 out dx,al lea si,buff ;將buff的地址賦給si lea bx,led ;將led的起始地址賦給bxdisp1: mov al,si ;將buff地址存儲的內(nèi)容賦給al xlat ;完成一個字節(jié)的查表轉換,即bx+al賦給almov dx,port0 ;將顯示信息輸出顯示out dx,al pop ax retdisp endp sound proc near ;發(fā)音子程序call disp ;調用顯示子程序,發(fā)音的同時顯示音階 mov num,al
33、;求出相應的時間常數(shù)的序號 mov cx,60 ;取60次32個正弦波數(shù)據(jù)ddd: mov si,019lll: mov al,wavesi ;取正弦波數(shù)據(jù) mov dx,io0832a out dx,al ;放音 call delay ;調用延時子程序 inc si ;si加1 cmp si,32 ;是否取完32個數(shù)據(jù)jl lll ;若沒有,則繼續(xù)loop ddd ;總循環(huán)次數(shù)60是否完,沒有,則繼續(xù)exit: retsound endp delay proc near ;延時子程序ccc: mov bx,offset timemov dx,io8253b ;設定8253計數(shù)器1為方式0工作
34、mov al,10h out dx,almov dx,io8255b ;設8255a口輸入mov al,9bh out dx,almov al,num ;取相應的時間常數(shù) xlatmov dx,io8253aout dx,al ;向8253通道0輸出相應延遲kkk: mov dx,io8255ain al,dx ;從8255a口讀取數(shù)據(jù)信息test al,01 ;判斷pa0口是否為1,即8253是否計數(shù)完畢,輸出out是否為高電平jz kkk ;若不為1,則轉kkkret ;子程序返回delay endpcode endsend start ;結束整個程序段206. 設計心得設計心得本次設計中
35、,可以說是一次對自己能力與學習結果的考驗。在我們學完了微型計算機原理及應用這門課的基礎上來搞這個設計,通過設計后,使我們對這門課的理論知識的理解有很大程度上的加強。微機原理這門課程本身是一門實驗性和工程性很強的專業(yè)技術課,因此不僅要重視理論教學,更應注意實踐技能的培養(yǎng)和訓練。課程設計是這門課程的一個重要環(huán)節(jié),通過課程設計,鞏固、加深和拓寬了學習的理解,使自己的分析、設計和調試 8086 微機系統(tǒng)的能力得到了進一步的提高。在設計過程中,對不同方案的構思、分析、比較到最后的定案,這些工作,培養(yǎng)我們的分析問題,解決問題和創(chuàng)新的能力。在方案確定后,在軟件編程方面,對編寫的程序經(jīng)上機實踐和調試,對存在的問題進行反復修改,使其達到了最優(yōu)方案。這樣的編程機會在平時是很少有的,所以,在編程方面我們得到了很多的鍛煉,使自己更加熟悉了匯編語
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度美團團購服務合同范本升級版8篇
- 二零二五年度高空作業(yè)腳手架租賃與施工總承包合同3篇
- 2025版協(xié)議離婚特殊規(guī)定及婚姻財產(chǎn)分割與子女撫養(yǎng)合同3篇
- 2025版臨時工特殊工種作業(yè)安全協(xié)議書4篇
- 2025年度酒店式公寓房間長期租賃服務協(xié)議3篇
- 2025年度個人企業(yè)全額承包經(jīng)營合作協(xié)議范本4篇
- 2025年度新能源電池殼體模具開發(fā)與加工服務協(xié)議4篇
- 2025年度文化創(chuàng)意園區(qū)場地租賃安全管理與文化創(chuàng)新合同4篇
- 水電消防工程2025年度施工及進度管理合同2篇
- 2025新生入學教育法律協(xié)議書(定制版)2篇
- GB/T 16895.3-2024低壓電氣裝置第5-54部分:電氣設備的選擇和安裝接地配置和保護導體
- GJB9001C質量管理體系要求-培訓專題培訓課件
- 二手車車主寄售協(xié)議書范文范本
- 窗簾采購投標方案(技術方案)
- 基于學習任務群的小學語文單元整體教學設計策略的探究
- 人教版高中物理必修一同步課時作業(yè)(全冊)
- 食堂油鍋起火演練方案及流程
- 《呼吸衰竭的治療》
- 2024年度醫(yī)患溝通課件
- 2024年中考政治總復習初中道德與法治知識點總結(重點標記版)
- 2024年手術室的應急預案
評論
0/150
提交評論