<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > C51語(yǔ)言應用編程的若干問(wèn)題

C51語(yǔ)言應用編程的若干問(wèn)題

作者: 時(shí)間:2012-07-04 來(lái)源:網(wǎng)絡(luò ) 收藏
  在研制單片機應用系統時(shí),是一種常用的軟件工具。它能直接操作硬件,指令的執行速度快。但其指令系統的固有格式受硬件結構的限制很大,且難于編寫(xiě)與調試,可移植性也差。隨著(zhù)單片機硬件性能的提高,其工作速度越來(lái)越快,因此在編寫(xiě)單片機應用系統程序時(shí),更著(zhù)重于程序本身的編寫(xiě)效率。而Franklin 交叉編譯器是專(zhuān)為80系列單片機設計的一種高效的C語(yǔ)言編譯器,使用它可以縮短開(kāi)發(fā)周期,降低開(kāi)發(fā)成本,而且開(kāi)發(fā)出的系統易于維護,可靠性高,可移植性好,即使在代碼的使用效率上,也完全可以和相比,因此目前它已成為開(kāi)發(fā)80系列單片機的流行工具。

1 c51語(yǔ)言程序設計的基本技巧

  C語(yǔ)言是一種高級程序設計語(yǔ)言,它提供了十分完備的規范化流程控制結構。因此采用C51語(yǔ)言設計單片機應用系統程序時(shí),首先要盡可能地采用結構化的程序設計方法,這樣可使整個(gè)應用系統程序結構清晰,易于調試和維護。對于一個(gè)較大的程序,可將整個(gè)程序按功能分成若干個(gè)模塊,不同的模塊完成不同的功能。對于不同的功能模塊,分別指定相應的入口參數和出口參數,而經(jīng)常使用的一些程序最好編成函數,這樣既不會(huì )引起整個(gè)程序管理的混亂,還可增強可讀性,移植性也好。

  在程序設計過(guò)程中,要充分利用C51語(yǔ)言的預處理命令。對于一些常用的常數,如TRUE,FALSE,PI以及各種特殊功能寄存器,或程序中一些重要的依據外界條件可變的常量,可采用宏定義"#define"或集中起來(lái)放在一個(gè)頭文件中進(jìn)行定義,再采用文件包含命令"#include"將其加入到程序中去。這樣當需要修改某個(gè)參量時(shí),只須修改相應的包含文件或宏定義,而不必對使用它們的每個(gè)程序文件都作修改,從而有利于文件的維護和更新?,F舉例說(shuō)明如下:

  例1 對于不同的單片機晶振,程序取不同的延時(shí)時(shí)間,而且可根據外界條件的變化修改延時(shí)時(shí)間的長(cháng)短。對于這樣的程序,可利用宏定義和條件編譯來(lái)實(shí)現。程序如下:

#define   flag 1
#ifdef   flag==1
  #define fosc 6M
  delay=10;
#elif   flag = = 0
#define  fosc  8M
  delay=12;
#else
#define  fosc  12M
  delay=20;
#endif
main()
{
for(I=0;Idelay;I++);
}

  這樣源程序不作任何修改就可適用于不同時(shí)鐘頻率的單片機系統,并可根據情況的不同取不同的delay值,完成不同的目的。

2 C51語(yǔ)言與程序的混合編程

  C51編譯器能對C語(yǔ)言源程序進(jìn)行高效率的編譯,生成高效簡(jiǎn)潔的代碼,在絕大多數場(chǎng)合采用C語(yǔ)言編程即可完成預期的目的。但有時(shí)為了編程直觀(guān)或某些特殊地址的處理,還須采用一定的匯編語(yǔ)言編程。而在另一些場(chǎng)合,出于某種目的,匯編語(yǔ)言也可調用C語(yǔ)言。在這種混合編程中,關(guān)鍵是參數的傳遞和函數的返回值。它們必須有完整的約定,否則數據的交換就可能出錯。下面就以力源公司的10位串行A/D轉換器TLC1549 為例說(shuō)明C語(yǔ)言程序與匯編語(yǔ)言程序的調用。

上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>