第一篇:微機原理單片機課程設計報告
一、課程設計的性質和目的通過課程設計,進行硬件設計和程序設計的方法和技能訓練,鞏固在課堂上學到的有關軟件程序設計和硬件電路設計的基本知識和基本方法,通過具體課題的訓練,進一步熟悉匯編語言的結構和使用方法,掌握軟硬結合的控制程序設計,達到能獨立閱讀、查閱資料、編制和調試完善特定功能的目的。
二、課程設計的要求
1、遵循硬件設計模塊化。
2、要求程序設計結構化。
3、程序簡明易懂,多運用輸入輸出提示,有出錯信息及必要的注釋。
4、要求程序結構合理,語句使用得當。
5、適當追求編程技巧和程序運行效率。
三、主要儀器設備及軟件
PC機、Keil軟件、Proteus繪圖軟件及仿真等。
四、課程設計題目及要求
題目:步進電機的單步正轉反轉以及加速正反轉
要求:通過四個按鍵分別控制步進電機的單步正向.單步反向轉動以及快速正向轉動和快速反向轉動。
五、課題分析及設計思路
硬軟件設計思路:
本步進電機控制系統通過四個鍵盤來控制步進電機的單步正轉、單步反轉、快速正轉和快速反轉,步進電機旋轉的角度取決于鍵盤接通時間長短,接通時間越長,旋轉角度越大,其功能表如表1.2.1。
表1.2.1鍵盤功能表
總體方案設計:在該步進電機控制系統中,需要接收鍵盤信息并識別,然后將數據傳送給步進電機使步進電機旋轉,采用了一片74LS138,1硬件設計框圖 ○
2硬件設計電路圖:
○
3XXXX流程圖如下: ○
六、程序主要代碼與分析:DATASEGMENT;數據段
SRDB01H,03H,02H,06H,04H,0CH,08H,09H;電機激磁信號
X1DB0;控制電機正轉X2DB7;控制電機反轉DATAENDS
CODESSEGMENT;代碼段
ASSUMECS:CODES,DS:DATA
START:MOVAX,DATA;初始化數據段MOVDS,AX
LEASI,SR;SI指向SR首地址
MOVBH,0;清除BX高四位,用于指向電機激磁信號MOVSI,0;SI清零S1:INAL,40H;讀按鍵狀態
CMPAL,0FH;檢測按鍵是否被按下
JES1;無按鍵按下,繼續讀按鍵狀態MOVCX,64H;LOOP$
INAL,40H;CMPAL,0FH;JES1;CALLS2;JMPS1;
S2PROC
TESTAL,01H;JES3;TESTAL,02H;JES
4TESTAL,04H;JES
5TESTAL,08H;JES6
RET;S2ENDP
S3PROC;PUSHAX;PUSHBX
S7:INAL,40H;TESTAL,01H;JES7;MOVBL,X1;BLMOVAL,[BX+SI];BX+SIOUT48H,AL;CMPX1,07;JES8;INCX1;X1JMPS9;NOP;S8:MOVX1,00H;X1有按鍵按下,延時去抖動 讀按鍵狀態
檢測按鍵是否被按下
無按鍵按下,繼續讀按鍵狀態 判斷幾號按鍵按下,處理相應狀態 繼續讀取按鍵狀態 測試是否是一號按鍵按下 若一號鍵按下則跳轉s3 測試是否是二號按鍵按下 測試是否是三號按鍵按下 測試是否是四號按鍵按下 子程序返回 單步正轉子程序 寄存器入棧 讀按鍵狀態 仍被按下 則等待松手
等于X1指向的激磁單元
指向的地址單元內容送給AL 送電機轉動
判斷X1是否加到7 是則清零X
1指向下一個激磁信號 跳轉到程序返回 延時一個機器周期
從新指向第一個單元
POPAXRETS3ENDP
S4PROC;單步反轉子程序PUSHAXPUSHBXS10:INAL,40HTESTAL,02HJES10MOVBL,X
2MOVAL,[BX+SI]OUT48H,ALCMPX2,00HJES11DECX2JMPS12NOP
S11:MOVX2,07S12:POPBXPOPAXRETS4ENDP
S5PROC;PUSHAX;PUSHBX
MOVBL,X1;BLMOVAL,[BX+SI];BX+SINOP
OUT48H,AL;CMPX1,07;JES13;INCX1;X1JMPS14;NOP
S13:MOVX1,00;X1S14:POPBXPOPAX
RET;S5ENDP
S6PROC;快速正轉子程序 寄存器入棧 等于X1指向的激磁單元
指向的地址單元內容送給AL 送電機轉動
判斷X1是否加到7 是則清零X1
指向下一個激磁信號 跳轉到程序返回 從新指向第一個單元 子程序返回 快速反轉子程序
PUSHBXMOVBL,X2
MOVAL,[BX+SI]OUT48H,ALNOP
CMPX2,00HJES15DECX2JMPS16NOP
S15:MOVX2,07HS16:POPBXPOPAXRETS6ENDP
CODESENDS
ENDSTART
七、實驗結果截圖
八、心得體會
這次試驗之前是用C語言編寫的,按下按鍵后,它實現的效果是單步正向和單步反向
轉動°,而不是正向或反向轉動,因此用C語言編寫失敗,改用微機語言編寫。編程時,初始化代碼段,設置正傳和反轉,接著判斷按鍵的狀態,進行循環,按鍵按下后,還要進行延時去抖動。當然,編程時,流程圖是不可少的,按照流程圖來編,思路清晰,邏輯性強,出錯率減少不少。個人覺得,今后應加強練習,來提高編程能力。
第二篇:微機原理課程設計
電子信息科學與技術《微機原理》課程設計
一、本次課程設計的目的和意義
學習和掌握計算機中常用接口電路的應用和設計技術,充分認識理論知識對應用技術的指導性作用,進一步加強理論知識與應用相結合的實踐和鍛煉。通過這次設計實踐能夠進一步加深對專業知識和理論知識學習的認識和理解,使自己的設計水平和對所學的知識的應用能力以及分析問題解決問題的能力得到全面提高。
二、設計時間、基本要求
(一)、設計時間:二周(二)、基本要求:
a.每題2人;b.設計出完整的接口電路;c.編寫出全部程序;d.在實驗系統上調試通過。
三、設計選題與要求
選題一:多路模擬數據采集系統設計
要求:設計一個2路以上的模擬數據采集系統。
1、用按鍵選擇那一路;
2、用LED顯示轉換結果(十進制數);
3、將每一路采集的100個數據存放到各自的存儲區中。
選題二:溫度測控系統的設計
要求:利用ADC0809設計一個溫度測控系統,在LED數碼顯示器上顯示溫度值,并對溫度進行測試和控制,當檢測溫度到達溫度上限60℃時開風扇(即開啟電動機,或以一個燈的亮滅表示),低于下限30℃時關閉風扇,LED上的顯示內容為:XX ℃(采用十進制顯示)。
選題三:函數發生器的設計(一)要求:利用DAC0832設計一個函數發生器,并利用按鍵選擇輸出波形,能分別產生三角波、階梯波(每階梯1V)、正向鋸齒波、負向鋸齒波和方波。并利用按鍵(自行定義)進行輸出波形選擇,同時將當前輸出波形代號顯示在LED上(左邊位):0為方波、1為正向鋸齒波、2為負向鋸齒波、3 為三角波、4為階梯波。
選題四:函數發生器的設計(二)要求:設計一個三角波發生器,可利用鍵盤改變其輸出波形的幅值。例如,可利用1-5這5個數字鍵改變其輸出波形的幅值,當按下1-5數字鍵時使D/A輸出幅值從1V增加到5V。
選題五:電子音樂播放器
要求:設計要求:利用8253作為音階頻率發生器,應先對“2008年奧運會主題歌”進行編碼后存入音符表,并建立好音階表(只建立一個8度即可),音符長度不能少于60個,連續播放3遍后停止。
選題六:鍵盤電子樂器
要求:利用并行接口8155作為鍵盤接口,設計一個具有2個八度音階的鍵盤樂器,音階鍵不少于16個,采用掃描方式管理鍵盤,音域范圍自行定義。
選題七:電子時鐘設計
要求:利用8253定時器設計一個具有時、分、秒顯示的電子時鐘,并定義一個啟動鍵,當按下該
鍵時時鐘從當前設定值(可在顯示緩沖區中予置)開始走時。
選題八:壓力測控系統的設計(一)要求:對壓力傳感器的信號進行檢測并在LED數碼顯示器上顯示壓力值,當壓力低于30pa時,黃燈閃爍,閃爍周期為1秒。當壓力高于150pa時,紅燈閃爍。LED的顯示內容為P=XXX。X為測試值。
選題九:可變輸出頻率方波發生器設計
要求:設計一個輸出方波頻率可利用按鍵改變的方波信號發生器(可以使用D/A也可以直接使用8253產生方波),利用鍵盤選擇方波發生器的輸出頻率并驅動喇叭。輸出頻率=鍵號*100HZ
選題十:直流電機速度控制器設計
要求:利用D/A轉換器和按鍵設計一個直流電動機轉速控制器。按鍵定義如下:0 停止,1-1/10轉速,2-2/10轉速?? 9 最高速(D/A輸出滿量程),鍵號每加1,D/A輸出增加0.5V
選題十一:可任意啟動/停止的電子秒表設計
要求:6位LED數碼顯示,計時單位為1/100秒。利用功能鍵進行啟/停控制。其功能為:上電后計時器清0,當第一次(或奇數次)按下啟/停鍵時開始計數。第2次(或偶數次)按下該鍵時停止計時,再一次按啟/停鍵時清零后重新開始計時??
選題十二:溫度測試系統設計
要求:利用溫度傳感器和ADC0809設計一個溫度測試系統,將測試結果(十進制)在LED上顯示出來,并定義一個保持按鍵,當按下該鍵時,將當前測試值保持不變(按鍵不動作時為正常測量顯示)。溫度顯示格式為:XXX ℃。(可以每隔0.3秒測量一次)
選題十三:壓力測試系統設計(二)要求:利用壓力傳感器和ADC0809設計一個壓力測試系統,并將測試結果(十進制)在LED上顯示出來,并定義一個測試最大值按鍵,當按下該鍵時,可進行最大值測量(按鍵不動作時為正常測量顯示),即:只有當當前測量值大于上次測量值時才刷新顯示,顯示格式為:P=XXX。可以每隔0.3秒測量一次。
選題十四:簡易計算器系統設計
要求:設計一個可以進行2位數四則運算的計算器。
1、用按鍵輸入數和運算符號;
2、用LED顯示運算過程和結果(十進制數);
3、可以表示出當前的運算類型;
4、具有清零和復位功能;
5、具有連續運算功能。
選題十五:交通燈控制系統
要求:按照時間控制原則,利用并行接口和定時器,設計一套十字路口的交通燈管理系統,通行時間(或禁止時間)30秒,準備時間3秒,在準備時間里黃燈閃爍3次,閃爍頻率為0.5秒,周而復始。可利用8255、8253等接口電路。
選題十六:計件系統設計
要求:利用8253計數,對外界脈沖技術,并將計數值在數碼管上顯示,可通過鍵盤控制重新計數。
四、設計任務及要求
1、接口設計:根據所選題目和所用的接口電路芯片設計出完整的接口電路,并在實驗系統上完成電路的連接和調試通過。
2、程序設計:要求畫出程序框圖,設計出全部程序并給出程序設計說明和程序注釋。
3、課程設計報告:(1)設計題目;
(2)系統的主要功能、作用以及主要技術性能指標;
(3)總體設計方案、工作和組成原理(框圖)或設計說明、采用的技術路線等;
(4)系統設計:接口電路設計,程序設計(程序框圖和程序清單及注釋)其他有關的理論分析和計算;
(5)設計總結:對整個設計工作過程進行歸納和綜合,對設計中所存在的問題和不足進行分析和總結,提出解決的方法、措施、建議和對這次設計實踐的認識、收獲和提高。
第三篇:微機原理課程設計
匯編程序設計題
題目一 密碼設置模擬
該程序可以進行密碼的設置(第一次)和修改(已設置密碼)。要求輸入的密碼不顯示。題目二 計算器
編輯程序可以實現鍵盤輸入數據與運算符,進行“加減乘除”運算。(提示:先輸入數據與運算符,保存,再按照運算符選擇對應的子程序;輸入的數據是用字符表示的,需要轉換;要有良好的界面(提示信息))
題目三工作周期判斷程序
輸入年、月、日,能夠判斷當日的星期數,并進行輸出。(以校歷為依照,可設某日為起點,根據相差的天數與7的關系進行判斷)。
題目四 PC揚聲器發聲
利用8253驅動PC機內揚聲器發聲,PC結構參考相關文獻資料。題目五 樂曲播放
利用PC機內8253實現樂曲播放。題目六 按鍵選擇樂曲播放
利用按鍵選擇播放不同樂曲。(★)(自制交互界面實現按鍵選擇★★)題目七 實現閃爍文字效果 編程提示:
提示信息于屏幕中央顯示出來,用光標定位子程序將光標定位于80*25顯示方式的第8行第10列,然后輸出一條提示信息,接著調用屏幕上卷子程序上卷一行,接著再定位光標,然后顯示下一條提示信息,直到所有信息顯示完畢,對于閃爍的信息,同樣是定位光標,然后用BIOS功能調用13H來顯示閃爍信息,當BL的高位為1時,字符閃爍。mov ah,00h mov al,03h ;設置顯示方式為80*25,16色文本 int 10h 題目八
數字秒表
設計可以顯示1~60秒的無存儲功能的秒表,最小單位為毫秒。題目九
倒計時牌
設計日期倒計時牌界面,可輸入設定日期,顯示當前日期的統計天數,如奧運計時牌。題目十
數字時鐘
編程實現時鐘功能,按秒刷新,要求定位在屏幕右上角。
硬件設計題
總體要求:根據題意自行設計電路,編寫相關匯編程序。題目一
交通燈控制系統
1.利用8253定時,8259中斷及8255設計電路,實現十字路口交通燈模擬控制。2.實現能自動控制和手動應急控制。
3.實現能隨時可以調整自動模式的綠燈和紅燈時間。題目二 實現特定功能的鍵盤及LED顯示
了解鍵盤及LED顯示接口原理,設計實驗電路圖完成以下功能: 1.按1鍵顯示年; 2.按2鍵顯示月日; 3.按3鍵顯示GOOD ;
4.按4鍵數碼管由左到右字符“0”循環顯示。5.自行設計特效顯示功能。題目三
LED七段數碼管數字鐘
設計并完成LED七段數碼管數字鐘電路,數字鐘顯示格式為:HH:MM:SS。要求:具有通過鍵盤能夠調整時、分、秒的功能。題目四
閃爍燈
利用8253和LED燈相結合實現閃爍燈效果。題目五
電子鐘
利用8253定時器設計一個電子鐘,并定義一個啟動鍵。當按下該鍵時電子時鐘從當前設定值開始走時。
附錄:實驗箱功能模塊電路圖
第四篇:2008微機原理課程設計
《微機原理及接口》課程設計任務書
適用專業:05電子信息工程 通信工程
一、本次課程設計的目的和意義
學習和掌握計算機中常用接口電路的應用和設計技術,充分認識理論知識對應用技術的指導性作用,進一步加強理論知識與應用相結合的實踐和鍛煉。通過這次設計實踐能夠進一步加深對專業知識和理論知識學習的認識和理解,使自己的設計水平和對所學的知識的應用能力以及分析問題解決問題的能力得到全面提高。
二、設計時間和設計題目
(一)、設計時間:一周(二)、設計題目:可從以下題目中任選一題,原則上每班每題不超過5人。每題的設計要求:a、設計出完整的接口電路。B、編寫出全部程序。
1、交通燈控制系統:按照時間控制原則,利用并行接口和定時器,采用時間中斷方式設計一套十字路口的交通燈管理系統,通行時間(或禁止時間)30秒,準備時間3秒,在準備時間里黃燈閃爍3次,閃爍頻率為0.5秒,周而復始。可利用8255、8253、8259等接口電路。
2、溫度測控系統的設計:利用ADC0809采用中斷式設計一個溫度測控系統,在LED數碼顯示器上顯示溫度值,并對溫度進行測試和控制,當檢測溫度到達溫度上限60℃時開風扇(即開啟電動機),低于下限30℃時關閉風扇,LED上的顯示內容為:XX ℃(采用十進制顯示)。
3、函數發生器1的設計:利用D/A設計一個函數發生器,并利用按鍵選擇輸出波形,能分別產生三角波、階梯波(每階梯1V)、正向鋸齒波、負向鋸齒波和方波。并利用按鍵(自行定義)進行輸出波形選擇,同時將當前輸出波形代號顯示在LED上(左邊位):0為方波、1為正向鋸齒波、2為負向鋸齒波、3 為三角波、4為階梯波。
4、函數發生器2的設計:設計一個三角波發生器,可利用鍵盤改變其輸出波形的幅值。例如,可利用1---5這5個數字鍵改變其輸出波形的幅值,當按下1---5數字鍵時使D/A輸出幅值從1V增加到5V。
5、電子音樂播放器:設計要求:利用8253作為音階頻率發生器,應先對一段音樂進行編碼后存入音符表,并建立好音階表(只建立一個8度即可,音階表見附錄),音符長度不能少于60個,連續播放3遍后停止。
6、鍵盤電子樂器:利用并行接口8255作為鍵盤接口,設計一個具有2個八度音階的鍵盤樂器,音階鍵不少于16個,采用掃描方式管理鍵盤,音域范圍自行定義。
7、電子時鐘設計:利用8253定時器設計一個具有時、分、秒顯示的電子時鐘,并定義一個啟動鍵,當按下該鍵時電子時鐘從當前設定值開始走時。
8、壓力測控系統的設計:對壓力傳感器的信號進行檢測并在LED數碼顯示器上顯示壓力值,當壓力低于30pa時,黃燈閃爍,閃爍周期為1秒。當壓力高于150pa時,紅燈閃爍。LED的顯示內容為P=XXX為測試值。
9、可變輸出頻率方波發生器設計:設計一個輸出方波頻率可利用按鍵改變的方波信號發生器(可以使用D/A也可以直接使用8253產生方波),利用鍵盤選擇方波發生器的輸出頻率并驅動喇叭。輸出頻率=鍵號*100HZ。
10、直流電機速度控制器設計:利用按鍵控制直流電動機的轉速。按鍵定義如下:0 停止,1 1/10轉速,2 2/10轉速…… 9 最高速(D/A輸出滿量程),鍵號每加1,D/A輸出增加0.5V。
11、可任意啟動/停止的電子秒表設計:6位LED數碼顯示,計時單位為1/100秒。利用功能鍵進行啟/停控制。其功能為:上電后計時器清0,當第一次(或奇數次)按下啟/停鍵時開始計數。第2次(或偶數次)按下該鍵時停止計時,再一次按啟/停鍵時清零后重新開始計時……。12簡易計算器系統設計:設計一個可以進行2位數四則運算的計算器,要求:1,用按鍵輸入數和運算符號;2,用LED顯示運算過程和結果(十進制數);3,可以表示出當前的運算類型;4,具有清零和復位功能;5,具有連續運算功能。
13點陣LED顯示系統設計:設計一個點陣式LED顯示系統。要求:1,每次顯示一個文字和圖形;2,每隔一固定時間更變需要顯示的文字或圖形;3,可以現實循環顯示幾個文字或圖形;4,可以根據按鍵來控制顯示的文字的替換時間的長短;5,具有復位功能。
三、設計任務及要求:
1、接口電路設計:根據所選題目和所用的接口電路芯片設計出完整的接口電路,并進行電路連接和調試。
2、程序設計:要求畫出程序框圖,設計出全部程序并給出程序設計說明和程序注釋。
3、設計文件:a、設計圖紙(接口電路原理圖);b、使用或操作說明;c、設計報告:字數約3000~4000字,內容包括:(1)設計題目;(2)系統的主要功能作用及主要技術性能和指標;(3)總體設計方案及組成原理(框圖)或設計說明及技術路線;(4)系統設計:接口電路設計,程序設計(程序框圖和程序清單及注釋)其他有關的理論分析和計算;(5)設計總結:對設計中所存在的問題和不足進行分析和總結,提出解決的方法、措施、建議和對這次設計實踐的認識、收獲和提高。
4、設計要求:
不允許抄襲和復印,否則取消設計成績。
四、設計時間和成績分配:
(一)設計時間:一周(二)設計成績分配:
1、接口電路設計占30%(包括電路圖設計、電路連接和調試通過)。
2、設計文件占30%
3、答辯占40%
第五篇:微機原理課程設計
接口技術課程設計
一、設計內容
設計一個投票統計器,完成投票、計票統計和票數顯示等功能。
二、設計原理及方案
在8086最小工作模式下,連接一塊8255A芯片。在 8255A的C端口連接8個開關,開關按下表示支持,燈亮,開關不按便是反對,燈不亮,從8255A的C端口輸入投票結果,經8086運算統計出結果;在 8255A的A端口連接一塊7段LED數碼管,將輸出結果通過數碼管顯示出來。電路圖:
接口技術課程設計
程序代碼: A_PROT B_PROT C_PROT CT_PROT DATA DATA CODE
MOV DX,C_PROT IN AL,DX EQU EQU EQU EQU 200H 202H 204H 206H
;可通過計算獲得,連接的是IO1 SEGMENT ENDS SEGMENT MOV AX,DATA MOV DX,AX MOV AL,10001001B MOV DX,CT_PROT OUT DX,AL
;控制字寫入
;A端口輸出,C端口輸入 TAB1 DB 7FH,07H,7DH,6DH,66H,4FH,5BH,06H,3FH ASSUME CS:CODE,DS:DATA
START: MOV DX,C_PROT MOV AL,0 OUT DX,AL
;C端口清零
AGAIN: TJ: XOR AH,AH
MOV CX,8 LOOP1: SAL AL,1
ADC AH,0
LOOP LOOP1
MOV AL,AH
PUSH BX
LEA BX,TAB1
XLAT
MOV DX,A_PROT
OUT DX,AL
PUSH CX
MOV CX,2801 WAIT1: LOOP WAIT1
POP CX
JMP AGAIN
MOV AH,4CH INT 21H CODE ENDS END START
接口技術課程設計
;統計1個數
;進位加CF,以統計出C端口中1的個數
;延時10ms
接口技術課程設計
三、運行結果
程序結果圖:
接口技術課程設計
四、設計總結與體會
為期一周的微機原理課程實踐終于結束了,回過頭來,感慨萬千。過了一個多月,書本上的好些知識已然忘卻,剛開始拿到課題時,看到一大堆傳說中的神器,霎時凌亂了,選來選去,從僅剩的課題中挑了“投票統計器”,上網搜索了一下,大體上把設計的方向搞清了,接下來,便是開始設計了。
畫模擬圖對于我們來說,還是比較困難的,特別是8086那一塊兒,大家參考網上的資料,反復討論,著實花了不少時間。接下來的畫圖連線就比較簡單了,為了節省時間,在做模擬圖的同時,其他兩個人便開始編寫程序了。將設計流程圖簡略寫下來,對照流程圖,分塊兒編寫程序,顯得很有條理,簡單輕松些。
就這樣,三次課之后,設計的圖和程序都好了,只剩下調試程序,查看模擬結果了。這是檢錯和糾錯的過程,輕松但也不輕松,因為那么多東西,如果看不仔細了,你就找不到錯誤,也就沒法兒解決問題了,費事費力還一無所獲,這是最傷腦筋的事情。還好,運氣不錯,只是程序出現了小小的問題,改好之后,得到了很滿意的結果。
最后的驗收,是對書本與實踐知識的融匯總結,本以為毫無問題的我們,沒想到被程序中的一個問題給秒殺了,大家四處找資料,和別的組的同學討論,反復演算了半天,終于會了。當然,就算是會了,我們也只是懂得了微機原理中的一點皮毛而已,學的扎實很重要,因為這樣才能把理論知識運用到實踐中去,不斷地提高自己。
五、參考文獻 1.周明德.微型計算機系統原理及應用.北京:清華大學出版社
2.張彌左,王兆月,邢立軍等.微型計算機接口技術.北京:機械工業出版社 3.戴梅萼,史嘉權.微型計算機技術及應用.北京:清華大學出版社 4.沈美明,溫冬嬋.IBM-PC匯編語言程序設計.北京:清華大學出版社