單片機(jī)原理課程設(shè)計(jì)16乘16點(diǎn)陣設(shè)計(jì)_第1頁
單片機(jī)原理課程設(shè)計(jì)16乘16點(diǎn)陣設(shè)計(jì)_第2頁
單片機(jī)原理課程設(shè)計(jì)16乘16點(diǎn)陣設(shè)計(jì)_第3頁
單片機(jī)原理課程設(shè)計(jì)16乘16點(diǎn)陣設(shè)計(jì)_第4頁
單片機(jī)原理課程設(shè)計(jì)16乘16點(diǎn)陣設(shè)計(jì)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、16*16 點(diǎn)陣設(shè)計(jì)摘 要單片機(jī)是為各類專用控制器而設(shè)計(jì)的通用或?qū)S玫奈⑿陀?jì)算機(jī)系統(tǒng),高密度集成了普通計(jì)算機(jī)微處理系統(tǒng),一定容量的 ram 和 rom 以及輸入/輸出接口,定時(shí)器等電路于一塊芯片上構(gòu)成的。它的優(yōu)點(diǎn)是體積小、重量輕、抗干擾能力強(qiáng),對(duì)環(huán)境要求不高,價(jià)格低廉,可靠性高,靈活性好,開發(fā)較為容易。在現(xiàn)代工業(yè)控制和一些智能化儀器儀表中,越來越多的場(chǎng)所需要用點(diǎn)陣圖形來顯示漢字,漢字顯示屏也廣泛應(yīng)用到汽車報(bào)站器,廣告屏等。led 顯示屏分為圖文顯示屏和視頻顯示屏,均由 led 矩陣塊組成。用點(diǎn)陣方式構(gòu)成圖形或文字,是非常靈活的,可以根據(jù)需要任意組成和變化,只要設(shè)計(jì)好合適的數(shù)據(jù)文件,就可以得到滿

2、意的顯示效果,因而采用點(diǎn)陣式圖文顯示屏顯示經(jīng)常需要變化的信息是非常有效的。本次課程設(shè)計(jì)實(shí)現(xiàn) led 點(diǎn)陣屏核心功能即漢字的多樣化顯示。加深對(duì)單片機(jī)課程的全面認(rèn)識(shí)和掌握,對(duì)單片機(jī)課程的應(yīng)用進(jìn)一步的了解。將單片機(jī)軟硬件結(jié)合起來對(duì)程序進(jìn)行編輯,校驗(yàn),鍛煉實(shí)踐能力和理論聯(lián)系實(shí)際的能力。關(guān)鍵詞:?jiǎn)纹瑱C(jī),led 顯示屏,點(diǎn)陣目 錄1 課題描述.12 芯片介紹.12.1 51 系列單片機(jī)簡(jiǎn)介.22.2 74ls154 芯片介紹 .62.3 74ls373 芯片介紹 .73 硬件設(shè)計(jì).84 軟件設(shè)計(jì).104.1 單片機(jī)延時(shí)子程序.104.2 程序流程圖.124.3 程序代碼.125 調(diào)試或性能分析.15總 結(jié)

3、.16致 謝.17參考文獻(xiàn).181 課題描述單片微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),它是為各類專用控制器而設(shè)計(jì)的通用或?qū)S玫奈⑿陀?jì)算機(jī)系統(tǒng)。自 20 世紀(jì) 70 年代問世以來,以極其高的性價(jià)比受到人們的重視和關(guān)注,所以應(yīng)用很廣,發(fā)展很快。在現(xiàn)代工業(yè)控制和一些智能化儀器儀表中,越來越多的場(chǎng)所需要用點(diǎn)陣圖形來顯示漢字,漢字顯示屏也廣泛應(yīng)用到汽車報(bào)站器,廣告屏等。所以研究 led 顯示有實(shí)用意義?,F(xiàn)代 led 的發(fā)展很快,很多研究領(lǐng)域已經(jīng)非常深刻,實(shí)際情況是:很多相關(guān)的知識(shí)已經(jīng)遠(yuǎn)遠(yuǎn)超出我們?cè)谛W(xué)生的能力范圍,所以在本設(shè)計(jì)中只是簡(jiǎn)單的研究一下用單片機(jī)驅(qū)動(dòng)的 led 顯示移動(dòng)的漢字。共有兩個(gè)目的:一是制作一個(gè)簡(jiǎn)單實(shí)用

4、的顯示文字的 led 點(diǎn)陣;二是通過制作 led 點(diǎn)陣增強(qiáng)對(duì) led 點(diǎn)陣的了解和應(yīng)用,以及復(fù)習(xí)和鞏固單片機(jī)知識(shí)。本次設(shè)計(jì)的 16x16 點(diǎn)陣需要 32 個(gè)驅(qū)動(dòng),分別為 16 個(gè)列驅(qū)動(dòng)及 16 個(gè)行驅(qū)動(dòng)。每個(gè)行與每個(gè)列可以選中一個(gè)發(fā)光管,共有 256 個(gè)發(fā)光管,采用動(dòng)態(tài)驅(qū)動(dòng)方式。每次顯示一行后再顯示下一行。2 芯片介紹 led 點(diǎn)陣總體框圖如圖 1 所示,點(diǎn)陣電路大體上可以分成微機(jī)本身的硬件、顯示驅(qū)動(dòng)電路、控制信號(hào)電路三部分。控制電路部分包括一個(gè) 51cup 和一些外圍電路。在整個(gè)電路當(dāng)中此控制電路部分相當(dāng)于一個(gè)上位機(jī),它負(fù)責(zé)控制整個(gè)電路以及相應(yīng)的程序的運(yùn)行、與 pc 機(jī)的串行通訊、以及給屏體

5、電路部分發(fā)送命令。點(diǎn)陣顯示屏體以及它的行和列的各個(gè)驅(qū)動(dòng)電路。由于兩部分的電路在制板時(shí)可以放在一起,所以可以將其字庫放到控制電路部分使用串行通訊方式來與屏體電路部分進(jìn)行數(shù)據(jù)和命令的傳送。此顯示電路采用掃描方式進(jìn)行顯示時(shí),每行有一個(gè)行驅(qū)動(dòng)器,各行的同名列共用一個(gè)列驅(qū)動(dòng)器。由行譯碼器給出的行選通信號(hào),從第一行開始,按順序依次對(duì)各行掃描(把該行與電源的一端接通) 。另一方面,根據(jù)各列鎖存的數(shù)據(jù),確定相應(yīng)的列驅(qū)動(dòng)器是否將該列與電源的另一端接通。接通的列就在該行該列點(diǎn)燃相應(yīng)的 ledl 未接通的列所對(duì)應(yīng)的 led 熄滅??赏ㄟ^掃描輸出口的控制實(shí)現(xiàn)顏色的轉(zhuǎn)換。圖 1 點(diǎn)陣的總體框圖2.1 51 系列單片機(jī)簡(jiǎn)

6、介單片機(jī)(microcontroller,又稱微處理器)是在一塊硅片上集成了各種部件的微型機(jī),這些部件包括中央處理器 cpu、數(shù)據(jù)存儲(chǔ)器 ram、程序存儲(chǔ)器rom、定時(shí)器/計(jì)數(shù)器和多種 i/o 接口電路。8051 單片機(jī)的基本結(jié)構(gòu)見圖 2。圖 2 8051 單片機(jī)的基本結(jié)構(gòu)8051 系列的內(nèi)部結(jié)構(gòu)可以劃分為 cpu、存儲(chǔ)器、并行口、串行口、定時(shí)器/計(jì)數(shù)器、中斷邏輯幾部分。(1)中央處理器8051 的中央處理器由運(yùn)算器和控制器構(gòu)成,其中包括若干特殊功能寄存器(sfr) 。算術(shù)邏輯單元 alu 能對(duì)數(shù)據(jù)進(jìn)行加、減、乘、除等算術(shù)運(yùn)算;“與”、“或”、 “異或”等邏輯運(yùn)算以及位操作運(yùn)算。alu 只能進(jìn)

7、行運(yùn)算,運(yùn)算的操作數(shù)可以事先存放到累加器 acc 或寄存器tmp 中,運(yùn)算結(jié)果可以送回 acc 或通用寄存器或存儲(chǔ)單元中,累加器 acc 也可以寫成 a。b 寄存器在乘法指令中可以用來存放一個(gè)乘數(shù),在除法指令中用來存放除數(shù),運(yùn)算后 b 中為部分運(yùn)算結(jié)果。alu 主要用于完成二進(jìn)制數(shù)據(jù)的算術(shù)和邏輯運(yùn)算,并通過對(duì)運(yùn)算結(jié)果的判斷影響程序狀態(tài)字寄存器 psw 中有關(guān)位的狀態(tài)。 程序狀態(tài)字 psw 是個(gè) 8 位寄存器,用來寄存本次運(yùn)算的特征信息,用到其中七位。psw 的格式如下所示,其各位的含義如表 1。表 1 程序狀態(tài)字 pswcy:進(jìn)位標(biāo)志。在進(jìn)行加法或減法運(yùn)算時(shí),若運(yùn)算結(jié)果的最高位有進(jìn)位或借位,c

8、y=1,否則 cy=0,在執(zhí)行位操作指令時(shí),cy 作為位累加器。ac:輔助進(jìn)位標(biāo)志。在進(jìn)行加法或減法運(yùn)算時(shí),若低半字節(jié)向高半字節(jié)有進(jìn)位或借位, ac=1,否則 ac=0,ac 還作為 bcd 碼運(yùn)算調(diào)整時(shí)的判別位。f0:用戶可設(shè)定的標(biāo)志位,可置位/復(fù)位,也可供測(cè)試。rs1 和 rs0:工作寄存器組選擇,如表 2 所示。表 2 rs1 和 rs0 工作寄存器組選擇rs1rs0工作寄存器組片內(nèi) ram 地址00第 0 組 00h07h 01第 1 組08h0fh 10第 2 組10h17h 11第 3 組18h1fh ov:溢出標(biāo)志。當(dāng)兩個(gè)帶符號(hào)的單字節(jié)數(shù)進(jìn)行運(yùn)算,結(jié)果超出-128+127的范圍時(shí)

9、,ov=1,表示有溢出,否則 ov=0 表示無溢出。 p:奇偶校驗(yàn)標(biāo)志。每條指令指行完畢后,都按照累加器 a 中“1”的個(gè)數(shù)來決定 p 值,當(dāng)“1”的個(gè)數(shù)為奇數(shù)時(shí),p=1,否則 p=0。 psw 中的 d1 位為保留位,對(duì)于 8051 來說沒有意義,對(duì)于 8052 來說為用戶標(biāo)志,與 f0 相同。 控制器包括程序計(jì)數(shù)器 pc、指令寄存器、指令譯碼器、數(shù)據(jù)指針 dptr、堆棧指針 sp、緩沖器以及定時(shí)與控制電路等??刂齐娐吠瓿芍笓]控制工作,協(xié)調(diào)單片機(jī)各部分正常工作。程序計(jì)數(shù)器 pc:當(dāng)一條指令按 pc 所指向的地址從程序存儲(chǔ)器中取出之后,pc 的值會(huì)自動(dòng)增量,即指向下一條指令。堆棧指針 sp:用

10、來指示堆棧的起始地址。80c51 單片機(jī)的堆棧位于片內(nèi)ram 中,而且屬于“上長(zhǎng)型”堆棧,復(fù)位后 sp 被初始化為 07h,使得堆棧實(shí)際上由 08h 單元開始。指令譯碼器:當(dāng)指令送入指令譯碼器后,由譯碼器對(duì)該指令進(jìn)行譯碼,cpu 根據(jù)譯碼器輸出的電平信號(hào)使定時(shí)控制電路產(chǎn)生執(zhí)行該指令所需要的各種控制信號(hào)。數(shù)據(jù)指針寄存器 drtr:它是一個(gè) 16 位寄存器,由高位字節(jié) dph 和低位字節(jié) dpl 組成,用來存放 16 位數(shù)據(jù)存儲(chǔ)器的地址,以便對(duì)片外 64kb 的數(shù)據(jù)ram 區(qū)進(jìn)行讀寫操作。片內(nèi) ram 有 256 個(gè)字節(jié),其中 00h7fh 地址空間是直接尋址區(qū),該區(qū)域內(nèi)從 00h1fh 地址為工

11、作寄存器區(qū),安排了 4 組工作寄存器,每組都為 r0r7,在某一時(shí)刻,cpu 只能使用其中任意一組工作寄存器,由程序狀態(tài)字 psw 中 rs0 和 rs1 的狀態(tài)決定。(2)存儲(chǔ)器組織8051 單片機(jī)在物理上有三個(gè)存儲(chǔ)空間:片內(nèi)數(shù)據(jù)存儲(chǔ)器 ram 、片外數(shù)據(jù)存儲(chǔ)器 ram 、程序存儲(chǔ)器 rom 。程序存儲(chǔ)器 rom 地址空間為 64kb,片外數(shù)據(jù)存儲(chǔ)器 ram 也有 64kb 的尋址區(qū),在地址上是與 rom 重迭的。8051 單片機(jī)通過不同信號(hào)來選通 rom或 ram。當(dāng)從外部 rom 中取指令時(shí),采用選通信號(hào) psen,而從外部 ram中讀寫數(shù)據(jù)時(shí)則采用讀 rd 和寫 wr 信號(hào)或來選通,因

12、此不會(huì)因地址重迭而發(fā)生混亂。 片內(nèi) ram 的 20h2fh 地址單元為位尋址區(qū),其中每個(gè)字節(jié)的每一位都規(guī)定了位地址。每個(gè)地址單元除了可進(jìn)行字節(jié)操作之外,還可進(jìn)行位操作。片內(nèi) ram 的 80hffh 地址空間是特殊功能寄存器 sfr 區(qū),對(duì)于 51 子系列在該區(qū)域內(nèi)安排了 21 個(gè)特殊功能寄存器,對(duì)于 52 子系列則在該區(qū)域內(nèi)安排了 26 個(gè)特殊功能寄器,同時(shí)擴(kuò)展了 128 個(gè)字節(jié)的間接尋址片內(nèi) ram,地址也為 80ffh,與 sfr 區(qū)地址重迭。8051 的存儲(chǔ)器組成結(jié)構(gòu)如圖 3 所示。圖 3 8051 的存儲(chǔ)器組成結(jié)構(gòu)(3)管腳說明vcc:供電電壓。gnd:接地。p0 口(p0.0p0

13、.7):該端口為漏極開路的 8 位準(zhǔn)雙向口,它為外部低 8位地址線和 8 位數(shù)據(jù)線復(fù)用端口驅(qū)動(dòng)能力為 8 個(gè) lsttl 負(fù)載。p1 口(p1.0p1.7):它是一個(gè)內(nèi)部帶上拉電阻的 8 位準(zhǔn)雙向 i/o 口,p1口的驅(qū)動(dòng)能力為 4 個(gè) lsttl 負(fù)載。p2 口(p2.0p2.7):它為一個(gè)內(nèi)部帶上拉電阻的 8 位準(zhǔn)雙向 i/o 口,p2口的驅(qū)動(dòng)能力也為 4 個(gè) lsttl 負(fù)載。在訪問外部程序存儲(chǔ)器時(shí),作為高 8 位地址線。p3 口(p3.0p3.7):為內(nèi)部帶上拉電阻的 8 位準(zhǔn)雙向 i/o 口,p3 口除了作為一般的 i/o 口使用之外,每個(gè)引腳都具有第二功能。p3 口也可作為 at8

14、9c51 的一些特殊功能口,如下所示:p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 /int0(外部中斷 0)p3.3 /int1(外部中斷 1)p3.4 t0(計(jì)時(shí)器 0 外部輸入)p3.5 t1(計(jì)時(shí)器 1 外部輸入)p3.6 /wr(外部數(shù)據(jù)存儲(chǔ)器寫選通)p3.7 /rd(外部數(shù)據(jù)存儲(chǔ)器讀選通)p3 口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。時(shí)鐘電路引腳 xtal1 和 xtal2: xtal1:接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,若使用外部 ttl 時(shí)鐘時(shí),該引腳必須接地。 xtal2:接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒

15、相放大器的輸出,若使用外部 ttl 時(shí)鐘時(shí),該引腳為外部時(shí)鐘的輸入端。地址鎖存允許 ale: 系統(tǒng)擴(kuò)展時(shí),ale 用于控制地址鎖存器鎖存 p0 口輸出的低 8 位地址,從而實(shí)現(xiàn)數(shù)據(jù)與低位地址的復(fù)用。外部程序存儲(chǔ)器讀選通信號(hào) psen:psen 是外部程序存儲(chǔ)器的讀選通信號(hào),低電平有效。程序存儲(chǔ)器地址允許輸入端 ea /vpp: 當(dāng) ea 為高電平時(shí),cpu 執(zhí)行片內(nèi)程序存儲(chǔ)器指令,但當(dāng) pc 中的值超過0fffh 時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行片外程序存儲(chǔ)器指令。當(dāng) ea 為低電平時(shí),cpu 只執(zhí)行片外程序存儲(chǔ)器指令。復(fù)位信號(hào) rst:該信號(hào)高電平有效,在輸入端保持兩個(gè)機(jī)器周期的高電平后,就可以完成復(fù)位操

16、作。2.2 74ls154 芯片介紹 1、74ls154 功能簡(jiǎn)介54/74154 為 4 線16 線譯碼器,當(dāng)選通端(g1、g2)均為低電平時(shí),可將地址端(abcd)的二進(jìn)制編碼在一個(gè)對(duì)應(yīng)的輸出端,以低電平譯出。 如果將 g1 和 g2 中的一個(gè)作為數(shù)據(jù)輸入端,由 abcd 對(duì)輸出尋址,74ls154 還可作 1 線-16 線數(shù)據(jù)分配器。圖 4 是芯片 74ls154 管腳。圖 4 芯片 74ls154 管腳圖2、引腳功能介紹a、b、c、d 譯碼地址輸入端(低電平有效);g1、g2 選通端(低電平有效);015 輸出端(低電平有效)。3、真值表 表 3 74ls154 真值表2.3 74ls

17、373 芯片介紹 373 為三態(tài)輸出的八 d 透明鎖存器,共有 54/74s373 和 54/74ls373 兩種線路結(jié)構(gòu)型式。373 為三態(tài)輸出的 8d 透明鎖存器,373 的輸出端 o0-o7 可直接與總線相連。當(dāng)三態(tài)允許控制端 oe 為低電平時(shí),o0-o7 為正常邏輯狀態(tài),可用來驅(qū)動(dòng)負(fù)載和總線。當(dāng) oe 為高電平時(shí),o0-o7 呈高阻態(tài),即不驅(qū)動(dòng)總線,也不為總線的負(fù)載,但鎖存器內(nèi)部的邏輯操作不受影響。當(dāng)鎖存允許端 le 為高電平時(shí),o 隨數(shù)據(jù) d 而變。當(dāng) le 為低電平時(shí),o 被鎖存在已建立的數(shù)據(jù)電平中。當(dāng) le 端施密特觸發(fā)器的輸入滯后作用,使交流和直流噪聲抗擾度被改善400mv。其

18、管腳圖如圖 5。圖 5 74ls373 管腳圖1、373 引出端符號(hào)d0d7數(shù)據(jù)輸入端 oe三態(tài)允許控制端(低電平有效)le鎖存允許端 o0o7輸出端2、74ls373 真值表表 4 373 真值表3 硬件設(shè)計(jì)復(fù)位信號(hào) rst 高電平有效,在輸入端保持兩個(gè)機(jī)器周期的高電平后,就可以完成復(fù)位操作。復(fù)位的實(shí)現(xiàn)通常用 2 種方式:開機(jī)上電復(fù)位和外部手動(dòng)復(fù)位,本設(shè)計(jì)用的是外部手動(dòng)復(fù)位。電路圖 6 如下:圖 6 單片機(jī)復(fù)位圖圖 7 單片機(jī)最小應(yīng)用系統(tǒng)原理圖注:該最小系統(tǒng)由按鍵復(fù)位 reset 電路、晶體振蕩電路以及 i/o 接口電路組成。at89c51 工作電壓 vcc=5v,其 ea 引腳需接高電平,

19、5v 電源電路如圖8 所示。圖 8 單片機(jī)電源原理圖注:該電源電路主要模塊為 ic7805,它能輸出穩(wěn)定的 5v 電壓,圖中整流橋是將市電轉(zhuǎn)變?yōu)橹绷麟?,電容起到濾波作用,由 7805 的 out 引腳輸出 5v電壓。最后,單片機(jī)硬件設(shè)計(jì)總電路圖就并聯(lián)多個(gè) 8*8 的 led 組成 16*16 的點(diǎn)陣,則一個(gè)掃描信號(hào)同時(shí)要驅(qū)動(dòng)兩行的 led。如下圖 9 所示。這時(shí)候就需要靠鎖存器(74ls373)將這兩組顯示信號(hào)鎖住,此處的鎖存器是以低態(tài)輸出的。當(dāng)74ls373 得 g 腳為高態(tài)時(shí),數(shù)據(jù)可以從輸入端傳輸?shù)芥i存器中;g 腳為低態(tài)時(shí),數(shù)據(jù)被鎖住,不會(huì)隨輸入端而變。另外 oc 腳為輸出控制引腳,當(dāng) o

20、c 腳為高態(tài)時(shí),輸出呈現(xiàn)高阻抗;oc 腳為低態(tài)時(shí),數(shù)據(jù)會(huì)由鎖存器輸出。在這個(gè)電路中驅(qū)動(dòng)的掃描信號(hào)總共有 16 條,如果直接由 8051 輸出,將占用 2 個(gè) port 口,浪費(fèi)資源不太理想,在此使用的是一個(gè) 4 對(duì) 16 位譯碼器(74ls154) ,這個(gè)譯碼器是將輸入的 16 進(jìn)位碼輸出低態(tài)的掃描信號(hào)。輸出的低態(tài)掃描信號(hào)可直接接到 pnp 晶體管的基極,如果太大的話也可以先經(jīng)過限流電阻在接到 pnp 晶體管的基極,信號(hào)最后經(jīng)過晶體管的放大后即可推動(dòng) 16 個(gè)led 點(diǎn)陣了。圖 9 總電路圖4 軟件設(shè)計(jì)4.1 單片機(jī)延時(shí)子程序延時(shí)子程序在單片機(jī)編程中使用非常廣泛,也很重要。程序設(shè)計(jì)是單片機(jī)開發(fā)

21、最重要的工作,而程序在執(zhí)行過程中常常需要完成延時(shí)功能。在本設(shè)計(jì)中,行向的掃描要控制每行的掃描時(shí)間,還有所有的字移動(dòng)有一定的時(shí)間間隔,而在所有的字移動(dòng)一遍結(jié)束的一瞬間到下一遍移動(dòng)開始的一瞬間要有延時(shí),這時(shí)的延時(shí)可以和移動(dòng)的時(shí)間相同以保持移動(dòng)的連貫性,也可以不同作為每次開始的停頓。1、機(jī)器周期和指令周期(1)機(jī)器周期是指單片機(jī)完成一個(gè)基本操作所花費(fèi)的時(shí)間,一般要用微秒來計(jì)量單片機(jī)的運(yùn)行速度,51 單片機(jī)的一個(gè)機(jī)器周期包括 12 個(gè)時(shí)鐘振蕩周期,也就是說 51 單片機(jī)采用 12mhz 晶振,那么執(zhí)行一個(gè)機(jī)器周期就只需要 1 微秒;如果采用的是 6mhz 的晶振,那么執(zhí)行一個(gè)機(jī)器周期就只需要 2 微秒

22、。(2)指令周期是指單片機(jī)執(zhí)行一條指令所需要的時(shí)間,一般利用單片機(jī)的機(jī)器周期來計(jì)量指令周期。在 51 單片機(jī)里有單周期指令(執(zhí)行這條指令只需一個(gè)機(jī)器周期) ,雙周期指令(執(zhí)行這條指令只需要兩個(gè)機(jī)器周期) ,四周期指令(執(zhí)行這條指令需要四個(gè)機(jī)器周期) 。除了乘、除兩條指令是四周期指令,其余均為單周期或雙周期指令。也就是說,如果 51 單片機(jī)采用的是 12mhz 晶振,那么它執(zhí)行一條指令一般只需 12 微秒的時(shí)間;如果采用的是 6mhz 晶振,那么它執(zhí)行一條指令一般只需 24 微秒的時(shí)間。振蕩周期、時(shí)鐘周期、機(jī)器周期、指令周期的關(guān)系是:振蕩周期:為單片機(jī)提供時(shí)鐘信號(hào)的振蕩源的周期。時(shí)鐘周期:振蕩源

23、信號(hào)經(jīng)二分頻后形成的時(shí)鐘脈沖信號(hào),為振蕩周期的 2倍。 機(jī)器周期:完成一個(gè)基本操作所需的時(shí)間,通常為 12 個(gè)振蕩周期。指令周期:指 cpu 執(zhí)行一條指令所需要的時(shí)間,一個(gè)指令周期通常含有14 個(gè)機(jī)器周期。 2、延時(shí)指令在單片機(jī)編程里面并沒有真正的延時(shí)指令,從上面的概念中我們知道單片機(jī)每執(zhí)行一條指令都需要一定的時(shí)間,所以要達(dá)到延時(shí)的效果,只須讓單片機(jī)不斷地執(zhí)行沒有具體實(shí)際意義的指令,從而達(dá)到了延時(shí)的效果。(1)數(shù)據(jù)傳送指令 mov數(shù)據(jù)傳送指令功能是將數(shù)據(jù)從一個(gè)地方復(fù)制、拷貝到另一個(gè)地方。如:mov r7,80h:將數(shù)據(jù) 80h 送到寄存器 r7,就單這條指令而言并沒有任何實(shí)際意義,而執(zhí)行該指令

24、則需要一個(gè)機(jī)器周期。(2)空操作指令 nop空操作指令功能只是讓單片機(jī)執(zhí)行沒有意義的操作,消耗一個(gè)機(jī)器周期。(3)循環(huán)轉(zhuǎn)移指令 djnz循環(huán)轉(zhuǎn)移指令功能是將第一個(gè)數(shù)進(jìn)行減 1 并判斷是否為 0,不為 0 則轉(zhuǎn)移到指定地點(diǎn);為 0 則往下執(zhí)行。除了可以給定地址標(biāo)號(hào)讓其跳轉(zhuǎn)外,還可以將地址符號(hào)改成為,這樣程序就跳回本指令執(zhí)行。4.2 程序流程圖圖 10 程序流程圖4.3 程序代碼org 0000hclr f0start: mov a,#00h mov p2,a mov r3,,200d1: mov r5,#250f1: djnz r5,f1 djnz r3,d1move: mov 20h,#00

25、mov r4,00h ;74ls154 掃描指針初值為 00m1: mov r1,#65m2: mov r6,#16 mov r0,20hm3: mov a,r4 jb f0,organgn clr p0.2setb p0.3mov p1,asjmp m4organge:mov p3,aclr p0.3m4: mov a,r0mov dptr,#tablemovc a,a+dptrsetb p1.0clr p0.0mov p2,ainc r0mov a,r0mov dptr,#tablemovc a,a+dptrsetb p0.0clr p0.1mov p2,ainc r0mov r3,,50djnz r3,$mov a,#00hmov p2,ainc r4djnz r6,m3mov r4,#00djnz r1,m2mov a,20hadd a,#02mov 20h,axrl a,#128jnz m1cpl f0sjmp starttable:db 001h,000h,001h,000h,03fh,0f8h,001h,000h,0ffh,0feh,000h,000h,01fh,0f0h,010h,010hdb 01fh,0f0h,003h,004h,004h

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論