編譯器用的是PICC9.83
你試試吧,一定要關閉AD才行哦。
//***************************************************
// __________________
// VDD-| 1 14 |-VSS
// 電機GP5-| 2 13 |-GP0/AN0/DAT LED
// AN3/GP4-| 3 12 |-GP1/AN1/CLK
//GP3/RMCLR--| 4 11 |-GP2/AN2
// |________________ |
// 16F675
//***************************************************
#include <pic.h>
#define uchar unsigned char
#define uint unsigned int
#ifndef OPEN
#define OPEN 1
#endif
#ifndef OFF
#define OFF 0
#endif
#define SET 1
#define CLEAR 0
#define TRUE 1
#define FALSE 0
__CONFIG(FOSC_EXTRCIO & WDTE_OFF & MCLRE_OFF & BOREN_OFF & CP_OFF & PWRTE_ON);
//內部RC 看門狗關閉 GP3為IO 代碼不保護
//#pragma config BOREN = OFF, CPD = OFF, FOSC = XT, MCLRE = OFF, WDTE = OFF, CP = OFF, PWRTE = OFF
#define KEY GPIO3
#define LED GPIO0
#define BEEP GPIO1
#define SCR GPIO5
#define GHG GPIO4
/*********程序聲明****************/
void InitAPP(void);
//void ScanKey();
void InitAPP()
{
/* Comment out if using simulator, ICD2, or ICE2000
#asm //Load Factory Calibration Value Into OSCCAL
call 0x3FF
bsf _STATUS,5
movwf _OSCCAL
#endasm
*/
TRISIO=0x00; //Set All I/O's As OUT
VRCON = 0; //參考電壓斷電
CMCON = 0x07; // configure comparator inputs as digital I/O
ANSEL = 0; // configure A/D inputs as digital I/O
ADON= 0;
GIE = 1;
//Enable All Interrupts
// RAPU=0; //上拉總使能
// WPUA5=1; //RA5使能
// RAIE=1;
IOCB5=1; //管腳中斷使能
}
/*********定時器初始化***************/
void TimeInt()
{
OPTION_REG &= 0x80; //
TMR0 = 0x14; // 250uS
T0IE = 1; //Timer0 Overflow Interrupt Enabled
T0IF = 0; //Clear Timer0 Overflow Interrupt Flag
}
//***************************************************************************
//Isr() - Interrupt Service Routine
// - Timer0 Overflow & GP3 Pin Change Are Used
//***************************************************************************
void interrupt Isr()
{ static uint count;
if ( (T0IE & T0IF) == 1) //If A Timer0 Interrupt, Then
{
TMR0 = 0x14;
if(++count==40)
{
count=0;
LED=~LED;
}
T0IF = 0; //Clear Timer0 Interrupt Flag
}
/*
else if ( (GPIE & GPIF) == SET) //If A GP3 Pin-Change Interrupt
{
if(GHG==0)
{
SCR = 1; //關閉電機
BEEP=0; //打開蜂鳴器
}
else if(GHG==1)
{
SCR=0;//打開電機
BEEP=1; //關閉蜂鳴器
}
GPIF=0;
}
else if ( (INTE & INTF) == SET) //If A GP2/INT External Intrrupt
{
}
else if ( PEIE == SET) //If Peripheral Interrupts Enabled, Check Peripheral
{ //Interrupts
if ( (EEIE & EEIF) == SET) //If A EEPROM Interrupt
{
}
else if ( (ADIE & ADIF) == SET) //If A A/D Converter Interrupt
{
}
else if ( (CMIE & CMIF) == SET) //If A Comparator Interrupt
{
}
else if ( (TMR1IE & TMR1IF) == SET) //If A Timer1 Interrupt
{
}
}
***************************/
}
//*****************************************************************************
//Main() - Main Routine
//*****************************************************************************
void main()
{
InitAPP();
TimeInt();
while(1)
{
}
}
|