




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
任務1跑馬燈任務2花樣燈
任務3
鍵控彩燈
任務4數顯搶答器任務5簡易數字秒表任務1跑馬燈
1.了解跑馬燈的工作過程及控制原理。2.掌握單片機I/O口控制外部負載的合理設計方法。3.掌握移位和延時程序的設計方法。4.能夠設計并制作跑馬燈控制系統。本任務選用單片機P0口控制8只發光二極管(D1~D8),使D1~D8由低位到高位依次點亮,時間間隔為1s,如此往復循環,完成跑馬燈控制系統的設計與制作。一、延時程序軟件延時程序的主要設計思想是利用循環體為空操作或無循環體的循環程序,只占用CPU的時間,而不進行任何實質性操作,來實現延時功能。在51系列單片機中通常用寄存器Rn減1不為0則轉移指令(DJNZRn,rel)來實現循環變量改變及循環結束控制。1.單重循環程序MOVR1,#250;K1:NOP;NOP;DJNZR1,K1;2.兩重循環程序要實現較長時間的延時,需要多重循環3.三重循環程序延時1s的延時程序二、延時時間計算計算延時時間有兩種方法:精確計算法和估算法。以1s延時程序的延時時間為例:1.精確計算法第一重循環一次的機器周期數:1+1+2=4第一重循環總的機器周期數:4×250=1000第二重循環一次的機器周期數:1+1000+2=1003第二重循環總的機器周期數:1003×250=250750第三重循環一次的機器周期數:1+250750+2=250753第三重循環總的機器周期數:250753×4=1003012總的機器周期數:1+1003012=1003013延時時間:1003013×1μs=1003013μs=1.003013s
2.估算法估算延時時間=估算機器周期數×機器周期估算機器周期數=第一重循環一次的機器周期×第一重循環次數×第二重循環次數×第三重循環次數即估算延時時間=4×250×250×4×1μs=1000000μs=1s
本延時程序的延時時間只是近似1s,而非標準的1s時間,因此只能用于對延時時間要求不是很準確的場合,若要實現標準的1s延時,可采用定時器定時法來完成。三、子程序的調用使用子程序的過程稱為子程序的調用,由子程序調用指令實現,如ACALL或LCALL。子程序執行完后返回到原來程序的過程稱為子程序返回,由子程序返回指令實現,如RET或RETI。能供調用的子程序必須具有以下兩個特點:1.子程序的第一條指令地址稱為子程序首地址或入口地址,必須用標號標明,以便調用指令正確調用。2.子程序末尾用RET返回指令結束,以便正確返回主程序或調用子程序繼續執行。[例]……DELAY:MOVR6,#4K3:MOVR4,#250K2:MOVR5,#250K1:NOPNOPDJNZR5,K1DJNZR4,K2DJNZR6,K3RET……一、電路設計單片機對LED控制的連接電路有兩種方式,如下圖所示。相應地,硬件上的不同連接方式也決定了軟件上的不同控制邏輯,見下表:端口控制邏輯電平端口LED狀態邏輯電平P0.0亮0滅1P2.0亮1滅0在Proteus中根據上述分析繪制跑馬燈電路原理圖:AT89S51的I/O口在外接負載時,要注意其負載能力。P0每位可驅動8個TTL負載,每一位最大的吸收電流為26mA,P1~P3口每位可驅動4個TTL負載,每一位最大的吸收電流為15mA。輸出端口說明P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0D8D7D6D5D4D3D2D111111110D1亮11111101D2亮11111011D3亮11110111D4亮11101111D5亮11011111D6亮10111111D7亮01111111D8亮二、程序設計亮燈情況示意圖:跑馬燈的程序設計流程圖:2.程序編譯與仿真1.根據上述設計思路編寫程序并輸入WAVE軟件。跑馬燈.ASM三、制作硬件電路并調試步驟說明示范圖片1.焊接前材料準備參照元器件清單表步驟說明示范圖片2.硬件焊接電路板正面電路板背面步驟說明示范圖片3.程序燒入、調試并運行跑馬燈運行圖單擊此處返回目錄任務2花樣燈
1.了解花樣燈的工作過程。2.掌握查表程序的設計方法。3.能夠設計并制作花樣燈控制系統?;訜羰前磿r間依次讓燈呈現出規定的花樣,相對跑馬燈來說,控制的顯示數據之間沒有規律,顯示上具有多變性和復雜性,如下圖所示。本任務使用單片機的P2口控制8只LED循環顯示,實現下圖所示四種花樣的顯示。花樣D8D7D6D5D4D3D2D1數據編碼一☆☆☆☆☆☆☆☆0FFH★☆☆☆☆☆☆★7EH★★☆☆☆☆★★3CH★★★☆☆★★★18H★★★★★★★★00H★★★☆☆★★★18H★★☆☆☆☆★★3CH★☆☆☆☆☆☆★7EH注:★燈亮☆燈滅花樣D8D7D6D5D4D3D2D1數據編碼二☆☆☆☆☆☆☆☆0FFH★☆☆☆☆☆☆☆7FH★★☆☆☆☆☆☆3FH★★★☆☆☆☆☆1FH★★★★☆☆☆☆0FH★★★★★☆☆☆07H★★★★★★☆☆03H★★★★★★★☆01H★★★★★★★★00H花樣D8D7D6D5D4D3D2D1數據編碼三☆☆☆☆☆☆☆☆0FFH☆★☆★☆★☆★0AAH★☆★☆★☆★☆55H☆★☆★☆★☆★0AAH★☆★☆★☆★☆55H四☆☆☆☆☆☆☆☆0FFH☆☆☆☆★★★★0F0H★★★★☆☆☆☆0FH☆☆☆☆★★★★0F0H★★★★☆☆☆☆0FH☆☆☆☆☆☆☆☆0FFH一、相關指令指令格式如下:標號:DB字節常數或ASCII碼字符功能:從指定的地址單元開始定義若干個字節的數值或ASCII碼字符,各數據之間用逗號分隔,常用于定義數據常數表。在表示ASCII碼字符時需要在字符上加單引號,標號表示數據表的首地址。
1.定義字節偽指令DB[例]
從0100H單元開始定義一個10個字節的數據表:ORG0100HTAB:DB3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,6FHDB定義的數據表一行可以寫多個數據,當一行寫不完要分行時,在下一行也必須用DB偽指令開頭。2.以寄存器間接地址為目的操作數的數據傳送指令MOV @Ri,A;(Ri)
AMOV @Ri,#data;(Ri)
dataMOV @Ri,direct;(Ri)(direct)功能:將源操作數所指定的內容送入以R0或R1為地址指針的內部數據存儲器的存儲單元中。源操作數有A、立即尋址和直接尋址3種尋址方式。注意:沒有MOV@Ri,Rn和MOV@Ri1,@Ri2指令。3.16位數據傳送指令MOV DPTR,#data16
;DPTR
data16功能:將16位立即數送入數據指針DPTR。4.程序存儲器傳送指令MOVCA,@A+PC
;PC
PC+1,A
(A+PC)MOVCA,@A+DPTR;A
(A+DPTR)功能:主要用于查表,其數據表格放在程序存儲器中。第1條指令以PC作為基址寄存器,第2條指令以DPTR作為基址寄存器。兩條指令中A均作為變址寄存器,通常A的值為要取得數據的索引值(即要取得數據在數據表中的序號)。將索引值送入累加器A一般有以下3種情況:(1)當要查數據的值等于索引值時,直接將要查數據送入A中。(2)當要查數據的值與其索引值不相等時,應將要查數據變換為索引值再送入A中。(3)當僅僅是為了取出存于數據表中的數據時,直接將其索引值送入A中即可。在MOVCA,@A+PC指令中,數據表只能存放在該指令之后的256字節范圍內。而MOVCA,@A+DPTR指令中,數據表可以存放在64K程序存儲器的任何位置,并且數據表的長度可超過256個字節。5.比較轉移指令CJNEA,#data,rel
;若A
data,則轉移;若A=data,順序執行下一條指令
;若A≥data,C清0
;若A<data,C置1CJNEA,direct,rel
;若A(direct),則轉移;若A=(direct),順序執行下一條指令;若A≥(direct),C清0;若A<(direct),C置1CJNERn,#data,rel;若Rndata,則轉移 ;若Rn=data,順序執行下一條指令 ;若Rn≥data,C清0;若Rn<data,C置1CJNE@Ri,#data,rel;若(Ri)data,則轉移 ;若(Ri)=data,順序執行下一條指令 ;若(Ri)≥data,C清0;若(Ri)<data,C置1功能:比較兩個操作數的大小,如果它們的值不相等,則轉移到目標地址。如果第一個操作數小于第二個操作數,則進位標志CY置“1”,否則清“0”。指令執行不影響任何一個操作數。
二、查表法[例]下面查表程序中有一BCD碼對應的七段碼數據表,一個BCD碼存于R0中,運行查表程序,取出其對應的七段碼并存于R1中,試分析程序的執行過程。地址源程序
ORG0000H0000H:MOVA,R00001H:MOVDPTR,#TAB0004H:MOVCA,@A+DPTR0005H:MOVR1,A0006H:SJMP$0008H:TAB:DB3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,6FHEND分析:用MOVCA,@A+DPTR指令查表的3個步驟為:③執行查表指令取得所需數據。②將數據表首地址送入DPTR中,該數據表首地址為0008H。①將要查數據變換為其對應的索引值送入A中。在C51程序設計中,DPTR和PC均為基址寄存器,指示表格首地址。但兩者的區別是:選用DPTR作表首地址指針,表域可設置在程序存儲器64KB范圍內的任何區域;采用PC作表首地址指針,表域必須緊跟在該查表指令之后,這使表域設置受到限制。因此,一般只用于單表格,且編程較難,但可節省存儲空間。一、電路設計
注意:在實際應用電路中,若接節日彩燈或廣告霓虹燈,一般還需外加隔離電路(光電耦合器)和驅動電路(如晶閘管或繼電器等)。花樣燈電路原理圖二、程序設計花樣燈程序設計流程圖2.程序編譯與仿真1.根據上述設計思路編寫程序并輸入WAVE軟件。花樣燈.ASM三、制作硬件電路并調試步驟說明示范圖片1.焊接前材料準備參照元器件清單表步驟說明示范圖片2.硬件焊接電路板正面電路板背面步驟說明示范圖片3.程序燒入、調試并運行花樣燈運行圖單擊此處返回目錄任務3鍵控彩燈
1.了解按鍵的特性及其與單片機端口的連接方法。2.掌握獨立式按鍵掃描及軟件消抖的編程原理。3.能夠設計并制作鍵控彩燈控制系統。本任務在單片機P0口連接8只彩色LED,按照綠、黃、紅順序依次排開。使用三個按鍵,分別連接在單片機的P2.0、P2.1和P2.2口,實現下表所述的功能。按鍵編號連接端口按鍵功能說明K1P2.0啟動按鍵,發光二極管D1點亮K2P2.1左移按鍵,彩燈右移一位點亮K3P2.2右移按鍵,彩燈左移一位點亮一、鍵盤及其接口矩陣式鍵盤獨立式鍵盤獨立式鍵盤的各個按鍵之間相互獨立,每個按鍵獨立地與一根數據輸入線(單片機并行I/O口或其他接口芯片的并行接口)相連。常見的接口電路如下圖所示。獨立式鍵盤配置靈活,軟件結構簡單,但每個按鍵必須占用一根接口線,在按鍵數量較多時,將占用較多接口線,因此,獨立式按鍵常用于按鍵數量不多的場合。二、按鍵的機械特性為了保證每按下一次按鍵,單片機僅作一次鍵輸入處理,就需要消除因按鍵抖動現象而引起的錯誤動作,常用的去除抖動的方法有硬件消抖和軟件消抖兩種。在實際應用中,當所接按鍵較多時,為了減少外圍電路,通常利用軟件延時的方法來消除抖動。三、硬件消抖電路一、電路設計鍵控彩燈電路原理圖二、程序設計鍵控彩燈程序設計流程圖軟件消抖流程圖2.程序編譯與仿真1.根據上述設計思路編寫程序并輸入WAVE軟件。鍵控彩燈.ASM步驟說明示范圖片1.焊接前材料準備參照元器件清單表三、制作硬件電路并調試步驟說明示范圖片2.硬件焊接電路板正面電路板背面步驟說明示范圖片3.程序燒入、調試并運行鍵控彩燈左移運行圖單擊此處返回目錄任務4數顯搶答器1.了解數碼管的結構及顯示原理。2.掌握對獨立式鍵盤掃描、處理的編程方法。3.掌握單片機控制LED數碼管靜態顯示方法。4.能夠設計并制作數顯搶答器控制系統。搶答器是一種廣泛應用于各種競賽活動、搶答現場中的重要設備,如下圖所示,它能迅速、準確、公正、客觀地分辨出最先獲得發言權的選手,保證比賽的順利有效進行,同時增加比賽的刺激性和娛樂性。
1.每個參賽選手控制一個按鈕,按動按鍵發出搶答信號。2.競賽主持人控制兩個功能按鈕,一個為搶答開始按鈕,另一個為搶答結束后的復位按鈕。3.競賽開始后,先由主持人按下搶答開始按鈕,8位參賽選手通過按下各自的搶答按鈕進行搶答。哪位選手最先按下搶答按鈕,數碼管就顯示其對應的號碼,表示該名選手搶答成功并且鎖定,其他參賽選手再搶答無效。4.競賽結束時,再由主持人按下復位按鈕,本輪搶答結束,為下一輪搶答做準備。本任務主要完成一個簡易的8路搶答器,通過獨立鍵盤輸入搶答信號,一位數碼管顯示出搶答者的號碼,具體控制要求:一、LED數碼管的結構
數碼管是由幾個發光二極管組合在一起而形成的顯示裝置,組成數碼管的每一個發光二極管稱為數碼管的“段”。以一位8段LED數碼管為例,共有7段組成一個“日”字形,分別定義為數碼管的a、b、c、d、e、f、g段,另外再加上一個用于小數顯示的小數點dp(或h)段。數碼管根據不同碼段之間的組合,來顯示數字0~9或簡單的字符信息。由于組成數碼管的發光二極管自身具有極性,所以組成的數碼管也有共陰極和共陽極之分。共陽極共陰極二、單片機與數碼管之間的連接共陽數碼管共陰數碼管當使用單片機的I/O口控制一位顯示輸出時,最好選擇共陽極數碼管,這樣電路采用灌電流方式,數碼管直接受控于I/O端口,否則,當連接的是共陰極數碼管時,需在I/O口上添加上拉電阻來驅動數碼管。三、數碼管字符顯示原理a)共陰數碼管顯示以單片機I/O口輸出顯示“5”的字形數據為例:b)共陽數碼管顯示四、數碼管靜態顯示方式靜態顯示即當數碼管顯示某一字符時,相應碼段的發光二極管恒定的導通或截止,只要通過改變數碼管各碼段引腳的高低電平,就能達到顯示不同字符的目的。優點:數碼管顯示穩定無閃爍,亮度高,軟件控制比較容易;缺點:占用單片機較多的I/O口資源,且硬件接線復雜。五、一位數碼管循環顯示“0~9”1.電路原理圖2.“0~9循環顯示”程序0~9循環顯示.ASM一、電路設計8路數顯搶答器電路原理圖二、程序設計8路數顯搶答器程序設計流程圖2.程序編譯與仿真1.根據上述設計思路編寫程序并輸入WAVE軟件。8路數顯搶答器.ASM三、制作硬件電路并調試步驟說明示范圖片1.焊接前材料準備參照元器件清單表步驟說明示范圖片2.硬件焊接電路板元件布局圖電路板背面DIP底座步驟說明示范圖片3.程序燒入、調試并運行2號搶答成功運行圖單擊此處返回目錄任務5簡易數字秒表1.了解秒表的工作過程。2.掌握單片機控制LED數碼管動態顯示字符方法。3.能夠設計并制作簡易數字秒表。本任務利用軟件延時計數法,通過四位一體數碼管輸出顯示,實現簡易秒表的計時功能,具體控制要求如下:1.單片機的P0口控制四位一體LED共陰數碼管的各碼段端;2.單片機的P2.0~P2.3引腳外接驅動電路控制數碼管的四個位選端;3.四位數碼管分別用來顯示一位分計時和兩位秒計時,中間用“—”隔開。動態顯示是將所有數碼管的8個段碼端的同名端并聯在一起,由一個8位的輸出口控制,每位數碼管的公共端(稱位線)由各自獨立的輸出口線控制,如圖所示。它解決了數碼管靜態顯示時占用較多的I/O口資源的問題。
一、動態顯示工作原理在輪流顯示過程中,每位數碼管的點亮時間一般要控制在1~2ms,這樣由于人的視覺暫留現象及發光二極管的余輝效應,盡管實際上各位數碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩定的顯示數據,不會有閃爍感,顯示的效果和靜態顯示一樣。但由于CPU需要不斷掃描刷新數據,因此會占用CPU較多的時間。采用動態顯示方式時,為了保證數碼管的亮度,一般需在數碼管的段輸出或位輸出端加驅動電路。如使用三極管9012、74HC573或74LS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025城市舊改項目房屋拆遷安置補償合同模板
- 2025通信線路建設承包合同
- 2025合同模板廣告牌制作工程施工合同協議條款范本
- 2025家居智能小家電區域代理商銷售合同書
- 2024年海南上海外國語大學三亞附屬中學招聘真題
- 石大學前衛生學試卷(六)及參考答案
- 麻風病收容機器人行業跨境出海項目商業計劃書
- DB1303T 162.1-2011 農業企業標準體系種植業標準體系的構成和要求 第1部分:技術標準體系
- 2025年兒童教育游戲化:游戲內容與教學目標的融合策略
- 大學熱學典型題目及答案
- 《新模式英語4(第二版)》 課件 Unit 7 On the Job
- 設備采購 投標方案(技術方案)
- 清華人工骨成人顱骨修補首選課件
- 電力行業安全檢查表(文檔-)(正式版)
- 影視動畫創作研究
- “雙減”與“五項管理”(課件)主題班會
- 招標代理機構入圍服務 投標方案(技術標)
- 區塊鏈金融 課件全套 第1-11章 區塊鏈導論- 區塊鏈金融的監管
- (完整版)一年級數獨100題
- 臟腑辨證表格完美打印版
- 部編版初中語文七年級下冊期末閱讀理解之說明文閱讀訓練(含答案)
評論
0/150
提交評論