單片機(jī)的一些開發(fā)技巧(一)
很多朋友正在學(xué)習(xí)單片機(jī)開發(fā)技術(shù),但開發(fā)中免不了要碰到這樣、那樣的問題,有些問題可能無礙大局,但有一些問題卻直接影響到產(chǎn)品的成本、體積、性能。這里介紹筆者的幾個(gè)技巧,希望對(duì)大家的工作有幫助。
一.C語(yǔ)言中嵌入?yún)R編語(yǔ)言
單片機(jī)開發(fā)中,通常我們使用C語(yǔ)言編寫主程序,這樣可以充分借助C語(yǔ)言工具提供的運(yùn)算庫(kù)函數(shù)及強(qiáng)大的數(shù)據(jù)處理能力。但C語(yǔ)言的可控性不及匯編語(yǔ)言,在有些對(duì)時(shí)序要求嚴(yán)格的處理上,我們還需用靈活性更強(qiáng)的匯編語(yǔ)言來編寫。上海AVR單片機(jī)培訓(xùn)這樣就產(chǎn)生了C語(yǔ)言和匯編語(yǔ)言混合編程的問題,一般分成三種方式:1.匯編語(yǔ)言調(diào)用C語(yǔ)言函數(shù);2. C語(yǔ)言調(diào)用匯編語(yǔ)言;3. C語(yǔ)言中嵌入?yún)R編語(yǔ)言。這里我們主要介紹第3種,即C語(yǔ)言中嵌入?yún)R編語(yǔ)言。
下面的一段程序是主程序調(diào)用精確的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)//主函數(shù),其功能使P1.0交替輸出高、低電平的方波
{
while(1)
{P1_0=!P1_0;
delay();}
評(píng)論