📄 led-ctrl1.c
字号:
//#include <pic.h>
#include <pic16f6x.h>
#define ADIN RC0
#define INA RC2
#define INB RC3
#define PSAVE RC4
#define FIN RA2
unsigned int times_cout=0;
unsigned int freq=0;
unsigned int zhkb2=0;
unsigned char ch_jump=0;
unsigned char m=0;
unsigned int ADbuf;
//__CONFIG ( INTIO & UNPROTECT & PWRTDIS & BORDIS & WDTDIS & MCLRDIS );
void initial()
{
TRISA = 0X0C;
TRISC = 0X01;
PORTA=0;
PORTC=0;
ANSEL = 0X10; //设置RC0为输入
ADCON0 = 0xD1;
OPTION = 0x00; //OPTION寄存器,设置GPIO禁止上拉,选择内部时钟,分频器分给TIMER0,
WPUA=0X04; //
INTCON=0X00;
PSAVE=0;
CM2 = 1;
CM1 = 1;
CM0 = 1;
T0IE = 0;
// VCFG = 0;
T1CON=0X30;
}
void delay(unsigned int i) //延时程序;
{
while(--i);
}
void forward_run(void) //延时程序;
{
INA=0;
INB=1;
delay(350);
INA=0;
INB=0;
delay(350);
INA=1;
INB=0;
delay(350);
INA=1;
INB=1;
//delay(60000);
//delay(60000);
}
void backwards_run(void) //延时程序;
{
INA=1;
INB=0;
delay(350);
INA=0;
INB=0;
delay(350);
INA=0;
INB=1;
delay(350);
INA=1;
INB=1;
//delay(60000);
}
void interrupt counter(void)
{if(INTF&&INTE)
{
INTF=0;
times_cout++;
GIE=1;}
}
main()
{
initial();
do
{ /***freq check**/
INTCON=0;
PIR1=0;
PIE1=0;
GIE=1;
PEIE=1;
times_cout=0;
TMR1L=0X38;
TMR1H=0X51;
TMR1ON=1;
INTE=1;
while(!TMR1IF)
{
;
}
INTE=0;
TMR1IF=0;
TMR1ON=0;
freq=times_cout*5;
/**drive output***/
if(freq>305)
{ PSAVE=0;
forward_run();
}
if(freq<300)
{ PSAVE=0;
backwards_run();
}
PSAVE=1;
}
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -