最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(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ī)
請教有關(guān)PIC的多中斷操作
在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
參考:
此系列的單片機(jī)中斷入口只有一個(gè),進(jìn)入中斷后靠查詢不同的標(biāo)志位決定去執(zhí)行哪個(gè)處理子程序,,,,

3樓: >>參與討論
baiguo
謝謝
總算調(diào)出來了,對PIC又多了層了解,謝謝!。。。。。!

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
請教張教主PIC有無30元內(nèi)8路10位AD,4路PWM的MCU?
rfpic系列最遠(yuǎn)發(fā)射范圍
請問用電力線載波傳輸數(shù)據(jù)的速率大概是多少?
存儲(chǔ)器+80c196kc????
貼片的芯片如何仿真?
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號