<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è) > 嵌入式系統 > 設計應用 > 單片機開(kāi)發(fā)中的一些實(shí)用技巧(上)

單片機開(kāi)發(fā)中的一些實(shí)用技巧(上)

作者: 時(shí)間:2012-02-06 來(lái)源:網(wǎng)絡(luò ) 收藏

 很多朋友正在學(xué)習技術(shù),但中免不了要碰到這樣、那樣的問(wèn)題,有些問(wèn)題可能無(wú)礙大局,但有問(wèn)題卻直接影響到產(chǎn)品的成本、體積、性能。這里介紹筆者的幾個(gè)技巧,希望對大家的工作有幫助。

本文引用地址:http://dyxdggzs.com/article/172182.htm

  一.C語(yǔ)言中嵌入匯編語(yǔ)言

  中,通常我們使用C語(yǔ)言編寫(xiě)主程序,這樣可以充分借助C語(yǔ)言工具提供的運算庫函數及強大的數據處理能力。但C語(yǔ)言的可控性不及匯編語(yǔ)言,在有些對時(shí)序要求嚴格的處理上,我們還需用靈活性更強的匯編語(yǔ)言來(lái)編寫(xiě)。上海AVR培訓這樣就產(chǎn)生了C語(yǔ)言和匯編語(yǔ)言混合編程的問(wèn)題,一般分成三種方式:1.匯編語(yǔ)言調用C語(yǔ)言函數;2. C語(yǔ)言調用匯編語(yǔ)言;3. C語(yǔ)言中嵌入匯編語(yǔ)言。這里我們主要介紹第3種,即C語(yǔ)言中嵌入匯編語(yǔ)言。

  下面的一段程序是主程序調用精確的205μS延時(shí)子程序并使P1.0交替輸出高、低電平的方波。

  /*------------程序名test.c------------*/

  #include P 晶振頻率12.000MHz>

  /****************/

  void delay(void)//延時(shí)205μS

  {

  #pragma asm

  MOV R0,#100

  LOOP:

  DJNZ R0,LOOP

  #pragma endasm

  }

  /***************/

  void main (void)//主函數,其功能使P1.0交替輸出高、低電平的方波

  {

  while(1)

  {P1_0=!P1_0;

  delay();}

  }

  具體實(shí)現過(guò)程為:

  1.先用匯編語(yǔ)言編制一段延時(shí)程序,在keil開(kāi)發(fā)環(huán)境中編譯,然后進(jìn)行軟件仿真,晶振頻率的設置應和你的要求相符。仿真時(shí)注意觀(guān)察左邊寄存器窗口內的時(shí)間顯示,調整延時(shí)程序的參數可得到我們需要的精確延時(shí)。

  2.用C51編寫(xiě)主程序及延時(shí)子程序的外殼(等待嵌入匯編語(yǔ)言),假定此程序名稱(chēng)為test.c。

  3.將第1步所得的匯編延時(shí)子程序放入C51編寫(xiě)的延時(shí)子程序外殼中。注意在開(kāi)始及結束時(shí)分別加上#pragma asm、#pragma endasm語(yǔ)句,這種方法是通過(guò)asm與endasm告訴C51編譯器,中間行不用編譯為匯編行。

  4.按照Keil的使用方法,建立工程文件并添加源程序。

  5.點(diǎn)擊含有匯編程序的C源程序后再右擊,在彈出的下拉菜單中選中Options for File ‘test.c’(圖1),這時(shí)出現圖2所示的界面,勾選Generate Assembler SRC File(生成匯編SRC文件)及Assembler SRC File(封裝匯編文件)使其有效。

  6. 根據項目的編譯模式加載封裝庫文件,通常在Small模式時(shí)為C51S.LIB(該文件在C:KeilC51LibC51S.LIB),具體見(jiàn)圖3。

  7.點(diǎn)擊Rebuild target(重建所有目標文件)即可得到編譯結果(圖4)。

  

  圖1

  

  圖2

  

  圖3

  

  圖4


上一頁(yè) 1 2 下一頁(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>