版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
21目錄1單片機(jī)技術(shù)概述……………11.1基本概念……………11.2MCS-51系列單片機(jī)簡介……………22系統(tǒng)的硬件設(shè)計(jì)……………32.1硬件組成………………32.2流水燈硬件原理圖……………………32.3開發(fā)軟件………………32.4編程語言特點(diǎn)………………………43系統(tǒng)軟件設(shè)計(jì)及調(diào)試…………………53.1設(shè)計(jì)思路………………53.2軟件編程……………53.3位控法…………………53.4循環(huán)移位法……………63.5查表法……………73.6匯編語法要求、規(guī)則…………………93.7小燈控制程序………………………93.8結(jié)語……………114參考文獻(xiàn)……………………125致謝…………13基于單片機(jī)的廣告燈控制系統(tǒng)PAGE11單片機(jī)技術(shù)概述1.1基本概念單片機(jī)實(shí)際上是微型計(jì)算機(jī)的一種,自從它問世以來,人們對它不斷地改進(jìn),以應(yīng)用于現(xiàn)代化社會的各方各面。單片機(jī)體積小,價格低廉,開發(fā)較為容易,可根據(jù)需要制作成各種智能控制器以代替人工的操作,實(shí)現(xiàn)自動化。在我國,由于ASIC(專用集成電路)的生產(chǎn)還跟不上,單片機(jī)的作用更加地重要,在智能儀器儀表、工業(yè)設(shè)備過程控制、家用電器中,都可以見到它的蹤跡。單片機(jī)應(yīng)用的意義不僅在于它的廣闊范圍及所帶來的經(jīng)濟(jì)效益。更重要的意義在于,單片機(jī)的應(yīng)用從根本上改變了控制系統(tǒng)傳統(tǒng)的設(shè)計(jì)思想和設(shè)計(jì)方法。以前采用硬件電路實(shí)現(xiàn)的大部分控制功能,正在用單片機(jī)通過軟件方法來實(shí)現(xiàn)。以前自動控制中的PID調(diào)節(jié),現(xiàn)在可以用單片機(jī)實(shí)現(xiàn)具有智能化的數(shù)字計(jì)算控制、模糊控制和自適應(yīng)控制。這種以軟件取代硬件并能提高系統(tǒng)性能的控制技術(shù)稱為微控技術(shù)。單片微型計(jì)算機(jī)就是將CPU、RAM、ROM、時/計(jì)數(shù)器和多種接口都集成到一塊集成電路芯片上的微型計(jì)算機(jī)。(引腳圖例如圖1.1)按用途可分為通用型和專用型兩大類根據(jù)單片機(jī)能夠一次處理的數(shù)據(jù)的寬度,單片機(jī)可分為1位機(jī),4位機(jī),8位機(jī),16位機(jī),32位機(jī)。(內(nèi)部邏輯如圖1.2)圖1.151系列單片機(jī)引腳圖ACALLDELAY
;調(diào)用延時子程序SETBP1.2
;P1.2輸出高電平,使LED3熄滅CLRP1.3
;P1.3輸出低電平,使LED4點(diǎn)亮ACALLDELAY
;調(diào)用延時子程序SETBP1.3
;P1.3輸出高電平,使LED4熄滅CLRP1.4
;P1.4輸出低電平,使LED5點(diǎn)亮ACALLDELAY
;調(diào)用延時子程序SETBP1.4
;P1.4輸出高電平,使LED5熄滅CLRP1.5
;P1.5輸出低電平,使LED6點(diǎn)亮ACALLDELAY
;調(diào)用延時子程序SETBP1.5
;P1.5輸出高電平,使LED6熄滅CLRP1.6
;P1.6輸出低電平,使LED7點(diǎn)亮ACALLDELAY
;調(diào)用延時子程序SETBP1.6
;P1.6輸出高電平,使LED7熄滅CLRP1.7
;P1.7輸出低電平,使LED8點(diǎn)亮ACALLDELAY
;調(diào)用延時子程序SETBP1.7
;P1.7輸出高電平,使LED8熄滅ACALLDELAY
;調(diào)用延時子程序AJMPSTART
;8個LED流了一遍后返回到標(biāo)號START處再循環(huán)DELAY:
;延時子程序MOVR0,#255;延時一段時間D1:MOV
R1,#255DJNZ
R1,$DJNZ
R0,D1RET
;子程序返回END
;程序結(jié)束3.4循環(huán)移位法在上個程序中我們是逐個控制P1端口的每個位來實(shí)現(xiàn)的,因此程序顯得有點(diǎn)復(fù)雜,下面我們利用循環(huán)移位指令,采用循環(huán)程序結(jié)構(gòu)進(jìn)行編程。我們在程序一開始就給P1口送一個數(shù),這個數(shù)本身就讓P1.0先低,其他位為高,然后延時一段時間,再讓這個數(shù)據(jù)向高位移動,然后再輸出至P1口,這樣就實(shí)現(xiàn)“流水”效果啦。由于8051系列單片機(jī)的指令中只有對累加器ACC中數(shù)據(jù)左移或右移的指令,因此實(shí)際編程中我們應(yīng)把需移動的數(shù)據(jù)先放到ACC中,讓其移動,然后將ACC移動后的數(shù)據(jù)再轉(zhuǎn)送到P1口,這樣同樣可以實(shí)現(xiàn)“流水”效果。具體編程如下所示,程序結(jié)構(gòu)確實(shí)簡單了很多。ORG
0000H
;單片機(jī)上電后從0000H地址執(zhí)行AJMPSTART
;跳轉(zhuǎn)到主程序存放地址處ORG0030H
;設(shè)置主程序開始地址START:MOVSP,#60H
;設(shè)置堆棧起始地址為60HMOVA,#0FEH
;ACC中先裝入LED1亮的數(shù)據(jù)(二進(jìn)制的11111110)MOVP1,A
;將ACC的數(shù)據(jù)送P1口MOVR0,#7
;將數(shù)據(jù)再移動7次就完成一個8位流水過程LOOP:
RL
A
;將ACC中的數(shù)據(jù)左移一位MOV
P1,A
;把ACC移動過的數(shù)據(jù)送p1口顯示ACALL
DELAY
;調(diào)用延時子程序DJNZ
R0,LOOP
;沒有移動夠7次繼續(xù)移動AJMP
START
;移動完7次后跳到開始重來,以達(dá)到循環(huán)流動效果DELAY:
;延時子程序MOVR0,#255;延時一段時間D1:MOVR1,#255DJNZR1,$DJNZR0,D1RET
;子程序返回END
;程序結(jié)束3.5查表法上面的兩個程序都是比較簡單的流水燈程序,“流水”花樣只能實(shí)現(xiàn)單一的“從左到右”流方式。運(yùn)用查表法所編寫的流水燈程序,能夠?qū)崿F(xiàn)任意方式流水,而且流水花樣無限,只要更改流水花樣數(shù)據(jù)表的流水?dāng)?shù)據(jù)就可以隨意添加或改變流水花樣,真正實(shí)現(xiàn)隨心所欲的流水燈效果。我們首先把要顯示流水花樣的數(shù)據(jù)建在一個以TAB為標(biāo)號的數(shù)據(jù)表中,然后通過查表指令“MOVCA,@A+DPTR”把數(shù)據(jù)取到累加器A中,然后再送到P1口進(jìn)行顯示。具體源程序如下,TAB標(biāo)號處的數(shù)據(jù)表可以根據(jù)實(shí)現(xiàn)效果的要求任意修改。ORG0000H
;單片機(jī)上電后從0000H地址執(zhí)行AJMPSTART
;跳轉(zhuǎn)到主程序存放地址處ORG0030H
;設(shè)置主程序開始地址START:MOVSP,#60H
;設(shè)置堆棧起始地址為60HMOVDPTR,#TAB
;流水花樣表首地址送DPTRLOOP:CLRA
;累加器清零MOVCA,@A+DPTR
;取數(shù)據(jù)表中的值CJNEA,#0FFH,SHOW;檢查流水結(jié)束標(biāo)志AJMPSTART
;所有花樣流完,則從頭開始重復(fù)流SHOW:MOVP1,A
;將數(shù)據(jù)送到P1口ACALLDELAY
;調(diào)用延時子程序INCDPTR
;取數(shù)據(jù)表指針指向下一數(shù)據(jù)AJMPLOOP
;繼續(xù)查表取數(shù)據(jù)DELAY:
MOVR0,#255
;延時一段時間D1:MOVR1,#255DJNZR1,$DJNZR0,D1RET
;子程序返回TAB:
;下面是流水花樣數(shù)據(jù)表,用戶可據(jù)要求任意編寫DB11111110B
;二進(jìn)制表示的流水花樣數(shù)據(jù),從低到高左移DB11111101BDB11111011BDB11110111BDB
11101111BDB
11011111BDB
10111111BDB
01111111BDB
01111111B
;二進(jìn)制表示的流水花樣數(shù)據(jù),從高到低右移DB
10111111BDB
11011111BDB
11101111BDB
11110111BDB
11111011BDB
11111101BDB
11111110BDB10000001BDB
0FEH,0FDH,0FBH,0F7H
;十六進(jìn)制表示的流水花樣數(shù)據(jù)DB
0EFH,0DFH,0BFH,7FHDB
7FH,0BFH,0DFH,0EFHDB
0F7H,0FBH,0FDH,0FEH……DB0FFH
;流水花樣結(jié)束標(biāo)志0FFHEND
;程序結(jié)束3.6匯編語法要求、規(guī)則這里需要說明的是,按匯編語法要求,所編制的程序(下稱源程序)之格式和書寫要求必須依下列原則:
1、源程序必須為純文本格式文件,如用Windows“附件”中的“記事本”編寫的文本文件編輯;
2、源程序的擴(kuò)展名應(yīng)是*.ASM;
3、一行只能寫一條語句,以回車作為本句的結(jié)束,每一語句行長度應(yīng)少于80個字符(即40個漢字)。
4、每行的格式應(yīng)為:標(biāo)號:命令參數(shù);注釋。即一行由四部份組成,各部份的順序不能搞錯,依實(shí)際要求可以缺省其中的一部份或幾部份,甚至全部省去,即空白行。需要使用標(biāo)號時標(biāo)號后面必須有“:”(冒號),而命令語句和參數(shù)之間必須用空格分開,如果命令有多個參數(shù),則參數(shù)與參數(shù)之間必須用“,”(逗號)分開,需要注釋時注釋前必須用“;”(分號),“;”后面的語句可以寫任何字符,包括漢字用于解釋前面的匯編語句,它將不參與匯編,不生成代碼。由于匯編程序?qū)ξ覀冞€不直觀,所以在編寫源程序時,應(yīng)當(dāng)養(yǎng)成多寫注釋的習(xí)慣,這樣有助于今后源程序的閱讀和維護(hù)。
標(biāo)號是標(biāo)志程序中某一行的符號名,編譯后標(biāo)號的數(shù)值就是標(biāo)號所在行代碼的地址。在宏匯編ASM51中標(biāo)號的長度不受限制,但標(biāo)號中不能包含‘:'或其它的一些特殊符號,也不能用漢字,可以用數(shù)字作標(biāo)號,但必須用字母開頭。當(dāng)標(biāo)號作參數(shù)用(如標(biāo)號作轉(zhuǎn)移地址),在命令后面出現(xiàn)時,必須舍去‘:'(如上面程序中的AJMPSTART中的START是不能再有:)。每行只能有一個標(biāo)號,一個標(biāo)號只能用在一處,如果有兩行用了同一個標(biāo)號,則匯編時就會出錯。由于標(biāo)號的長度沒有限制,可以用有意義的英文或漢語拼音來說明行,使源程序讀起來更方便。在源程序中的字母不區(qū)分大小寫,也就是說start和START是一樣的,請不要用大小寫方式去區(qū)分不同的標(biāo)號。
3.7小燈控制程序ORG0START:MOVDPTR,#TABLOOP:CLRAMOVCA,@A+DPTRCJNEA,#0FFH,SHOWAJMPSTARTSHOW:MOVP1,AACALLDELAYINCDPTRAJMPLOOPDELAY:MOVR5,#2D0:MOVR7,#250D1:MOVR6,#250D2:DJNZR6,D2DJNZR7,D1DJNZR5,D0RETTAB:DB11111110B,11111101B,11111011B,11110111B,11101111BDB11011111B,10111111B,01111111B,01111111B,10111111BDB11011111B,11101111B,11110111B,11111011B,11111101BDB11111110B,10000001B,01000010B,00100100B,00011000BDB11000000B,01100000B,00110000B,00011000B,00001100BDB00000110B,00000011B,10101010B,01010101B,10010101BDB01101010B,10100101B,01010101B,10001010B,01101000BDB10110101B,01000010B,10000000B,01000000B,00100000BDB00010000B,00001000B,00000100B,00000010B,00000001BDB00000000B,00000001B,00000010B,00000100B,00001000BDB00010000B,00100000B,01000000B,10000000B,11011101BDB11101011B,11101101B,11101011B,11011011B,10111111BDB01111011B,10111011B,11011111B,11101011B,10110101BDB11011011B,01101101B,11110000B,00001111B,01110000BDB00001110B,00110000B,00010000B,00001000B,00001000BDB00001
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)保臨時披露制度
- 化學(xué)試劑管理五雙制度
- 利民轉(zhuǎn)債的交易制度
- 2026年海洋能發(fā)電公司安全風(fēng)險防范管理制度
- 2026春貴州貴陽市觀山湖區(qū)第七中學(xué)招臨聘教師6人備考題庫含答案詳解
- 2026年光建一體化科技公司精密設(shè)備存儲與運(yùn)輸管理制度
- 2026江蘇南京大學(xué)化學(xué)學(xué)院助理招聘備考題庫及答案詳解(典優(yōu))
- (2025年)泰安市泰山區(qū)網(wǎng)格員考試題庫及答案
- (2025年)節(jié)能減排知識競賽試題答案全
- 2026江蘇南京大學(xué)化學(xué)學(xué)院博士后招聘備考題庫附答案詳解(綜合卷)
- 2026年安徽皖信人力資源管理有限公司公開招聘宣城市涇縣某電力外委工作人員筆試備考試題及答案解析
- 骨科患者石膏固定護(hù)理
- 人教版(2026)八年級下冊英語UNIT 4 Wonders of Nature講義
- 供熱運(yùn)行與安全知識課件
- 長期照護(hù)師技能考試試卷與答案
- Unit 1 Time to Relax Section A(1a-2d)教學(xué)課件 人教新教材2024版八年級英語下冊
- 工程項(xiàng)目居間合同協(xié)議書范本
- 2025年福建省廈門城市職業(yè)學(xué)院(廈門開放大學(xué))簡化程序公開招聘事業(yè)單位專業(yè)技術(shù)崗位人員(2025年3月)考試筆試參考題庫附答案解析
- 2025年及未來5年中國對叔丁基苯甲酸市場供需現(xiàn)狀及投資戰(zhàn)略研究報告
- 造價管理限額設(shè)計(jì)
- 機(jī)房空調(diào)安裝協(xié)議書
評論
0/150
提交評論