编码器涵盖很多种类,不知你具体要求的哪种?我也曾折腾过一段时间EC11型的,给你个从网上找来的,参考吧(在我板上能运行)
//通过编码开关(旋转编码器)控制数码管的加减一
#include
#define uchar unsigned char
#define uint unsigned int
#define cycle 1 //定义动作周期,编码器旋转多少格有效
#define NULL 0 //定义编码器不动作时的还回值
#define E_RIGHT 0x0e //定义右旋转还回值
#define E_LEFT 0x0f //定义左旋转还回值
/*=====数码管位及按键定义=====*/
sbit dula=P2^0; //数码管段选,锁存器控制信号
sbit wela=P2^1; //数码管位选,锁存器控制信号
sbit PINA = P1^0; //定义IO
sbit PINB = P1^1;
uchar WheelNow,WheelOld,RightCount,LeftCount;
/*=====0-9=====A-G=====*/
uchar a[16]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x00};
//数码管显示编码
unsigned sled_bit_table[]={0x5f,0x6f,0x77,0x7b,0x7d,0x7e,0xff};
/*定义点亮的数码管与数组的关系*/
/*=====四个数码管显示数据存放处=====*/
uchar one,two,three,four;
uint wc=0;
/*=====函数定义=====*/
void delay(uint x);
void display(void);
//void key();
void led_analyze(uint i);
/*====延时函数=====*/
void delay(uint x)
{
uint i;</