



全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
通信學(xué)論文-C51語(yǔ)言應(yīng)用編程的若干問(wèn)題摘要簡(jiǎn)要介紹了FranklinC51交叉編譯器的特點(diǎn),較詳細(xì)地討論了C51語(yǔ)言程序設(shè)計(jì)的基本技巧及其與匯編語(yǔ)言程序的混合編程、中斷處理過(guò)程等實(shí)際問(wèn)題,并給出了相應(yīng)的處理程序。關(guān)鍵詞FranklinC51編譯器匯編語(yǔ)言結(jié)構(gòu)化設(shè)計(jì)模塊中斷在研制單片機(jī)應(yīng)用系統(tǒng)時(shí),匯編語(yǔ)言是一種常用的軟件工具。它能直接操作硬件,指令的執(zhí)行速度快。但其指令系統(tǒng)的固有格式受硬件結(jié)構(gòu)的限制很大,且難于編寫與調(diào)試,可移植性也差。隨著單片機(jī)硬件性能的提高,其工作速度越來(lái)越快,因此在編寫單片機(jī)應(yīng)用系統(tǒng)程序時(shí),更著重于程序本身的編寫效率。而FranklinC51交叉編譯器是專為80C51系列單片機(jī)設(shè)計(jì)的一種高效的C語(yǔ)言編譯器,使用它可以縮短開(kāi)發(fā)周期,降低開(kāi)發(fā)成本,而且開(kāi)發(fā)出的系統(tǒng)易于維護(hù),可靠性高,可移植性好,即使在代碼的使用效率上,也完全可以和匯編語(yǔ)言相比,因此目前它已成為開(kāi)發(fā)80C51系列單片機(jī)的流行工具。151語(yǔ)言程序設(shè)計(jì)的基本技巧C語(yǔ)言是一種高級(jí)程序設(shè)計(jì)語(yǔ)言,它提供了十分完備的規(guī)范化流程控制結(jié)構(gòu)。因此采用C51語(yǔ)言設(shè)計(jì)單片機(jī)應(yīng)用系統(tǒng)程序時(shí),首先要盡可能地采用結(jié)構(gòu)化的程序設(shè)計(jì)方法,這樣可使整個(gè)應(yīng)用系統(tǒng)程序結(jié)構(gòu)清晰,易于調(diào)試和維護(hù)。對(duì)于一個(gè)較大的程序,可將整個(gè)程序按功能分成若干個(gè)模塊,不同的模塊完成不同的功能。對(duì)于不同的功能模塊,分別指定相應(yīng)的入口參數(shù)和出口參數(shù),而經(jīng)常使用的一些程序最好編成函數(shù),這樣既不會(huì)引起整個(gè)程序管理的混亂,還可增強(qiáng)可讀性,移植性也好。在程序設(shè)計(jì)過(guò)程中,要充分利用C51語(yǔ)言的預(yù)處理命令。對(duì)于一些常用的常數(shù),如TRUE,F(xiàn)ALSE,PI以及各種特殊功能寄存器,或程序中一些重要的依據(jù)外界條件可變的常量,可采用宏定義define或集中起來(lái)放在一個(gè)頭文件中進(jìn)行定義,再采用文件包含命令include將其加入到程序中去。這樣當(dāng)需要修改某個(gè)參量時(shí),只須修改相應(yīng)的包含文件或宏定義,而不必對(duì)使用它們的每個(gè)程序文件都作修改,從而有利于文件的維護(hù)和更新?,F(xiàn)舉例說(shuō)明如下:例1對(duì)于不同的單片機(jī)晶振,程序取不同的延時(shí)時(shí)間,而且可根據(jù)外界條件的變化修改延時(shí)時(shí)間的長(zhǎng)短。對(duì)于這樣的程序,可利用宏定義和條件編譯來(lái)實(shí)現(xiàn)。程序如下:#defineflag1#ifdefflag1#definefosc6Mdelay=10;#elifflag#definefosc8Mdelay=12;#else#definefosc12Mdelay=20;#endifmain()for(I=0;Idelay;I+);這樣源程序不作任何修改就可適用于不同時(shí)鐘頻率的單片機(jī)系統(tǒng),并可根據(jù)情況的不同取不同的delay值,完成不同的目的。2C51語(yǔ)言與匯編語(yǔ)言程序的混合編程C51編譯器能對(duì)C語(yǔ)言源程序進(jìn)行高效率的編譯,生成高效簡(jiǎn)潔的代碼,在絕大多數(shù)場(chǎng)合采用C語(yǔ)言編程即可完成預(yù)期的目的。但有時(shí)為了編程直觀或某些特殊地址的處理,還須采用一定的匯編語(yǔ)言編程。而在另一些場(chǎng)合,出于某種目的,匯編語(yǔ)言也可調(diào)用C語(yǔ)言。在這種混合編程中,關(guān)鍵是參數(shù)的傳遞和函數(shù)的返回值。它們必須有完整的約定,否則數(shù)據(jù)的交換就可能出錯(cuò)。下面就以力源公司的10位串行A/D轉(zhuǎn)換器TLC1549為例說(shuō)明C語(yǔ)言程序與匯編語(yǔ)言程序的調(diào)用。圖1TLC1549管腳圖1549的管腳圖和時(shí)序圖分別如圖1和圖2所示,假定DATAOUT接P1.0,接P1.1,CLOCK接P1.2。1549的具體特性請(qǐng)查閱有關(guān)資料。圖2TLC1549時(shí)序圖例2C語(yǔ)言程序與匯編語(yǔ)言程序的調(diào)用,其子程序如下:PUBLICAD;入口地址SEG_ADSEGMENTCODE;程序段RSEGSEG_ADUSING0AD:MOVR6,#00MOVR7,#00SETBP1.1ACALLDELAYCLRP1.1ACALLDELAYMOVR0,#10RR0:SETBP1.2NOPCLRP1.2DJNZR0,RR0ACALLDELAYMOV30H,R6;A/D轉(zhuǎn)換的高;兩位保存在R6中ACALLCIRMOVR6,30HSETBP1.2NOPCLRP1.2MOV30H,R6ACALLCIRMOVR6,30HMOVR0,#8;A/D轉(zhuǎn)換的低;8位保存在R7中RR2:SETBP1.2NOPCLRP1.2MOV30H,R7ACALLCIRMOVR7,30HDJNZR0,RR2RETCIR:CLRCMOVC,P1.0MOVA,30HRLCAMOV30H,ARETEND在以上程序中,函數(shù)的返回值為一無(wú)符號(hào)整型數(shù),根據(jù)調(diào)用規(guī)則,返回值的高位必須在R6中,低位在R7中,這樣才可保證數(shù)據(jù)的傳遞不出錯(cuò)。另外,在調(diào)用過(guò)程中,必須注意寄存器的入棧。這樣在以后用到A/D轉(zhuǎn)換時(shí),在C語(yǔ)言中調(diào)用匯編語(yǔ)言子程序AD()即可。3C51中斷處理過(guò)程C51編譯器支持在C源程序中直接開(kāi)發(fā)中斷過(guò)程,因此減輕了使用匯編語(yǔ)言的繁瑣工作,提高了開(kāi)發(fā)效率。中斷服務(wù)函數(shù)的完整語(yǔ)法如下:void函數(shù)名(void)模式再入interruptnusingr其中n(031)代表中斷號(hào)。C51編譯器允許32個(gè)中斷,具體使用哪個(gè)中斷由80C51系列的芯片決定。r(03)代表第r組寄存器。在調(diào)用中斷函數(shù)時(shí),要求中斷過(guò)程調(diào)用的函數(shù)所使用的寄存器組必須與其相同。再入用于說(shuō)明中斷處理函數(shù)有無(wú)再入能力。C51編譯器及其對(duì)C語(yǔ)言的擴(kuò)充允許編程者對(duì)中斷所有方面的控制和寄存器組的使用。這種支持能使編程者創(chuàng)建高效的中斷服務(wù)程序,用戶只須在C語(yǔ)言下關(guān)心中斷和必要的寄存器組切換操作。例3設(shè)單片機(jī)的fosc=12MHz,要求用0的方式編程,在P1.0腳輸出周期為2ms的方波。用C語(yǔ)言編寫的中斷服務(wù)程序如下:includesbitP1_0=P10;voidtimer0(void)interrupt1using1/*T0中斷服務(wù)程序入口*/P1_0=!P1_0;TH0=-(1000/256);/*計(jì)數(shù)初值重裝*/TL0=-(1000%256);voidmain(void)TMOD=0x01;/*T0工作在定時(shí)器方式1*/P1_0=0;TH0=-(1000/256);/*預(yù)置計(jì)數(shù)初值*/TL0=-(1000%256);EA=1;/*CPU開(kāi)中斷*/ET0=1;/*T0開(kāi)中斷*/TR0=1;/*啟動(dòng)T0*/dowhile(1);在編寫中斷服務(wù)程序時(shí)必須注意不能進(jìn)行
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 質(zhì)詢會(huì)主持流程
- 工程地質(zhì)培訓(xùn)
- 新媒體培訓(xùn)課件
- 腫瘤危重癥高血鈣癥護(hù)理
- VTE護(hù)理教學(xué)查房
- 罪犯教育適應(yīng)區(qū)
- 如何提高團(tuán)隊(duì)凝聚力
- 與心靈相約 與健康同行-心理健康主題演講稿
- 我國(guó)農(nóng)業(yè)機(jī)械化智能化產(chǎn)業(yè)現(xiàn)狀與區(qū)域發(fā)展差異分析報(bào)告
- 2025年海上風(fēng)力發(fā)電場(chǎng)運(yùn)維管理與技術(shù)創(chuàng)新策略深度報(bào)告
- 江蘇省揚(yáng)州市2024-2025學(xué)年四年級(jí)下學(xué)期6月數(shù)學(xué)期末試題一(有答案)
- (2025)發(fā)展對(duì)象培訓(xùn)考試題和答案
- 2024年西南醫(yī)科大學(xué)招聘專職輔導(dǎo)員真題
- 2025年經(jīng)濟(jì)學(xué)基礎(chǔ)理論考試試卷及答案
- 建筑施工項(xiàng)目支付流程及管理
- 保育師操作考試題及答案
- 精準(zhǔn)教學(xué)的數(shù)據(jù)驅(qū)動(dòng)模式
- 學(xué)校公務(wù)外出管理制度
- 天津市部分區(qū)2025年九年級(jí)下學(xué)期中考二模數(shù)學(xué)試卷(含詳解)
- 2024年重慶開(kāi)州區(qū)中醫(yī)院招聘筆試真題
- 海外倉(cāng)一件代發(fā)服務(wù)合同范本下載
評(píng)論
0/150
提交評(píng)論