绝对值旋转编码器程序

绝对值旋转编码器程序

ID:39249362

大小:25.51 KB

页数:4页

时间:2019-06-28

绝对值旋转编码器程序_第1页
绝对值旋转编码器程序_第2页
绝对值旋转编码器程序_第3页
绝对值旋转编码器程序_第4页
资源描述:

《绝对值旋转编码器程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include//寄存器头文件包含#include<1602.h>//寄存器头文件包含#include//空操作函数,移位函数头文件包含#defineucharunsignedchar#defineuintunsignedint/*sbitSH_CP=P1^1;//移位时钟脉冲端口sbitDS=P1^2;//串行数据输入端口sbitST_CP=P3^7;//锁存端口*/intinc_data=0;//每刷新一次的增量值intjms=0;//累计增量intm_iPrvSSI=0;in

2、tm_bIsSPI=0;ucharuPrvState=0;sbitAA=P3^3;//sbitBB=P3^4;//这个是时钟sbitZZ=P3^5;//这个是数据sbitBEEP=P1^5;//正反判断bitt_bFang=1;inta;intiSSI=0;inttemp,num,j;ucharled_buf[12];/*定义LED显示缓冲区*/ucharcodetable[]="0123456789";voiddelay(intt){inti,j;for(i=1;i

3、;}voidGetSSI(void){ucharix=0;//ucharuState=0;//状态位数据intiSSI=0;//当前的角度数据(0-1023)bitbCrc=0;//奇数或偶数标志位intire=0;//增量数据,表示上次正确读的数据,和这次正确读的位置差AA=0;//CSN_nop_();_nop_();BB=0;//CLK_nop_();_nop_();BB=1;//CLK_nop_();_nop_();for(ix=0;ix<10;ix++)//读10次前10位数据{BB=0;//CLKiSSI<<=

4、1;//前10位的数据1024if(ZZ)//DO数据{bCrc=!bCrc;//标置位取反,数位中“1”的个数是奇数或偶数来进行校验(初值=0)iSSI

5、=1;//最后位置1}BB=1;//CLK_nop_();_nop_();}_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();for(ix=0;ix<5;ix++)//读5次状态位标志!{BB=0;uState<<=1;//后五位的数据状态位if(ZZ){bCrc=!bCrc;//数位中“1”

6、的个数是奇数或偶数来进行校验uState

7、=1;//数据等于1置1}BB=1;_nop_();_nop_();_nop_();}_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();if(ZZ==bCrc)//最后一位校验一下,要是奇偶通不过,就认为CRC错误,就当这次无效{AA=1;//使能CSN置高,为下次准备if((uState==16)

8、

9、(uState==19));//&&(uState==uPrvState));//16=10000;19

10、=10011表示状态位(5位uState)都可以理解为数据正常{if((iSSI<256)&&(m_iPrvSSI>768))//iSSI(0-1023)是这次读出的数据m_iPrvSSI(0-1023)上一次读出的数据{ire=iSSI-m_iPrvSSI+1024;//第一种情况}elseif((m_iPrvSSI<256)&&(iSSI>768)){ire=iSSI-m_iPrvSSI-1024;//第二种情况}else{ire=iSSI-m_iPrvSSI;//第三种情况新数据减去老数据}//------m_iPr

11、vSSI=iSSI;//刷新数据,新数据替换老数据,为下一次做好准备inc_data=ire;a=jms+=inc_data;//显示累计长度}}AA=1;//使能CSN置高,为下次准备if(a>=500)BEEP=0;elseBEEP=1;}voidmain(){init();while(1){GetSSI();//读编码器数值//a=m_iPrvSSI;//显示0-1023值位置值//a=-a;Display(0x80+0x00,table[a/10000]);//1602显示子程序Display(0x80+0x01,

12、table[a%10000/1000]);//1602显示子程序Display(0x80+0x02,table[a%10000%1000/100]);//1602显示子程序Display(0x80+0x03,table[a%10000%1000%100/10]);//1602显示子程序Display(0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。