




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、學 號: 課 程 設 計題 目基于PROTEUS的跑馬燈系統(tǒng)設計及仿真學 院自動化學院專 業(yè)自動化班 級姓 名指導教師2012年1月12日任務書目 錄引 言11總體方案論證21.1功能分析21.2系統(tǒng)連接圖設計21.2.1鎖存控制電路51.2.2可編程并行通信接口芯片8255A62程序流程圖設計及其說明93關鍵程序段落說明113.1數據段定義113.2程序初始化113.3芯片初始化123.4初始LED亮滅狀態(tài)123.5檢測按鍵開關子程序123.6延時程序片段143.7燈光變換控制154程序調試說明165結果記錄及分析17心得體會19參考文獻20引 言微型計算機簡稱微機,由于具備人腦某些功能,所
2、有又叫做微機。是由大規(guī)模集成電路組成的、體積較小的電子計算機。它是以微處理器為基礎,配以內存儲器及輸入輸出接口電路和相應的輔助電路構成的裸機。把微型計算機集成在一個芯片上即構成單片微型計算機。學習微機原理與接口技術,主要內容包括微型計算機體系結構、8086微處理器和指令系統(tǒng)、匯編語言、設計以及微型計算機各個組成部分,而其中很大一塊就是匯編語言的學習。匯編語言是面向機器的程序設計語言,也是利用計算機所有硬件特性并能直接控制硬件的語言。用匯編語言編寫的程序由于目標程序占用內存少,運行速度快,它有著高級語言不可替代的用途。因此,學習匯編語言是很必要的,通過學習匯編語言可以體會它的作用。通過本次課程設
3、計讓我們進一步深入匯編語言的學習,掌握簡單的接口設計技術,將理論知識聯(lián)系實際,進一步學習微機原理與接口技術的相關知識,為以后深入學習打下良好的基礎。1總體方案論證1.1功能分析此次課程設計的要求為,設計微型計算機最小系統(tǒng),實現(xiàn)跑馬燈的模擬顯示功能。具體要求為:(1)、輸入設備三個啟動按鈕、一個停止按鈕,輸出設備為八個跑馬燈;(2)、三個啟動按鈕對應三種跑馬燈顯示效果,按下任意一個啟動按鈕,跑馬燈顯示對應的效果,按下停止按鈕則跑馬燈全部熄滅。由上分析可知,我們的硬件的電路需要另行搭建,電路中需包含四個按鈕和八個跑馬燈以及相關芯片,既有輸入設備又有輸出設備,經過分析可以使用芯片8255A來實現(xiàn)輸入
4、與輸出,再加上鎖存地址芯片74LS273、譯碼芯片74LS154以及相關門電路即可構成本設計的硬件電路基礎。進一步分析最終決定用8255A的A口作為輸出去控制跑馬燈,B口作為按鈕信號輸入,CPU通過接收輸入信號從而發(fā)出對應命令去控制8255A芯片A口輸出,從而A口輸出相應電平控制跑馬燈有規(guī)律的亮滅。連接好硬件電路后的主要任務就是編寫相應程序,通過程序去控制和調度硬件電路的輸入與輸出。1.2系統(tǒng)連接圖設計8255A是一種通過可編程并行I/O接口芯片。廣泛用于幾乎所有系列的微機系統(tǒng)中,8255A具有三個帶鎖存或緩沖的數據端口,可與外設并行進行數據交換,8255A有多種操作方式,通用性較強,可為CP
5、U與外設之間提供輸入/輸出通道。8255A和各端口內具有中斷控制邏輯,在外設與CPU之間可用中斷方式進行信息交換,使用條件傳輸方式時可用“聯(lián)絡”線進行控制。在本次課程設計中,我們運用8255A為CPU與外設之間提供輸入輸出輸出通道來實現(xiàn)對跑馬燈花樣變換的控制。8086微處理器,選擇最小工作模式,所有的總線控制信號均由8086產生;8086CPU的地址數據總線AD15-AD0和地址狀態(tài)總線A16/S3-A19/S6是復用的,必須通過地址鎖存器把地址總線和數據總線分離。跑馬燈硬件電路如圖1所示。電路包括8個LED彩燈、三片74LS273、一片74LS154、一片8086CPU、一片8255A以及若
6、干導線和電阻。用LED可以觀測在不同按鍵輸入下,跑馬燈花樣的變化效果。如圖1所示我們利用啟動按鈕作為輸入信號,通過8255A端口擴展芯片,調節(jié)輸出端口的電平變化,來控制共陽極的LED燈的亮與滅,實現(xiàn)跑馬燈不同的花樣變化。圖1 跑馬燈硬件電路圖1.2.1鎖存控制電路鎖存控制電路電路如圖2所示,在微控制器單元(MCU)中,寄存器是十分重要的資源。寄存器的主要作用是快速寄存算術邏輯運算單元(ALU)運算過程中的數據,其鎖存功能利用74LS273來實現(xiàn),74LS273是一種帶清除功能的8D觸發(fā)器, 1D8D為數據輸入端,1Q8Q為數據輸出端,正脈沖觸發(fā),低電平清除,常用作數據鎖存器,地址鎖存器。D0D
7、7:輸入,Q0Q7:輸出;第一腳WR:主清除端,低電平觸發(fā),即當為低電平時,芯片被清除,輸出全為0(低電平);CP(CLK):觸發(fā)端,上升沿觸發(fā),即當CP從低到高電平時,D0D7的數據通過芯片,為0時將數據鎖存,D0D7的數據不變。CPU向外部發(fā)出地址鎖存允許信號,從而使74LS273鎖存地址信號,在通過譯碼芯片74LS154控制接口芯片8255A,在此系統(tǒng)中充當一個橋梁的作用。這部分電路將相應信號傳送給8255A的A0、A1和CS片選,進而CPU開始控制8255A從而驅動發(fā)光二極管顯示不同的樣式。圖2 鎖存控制電路1.2.2可編程并行通信接口芯片8255A芯片8255A有三種工作方式,他們分
8、別是方式0、方式1、方式2,電路如圖3所示。方式0為簡單I/O,查詢方式,端口A、端口B、端口C均可使用;方式1為選通I/O,中斷方式,端口A、端口B可以使用,選通的輸入/輸出方式;方式2為雙向I/O,中斷方式,只有端口A可以使用,雙向的傳輸方式。方式0也叫基本輸入/輸出方式。一種方式,不需要應答聯(lián)絡信號,端口A、端口B和端口C的高4位及低4位都可以作為輸入或輸出端口。方式0的應用場合有無條件傳送和查詢傳送2種; 故根據我們系統(tǒng)設計的要求,綜上可知,選擇8255A為工作方式0,A口作為輸出、B口作為輸入。8255A的3種基本工作方式由方式控制字來決定,D71(特征位)表明是設定方式選擇控制字;
9、D7=0,則表示是端口C按位置位/復位控制字。端口C分成高4位(PC7PC4)和低4位(PC3PC0),可分別設置成輸入端口或輸出端口;端口C的高4位與端口A配合組成A組,端口C的低4位與端口B配合組成B組。綜上可得此系統(tǒng)需要滿足A端口為輸出,輸出數據給到8個LED彩燈;端口B為輸入,需要檢測按鍵的輸入情況。圖3 芯片8255A接口電路1.3算法說明本程序涉及芯片8255A的初始化,因此首先需要確定端口地址,CPU向8255A送出方式控制字,進而8255A的A口作為輸出、B口作為輸入;定義控制LED燈的相應數據段,由于需要LED亮后持續(xù)一段時間這就需要一個相應的延時程序片段,需要確定B口那個按
10、鈕開關按下,這就需要一個掃描B口開關按下的子程序,從而CPU發(fā)出相應控制等操作給A口送出相應電平,LED顯示相應的亮滅。因此,主要要點就是找對端口地址,這個是程序能夠運行的必需品,通過分析硬件線路可以正確找到A口、B口以及控制口的地址。2程序流程圖設計及其說明主程序流程圖如圖4所示:初始化程序開始送控制字通過A口輸出使燈全滅調用ledflash子程序圖4 主程序流程圖檢測按鍵延時控制LED子程序流程圖如圖5所示:開始檢測B口信號輸入是否為按鍵1是否為按鍵2是否為按鍵3將1型走馬燈的偏移地址送給SI將2型走馬燈的偏移地址送給SI將3型走馬燈的偏移地址送給SI是否終止開關Num是否為0延時YYYY
11、YNNNNN結束圖5 子程序流程圖3關鍵程序段落說明3.1數據段定義dseg segmentnum dw 0 data1 db 0FEh,0FDh,0FBh,0F7h,0EFh,0DFh,0BFh,7Fh data2 db 7Fh,0BFh,0DFh,0EFh,0F7h,0FBh,0FDh,0FEh data3 db 7Eh,0BDh,0DBh,0E7h,0E7h,0DBh,0BDh,7Eh dseg ends三種燈光變幻組合為:第一種為L1L2L3L4L5L6L7L8;第二種為L8L7L6L5L4L3L2L1;第三種為L1L8L2L7L3L6L4L5L3L6L2L7L1L8。dw為燈光循環(huán)的
12、控制次數。3.2程序初始化cseg segment para public code assume ss:sseg,cs:cseg,ds:dseg start: mov ax,dseg mov ds,ax初始化程序。3.3芯片初始化mov dx,0206h ;取8255A的控制端口的地址mov al,82h ;初始化8255A的A口為輸出模式,B口為輸入模式 out dx,al 82h即為10000010b,也就是說將A口定義在方式0下并且作為輸出,B口定義在方式0下并且作為輸入,因此這個方式控制字不是唯一的,其通用形式為1000X01X,C口沒有定義故可以為任意二進制數。mov dx,020
13、0h ;取8255的端口A的地址mov al,0FFh ;使8255的PA0-PA7全為1out dx,al 上邊這個程序段是往外送數據置LED亮滅的。mov dx,0202h ;取8255的端口B的地址 in al,dx ;檢測B口輸入信號這個是將B口開關閉合信息讀回來的,從而發(fā)出相應控制命令。3.4初始LED亮滅狀態(tài)mov dx,0200h ;取8255的端口A的地址mov al,0FFh ;使8255的PA0-PA7全為1out dx,al ;使所有的燈LED全滅電路上電工作后首先要使所有的LED燈全滅,防止對后面的顯示造成影響。3.5檢測按鍵開關子程序ledflash proc ;檢測
14、開關閉合,以便確定哪種閃爍方式mov dx,0202h ;取8255A的端口B的地址 in al,dx ;檢測B口輸入信號choice1: cmp al,0feh jne choice2 mov si,offset data1 ;置第一種燈光變幻組合 jmp herechoice2: cmp al,0fdh jne choice3 mov si,offset data2 ;置第二種燈光變幻組合 jmp herechoice3: cmp al,0fbh jne choice4 mov si,offset data3 ;置第三種燈光變幻組合 jmp here choice4: ;每盞燈亮完檢測開關
15、,如果停止開關沒有按下跳到choice5,如果停止開關按下燈全滅 cmp al,0f7h jne choice5 jmp exutchoice5: cmp num,0h;檢測num是否為0,若為0掃描開關,若不為0繼續(xù)執(zhí)行 jne here jmp ledflash here: mov bx,num mov al,si+bx mov dx,0200h ;取8255的端口A的地址 out dx,al ;輸出加電數據到端口A inc num ;改變數字變量的值 cmp num,09h je exit mov cx,005fh dl4: mov bx,00ffhdl3: dec bx jnz dl3
16、 dec cx jnz dl4 jmp ledflashexit: mov num,0 retledflash endp檢測到開關閉合置相應燈光變換。3.6延時程序片段 mov cx,04c9h dl4: mov bx,04c9hdl3: dec bx jnz dl3 dec cx jnz dl4通過雙層循環(huán)從而實現(xiàn)軟件延時,延時計算公式為(cx)*(bx)/f,f為CPU的頻率,CPU頻率為1500kHz,可以計算得到程序大致延時為1s。3.7燈光變換控制here: mov bx,num mov al,si+bx mov dx,0200h ;取8255的端口A的地址 out dx,al ;輸
17、出加電數據到端口A inc num ;改變數字變量的值 cmp num,09h je exit通過指針移動,逐個選中相應的數據置相應的燈光變換,共八種即一輪LED顯示完成。4程序調試說明(1)、內存空間分配,匯編語言的重要特點之一是能夠直接利用機器指令或者偽指令為數據或者代碼程序分配內存空間,86系列(如8086微處理器)的存儲器結構是分段的,有代碼段,數據段,堆棧段或附加段,在程序設計時要充分考慮分段結構,要執(zhí)行的程序段應設在當前段(活動段)中;分配內存空間:直接在proteus里面將8086CPU的internal memory size設置成一個足夠用的空間大小,如0x1000,默認的空
18、間大小是0x00000,如不改則仿真不成功。程序在運行時所需要的工作單元應盡可能的設在CPU寄存器中,這樣存取速度快,而且操作方便;在此系統(tǒng)源程序中都采用8086CPU的全部通用寄存器:累加器AX,基數寄存器BX,基數寄存器CX,數據寄存器DX;和堆棧指針寄存器SI。(2)、unknow 1-byte opcode at B900:7056! 61SPICEerror-too many iterations without convergence在仿真過程中,出現(xiàn)以上兩行的錯誤,太多的迭代沒有收斂性,和某個匯編語言在編碼過程中的地址不正確,經過排查程序去除無用代碼,proteus不再報錯。(3
19、)、8255A隱藏引腳問題,需要設置芯片Hidden Pins里的GND改為VSS,VCC改為VDD。(4)、程序一開始是將延時環(huán)節(jié)作為一個獨立子程序,運行過程中由于部分情況下不滿足題設,故將延時子程序改為程序段落寫到檢測按鍵的子程序中問題得以解決。5結果記錄及分析第一種燈光變換效果:L1L2L3L4L5L6L7L8,如圖6所示。圖6 LED第一種變換效果第二種燈光變換效果:L8L7L6L5L4L3L2L1;第一種變換效果反向即為第二種效果。第三種燈光變換效果:L1L8L2L7L3L6L4L5L3L6L2L7L1L8,如圖7所示。圖7 LED第三種變換效果心得體會通過本次課程設計,學到了很多使
20、用的東西,使我受益匪淺,將課堂上所學的知識運用到實際,體會到了理論與實際聯(lián)系的重要性,同時進一步學習了PROTEUS這款軟件。第一,在做這次課程設計的一開始可以說是難度重重,接口電路設計出了問題,一開始由于電路沒有加入鎖存器,導致地址和數據沖突,從而電路不能正常工作,最后在電路里加入了鎖存器74LS273和譯碼器74LS154后解決了地址和數據沖突的問題。第二,由于對軟件PROTEUS運用不是很熟練,導致一些問題,比如說分配內存空間:直接在proteus里面將8086CPU的internal memory size設置成一個足夠用的空間大小,如0x1000,默認的空間大小是0x00000,如不
21、改則仿真不能成功。還有在運行期間PROTEUS仿真報錯,由于不太懂報錯信息就一步加大了設計的難度,還有一些其他小細節(jié)上的問題,可以說是細節(jié)決定成敗。第三,由于匯編語言運用的不太熟練,對程序反復進行修改,發(fā)現(xiàn)匯編語言由于語句在程序中放置的位置不同也會是不同的效果,對匯編語言有了進一步的認識。綜上所述,這次微機原理與接口技術的課程設計讓我學到了很多東西,不是課堂上能夠學到的東西,通過仿真可以實實在在的看到成果,從而提高了對電子設計的興趣,我想這是一個很好的鍛煉機會,通過這樣的鍛煉不僅鞏固了課堂上學習的相關知識,而且學到了一些課外知識,比如說在網絡上怎樣去搜索你想要的信息等等,這些東西將使我終身獲益
22、。 附 錄程序清單sseg segment dw 200 dup (?)sseg endsdseg segmentnum dw 0 ;初始化數字變量為0;3種不同的燈光變幻組合 data1 db 0FEh,0FDh,0FBh,0F7h,0EFh,0DFh,0BFh,7Fh data2 db 7Fh,0BFh,0DFh,0EFh,0F7h,0FBh,0FDh,0FEh data3 db 7Eh,0BDh,0DBh,0E7h,0E7h,0DBh,0BDh,7Eh dseg endscseg segment para public code assume ss:sseg,cs:cseg,ds:dse
23、g start: mov ax,dseg mov ds,ax mov dx,0206h ;取8255的控制端口的地址 mov al,82h ;初始化8255的A口為輸出模式,B口為輸入模式 out dx,al exut: mov num,0h mov dx,0200h ;取8255的端口A的地址 mov al,0FFh ;使8255的PA0-PA7全為1 out dx,al ;使所有的燈LED全滅 begin: call ledflash ;調用燈光變幻過程 jmp exut ledflash proc ;檢測開關閉合,以便確定哪種閃爍方式 mov dx,0202h ;取8255的端口B的地址
24、 in al,dx ;檢測B口輸入信號choice1: cmp al,0feh jne choice2 mov si,offset data1 ;置第一種燈光變幻組合 jmp herechoice2: cmp al,0fdh jne choice3 mov si,offset data2 ;置第二種燈光變幻組合 jmp herechoice3: cmp al,0fbh jne choice4 mov si,offset data3 ;置第三種燈光變幻組合 jmp here choice4: ;每盞燈亮完檢測開關,如果停止開關沒有按下跳到choice5,如果停止開關按下燈全滅 cmp al,0f7h jne choice5 jmp exutchoice5: ;檢測num是否為0,若為0掃描開關,若不為0繼續(xù)執(zhí)行 cmp num,0h jne here jmp ledflash here: mov bx,num mov al,si+bx mov dx,0200h ;取8255的端口A的地址 out dx,al ;輸出加電數據到端口A inc num ;改變數字變量的值 cmp num,09h je exit mov cx,04c9h dl4: mov bx,04c9hdl3: dec bx jnz dl3 dec cx jnz dl4 jmp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度明星參與綜藝節(jié)目票房對賭協(xié)議合同
- 2025年廣東年貨運從業(yè)資格證考試試題題庫
- 2025年珠海道路運輸從業(yè)資格考試下載
- 2025年南京貨運資格證考試口訣
- 三農村土地整治與利用實施方案
- 2025年合肥貨運從業(yè)資格證模擬考試試題及答案解析
- 物流運輸效率評估表-物流運輸指標統(tǒng)計
- 2025屆內蒙古省普通高中學業(yè)水平選擇性考試適應性演練歷史試題(八省聯(lián)考)
- 旅游酒店住宿預訂表
- 經營權抵押借款合同
- DGJ32 J 67-2008 商業(yè)建筑設計防火規(guī)范
- 2024年上海交通大學招考聘用高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 浙江省金華市2024年初中畢業(yè)升學適應性檢測 科學試題卷
- 延長石油招聘筆試試題
- DB-T 29-22-2024 天津市住宅設計標準
- 2024年贛州職業(yè)技術學院單招職業(yè)適應性測試題庫及答案解析
- DL∕T 5209-2020 高清版 混凝土壩安全監(jiān)測資料整編規(guī)程
- 2024年山東省濰坊市中考數學真題試題(含答案及解析)
- 開票稅點自動計算器
- 2024年江蘇農牧科技職業(yè)學院單招職業(yè)適應性測試題庫及參考答案
- 醫(yī)療器械質量安全風險會商管理制度
評論
0/150
提交評論