版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、,處均蜜大號beijing university of posts and ielccommunication2015-2016學年第一學期微機原理硬件實驗報告學院:班級:序號:精品文檔目錄實驗一 熟悉實驗環(huán)境及io 的使用 31 實驗目的 32 實驗內(nèi)容 33 實驗過程 31 實驗原理 32 流程圖 33 源代碼 44 子程序清單 65 代碼分析 64 實驗總結(jié) 6實驗二8255a 并行接口應用 71 實驗目的 72 實驗內(nèi)容 73 實驗過程 71 八位數(shù)碼管位選規(guī)律 72 六位數(shù)碼管靜態(tài)顯示 83 六位數(shù)碼管動態(tài)顯示 114 擴展:顯示鍵盤輸入學號 154 實驗總結(jié) 21實驗三 8253
2、計數(shù)器 / 定時器的應用 221 實驗目的 222 實驗內(nèi)容 223 實驗過程 221 蜂鳴器發(fā)音規(guī)律 222 音樂發(fā)生器 233 擴展:小鍵盤彈琴功能 324 實驗總結(jié) 383 歡迎下載。熟悉實驗環(huán)境及 io 的使用實驗目的1 通過實驗了解和熟悉實驗臺的結(jié)構(gòu),功能及使用方法。2 通過實驗掌握直接使用debug的i、o命令來讀寫i/o端口。3 學會 debug 的使用及編寫匯編程序。二 實驗內(nèi)容1 學習使用debug命令,并用i、o命令直接對端口進行讀寫操作。2 用匯編語言編寫跑馬燈程序。實現(xiàn)功能:1)通過讀入端口狀態(tài),選擇工作模式(燈閃爍方式、速度等) ;2)通過輸出端口控制燈的工作狀態(tài)(低
3、電平燈亮)。三 實驗過程1 實驗原理1 在debug下,用i是命令讀輸入端口的狀態(tài),即撥碼開關(guān)的狀態(tài),用。命令向端口輸出數(shù)據(jù),通過led發(fā)光管來查看。測試結(jié)果:1) 使用命令:i 0eee0h讀取開關(guān)狀態(tài),得出的結(jié)果為左低右高,即 是低位, 是高位。2) 實驗命令:o 0eee0h測試led,改變輸入的值可依次測試各個數(shù)碼管是否正常。led左邊為高位,右邊為低位。2 分析以下程序段的作用mov ah, 0bhint 21hor al, aljz 0100int 20h該段程序?qū)崿F(xiàn)了檢測鍵盤狀態(tài),在鍵盤有任意鍵輸入時退出程序返回dosw功能。該實現(xiàn)依賴于0bh號中斷調(diào)用和巧妙使用程序入口返回地址
4、直接返回。在dosw debugs式下,地址不用添加十六進制h標志。地址默認為16進制,多寫了反而畫蛇添足產(chǎn)生錯誤。普通數(shù)據(jù)為了區(qū)分需要添加h。2 流程圖精品文檔begin movax data movds ax moval, 07fh movdx port movsi, 2start pushax in al, dx movbl, al popax test bl, 10hjnz two cmpsi, 1;011111113源代碼data segmentport equ0eee0hdata endsstack segmenstackstackdb 100 dup?)stack endscod
5、e segmentassumeds datacs codess stack;入棧保存;讀取撥碼開關(guān)狀態(tài);bl存儲撥碼開關(guān)狀態(tài);出棧恢復;00010000.判斷左數(shù)第五個撥碼開關(guān)的狀態(tài),;實現(xiàn)燈型的變化;on狀態(tài)為兩個燈;判斷al狀態(tài)_ 。4歡迎下載精品文檔7 歡迎下載。jz contmovah, alrorah, 1or al, ahmovsi , 2jmpconttwo: cmp si , 2jz contmovah, alrorah, 1and al, ahmovsi , 1cont: out dx, altest bl, 08h jnz starttest bl, 02hjnz high
6、spmovbp, 0200hjmpmovehighsp: movbp, 0100hmove: call delaytest bl, 04hjnz leftright: roral, 1jmpexitleft:rol al, 1exit:test bl, 01hjz startmoval, 0ffhout dx, almovah, 4chint 21hdelay procmovcx, bploop1: pushcxmovcx, 0ffffhloop2: looploop2popcxlooploop1retdelay endpcodee ndsendbegin;si等于1時al有兩位為0,應恢復為
7、只有一位為0,;al 恢復為只有一位為0, si 變?yōu)?2;si為2時只有al只有1位為0,應對其變換;al 有兩位為 0;00001000. 判斷第四個撥碼開關(guān)的狀態(tài),實現(xiàn)暫停;on犬態(tài)實現(xiàn)暫停;00000010. 判斷第二個撥碼開關(guān)的狀態(tài),; 實現(xiàn)速度的變化;on犬態(tài)實現(xiàn)高速; 低速狀態(tài)時延; 高速狀態(tài)時延; 判斷第三個撥碼開關(guān)的狀態(tài),實現(xiàn)方向的變化;on狀態(tài)為方向向左; 右移,以備點亮下一盞燈; 左移,以備點亮下一盞燈; 判斷第一個撥碼開關(guān)的狀態(tài);off狀態(tài)繼續(xù)運行,on犬態(tài)實現(xiàn)退出; 實現(xiàn)全滅;bp 越大延時次數(shù)越多,速度越慢4 子程序清單1)子程序名: delay功能:實現(xiàn)延遲顯示,
8、即控制每個led點亮持續(xù)一定時間;入口參數(shù):bp,賦彳1給cx控制循環(huán)次數(shù),從而實現(xiàn)速度的控制; 出口參數(shù):無;使用寄存器:cx, bp。5 代碼分析1) 通過讀取撥碼開關(guān)地址獲得撥碼開關(guān)狀態(tài),將該狀態(tài)的值賦給bl,實現(xiàn)對燈型、暫停、速度、方向以及退出的控制。2) 燈型的控制: 通過相應撥碼開關(guān)的狀態(tài)選擇燈型。 燈型一共有兩種, 第一種為每次亮一盞燈, 此時控制輸出的寄存器al 中的值只有一位為 0, 其余七位為 1; 第二種為每次亮兩盞燈, 此時控制輸出的寄存器al 中的值兩位為 0 , 其余六位為 1。 使用寄存器 si 表示當前寄存器 al 中 0 的個數(shù), 當 si 的值與控制燈型的信
9、息不一致時,通過邏輯與/ 邏輯或的操作,修改 al 的值。3) 暫停的控制: 通過相應撥碼開關(guān)的狀態(tài)判斷是否執(zhí)行暫停操作。 當需要暫停時, 控制輸出的寄存器al 中的值保持不變, 當不需要暫停時, 控制輸出的寄存器al 中的值循環(huán)左移 / 循環(huán)右移。4) 速度的控制:通過相應撥碼開關(guān)的狀態(tài)判斷速度的大小。在不同的狀態(tài)下,對bp賦不同的值,bp作為delay?程序的入口參數(shù)控制延時的時間從而實現(xiàn)速度的變 化。bp越大,則外循環(huán)次數(shù)越多,所耗時間越長,每個led點亮持續(xù)時間越久,即速度越慢。5) 方向的控制: 通過相應撥碼開關(guān)的狀態(tài)判斷方向。 在不同的狀態(tài)下, 對控制輸出的 寄存器al中的值循環(huán)左
10、移/循環(huán)右移,即可控制顯示的方向。6) 退出的控制:通過相應撥碼開關(guān)的狀態(tài)判斷是否退出程序。實驗總結(jié)雖然本次實驗是第一次微原硬件實驗, 但是在此之前已經(jīng)有了一定的軟件編程基礎(chǔ), 并且在vhdl實驗中我們也曾編寫過跑馬燈實驗,因而實驗之前對實驗原理及代碼結(jié)構(gòu)有初步的掌握。實驗過程中我們按照講義中的要求先對撥碼開關(guān)及l(fā)ed進行了測試,便捷了之后程序的編寫。 總而言之,通過本次實驗,我們對利用匯編語言對硬件進行編程有了一定的掌握,對后續(xù)實驗的開展奠定了良好的基礎(chǔ)。精品文檔9歡迎下載實驗二8255a并行接口應用一實驗目的1 掌握8255a的功能及方式0、1的實現(xiàn)。2 熟悉8255a與cpu的接口,以及
11、傳輸數(shù)據(jù)的工作原理及編程方法。3 了解七段數(shù)碼管顯示數(shù)字的原理。4 掌握同時顯示多位數(shù)字的技術(shù)。二實驗內(nèi)容1 八段數(shù)碼管的顯示規(guī)律及數(shù)碼管的位選規(guī)律。2 六位數(shù)碼管靜態(tài)顯示。在數(shù)碼管電路上靜態(tài)地顯示6位學號,當主機鍵盤按下任意鍵時,停止顯示,返回 dos3 六位數(shù)碼管動態(tài)顯示。要求在數(shù)碼管電路1 6位數(shù)碼管上,動態(tài)顯示字符串hello當主機鍵盤按下任意鍵時結(jié)束。4 擴展部分:完成掃描鍵盤(pc 口)輸入自己的學號,并在數(shù)碼管上顯示。三實驗過程1八位數(shù)碼管位選規(guī)律在方式0 (輸入/輸出)下,以a 口為輸出口, b 口為輸出口, a 口接六個共陰極數(shù)碼 管的八位段碼,高電平點亮數(shù)碼管的某一段,b口
12、接數(shù)碼管的位選(即要使哪個數(shù)碼管亮),高電平選中某一位數(shù)碼管點亮。 測試結(jié)果如下圖:pa3*pa2-pampa3ipa*pa0*根據(jù)上述測試結(jié)果,不難得出0-9對應的編碼,如下表:字形0123456789編碼0edh21h0f4h0f1h39h0d9h0ddh61h0fdh0f9h02六位數(shù)碼管靜態(tài)顯示2.1實驗原理1) 電路6個數(shù)碼管的同名陽極段已經(jīng)復接,當段選寄存器寄存了一個字型編碼之后,6個數(shù)碼管都將顯示出相同的數(shù)字。 如果要使6個數(shù)碼管“同時”顯示不同的數(shù)字, 必須采用掃描顯示的方法。2) 通過選位寄存器選擇某一位數(shù)碼管,顯示其數(shù)字(對應段值為1),然后關(guān)閉此數(shù)碼管,再選擇下一位數(shù)碼管
13、進行顯示;如果在一秒鐘內(nèi),每一位數(shù)碼管都能顯示 30次以上,則人眼看到的是幾位數(shù)碼管同時在顯示。實驗證明,在掃描顯示過程 中,每一位顯示延遲 1ms是最佳選擇。3) 在本次實驗中,采用行掃描方式,一次掃描6位數(shù)碼管,并進行反復循環(huán),使得每位數(shù)碼管顯示雖然存在間隔, 但人眼仍為同時顯示。 每位數(shù)碼管顯示的時間即為顯 示延遲,在每一次掃面之后檢測鍵盤狀態(tài),若有任意鍵輸入,便退出返回do沸面。2.2流程圖結(jié)束精品文檔2.3 源代碼data segmentnumdb 0f4h, 21h, 0edh, 0ddh, 39h, 61h; 學號后六位為 210647data ends;stack segmen
14、sttack stackdb 100 dup( 0)stack endscode segmentassumecs: code, ds: data, ss: stackstat:moval, 10000000bmovdx, 0ee03hout dx, al movax, data movds, ax moves, axlop1:xorsi , simovcx, 06hmovdx, 0ee00hmovbl, 00000001blop2:moval, num si out dx, al moval, blinc dxout dx, al dec dxrol bl, 1inc sicall delay
15、call key looplop2 jmp lop1delay procnearpushbxpushcxmovbx, 000bhlop3:movcx, 00hloop$dec bxjnz lop3popcx;a,b,c 口均以方式0輸出; 設(shè)置控制地址; 送控制字到控制地址; 設(shè)置段地址;si 清零; 循環(huán) 6 次,即一個周期6位數(shù)碼管;a 口的地址賦給dx, a口接八位段碼; 高電平即選中該位數(shù)碼管點亮; 將需要顯示的數(shù)字賦給al;送al輸出至a端口; 將控制哪一位亮的功能賦給al;b 口的地址賦給dx, b口接六位數(shù)碼管;送al輸出至b端口,完成指定位顯示指定數(shù)字;重新將a 口地址賦給dx
16、; 循環(huán)移位,控制下一位數(shù)碼管亮;si 加1 ,使得下次顯示中改變所顯示的數(shù)字; 延時,即每位數(shù)碼管點亮的時間; 判斷是否有鍵盤輸入; 循環(huán) 6 次, 6位數(shù)碼管依次按要求點亮; 循環(huán),重新于第一位開始點亮; 延時程序,雙重循環(huán);bx入棧,保留bx1?存器中的數(shù)據(jù);cx入棧,保留ow存器中的數(shù)據(jù);bx 重新賦值;cx 重新賦值;每循環(huán)一次,cxb減1,直至結(jié)果為0,即ff次;bx 減 1; 結(jié)果為0時停止,即循環(huán)11 次;cx 中數(shù)據(jù)恢復為入棧前的值pop bx;bx 中數(shù)據(jù)恢復為入棧前的值retdelay endp;key procnear; 判斷是否有鍵盤輸入pushax;ax入棧,保留b
17、xf?存器中的數(shù)據(jù)movah, 0bh; 檢查輸入設(shè)備狀態(tài)int 21hor al, al;無輸入字符al為00h,有輸入為ffhjz goon; 全為 0 即為無輸入,返回主程序movdx, 0ee01hmoval, 00houtdx al;完成b端口清零,即6位全滅movah, 4ch; 退出程序int 21hgoon: popaxretkey endp;code endsendstat2.4 子程序清單1)子程序名: delay功能:實現(xiàn)延遲顯示,即控制每個led點亮持續(xù)一定時間;入口參數(shù):無;出口參數(shù):無;使用寄存器:bx, cx, fr。2)子程序名:key功能:判斷是否有鍵盤輸入,
18、若有則退出程序;入口參數(shù):無;出口參數(shù):無使用寄存器:ax, dx, fr。2.5 代碼分析1) 靜態(tài)顯示的過程可以分為六個狀態(tài), 在每個狀態(tài)中, 只有一位數(shù)碼管工作, 顯示對 應數(shù)字信息。 系統(tǒng)循環(huán)進行這六個狀態(tài), 當速度合適時有靜態(tài)顯示六位數(shù)字的效果。2) 在數(shù)據(jù)段中定義 num在numfr存入待顯示的“ 210647”六位數(shù)字,根據(jù)之前測試 得其對應編碼為 0f4h, 21h, 0edh 0ddh 39h和61h; cx表示循環(huán)次數(shù);si表示 顯示數(shù)字在numfr的位置;bl控制數(shù)碼管的工作狀態(tài)。3)在每個狀態(tài)中,將需要顯示的信息賦值給al,送至8位段碼的a 口輸出,然后將bl賦給al,
19、送至控制6位數(shù)碼管的b 口輸出,從而使數(shù)碼管在不同的位置顯示數(shù)11 歡迎下載。精品文檔字信息。4) 在每個狀態(tài)結(jié)束時,對bl做循環(huán)移位,si自加1,調(diào)用延時函數(shù)控制顯示的速度。 調(diào)用判斷鍵盤輸入函數(shù),延時之后若無鍵盤輸入,進入下一狀態(tài)。如此循環(huán)完成6位數(shù)碼管的顯示。5)若循環(huán)一個周期仍無鍵盤輸入,則回到第一個狀態(tài)重新循環(huán),直至有鍵盤輸入。6)延時程序中,采用兩層嵌套循環(huán)實現(xiàn)延時。對bx, cx采用入棧操作后重新賦值,bx賦初值為000bh, cx為00h,內(nèi)循環(huán)為每循環(huán)一次, cx自減1,直至cx等于0, 即內(nèi)循環(huán)ffffh,外循環(huán)為每循環(huán)一次,bx減一,當bx為0時終止循環(huán),即外循環(huán)0bh次
20、,總共實現(xiàn)ffffh*0bh時跳出循環(huán),bx, cx恢復為原值后返回主程 序,實現(xiàn)延時顯示。7)判斷有無鍵盤輸入時,調(diào)用口0前令,ah為0bh即為判斷是否有鍵盤輸入,無字符輸入時al為00h,與自身或操作之后結(jié)果仍全為0,返回主程序,若有字符輸入時al與自身或操作之后結(jié)果不為 0,對b端口輸出00h,即6位數(shù)碼管全滅之后退 出程序。3六位數(shù)碼管動態(tài)顯示3.1實驗原理6位靜態(tài)字符,每次顯示一定1)數(shù)碼管動態(tài)顯示“ hello字符串,相當于每次顯示2)每次顯示靜態(tài)字符串的核心代碼與靜態(tài)顯示實驗的代碼相同,因而可以將靜態(tài)顯示中的程序封裝為一個子程序直接使用。增加的功能為需要按一定時間間隔移位讀取“
21、hell。,程序中通過將其前加入六個空字符,作為碼表存儲,第一次讀取為六個空字符,第二次為五個空字符和字符“h,第三次為四個空字符和字符“he,依次類推,顯示時依次往后讀取即可。3)可以通過讀取撥碼開關(guān)輸入的狀態(tài),控制延時的時間,從而實現(xiàn)速度快慢的變化以及實現(xiàn)暫停的功能。14歡迎下載3.2流程圖產(chǎn)始初始化是 ,結(jié)耒3.3源代碼datasegmentmesgb 0, 0, 0, 0, 0, 0, 3dh 0dch 8ch 8ch 0edh 0;據(jù)顯示規(guī)律 hello對應碼表為3dh,0dch,8ch,8ch,0edh dataends ;stack segmenttack stackdb 100
22、 dur0) stack ends ;code segmentassumeds datacs codess stack ;main procfarmovax data精品文檔movds, ax; 設(shè)置段地址moves, axmoval, 80hmovdx, 0ee03houtdxal;端口 a,b,c均以方式0輸出lop6 movbx, offsetmesg ; 設(shè)置偏移量movcx, 07h; 循環(huán)次數(shù),對應 7個狀態(tài)lop5 movdx, 0eee0h; 撥碼開關(guān)狀態(tài)控制顯示速度in al, dx; 讀撥碼開關(guān)狀態(tài)給alinc al; 自加 1 ,預防全0時不便延時and al, 07h;
23、 取低三位的值xorah, ah; 高八位清零movdx, axdx表示顯示速度lopz call disp; 調(diào)用靜態(tài)顯示函數(shù)dec dxdx為撥碼開關(guān)后三位狀態(tài),自減1jnz lopzdx不為0時繼續(xù)顯示dx越大同一狀態(tài)顯示時間越長,速度越慢inc bx自力口 1, bx旨向下一狀態(tài)looplop5; 循環(huán) 7 次,實現(xiàn)滾動效果jmp lop6; 每次循環(huán)結(jié)束后回到第一個狀態(tài)mainendp;dispprocnear-; 將靜態(tài)顯示封裝為子程序pushcx; 入棧保護pushdxpushaxmovbp, 000ah; 控制延時lopx xorsi, simovcx, 06h; 循環(huán) 6次,
24、即依次點亮6位數(shù)碼管movdx, 0ee00hmovah, 00000001b; 一次只亮一位lop2moval, mesg bx+si ; 需要顯示的字符對應的碼值賦給alout dx, al; 完成段碼輸出moval, ah; 控制第幾個數(shù)碼管工作inc dxout dx, al; 完成位碼輸出dec dxrol ah, 1; 下一個數(shù)碼管工作inc sicall delay; 調(diào)用延時函數(shù)實現(xiàn)每位數(shù)碼管的延時顯示call key; 調(diào)用判斷鍵盤輸入狀態(tài)的函數(shù)looplop2; 如此循環(huán)直至數(shù)碼管依次被點亮dec bp; 自減 1jnzlopx;bp不為0則繼續(xù)循環(huán),即顯示的字符串不變16
25、 歡迎下載。disppopaxpopdxpopcxretendp; 出?;謴?key procnearpushaxmovah, 0bhint 21hor al, aljz goonmovdx=0ee00hmoval, 00hout dx, almovah, 4chint 21hgoon: popaxretkey endp; 判斷是否有鍵盤輸入; 入棧保護;dos調(diào)用,將鍵盤輸入信息賦給al; 若沒有輸入則繼續(xù)工作; 若有輸入則六個數(shù)碼管均不工作; 退出程序;delaylopd:delayprocpushaxpushcxmovax, 000bhmovcx, 0hloop$dec axjnz lo
26、pdpopcxpopaxretendp; 控制延時,兩層循環(huán); 入棧保護;外循環(huán)0bh;內(nèi)循環(huán)ffff次;codeendsendmain3.4 子程序清單1) 子程序名: delay功能:實現(xiàn)延遲顯示,即控制每個led點亮持續(xù)一定時間;入口參數(shù):無;出口參數(shù):無;使用寄存器:ax, cx, fr。精品文檔2) 子程序名:key功能:判斷是否有鍵盤輸入,若有則退出程序;入口參數(shù):無;出口參數(shù):無;使用寄存器:ax, dx fr。3) 子程序名:disp功能:靜態(tài)顯示6位指定字符;入口參數(shù):無; 出口參數(shù):無;使用寄存器:ax, cx dx, si, bp, fr3.5 代碼分析1)動態(tài)顯示的過程
27、可以分為七個狀態(tài),在每個狀態(tài)中,靜態(tài)顯示六位數(shù)碼管信息。系統(tǒng)循環(huán)進行這七個狀態(tài),當速度合適時有動態(tài)顯示的效果。2)在數(shù)據(jù)段中定義 mes嗷組,依次存入 “0,0,0q0q3dh,0dch,8ch,8ch,0edh,0 ; cx表示循環(huán)次數(shù),對應表中的七個狀態(tài);bx表示當前需要顯示的狀態(tài),dx表示動態(tài)顯示的速度。3)將靜態(tài)顯示的程序封裝為子程序以供調(diào)用,在每個狀態(tài)中調(diào)用子程序disp實現(xiàn)六位數(shù)碼管的靜態(tài)顯示,調(diào)用子程序delays現(xiàn)延時,調(diào)用子程序key判斷鍵盤有無 輸入。4)每個狀態(tài)結(jié)束時,bx加1,表示進入下一狀態(tài),如此循環(huán)完成數(shù)碼管的動態(tài)顯示。5)主程序中通過讀取撥碼開關(guān)狀態(tài),將其后三位賦
28、給dx并在子程序 disp返回時,自減實現(xiàn)延時。dx越大,循環(huán)時間越久,則對應的滾動速度越慢。6)若循環(huán)一個周期仍無鍵盤輸入,則回到第一個狀態(tài)重新循環(huán),直至有鍵盤輸入。4擴展:顯示鍵盤輸入學號4.1實驗原理通過4*4鍵盤電路輸入學號,其控制原理如下:1) 通過地址為ee02的端口 c讀取鍵盤輸入,其中pc4 pc5 pc6 pc7分別接行輸入,pc3 pc2 pc_k 同日30272422201816后續(xù)實驗的展開均基于上表規(guī)律。2音樂發(fā)生器2.1實驗原理1)微機系統(tǒng)使用的8253,其3個通道均有固定的用途:0號計數(shù)器為系統(tǒng)時鐘源,每隔55ms向系統(tǒng)主8259ir0提一次中斷請求;1號計數(shù)器用
29、于動態(tài)存儲器的定時刷 新控制;2號計數(shù)器為系統(tǒng)的發(fā)聲源。2)用戶在使用微機系統(tǒng)的時候,可以使用0號和2號計數(shù)器,但不能改變對1號計數(shù)器的初始化。實驗箱上的 8253,其數(shù)據(jù)線 d7 do,地址線a1、a0和控制線rd wr!過總線驅(qū)動卡和微機系統(tǒng)的三總線相連。3)除此之外,三個計數(shù)器的引出段和片選端都是懸空的,這意味著實驗箱上的8253的三個計數(shù)器都歸用戶使用,可以單獨使用其中的一個計數(shù)器,也可以串聯(lián)使用其中的2個或3個計數(shù)器。8253計數(shù)器的輸入信號,其頻率不能超過2mhz否則長時間使用,芯片過熱。4) 8253使用之前,需先對其進行初始化編程,其步驟分為向控制寄存器端口寫入控制字對使用的計
30、數(shù)器規(guī)定其使用方法,向使用的計數(shù)器端口寫入計數(shù)初值。8253的控制字控制規(guī)律如下:d7d6d5d4d3d2d1d0計數(shù)器選擇讀寫方式選擇工作方式選擇數(shù)制選擇d7d6= 00:使用0號計數(shù)器,d7d6= 01:使用1號計數(shù)器d7d6= 10:使用2號計數(shù)器,d7d6= 11 :無效d5d4= 00:鎖存當前計數(shù)值d5d4= 01 :只寫低8位(高8位為0),讀出時只讀低 8位d5d4= 10:只寫高8位(低8位為0),讀出時只讀高 8位d5d4= 11 :先讀/寫低8位,后讀/寫高8位計數(shù)值d3d2d4 000:選擇方式 0, d3d2d4 001:選擇方式 1d3d2d4x10:選擇方式 2,
31、 d3d2d4x11:選擇方式 3d3d2d4 100:選擇方式 4, d3d2d4 101:選擇方式 5d0= 0:計數(shù)初值為二進制,d0= 1:計數(shù)初值為bc加數(shù)5) 8253控制端口地址為 ee23h定日器0地址為ee20h定日器1地址為ee21h定 時器2地址為ee22h2.2 電路連接圖q7(32khz)5v2.3 流程圖1)主程序流程圖凋用mp lfpvnvafl.rx-bx - lmusic去定si .性世器架擊 amr3rhyme .由川舞時2) read?程序3) led子程序altonbxah-ofdh右邊第二個leo高4) rhymef 程序精品文檔2.4 源代碼data
32、 segment ; 計時器計數(shù)初值lou db 122, 108, 97, 91,81, 72, 64middb 61, 54,48,45,40, 36, 32higdb 30, 27, 24, 22,20, 18, 16; 音符信息 1do 2re 3mi 4fa 5so 6la 7sibok ;曲一巴赫g大調(diào)小步舞曲db5,1,2,3,4,5, 1, 1db6,4,5,6,7, 1, 1, 1db 4, 5, 4, 3, 2, 3, 4, 3, 2, 1db 2, 1, 2, 3, 1, 2db5,1,2,3,4,5, 1, 1db3,1,2,3,4,5, 1, 1db 4, 5, 4,
33、 3, 2, 3, 4, 3, 2, 1db 2, 3, 2, 1, 2, 1 ; 曲二db 1, 2, 3, 4, 5, 6, 7db 1, 2, 3, 4, 5, 6, 7db 1, 2, 3, 4, 5, 6, 7db 1, 2, 3, 4, 5, 6, 7db 1, 2, 3, 4, 5, 6, 7db 1, 2, 3, 4, 5, 6, 7len1equ 64; 曲一音符總個數(shù)len2equ 42; 曲二音符總個數(shù); 音調(diào)信息 1 低調(diào) 2 中調(diào) 3 高調(diào)ton ; 曲一 音調(diào)db 2, 2, 2, 2, 2, 2, 2, 2db 2, 2, 2, 2, 2, 3, 2, 2db 2
34、, 2, 2, 2, 2, 2, 2, 2, 2, 2db 2, 2, 2, 2, 2, 2db 2, 2, 2, 2, 2, 2, 2, 2db 2, 2, 2, 2, 2, 2, 2, 2db 2, 2, 2, 2, 2, 2, 2, 2, 2, 2db 2, 2, 2, 2, 2, 2 ; 曲二db 1, 1, 1, 1, 1, 1, 1db 2, 2, 2, 2, 2, 2, 2db 3, 3, 3, 3, 3, 3, 3db 1, 1, 1, 1, 1, 1, 1db 2, 2, 2, 2, 2, 2, 2db 3, 3, 3, 3, 3, 3, 3; 節(jié)拍信息 2 半拍 4 一拍r
35、hy ; 曲一db 4, 2, 2, 2, 2, 4, 4, 4db 4, 2, 2, 2, 2, 4, 4, 4db 4, 2, 2, 2, 2, 4, 2, 2, 2, 2db 4, 2, 2, 2, 2, 4db 4, 2, 2, 2, 2, 4, 4, 4db 4, 2, 2, 2, 2, 4, 4, 4db 4, 2, 2, 2, 2, 4, 2, 2, 2, 2db 4, 2, 2, 2, 2, 4; 曲二db 2, 2, 2, 2, 2, 2, 2db 2, 2, 2, 2, 2, 2, 2db 2, 2, 2, 2, 2, 2, 2db 4, 4, 4, 4, 4, 4, 4d
36、b 4, 4, 4, 4, 4, 4, 4db 4, 4, 4, 4, 4, 4, 4;1-7 數(shù)碼管顯示key db 21h, 0f4h, 0f1h, 39h, 0d9h, 0ddh, 61h; 存儲用tbokdb 0ttondb 0trhydb 0count db 0dataends;stack segmentstack stackdb 50 dup(?)stack ends;codes egmentassumeds: data, cs: code, ss: stack;delay macrotime; 延時宏指令 形參 :timelocallopapushcxmovax, timelopa: movcx, 00h41 歡迎下載。loop$ dec ax jnz lopa popcx endm;music macromoval, count movdx, 0ee20h out dx, alendm;readprocnearmoval, bok bx xorah, ahmovsi , ax dec simovtbok, al moval, rhy bx movtrhy, almoval, ton bx cmpal, 1je islowcmpal, 2 je ismidcmpal, 3je
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 贛南醫(yī)學院《廣告造型基礎(chǔ)》2023-2024學年第一學期期末試卷
- 贛南師范大學科技學院《舞蹈藝術(shù)概論》2023-2024學年第一學期期末試卷
- 三年級數(shù)學上冊七年月日一天的時間說課稿北師大版
- 三年級數(shù)學上冊四兩三位數(shù)除以一位數(shù)第3課時除法的驗算教案蘇教版
- 小學生安全備課課件
- 2021中級電氣工程師完整復習試題及答案
- 小學生課堂發(fā)言制度管理
- 三年級健康教學參考計劃范文5篇
- 肝癌微波消融術(shù)
- 《愚人節(jié)中英文》課件
- 工會的財務管理制度〔13篇〕
- 新版醫(yī)務人員法律法規(guī)知識培訓課件
- 2024年土地市場研究分析服務協(xié)議
- 物業(yè)管理公文寫作培訓
- 2024期貨反洗錢培訓
- 2023醫(yī)療質(zhì)量安全核心制度要點釋義(第二版)對比版
- 生態(tài)農(nóng)業(yè)示范基地項目可行性研究報告1
- 家庭教育大講堂實施方案
- 園林綠化工職業(yè)技能競賽理論考試試題題庫及答案
- 部編版《道德與法治》四年級下冊教材解讀與分析文檔
- 2024-2030年中國機場跑道異物碎片(FOD)檢測系統(tǒng)行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
評論
0/150
提交評論