版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、項目2-8位流水燈的單片機項目任務項目任務 要求應用AT89C51芯片,控制8個發(fā)光二極管的有序亮滅,呈現(xiàn)流水燈的效果。設(shè)計單片機控制電路并編程實現(xiàn)此功能。項目分析項目分析 利用單片機P1口連接8個發(fā)光二極管,利用各引腳輸出電位的變化,控制發(fā)光二極管的亮滅。P1口各引腳的電位變化可以通過指令來控制,為了清楚地分辨發(fā)光二極管的點亮和熄滅,在P1口輸出信號由一種狀態(tài)向另一種狀態(tài)變化時,編寫延時程序?qū)崿F(xiàn)一定的時間間隔。項目實施項目實施一、硬件電路設(shè)計 二、控制程序的編寫 三、程序仿真與調(diào)試一、硬件電路設(shè)計一、硬件電路設(shè)計(一)設(shè)計思路(一)設(shè)計思路 在AT89C51單片機芯片及基本外圍電路組成的單片
2、機最小系統(tǒng)基礎(chǔ)上,利用P1口的8個引腳控制8個發(fā)光二極管。由于發(fā)光二極管具有普通二極管的共性-單向?qū)щ娦裕虼酥灰谄鋬蓸O間加上合適的正向電壓,發(fā)光二極管即可點亮;將電壓撤除或加反向電壓,發(fā)光二極管即熄滅。根據(jù)發(fā)光二極管的特性,結(jié)合單片機P1口的輸出信號,即可實現(xiàn)流水燈的控制效果。(二)電路設(shè)計(二)電路設(shè)計1、P1口結(jié)構(gòu) 左圖是P1口中某一位的位結(jié)構(gòu)電路圖。P1口為8位準雙向口,每一位均可獨立定義為輸入或輸出口,當作為輸出口時,1寫入鎖存器,T2截止,內(nèi)部上拉電阻將電位拉至1,此時該口輸出為1;當0寫入鎖存器, ,T2導通,輸出則為0。作為輸入口時,鎖存器置1,T2截止,此時該位既可以把外部
3、電路拉成低電平,也可由內(nèi)部上拉電阻拉成高電平,所以P1口稱為準雙向口。2、發(fā)光二極管的連接 發(fā)光二極管的連接方法:若將它們的陰極連接在一起,陽極信號受控制,即構(gòu)成共陰極接法,如圖a所示;若將它們的陽極連接在一起,陰極信號受控制,則構(gòu)成共陽極接法,如圖b所示。由于P1口引腳輸出高電位時電壓大約是5V,為保證發(fā)光二極管的可靠工作,必須在發(fā)光二極管和單片機輸出引腳間連接一只限流電阻。 本項目選用硅型普通發(fā)光二極管,限流電阻取220。 3、8只發(fā)光二極管的控制電路(三)材料表(三)材料表 從原理圖可以得到實現(xiàn)本項目所需的元器件。元器件的選擇應該合理,以滿從原理圖可以得到實現(xiàn)本項目所需的元器件。元器件的
4、選擇應該合理,以滿足功能要求為原則,否則會造成資源的浪費。足功能要求為原則,否則會造成資源的浪費。序號 元件名稱 元件型號 元件數(shù)量 備注 1單片機芯片 AT89C511片DIP封裝 2發(fā)光二極管5 1只普通型3晶振1只12MHz4電容30pF 2只瓷片電容22uF 1只電解電容5電阻200 8只碳膜電阻10k 1只碳膜電阻6按鍵1只無自鎖1只帶自鎖740腳IC座 1片安裝AT89C51芯片8導線若干二、二、 控制程序的編寫控制程序的編寫(一)繪制程序流程(一)繪制程序流程圖圖 本控制使用簡單程序設(shè)計中的順序結(jié)構(gòu)形式實現(xiàn),程序結(jié)構(gòu)流程圖如右圖。(二)程序編寫(二)程序編寫 ORG 0000H
5、MOV P1,#0BFH LJMP MAIN LCALL YS ORG 0030H MOV P1,#7FHMAIN:MOV P1,#0FEH LCALL YS LCALL YS LJMP MAIN MOV P1,#0FDH ORG 0100H LCALL YS YSYS:MOV R7,#2 MOV P1,#0FBH L1:MOV R6,#0FFH LCALL YS L2:MOV R5,#0FFH MOV P1,#0F7H L3:DJNZ R5,L3 LCALL YS DJNZ R6,L2 MOV P1,#0EFH DJNZ R7,L1 LCALL YS RETRET MOV P1,#0DFH
6、END LCALL YS(三)匯編指令學習(三)匯編指令學習1、對累加器A的邏輯操作指令: 在MCS-51單片機的指令系統(tǒng)中,累加器A是一個最常用的8位寄存器,為了使用方便,特別設(shè)計了7條對累加器A進行邏輯操作的指令,包括清零、取反、移位和高低半字節(jié)互換,且操作結(jié)果依然保存在累加器A中。 匯編指令 指令功能 CLR ACLR A 將累加器A中的數(shù)據(jù)清零 CPL ACPL A 將累加器A中的數(shù)據(jù)取反 RL ARL A 將累加器A中的數(shù)據(jù)依次循環(huán)左移一位 RR ARR A 將累加器A中的數(shù)據(jù)依次循環(huán)右移一位 RLC ARLC A 將累加器A中的數(shù)據(jù)連同進位標志位CY一起依次循環(huán)左移一位 RRC A
7、RRC A 將累加器A中的數(shù)據(jù)連同進位標志位CY一起依次循環(huán)右移一位 2、延時程序 在項目一和項目二中,為了能清晰的分辨出發(fā)光二極管的變化,我們進行了延時程序的編寫。 1 1)延時功能的實現(xiàn)方法)延時功能的實現(xiàn)方法(1)利用RC的充放電時間來延時的硬件電路(2)利用單片機內(nèi)的定時器來實現(xiàn)(T0、T1是可編程的)(3)編程實現(xiàn)軟件延時 a、它是利用執(zhí)行一組指令所花的時間和多次重復執(zhí)行這組指令的次數(shù)乘積來實現(xiàn),而循環(huán)次數(shù)的確定,則需要根據(jù)延時的時間進行計算,因此,延時時間確定關(guān)鍵在于確定循環(huán)計數(shù)器的設(shè)置值 b、常用指令 MOV Rn,#dataMOV Rn,#data ;1Tm NOP NOP ;
8、1Tm DJNZ Rn,relDJNZ Rn,rel ;2Tm RET RET ;2Tm2)通用延時程序結(jié)構(gòu) YS:MOV R7,#C1 ;1Tm D1:MOV R6,#C2 ;1Tm D2:MOV R5,#C3 ;1TmLOOP:DJNZ R5,LOOP ;2Tm*C3 DJNZ R6,D2 ;2Tm DJNZ R7,D1 ;2Tm RET ;2Tm延時時間:T=1Tm+1Tm+(1Tm+2Tm*C3+2Tm)*C2+2Tm*C1+2TmT的長短關(guān)鍵在于設(shè)置C3、C2、C1的值*C2*C13)例題:延時100ms子程序, 設(shè)fosc=6MHZ(Tm=2us)(1)設(shè)C3=250,則內(nèi)循環(huán)時間
9、 2Tm*250=2*2*250=1000us(2)外循環(huán)要求執(zhí)行時間為100 ms 所以:1Tm+(1Tm+1000us+2Tm)*C2+2Tm=100ms C2=99.7100(3)程序 YSYS:MOV R2,#100:MOV R2,#100 D1:MOV R3,#250 D1:MOV R3,#250LOOP:DJNZ R3,LOOPLOOP:DJNZ R3,LOOP DJNZ R2,D1 DJNZ R2,D1 RET RET 3、程序的編寫技巧: 在本項目中,利用P1口實現(xiàn)8個發(fā)光二極管的流水燈控制,主要利用了送數(shù)指令,將要顯示的現(xiàn)象對應的數(shù)據(jù)通過P1口送出。在編寫控制程序時,應首先將
10、每個對應現(xiàn)象分析清楚,比如:要讓L3亮,其余發(fā)光二極管滅,則P1口的數(shù)據(jù)應為11110111B;要讓L7亮,則P1口的數(shù)據(jù)應為01111111B。然后找到能實現(xiàn)此操作的指令即可。下面使用我們在本項目中學習的移位指令編寫程序如下: ORG 0000H ORG 0F00H ORG 0000H ORG 0F00H LJMP MAIN2 LJMP MAIN2 DELAYDELAY:MOV R7 ,#10:MOV R7 ,#10 ORG 0200H D0:MOV R6 ,#100 ORG 0200H D0:MOV R6 ,#100 MAIN2 MAIN2:MOV AMOV A,#0FEH D1:MOV
11、R5, #200#0FEH D1:MOV R5, #200 XH XH:MOV P1MOV P1,A D2:DJNZ R5,D2A D2:DJNZ R5,D2 LCALL DELAY DJNZ R6,D1 LCALL DELAY DJNZ R6,D1 RL ARL A DJNZ R7,D0 DJNZ R7,D0 LJMP XH RET LJMP XH RET END END 分析后可知,本段程序與項目中給出的參考程序功能相似,但是指令數(shù)量較少,所占存儲器空間較小。根據(jù)發(fā)光二極管的點亮次序,通過分析每次給P1口所送數(shù)據(jù),發(fā)現(xiàn)不斷變換的是數(shù)據(jù)中“0”的位置。若點亮次序是從L0L7,則“0”是自低位
12、(右)向高位(左)移動的,符合指令“RL A”的功能。同時還可以總結(jié)出,若應用“RR A”指令,則8個發(fā)光二極管的點亮次序是從L7L0。應用了移位指令后,程序更簡潔易懂了,因此在今后的學習中,應注意類似情況的處理。三、程序仿真與調(diào)試:三、程序仿真與調(diào)試: 1、運行Keil軟件。 2、利用Keil進行文件編譯。 3、利用Keil進行軟件仿真。 4、程序的下載及運行。 5、修改源程序進行調(diào)試。 注:此部分可實際利用Keil 軟件教學。 1、運行Keil軟件。 運行Keil軟件,將本項目中的匯編源程序以文件名MAIN2.ASM保存,添加到工程文件并進行軟件仿真的設(shè)置。 2、利用Keil進行文件編譯。
13、 將已經(jīng)存儲完成的文件進行編譯,若編譯中檢測到錯誤的符號,會將錯誤信息顯示在“Build”卡項中,用鼠標雙擊錯誤提示,即可以在對應位置進行修改。 3、利用Keil進行軟件仿真。編譯成功的程序在寫入芯片前,可以先進行計算機軟件仿真,通過觀察分析存儲器中相關(guān)數(shù)據(jù)的變化,分析源程序是否正確。4、程序的下載及運行。 利用編程器將匯編完成的文件下載到所用的芯片中,安裝到焊接好的電路板上,通電后運行程序,觀察8個發(fā)光二極管的亮滅變化,理解送數(shù)指令的意義(如左圖所示)。 5、修改源程序,將送數(shù)指令改為移位指令,重復以上步驟,觀察8個發(fā)光二極管的控制現(xiàn)象,理解RL、RR指令的功能。知識點鏈接知識點鏈接項目測試項目測試一、填空題: 1、同樣的工作電壓,( )發(fā)光二極管的亮度較高。 (A) 高亮型 (B)普通型 2、已知(A)=27H,執(zhí)行指令“RL A”后,累加器A中的內(nèi)容 是( )。 (A) 28H (B) 93H (C)4FH 3、本項目中要實現(xiàn)8個發(fā)光二極管初始時兩端點亮的效果, 初值應為( )。 (A) 77H (B) E7H (C) EEH (D) 7EH 4、
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智慧社區(qū)小區(qū)瀝青路面施工與養(yǎng)護合同2篇
- 2024年貴黃高速擴建工程土地征收與房屋補償合同
- 2024年版醫(yī)藥冷鏈運輸合同
- 二零二五年度體育賽事招投標合同2篇
- 2025年度合同封面設(shè)計創(chuàng)意元素庫共享合同3篇
- 2024年版地下建筑防水施工分包合同版
- 2025版貨車租賃及冷鏈物流服務合同范本3篇
- 2024沙卵石開采與環(huán)保監(jiān)管服務合同2篇
- 2024年貨物集裝箱內(nèi)河運輸合同
- 2024年重慶大數(shù)據(jù)中心建設(shè)合同
- 河北省百師聯(lián)盟2023-2024學年高二上學期期末大聯(lián)考歷史試題(解析版)
- 2021年四川省涼山州九年級中考適應性考試理科綜合(試卷)
- 骨科疼痛的評估及護理
- 【MOOC】概率論與數(shù)理統(tǒng)計-南京郵電大學 中國大學慕課MOOC答案
- 2024年度軟件開發(fā)分包合同技術(shù)要求與交底2篇
- 居家養(yǎng)老人員培訓管理制度
- 抗菌藥物的合理應用培訓
- 初三數(shù)學老師家長會發(fā)言稿
- 湖北第二師范學院《操作系統(tǒng)》2023-2024學年期末試卷
- 2021-2022學年河北省唐山市高一上學期期末語文試題
- 光明乳業(yè)財務報表分析報告
評論
0/150
提交評論