版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
單片機原理與應項目——LED顯示41、實際上,我們想要的不是針對犯罪的法律,而是針對瘋狂的法律?!R克·吐溫42、法律的力量應當跟隨著公民,就像影子跟隨著身體一樣?!惪ɡ麃?3、法律和制度必須跟上人類思想進步。——杰弗遜44、人類受制于法律,法律受制于情理?!小じ焕?5、法律的制定是為了保證每一個人自由發(fā)揮自己的才能,而不是為了束縛他的才能?!_伯斯庇爾單片機原理與應項目——LED顯示單片機原理與應項目——LED顯示41、實際上,我們想要的不是針對犯罪的法律,而是針對瘋狂的法律。——馬克·吐溫42、法律的力量應當跟隨著公民,就像影子跟隨著身體一樣。——貝卡利亞43、法律和制度必須跟上人類思想進步。——杰弗遜44、人類受制于法律,法律受制于情理?!小じ焕?5、法律的制定是為了保證每一個人自由發(fā)揮自己的才能,而不是為了束縛他的才能?!_伯斯庇爾項目LED電子顯示學習內(nèi)容:編譯軟件KEIL、仿真軟件proteus的操作與聯(lián)調(diào);單片機端口應用;C51語言基本知識;了解常用芯片。任務一一只LED閃爍任務二流水顯示八只LED任務三帶擴展口的流水燈(兩部分)任務四LED點陣顯示相關知識Proteus軟件試一試Keilc軟件任務一任務二C51基本語法51單片機管腳任務三_1Wave與keil實驗臺流水燈(任務三_2)任務四-LED點陣小結芯片資料NOTE與C語言基本相同:+-*/(加減乘除)>>=<<=(大于大于等于小于小于等于)==!=(測試等于測試不等于)&&||!(邏輯與邏輯或邏輯非)>><<(位右移位左移)&|(按位與按位或)∧~(按位異或按位取反)C-51的運算符C-51的基本語句與標準C語言基本相同:break退出最內(nèi)層循環(huán)case;switch語句中的選擇項continue轉向下一次循環(huán)default;switch語句中的失敗選擇項for構成for循環(huán)結構goto構成goto轉移結構if構成if..else選擇結構return函數(shù)返回while構成while和do..while循環(huán)結構c51基本結構#include<reg51.h>
/*頭文件說明部份*/
unsignedcharx1,x2;
/*全局變量聲明部份*/
…Function1(…){
……}/*功能函數(shù)定義部份*/
main(){
inti,j;
/*整型變量聲明部份*/
Function1(…);
/*功能函數(shù)說明部份*/
……}#include<reg51.h>unsignedchari;voiddelay(){unsignedcharj,k;for(j=i;j>0;j--) for(k=250;k>0;k--);}voidmain(){unsignedchar
m,n;while(1){n=0x01; for(m=0;m<=7;m++){P1=~n;i=10; delay(); n=n<<1; }}}重要庫函數(shù)1.專用寄存器include文件
例如8031、8051均為REG51.h其中包括了所有8051的SFR及其位定義,一般系統(tǒng)都必須包括本文件。2.絕對地址include文件absacc.h
該文件中實際只定義了幾個宏,以確定各存儲空間的絕對地址。3.動態(tài)內(nèi)存分配函數(shù),位于stdlib.h中4.緩沖區(qū)處理函數(shù)位于“string.h”中
其中包括拷貝比較移動等函數(shù)如:memccpymemchrmemcmpmemcpymemmovememset。5.輸入輸出流函數(shù),位于“stdio.h”中
流函數(shù)通過8051的串口或用戶定義的I/O口讀寫數(shù)據(jù),缺省為8051串口,如要修改,比如改為LCD顯示,可修改lib目錄中的getkey.c及putchar.c源文件,然后在庫中替換它們即可。6.本征庫函數(shù)位于“intrins.h”中包含charintlong變量的左右移動,空操作,判位等。關鍵字_at_為變量定義存儲空間絕對地址alien聲明與PL/M51兼容的函數(shù)bdata可位尋址的內(nèi)部RAMbit位類型
codeROMcompact使用外部分頁RAM的存儲模式data直接尋址的內(nèi)部RAMidata間接尋址的內(nèi)部RAMinterrupt中斷服務函數(shù)large使用外部RAM的存儲模式pdata分頁尋址的外部RAM_priority_RTX51的任務優(yōu)先級reentrant可重入函數(shù)
sbit聲明可位尋址的特殊功能位sfr8位的特殊功能寄存器sfr1616位的特殊功能寄存器small內(nèi)部RAM的存儲模式_task_實時任務函數(shù)using選擇工作寄存器組
xdata外部RAMKEILuVision2C51編譯器所支持的數(shù)據(jù)類型。在標準C語言中基本的數(shù)據(jù)類型為char,int,short,long,float和double,在C51編譯器中int和short相同,float和double相同,它們的具體定義見下表:C51的數(shù)據(jù)類型數(shù)據(jù)類型長度值域unsignedchar單字節(jié)0~255signedchar單字節(jié)-128~+127unsignedint雙字節(jié)0~65535signedint雙字節(jié)-32768~+32767unsignedlong四字節(jié)0~4294967295signedlong四字節(jié)-2147483648~+2147483647float四字節(jié)±1.175494E-38~±3.402823E+38*1~3字節(jié)對象的地址bit位0或1sfr單字節(jié)0~255sfr16雙字節(jié)0~65535sbit位0或1從數(shù)據(jù)存儲類型來說,8051系列有片內(nèi)、片外程序存儲器,片內(nèi)、片外數(shù)據(jù)存儲器,片內(nèi)程序存儲器還分直接尋址區(qū)和間接尋址類型,分別對應code、data、xdata、idata以及根據(jù)51系列特點而設定的pdata類型,使用不同的存儲器,將使程序執(zhí)行效率不同,在編寫C51程序時,最好指定變量的存儲類型,這樣將有利于提高程序執(zhí)行效率。與ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各種不同的模式對應不同的實際硬件系統(tǒng),也將有不同的編譯結果。在51系列中data,idata,xdata的區(qū)別data:固定指前面0x00-0x7f的128個RAM,速度最快,生成的代碼也最小。idata:固定指前面0x00-0xff的256個RAM,其中前128和data的128完全相同,只是因為訪問的方式不同。idata是用類似C中的指針方式訪問的。xdata:外部擴展RAM,指外部0x0000-0xffff空間,用類似C中的指針方式訪問或用絕對地址方式訪問。存儲器類型存儲器類型說明data直接訪問內(nèi)部數(shù)據(jù)存儲器(128字節(jié)),訪問速度最快bdata可位尋址內(nèi)部數(shù)據(jù)存儲器(16字節(jié)),允許位與字節(jié)混合訪問idata間接訪問內(nèi)部數(shù)據(jù)存儲器(256字節(jié)),允許訪問全部內(nèi)部地址pdata分頁訪問外部數(shù)據(jù)存儲器(256字節(jié))xdata外部數(shù)據(jù)存儲器(64KB)code程序存儲器(64KB)Keil軟件介紹啟動界面點擊Project菜單,選擇彈出的下拉式菜單中的NewProject,如下圖。接著彈出一個標準Windows文件對話窗口。如下圖在"文件名"中輸入您的第一個C程序項目名稱,這里我們用"test","保存"后的文件擴展名為uv2,這是KEILuVision2項目文件擴展名,
選擇所用的單片機類型新建文件“1”是新建文件的快捷按鈕,在“2”中出現(xiàn)一個新的文字編輯窗口“3”是存盤的快捷按鈕向項目中添加文件
1、2、3都是編譯按鈕。1是用于編譯單個文件。2是編譯當前項目(如果先前編譯過一次之后文件沒有編輯改動,不會再次重新編譯的)。3是重新編譯(每點擊一次均會再次編譯鏈接一次,不管程序是否有改動)。在3右邊的是停止編譯按鈕,只有點擊了前三個中的任一個,停止按鈕才會生效。4是信息窗口。5是包含了1、2、3。6是進入調(diào)試模式。圖中1為運行,2為停止,3是復位,4是打開串行調(diào)試窗口,5是串行調(diào)試窗口。
1.Proteus的基本性能1)Proteus系統(tǒng)包括.ISIS.EXE(電路原理圖設計.電路原理仿真)ARES.EXE(印刷電路版設計)兩個主要程序.其電路原理仿真功能,能用箭頭與顏色表示電流的方向與大小,而且有多種帶CPU的可編程序器件的仿真功能,不僅可作電路原理,模擬電路.數(shù)字電路實驗,而且可作單片機與接口實驗.2)Proteus的主界面可分為:
三大窗口:編輯窗口;器件工具窗口;瀏纜窗口.
兩大菜單:主菜單與輔助菜單(通用工具與專用工具菜單),其中主菜單有:文件菜單
瀏覽菜單編輯菜單庫操作菜單工具菜單設計菜單圖形分析菜單源文件菜單調(diào)試菜單模板菜單系統(tǒng)菜單幫助菜單主菜單通用工具菜單Proteus的主界面簡介專用工具菜單PCB電路電路編輯窗口坐標原點瀏覽窗口器件工具列表窗口仿真按鍵Proteus的主菜單簡介點擊主菜單主菜單編輯工具←點擊鼠標:點擊此鍵可取消左鍵的放置功能,但可編輯對象.←選擇元器件:在元件表選中器件,在編輯窗中移動鼠標,點擊左鍵放置器件.←標注聯(lián)接點:當兩條連線交叉時,放個接點表示連通.←標志網(wǎng)絡線標號:電路聯(lián)線可用網(wǎng)絡標號代替,相同標號的線是相同的.←放置文本說明:是對電路的說明,與電路仿真無關!←放置總線:當多線并行簡化聯(lián)線,用總線標示.←放置子電路:可將部分電路以子電路形式畫在另一圖紙上.←放置器件引腳:有普通.反相.正時鐘.反時鐘.短引腳.總線←放置圖紙內(nèi)部終端:有普通.輸入.輸出.雙向.電源.接地.總線.調(diào)試工具←放置分析圖:有模擬.數(shù)字.混合.頻率特性.傳輸特性.噪聲分析等.←放置錄音機:可錄/放聲音文件.←放置電源.信號源:有直流電源,正弦信號源,脈沖信號源等.←放置電壓探針:顯示網(wǎng)絡線上的電壓.←放置電流探針:串聯(lián)在指定的網(wǎng)絡線上,顯示電流值.←放置虛擬儀器:有示波器.計數(shù)器.RS232終端.SPI調(diào)試器.I2C調(diào)試器.信號發(fā)生器.圖形發(fā)生器.直流電壓表.直流電流表,交流電壓表.交流電流表.圖形工具←放置各種線:有器件.引腳.端口.圖形線.總線等←放置矩形框:移動鼠標到框的一角,按下左鍵拖動,釋放后完成.←放置圓形框:移動鼠標到圓心,按下左鍵拖動,釋放后完成.←放置圓弧線:鼠標移到起點,按下左鍵拖動,釋放后調(diào)整弧長,點擊鼠標完成.←畫閉合多邊形:鼠標移到起點,點擊產(chǎn)生折點,閉合后完成.←放置文字標簽:在編輯框放置說明文本標簽.←放置特殊圖形:可在庫中選擇各種圖形←放置特殊節(jié)點:可有原點.節(jié)點.標簽引腳名.引腳號.Proteus選擇圖標簡介Proteus元件庫簡介搜索關鍵詞元件分類子分類廠商連接器.插頭插座庫→數(shù)據(jù)轉換ADC.DAC→調(diào)試工具庫→可編程邏輯器件→電阻→簡單模擬器件→揚聲器.音響器件→555←模擬集成電路庫←電容庫←CMOS4000庫←二極管庫←ECL1000庫←電機庫←電感庫←拉普拉斯變換庫←存儲器庫←微處理器庫←混合類型庫←簡單模式庫←運算放大庫←光電器件庫←開關和繼電器←開關器件庫←熱電子器件庫←晶體管庫←晶體管庫←TTL74系列庫←TTL74LS系列庫型號類型特性元件圖形符號預覽元件PCB封裝預覽確認鍵5552.電路原理圖設計操作1)建立設計文件:打開ISIS系統(tǒng),選擇合適類型,確認建立無標題文件,并再存儲時命名即可.2)按左鍵:放置對象(含元件.電源.儀表):①根據(jù)對象類別,選擇相應模式圖標;②根據(jù)對象具體類型,選擇具體對象.--對象是元件要從元件庫中確認調(diào)至器件窗口!!③改變元件方向,元件在預覽/編輯窗口時,點擊旋轉鍵.④在編輯窗口點擊左鍵,放置對象(元件).按右鍵:確定對象--刪除對象:對要刪除對象雙擊右鍵;--拖動對象:對要拖動對象,按左鍵拖到目的地.3)編輯(修改)元件參數(shù):
①按右鍵選中對象(元件),②按左鍵編輯(修改)元件參數(shù).4)放置連線,建立電路圖:①按左鍵點擊第1個對象(元件),②再按左鍵點擊第2個對象(元件),二者間就有自動連線了!閃光燈電路圖55574147632214837610k10k47047010k10k10ufD1D2畫一畫Keil與proteus聯(lián)調(diào)注意問題1keil設置在出現(xiàn)的對話框里在右欄上部的下拉菜單里選中“ProteusVSMMonitor一51Driver”。并且還要點擊一下“Use”前面表明選中的小圓點。再點擊“Setting”按鈕,設置通信接口,在“Host”后面添上“127.0.0.1”,如果使用的不是同一臺電腦,則需要在這里添上另一臺電腦的IP地址(另一臺電腦也應安裝Proteus)。在“Port”后面添加“8000”。設置好的情形如左圖所示,點擊“OK”按鈕即可。最后將工程編譯,進入調(diào)試狀態(tài),并運行。單擊“Project菜單/OptionsforTarget”選項或者點擊工具欄的“optionfortarget”按鈕,彈出窗口,點擊“Debug”按鈕,出現(xiàn)如左圖所示頁面。
2proteus設置進入Proteus的ISIS,鼠標左鍵點擊菜單“Debug”,選中“useromotedebugermonitor”,如圖所示,便可實現(xiàn)KeilC與Proteus連接調(diào)試。Keil與proteus聯(lián)調(diào)注意問題試一試(任務一)1在proteus上畫出如下電路圖.2在keil中寫出如下程序,編譯.3運行程序,觀察電路中LED的變化.#include<reg51.h>#defineucharunsignedcharsbitP1_0=P1^0;voiddelay05(){uchari,j,k;for(i=5;i>0;i--)for(j=200;j>0;j--) for(k=250;k>0;k--);}voidmain(){while(1) { P1_0=0; delay05(); P1_0=1; delay05(); }}作業(yè)1完成單片機控制一只彩燈顯示的電路控制原理圖及相應驅動程序,并詳細注釋程序。2完成單片機控制八只彩燈顯示的電路控制原理圖及相應驅動程序,并詳細注釋程序。#include<reg51.h>#defineucharunsignedcharvoiddelay05(){uchari,j,k;for(i=5;i>0;i--)for(j=200;j>0;j--) for(k=250;k>0;k--);}voidmain(){ ucharm,n;while(1) { n=0x01; for(m=0;m<=7;m++){P2=~n; delay05(); n=n<<1;} }}試一試(任務二)1在proteus上畫出如下電路圖.2在keil中改變?nèi)缦鲁绦?變換顯示模式.3運行程序,觀察電路中LED的變化.單片機管腳雙向三態(tài)輸入輸出端口。P0口身兼兩職,既可作為地址總線(A0-A7),也可作為數(shù)據(jù)總線(D0-D7)。作為通用I/O時,是一個漏極開路電路。需外接上拉電阻。作為地址/數(shù)據(jù)總線使用時,不需處接上拉電阻。并行輸入和輸出端口P0P1口結構:P1口為8位準雙向輸入輸出端口。P2口結構
P2口作為通用I/O時,準雙向輸入輸出端口。
P2口作為高8位地址總線,A8-A15。
P2口與P0一起構成單片機與外電路相連接的擴展端口。通??梢杂脕頂U展存儲器、及與其它總線型連接方式的外設。P3口結構P3口作為通用I/O時,為準雙向輸入輸出端口。
P3口的第二功能。
·P3.0
串行輸入口(RXD)·P3.1
串行輸出口(TXD)·P3.2外中斷0(INT0)·P3.3外中斷1(INT1)·P3.4定時/計數(shù)器0的外部輸入口(T0)·P3.5定時/計數(shù)器1的外部輸入口(T1)·P3.6外部數(shù)據(jù)存儲器寫選通(WR)·P3.7外部數(shù)據(jù)存儲器讀選通(RD)試一試(任務三)1在proteus上畫出如下電路圖.2在keil中編制程序,要求能變換顯示模式.3運行程序,觀察電路中LED的變化.(WR與ALE)擴展LED編程程序參考鎖存器74LS3738D鎖存器8輸入:1D~8D8輸出:1O~8O輸入允許端:OE(1)輸出預選端:G(11)74LS373電平觸發(fā),鎖存緩沖74LS374上升沿觸發(fā)74LS273無三態(tài)門,用于只需 輸不需三態(tài)場合74LS1383-8譯碼器74LS2448路單向數(shù)據(jù)緩沖器74LS2458路雙向數(shù)據(jù)緩沖器緩沖器:無鎖存功能,在外設和CPU之間起緩沖驅動和隔離作用。總線緩沖器具有三態(tài)功能。鎖存器:除具有緩沖功能外還有數(shù)據(jù)鎖存記憶功能。芯片資料74LS373的真值表
H為高電平,L為低電平,Q0為原狀態(tài),Z為高阻抗,×為任意值。 74LS373鎖存器主要用于鎖存信息。 常用的鎖存器還有74LS374,573,574,Intel8282和8283等使能LE(11)輸出允許OE(1)輸入輸出HLLLHLHHLL×Q0×H×Z74LS138真值表LLLLLLLLCAB74LS2458路雙向數(shù)據(jù)緩沖器8輸入:A1~A8 8輸出:B1~B8允許端:G 方向端:DIRGDIR功能00AB01BA1ⅹ高阻A B Wave與keilWave仿真器硬件仿真功能與keil聯(lián)機(不再使用proteus軟件模仿硬件)具體步驟如下:
1.在Keil環(huán)境下建立項目,并把程序做為模塊加入項目。
2.在主菜單上,選[Project]->[OptionsforTarget‘...’],如圖出現(xiàn)如圖的設置窗,其中“C:\WAVE\BINWAVE.EXE/K”在設置窗中,再選擇[Debug]欄,選中[UseKeilMonitor-51Driver],按隨后的[Settings]按鈕,出現(xiàn)“TargetSetup”對話框,如圖選擇(波特率為115200)仿真器設置通信設置[端口選擇]:選擇仿真器與計算機連接的串口號.如果計算機與仿真器連接不上,請檢查通信端口是否選擇正確.[波特率選擇]:選擇仿真器與計算機連接的速度.如果在高速率時通信不流暢,請降低通信速率.[字符間隔]:選擇通信時,字符與字符之間的間隙,如果在小間隔時,通信不是很流暢,請調(diào)到較大的間隔.[使用偉福軟件模擬器]:如果選擇此項,可以在完全脫離硬件仿真器情況下,對軟件進行模擬執(zhí)行.如果使用硬件仿真器調(diào)試程序,請去掉[使用偉福軟件模擬器]前的選擇勾.[測試串行口]:用來檢測仿真器是否正確連接到計算機的串行口上.
彩燈實驗原理圖Y4->P2(11100XXX)0XE0帶擴展的彩燈程序參考#include<reg51.h>unsignedcharxdata*LEDAD;//彩燈地址unsignedcharLEDDATA;//顯示模式unsignedcharI;//循環(huán)次數(shù)voidDelay(unsignedintk)//12M晶振,k*1ms{unsignedintm,j;for(m=0;m<k;m++)//注意,此處無符號for(j=0;j<121;j++);}voidmain(void){LEDAD=0Xe000;//指向地址LEDDATA=0Xfe;//初始化LED,只亮1只,低電平點亮I=8;//8個LED*LEDAD=0Xff;//LED全滅while(I){*LEDAD=LEDDATA;I--;LEDDATA=LEDDATA>>1;Delay(500);}}項目任務要求:請詳細說明每一句功能如將e000分別換為c000、c800、d000、d800,觀察顯示情況ALE與WRvoidmain(){unsignedcharxdata*ledaddr;ledaddr=0x1234;while(1) { *ledaddr=0x56; }}指針是一個與地址相關的復合類型,它的值是數(shù)據(jù)存放的位置(地址)ALE與WR擴展LED實驗74LS373觀察圖,思考1兩片74LS373的地址.2如何編程對應如圖LED顯示.帶擴展的彩燈程序參考#include<reg51.h>unsignedcharxdata*LEDAD;//彩燈地址unsignedcharLEDDATA;//顯示模式unsignedcharI;//循環(huán)次數(shù)voidDelay(unsignedintk)//12M晶振,k*1ms{unsignedintm,j;for(m=0;m<k;m++)//注意,此處無符號for(j=0;j<121;j++);}voidmain(void){LEDAD=0X7800;//指向地址為何地址是0x78LEDDATA=0Xee;//初始化LED,只亮1只,低電平點亮I=8;//8個LED
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 分裂情感性精神病
- 防震疏散演練主題班會
- 2024年非公路礦用車項目投資申請報告代可行性研究報告
- 3.3.2鹽類的水解影響因素及應用 課件 高二上學期化學人教版(2019)選擇性必修1
- 智慧航安培訓方案
- 吉林省2024七年級數(shù)學上冊第1章有理數(shù)階段綜合訓練范圍1.9~1.14課件新版華東師大版
- 生命安全教育我的煩惱
- 草原上教案及教學反思
- 食堂食品安全培訓
- 水利資源利用審批管理辦法
- 多元智能測試題及多元智能測試量表
- 出貨檢驗報告三篇
- 完整版平安基礎性向測試智商測試題及問題詳解
- (完整版)基層版創(chuàng)傷中心建設指南(試行)
- 無公害生姜生產(chǎn)基地項目可行性研究報告
- 學習鄉(xiāng)村振興知識競賽100題及答案
- 05s502圖集閥門井安裝圖集
- 醫(yī)務人員醫(yī)學人文素養(yǎng)培訓
- 人工智能智慧樹知到答案章節(jié)測試2023年復旦大學
- 風險管理工具及方法FMEA
- 第五單元《圓》(單元解讀)-六年級數(shù)學上冊人教版
評論
0/150
提交評論