#include <pic.h>
#define MOTOR RB2
void DELAY(unsigned int);
main(void)
{char A;
MOTOR=0;
OPTION=0b00000000; //設定RB0為下降沿中斷
TRISB=0b00000001; //設定RB0為輸入,RB2為輸出
TRISD=0b00000000; //PORTD全為輸出口
A=0b00000001;
PORTD=A; //PORTD的第0位LED亮
INTCON=0; //禁止中斷
while(1)
{
if (RB0==1) //每隔100ms,檢測一下開關S1的狀態
MOTOR=0; //S1斷開時RB0為高電平,讓電機停
else
MOTOR=1; //S1合上時RB0為低電平,讓電機轉
DELAY(200);
A=A<<1;
if (A==0)
A=0b00000001; //當最高位亮后,從最低位循環重復
PORTD=A; //LED輪流亮
}
}
//======延時(n)ms
void DELAY(unsigned int n)
{
unsigned int j;
char k;
for (j=0;j<n;j++)
for (k=246;k>0;k--)
NOP();
}
|