![]() |
發布時間: 2021-1-14 23:14
正文摘要:買了一個旋轉編碼器模塊,之前單片機也是小白,但想學會使用編碼器,以后可以做應用玩。對自己編程邏輯思維沒有信心,所以在論壇上找了很多例程,有3,4段,編碼器的基本原理和編程思想也有點看明白了, ... |
liuhailan5757 發表于 2021-1-15 09:24 肯定是沒得示波器唄 |
用《人人學會單片機》視頻教程的代碼,直接IO口接上就行了。如果P0需要上拉。不需要電容 更不需要串聯電阻。主函數高速循環不斷的調用以下掃描函數就行了。 以下代碼的A和B分別代表兩個普通IO口。 void ROTARY_ROTARY_Scan_Drive(void) { static xdata u8 count=0,Rotary_Flag=0; if(count>30) { count=0; if((ROTARY_B==0)&&(Rotary_Flag==0)) //如果按鍵B按下,且flag是0 { Rotary_Flag=1; Rotary_Read_Data_Rotary++; //按鍵值增加1 } if((ROTARY_A==0)&&(Rotary_Flag==0)) //如果按鍵A按下,且flag是0 { Rotary_Flag=1; Rotary_Read_Data_Rotary--; //按鍵值減少1 } if((ROTARY_B!=0)&&(ROTARY_A!=0)) //按鍵必須釋放,下次按鍵才有效 { Rotary_Flag=0; } } count++; } |