單片機原理及應用第4章

收藏

編號:119994385    類型:共享資源    大?。?span id="pdqy2ns" class="font-tahoma">9.65MB    格式:PPT    上傳時間:2022-07-16
10
積分
關 鍵 詞:
單片機 原理 應用
資源描述:
第4章 C51語言,4.1 C51的程序結(jié)構(gòu) 4.2 C51的數(shù)據(jù)結(jié)構(gòu) 4.3 C51與匯編語言的混合編程 4.4 C51仿真開發(fā)環(huán)境 4.5 C51初步應用編程,第4章單片機的C51語言,4.1 C51的程序結(jié)構(gòu) 4.2 C51的數(shù)據(jù)結(jié)構(gòu) 4.3 C51與匯編語言的混合編程 4.4 C51仿真開發(fā)環(huán)境 4.5 C51初步應用編程,第4章單片機的C51語言,51匯編語言能直接操作單片機的系統(tǒng)硬件,指令執(zhí)行速度快。但其程序可讀性差,且編寫、移植困難。,51單片機操作數(shù)的簡記符,實驗2匯編源代碼,第4章單片機的C51語言,C51是為51系列單片機設計的一種C語言,其特點:,C51語言已成為51系列單片機程序開發(fā)的主流軟件方法。,結(jié)構(gòu)化語言,代碼緊湊效率可與匯編語言媲美 接近真實語言,程序可讀性強易于調(diào)試、維護 庫函數(shù)豐富,編程工作量小產(chǎn)品開發(fā)周期短 機器級控制能力,功能很強適合于嵌入式系統(tǒng)開發(fā) 與匯編指令無關,易于掌握在單片機基礎上上手快,第4章單片機的C51語言,C51與標準C語言對比 相同之處:語法規(guī)則、程序結(jié)構(gòu)、編程方法,舉例:LED閃爍控制功能,;匯編程序 LOOP: CLR P1.0 ACALL DEL50 SETB P1.0 SJMP LOOP DEL50: MOV R7,#200 DEL1: MOV R6,#125 DJNZ R6,$ DJNZ R7,DEL1 RET END,第4章單片機的C51語言,預處理命令-,函數(shù)說明-,全局變量定義-,主函數(shù)-,自定義函數(shù)-,局部變量定義-,函數(shù)體,函數(shù)體-,/C51程序,第4章單片機的C51語言,C51與標準C語言對比 不同之處: 數(shù)據(jù)結(jié)構(gòu)(第4章)、中斷處理(第5章)、端口擴 展(第8章) 教學思路: 學習C51的數(shù)據(jù)結(jié)構(gòu)知識(理論部分) 學習C51軟件開發(fā)方法(Keil C軟件用法) 學習I/O口典型應用編程(入門與進階兩個層次),第4章單片機的C51語言,4.1 C51的程序結(jié)構(gòu) 4.2 C51的數(shù)據(jù)結(jié)構(gòu) 4.3 C51與匯編語言的混合編程 4.4 C51仿真開發(fā)環(huán)境 4.5 C51初步應用編程,第4章單片機的C51語言,1. C51的變量,在C語言編程中,數(shù)值可以發(fā)生改變的量稱為變量。,變量名與存儲單元地址相對應,變量值與存儲單元的內(nèi)容相對應。,例如,在51單片機多存儲空間中如何確定變量與地址的關系?,第4章單片機的C51語言,【存儲種類】數(shù)據(jù)類型【存儲類型】 變量名,(標準C),(標準C),* 括號項可以缺省(但需有缺省值),C51變量定義的四要素:,(C51特有),(標準C+C51),第4章單片機的C51語言,【存儲種類】數(shù)據(jù)類型【存儲類型】變量名,存儲種類用于說明變量的作用范圍: 1、auto(自動型)變量的作用范圍在定義它的函數(shù)體或語句塊內(nèi)。執(zhí)行結(jié)束后,變量所占內(nèi)存即被釋放。 2、extern(外部型) 在一個源文件中被定義為外部型的變量,在其它源文件中需要通過extern說明方可使用。 3、static(靜態(tài)型) 利用static可使變量定義所在的函數(shù)或語句塊執(zhí)行結(jié)束后,其分配的內(nèi)存單元繼續(xù)保留。 4、register(寄存器型) 目前已不推薦使用。,缺省存儲種類為auto (自動)型變量,第4章單片機的C51語言,數(shù)據(jù)類型用于表示數(shù)據(jù)存放格式,* 有符號數(shù)類型可以忽略signed標識符,標準C語言的數(shù)據(jù)類型,【存儲種類】數(shù)據(jù)類型 【存儲類型】變量名,除上述常規(guī)格式外,51單片機還有三種新的存儲格式:,第4章單片機的C51語言,bit型存儲格式,sfr型存儲格式,sfr bit型存儲格式,bit、sfr或sfr16、sbit,C51擴充的3種數(shù)據(jù)類型:,bit 型,關鍵詞bit用于定義一個位變量,語法規(guī)則:,bit bit_name = 0或1;,例如:bit door = 0 ; /定義一個叫door的位變量且初值為0,與標準C的數(shù)據(jù)類型聲明的語法規(guī)則是一致的,如: int int_name = 常數(shù);,第4章單片機的C51語言,sfr或sfr16型,關鍵詞sfr或sfr16用于定義SFR字節(jié)地址變量,語法規(guī)則: sfr sfr_name = 字節(jié)地址常數(shù); sfr16 sfr_name = 字節(jié)地址常數(shù);,第4章單片機的C51語言,例如, sfr P0 = 0 x80; /定義P0口地址80H sfr PCON = 0 x87; /定義PCON地址87H sfr16 DPTR=0 x82; /定義DPTR的低地址82H,注意:C語言中十六進制整數(shù)是數(shù)值前加0 x或0X前綴,sbit型,絕對位地址,相對位地址,字節(jié)地址,位地址表達形式:絕對位地址、相對位地址,第4章單片機的C51語言,關鍵詞sbit用于定義SFR位地址變量,1)將SFR的絕對位地址定義為位變量名 sbit bit_name = 位地址常數(shù); 例如, sbit CY = 0 xD7;,3)將SFR的相對位位置定義位變量名 sbit bit_name = sfr_name 位位置; 例如, sbit CY = PSW7;,2)將SFR的相對位地址定義為位變量名 sbit bit_name = sfr字節(jié)地址 位位置; 例如, sbit CY = 0 xD07;,可用三種定義形式:,sbit型,第4章單片機的C51語言,C51編譯器在頭文件“REG51.H”中定義了全部sfr/sfr16和sbit變量。,用一條預處理命令#include 把這個頭文件包含到C51程序中,無需重新定義即可直接使用它們的名稱。,第4章單片機的C51語言,第4章單片機的C51語言,編程舉例:,【存儲種類】數(shù)據(jù)類型【存儲類型】變量名,存儲類型體現(xiàn)了變量的存放區(qū)域。51系列單片機共有6個存儲類型(分布在3個邏輯存儲空間中)。,第4章單片機的C51語言,不同存儲類型的特點,編譯模式,第4章單片機的C51語言,三種編譯模式分別對應于三種缺省存儲類型:,約定:若無特殊聲明,一般均為“SMALL編譯模式”,變量名可以由字母、數(shù)字和下劃線三種字符組成,且第一個字符必須為字母或下劃線,變量名長度隨編譯系統(tǒng)而定。,變量名具有字母大小寫的敏感性,如SUM和sum代表不同的變量。 強調(diào):頭文件中定義的變量都是大寫的,若程序采取小寫變量則需要重新定義。,【存儲種類】數(shù)據(jù)類型【存儲類型】變量名,第4章單片機的C51語言,C51擴展的若干關鍵字一覽表,變量名不得使用標準C語言和C51語言的關鍵字。,第4章單片機的C51語言,unsigned char data system_status = 0;,/定義system_status為無符號字符型自動變量,該變量位于data區(qū)中且初值為0。,數(shù)據(jù)結(jié)構(gòu)定義舉例,變量名為system_status,位于片內(nèi)RAM區(qū),無符號字符型,自動型,初值為零,第4章單片機的C51語言,unsigned char bdata status_byte;,unsigned int code unit_id2=0 x1234, 0 x89ab;,static char m, n;,/定義status_byte為無符號字符型自動變量,該變量位于bdata區(qū),/定義unit_id2為無符號整型自動變量,該變量位于code區(qū)中,是長度為2的數(shù)組,且初值為0 x1234和0 x89ab。,/定義m和n為2個位于data區(qū)中的有符號字符型靜態(tài)變量。,第4章單片機的C51語言,2. C51的指針,C語言指針的一般定義形式為: 數(shù)據(jù)類型 *指針變量名 = 這表示p1是一個指向int型變量的指針變量,此時p1的值為int型變量a的地址,而a和p1兩個變量都位于C編譯器默認的內(nèi)存區(qū)中。,第4章單片機的C51語言,對于C51,除了數(shù)據(jù)類型外,指針定義中還應能說明: 1)指針變量自身位于哪個存儲區(qū)中? 2)被指向變量位于哪個存儲區(qū)中?,C51指針的一般定義形式: 數(shù)據(jù)類型 存儲類型1 * 存儲類型2 變量名 = char *ptr = ,解:ptr是一個指向char型變量的指針,它本身位于SMALL編譯模式默認的data存儲區(qū)里,此時它指向位于xdata存儲區(qū)里的char型變量a的地址。,數(shù)據(jù)類型 存儲類型1 * 存儲類型2 變量名 = char *ptr = ,解:以char *ptr形式定義的指針變量,既可指向位于xdata存儲區(qū)的char型變量a的地址,也可指向位于idata存儲區(qū)的char型變量b的地址(由賦值操作關系決定)。,前兩句與例1相同 char xdata a = A; char *ptr = ,第4章單片機的C51語言,例3:試解釋以下指針定義的含義 char xdata a = A; char xdata *ptr = 【解】ptr是位于data存儲區(qū)且固定指向xdata存儲區(qū)的char型變量的指針變量,此時ptr的值為變量a的地址(不能像例2那樣再將idata存儲區(qū)的char型變量b的地址賦予ptr)。,第4章單片機的C51語言,例4:試解釋以下指針定義的含義 char xdata a = A; char xdata *idata ptr = 【解】ptr是固定指向xdata存儲區(qū)的char型變量的指針變量, 它自身存放在idata存儲區(qū)中,此時ptr指向位于xdata存儲區(qū)中的char型變量a的地址。,第4章單片機的C51語言,第4章單片機的C51語言,4.1 C51的程序結(jié)構(gòu) 4.2 C51的數(shù)據(jù)結(jié)構(gòu) 4.3 C51與匯編語言的混合編程 4.4 C51仿真開發(fā)環(huán)境 4.5 C51初步應用編程,第4章單片機的C51語言,C51語言編程可勝任單片機的基本測量與控制任務。 對于某些特殊的I/O 接口處理、中斷處理、強調(diào)程序執(zhí)行速度等場合,仍希望采用匯編程序。 C51 編譯器提供了與匯編語言程序的接口規(guī)則,可方便地實現(xiàn)C51 與匯編語言程序的相互調(diào)用。 本節(jié)僅討論在C51中調(diào)用匯編函數(shù)和在C51中嵌入?yún)R編代碼兩種方法。,概要,第4章單片機的C51語言,1. 在C51中調(diào)用匯編程序,1)程序的尋址,main.c中調(diào)用的max函數(shù),如何與匯編文件中的相應代碼對應起來;,2)參數(shù)傳遞,main.c中傳遞給max()函數(shù)的參數(shù)a和b,存放在何處可使匯編程序能夠獲取到它們的值;,3)返回值傳遞,匯編語言計算得到的結(jié)果,存放在何處可使C語言程序能夠獲取到。,C51程序中調(diào)用匯編語言,需要解決三個問題:,第4章單片機的C51語言,舉例:在兩個數(shù)據(jù)中選出較大的數(shù)據(jù),并賦值給變量c。其中,要求選數(shù)任務采用匯編子程序完成。,1)程序的尋址問題,第4章單片機的C51語言,通過在匯編文件中定義同名的“函數(shù)”來實現(xiàn)。,第4章單片機的C51語言,2)參數(shù)傳遞問題,第4章單片機的C51語言,3)返回值傳遞問題,2. C51中嵌入?yún)R編代碼,程序中需要用到一些簡短的匯編指令時,可以通過語句 “# pragma”嵌入?yún)R編代碼的辦法實現(xiàn)。,第4章單片機的C51語言,#include void main(void) unsigned char i=0; /定義變量i #pragma asm/嵌入?yún)R編代碼 MOV R0,#0AH LOOP:INC A/累加器循環(huán)加1 DJNZ R0,LOOP #pragma endasm i=+ACC;/輸出累加結(jié)果 ,說明: 匯編代碼必須放在兩條預處理命令#pragma asm和#pragma endasm之間,預處理命令必須用小寫字母,匯編代碼則大小寫不限。 本實例可實現(xiàn)用匯編語句進行累加器A循環(huán)加1和將累加結(jié)果傳遞給C51變量的功能。,實例:,第4章單片機的C51語言,嵌入?yún)R編代碼時需要對編譯器Keil進行一定設置,具體方法可結(jié)合教材P67和下圖完成(說明略)。,第4章單片機的C51語言,4.1 C51的程序結(jié)構(gòu) 4.2 C51的數(shù)據(jù)結(jié)構(gòu) 4.3 C51與匯編語言的混合編程 4.4 C51仿真開發(fā)環(huán)境 4.5 C51初步應用編程,第4章單片機的C51語言,1. Keil的編譯環(huán)境 Vision3,Keil是德國Keil Software公司的51單片機開發(fā)軟件包,包括C編譯器、匯編編譯器、連接器、庫管理及仿真調(diào)試器,通過一個windows下的uVisoin3集成開發(fā)環(huán)境組合起來。,第4章單片機的C51語言,在uVisoin3可以通過建立工程文件,將多個不同源程序文件組合起來(包括.ASM和.C文件),而Proteus中只能有1個.ASM源程序。,第4章單片機的C51語言,Vision3的軟件界面包括4大組成部分,即菜單工具欄,工程管理窗口,文件窗口和輸出窗口。,第4章單片機的C51語言,Vision3中共有11個下拉菜單。工具欄的位置和數(shù)量可以通過設置選定和移動。,第4章單片機的C51語言,工程管理窗口用于管理工程文件目錄,它由5個子窗口組成:文件窗口,寄存器窗口,幫助窗口,函數(shù)窗口,模版窗口。,工程管理窗口:,第4章單片機的C51語言,輸出窗口: 輸出窗口用于編譯過程中的信息交互作用,由3個子窗口組成:編譯窗口,命令窗口,搜尋窗口。,第4章單片機的C51語言,信息窗口: 觀察窗口(Watch 按壓按鍵后為低電平。,實例1 獨立按鍵識別,【要求】采用獨立按鍵方式實現(xiàn)下述功能:開機時LED全熄,然后根據(jù)按鍵動作使相應燈亮,并將亮燈狀態(tài)保持到按壓其它鍵時為止。,第4章單片機的C51語言,獨立按鍵每個按鍵都彼此獨立地各占有一位I/O口線。特點是電路簡單,但占用I/O口線較多。,第4章單片機的C51語言,為使按鍵抬起后LED能保持先前的點亮狀態(tài),需要在按鍵未壓下期間禁止向P2輸出P0狀態(tài)值。,【分析】,參考程序如下:,第4章單片機的C51語言,void main( ) char key = 0; /定義按鍵變量 while(1) key = P0 /有按鍵動作時,P0狀態(tài)值送P2 ,第4章單片機的C51語言,編程界面和運行界面分別如下圖,第4章單片機的C51語言,實例1運行效果,實例2 鍵控流水燈,第4章單片機的C51語言,【要求】 K1為“啟動鍵”,首次按壓K1可產(chǎn)生“自下向上” 的流水燈運動; K2 為“停止鍵”,按壓K2可終止流水燈的運動; K3和K4為“方向鍵”,分別產(chǎn)生 “自上向下”和 “自下向上” 運動。,第4章單片機的C51語言,思路分析:設立狀態(tài)標志變量根據(jù)鍵值修改標志值根據(jù)標志值控制燈的亮滅,總體關系流程圖,第4章單片機的C51語言,按鍵狀態(tài)值: 無按鍵 xxxx 1111B 按壓K1xxxx 1110B 按壓K2xxxx 1101B 按壓K3xxxx 1011B 按壓K4xxxx 0111B,按鍵動作判斷(P0 ,for (i=0; i=3; i+) P2 = led i; /移動,for (i=3; i=0; i- ) P2 = led i; /移動,查 表 方法,第4章單片機的C51語言,else,第4章單片機的C51語言,實例2原理圖與程序界面圖,實例2程序運行效果,第4章單片機的C51語言,實例3 混合編程,將實例2中C51的delay函數(shù)改用匯編語言實現(xiàn),并完成系統(tǒng)的混合編程。,程序說明,分別編寫匯編語言(delay.asm)與C51語言(實例3.c)兩個程序文件,并將其添加到Keil的同一項目中。,第4章單片機的C51語言,C51部分與實例2基本相同,#include reg51.h unsigned char led=0 xfe,0 xfd,0 xfb,0 xf7;/LED燈的花樣數(shù)據(jù) void delay(unsigned char time); void main() bit dir=0,run=0;/標志位定義及初始化 char i; while(1) switch (P0 /若run=0,燈全滅 ,第4章單片機的C51語言,delay.asm,與實例3.c文件中函數(shù)delay同名的子程序,匯編子程序的頭部格式,;延時處理函數(shù)(匯編語言) PUBLIC _DELAY DE SEGMENT CODE RSEG DE _DELAY:MOV R0,#225 DEL2: DJNZ R0,DEL2 DJNZ R7,_DELAY RET END,第4章單片機的C51語言,實例3的全部程序及運行效果,第4章單片機的C51語言,4.5.1.2 LED數(shù)碼管原理與編程,LED顯示元件人機交互輸出設備,其作用是指示中間運行結(jié)果與運行狀態(tài)。,第4章單片機的C51語言,引腳配置,七段式LED數(shù)碼管,(Proteus:7-Segment Display),公共端接“0”,公共端接“1”,字符的顯示碼或字模與數(shù)碼管的類型有關,第4章單片機的C51語言,共陰極型部分字符的顯示碼(字模)為:,七段LED數(shù)碼管的標準顯示字符為09,AF,顯示字符,顯示碼(共陰),其它字符:,0011 1000B = 0 x38,“L”字符的顯示碼,“H”字符的顯示碼,0111 0110B = 0 x76,第4章單片機的C51語言,實例4 LED數(shù)碼管顯示,在P0口連接一個共陰極數(shù)碼管,使之循環(huán)顯示09數(shù)字,間隔為500循環(huán)步。,分析: 將顯示碼循環(huán)輸出到P0口即可實現(xiàn)循環(huán)顯示。但由于數(shù)字09的顯示段碼沒有規(guī)律可循,需要采取查表方式進行操作:,第4章單片機的C51語言,將顯示碼按序存放在一個數(shù)組中, 順序號與代表的顯示字符相對應(如,char led_mod =x1,x2,.,xn); 通過查表語句(如,P0=led_modei)輸出顯示碼。,第4章單片機的C51語言,參考程序,第4章單片機的C51語言,實例4仿真運行效果,第4章單片機的C51語言,實例5 (實驗1 ),根據(jù)如下共陰極型數(shù)碼管電路,編程實現(xiàn)計數(shù)顯示功能,即以十進制形式顯示擊鍵次數(shù),次數(shù)大于99后重新由0開始。,個位LED接P2口,十位LED接P0口,按鈕接P3.7,抬起時為1電平,按壓時為0電平。,第4章單片機的C51語言,編程分析:,兩個新問題: 問題1:如何將計數(shù)值拆解成個位和十位兩個數(shù)? 問題2 :如何避免按鍵壓下時被連續(xù)計數(shù)?,第4章單片機的C51語言,初始化: P2 = P0 = table0;,取模運算(%10)個位 整除10運算(/10)十位,P2 = tablecount%10;,P0 = tablecount/10;,拆解計數(shù)值方法,第4章單片機的C51語言,避免連續(xù)計數(shù),方案1:更新后處理連擊,方案2:更新前處理連擊,第4章單片機的C51語言,參考程序,程序運行效果,第4章單片機的C51語言,第4章單片機的C51語言,4.1 C51的程序結(jié)構(gòu) 4.2 C51的數(shù)據(jù)結(jié)構(gòu) 4.3 C51與匯編語言的混合編程 4.4 C51仿真開發(fā)環(huán)境 4.5 C51初步應用編程 4.5.1 I/O端口的簡單應用 4.5.2 I/O端口的進階實踐,第4章單片機的C51語言,4.5.2.1 數(shù)碼管動態(tài)顯示原理與編程,兩種顯示接口:靜態(tài)顯示接口和動態(tài)顯示接口,靜態(tài)顯示接口:一個數(shù)碼管的引腳獨立占據(jù)一根I/O口線。 優(yōu)點:被顯示數(shù)據(jù)只要送入并行口后就不再需要CPU干預,因而顯示效果穩(wěn)定。 缺點:占用資源較多,第4章單片機的C51語言,所有數(shù)碼管的輸入端(段碼線)對應并聯(lián)在一個IO口上,而每位數(shù)碼管的公共端(位碼線)分別由一位IO線控制; 由IO口輸出的顯示碼可被所有數(shù)碼管收到,但只有滿足位碼線電平要求的數(shù)碼管可被驅(qū)動。,動態(tài)顯示接口,第4章單片機的C51語言,動態(tài)顯示編程原理: 快速(如10ms)切換段碼值和位碼值,使每一時刻只有一只數(shù)碼管被驅(qū)動。利用視力暫留特性,可獲得連續(xù)顯示效果。 優(yōu)點:占用IO口資源較少(節(jié)省空間) 缺點:需要CPU不斷進行干預(占用機時),第4章單片機的C51語言,實例6,根據(jù)下圖共陰極型數(shù)碼管動態(tài)顯示電路,編程實現(xiàn)顯示字符“L2”的功能。,第4章單片機的C51語言,分析: Proteus中的雙聯(lián)LED數(shù)碼管相當于兩個并聯(lián)的數(shù)碼管。,7SEG-MPX2-CC-BLUE,Blue,2 Digit,7-segment Cathode Display,第4章單片機的C51語言,P2 “0 x38”, P3.1“1”,P3.0 “0”,P2 “0 x5b”, P3.1“0”,P3.0 “1”,P2led_mode0, P3 0000 0010B =2 P2led_mode1, P3 0000 0001B =1,led_mode =0 x38,0 x5b,程序主要部分,第4章單片機的C51語言,#include char led_mod = 0 x38,0 x5B; void delay(unsigned int time); void main() char led_point = 0; while (1) P3 = 2 - led_point; P2= led_modled_point; led_point = 1 - led_point; delay(30); ,完整程序,第4章單片機的C51語言,第4章單片機的C51語言,運行效果圖,第4章單片機的C51語言,4.5.2.2 行列式鍵盤原理與編程,獨立式鍵盤的電路簡單,易于編程,但占用的I/O口線較多,當需要較多按鍵時可能產(chǎn)生IO口資源緊張問題。,獨立式鍵盤電路,第4章單片機的C51語言,行列式鍵盤將I/O口分為行線和列線,按鍵跨接在行線和列線上,列線通過上拉電阻接正電源。,44行列式鍵盤,行列式鍵盤的特點:占用I/O口線少,但軟件過程復雜。,第4章單片機的C51語言, 鍵盤列掃描,各行電平同時置1,各列電平輪流清0。,掃描碼:key_scan = 0 xef, 0 xdf, 0 xbf, 0 x7f; 寫P2: P2=key_scani;,行列式鍵盤編程原理(以P2口接44鍵盤為例),第一次 1110 1111B 第二次 1101 1111B 第三次 1011 1111B 第四次 0111 1111B,= 0 xef = 0 xdf = 0 xbf = 0 x7f,掃描輸出碼,第4章單片機的C51語言,如果 (P2 ,第4章單片機的C51語言, 查找閉合鍵鍵號,for (j = 0 ; j 16 ;j+) if (P2= key_buf j) return j; ,鍵值數(shù)組 key_buf = 0 xee, 0 xde, 0 xbe, 0 x7e, 0 xed, 0 xdd, 0 xbd, 0 x7d, 0 xeb, 0 xdb, 0 xbb, 0 x7b, 0 xe7, 0 xd7, 0 xb7, 0 x77;,鍵號按照一定規(guī)則給按鍵分配的編號,閉合鍵鍵號: 閉合鍵值與鍵值數(shù)組相等時的查詢號,第4章單片機的C51語言,實例7,功能要求:開機黑屏按下任意按鍵后,數(shù)碼管上顯示該鍵的鍵號(0F)若沒有新鍵按下,維持前次按鍵結(jié)果。,行列式鍵盤+共陰極數(shù)碼管,第4章單片機的C51語言,主程序流程圖,void main(void) char key = 0; P0 = 0 x00; /開機黑屏 while(1) key = getKey(); /獲得閉合鍵號 if (key != -1) P0 = led_modkey;/顯示閉合鍵號 ,第4章單片機的C51語言,獲取鍵號流程圖,第4章單片機的C51語言,實例7完整程序,第4章單片機的C51語言,程序運行效果,第4章單片機的C51語言,按鍵在閉合和斷開瞬間會因彈簧開關的變形產(chǎn)生電壓波動,軟件消抖法: 延時10ms后再次掃描按鍵狀態(tài)。若仍判為“閉合”說明確有鍵壓下;若為“非閉合”說明是誤動作。,按鍵抖動波形,鍵盤消抖原理:,本章小結(jié),C51變量定義必須考慮單片機的多空間存儲結(jié)構(gòu)。其一般定義格式為:【存儲種類】數(shù)據(jù)類型【存儲類型】變量名。 在Keil下進行C51編程的基本步驟是:建立工程輸入源程序添加源程序【工程設置】編譯源程序【動態(tài)調(diào)試 】 運行。 單片機I/O口基本編程應用包括按鍵(或開關)狀態(tài)檢測、發(fā)光二極管輸出控制、數(shù)碼管動態(tài)顯示以及行列式鍵盤掃描編程等內(nèi)容。,第4章單片機的C51語言,
展開閱讀全文
溫馨提示:
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
提示  裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。
關于本文
本文標題:單片機原理及應用第4章
鏈接地址:http://m.appdesigncorp.com/article/119994385.html

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!