標(biāo)題: [轉(zhuǎn)帖]PIC單片機(jī)指令的大小寫問題 [打印本頁]

作者: srvee    時(shí)間: 2011-11-14 11:17
標(biāo)題: [轉(zhuǎn)帖]PIC單片機(jī)指令的大小寫問題

  編寫PIC單片機(jī)的源程序,除了源程序的開始處需要嚴(yán)格的列表指令外,還須注意源程序中字母符號(hào)的大小寫規(guī)則,否則在PC機(jī)上匯編程序時(shí)不會(huì)成功。

  PIC單片機(jī)振蕩器的配置以及時(shí)序的計(jì)算問題

  PIC單片機(jī)可以工作于以下4種不同的振蕩器方式:LP(低功耗晶體振蕩器)、XT(晶體諧振器)、HS(高速晶體諧振器)和RC(阻容振蕩器)。用戶可以根據(jù)其系統(tǒng)設(shè)計(jì)的需要,通過對(duì)配置位(FOSC1和F0SC2)編程,選擇其中一種工作模式。

  而一旦振蕩器配置完成,那么根據(jù)用戶的配置,可以輕松地計(jì)算出程序運(yùn)行的時(shí)間以及A/D轉(zhuǎn)換所占用的時(shí)間,這樣就會(huì)很輕松地安排好單片機(jī)的時(shí)序。例如,如果采用4 MHz的HS振蕩模式,那么單片機(jī)的時(shí)鐘頻率為FOSC/4,也就是說執(zhí)行一條指令需要1μs;對(duì)于需要兩個(gè)指令周期的指令,需要2μs。而對(duì)于A/D轉(zhuǎn)換,如果A/D轉(zhuǎn)換時(shí)鐘位選擇為FOSC/8,那么A/D轉(zhuǎn)換模塊轉(zhuǎn)換一個(gè)位的時(shí)間Tad就為2μs。對(duì)一個(gè)8位的轉(zhuǎn)換來說,需要的時(shí)間為9.5Tad,也就是完成一次A/D轉(zhuǎn)換的時(shí)間為19μs。這樣只需要查看源程序的行數(shù)并作簡(jiǎn)要分析,就可以計(jì)算出程序運(yùn)行的時(shí)間。

  PIC單片機(jī)存儲(chǔ)體的選擇問題

  PIC單片機(jī)的數(shù)據(jù)存儲(chǔ)器通常分為兩個(gè)存儲(chǔ)體,即存儲(chǔ)體O(Bank0)和存儲(chǔ)體1(Bankl)。每個(gè)存儲(chǔ)體都是由專用寄存器和通用寄存器兩部分組成的。兩個(gè)存儲(chǔ)體中的一氈寄存器單元實(shí)際上是同一個(gè)寄存器單元,卻又具有不同的地址。

  不同型號(hào)的PIC單片機(jī),其數(shù)據(jù)存儲(chǔ)器的組成(即功能)是不完全相同的,所以設(shè)計(jì)人員一旦選用了某個(gè)PIC單片機(jī)的型號(hào)后,就要查找該單片機(jī)的數(shù)據(jù)存儲(chǔ)器資料,以便編程使用。

  PIC單片機(jī) GOTO和CALL指令的不同使用問題

  在PIC的匯編程序中,CALL與GOT0指令使用的場(chǎng)臺(tái)不同。由于PIC單片機(jī)的堆棧有限,在程序中不能無止境地使用GOTO指令,否則會(huì)使堆棧溢出,程序無法正常運(yùn)行。但是在有些時(shí)候,例如當(dāng)程序出現(xiàn)分支時(shí),則不得不使用GOTO指令。

  本文來自: 賽微電子網(wǎng)-電子工程師社區(qū) 原文地址:http://www.srvee.com/embed/apply/PICdpjysjmmgzjs_61540_2.html

  相關(guān)閱讀:淺析嵌入式系統(tǒng)能耗的動(dòng)態(tài)管理設(shè)計(jì):http://www.srvee.com/embed/apply/qxqrsxtnhddtglsj_62070.html






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1