用的是MPLAB 7.5,8.05等 //包含单片机内部资源预定义 //定义芯片工作时的配置位 //__CONFIG (HS & PROTECT & PWRTEN & BOREN & WDTDIS); //声明本模块中所调用的函数类型 /* void SetSFR(void); void Clock(void); void KeyScan(void); void Measure(void); void LCD_Test(void); void LCD_Disp(unsigned char); */ //定义变量 //unsigned char second, minute, hour; // //bit flag1,flag2; //函数和子程序 //__CONFIG(0x0ffb); //---------------------------------- //延时函数 //---------------------------------- //初始化函数 #define GP0 48 #define GP1 49 #define GP2 50 #define GP3 51 #define PD 35 #define TO 36 //#define INDF 0X00 #define TMR0 0X01 #define PCL 0X02 #define STATUS 0X03 #define FSR 0X04 #define OSCCAL 0X05 //#define GPIO 0X06 #define CMCON0 0X07 #define TRIS 0X06 #define OPTION 0X00 int i; void init() { OPTION=0X00; //所有IO口做普通I/O口 TRIS=0X00; //设置所有IO口为输出 FSR=0X00; //关闭GP2口的Fosc/4输出功能 }
//延时函数,10ms void delay10ms() //定义循环变量 { for(i=0;i<9000;i++); //延时10ms }
void main(void) { // SetSFR(); // PORTC = 0x00; // TMR1H += TMR1H_CONST; // LED1 = LED_OFF; // LCD_Test(); // 程序工作主循环 init(); GP0=0; GP1=0; GP2=1; TO; while(1) { for(i=0;i<=99;i++) { delay10ms(); }; GP0=1; for(i=0;i<=7;i++) { delay10ms(); }; GP1=1; delay10ms(); delay10ms(); GP1=0; delay10ms(); delay10ms(); GP1=1; for(i=0;i<=99;i++) { delay10ms(); }; GP2=0; asm("SLEEP"); // asm(“clrwdt”); //清看门狗 // Clock(); //更新时钟 // KeyScan(); //扫描键盘 // Measure(); //数据测量 // SetSFR(); //刷新特殊功能寄存器 } } |