18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開(kāi)發(fā)>C51的一些誤區(qū)和51單片機(jī)的尋址方式及10個(gè)你可能沒(méi)用過(guò)的Linux命令

C51的一些誤區(qū)和51單片機(jī)的尋址方式及10個(gè)你可能沒(méi)用過(guò)的Linux命令

2019-06-27 | rar | 0.32 MB | 次下載 | 免費(fèi)

資料介紹

本文檔的主要內(nèi)容詳細(xì)介紹的是C51的一些誤區(qū)和注意事項(xiàng)和51單片機(jī)的尋址方式10 個(gè)你可能沒(méi)用過(guò)的Linux命令等資料免費(fèi)下載。

  C51的一些誤區(qū)和注意事項(xiàng):

  1) C 忌諱絕對(duì)定位。常看見(jiàn)初學(xué)者要求使用_at_,這是一種謬誤,把C 當(dāng)作ASM 看待了。在C 中變量的定位是編譯器的事情,初學(xué)者只要定義變量和變量的作用域,編譯器就把一個(gè)固定地址給這個(gè)變量。怎么取得這個(gè)變量的地址?要用指針。比如unsigned char data x;后,x 的地址就是&x, 你只要查看這個(gè)參數(shù),就可以在程序中知道具體的地址了。所以俺一看見(jiàn)要使用絕對(duì)定位的人,第一印象就是:這大概是個(gè)初學(xué)者。

  2) 設(shè)置SP 的問(wèn)題。原因和1差不對(duì),編譯器在把所有變量和緩沖區(qū)賦予地址后,自動(dòng)把最后一個(gè)字節(jié)開(kāi)始的地方,作為SP 的開(kāi)始位置,所以初學(xué)者是不必要去理會(huì)的。這體現(xiàn)C 的優(yōu)越性,很多事情C 編譯時(shí)候做了。

  3) 用C 的主程序結(jié)構(gòu):#include void main(void) { while(1); } 這是個(gè)最小的成功的C 程序,包括頭部文件和程序主體。頭部文件的名詞解釋?zhuān)阂玫耐獠抠Y源文件,這個(gè)文件包括了硬件信息和外部模塊提供的可使用的函數(shù)和變量的說(shuō)明??梢杂梦谋痉绞酱蜷_(kāi)reg52.h,仔細(xì)研究下,會(huì)有一些寫(xiě)程序的體會(huì)。

  4) 這樣構(gòu)成一個(gè)C 項(xiàng)目在C 中,常用項(xiàng)目來(lái)管理。項(xiàng)目一般分為兩大塊:C 文件塊和頭部文件塊。我們常把不同功能寫(xiě)在不同的C 文件中,依*項(xiàng)目的管理,最后把所有文件連接起來(lái),這樣就可以得到可以燒錄的HEX 文件或BIN 文件。這些C 文件中,有且只有唯一一個(gè)包括main()函數(shù),和3)中一樣的C 文件。用頭部文件把各個(gè)不同的C 互相連接起來(lái)。一個(gè)C 文件基本上要對(duì)應(yīng)有一個(gè)H 頭部文件,這個(gè)H 文件就包含本C 文件中可以提供給外面使用的變量和函數(shù),沒(méi)有在H 文件中列出的募??梢運(yùn)閌歉肅文件的內(nèi)部函數(shù)和變量,外部C 不能使用。例子: a.C: unsigned char i; unsigned char mWork; void Test1(void) { mWork++; } voidTest2(void) { i++; } a.h 文件中: extern unsigned char i; extern void Test1(void); 這樣主程序M.c 中: #include /*C 編譯器內(nèi)部自帶的H 文件,使用《》*/ #i nclude “a.h” /*自定義的H 文件,一般用“”*/ void main(void) { Test1(); /*使用a.c 模塊文件中的函數(shù)*/ while(1){ i++; /*使用a.c 模塊文件中的變量*/ } }

  5) 51家族核心都是基于8031的,有很多在此核心上進(jìn)行擴(kuò)展,有的把程序存儲(chǔ)器放在內(nèi)部:89c(S)51.。,有的增加了RAM:89c(S)52.。,有的增加了一些專(zhuān)用硬件80C552.。.,有的改變時(shí)鐘時(shí)序W77E58.。.。市面上現(xiàn)在常用的主要有ATMEL 公司的AT89X 系列,PHILIPS 的P87(89)x,臺(tái)灣WINBOND 的w77(78)x 系列,Cygnal 的C8051Fx 系列。

  6) 51單片機(jī)結(jié)構(gòu)的C 描述這里不講51的具體結(jié)構(gòu),只是引導(dǎo)初學(xué)者快速理解51單片機(jī)的物理結(jié)構(gòu)。寄存器和IO 及其它硬件設(shè)備的地址名稱(chēng),在相應(yīng)的C 頭部文件中可以找到。51為reg51.h,52為reg52.h,以次類(lèi)推,比如winbond 的78E58就為w78e58.h 這些H 文件中的描述:srf,定義一個(gè)8位的設(shè)備。srf16,定義一個(gè)16位的設(shè)備。sbit,定義一個(gè)位的設(shè)備。用這些語(yǔ)句定義后,就可以在C 中象匯編一樣使用這些硬件設(shè)備,這是單片機(jī)應(yīng)用比標(biāo)準(zhǔn)C 特殊的地方,其它差別很少。

  7) 在51系列中data,idata,xdata,pdata 的區(qū)別data:固定指前面0x00-0x7f 的128個(gè)RAM,可以用acc 直接讀寫(xiě)的,速度最快,生成的代碼也最小。idata:固定指前面0x00-0xff 的256個(gè)RAM,其中前128和data 的128完全相同,只是因?yàn)樵L問(wèn)的方式不同。idata 是用類(lèi)似C 中的指針?lè)绞皆L問(wèn)的。匯編中的語(yǔ)句為:mox ACC,@Rx.(不重要的補(bǔ)充:c 中idata 做指針式的訪問(wèn)效果很好) xdata:外部擴(kuò)展RAM,一般指外部0x0000-0xffff 空間,用DPTR 訪問(wèn)。pdata:外部擴(kuò)展RAM的低256個(gè)字節(jié),地址出現(xiàn)在A0-A7的上時(shí)讀寫(xiě),用movx ACC,@Rx 讀寫(xiě)。這個(gè)比較特殊,而且C51好象有對(duì)此BUG, 建議少用。但也有他的優(yōu)點(diǎn),具體用法屬于中級(jí)問(wèn)題,這里不提。

  8) startup.a51的作用和匯編一樣,在C 中定義的那些變量和數(shù)組的初始化就在startup.a51中進(jìn)行,如果你在定義全局變量時(shí)帶有數(shù)值,如unsigned char data xxx=100;,那startup.a51中就會(huì)有相關(guān)的賦值。如果沒(méi)有=100,startup.a51就會(huì)把他清0。(startup.a51==變量的初始化)。這些初始化完畢后,還會(huì)設(shè)置SP 指針。對(duì)非變量區(qū)域,如堆棧區(qū),將不會(huì)有賦值或清零動(dòng)作。有人喜歡改startup.a51,為了滿足自己一些想當(dāng)然的愛(ài)好,這是不必要的,有可能錯(cuò)誤的。比如掉電保護(hù)的時(shí)候想保存一些變量, 但改startup.a51來(lái)實(shí)現(xiàn)是很笨的方法,實(shí)際只要利用非變量區(qū)域的特性,定義一個(gè)指針變量指向堆棧低部:0xff 處就可實(shí)現(xiàn)。為什么還要去改? 可以這么說(shuō):任何時(shí)候都可以不需要改startup.a51,如果你明白它的特性。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1索尼333ESL電路圖資料
  2. 10.11 MB   |  2次下載  |  免費(fèi)
  3. 2TINA-TI 模擬電路設(shè)計(jì)、仿真和分析軟件中文教程
  4. 3.83 MB   |  0次下載  |  5 積分
  5. 3SS6548D40V 直流有刷電機(jī)驅(qū)動(dòng)芯片中文資料
  6. 1.55 MB   |  次下載  |  1 積分
  7. 4SS6235M 4A 33V性?xún)r(jià)比超高電機(jī)驅(qū)動(dòng)芯片中文資料
  8. 1.26 MB   |  次下載  |  免費(fèi)
  9. 5FP7195-中文應(yīng)用說(shuō)明書(shū)
  10. 0.93 MB   |  次下載  |  免費(fèi)
  11. 6VSA101-G250T01-I 電壓傳感器產(chǎn)品使用手冊(cè)
  12. 0.72 MB   |  次下載  |  免費(fèi)
  13. 7FS4056E系列單節(jié)線線充電IC
  14. 2.41 MB  |  次下載  |  免費(fèi)
  15. 8FS5281E(5V USB輸入雙節(jié)鋰電池串聯(lián)應(yīng)用升壓充電管理IC)
  16. 3.30 MB  |  次下載  |  免費(fèi)

本月

  1. 148V到5KW無(wú)橋LLC雙向逆變器的電路原理圖免費(fèi)下載
  2. 0.26 MB   |  157次下載  |  10 積分
  3. 22KW逆變側(cè)功率管的損耗如何進(jìn)行計(jì)算詳細(xì)公式免費(fèi)下載
  4. 0.40 MB   |  33次下載  |  2 積分
  5. 3高功率密度碳化硅MOSFET軟開(kāi)關(guān)三相逆變器損耗分析
  6. 2.27 MB   |  33次下載  |  5 積分
  7. 4STM32F10x參考手冊(cè)資料
  8. 13.64 MB   |  12次下載  |  1 積分
  9. 5光伏并網(wǎng)逆變器原理
  10. 7.31 MB   |  7次下載  |  2 積分
  11. 6SW5099規(guī)格書(shū)
  12. 1.37 MB   |  6次下載  |  1 積分
  13. 7星火6J3-1交直流二波段收音機(jī)電路圖資料
  14. 1.86 MB   |  6次下載  |  免費(fèi)
  15. 8S7-200 可編程序控制器系統(tǒng)手冊(cè)
  16. 12.81 MB   |  5次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935134次下載  |  10 積分
  3. 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191422次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183352次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81600次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73818次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分