欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
正交解碼 512線小編碼器測試源程序與資料下載
[打印本頁]
作者:
1844037448
時間:
2018-3-19 19:51
標題:
正交解碼 512線小編碼器測試源程序與資料下載
512線編碼器例程,及數據手冊.
0.png
(48.8 KB, 下載次數: 65)
下載附件
2018-3-19 20:02 上傳
全部資料51hei下載地址:
mini 512編碼器.rar
(4.35 MB, 下載次數: 123)
2018-3-19 19:50 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
系列使用說明書
一、特點
本產品電子部分采用先進的檢測技術 , 機械外殼全鋁合金構造 ( 轉子除外 ) 。
本產品具有以下特點:
● 分辨率有: AB 相正交輸出 256 線、 AB 相正交輸出 1024 線、步進 + 方向輸出 512 線;
● 旋轉速度高,最高轉速可達 10000rpm ;
● 寬廣的工作溫度范圍: -40 ℃ ~ +125 ℃ 。
● 抗擾性好 。 本產品采用霍爾檢測技術 , 屬于無接觸檢測 , 傳感器運行不受灰塵或其它雜物影響,很好克服了基于光學檢測原理的缺點;
● 體積小巧。直徑 D : 14mm 高 H : 18mm 軸徑: 3mm ;
● 重量輕。除轉軸外,全鋁合金構造,凈重 11.5 克。
二、應用
● 機器人
● 機械手
● 運動控制系統
● 伺服系統
● 自動化設備
● 辦公室設備
● 取代光學編碼器
● 智能車
LQ_K60正交解碼-MINI編碼器測試程序與
512線小編碼器單片機源程序如下:
/********************************************************
【平 臺】龍丘MC9S12XS128系統板V4.1
【編 寫】龍丘
【Designed】by Chiu Sir
【E-mail 】chiusir@yahoo.cn
【軟件版本】V1.0
------------------------------------------------
【dev.env.】Code Warrior 5.1
【Target 】MC9S12XS128
【pllclock】64.000MHz
接線方式
編碼器------->單片機
GND -------> GND
VCC -------> VCC
LSB -------> T7
DIR -------> A0
藍牙串口模塊------->單片機
RX -------> S0
TX -------> S1
版權龍邱智能科技所有,轉載需注明出處!
********************************************************/
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
void SetBus_64M(void);
void PIT_Init(void);
void TimInit (void);
void UART_Init (void);
void uart_putchar ( unsigned char c);
unsigned short CRC_CHECK(unsigned char *Buf, unsigned char CRC_CNT);
void OutPut_Data(void);
void Speed_Read(void);
float OutData[4] = { 0 };
uint num=0;
int Motor_Polse=0;
/****************************************************
函數名稱:void SetBus_64M(void)
函數簡介:設置總線頻率為64M,晶振頻率16M
入口參數:
出口參數:
*****************************************************/
void SetBus_64M(void)
{
CLKSEL_PLLSEL=0; //禁止使能鎖相環時鐘
PLLCTL_PLLON=1; //鎖相環電路允許
SYNR=0xc0|0x07; //VCO_clock=2*osc_clock*(SYNR+1)/(REFDV+1)=128MHz
//VCOFRQ[1:0]=1:1,代表VCO_clock在80~120MHz
REFDV=0x80|0x01; //VCO_clock=2*osc_clock*(SYNR+1)/(REFDV+1)=128MHz
//REF_clock=osc_clock/(REFDV+1)
//REFFEQ[1:0]=1:0,代表參考時鐘在6~12MHz之間
POSTDIV=0x00; //PLL_clock=VCO_clock
_asm(nop);
_asm(nop); //短暫延時,等待時鐘頻率穩定
while(!(CRGFLG_LOCK==1))
{
;
}
CLKSEL_PLLSEL=1;
}
//==============================================================
//函數:void PIT_Init(void)
//描述:初始化定時器為1ms中斷
//參數:無
//返回:無
//==============================================================
void PIT_Init(void)
{
PITCFLMT=0x00; //禁止使能PIT模塊
PITCE_PCE0=1; //使能定時器通道0
PITMUX=0x00; //定時器通道0使用微定時基準0
PITMTLD0=8-1; //設置8位微定時裝載寄存器0初值
PITLD0=8000-1; //定時周期=(&PITMTLD0+1)*(&PITLD0+1)
PITINTE=0x01; //使能PIT定時器通道0中斷
PITCFLMT=0x80; //使能PIT模塊
}
//==============================================================
//函數:void TimInit (void)
//描述:脈沖累加器初始化
//參數:無
//返回:無
//==============================================================
void TimInit (void)
{
PACTL=0X00;
PACNT=0X0000;//設置脈沖累加器初值
PACTL_PAEN=1;
}
//==============================================================
//函數:void UART_Init (void)
//描述:串口初始化,配置串口1,波特率為9600
//參數:無
//返回:無
//==============================================================
void UART_Init (void)
{
SCI0CR2=0x2c; //enable Receive Full Interrupt,RX enable,Tx enable
SCI0BDH=0x01; //busclk 8MHz,19200bps,SCI0BDL=0x1a
SCI0BDL=0xa0; //SCI0BDL=busclk/(16*SCI0BDL)
//busclk 32MHz, 9600bps,SCI0BDL=0xD0
//115200 bps SCI0BDL=0x11
} // 64M 9600 SCI0BDH=0x01; SCI0BDL=0xA0;
//==============================================================
//函數:unsigned short CRC_CHECK(unsigned char *Buf, unsigned char CRC_CNT)
//描述:虛擬示波器上位機接口程序
//參數:
//返回?
//==============================================================
unsigned short CRC_CHECK(unsigned char *Buf, unsigned char CRC_CNT)
{
unsigned short CRC_Temp;
unsigned char i,j;
CRC_Temp = 0xffff;
for (i=0;i<CRC_CNT; i++){
CRC_Temp ^= Buf[i];
for (j=0;j<8;j++) {
if (CRC_Temp & 0x01)
CRC_Temp = (CRC_Temp >>1 ) ^ 0xa001;
else
CRC_Temp = CRC_Temp >> 1;
}
}
return(CRC_Temp);
}
//==============================================================
//函數:void OutPut_Data(void)
//描述:向虛擬示波器發送數據
//參數:無
//返回:無
//==============================================================
void OutPut_Data(void)
{
int temp[4] = {0};
unsigned int temp1[4] = {0};
unsigned char databuf[10] = {0};
unsigned char i;
unsigned short CRC16 = 0;
for(i=0;i<4;i++)
{
temp[i] = (int)OutData[i];
temp1[i] = (unsigned int)temp[i];
}
for(i=0;i<4;i++)
{
databuf[i*2] = (unsigned char)(temp1[i]%256);
databuf[i*2+1] = (unsigned char)(temp1[i]/256);
}
CRC16 = CRC_CHECK(databuf,8);
databuf[8] = CRC16%256;
databuf[9] = CRC16/256;
for(i=0;i<10;i++)
uart_putchar(databuf[i]);
}
//==============================================================
//函數:void uart_putchar ( unsigned char c)
//描述:發送一個字節
//參數:無
//返回:無
//==============================================================
void uart_putchar ( unsigned char c)
{
while(!(SCI0SR1&0x80)) ; //keep waiting when not empty
SCI0DRL=c;
}
//==============================================================
//函數:void main(void)
//描述:工程得主函數
//參數:無
//返回:無
//==============================================================
void main(void)
{
SetBus_64M(); //初始化總線始終64M
PIT_Init(); //設置定時器中斷1ms
TimInit (); //初始化脈沖累加器用于編碼器計數
UART_Init(); //串口初始化,配置波特率9600
DDRA_DDRA0=0; //配置A0口位輸入端口,用于測量編碼器選裝方向
EnableInterrupts; //打開所有中斷
while(1)
{
OutPut_Data(); //向上位機發送數據
}
EnableInterrupts;
}
//==============================================================
//函數Speed_Read(void)
//描述:讀取編碼器脈沖
//參數:無
//返回:無
//==============================================================
void Speed_Read(void)
{
//uint Motor_Polse=0;
Motor_Polse=PACNT; //讀取寄存器得脈沖值
if(PORTA_PA0==1) //判斷編碼器方向
{
Motor_Polse=-Motor_Polse; //反向取反
}
OutData[0]=Motor_Polse;
_asm(nop) ;
_asm(nop) ;
PACNT=0X0000; //清楚寄存器得脈沖值
// Motor_Polse=0;
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
//==============================================================
//函數interrupt VectorNumber_Vpit0 void PIT_ISR (void)
//描述:定時器中斷函數
//參數:無
//返回:無
//==============================================================
interrupt VectorNumber_Vpit0 void PIT_ISR (void)
{
num++;
if(num>10)
{
num=0;
Speed_Read();
}
PITTF_PTF0=1; //清除中斷ADtransform();
}
復制代碼
作者:
ko44
時間:
2018-3-19 22:17
剛學的單片機,上面的就像看天書.
作者:
yulin3192
時間:
2018-10-4 14:58
看不懂啊
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1