本帖最后由 wulin 于 2021-8-8 14:52 編輯
驗證過的旋轉編碼器示例代碼。
#include <reg51.H>
#include <intrins.h>
sbit key_A=P3^0;
sbit key_B=P3^1;
void main()
{
bit sign_A=0,sign_B=0;//狀態標志
P1=0xfe;
while(1)
{
if(key_A && key_B && !sign_A)
{
P1=_cror_(P1,1);
}
sign_A = key_A;
if(key_A && key_B && !sign_B)
{
P1=_crol_(P1,1);
}
sign_B = key_B;
}
} |