单片机编码器经典测试
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
delay();
delay();
delay();
delay();
P2=0xff;
P0=0xff;
delay();
delay();
delay();
delay();
}
/******************************************* 函数功能:主函数 ******************************************/ void main(void)
void Display(unsigned char x)
{
P2=0xbf;
//P3.6引脚输出低电平,DS6点亮
P0=Tab[x/10]; //显示十位
delay();
delay();
delay();
delay();
P2=0x7f;
//P3.7引脚输出低电平,DS7点亮
P0=Tab[x%10]; //显示个位
{ EA=1; //开放总中断 EX0=1; //外中断0 中断控制位 1 允许外部中断0 中断 0 禁止我不中断0中断 EX1=1; //外中断1 中断控制位 1 允许外部中断1 中断,0禁止外部1中断。 IT0=1; // 外部中断0 触发方式 控制位 0-低电平触发 1选择负跳变来触发外中断 IT1=1; // 外部中断1 触发方式 控制位 0-低电平触发 1选择负跳变来触发外中断
ex67.c
//用LED数码管显示计数器T0的计数值 #include<reg51.h> //包 含51单片机寄存器定义的头文件 sbit S=P3^2 ; //将S位定义为P3.2引脚 unsigned char Tab[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; 码表 unsigned char x; /****************************************************************** 函数功能: 延时约0.6ms ********************************************************************/ void delay(void) {
unsigned char j; for(j=0;j<200;j++) ;
}
//段
/******************************************************************
函数功能:显示计数次数的子程序
入口参数:x
********************************************************************/
x=0;
while(1) Display(x);
第 1 页
ex67.c
}
/**************************************************************
函数功能:外中断T0的中断服务程序
**************************************************************/
void int0(void) interrupt 0 using 0 //外中断0的中断编号为0
{
x++;
//编码器正转状态在数码管显示数字增加
if(x==100) //设置的最大值 可以自己修改
x=0;
最大值清0
}
void int1(void) interrupt 2 using 2 //外部中断1 的中断编号 2
{
x--; //编码器反转在数码管上显示数字减少
if(x==0)
//设置的最小值
x=100;
//如果最小后 在重新赋值
Hale Waihona Puke Baidu
}
//如果到
第 2 页