| 
  |||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe  | 
  
請教有關(guān)PIC的多中斷操作 | 
  
| 作者:baiguo 欄目:單片機(jī) | 
在MPLAB IDE 6.10.10.0中編寫如下程序: /************************************************* Project :電容充放電電壓顯示 Chip type :PIC16F877 Clock frequency:4.000MHZ Comments : 1.RB為字線,RD低三位為位線 *************************************************/ #include<pic1687x.h> unsigned CHAR word[10]={0xC0,0xF9,0xA4,0xB0,0x99, 0x92,0x82,0xF8,0x80,0x90}; //BCD碼 unsigned CHAR led[3]={0xFF,0xFF,0xFF}; unsigned int TEMP; unsigned CHAR i,j; union adre { unsigned int rel; unsigned CHAR rell[2]; }TEMPi[4]; /*******************mcu初始化********************/ void mcu_init(void) { TRISB=0x00; PORTB=0xFF; TRISD&=0xF8; PORTD|=0x07; TRISA&=0xFB; //RA2為A/D輸入通道 } /*****************BCD碼轉(zhuǎn)換程序******************/ void hextobcd(unsigned int tem) { unsigned int count,num; unsigned CHAR nn; count=tem*50/1023; for(nn=0;nn<3;nn++) { num=count%10; led[nn]=word[num]; count/=10; } if(led[2]==0xC0) led[2]=0xFF; led[1]&=0x7F; } /******************A/D中斷轉(zhuǎn)換程序***************/ void interrupt conver(void) { ADIF=0; TEMPi[i].rell[0]=ADRESL; TEMPi[i].rell[1]=ADRESH; i++; if(i==4) { i=0; TEMP=TEMPi[0].rel+TEMPi[1].rel+TEMPi[2].rel+TEMPi[3].rel; } ADGO=1; } /********************LED顯示程序*****************/ void interrupt DISPLAY(void) { hextobcd(TEMP); PORTD|=0x07; PORTB=led[j]; PORTD&=~(1<<j); j++; if(j==3) j=0; TMR0=0x64; } /**********************主程序********************/ void main(void) { mcu_init(); PIE1=0x00; PIE2=0x00; OPTION=0x04; //T0 32分頻 TMR0=0x64; ADCON0=0x51; //8分頻,開通道2 ADCON1=0x80; //轉(zhuǎn)換結(jié)果右移 PEIE=1; //外中斷使能 T0IE=1; //T0中斷使能 ADIE=1; //A/D中斷使能 ADGO=1; //啟動(dòng)A/D轉(zhuǎn)換 INTCON|=0x80; //中斷總允許 for(;;) ; } 調(diào)試時(shí)出錯(cuò)!(可能是有兩個(gè)中斷) 刪去LED顯示程序那一端后,調(diào)試通過,請問如要兩中斷都存在,該怎樣修改?  | 
  
| 2樓: | >>參與討論 | 
| 作者: starke 于 2004/2/18 9:30:00 發(fā)布:
         參考: 此系列的單片機(jī)中斷入口只有一個(gè),進(jìn)入中斷后靠查詢不同的標(biāo)志位決定去執(zhí)行哪個(gè)處理子程序,,,,  | 
  |
| 3樓: | >>參與討論 | 
| 作者: baiguo 于 2004/2/18 10:24:00 發(fā)布:
         謝謝 總算調(diào)出來了,對PIC又多了層了解,謝謝!。。。。。!  | 
  |
  | 
    
 
  | 
  
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 | 
Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號  |