KeilC51编译器及其应用课件.pptVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

KeilC51編譯器及其應用C51概述用C語言的優勢:1、寄存器的分配以及各種變數和數據的尋址都由編譯器完成。2、程式擁有了正式的結構,並且能被分成多個單獨的函數。這使整個應用系統的結構變得清晰,同時讓源代碼變得可重複使用。3、選擇特定的操作符來操作變數的能力提高了源代碼的可讀性。4、可以運用和人的思維很接近的辭彙和演算法運算式。5、編寫程式和調試程式的時間得到很大程度的縮短。6、C運行連接庫包含一些標準的副程式。7、由於程式的模組結構技術,使得現有的程式段可以很容易的包含到新的程式中去。MCS-51單片機的映射KeilC51的數據類型MCS-51單片機的映射KeilC51存儲類型Code:程式空間(64Kbytes),通過MOVC@A+DPTR訪問。Data:直接訪問的內部數據記憶體,訪問速度最快(128bytes)。Idata:間接訪問的內部數據記憶體,可以訪問所有的內部記憶體空間。Bdata:可位尋址的內部數據記憶體,可以位元組方式也可以位方式訪問。Xdata: 外部數據記憶體(64Kbytes),通過MOVX@DPTR訪問。Pdata:分頁的外部數據記憶體(256bytes),通過MOVX@Ri訪問。 MCS-51單片機的映射存儲模式1)小(SMALL)模式:所有變數都默認在8051的內部數據記憶體中。這和用data顯式定義變數起到相同的作用。2)緊湊(COMPACT)模式: 此模式中,所有變數都默認在8051的外部數據記憶體的一頁中。地址的高位元組往往通過Port2輸出。這和用pdata顯式定義變數起到相同的作用。這種限制來自於間接尋址所使用的R0,R1(MOVX@Ri)。3)大(LARGE)模式: 在大模式下,所有的變數都默認在外部記憶體中(xdata)。這和用xdata顯式定義變數起到相同的作用。數據指針(DPTR)用來尋址。MCS-51單片機的映射KeilC51中的變數定義1、在變數的聲明中,可以包括記憶體類型和signed或unsigned屬性。如:1)chardatavar1;2)charcodetext[]=ENTERPARAMETER;3)unsignedlongxdataarray[100];4)floatidatax,y,z;MCS-51單片機的映射KeilC51中的變數定義5)unsignedintpdatadimension;6)unsignedcharxdatavector[10][4][4];7)charbdataflags;MCS-51單片機的映射2、位變數(bit):與MCS-51硬體特性操作有關的可以定義成位變數。位變數定位在MCS-51單片機的片內RAM的位尋址空間。3、整型變數(int):整型變數的長度為16位,占2個位元組,在記憶體中的存放格式為高位在低地址位元組,低位在高地址位元組。4、浮點變數(float):浮點變數的長度為32位,占4個位元組,MCS-51單片機的映射5、特殊功能寄存器(sfr、sfr16、sbit)sfr:位元組尋址。比如sfrP0=0x80;表示PO口地址為80H,“=”後為80H~FFH之間的常數。sfr16:字尋址。如sfr16T2=0xCC;指定Timer2口地址T2L=CCHT2H=CDH。sbit:位尋址。如sbitEA=0xAF;指定第0xAF位為EA,即中斷允許。還可以有如下定義方法:sbit0V=PSW^2;(定義0V為PSW的第2位,當然需要先有PSW定義。)sbit0V=0XDO^2;(同上)MCS-51單片機的映射C51中的指針1)通用指針通用或未定型的指針的聲明和標準C語言中一樣。如:char*s;字元指針int*numptr;整型指針long*state;長整型指針通用指針總是需要三個位元組來存儲。第一個位元組是用來表示記憶體類型,第二個位元組是指針的高位元組,第三位元組是指針的低位元組。通用指針可以用來訪問所有類型的變數,而不管變數存儲在哪個存儲空間中。因而許多庫函數都使用通用指針。通過使用通用指針,一個函數可以訪問數據,而不用考慮它存儲在什麼記憶體中。通用指針很方便,但是也很慢。在所指向目標的存儲空間不明確的情況下,它們用的最多。MCS-51單片機的映射C51中的指針2)記憶體指針記憶體指針或類型確定的指針在定義時包括一個記憶體類型說明,並且總是指向此說明的特定記憶體空間。例如:chardata*str;指向內RAM低128位元組的字元指針intxdata

文档评论(0)

爱遛弯的张先生 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档