工業(yè)順序控制及顯示設計 單片機課程設計報告

上傳人:痛*** 文檔編號:142007213 上傳時間:2022-08-24 格式:DOC 頁數:32 大?。?86.50KB
收藏 版權申訴 舉報 下載
工業(yè)順序控制及顯示設計 單片機課程設計報告_第1頁
第1頁 / 共32頁
工業(yè)順序控制及顯示設計 單片機課程設計報告_第2頁
第2頁 / 共32頁
工業(yè)順序控制及顯示設計 單片機課程設計報告_第3頁
第3頁 / 共32頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《工業(yè)順序控制及顯示設計 單片機課程設計報告》由會員分享,可在線閱讀,更多相關《工業(yè)順序控制及顯示設計 單片機課程設計報告(32頁珍藏版)》請在裝配圖網上搜索。

1、 《單片機及控制系統(tǒng)》 課程設計報告 題 目: 工業(yè)順序控制及顯示設計 院 (系): 機電與自動化學院 專業(yè)班級: 電氣工程及其自動化11XX班 學生姓名: 科 比 學 號: 20111131*** 指導教師: 梅秋燕 2014年06月15日至2014年06月28日 華中科技大學武昌分校 《單片機及控制系統(tǒng)》課程設計

2、任務書 一、設計題目 工業(yè)順序控制及顯示設計 二、設計主要內容 (1)掌握51單片機在工業(yè)順序控制中的應用,學習單片機的控制程序的設計及中斷程序的編程應用。 (2)用七只發(fā)光二極模擬工業(yè)控制中的7道工序,高電平點亮,每道工序用定時器進行工序間的順序轉換。 (3)與此同時運用動態(tài)掃描和定時器1在數碼管上顯示出從765432開始以1/10秒的速度遞減至765398,并保持顯示此數。 (4)按規(guī)范撰寫課程設計說明書,包括硬件和軟件設計。 三、原始資料 (1) 單片機接口 8051 P1.0-P1.6控制工業(yè)生產的七道工序,現模擬控制七只發(fā)光二極管的點亮,高電平點亮。設定每

3、道工序時間轉換為延時, ?P3.4為開工啟動開關,高電平啟動。P3.3為外部故障輸入模擬開關,低電平報警,P1.7為報警聲音輸出。設定7道工序只有一位輸出。? (2) LCD顯示電路 LCD顯示電路 LCD顯示電路,由U33的74HC245驅動,以顯示電平狀態(tài)。高電平為“1”狀態(tài),點亮發(fā)光二極管。 (3) 主程序和中斷程序流程圖 (4)數碼管顯示電路 顯示電路結構圖 八段數碼管顯示電路由8155的PB0、PB1經74LS164“串轉并”后輸出得到。6位位碼由8155 的PA0口輸出,經uA2003反向驅動后,選

4、擇相應顯示位。74LS164是串行輸入并行輸出轉換電路,串行輸入的數據位由8155的PB0控制,時鐘位由8155的PB1控制輸出。 寫程序時,只要向數據位地址輸出數據,然后向時鐘位地址輸出一高一低兩個電平就可以將數據位置到74LS164中,并且實現移位。向顯示位選通地址輸出高電平就可以點亮相應的顯示位。 數碼管數字代碼表 四、要求的設計成果 (1)根據控制要求,進行控制系統(tǒng)硬件電路設計。 (2)控制及顯示程序設計。 (3)利用實驗室設備進行模擬調試。 (4)編寫《單片機及控制系統(tǒng)》報告,課程設計報告內容包括: ① 設計方案、課程設計過程和設計思想、方法

5、、原理。 ② 繪制系統(tǒng)的原理圖(可用繪圖軟件也可手繪)。 ③ 單片機控制程序,有程序說明。 ④ 參考資料、參考書及參考手冊。 ⑤其他需要說明的問題,例如操作說明、程序的調試過程、遇到的問題及解決方法、對課程設計的認識和建議等。 ⑥《單片機及控制系統(tǒng)》報告可以手寫,也可以用電腦編排打印,報告格式按照《華中科技大學武昌分校課程設計管理辦法》執(zhí)行。課程設計報告要求內容正確完整,圖表清晰,敘述簡明,語句通順,字數不得少于2000漢字。 ⑦課程設計報告按封面、任務書、設計說明書、圖紙、實物照片貼頁(實物照片貼在A4復印紙上)、成績評定表的順序裝訂。 五、進程安排 內容 時間 下達課

6、程設計任務書。講解課程設計的任務與要求、進度安排、指導時間、注意事項、提供參考資料。學生到實驗室熟悉設備。 1天 搜集資料、方案論證、初步設計。 1天 系統(tǒng)設計、繪制系統(tǒng)控制原理圖及軟件編程。 2天 利用實驗室設備完成控制系統(tǒng)的硬件接線工作,運行控制程序,進行運行調試。 3天 方案優(yōu)化、總結完善、整理資料、撰寫課程設計報告 2天 答辯、課程設計總結。 1天 共計 10天(2周) 六、主要參考資料 [1] 李廣弟.單片機基礎.北京:北京航空航天大學,2009. [2] 李群芳.微型計算機與接口技術.北京:電子工業(yè)出版社,2012. [3] 單片機綜合仿真實驗

7、系統(tǒng)Keil C實驗指導書.深圳:深圳市雷邁特科技有限公司,2012. [4] 沈慶陽.8051單片機實踐與應用.機電一體化系統(tǒng)設計.北京:化學工業(yè)出版社,2009. [5] 朱定華.單片微機原理與應用.北京:清華大學出版社,2006. 指導教師(簽名): 20 年 月 日 目 錄 1.課程設計任務及要求 2 1.1設計目的 2 1.2控制要求

8、 2 1.3系統(tǒng)總體方案設計 2 2.控制系統(tǒng)原理分析 4 2.1硬件部分分析 4 2.1.1 89C51單片機引腳圖及引腳功能介紹 4 2.1.2顯示系統(tǒng)工作原理 5 2.2軟件設計流程圖 8 3.程序分析 10 3.1順序控制程序 10 3.2數碼管顯示程序 11 4.運行調試 14 4.1軟件調試過程 14 4.2安裝調試及方法 16 4.3 結果分析 17 5.總結 18 6.參考文獻 19 7.附錄 20 附錄1 程序清單 20 附錄2實物照片(現場接線及調試顯示照片) 24 1.課程設計任務及要求

9、 1.1設計目的 (1)加強對單片機和C語言的認識,充分掌握和理解設計各部分 的工作原理、設計過程、選擇芯片器件、模塊化編程等多項知識。? (2)用單片機模擬實現具體應用,使個人設計能夠真正使用。? (3)把理論知識與實踐相結合,充分發(fā)揮個人能力,并在實踐中鍛煉。? (4)提高利用已學知識分析和解決問題的能力。? (5)提高實踐動手能力。 1.2控制要求 (1)用七只發(fā)光二極模擬工業(yè)控制中的7道工序,高電平點亮,每道工序用定時器進行工序間的順序轉換。 (2)與此同時運用動態(tài)掃描和定時器1在數碼管上顯示出從765432開始以1/10秒的速度遞減至765398,并保持顯示此數

10、。 1.3系統(tǒng)總體方案設計 設計主要內容: (1)掌握51單片機在工業(yè)順序控制中的應用,學習單片機的控制程序的設計及中斷程序的編程應用。 (2)用七只發(fā)光二極模擬工業(yè)控制中的7道工序,高電平點亮,每道工序用定時器進行工序間的順序轉換。 (3)與此同時運用動態(tài)掃描和定時器1在數碼管上顯示出從765432開始以1/10秒的速度遞減至765398,并保持顯示此數。 (4)按規(guī)范撰寫課程設計說明書,包括硬件和軟件設計。(1)根據控制要求,進行控制系統(tǒng)硬件電路設計。 (2)控制及顯示程序設計。 (3)利用實驗室設備進行模擬調試。

11、 (4)編寫《單片機原理及應用課程設計》報告,課程設計報告內容包括: 設計主要流程: (1)設計方案、課程設計過程和設計思想、方法、原理。 (2)繪制系統(tǒng)的原理圖(可用繪圖軟件也可手繪)。 (3)單片機控制程序,有程序說明。 (4)參考資料、參考書及參考手冊。 (5)其他需要說明的問題,例如操作說明、程序的調試過程、遇到的問題及解決方法、對課程設計的認識和建議等。 (6)《單片機原理及應用課程設計》報告可以手寫,也可以用電腦編排打印,報告格式按照《華中科技大學武昌分校課程設計管理辦法》執(zhí)行。課程設計報告要求內容正確完整,圖表清晰

12、,敘述簡明,語句通順,字數不得少于2000漢字。 (7)課程設計報告按封面、任務書、設計說明書、圖紙、實物照片貼頁(實物照片貼在A4復印紙上)、成績評定表的順序裝訂。 設計主要流程圖如下圖。 圖1-1 課程設計總流 9 2.控制系統(tǒng)原理分析 2.1硬件部分分析 2.1.1 89C51單片機引腳圖及引腳功能介紹 本次實習的中斷功能就是基于89C51單片機的基礎上實現的,首先來簡單認識一下,它的引腳如圖2-1所示: 圖2-1 89C51引腳示意圖 單片機89C51的39個引腳大致可分為4類:電源、時鐘、控制和I/O引腳。 1.電源: (1)

13、VCC:芯片電源,接+5V; (2)VSS:接地端; 2.時鐘: XTAL1、XTAL2 :晶體振蕩電路反相輸入端和輸出端。 3.控制線:控制線共有4根, (1)ALE/PROG:地址鎖存允許/片內EPROM編程脈沖 ALE功能:用來鎖存P0口送出的低8位地址 PROG功能:片內有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。 (2) PSEN:外ROM讀選通信號。 (3)RST/VPD:復位/備用電源。 RST(Reset)功能:復位信號輸入端。 VPD功能:在Vcc掉電情況下,接備用電源。 (4)EA/Vpp:內外ROM選擇/片內EPROM編程電源。

14、 EA功能:內外ROM選擇端。 Vpp功能:片內有EPROM的芯片,在EPROM編程期間,施加編程電源Vpp。 4.I/O線 89C51共有4個8位并行I/O端口:P0、P1、P2、P3口,共32個引腳。 P3口還具有第二功能,用于特殊信號輸入輸出和控制信號(屬控制總線)。 2.1.2顯示系統(tǒng)工作原理 LED顯示電路: 圖2-2 LCD顯示電路 LCD顯示電路,由U33的74HC245驅動,以顯示電平狀態(tài)。高電平為“1”狀態(tài),點亮發(fā)光二極管。對于74HC245,實物圖如下 圖2-3

15、74HC24實物圖 圖2-4 74LS245結構圖 引腳定義: 第1腳DIR,為輸入輸出端口轉換用,DIR=“1”高電平時信號由“A”端輸入“B”端輸出,DIR=“0”低電平時信號由“B”端輸入“A”端輸出。 第2~9腳“A”信號輸入輸出端,A0=B0,A7=B7,A0與B0是一組,如果DIR=“1”O(jiān)E=“0”則A1輸入B1輸出,其它類同。如果DIR=“0”O(jiān)E=“0”則B1輸入A1輸出,其它類同。 第11~18腳“B”信號輸入輸出端,功能與“A”端一樣,不再描述。 第19腳OE,若該腳為“1”A/B端的信號將不導通,只有為“0

16、”時A/B端才被啟用,該腳也就是起到開關的作用。 第10腳GND,電源地。 第20腳VCC,電源正極。 圖2-5 顯示電路結構圖 八段數碼管顯示電路由8155的PB0、PB1經74LS164“串轉并”后輸出得到。6位位碼由8155 的PA0口輸出,經uA2003反向驅動后,選擇相應顯示位。74LS164是串行輸入并行輸出轉換電路,串行輸入的數據位由8155的PB0控制,時鐘位由8155的PB1控制輸出。 寫程序時,只要向數據位地址輸出數據,然后向時鐘位地址輸出一高一低兩個電平就可以將數據位置到74LS16

17、4中,并且實現移位。向顯示位選通地址輸出高電平就可以點亮相應的顯示位。 圖2-6 74LS164引腳結構圖 引腳信息: 符號 引腳 說明 DSA 1 數據輸入 DSB 2 數據輸入 Q0~Q3 3~6 輸出 GND 7 地 (0 V) CP 8 時鐘輸入(低電平到高電平邊沿觸發(fā)) /M/R 9 中央復位輸入(低電平有效) Q4~Q7 10~13 輸出 VCC 14 正電源 功能概述: 74LS164是8位邊沿觸發(fā)式移位寄存器,串行輸入數據,然后并行輸出

18、。數據通過兩個輸入端(DSA 或 DSB)之一串行輸入;任一輸入端可以用作高電平使能端,控制另一輸入端的數據輸入。兩個輸入端或者連接在一起,或者把不用的輸入端接高電平,一定不要懸空。時鐘 (CP) 每次由低變高時,數據右移一位,輸入到 Q0, Q0 是兩個數據輸入端(DSA和 DSB)的邏輯與,它將上升時鐘沿之前保持一個建立時間的長度。主復位 (MR) 輸入端上的一個低電平將使其它所有輸入端都無效,非同步地清除寄存器,強制所有的輸出為低電平。 字段碼: 圖2-7 數碼管數字代碼表 2.2軟件設計流程圖 圖

19、2-8 設計流程圖 P1口的P1.0~P1.6接七只發(fā)光二極管,P1.7接報警器,P3.4接開工啟動開關,P3.2接外部故障輸入模擬開關。 主程序流程圖:當程序啟動,開啟中斷,并使P1、P3口初始化,當給start開始信號即P3.4得電時,運行主程序中使發(fā)光二極管得電的程序,從L0至L7,按順序每次只點亮一只二極管,并延時一段時間,然后點亮下一只二極管,當第七只二極管得電延時完成后,程序跳轉到工序1開始的地方,按此規(guī)律從工序1到工序7依次循環(huán)進行下去。 中斷服務子程序:當外部故障輸入模擬開關即P3.3得電時,運行中斷子程序,先使P1=0x00即關閉輸出保護現場,spe

20、ak=1使報警器報警。然后判斷故障情況,如果故障清除,則恢復現場跳出中斷子程序回到主程序;如果故障沒有清除,則報警器繼續(xù)報警直至故障清除。 3.程序分析 3.1順序控制程序 #include "reg51.h" #define WORD unsigned int #define BYTE unsigned char sbit Speak=P1^7; P1.7對應報警開關,用P1.7對應的得電信號來改變是否故障 sbit Start = P3^4; 定義P3口的P3.4為啟動開關 sbi

21、t test = P1^0; /*定義變量,報警P1.7;啟動P3.4;外部故障開關P3.3*/ void delay(WORD time) { WORD i; for(i=0;i<=time;i++); } /*延時中斷程序*/ void ErroBl (void) interrupt 2 using 1 { P1=0X00; { Speak=1; delay(200); Speak=0; delay(100); } }

22、 /*外部故障中斷報警程序,循環(huán)報警*/ void main() 主函數 { IE=0x84; IP=0x04; PSW=0x00; /*輔助繼電器賦值,允許外部中斷;INT1(------)優(yōu)先級別最高*/ while(1) 循環(huán) { if(Start==1) /*啟動信號*/ { P1=0X01; /*工序一*/給P1口賦值為00000001,即工序1對應的燈得電,燈亮。

23、 delay(6000); /*工序一延時*/采用延時程序,是得電信號延時,即燈亮延時6000后滅。 其他燈的亮滅只是對賦值進行更改,來達到讓7個燈互相交替亮滅。 程序分析說明: P3.4為開工啟動開關,高電平啟動。在主程序中P1 = 0xff表示高電平有效啟動;IT0 = 0;表示Enable EX0,外部中斷INT0低電平有效;EX0 = 1;表示中斷標志位為1時,允許INT0中斷;EA = 1;表示中斷總控制開關,為1時CPU允許中斷;在while語句中,P1 = 0xfe;表示從右第一個燈亮;Delay(1000);表示延時1S;往后以此類

24、推。但是在Delay(1000);表示進入延時函數調用。其中while (cnt-- !=0)表示從1000往下減1。 3.2數碼管顯示程序 顯示設計程序是在八段數碼顯示設計程序的基礎上加以修改得到的。按要求高三位是固定不變的,只需要變化低三位。在低三位遞減到指定數據時,保持固定不變。 #include #define LEDLen 6 #define mode 0x03; #define CAddr XBYTE[0xe100]/* 控制字地址 */ #define OUTBIT XBYTE[0xe101]/* 位控制口 */ #define CLK1

25、64 XBYTE[0xe102]/* 段控制口(接164時鐘位) */ #define DAT164 XBYTE[0xe102] /* 段控制口(接164數據位) */ #define IN XBYTE[0xe103] /* 鍵盤讀入口 */ unsigned char LEDBuf[LEDLen]; /* 顯示緩沖 */ code unsigned char LEDMAP[] = { /* 八段管顯示碼 */ 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x3

26、9, 0x5e, 0x79, 0x71 }; void Delay(unsigned char CNT) /*延時中斷程序*/ { unsigned char i; while (CNT-- !=0) for (i=100; i !=0; i--); } 如何保證最后停在7654398,在前面建立一個無限循環(huán)程序,當滿足一定條件是跳入該程序就能保證顯示數碼管把持不變,下面是該程序。 void display() /*按要求最后顯示765398,并用無限循環(huán)保持不變*/ { while(1) { unsigned ch

27、ar j; LEDBuf[0] = LEDMAP[(7) & 0x0f]; /*六個八段數碼管依次賦值*/ LEDBuf[1] = LEDMAP[(6) & 0x0f]; LEDBuf[2] = LEDMAP[(5) & 0x0f]; LEDBuf[3] = LEDMAP[(3) & 0x0f]; LEDBuf[4] = LEDMAP[(9) & 0x0f]; LEDBuf[5] = LEDMAP[(8) & 0x0f]; for(j=0; j<30; j++) /*延時*/ Display

28、LED(); /*顯示上面賦值數據*/ } } 如何讓數碼管由765432逐漸遞減到7654398,下面是主函數的編寫,循環(huán)的編寫,來滿足要求。 void main() 主函數 { unsigned char i=2; unsigned char m; unsigned char j; unsigned char n=3; unsigned char k=4; /*定義變量*/ CAddr = mode; while(1) { LEDBu

29、f[0] = LEDMAP[(m+7) & 0x0f]; /*八段數碼管依次賦值*/ LEDBuf[1] = LEDMAP[(m+6) & 0x0f]; LEDBuf[2] = LEDMAP[(m+5) & 0x0f]; LEDBuf[3] = LEDMAP[(k) & 0x0f]; i--; /*個位逐漸減1*/ LEDBuf[4] = LEDMAP[(n) & 0x0f]; /*十位八段數碼管賦值*/ if(i==0)

30、 /*當個位減小為0時,十位減1。同時給個{ 位賦值9*/ n--; i=9; } LEDBuf[5] = LEDMAP[(i) & 0x0f]; if(n==0&&i==1) { /*當十位個位同時減小到0時,百位減1; k--; 同時給個位和十位賦值9*/ i=9; n=9; } for(j=0; j<30; j++)

31、 DisplayLED(); /* 顯示該次循環(huán)所得數據 */ if(k==3&&i==8) /*當減小到765398時,進去子程序display無限循環(huán)顯示 display(); 765398*/ } } 4.運行調試 4.1軟件調試過程 點開軟件,進入程序編譯系統(tǒng)。點擊菜單欄“項目”,選擇下拉框里面的“新項目”。如下圖4-1所示。 圖 4-1 新建項目 新建項目是要選擇“Atmel”下拉

32、框中的“AT89C51”然后點擊確定。如下圖 圖4-2 目標選擇設備 新建項目之后,需要點擊“新建一個文件”在項目目錄下新建程序編譯文件。之后點擊保存,需要注意的是保存時文檔名稱后面要加“.c”。如下圖。 圖4-3 新建程序編譯文件 文件建好之后,就可以開始編寫程序了。編寫程序時注意減少不必要的編寫錯誤,注意語句后面的分號是否需要;每個程序段的前大括號和后大括號相對應。這樣在編譯過程中能減少很多工作。 添加文件到組,編寫程序完成后。右鍵單擊源代碼

33、組1。選擇添加文件到組“源代碼組1”,出現如圖所示對話框,選擇剛建立的編譯程序文件到源代碼組1,完成添加。 圖 4-4 編譯重建目標文 編寫完程序添加到組之后開始調試,首先檢查程序是否有錯誤,單擊“編譯當前文件”,如果輸出窗口中顯示沒有錯誤,那么接著單擊“重建所有目標文件”;如果編譯過程中出現錯誤,那么需要按照輸出窗口中提示的錯誤改正之后再重建文件。 圖 4-5 設置調試接口 重建目標文件之后需要先設置好通訊借口,計算機需要與硬件設備向通訊,需要設置合理的通訊方式。本調試中使用(U):Keil Mon

34、itor-51 driver,保護接口選擇Com3,波特率選用38400,其他默認。 圖 4-6 啟動調試 通訊方式選擇后啟動調試,單擊菜單欄中“啟動/停止調試(D)”開始調試。然后可選擇運行到指定位置來檢驗程序是否能正常運行。一直檢查無誤后,可直接點擊“運行”觀察實驗現象。 4.2安裝調試及方法 (1)P3.4連K1,P3.3連K2,P1.0—P1.6分別連到L1—L7,P1.7連SIN(電子音響輸入端)。 (2)K1開關撥在上面,K2撥在上面。 (3)用連續(xù)方式從起始地址0580H開始運行程序(輸入0580后按EXEC鍵),此

35、時應在等待開工狀態(tài)。 (4)K1撥至下面(顯低電平),各道工序應正常運行。 (5)K2撥至下面(低電平),應有聲音報警(人為設置故障)。 (6)K2撥至上面(高電平),即排除故障,程序應從剛才報警的那道工序繼續(xù)執(zhí)行。 4.3 結果分析 實驗中延時的時間的計算為DELAY1t=20*125*200*12*2/12000000=1S;?分別代表的含義為:20、125、200是循環(huán)的次數相乘,12代表一個指令周期為12個機器周期,2代表該指令周期為雙指令周期,12000000表示晶振的頻率,也是機器周期。? 在實驗中可以觀察到VL1~VL7依次按照1~7秒間隔循環(huán)亮起。在故障出現時能

36、夠保護現場,待故障消除后從現場又開始循環(huán)。 數碼管上顯示出從765432開始以1/10秒的速度遞減至765398,并保持顯示此數。 5.總結 通過本課程設計,我們大家對單片機的工作原理以及運用要求有了更進一步的了解,對我們的動手能力,編程能力都有很大的幫助。這次課程設計的控制要求有兩個,一個是用七只發(fā)光二極管模擬工業(yè)控制中的7道工序,高電平點亮,每道工序用定時器進行工序間的順序轉換。另一個是在第一個的基礎上運用動態(tài)掃描和定時器1在數碼管上顯示出從765432開始以1/10秒的速度遞減至765398,并保持顯示此數。我們首先收集

37、了大量的資料,查找有關集成芯片和器件的文獻,只有對各種元器件有了充分的了解之后我們在實際的操作才會更快。 在完成第一個發(fā)光二極管的控制要求時,程序全部正確在走,硬件連接也全部正確,但是燈卻一直是全亮的,搞不懂怎么回事。把老師請來了才知道,是我們設置的燈的閃光時間太短,就是說燈是按照要求在點亮,但是由于點亮的速度太快,肉眼分辨不出它是否熄滅過,看起來就像一直在亮??梢娙绻粚φ麄€設計的每一個細節(jié)都了解的清清楚楚的話,哪怕你做對了,你都搞不懂這是怎么回事。這告訴我們,以后無論在工作還是在生活中,都要認真對待每一個細節(jié),不能得過且過,不求甚解。 在編程方面一直是我的弱項,好多程序我都搞不明白,這

38、個時候我都會盡量去問同學,在課程設計的過程中,同學之間的相互幫助是相當重要的,有時自己的一個坎半天都過不去,但是說不定同學的一個點撥,我們就通了。所以,我們要學會團結協(xié)作,這樣,才會事半功倍。這次的課程設計教會我們的不止是專業(yè)知識,在生活道理上也教會了很多,讓我們終生受益。 6.參考文獻 [1] 李廣弟.單片機基礎.北京:北京航空航天大學,2009. [2] 李群芳.微型計算機與接口技術.北京:電子工業(yè)出版社,2012. [3] 單片機綜合仿真實驗系統(tǒng)Keil C實驗指導書.深圳:深圳市雷邁特科技有限公司,2012. [4] 沈慶陽.8051單片機實踐

39、與應用.機電一體化系統(tǒng)設計.北京:化學工業(yè)出版社,2009. [5] 朱定華.單片微機原理與應用.北京:清華大學出版社,2006. 7.附錄 附錄1 程序清單 工業(yè)順控 #include sbit start = P3^4; sbit bell = P1^7; unsigned char bellcnt; unsigned int i; void Delay(unsigned int cnt); int main() { P1 = 0xff; IT0 = 0;//Enable EX

40、0 EX0 = 1; EA = 1; while(!start); while(1){ P1 = 0xfe; Delay(1000); P1 = 0xfd; Delay(1000); P1 = 0xfb; Delay(1000); P1 = 0xf7; Delay(1000); P1 = 0xef; Delay(1000); P1 = 0xdf; Delay(1000); P1 = 0xbf; Delay(1000); } } void

41、 Delay(unsigned int cnt) { unsigned char i; while (cnt-- !=0) for (i=100; i !=0; i--); } void int0() interrupt 0 { EA = 0; for(bellcnt = 0;bellcnt<20;bellcnt++) { bell = 1; Delay(2); bell = 0; Delay(2); } EA = 1; } 數碼管顯示程序 #include #define LEDLe

42、n 6 #define mode 0x03; #define CAddr XBYTE[0xe100]/* 控制字地址 */ #define OUTBIT XBYTE[0xe101]/* 位控制口 */ #define CLK164 XBYTE[0xe102]/* 段控制口(接164時鐘位) */ #define DAT164 XBYTE[0xe102] /* 段控制口(接164數據位) */ #define IN XBYTE[0xe103] /* 鍵盤讀入口 */ unsigned char LEDBuf[LEDLen]; /* 顯示緩沖 */ code unsi

43、gned char LEDMAP[] = { /* 八段管顯示碼 */ 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71 }; void Delay(unsigned char CNT) { unsigned char i; while (CNT-- !=0) for (i=100; i !=0; i--); } void DisplayLED() { unsigned char i, j; uns

44、igned char Pos; unsigned char LED; Pos = 0x20; /* 從左邊開始顯示 */ for (i = 0; i < LEDLen; i++) { OUTBIT = 0; /* 關所有八段管 */ LED = LEDBuf[i]; for (j = 0; j < 8; j++) { /*送164*/ if (LED & 0x80) DAT164 = 1; else DAT164 = 0; CLK164 = CLK164|0x02; CLK164 = CLK16

45、4&0xfd; LED <<= 1; } OUTBIT = Pos; /* 顯示一位八段管 */ Delay(1); Pos >>= 1; /* 顯示下一位 */ } OUTBIT = 0; /* 關所有八段管 */ } void display() { while(1) { unsigned char j; LEDBuf[0] = LEDMAP[(7) & 0x0f]; LEDBuf[1] = LEDMAP[(6) & 0x0f]; LEDBuf[2

46、] = LEDMAP[(5) & 0x0f]; LEDBuf[3] = LEDMAP[(3) & 0x0f]; LEDBuf[4] = LEDMAP[(9) & 0x0f]; LEDBuf[5] = LEDMAP[(8) & 0x0f]; for(j=0; j<30; j++) DisplayLED(); /* 延時 */ } } void main() { unsigned char i=2; unsigned char m; unsigned char j; unsigned char n=3

47、; unsigned char k=4; CAddr = mode; while(1) { LEDBuf[0] = LEDMAP[(m+7) & 0x0f]; LEDBuf[1] = LEDMAP[(m+6) & 0x0f]; LEDBuf[2] = LEDMAP[(m+5) & 0x0f]; LEDBuf[3] = LEDMAP[(k) & 0x0f]; i--; LEDBuf[4] = LEDMAP[(n) & 0x0f]; if(i==0) { n--; i=9;

48、 } LEDBuf[5] = LEDMAP[(i) & 0x0f]; if(n==0&&i==1) { k--; i=9; n=9; } for(j=0; j<30; j++) DisplayLED(); /* 延時 */ if(k==3&&i==8) display(); } } 附錄2實物照片(現場接線及調試顯示照片) 課程設計成績評定表 成 績 評 定 項 目 比例 得 分 平時成績(百分制記分) 30% 業(yè)務考核成績(百分制記分) 70% 總評成績(百分制記分) 100% 評定等級 優(yōu) 良 中 及格 不及格 指導教師(簽名): 20 年 月 日

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!