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