![單片機的應用程序設計課程課件_第1頁](http://file4.renrendoc.com/view/2bb553e4b2f34d01f8ce931187908cbb/2bb553e4b2f34d01f8ce931187908cbb1.gif)
![單片機的應用程序設計課程課件_第2頁](http://file4.renrendoc.com/view/2bb553e4b2f34d01f8ce931187908cbb/2bb553e4b2f34d01f8ce931187908cbb2.gif)
![單片機的應用程序設計課程課件_第3頁](http://file4.renrendoc.com/view/2bb553e4b2f34d01f8ce931187908cbb/2bb553e4b2f34d01f8ce931187908cbb3.gif)
![單片機的應用程序設計課程課件_第4頁](http://file4.renrendoc.com/view/2bb553e4b2f34d01f8ce931187908cbb/2bb553e4b2f34d01f8ce931187908cbb4.gif)
![單片機的應用程序設計課程課件_第5頁](http://file4.renrendoc.com/view/2bb553e4b2f34d01f8ce931187908cbb/2bb553e4b2f34d01f8ce931187908cbb5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第7章單片機的C語言應用程序設計7.1C語言與MCS-517.2C51數(shù)據(jù)類型及在MCS-51中的存儲方式
7.3C51數(shù)據(jù)的存儲類型與MCS-51存儲結構7.4MCS-51特殊功能寄存器(SFR)的C51定義7.5MCS-51并行接口的C51定義7.6位變量的C51定義7.7C51構造數(shù)據(jù)類型
7.8模塊化程序開發(fā)過程7.9MCS-51內部資源使用的C語言編程7.10MCS-51片外擴展的C語言編程7.11頻率量測量的C語言編程7.12MCS-51機間通信的C語言編程7.13鍵盤和數(shù)碼顯示人機交互的C語言編程7.1C語言與MCS–51用匯編程序設計MCS–51系列單片機應用程序時,必須要考慮其存儲器結構,尤其必須考慮其片內數(shù)據(jù)存儲器與特殊功能寄存器正確、合理的使用以及按實際地址處理端口數(shù)據(jù)。用C語言編寫MCS–51單片機的應用程序,雖然不像用匯編語言那樣具體地組織、分配存儲器資源和處理端口數(shù)據(jù),但在C語言編程中,對數(shù)據(jù)類型與變量的定義,必須要與單片機的存儲結構相關聯(lián),否則編譯器不能正確地映射定位。用C語言編寫單片機應用程序與編寫標準的C語言程序的不同之處就在于根據(jù)單片機存儲結構及內部資源定義相應的C語言中的數(shù)據(jù)類型和變量,其它的語法規(guī)定、程序結構及程序設計方法都與標準的C語言程序設計相同。用C語言編寫的應用程序必須經(jīng)單片機的C語言編譯器(簡稱C51),轉換生成單片機可執(zhí)行的代碼程序。支持MCS–51系列單片機的C語言編譯器有很多種。如AmericanAutomation、Auocet、BSO/TASKING、DUNFIELDSHAREWARE、KEIL/Franklin等。其中KEIL/Franklin以它的代碼緊湊和使用方便等特點優(yōu)于其它編譯器。本章是針對這種編譯器介紹MCS–51單片機C語言程序設計。7.2C51數(shù)據(jù)類型及在MCS-51中的存儲方式7.2.1C51的數(shù)據(jù)類型FranklinC51編譯器具體支持的數(shù)據(jù)類型有:位型(bit)、無符號字符(unsignedchar)、有符號字符(singedchar)、無符號整型(unsignedint)、有符號整型(signedint)、無符號長整型(unsignedlong)、有符號長整型(signedlong)、浮點型(float)和指針類型等。表7.1FranklinC51的數(shù)據(jù)類型數(shù)據(jù)類型長度(bit)長度(byte)值域bit110,1unsignedchar810~255signedchar81–128~127unsignedint1620~65535signedint162–32768~32767unsignedlong3240~4294967295signedlong324–2147483648~2147483647float324±1.176E–38~±3.40E+38(6位數(shù)字)double648±1.176E–38~±3.40E+38(10位數(shù)字)一般指針243存儲空間0~655357.2.2C51數(shù)據(jù)在MCS-51中的存儲方式位變量(bit):與MCS-51硬件特性操作有關的可以定義成位變量。位變量必須定位在MCS-51單片機片內RAM的位尋址空間中。字符變量(char):字符變量的長度為1byte即8位。這很合適MCS-51單片機,因為MCS-51單片機每次可處理8位數(shù)據(jù)。對于無符號變量(unsignedchar)的值域范圍是0~255。對于有符號字符變量(signedchar),最具有重要意義的位是最高位上的符號標志位(msb)。此位為1代表"負",為0代表"正"。有符號字符變量和無符號字符變量在表示0~127的數(shù)值時,其含義是一樣的,都是0~0x7F。負數(shù)一般用補碼表示,即用11111111表示-1,用11111110表示-2……。當進行乘除法運算時,符號問題就變得十分復雜,而C51編譯器會自動地將相應的庫函數(shù)調入程序中來解決這個問題。整型變量(int):整型變量的長度為16位。與8080和8086CPU系列不同,MCS-51系列單片機將int型變量的高位字節(jié)數(shù)存放在低地址字節(jié)中,低位字節(jié)數(shù)存放在高地址字節(jié)中。有符號整型變量(signedint)也使用msb位作符號標志位,并使用二進制補碼表示數(shù)值??芍苯邮褂脦追N專用的機器指令來完成多字節(jié)的加、減、乘、除運算。整型變量值0x1234以圖7.1所示的方式存放在內存中。圖7.1整型數(shù)的存儲結構…0x120x34…+0+1地址0x120x340x560x78….+0+1+2+3地址圖7.2長整型變量的存儲結構浮點型變量(float):浮點型變量為32位,占4個字節(jié),許多復雜的數(shù)學表達式都采用浮點變量數(shù)據(jù)類型。應用符號位表示數(shù)的符號,用階碼和尾數(shù)表示數(shù)的大小。用它們進行任何數(shù)學運算都需要使用由編譯器決定的各種不同效率等級的庫函數(shù)。FranklinC51的浮點變量數(shù)據(jù)類型的使用格式與IEEE-754標準有關,具有24位精度,尾數(shù)的高位始終為"1",因而不保存,位的分布如下:●1位符號位?!?位指數(shù)位?!?3位尾數(shù)。符號位是最高位,尾數(shù)為低23位,內存中按字節(jié)存儲順序如下:地址+0+1+2+3內容MMMMMMMMMMMMMMMMEMMMMMMMSEEEEEEE其中,S為符號位,1表示負,0表示正;E為階碼;M為23位尾數(shù),最高位為"1"。浮點變量值-12.5的十進制為:0xC1480000,它按圖7.3所示方式存于內存中。0x000x000x480xC1….+0+1+2+3地址圖7.3浮點數(shù)的存儲結構在編程時,如果只強調運算速度而不進行負數(shù)運算時,最好采用無符號(unsigned)格式。無符號字符類型的使用:無論何時,應盡可能使用無符號字符變量,因為它能直接被MCS-51所接受?;谕瑯拥脑?,也應盡量使用位變量。有符號字符變量雖然也只占用一個字節(jié),但需要進行額外的操作來進行測試代碼的符號位。這無疑會降低代碼效率。使用簡化形式定義數(shù)據(jù)類型。其方法是在源程序開頭使用#define語句自定義簡化的類型標識符。例如:#defineucharunsignedchar#defineuintunsignedint這樣,在編程中,就可以用uchar代替unsignedchar,用uint代替unsignedint來定義變量。7.3C51數(shù)據(jù)的存儲類型與MCS-51存儲結構表7.2C51存儲類型與MCS-51存儲空間的對應關系存儲類型與存儲空間的對應關系data直接尋址片內數(shù)據(jù)存儲區(qū),訪問速度快(128字節(jié))bdata可位尋址片內數(shù)據(jù)存儲區(qū),允許位與字節(jié)混合訪問(16字節(jié))idata間接尋址片內數(shù)據(jù)存儲區(qū),可訪問片內全部RAM地址空間(256字節(jié))pdata分頁尋址片外數(shù)據(jù)存儲區(qū)(256字節(jié))由MOV@Ri訪問(i=0,1)xdata片外數(shù)據(jù)存儲區(qū)(64KB)由MOVX@DPTR訪問code程序存儲器64KB空間,由MOVC@DPTR訪問表7.3C51存儲類型及其數(shù)據(jù)長度和值域存儲類型長度(bit)長度(byte)值域范圍data810~255idata810~255pdata810~255xdata1620~65535code1620~65535帶存儲類型的變量的定義的一般格式為數(shù)據(jù)類型存儲類型變量名帶存儲類型的變量定義舉例:chardatavar1;bitbdataflags;floatidatax,y,z;unsignedintpdatavar2;unsignedcharvector[3][4];表7.4存儲模式說明存儲模式說明SMALL默認的存儲類型是data,參數(shù)及局部變量放入可直接尋址片內RAM的用戶區(qū)中(最大128字節(jié))。另外所有對象(包括堆棧),都必須嵌入片內RAM。棧長很關鍵,因為實際棧長依賴于函數(shù)嵌套調用層數(shù)COMPACT默認的存儲類型是pdata,參數(shù)及局部變量放入分頁的外部數(shù)據(jù)存儲區(qū),通過@R0或@R1間接訪問,??臻g位于片內數(shù)據(jù)存儲區(qū)中LARGE默認的存儲類型是xdata,參數(shù)及局部變量直接放入片外數(shù)據(jù)存儲區(qū),使用數(shù)據(jù)指針DPTR來進行尋址。用此數(shù)據(jù)指針進行訪問效率較低,尤其對兩個或多個字節(jié)的變量,這種數(shù)據(jù)類型的訪問機制直接影響代碼的長度7.4MCS-51特殊功能寄存器(SFR)的C51定義MCS-51單片機中,除了程序計數(shù)器PC和4組工作寄存器組外,其它所有的寄存器均為特殊功能寄存器(SFR),分散在片內RAM區(qū)的高128字節(jié)中,地址范圍為80H~0FFH。SFR中有11個寄存器具有位尋址能力,它們的字節(jié)地址都能被8整除,即字節(jié)地址是以8或0為尾數(shù)的。為了能直接訪問這些SFR,F(xiàn)ranklinC51提供了一種自主形式的定義方法,這種定義方法與標準C語言不兼容,只適用于對MCS-51系列單片機進行C語言編程。特殊功能寄存器C51定義的一般語法格式如下: sfrsfr-name=intconstant;"sfr"是定義語句的關鍵字,其后必須跟一個MSC-51單片機真實存在的特殊功能寄存器名,"="后面必須是一個整型常數(shù),不允許帶有運算符的表達式,是特殊功能寄存器"sfr-name"的字節(jié)地址,這個常數(shù)值的范圍必須在SFR地址范圍內,位于0x80~0xFF。例如:sfrSCON=0x98; /*串口控制寄存器地址98H*/sfrTMOD=0x89; /*定時器/計數(shù)器方式控制寄存器地址89H*/MC泛S-尼51蜂系列問單片我機的舍特殊處功能由寄存斗器的專數(shù)量削與類斑型不護盡相元同,增因此戴建議妻將所使有特助殊的蠅"s盟fr逃"定呈義放賺入一也個頭爭文件哄中,風該文享件應井包括容MC徐S-恨51航單片待機系走列機冒型中已的S揪FR邊定義嗚。C膛51爛編譯宿器的編"r閉eg炕51相.h英"頭寄文件善就是偏這樣胡一個丹文件著。在新該的M娘CS盜-5累1系噴列產(chǎn)狗品中鞭,S雖FR嫁在功顆能上哄經(jīng)常腦組合罵為1用6位本值,嗓當S僵FR目的高鞏字節(jié)盲地址萌直接焦位于謙低字皮節(jié)之訂后時榨,對僵16疲位S帝FR乳的值責可以督直接杠進行消訪問餐。例若如5投2子處系列貞的定紀時器吼/計王數(shù)器走2就炊是這粱種情好況。垃為了沒有效毯地訪巷問這態(tài)類S稀FR遠,可燒使用年關鍵晃字"善sf息r1浮6"遣來定姓義,賢其定踩義語叛句的鈴語法暈格式鄭與8裝位S扣FR蓋相同家,只酬是"漆="榜后面因的地誼址必圓須用拴16壇位S鼓FR顧的低通字節(jié)痛地址右,即氣低字侵節(jié)地宰址作晉為"皇sf偵r1俗6"斃的定拴義地住址。例如猾:sf運r1踐6步T蒸2文=盛0x富CC凍/*促定時止器/所計數(shù)拴器2幟:T聯(lián)2低箱8位誰地址伸為0乒CC溫H,介T2承高8月位地棗址為摔0C偽DH古*/這種衰定義廟適用栗于所副有新母的1樣6位愿SF木R,孝但不道能用尋于定扣時器賊/計撥數(shù)器陽0和對1。對于捆位尋貸址的放SF枕R中敘的位創(chuàng),C紅51浩的擴今充功紗能支搖持特還殊位肆的定殖義,當像S漸FR擾一樣繁不與胳標準伯C兼茂容,駝使用鮮"s者bi猾t"甘來定抱義位呀尋址購單元揪。第一因種格科式:雜s椅bi玩t達b飾it毀-n醋am袖e檢=碗sf普r-努na況me疼^i年nt城c怎on始st指an細t;"s縱bi續(xù)t"籠是定拖義語旅句的子關鍵窗字,懂后跟清一個透尋址爹位符猜號名柱(該淚位符扁號名餃必須推是M絹CS駛-5為1單揭片機而中規(guī)論定的傍位名續(xù)稱)嶄,"婦="藥后的餃"s癥fr脊-n饞am悅e"渡必須年是已姜定義占過的島SF擔R的睜名字冠,"慚^"孩后的癥整常戴數(shù)是捷尋址典位在仰特殊是功能軌寄存擇器"踢sf甘r-把na腦me莊"中起的位數(shù)號,壘必須饅是0箏~7脅范圍枯中的討數(shù)。邀例如遺:sf視r偏PS較W=舍0x歉D0幼;否/鎖*永定義悼PS赤W寄遞存器凱地址早為D膨0H拖*愛/sb唉it獨OV貼=P爛SW盆^2拜;靈/俊*吃定義麗OV爺位為咸PS聚W.羅2,唱地址需為D筐2H眼*芬/sb晝it奶CY衡=P表SW玻^7桿;頂/*鄰定腳義C梯Y位來為P舍SW霞.7弦,地跑址為攪D7躲H旗*/第二走種格歌式:處sb楚it供bi游t-桿na羨me滲=頑i譜nt欺c車on匆st漿an姜t^夾in醉t挽co烏ns劫ta擦nt名;"=克"后渠的i講nt巷c輪on傻st休an僵t為路尋址膀地址敗位所扛在的箏特殊仔功能慣寄存模器的箏字節(jié)久地址位,"戀^"仍符號述后的管in柜t喉co陸ns汁ta謠nt攜為尋愚址位叫在特朽殊功屯能寄堂存器期中的軌位號視。例督如:sb客it歉OV毛=0豆XD辭0^拆2絞;報/費*疲定義播OV奴位地替址是覽D0薪H字炕節(jié)暫中的垮第2蓄位較*/sb嫁it鉗CY纏=0脈XD會0^欄7房誠;格/詳*翅定義絡CY絲式位地渣址是傻D0濱H字觀節(jié)中小的堪第7柄位全*/第三壤種格肅式:熊sb轉it衡bi哈t-怒na械me濫=寨i胖nt縮慧c舌on組st蘆an浴t;"=妻"后拿的i秒nt剝c謹on湊st燦an炒t為戀尋址裝位的母絕對窩位地佳址。冬例如拆:sb誦it陵OV者=0糟XD驢2飲;銀/紙*級定義游OV顆位地戀址為細D2膚H匪*/sb飯it殲CY震=0烘XD春7洽;車/掛*原定義晃CY眉位地時址為闖D7軌H階*/特殊沸功能慢位代聞表了墾一個滅獨立克的定畫義類他,不胸能與呆其它戴位定嘩義和許位域列互換幻玉。7.張5悶M盼CS送-5鞋1并炕行接密口的送C5狗1定百義MC肌S-戴51返系列姥單片更機并鞏行I獸/O閘接口填除了籌芯片粉上的蚊4個呼I/逢O口聚(P拼0寨~珍P3記)外蘇,還質可以腐在片融外擴固展I店/O揉口。匆MC臂S-吊51釣單片承機I雄/O蛇口與視數(shù)據(jù)坊存儲嗎器統(tǒng)訂一編蹄址,公即把師一個面I/努O口亦當作投數(shù)據(jù)猾存儲辱器中羨的一捆個單欣元來嗓看待拋。使用何C5佩1進昆行編餃程時追,M邪CS螺-5雨1片再內的捕I/霸O口告與片姓外擴膠展的呆I/年O可蛙以統(tǒng)肆一在為一個叉頭文去件中躁定義絕,也必可以認在程幟序中下(一惹般在廉開始膠的位悼置)裕進行尤定義敘,其跟定義援方法要如下滅:對于扒MC粥S-服51令片內借I/靠O口批按特筍殊功啞能寄挎存器擺方法溪定義權。例檔如:sf痛r列P0獨=0品x8尼0堪;什/務*牌定義呈P0挨口,碰地址夕為8傍0H喊*隨/sf哥r暖P1遞=0滅x9懂0廳;黃/紐奉*遭定義佛P1赤口,協(xié)地址雕為9列0H姐*波/對于也片外作擴展瞧I/早O口雪,則亂根據(jù)珍硬件姻譯碼繼地址幻玉,將番其視派作為歇片外搭數(shù)據(jù)被存儲驅器的趁一個撥單元析,使根用#攝de唉fi陜ne賠語句領進行池定義亞。例無如#i掃nc賀lu妻de布<口ab脖sa匹cc棄.h瞞>#d抵ef灑in崗e唇PO翁RT掠A槍XB怨YT刻E假[0門xF政FC秒0]ab慚sa堂cc覆.h寨是C傻51燙中絕浪對地偵址訪府問函犬數(shù)的夸頭文守件,惕將P奏OR將TA愛定義伸為外挑部I霜/O貧口,繡地址匠為血F慣FC浴0H使,長際度為馬8位塌。一旦決在頭壘文件漢或程醫(yī)序中肯對這竿些片喘外I犬/O油口進存行定汁義后勿,在碌程序銹中就雀可以幣自由熄使用胖變量愚名與扔其實搶際地突址的傭聯(lián)系鑒,以年便使健程序駛員能就用軟您件模慘擬M他CS秀-5善1的婚硬件乳操作仇。(1得)莊位變芒量C雜51黃定義攔。使云用C橫51漸編程添時,剖定義柴了位滿變量確后,衫就可敵以用熟定義趙了的辱變量顛來表納示M判CS臂-5姓1的抱位尋親址單纏元。位變尤量的塊C5屬1定啞義的佩一般某語法俱格式駛如下哈:位類秤型標哈識符準(b閉it訓)忌位笛變量澇名;例如族:bi謙t疊d靠ir畏ec貫ti橫on往_b塊it畏;饅/腿*極把d班ir憂ec熄ti各on顆_b稠it撲定義俗為位培變量茫*費/bi變t固l夏oo盡k_述po素in銜te項r爹;丙/*浴把晃lo何ok賓_p晃oi國nt池er哲定義閉為位斑變量邊*獸/7.清6帆位濤變量食的C扔51虛定義(2寄)辨函數(shù)家可包報含類茅型為附"b噸it叢"的六參數(shù)梳,也羽可以犁將其柿作為命返回意值。桐例如顯:bi樂t攏f謝un嶼c(潛bi賠t賺b0雪,璃bi殼t擱b1袖)仁/逐*賓變量麥b0負,b欄1作笑為函屯數(shù)的天參數(shù)備*腳/{re當tu罪rn面(米b1籃);夜/自*趙變量講b1溫作為角函數(shù)沃的返玩回值敬*迫/}注意盟,使乳用(鵝#p鴿ra允gm敗a炕di汪sa制bl核e)淹或包打含明敏確的版寄存祥器組砍切換宜(u稍si遷ng詢n默)的仆函數(shù)屈不能抖返回智位值呀,否祖則編冷輯器裝將會薪給出猾一個駁錯誤音信息碰?!?3枝)退對位中變量由定義細的限幸制。葛位變校量不鞋能定牧義成幻玉一個換指針鏈,如范不能投定義限:b概it壘*習bi沫t_善po配in介te征r。綿不存匯在位灰數(shù)組碰,如謙不能顧定義球:b陽it既b_壯ar立ra顫y[答]僑。在位紫定義霉中,訊允許建定義暢存儲怎類型件,位戶變量庭都被瓦放入少一個嘆位段叮,此睡段總炸位于點MC該S-騰51啊片內豪的R碗AM多區(qū)中拼。因糖此,悼存儲破類型開限制陵為d勻at飲a和劉id督at掛a,考如果廉將位璃變量歌的存壞儲類暖型定麻義成茶其它幫存儲那類型綿都將姐編譯歌出錯右。例1先定簡義變膏量的疾數(shù)據(jù)猴類型都和存溉儲類噸型:bd巨at裁a沉in駱t油ib散as斧e;干/*抓定暴義i霧ba閉se奧為b癥da換ta扮整型常變量榆*約/bd未at效a突ch僻ar反ba單ry奧[4撥];域/*家b慚ar鑒y[泉4]屢定義嬸為b獅da樹ta續(xù)字符璃型數(shù)稍組傻*/然后目可使縮慧用"根sb修it中"定幼義可造獨立渾尋址飛訪問雖的對個象位淺:sb手it訪my鹿bi睜t0元=港i榆ba述se每^0存;帥/宣*婦my違bi大t0背定義釋為i昌ba柏se頃的第排0位伯*背/sb惹it悉my蟲bi舍t(yī)1毯5溪=跨ib擴as淋e^賭15叼;扮/*顯m總yb鋤it達0定播義為郊ib驢as終e的欄第1緩5位繁*現(xiàn)/sb善it散Ar推y0樓7己=游ba駛ry銳[0考]^村7剪;艙/*構A撞ry蕩07聽定義古為a享br忠y[州0]青的第鞏7位冬*蝕/sb創(chuàng)it那Ar哄y3奇7供=悼ba愚r(nóng)y先[3墾]^燭7恩;礎/*痕A椒ry勒37使定義印為a蔬br革y[勻3]腔的第競7位貌*絡/對象璃ib梢as出e和徑ba凍ry核也可測以字衫節(jié)尋窮址:ar饅y3政7=槍0;覆/州*搭ba愿ry效[3報]的慣第7康位賦需值為派0雁*/ba鞋ry狡[3銜]=橋'a閉';橫/*析字黨節(jié)尋鮮址,雜ba潔ry血[3冊]兄賦值魯為'訂a'污*禮/sb位it腦定義抓要位們尋址搖對象茶所在火字節(jié)壺基址盯對象伸的存繩儲類昨型為血"b代da肝ta犬",侮否則攪只有料絕對晶的特礦殊位輕定義艘(s假bi摩t)圖是合抹法的遵。"功^"牧操作涂符后武的最孔大值鑼依賴李于指辛定的晚基類液型,毅對于港ch頂ar造/u查ch睛ar黨而言念是0類~7蔥,對碌于i膜nt雹/u妥in芬t而充言是柜0~最15袖,對復于l掃on適g/灰ul叫on狡g而鄙言是罷0~革31宜。7.翠7浙C仆51窩構造史數(shù)據(jù)釋類型1.顛基于呼存儲滲器的劑指針基于分存儲膽器的也指針贏以存塞儲器坑類型揉為參池量,污它在兄編譯訓時才銅被確扎定。脅因此噴,為質指針略選擇薯存儲窮器的窮方法拼可以乓省掉替,以奶便這峽些指跟針的戒長度隨為一主個字擊節(jié)(偷id竟at負a還*,嫩da射ta辛*畏,p扔da畢ta餐*壇)或蓋2個嘴字節(jié)罪(c為od釋e犧*,段xd紙at浪a集*)趴。編仇譯時焦,這躲類操斷作一謹般被須"行犬內"亡(i女nl嘆in老e)凱編碼季,而舉無需棚進行墊庫調多用?;诨即鎯g器的裝指針福定義帆舉例炒:ch鞠ar稅xd停at臉a昨*肌px霸;在x史da魯ta旗存儲涼器中月定義圖了一灘個指份向字淘符型著(c召ha鴿r)昏的指寫針變劉量p陶x。杏指針禮自身至在默德認存扇儲區(qū)盼(決輝定于亂編譯糕模式戲),池長度棍為2竟個字高節(jié)(歐值為鈴0~苦0x滿FF疼FF溜)。ch乞ar厲xd彼at屋a唐*單da疾ta澇pd尤x;除了逢明確椅定義怕指針賴位于尼MC龜S-宜51朵內部公存儲父區(qū)(給da窯ta匯)外屠,其憤它與垮上例泄相同應,它濕與編勻譯模螺式無狂關。da俗ta圍ch岸ar處xd舍at膀a符*軋pd坐x;st擔ru蛋ct啦ti木me{披c褲ha運r筑h尖ou掠r哄;ch聯(lián)ar右mi個n;ch沖ar石se更c;st獻ru斥ct彎t會im織e斷x存da莫ta刪*蒜px陳ti嫁me曉;}在結袍構s腹tr瞇uc秀t億ti宅me辱中,勇除了喜其它沾結構僵成員洲外,傍還包陵含有完一個鎮(zhèn)具有掃和s器tr沉uc桶t姥ti挽me內相同甩的指扣針p睜xt精im叢e,熔ti管me充位于懼外部販數(shù)據(jù)姻存儲色器(鞠xd塔at幟a)帆,指半針p鞠xt婆im影e具皆有兩憲個字宮節(jié)長押度。st斬ru脊ct女t時im刃e除id忠at是a沉*p引ti盈me榨;這個炎聲明乎定義削了一存?zhèn)€位督于默總認存誦儲器比中的秧指針愉,它包指向剝結構穩(wěn)ti疫me駐,t傾im隸e位臣于i窄da君ta衣存儲漢器中雜,結暈構成炭員可伶以通捷過M抬CS掩-5膝1的稼@R港0或轉@R樣1籮進行篇間接仆訪問繞,指呈針p劃ti養(yǎng)me裕為1蛙個字槍節(jié)長精。pt剝im恨e→梨px劫ti抵me嘩→h塊ou駁r升=夾12箏;使用窩上面豈的關的于s警tr號uc牲t離ti抄me尖和s悟tr藥uc李t即id借at狼a霉*p顏ti錘me把的定驢義,候指針塔"p脹xt奮im能e"澇被從鋤結構你中間痰接調東用,刪它指勾向位鋤于x袍da蹄ta屢存儲唯器中壞的t趣im蔽e結事構。覽結構桃成員記ho害ur續(xù)被賦栗值為完12范。2.欲一般趣指針一般肢指針渾包括篩3個清字節(jié)常:1珠個字楚節(jié)存詢儲類占型和凡2個工字節(jié)朗偏移姨地址始,即地址+0+1+2內容存儲器類型偏移地址高位字節(jié)偏移地址低位字節(jié)其中慎,第窩一字諸節(jié)代儲表了銅指針煙的存旗儲器梯類型勞,存敲儲器遭類型腔編碼傭如下初:存儲器類型idataxdatapdatadatacode值12345例如存,以鳴xd涼at小a類錄型的散0x容12性34讀地址躲為指煮針可揮以表客示如鈴下:地址+0+1+2內容0x020x120x34當用逗常數(shù)凍作指墨針時擠,必奧須注距意正彼確定辰義存烏儲器進類型懂和偏挨移量葡。例如眾,將戒常數(shù)懷值0敵x4率1寫打入地淺址為肥0x望80掩00廁的外檔部數(shù)星據(jù)存欺儲器炮。#d墊ef放in背e當X傲BY聚TE形(畝(哭ch摸ar齡*致)物0x僑20格00窩0L燒)XB升YT檔E[忠0x避80搶00膏]資=譯0x埋41壁;其中縱,X廊BY畫TE撥被定雹義為性(c襖ha份r挺*)偶0x徹20稼00宜0L瀉,0愚x2需00報00遭L為典一般箱指針勢,其挨存儲漠類型嘉為2觸,偏攻移量全為0捕00喚0H域,這村樣X海BY市TE較成為住指向串xd荷at餃a零眠地址派的指掌針。厚而X撤BY體TE淋[8銅00哄0]砌則是貞外部湖數(shù)據(jù)帥存儲扔器的弊0x恥80徑00館絕對渴地址姐。7.宅8胳模貨塊化洲程序叔開發(fā)瞞過程圖7解.4然程序瓦開發(fā)淋過程7.予8.艷1宴混合拆編程1.初命名喉規(guī)則表7器.5俗函數(shù)父名的左轉換說明符號名轉換規(guī)則voidfunc(void)FUNC無參數(shù)傳遞或不含寄存器參數(shù)的函數(shù)名不作改變轉入目標文件中,名字只是簡單地轉換為大寫形式voidfunc(void)_FUNC帶寄存器參數(shù)的函數(shù)名加入“_”字符前綴,表明這類函數(shù)包含寄存器的參數(shù)傳遞voidfunc(void)reentrant_?FUNC對于重入函數(shù)加上“_?”字符串前綴,表明這類函數(shù)包含棧內的參數(shù)傳遞例2用匯遮編語車言編堤寫函糖數(shù)"臉to吼up廉pe挺r"訊,參裁數(shù)傳豎遞發(fā)元生在派寄存肅器R蒙7中爭。UP芳PE賞R項SE幼GM租EN東T萌CO絹DE港;程出序段PU睡BL寧IC憑_T纏OU令PP凈ER禮;入菜口地仗址PS折EG壺UP猴PE新R膽;渴程序尊段_T陽OU臭PP擦ER抱:豬MO灰V振A嘗,R轟7冬;從慌R7遙中取孕參數(shù)CJ條NE閥A,狠#蘭'a腔',型$+怨3JC做U奧PP睡ER章ETCJ以NE白A墨,草#載'z傅'+風1功,$緞+3JN荷C閃U框PP紗ER蟲ETCL姿R勁AC序C內,5UP妥PE礦RE貍T:種MO扁V獻R舟7熊,A好;閱返回療值放臣在R巨7中RE匠T秋;返練回到贈C2.拿參數(shù)傘傳遞滿規(guī)則表7拌.6豬參數(shù)斥傳遞俗的寄逼存器晚選擇參數(shù)類型charintlong,float一般指針第1個參數(shù)R7R6,R7R4~R7R1,R2,R3第2個參數(shù)R5R4,R5R4~R7R1,R2,R3第3個參數(shù)R3R2,R3無R1,R2,R3fu鑄nc機1(狼in夕t拌a)顆"a輝"是漁第一糟個參找數(shù),稻在R鑒6,即R7磁中傳紀遞。fu棵nc匙2挎(i藏nt緊b心,絡in已t拌c,丙i統(tǒng)nt部*芳d扣)繡"婦b"罩是第谷一個吸參數(shù)篇,在染R6矛,R視7中丸傳遞罩;"朵c"異是第滑二個野參數(shù)券,在哭R4敵,R蒸5中遍傳遞設;"限d"襖是第漂三個伴參數(shù)駕,在鐘R1握,R咱2,妙R3雜中傳牽遞。fu參nc符3(讓lo旋ng梯e蘋,烈l欠on兆g中f負)哥"掘e"術是第紋一個員參數(shù)瓣,在仰R4媽~R涉7中墊傳遞豎;"沫f"奴是第渾二個訓參數(shù)傘,不年能在犁寄存啟器中帥傳遞狀,只俯能在館參數(shù)僚傳遞焰段中侍傳遞撿。fu捷nc離4(方fl種oa潮t姿g迫,偵ch胃ar期h役)醉"g睡"是洞第一可個參統(tǒng)數(shù),講在R徒4~散R7高中傳烏遞;即"h侄"是倦第二由個參勵數(shù),凈必須登在參孫數(shù)傳脆遞段敢中傳語遞。表7焦.7奪函數(shù)丈返回繡值的籌寄存演器返回值寄存器說明bitC進位標位(unsigned)charR7
(unsigned)intR6,R7高位字節(jié)在R6,低位字節(jié)在R7(unsigned)longR4~R7高位字節(jié)在R4,低位字節(jié)在R7floatR4~R732位IEEE格式,指數(shù)和符號位在R7指針R1,R2,R3R3放存儲器類型,高位在R2,低位在R1在匯灣編子嘴程序碌中,裁當前背選擇靠的寄采存器區(qū)組及場寄存?zhèn)蚱鰽賞CC反、B取、D局PT細R和趁PS瞇W都爸可能選改變濁。當態(tài)被C訓調用慘時,降必須贏無條斤件地識假設亂這些穿寄存知器的魯內容會已被陪破壞么。如壁果已份在連灰接/譽定位話程序辨時選貸擇了詠覆蓋愈,那餃么每蹤蝶個匯筑編子兼程序場包含達一個狡單獨池的程錢序段翼是必親要的印,因象為在殼覆蓋拾過程椅中,孟函數(shù)諸間參樸量通罰過子蛋程序幫各自愛的段和參量拔計算揀。匯腸編子留程序遺的數(shù)僵據(jù)區(qū)狠甚至內可包擦含在抓覆蓋還部分背中,壯但應府注意雜下面扛兩點切:(1殊)拆所有依段名卻必須合以C丈51憑類似努的方接法建濁立。(2揚)趁每個抖有局圾部變排量的構匯編屆程序件必須圈指定恰自己談的數(shù)縫據(jù)段急,這責個數(shù)新?lián)闻谥荒芎蔀槠湔魉磾?shù)訪勉問作午參數(shù)號傳遞救用。蓋所有廁參數(shù)梳一個逼接一巾個被郵傳遞轉,由洽其它才函數(shù)掩計算盛的結絕果保綠存入卡棧。7.拳8.風2冷覆善蓋和促共享1.率覆蓋單片演機片爹內存針儲空就間有妥限,規(guī)連接鴿器/滋定位夠器通理常重楊新啟毒用程藍序不付再用臉的位棒置。炸這就尊是說掛,若罷一個騾程序統(tǒng)不再湖調用勇,也即不由俗其它收程序株調用掘(甚航至間化接調六用)裁,那躬么在定其它紀程序壤執(zhí)行醉完之爬前,禽這個傍程序領不再誘運行謙。這逃個程魂序的溝變量綠可以毅放在咐與其奔它程作序完車全相攏同的太RA欣M空輝間,梅很像剃可重趁用的動寄存師器。帆這種頭技術疼就是充覆蓋案。在辰匯編弱中直閣接通棕過手撿工完榮成的秩這些棍空間均分配子,C繁語言烏中可挖以由批連接駝器自債動管若理。間若有辜幾個專不相相關聯(lián)致的程升序時澤,它遲可以弦使R犧AM瞇單元繡比手恥工考挑慮要麥用的拌少。2.筍共享1)慨共翅享變呢量類型匯編語言C語言動態(tài)變量
y(){intx;}靜態(tài)變量
staticintx;公用變量PUBLICXX:ds2Intx;外部變量EXTERNDATA(X)MOVDPTR,#Xexternintx;靜態(tài)子程序/函數(shù)Y:…staticy(){…};公共子程序/函數(shù)PUBLICYY:y(){…};外部子程序/函數(shù)EXTERNCODE(Y)LCALLYy()2)用共靈享函芝數(shù)/址子程先序C中氏函數(shù)顫若是依全局僵的(習公用貢的)溝,可妙以放障在調較用的向函數(shù)酷之后抱。若駐函數(shù)嫁是模華塊專盆用的風,它泄可以坦定義漢為靜進態(tài)函射數(shù),誕這樣蹄它不甚能被帥其它俊模塊籃調用規(guī)。C牛語言薪的A惕NS粱I標王準建賺議所袋有函杯數(shù)在訊主函魔數(shù)前賴要有蜂原型鴿(進使行說散明)浸,然雹后實蕉際函半數(shù)可告在主樣函數(shù)棍之后東或其嶄它模芬塊中寒。這版符合踏自頂辮向下趕編程夾的概椒念。匯編心語言闊中,樸子程逗序使冶用標摧號可規(guī)在給沿定??藟K的落任何娛位置奧。匯駛編器掙首先娛掃描神得到緩所有桶的符撒號名猶,然膽后值懷就可詠填入晚LC妨AL掘L或過LJ索MP赴。一鞏個模舅塊或取另一及模塊掀共享伯子程寒序,樓一個屆使用半PU菜BL神IC煤而另扔一個斬使用世EX性TE蠢RN辰。當網(wǎng)指定搞為E梢XT陷ER領N,舊符號膜類型趁(C豎OD建E,悶DA逐TA椅,X脫DA摩TA禮,I腿DA轟TA短,B淡IT污或N湖UM域BE駕R)較必須亂特別悉加以鉛指定護,以廣便連疼接器騰可以基確定腹放在珍一起橋的正姐確類走型。7.宣8.品3取庫乳和連樸接器糕/定棋位器1.熟庫表7毒.9蝕Fr遇an允kl亮in阻C矛51鍬的編覺譯庫庫說明C51S.LIBSMALL模式,無浮點運算C51FPS.LIB浮點數(shù)學運算庫(SMALL模式)C51C.LIBCOMPACT模式,無浮點運算C51FPC.LIB浮點運算庫(COMPACT模式)C51L.LIBLARGE模式,無浮點運算C51FPL.LIB浮點運算庫(LARGE模式)2.除連接恐器/亞定位雖器1)放組封合程右序模承塊將幾耗個不到同程憐序模鍋塊組梢合為踩一個鬧模塊夏,并斯自動注從庫軋中挑俗選模猜塊嵌狼入目濾標文惑件。鉤輸入僻文件較按命品令行噴中出斜現(xiàn)的蠻順序謠處理孩。通非常的齊程序貿模塊紅是由胡C5提1編勾譯器忍或A島51板宏匯姜編生菊成的反可重堂入的品目標劇文件焰。2)易組盛合段將具技有相揀同段絹名的勢可重殺定位少段組膊合成而單一暫的段漸。在去一個漏程序姻模塊賣中定爐義的版一個臨段成蛙為部例分段額。一浪個部灘分段學在源扎文件瘋中以蜜下列惠形式藥指定鼠:(1匹)亂名字半每個蘇重定黑位段盼有一卷個名期字,土它可述與來樹自其驅它模尸塊的越同名始的可娛重定五位段頃組合至。絕絕對段甩沒有漫名字落。(2仙)冒類型常類型粘表明縮慧段所垂屬的預地址丑空間殊CO轟DE幻玉,X丟DA朗TA倍,D垃AT嚼A或備BI閑T。(3訪)芒定位滑方式復可幅重定童位段縮慧的定填位方磨式有罪PA癢GE賓,I深NP緊AG跨E,袋IN揭BL貞OC泄K,框BI兄TA魔DD側R艷ES萍SA云BL儉E或偽UN昌IT偉。I拆NP圖AG字E表逝明段鞋必須嫩放入稀一頁治(高邊8位咐地址堡相同場)中沖以使泥用短拘轉移遵和調芹用指補令??hIN怎BL印OC符K段桃應使片用A詞CA迅LL慘,必狂須放蛛在2蔥04茂8字棒節(jié)塊促中。釋因為絨沒有稈連接顯器可負以靈烤活地敲判知福調用忠和轉太移是乏否在綠塊內囑??墒嬷囟ń┪坏膮瞧渌邢拗凭牵杭oPA磁GE概--予不能罷超過落25歲6字床節(jié);禍BI論TA宮DD造RE林SS友AB水LE拿--腎必須騙放在醉可位便尋址為的內料部R駁AM桃空間鹿;U黃NI恒T-凍-允述許段使從任廈意字車節(jié)開業(yè)始(壁對位共變量蒸是位皺)。(4所)柔長度等一個萄段的駱長度住。(5米)抖基址倚段的弟首址吵。對刷于絕途對段幟,地遵址由憂匯編蘭器賦蔽予,藥對于凍可重弄定位店段,曉地址覺由L蒙51妖決定賞。在慘處理絡程序壟模塊在時,臟L5惹1自麥動產(chǎn)暮生段肯表(掩MA艙P)膽,該蓋表包孫含了構每個孫段的沿類型青、基愧址、蘿長度潮、可尾重定爭位性向和名水字。擋L齊51知自動者將所梁具有胖相同鑒名字仔的所蜓有部終分段悅組合刪到單先一可借重定羞位段詳中。挖例如倒,三鉗個程貴序模沿塊包甜含字叮段V雷AR奸,在諷組合花時,天三個秩段的腔長度蕩相加股,從妄而組匆合段宅的長眠度也慨增加斃了。暈對組各合段寇有下宜列規(guī)漂則:①接所有炮具有焰相同脈名的偷部分毛段必愛須有降相同成類型罪(C幅OD沈E,挽DA橡TA求,I缺DA忌TA啊,X枯DA識TA菜或B翅IT當)。②犯組合腫段的吼長度季不能是超過疫存儲報區(qū)的祖物理部長度津。③洋每個妥組合完的部累分段接的定冤位方堆法也敘必須仗相同旺。④謊絕對交段相溫互不牙組合暑,它必們被肚直接友拷貝洽到輸廚出文亮件。3)謊存信儲器樣分配物理存儲區(qū)最大長度地址區(qū)段類型程序64KB0~0FFFFHCODE外部數(shù)據(jù)64KB0~0FFFFHXDATA直接尋址片內數(shù)據(jù)128字節(jié)0~7FHDATA間接尋址片內數(shù)據(jù)256字節(jié)0~0FFHIDATA片內數(shù)據(jù)的位空間128位0~7FHBIT表7魄.1鳴0霧M呢CS搭-5耳1系科列的貪物理庭存儲隸區(qū)4)促采索用覆母蓋技塞術使格用數(shù)冠據(jù)存勸儲器通過抱采用和一定檔的覆殺蓋技漆術,倒MC愛S-堅51湯系列猜少量符的片鄉(xiāng)豐內數(shù)濕據(jù)存別儲器解可由診L5董1有航效地陣使用培。由柱C5旦1編俘譯器槐或是菠A5勉1匯墊編器探生成境的參計數(shù)和暑局部普變量條(若故使用輝它們洋的函工數(shù)不迫相互鞏調用哪)可嶺在存聚儲器討中覆濁蓋。閘這樣氏,所帥用的架存儲網(wǎng)器得拔到相寧當程廁度地疼減少恨。為完猜成數(shù)充據(jù)覆響蓋,械L5義1分恩析所縫有不菜同函丸數(shù)間俘的調毯用,炎使用漠該信題息可霸以確季定哪蕉個數(shù)奮據(jù)和庸位段雄可被獸覆蓋都。使吩用控積制參返數(shù)O度VE粉RL畝AY綠和N區(qū)OO滅VE梢RL藝AY叉可允勤許或輝禁止矛覆蓋傍。O溝VE乎RL宅AY閃是默及認值觀,用匹它可閥產(chǎn)生抹非常莊緊湊刪的數(shù)洞據(jù)區(qū)妙。5)矮決沙定外掠部參識考地鈔址具有皆相同濃名的免外部諒符號曬(E替XT兔ER漆N)飄和公退用符仿號(篩PU脊BL杰IC出)被籃確定稿后,睜外部復符號煙指向鼻其它思模塊斑中的演地址李。一初個已嘉聲明培的外售部符刪號用駝具有份相同加名字粥的功娃用符計號確秩定,筍外部生參考潔地址匆由其基公共獸參考圈地址陶確定感。這擾還與江類型閑(D物AT從A,見ID搜AT搖A,糾XD繁AT揪A,蘋CO毒DE附,B填IT匙或N孝UM堵BE臺R)士有關虛,如裂果類椅型不戶符或凱未發(fā)歐現(xiàn)外倚部符僻號參姥考地堅址的鹿公用六符號坐,則垂會產(chǎn)央生錯欲誤。爐公用旺符號芳的絕郊對地昏址在私段定貓位后泰決定判。6)師絕銜對地限址計蹦算定義軌絕對尤地址卻并計乒算可言重定郵位段幻玉的地雖址。綱在段朝分配龍和外撐部公饒用參教考地遮址處爸理完估后,宰程序育模塊代中所膏有可奮重定潮位地描址和咸外部名地址辟要進奶行計稅算,龜此時警生成冬的目世標文采件中政的符盆號信傭息(蟲DE概BU貴G)敗被改饒變以失反映棄新的旋值。7)綿產(chǎn)榨生絕仗對目供標文脅件可執(zhí)餅行程照序以挪絕對策目標侮格式慮產(chǎn)生辯。該淺絕對請目標貝文件棍可包驢含附損加的運符號導信息次(D淋EB榆UG釀),障從而批使符遙號調拿試成嗓為可惠能。阻符號出信息北可用對參數(shù)寶NO稱DE仙BU蛋GS百YM派BO值LS抹,N漢OD唇EB摟UG沿PU柜BL懂IC吹S和禁NO膛DE謊BU抬GL莊IN屆ES快禁止燦。輸機出文淡件是侵可執(zhí)徒行的吹,并匪可由區(qū)仿真盡器裝鐘入調譽試或憂被O聽HS錄51梅翻譯姥為I趙nt娛el壺H禁EX離格式迎文件同以供俗EP路RO愿M固欣化。8)盾產(chǎn)垃生映聾像文遇件產(chǎn)生機一個飲反映保每個貪處理哨步驟鵝的映視像文恢件,餡它顯呈示有碧關連掘接/狐定位湯過程擺的信急息和貢程序晨符號旬,并儉包含右一個或公用個和外紫部符瞧號的鞋交叉膝參考絹報告乎。映票像文范件包通含下爛列信狗息:①能文件魔名和找命令菊行參舍數(shù)。②筑模塊粉的文弦件名繞和模筍塊名何。③倚一個蜘包含細段地閃址、今類型杠、定毅位方屈法和患名字晴的存姻儲器鞭分配通表。籍該表門可在財命令項行中致用N奏OM邀AP稠參考拆禁止幸。④訴段和曬符號虧的所編有錯在誤列猶表。鑼列表艱文件刮末尾糊顯示徹出所殖有出匆錯的喝原因究。⑤謎一個娃包含化輸入姐文件井中符蘇號信閃息的姓符號凡表。腔該信舊息由沒MO統(tǒng)DU絲式LE趣S,賓SY揭MB位OL正S,適PU斷BL共IC境S和揪LI啟NE夠S名儉組成業(yè),L殊IN溪ES爺是C妥編譯侄器產(chǎn)根生的遞行號辮。符側號信鳥息可抹用參眼數(shù)N體OS箱YM達BO當LS荷,N惠OP通UB烤LI搭CS割和N再OL幕IN舞ES臺完全梯或部膠分禁疲止。⑥挪一個鉛按字米母順野序排愿列的膚有關干所有浙PU篇BL判IC肅和E漿XT果ER誼N符泉號的媽交叉武參考店報告攪,其僑中顯融示出彼符號咽類型不和模喪塊名惑。第句一個瘡顯示月的模勒塊名畢是定陸義了抄PU秧BL毫IC她符號刮的模慘塊,鐮后面問的模錯塊名余是定絹義了校EX涌TE鞭RN鍵符號運的模走塊。嗓在命專令行飄輸入菠參數(shù)判IX皮RE世F可權產(chǎn)生伍此報物告。⑦竊在連聾接器叢/定父位器識運行胡期間痛檢測聯(lián)到的績錯誤透同時飽顯示扣在屏麥幕和高文件胖尾部此。7.園8.豎4惑程棵序優(yōu)表化以下懂選擇喇對提梯高程藍序效透率有蛇很大菠影響嗽:(1五)究盡量芳選擇覽小存令儲模農(nóng)式以猾避免竊使用撿MO智VX仿指令誤。(2穴)翅使用衫大模輕式(南CO活MP蔽AC值T/安LA遞RG串E)遲應仔捐細考退慮要灑放在帖內部完數(shù)據(jù)嗽存儲點器的邪變量循要求事是經(jīng)凍常用蝴的或適是用握于中枕間結掠果的飽。訪準問內蟻部數(shù)寸據(jù)存底儲器恭要比敘訪問桂外部悄數(shù)據(jù)偉存儲無器快價得多邀。內完部R卻AM務由寄另存器珍組、托位數(shù)形據(jù)區(qū)蹄和其厲它用債戶用名“d或at頌a”同類型琴定義武的變柿量共蹄享。球由于異內部蘇RA卻M容院量的旬限制呀(1慎28攀~2爪56撤字節(jié)常,由奪使用濫的單驅片機價決定澆),對必須亦權衡鄙利弊戶以解涂決訪在問效嶄率和頂這些王對象妙的數(shù)請量之趁間的駝矛盾粘。(3過)箱要考議慮操臥作順丘序,么完成拔一件嫩事后郵再做誼一件籌事。(4滔)梢注意握程序余編寫洋細則螺。例秒如,楚若使澡用f瘡or小(;栗;)右循環(huán)拌,D局JN脾Z指猾令比該CJ高NE椅指令令更有伐效,摩可減皆少重撈復循畢環(huán)次欄數(shù)。(5幅)預若編紛譯器貢不能呀使用事左移情和右濟移完劫成乘奪除法牌,應跟立即淘修改顫,例低如,向左移柴為乘脅2。(6技)下用邏深輯A背ND早/&閃取模乞比用京MO疊D雄/餓%操腥作更芹有效貌。(7昆)慌因計蜓算機罪基于韻二進今制,鑄仔細領選擇成數(shù)據(jù)堪存儲然器和述數(shù)組愁大小舒可節(jié)示省操威作。(8嫁)句盡可法能使門用最扁小的役數(shù)據(jù)嘗類型棄,M舞CS安-5藝1系廈列是抗8位爸機,吉顯然礙對具宣有"謊ch消ar練"類忠型的咽對象司的操善作比顛"i呆nt忘"或吼"l輪on演g"納類型皺的對瀉象的勉操作紀要方畢便得頑多。(9俘)鎮(zhèn)盡可票能使海用"稿un閣si欺gn舌ed鞭"數(shù)進據(jù)類冷型。蹲MC賺S-極51枝系列踢CP帝U并控不直血接支父持有是符號墾數(shù)的探運算珍。因附而C伙51輝編譯含器必銀須產(chǎn)漲生與夸之相饅關的嗽更多肅的程經(jīng)序代不碼以闖解決竟這個衫問題興。(1哈0)宿盡釀可能脅使用倒局部柳函數(shù)騰變量股。編醒譯器亡總是墾嘗試氧在寄攜存器份里保庭持局室部變積量。鞋這樣克,將供循環(huán)堆變量崖(如誼fo得r和悉wh躁il煎e循扒環(huán)中仇的計軋數(shù)變伏量)候說明偽為局治部變拔量是姨最好塌的。府使用浙"u瘡ns慘ig估ne坐d栗ch覆ar義/i趣nt展"的蠟對象塘通常益能獲艘得最促好的濃結果注。7.容9鋪M奧CS撓-5靈1內秋部資友源使炭用的岔C語慣言編萍程7.助9.惜1糧中丙斷應何用的淡C語示言編爛程C5嘗1編遼譯器該支持旦在C扎源程溉序中輔直接鵝開發(fā)再中斷繭程序斑。中決斷服畝務程注序是郊通過哪按規(guī)碗定語符法格雹式定勻義的權一個遲函數(shù)罰。中斷朵服務途程序礙的函記數(shù)定違義的挖語法欲格式質如下指:返回蠶值腿函債數(shù)名囑([拆參數(shù)魔])鍬in筍te勺rr散up礦t求m蒜[u瘋si撫ng歪n擊]{}…表7恐.1皆1與M英CS奪-5竄1中妥斷源啦編號編號中斷源入口地址0外部中斷00003H1定時器/計數(shù)器0000BH2外部中斷10013H3定時器/計數(shù)器1001BH4串行口中斷0023Hus牛in殖g點n選項饞用于火實現(xiàn)餃工作半寄存如器組絲式的切駐換,揭n是尸中斷歪服務負子程燙序中慮選用盯的工槍作寄高存器腰組號累(0沫~炸3宮)。腐在許仔多情檔況下捆,響漸應中護斷時蓋需保昨護有抹關現(xiàn)臟場信蘋息,衰以便兆中斷闊返回聽后,姐能使映中斷冊前的短源程名序從潔斷點押處繼遷續(xù)正槐確地存執(zhí)行督下去敬。這折在M慣CS瓜-5廉1單閱片機晴中,相能很腿方便箱地利膀用工炮作寄胡存器糧組的萄切換社來實副現(xiàn)。普即在窩進入無中斷線服務潑程序禾前的違程序衫中使積用一較組工昆作寄及存器笑,進精入中悠斷服撓務程愚序后趙,由美"u得si把ng庸n掏"切慨換到崖另一旗組寄泛存器倆,中凳斷返競回后誓又恢咱復到豆原寄候存器抱組。天這樣民互相趙切換稈的兩權組寄語存器娘中的忘內容丹彼此撓都沒擠有被況破壞支。圖掛7.菌5悟擴姿展多翼個中嗎斷源例3圖7.5所示是利用優(yōu)先權解碼芯片,在單片機8031的一個外部中斷INT1上擴展多個中斷源的原理電路圖。圖中是以開關閉合來模擬中斷請求信號。當有任一中斷源產(chǎn)生中斷請求,能給8031的INT1引腳送一個有效中斷信號,由P1的低3位可得對應中斷源的中斷號。在中騾斷服懲務程禾序中族僅設蟻置標輸志,慌并??勾鍵效/O丘口輸代入狀如態(tài)。憐Fr站an樂kl淘in正C怕51躁編譯繁器提患供定喉義特蘇定M尋CS穴-5霸1系寫列成錄員的讓寄存儲器頭頸文件百。M老CS傅-5香1頭雹文件起為r棒eg急51畝.h產(chǎn)。C航51糟程序累如下閘:#拴in邀cl參ud驅e稼<r馬eg潑51陜.h法>un夸si感gn違ed分c捏ha旅r軌st些at石us祖;bi關t者fl脈ag子;vo紡id糕s鑼er頃vi舉ce賴_i欺nt商1(嗽)載i槍nt稀er背ru位pt傘2烤u搞si像ng劫2焰/每*侍IN型T1茶中斷泄服務狂程序載,使枕用第飯2組然工為作寄鹽存器倍*課/{豬f勞la夫g=謎1;優(yōu)/釋*贏設置遮標志駛*滋/st迫at僵us寒=p能1;合/筑*觀存輸釀入口急狀態(tài)軌*透/}vo贈id汽ma蒸in夫(v繼oi雨d){線I白P=哄0x芝04臟;豬/波*巨置I憶NT陪1為革高優(yōu)坦先級破中斷催*/IE廉=-勿0x乘84管;北/*冒I上NT罵1開倍中斷姿,C科PU樹開中倆斷維*/fo小r(典;博;){鳴if釘(f尤la慨g)牢/*呆有唇中斷頓*演/{盤s姐wi揉tc蹄h(香s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 涉外建設工程施工合同
- 家居行業(yè)設計風格與文化內涵的融合
- 三農(nóng)行業(yè)手冊合作社運營
- 廚房承包合同書參考
- Go語言基礎概念與實踐作業(yè)指導書
- 內部審計與風險管理作業(yè)指導書
- 擔保書之擔保型買賣合同
- 物流信息管理系統(tǒng)作業(yè)指導書
- 私人教練勞動合同
- 石油化工行業(yè)安全環(huán)保管理體系建設方案
- 二零二五年度大型自動化設備買賣合同模板2篇
- 2024版金礦居間合同協(xié)議書
- 2025內蒙古匯能煤化工限公司招聘300人高頻重點提升(共500題)附帶答案詳解
- PFMEA模板完整版文檔
- GB/T 4214.1-2017家用和類似用途電器噪聲測試方法通用要求
- GB/T 11822-2000科學技術檔案案卷構成的一般要求
- 壓力管道基本知識課件
- 小學英語 國際音標 練習及答案
- 優(yōu)秀班主任經(jīng)驗交流課件-班主任經(jīng)驗交流課件
- 2023年廣州金融控股集團有限公司招聘筆試題庫及答案解析
- 血液科品管圈匯報-PPT課件
評論
0/150
提交評論