婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計(jì) | 電子開發(fā)網(wǎng)Rss 2.0 會員中心 會員注冊
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> 單片機(jī) >> 正文

C51語言應(yīng)用編程的若干問題

作者:佚名    文章來源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2013-3-4

研制單片機(jī)應(yīng)用系統(tǒng)時(shí),匯編語言是一種常用的軟件工具。它能直接操作硬件,指令的執(zhí)行速度快。但其指令系統(tǒng)的固有格式受硬件結(jié)構(gòu)的限制很大,且難于編寫與調(diào)試,可移植性也差。隨著單片機(jī)硬件性能的提高,其工作速度越來越快,因此在編寫單片機(jī)應(yīng)用系統(tǒng)程序時(shí),更著重于程序本身的編寫效率。而Franklin C51交叉編譯器是專為80C51系列單片機(jī)設(shè)計(jì)的一種高效的C語言編譯器,使用它可以縮短開發(fā)周期,降低開發(fā)成本,而且開發(fā)出的系統(tǒng)易于維護(hù),可靠性高,可移植性好,即使在代碼的使用效率上,也完全可以和匯編語言相比,因此目前它已成為開發(fā)80C51系列單片機(jī)的流行工具。
1 C51語言程序設(shè)計(jì)的基本技巧
  C語言是一種高級程序設(shè)計(jì)語言,它提供了十分完備的規(guī)范化流程控制結(jié)構(gòu)。因此采用C51語言設(shè)計(jì)單片機(jī)應(yīng)用系統(tǒng)程序時(shí),首先要盡可能地采用結(jié)構(gòu)化的程序設(shè)計(jì)方法,這樣可使整個(gè)應(yīng)用系統(tǒng)程序結(jié)構(gòu)清晰,易于調(diào)試和維護(hù)。對于一個(gè)較大的程序,可將整個(gè)程序按功能分成若干個(gè)模塊,不同的模塊完成不同的功能。對于不同的功能模塊,分別指定相應(yīng)的入口參數(shù)和出口參數(shù),而經(jīng)常使用的一些程序最好編成函數(shù),這樣既不會引起整個(gè)程序管理的混亂,還可增強(qiáng)可讀性,移植性也好。
  在程序設(shè)計(jì)過程中,要充分利用C51語言的預(yù)處理命令。對于一些常用的常數(shù),如TRUE,F(xiàn)ALSE,PI以及各種特殊功能寄存器,或程序中一些重要的依據(jù)外界條件可變的常量,可采用宏定義"#define"或集中起來放在一個(gè)頭文件中進(jìn)行定義,再采用文件包含命令"#include"將其加入到程序中去。這樣當(dāng)需要修改某個(gè)參量時(shí),只須修改相應(yīng)的包含文件或宏定義,而不必對使用它們的每個(gè)程序文件都作修改,從而有利于文件的維護(hù)和更新。現(xiàn)舉例說明如下:
  例1 對于不同的單片機(jī)晶振,程序取不同的延時(shí)時(shí)間,而且可根據(jù)外界條件的變化修改延時(shí)時(shí)間的長短。對于這樣的程序,可利用宏定義和條件編譯來實(shí)現(xiàn)。程序如下:
#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;I

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

接P1.1,CLOCK接P1.2。
1549的具體特性請查閱有關(guān)資料。

例2 C語言程序與匯編語言程序的調(diào)用,其子程序如下:
PUBLIC AD   ;入口地址
SEG_AD SEGMENT CODE ;程序段 
RSEG SEG_AD
USING 0
  AD: MOV R6,#00
MOV R7,#00
SETB P1.1
ACALL DELAY
CLR P1.1
ACALL DELAY
MOV R0,#10
  RR0: SETB P1.2
NOP
CLR P1.2
DJNZ R0,RR0
ACALL DELAY
MOV 30H,R6   ;A/D轉(zhuǎn)換的高
        ;兩位保存在R6中
ACALL CIR
MOV R6,30H
SETB P1.2
NOP
CLR P1.2
MOV 30H,R6
ACALL CIR
MOV R6,30H
MOV R0,#8   ;A/D轉(zhuǎn)換的低
       ;8位保存在R7中
  RR2: SETB P1.2
NOP
CLR P1.2
MOV 30H,R7
ACALL CIR
MOV R7,30H
DJNZ R0,RR2
RET
  CIR: CLR C
MOV C,P1.0
MOV A,30H
RLC A
MOV 30H,A
RET
END
  在以上程序中,函數(shù)的返回值為一無符號整型數(shù),根據(jù)調(diào)用規(guī)則,返回值的高位必須在R6中,低位在R7中,這樣才可保證數(shù)據(jù)的傳遞不出錯(cuò)。另外,在調(diào)用過程中,必須注意寄存器的入棧。這樣在以后用到A/D轉(zhuǎn)換時(shí),在C語言中調(diào)用匯編語言子程序AD()即可。 
3 C51中斷處理過程
  C51編譯器支持在C源程序中直接開發(fā)中斷過程,因此減輕了使用匯編語言的繁瑣工作,提高了開發(fā)效率。中斷服務(wù)函數(shù)的完整語法如下:
  void 函數(shù)名(void)[模式]
  [再入]interrupt n [using r]
  其中n(0~31)代表中斷號。C51編譯器允許32個(gè)中斷,具體使用哪個(gè)中斷由80C51系列的芯片決定。r(0~3)代表第r組寄存器。在調(diào)用中斷函數(shù)時(shí),要求中斷過程調(diào)用的函數(shù)所使用的寄存器組必須與其相同。"再入"用于說明中斷處理函數(shù)有無"再入"能力。C51編譯器及其對C語言的擴(kuò)充允許編程者對中斷所有方面的控制和寄存器組的使用。這種支持能使編程者創(chuàng)建高效的中斷服務(wù)程序,用戶只須在C語言下關(guān)心中斷和必要的寄存器組切換操作。
  例3 設(shè)單片機(jī)的fosc=12MHz,要求用T0的方式1編程,在P1.0腳輸出周期為2ms的方波。
  用C語言編寫的中斷服務(wù)程序如下:
#include
sbit P1_0=P1^0;
void timer0(void)interrupt 1 using 1 {
   /*T0中斷服務(wù)程序入口*/
P1_0=!P1_0;
TH0=-(1000/256);   /*計(jì)數(shù)初值重裝*/
TL0=-(1000%256);
}
void main(void)
{
TMOD=0x01;   /*T0工作在定時(shí)器方式1*/
P1_0=0;
TH0=-(1000/256);   /*預(yù)置計(jì)數(shù)初值*/

TL0=-(1000%256);
EA=1;      /*CPU開中斷*/
ET0=1;      /*T0開中斷*/
TR0=1;      /*啟動T0*/
do{}while(1);
}
 在編寫中斷服務(wù)程序時(shí)必須注意不能進(jìn)行參數(shù)傳遞,不能有返回值。
4 結(jié)論
  C51編譯器不但可以縮短單片機(jī)控制系統(tǒng)的開發(fā)周期,而且易于調(diào)試和維護(hù)。此外,C51語言還有許多強(qiáng)大的功能,如提供豐富的庫函數(shù)供用戶直接調(diào)用,完整的編譯控制指令為程序調(diào)試提供必要的符號信息等等。總之,C51語言是廣大單片機(jī)開發(fā)人員的強(qiáng)有力的工具。

Tags:C51語言,編程,問題  
責(zé)任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個(gè)字
[ 查看全部 ] 網(wǎng)友評論
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av
<button id="4i884"></button>
  • <abbr id="4i884"><source id="4i884"></source></abbr>
  • <code id="4i884"><tr id="4i884"></tr></code>
  • <rt id="4i884"></rt>
    <li id="4i884"></li>
  • <rt id="4i884"><tr id="4i884"></tr></rt>
  • 免费看一级大黄情大片| 中文字幕 日韩 欧美| 午夜激情在线观看视频| 影音先锋男人的网站| 波多野结衣天堂| 日韩欧美在线播放视频| 中文字幕无码精品亚洲资源网久久| 一级做a爱视频| 色乱码一区二区三区在线| 亚洲午夜精品久久久久久人妖| av动漫在线免费观看| 成人手机视频在线| 国产成人黄色网址| 香港日本韩国三级网站| www.xxx亚洲| 992kp快乐看片永久免费网址| 任你操这里只有精品| 国产精品网站免费| 免费 成 人 黄 色| 99热自拍偷拍| 国产视频一区二区视频| 日韩大片一区二区| 久久久福利影院| 手机在线免费毛片| 大片在线观看网站免费收看| 久久人妻无码一区二区| 国产夫妻自拍一区| 日本a在线免费观看| 成年人午夜免费视频| www.玖玖玖| 欧洲av无码放荡人妇网站| 在线免费观看视频黄| 999久久久精品视频| 99久热在线精品视频| 无码人妻少妇伦在线电影| 国产欧美日韩小视频| 毛片av免费在线观看| 午夜宅男在线视频| 日本一级黄视频| 欧美三级一级片| 日韩成人av免费| 高清欧美精品xxxxx| 国产精品少妇在线视频| 中文字幕 欧美日韩| 大荫蒂性生交片| 日本va中文字幕| 免费观看黄色大片| 国产午夜伦鲁鲁| 日本一级淫片演员| 免费在线a视频| 艳母动漫在线观看| 老熟妇仑乱视频一区二区| 亚洲黄色片免费| 黑鬼大战白妞高潮喷白浆| 亚洲综合在线一区二区| 久久美女福利视频| 国产在线拍揄自揄拍无码| 成人在线观看a| 青青草免费在线视频观看| 激情综合网婷婷| www.av片| 黄色三级中文字幕| theporn国产精品| 嫩草av久久伊人妇女超级a| av动漫在线播放| 亚洲黄色片免费| 亚洲综合婷婷久久| 免费无码av片在线观看| 日韩国产一级片| 69sex久久精品国产麻豆| 久久综合在线观看| 男生操女生视频在线观看| 美女福利视频在线| 亚洲午夜精品久久久久久人妖| 日本久久久网站| 国产香蕉一区二区三区| 亚洲成年人专区| 午夜啪啪福利视频| 中文字幕一区二区三区四| 182午夜在线观看| 午夜精品中文字幕| 亚洲黄色小视频在线观看| 午夜国产一区二区三区| 亚洲精品高清无码视频| 成人精品视频一区二区| 免费黄色特级片| 不卡av免费在线| 亚洲欧美视频二区| 国产欧美一区二| 97超碰人人看| 亚洲色欲久久久综合网东京热| 成人国产在线看| 国产av熟女一区二区三区| 99久热在线精品视频| aa视频在线播放| 亚欧在线免费观看| 国产女同无遮挡互慰高潮91| 亚洲色图都市激情| 日韩精品在线视频免费观看| 免费无遮挡无码永久视频| 日韩视频免费在线播放| 香蕉视频999| 久操手机在线视频| 欧美丰满熟妇bbbbbb百度| 成人免费毛片播放| 91制片厂免费观看| 男女猛烈激情xx00免费视频| 91高清国产视频| 无码熟妇人妻av在线电影| 日本男人操女人| 国产av第一区| 成人免费在线观看视频网站| 强开小嫩苞一区二区三区网站 | 好男人www社区| 国产精品久久成人免费观看| 农村妇女精品一二区| 国内精品国产三级国产aⅴ久| 99热自拍偷拍| 国产精品啪啪啪视频| 天天影视综合色| 亚洲精品天堂成人片av在线播放| 国产激情在线观看视频| 成年人视频网站免费| 国产福利精品一区二区三区| 国产91xxx| 天堂а√在线中文在线| 911福利视频| 久久视频这里有精品| 熟女视频一区二区三区| 亚洲欧美国产日韩综合| 国产免费视频传媒| a级黄色小视频| 国产成人一区二区三区别| av中文字幕网址| 亚洲最大综合网| 激情网站五月天| 久久视频这里有精品| 蜜桃视频一区二区在线观看| 日本特级黄色大片| 色噜噜狠狠一区二区| 日本在线观看免费视频| 成人观看免费完整观看| 日韩在线视频在线观看| 一女被多男玩喷潮视频| 九一国产精品视频| 欧美精品一区免费| 青青青青在线视频| 超碰在线免费观看97| 91性高潮久久久久久久| 亚洲欧美日韩网站| 欧美精品一区二区性色a+v| 日本丰满少妇黄大片在线观看| 亚洲美女自拍偷拍| www.黄色网址.com| 福利在线小视频| 国产综合中文字幕| www黄色av| 色91精品久久久久久久久| 99精品视频免费版的特色功能| 四虎免费在线观看视频| 91大学生片黄在线观看| 精品免费久久久久久久| 日本www在线视频| 成人在线看视频| 亚洲图片 自拍偷拍| 妺妺窝人体色www看人体| 成人毛片视频网站| 亚洲欧美视频二区| 97超碰在线视| 91蝌蚪视频在线观看| 亚洲天堂伊人网| 精品少妇一区二区三区在线| 波多野结衣天堂| 一级片免费在线观看视频| 精品无码国产一区二区三区av| 久久久久久香蕉| 乱子伦一区二区| 国产成人精品无码播放| 大陆极品少妇内射aaaaaa| 自拍偷拍 国产| 欧美 日韩 国产精品| 鲁一鲁一鲁一鲁一av| 久操手机在线视频| 奇米影视四色在线| 日韩精品久久一区二区| 五月婷婷六月丁香激情| 日本十八禁视频无遮挡| 国产又大又长又粗又黄| 99视频在线免费| 黄网站欧美内射| 国产精品中文久久久久久| av观看免费在线| 国产曰肥老太婆无遮挡| 一级黄色片国产| 中文字幕 日韩 欧美| 无码专区aaaaaa免费视频| 日本中文字幕一级片| 亚洲视频在线不卡| 国产主播中文字幕| 黄色一级免费大片|