之前一直没用到过,今天应朋友要求帮忙写一个EC11驱动,在网上搜了一圈,发现很多驱动用起来并不是很顺手。于是自己写了一个,供参考
时间 2020年3月11日21点21分 东莞
单片机源程序如下:
- #include "ec11.h"
- unsigned char EC11_Dir = 0;//方向标志
- unsigned char TestValue = 0;
- #define PIN_EC11_A P0_4
- #define PIN_EC11_B P0_5
- void ec11_init(void)
- {
- P0_4 =1;
- P0_5 =1;
- }
- void _ec11_drives(void)//中断10us中调用
- {
- static unsigned char CheckCnt,EC11Status=0;
- if(PIN_EC11_A)
- {
- if(++CheckCnt > 10)//在中断中调用 值为2即可,快速扫描,适当加长可提高防抖效果。
- {
- CheckCnt = 12;
- if(EC11Status==0)
- {
- if(PIN_EC11_B)
- {
- EC11_Dir = 0x55;
- TestValue--;
- }
- else
- {
- EC11_Dir = 0xaa;
- TestValue++;
- }
- }
- EC11Status =1;
- }
- }
- else
- {
- if(CheckCnt)
- {
- CheckCnt--;
- }
- else
- {
- if(EC11Status)
- {
- EC11Status=0;
- if(PIN_EC11_B)
- {
- EC11_Dir = 0xaa;
- TestValue++;
- }
- else
- {
- EC11_Dir = 0x55;
- TestValue--;
- }
- }
- }
- }
- }
复制代码
以上资料51hei下载地址:
ec11.zip
(891 Bytes, 下载次数: 459)
|