欧美午夜欧美,台湾成人av,久久av一区,最近看过的日韩成人

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

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

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

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

研制單片機應(yīng)用系統(tǒng)時,匯編語言是一種常用的軟件工具。它能直接操作硬件,指令的執(zhí)行速度快。但其指令系統(tǒng)的固有格式受硬件結(jié)構(gòu)的限制很大,且難于編寫與調(diào)試,可移植性也差。隨著單片機硬件性能的提高,其工作速度越來越快,因此在編寫單片機應(yīng)用系統(tǒng)程序時,更著重于程序本身的編寫效率。而Franklin C51交叉編譯器是專為80C51系列單片機設(shè)計的一種高效的C語言編譯器,使用它可以縮短開發(fā)周期,降低開發(fā)成本,而且開發(fā)出的系統(tǒng)易于維護,可靠性高,可移植性好,即使在代碼的使用效率上,也完全可以和匯編語言相比,因此目前它已成為開發(fā)80C51系列單片機的流行工具。
1 C51語言程序設(shè)計的基本技巧
  C語言是一種高級程序設(shè)計語言,它提供了十分完備的規(guī)范化流程控制結(jié)構(gòu)。因此采用C51語言設(shè)計單片機應(yīng)用系統(tǒng)程序時,首先要盡可能地采用結(jié)構(gòu)化的程序設(shè)計方法,這樣可使整個應(yīng)用系統(tǒng)程序結(jié)構(gòu)清晰,易于調(diào)試和維護。對于一個較大的程序,可將整個程序按功能分成若干個模塊,不同的模塊完成不同的功能。對于不同的功能模塊,分別指定相應(yīng)的入口參數(shù)和出口參數(shù),而經(jīng)常使用的一些程序最好編成函數(shù),這樣既不會引起整個程序管理的混亂,還可增強可讀性,移植性也好。
  在程序設(shè)計過程中,要充分利用C51語言的預(yù)處理命令。對于一些常用的常數(shù),如TRUE,F(xiàn)ALSE,PI以及各種特殊功能寄存器,或程序中一些重要的依據(jù)外界條件可變的常量,可采用宏定義"#define"或集中起來放在一個頭文件中進行定義,再采用文件包含命令"#include"將其加入到程序中去。這樣當(dāng)需要修改某個參量時,只須修改相應(yīng)的包含文件或宏定義,而不必對使用它們的每個程序文件都作修改,從而有利于文件的維護和更新。現(xiàn)舉例說明如下:
  例1 對于不同的單片機晶振,程序取不同的延時時間,而且可根據(jù)外界條件的變化修改延時時間的長短。對于這樣的程序,可利用宏定義和條件編譯來實現(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語言源程序進行高效率的編譯,生成高效簡潔的代碼,在絕大多數(shù)場合采用C語言編程即可完成預(yù)期的目的。但有時為了編程直觀或某些特殊地址的處理,還須采用一定的匯編語言編程。而在另一些場合,出于某種目的,匯編語言也可調(diào)用C語言。在這種混合編程中,關(guān)鍵是參數(shù)的傳遞和函數(shù)的返回值。它們必須有完整的約定,否則數(shù)據(jù)的交換就可能出錯。下面就以力源公司的10位串行A/D轉(zhuǎn)換器TLC1549 為例說明C語言程序與匯編語言程序的調(diào)用。 
圖1 TLC1549管腳圖
  1549的管腳圖和時序圖分別如圖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ù)的傳遞不出錯。另外,在調(diào)用過程中,必須注意寄存器的入棧。這樣在以后用到A/D轉(zhuǎn)換時,在C語言中調(diào)用匯編語言子程序AD()即可。 
3 C51中斷處理過程
  C51編譯器支持在C源程序中直接開發(fā)中斷過程,因此減輕了使用匯編語言的繁瑣工作,提高了開發(fā)效率。中斷服務(wù)函數(shù)的完整語法如下:
  void 函數(shù)名(void)[模式]
  [再入]interrupt n [using r]
  其中n(0~31)代表中斷號。C51編譯器允許32個中斷,具體使用哪個中斷由80C51系列的芯片決定。r(0~3)代表第r組寄存器。在調(diào)用中斷函數(shù)時,要求中斷過程調(diào)用的函數(shù)所使用的寄存器組必須與其相同。"再入"用于說明中斷處理函數(shù)有無"再入"能力。C51編譯器及其對C語言的擴充允許編程者對中斷所有方面的控制和寄存器組的使用。這種支持能使編程者創(chuàng)建高效的中斷服務(wù)程序,用戶只須在C語言下關(guān)心中斷和必要的寄存器組切換操作。
  例3 設(shè)單片機的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);   /*計數(shù)初值重裝*/
TL0=-(1000%256);
}
void main(void)
{
TMOD=0x01;   /*T0工作在定時器方式1*/
P1_0=0;
TH0=-(1000/256);   /*預(yù)置計數(shù)初值*/

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

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

還可以輸入 200 個字
[ 查看全部 ] 網(wǎng)友評論
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
欧美午夜欧美,台湾成人av,久久av一区,最近看过的日韩成人
性做久久久久久免费观看| 色综合久久久久网| 午夜av区久久| 亚洲精品精品亚洲| 国产精品黄色在线观看| 国产欧美视频一区二区| 国产精品三级久久久久三级| 日本一区二区三区四区| 亚洲视频小说图片| 亚洲夂夂婷婷色拍ww47| 日本不卡视频在线| 麻豆极品一区二区三区| 欧美日免费三级在线| 欧美吻胸吃奶大尺度电影| 制服丝袜av成人在线看| 精品欧美一区二区三区精品久久| 2020国产精品自拍| 国产精品色噜噜| 亚洲宅男天堂在线观看无病毒| 天天爽夜夜爽夜夜爽精品视频| 麻豆精品精品国产自在97香蕉| 韩日av一区二区| 99精品热视频| 欧美日韩国产大片| 26uuu另类欧美| 亚洲欧美日韩国产手机在线| 亚洲中国最大av网站| 久久91精品久久久久久秒播| 大尺度一区二区| 欧美日产在线观看| 国产三级三级三级精品8ⅰ区| 亚洲三级在线播放| 卡一卡二国产精品| 91丝袜美女网| 精品88久久久久88久久久| 《视频一区视频二区| 老司机一区二区| 在线免费亚洲电影| 久久影院电视剧免费观看| 亚洲精品久久7777| 丁香啪啪综合成人亚洲小说 | 国产精品视频yy9299一区| 亚洲一区在线播放| 国产福利一区二区| 精品视频在线免费观看| 国产精品福利av| 国产一区二区成人久久免费影院| 91蜜桃免费观看视频| 精品乱人伦小说| 婷婷开心激情综合| av网站一区二区三区| 精品国产乱码久久久久久久 | 欧美日韩一区中文字幕| 中文字幕欧美激情一区| 老司机精品视频在线| 欧美色视频一区| 亚洲欧美综合在线精品| 国产精品夜夜嗨| 精品欧美黑人一区二区三区| 亚洲大尺度视频在线观看| 99久久精品一区二区| 久久天天做天天爱综合色| 麻豆91免费观看| 日韩视频一区在线观看| 五月天国产精品| 欧美日产在线观看| 亚洲国产欧美在线| 欧美丝袜丝nylons| 一区二区三区在线高清| 在线精品国精品国产尤物884a| 亚洲欧美区自拍先锋| 东方aⅴ免费观看久久av| 国产欧美一区二区精品婷婷| 丁香婷婷深情五月亚洲| 国产精品久久久久久久蜜臀| 不卡一区在线观看| 中文字幕巨乱亚洲| 成人免费看视频| 亚洲丝袜精品丝袜在线| av电影在线观看一区| 亚洲婷婷综合久久一本伊一区| av不卡在线观看| 亚洲日本在线观看| 在线观看日韩一区| 奇米精品一区二区三区四区| 精品国产精品网麻豆系列| 国产高清亚洲一区| 国产欧美一区二区精品婷婷 | 欧美一区二区三区精品| 美腿丝袜亚洲三区| 精品理论电影在线观看| 福利一区福利二区| 一区二区三区不卡视频在线观看| 欧美日韩卡一卡二| 精品一区二区在线看| 精品国精品国产尤物美女| 丁香另类激情小说| 午夜精品一区二区三区三上悠亚| 7777精品伊人久久久大香线蕉超级流畅 | 91国偷自产一区二区三区成为亚洲经典 | 精品福利av导航| 成人网在线播放| 亚洲小少妇裸体bbw| 777午夜精品视频在线播放| 国产又黄又大久久| 在线成人午夜影院| 中文字幕一区二区三区精华液| 亚洲乱码国产乱码精品精小说| 亚洲三级在线免费观看| 一区二区视频在线| 狠狠色丁香九九婷婷综合五月| 91丨九色丨黑人外教| 久久久久久久久久久99999| 青青草97国产精品免费观看无弹窗版| 爽爽淫人综合网网站| 欧美日韩中文一区| 国产精品久久二区二区| 日本欧美大码aⅴ在线播放| 久久99精品国产.久久久久久| 色综合中文字幕国产| 国产欧美一二三区| 不卡的看片网站| 日韩成人精品在线| 中文字幕日韩一区| 欧美大白屁股肥臀xxxxxx| 色美美综合视频| 国产成人福利片| 精品一区二区影视| 亚洲精品v日韩精品| 久久嫩草精品久久久精品一| 91精品综合久久久久久| 91麻豆国产精品久久| 国产资源在线一区| 日韩国产精品久久久久久亚洲| 亚洲综合一二区| 国产精品久久久久久久久久免费看| 欧美日韩高清不卡| 一本久久a久久精品亚洲| 福利一区福利二区| 国产一二三精品| 韩国成人在线视频| 久久99精品视频| 七七婷婷婷婷精品国产| 午夜精品影院在线观看| 亚洲自拍另类综合| 亚洲在线视频网站| 一区二区三区高清在线| 亚洲精品欧美在线| 亚洲综合男人的天堂| 一区二区三区在线看| 亚洲一区自拍偷拍| 亚洲乱码国产乱码精品精可以看| 国产精品美女久久久久久久| 国产精品亲子伦对白| 一区在线中文字幕| 亚洲婷婷在线视频| 亚洲精品久久久蜜桃| 亚洲免费观看高清在线观看| 一区二区在线观看不卡| 亚洲成人精品在线观看| 免费在线成人网| 亚洲成人在线免费| 麻豆精品精品国产自在97香蕉| 久草中文综合在线| 国产精品综合二区| 国产一区二区在线观看免费| 成人av一区二区三区| 欧美在线影院一区二区| 这里只有精品99re| 久久久国产精品午夜一区ai换脸| 久久久精品tv| 一区二区日韩电影| 久久99在线观看| 不卡av电影在线播放| 欧美日韩一本到| 精品久久久久久久久久久久久久久 | 蜜臀精品一区二区三区在线观看 | 91精品在线麻豆| 日韩精品一区二| 国产日韩欧美精品综合| 亚洲欧洲av一区二区三区久久| 亚洲另类在线制服丝袜| 免费一区二区视频| 成人不卡免费av| 91精品婷婷国产综合久久竹菊| 国产婷婷色一区二区三区四区| 午夜电影一区二区| 亚洲成人动漫一区| 精品系列免费在线观看| av电影在线观看一区| 一本在线高清不卡dvd| 欧美高清精品3d| 国产欧美一区二区三区在线看蜜臀| 国产亚洲福利社区一区| 亚洲国产精品久久久久秋霞影院 | 日韩成人免费电影| 韩国女主播成人在线| 99久久国产综合色|国产精品| 欧美日本韩国一区| 国产精品久久久久久福利一牛影视 |