久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6204|回復: 2
打印 上一主題 下一主題
收起左側

正交解碼 512線小編碼器測試源程序與資料下載

[復制鏈接]
跳轉到指定樓層
樓主
512線編碼器例程,及數據手冊.


全部資料51hei下載地址:
mini 512編碼器.rar (4.35 MB, 下載次數: 123)


系列使用說明書
一、特點
本產品電子部分采用先進的檢測技術 , 機械外殼全鋁合金構造 ( 轉子除外 ) 。

本產品具有以下特點:
● 分辨率有: AB 相正交輸出 256 線、 AB 相正交輸出 1024 線、步進 + 方向輸出 512 線;
● 旋轉速度高,最高轉速可達 10000rpm ;
● 寬廣的工作溫度范圍: -40 ℃ ~ +125 ℃ 。
● 抗擾性好 。 本產品采用霍爾檢測技術 , 屬于無接觸檢測 , 傳感器運行不受灰塵或其它雜物影響,很好克服了基于光學檢測原理的缺點;
● 體積小巧。直徑 D : 14mm 高 H : 18mm 軸徑: 3mm ;
● 重量輕。除轉軸外,全鋁合金構造,凈重 11.5 克。
二、應用
● 機器人
● 機械手
● 運動控制系統
● 伺服系統
● 自動化設備
● 辦公室設備
● 取代光學編碼器
● 智能車

LQ_K60正交解碼-MINI編碼器測試程序與
512線小編碼器單片機源程序如下:
  1. /********************************************************
  2. 【平    臺】龍丘MC9S12XS128系統板V4.1
  3. 【編    寫】龍丘
  4. 【Designed】by Chiu Sir
  5. 【E-mail  】chiusir@yahoo.cn
  6. 【軟件版本】V1.0
  7. ------------------------------------------------
  8. 【dev.env.】Code Warrior 5.1
  9. 【Target  】MC9S12XS128
  10. 【pllclock】64.000MHz
  11. 接線方式
  12. 編碼器------->單片機
  13. GND -------> GND
  14. VCC -------> VCC
  15. LSB -------> T7
  16. DIR -------> A0
  17. 藍牙串口模塊------->單片機
  18. RX -------> S0
  19. TX -------> S1
  20. 版權龍邱智能科技所有,轉載需注明出處!
  21. ********************************************************/
  22. #include <hidef.h>      /* common defines and macros */
  23. #include "derivative.h"      /* derivative-specific definitions */
  24. void SetBus_64M(void);
  25. void PIT_Init(void);
  26. void TimInit (void);
  27. void UART_Init (void);
  28. void uart_putchar ( unsigned char c);
  29. unsigned short CRC_CHECK(unsigned char *Buf, unsigned char CRC_CNT);
  30. void OutPut_Data(void);
  31. void Speed_Read(void);
  32. float OutData[4] = { 0 };
  33. uint num=0;
  34. int  Motor_Polse=0;
  35. /****************************************************
  36.   函數名稱:void SetBus_64M(void)
  37.   函數簡介:設置總線頻率為64M,晶振頻率16M
  38.   入口參數:
  39.   出口參數:
  40. *****************************************************/
  41. void SetBus_64M(void)
  42. {
  43.   CLKSEL_PLLSEL=0;  //禁止使能鎖相環時鐘
  44.   PLLCTL_PLLON=1;   //鎖相環電路允許
  45.   SYNR=0xc0|0x07;   //VCO_clock=2*osc_clock*(SYNR+1)/(REFDV+1)=128MHz
  46.                     //VCOFRQ[1:0]=1:1,代表VCO_clock在80~120MHz
  47.   REFDV=0x80|0x01;   //VCO_clock=2*osc_clock*(SYNR+1)/(REFDV+1)=128MHz
  48.                     //REF_clock=osc_clock/(REFDV+1)
  49.                     //REFFEQ[1:0]=1:0,代表參考時鐘在6~12MHz之間
  50.   POSTDIV=0x00;      //PLL_clock=VCO_clock
  51.   _asm(nop);
  52.   _asm(nop);         //短暫延時,等待時鐘頻率穩定
  53.   while(!(CRGFLG_LOCK==1))
  54.   {
  55.   ;
  56.   }
  57.   CLKSEL_PLLSEL=1;
  58. }
  59. //==============================================================
  60. //函數:void PIT_Init(void)
  61. //描述:初始化定時器為1ms中斷
  62. //參數:無
  63. //返回:無
  64. //==============================================================
  65. void PIT_Init(void)
  66. {
  67.    PITCFLMT=0x00; //禁止使能PIT模塊
  68.    PITCE_PCE0=1;  //使能定時器通道0
  69.    PITMUX=0x00; //定時器通道0使用微定時基準0
  70.    PITMTLD0=8-1; //設置8位微定時裝載寄存器0初值
  71.    PITLD0=8000-1; //定時周期=(&PITMTLD0+1)*(&PITLD0+1)
  72.    PITINTE=0x01;  //使能PIT定時器通道0中斷
  73.    PITCFLMT=0x80; //使能PIT模塊
  74. }
  75. //==============================================================
  76. //函數:void TimInit (void)
  77. //描述:脈沖累加器初始化
  78. //參數:無
  79. //返回:無
  80. //==============================================================
  81. void TimInit (void)
  82. {

  83. PACTL=0X00;
  84. PACNT=0X0000;//設置脈沖累加器初值
  85. PACTL_PAEN=1;
  86. }

  87. //==============================================================
  88. //函數:void UART_Init (void)
  89. //描述:串口初始化,配置串口1,波特率為9600
  90. //參數:無
  91. //返回:無
  92. //==============================================================
  93. void UART_Init (void)
  94. {
  95.    
  96.           SCI0CR2=0x2c; //enable Receive Full Interrupt,RX enable,Tx enable
  97.     SCI0BDH=0x01; //busclk  8MHz,19200bps,SCI0BDL=0x1a
  98.     SCI0BDL=0xa0; //SCI0BDL=busclk/(16*SCI0BDL)                  
  99.                   //busclk 32MHz, 9600bps,SCI0BDL=0xD0
  100.                   //115200 bps     SCI0BDL=0x11
  101. }                 // 64M 9600    SCI0BDH=0x01; SCI0BDL=0xA0;
  102. //==============================================================
  103. //函數:unsigned short CRC_CHECK(unsigned char *Buf, unsigned char CRC_CNT)
  104. //描述:虛擬示波器上位機接口程序
  105. //參數:
  106. //返回?
  107. //==============================================================
  108. unsigned short CRC_CHECK(unsigned char *Buf, unsigned char CRC_CNT)
  109. {
  110.     unsigned short CRC_Temp;
  111.     unsigned char i,j;
  112.     CRC_Temp = 0xffff;

  113.     for (i=0;i<CRC_CNT; i++){      
  114.         CRC_Temp ^= Buf[i];
  115.         for (j=0;j<8;j++) {
  116.             if (CRC_Temp & 0x01)
  117.                 CRC_Temp = (CRC_Temp >>1 ) ^ 0xa001;
  118.             else
  119.                 CRC_Temp = CRC_Temp >> 1;
  120.         }
  121.     }
  122.     return(CRC_Temp);
  123. }
  124. //==============================================================
  125. //函數:void OutPut_Data(void)
  126. //描述:向虛擬示波器發送數據
  127. //參數:無
  128. //返回:無
  129. //==============================================================
  130. void OutPut_Data(void)
  131. {
  132.   int temp[4] = {0};
  133.   unsigned int temp1[4] = {0};
  134.   unsigned char databuf[10] = {0};
  135.   unsigned char i;
  136.   unsigned short CRC16 = 0;
  137.   for(i=0;i<4;i++)
  138.    {
  139.    
  140.     temp[i]  = (int)OutData[i];
  141.     temp1[i] = (unsigned int)temp[i];
  142.    
  143.    }
  144.    
  145.   for(i=0;i<4;i++)
  146.   {
  147.     databuf[i*2]   = (unsigned char)(temp1[i]%256);
  148.     databuf[i*2+1] = (unsigned char)(temp1[i]/256);
  149.   }
  150.   
  151.   CRC16 = CRC_CHECK(databuf,8);
  152.   databuf[8] = CRC16%256;
  153.   databuf[9] = CRC16/256;
  154.   
  155.   for(i=0;i<10;i++)
  156.     uart_putchar(databuf[i]);
  157. }
  158. //==============================================================
  159. //函數:void uart_putchar ( unsigned char c)
  160. //描述:發送一個字節
  161. //參數:無
  162. //返回:無
  163. //==============================================================
  164. void uart_putchar ( unsigned char c)
  165. {
  166.   while(!(SCI0SR1&0x80)) ;                     //keep waiting when not empty  
  167.   SCI0DRL=c;
  168. }
  169. //==============================================================
  170. //函數:void main(void)
  171. //描述:工程得主函數
  172. //參數:無
  173. //返回:無
  174. //==============================================================
  175. void main(void)
  176. {

  177.   
  178.    SetBus_64M();  //初始化總線始終64M
  179.    PIT_Init();    //設置定時器中斷1ms
  180.    TimInit ();    //初始化脈沖累加器用于編碼器計數
  181.    UART_Init();   //串口初始化,配置波特率9600
  182.    DDRA_DDRA0=0;  //配置A0口位輸入端口,用于測量編碼器選裝方向
  183.    EnableInterrupts;   //打開所有中斷
  184.    while(1)
  185.    {
  186.     OutPut_Data();   //向上位機發送數據
  187.    }
  188.         EnableInterrupts;


  189.   
  190. }
  191. //==============================================================
  192. //函數Speed_Read(void)
  193. //描述:讀取編碼器脈沖
  194. //參數:無
  195. //返回:無
  196. //==============================================================
  197. void Speed_Read(void)

  198. {
  199. //uint  Motor_Polse=0;
  200. Motor_Polse=PACNT;          //讀取寄存器得脈沖值
  201. if(PORTA_PA0==1)           //判斷編碼器方向
  202.   {
  203.    Motor_Polse=-Motor_Polse;  //反向取反
  204.   }
  205. OutData[0]=Motor_Polse;
  206. _asm(nop) ;
  207. _asm(nop) ;
  208. PACNT=0X0000;              //清楚寄存器得脈沖值
  209. // Motor_Polse=0;
  210. }
  211. #pragma CODE_SEG __NEAR_SEG NON_BANKED

  212. //==============================================================
  213. //函數interrupt VectorNumber_Vpit0 void PIT_ISR (void)
  214. //描述:定時器中斷函數
  215. //參數:無
  216. //返回:無
  217. //==============================================================
  218. interrupt VectorNumber_Vpit0 void PIT_ISR (void)
  219. {
  220.   
  221. num++;
  222. if(num>10)
  223. {
  224.   num=0;
  225.   Speed_Read();
  226. }

  227. PITTF_PTF0=1; //清除中斷ADtransform();


  228. }
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:284454 發表于 2018-3-19 22:17 | 只看該作者
剛學的單片機,上面的就像看天書.
回復

使用道具 舉報

板凳
ID:234782 發表于 2018-10-4 14:58 | 只看該作者
看不懂啊
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天曰夜夜操 | 成人免费视频网站 | 中国三级黄色录像 | 天天色图 | 欧美一区二区黄 | 日韩精品一区二区三区中文在线 | 高清一区二区三区 | 精品亚洲一区二区三区 | 日韩av在线播 | 中文字幕亚洲精品在线观看 | 国产精品久久久久一区二区三区 | 亚洲精品日日夜夜 | 日韩欧美一区二区三区 | 国产高清一区二区 | 一区二区三区亚洲 | 一级黄色录像片子 | 亚洲国产成人av好男人在线观看 | 欧美一区二区三区在线 | 国产欧美一区二区三区在线看 | 欧美精品一区二区在线观看 | 亚洲欧洲中文日韩 | 超碰天天 | 日韩黄色av | 国产午夜视频 | 草久久 | 中文字幕日本一区二区 | 超碰成人免费 | 羞羞视频在线观看 | 先锋影音资源网站 | 日韩三级在线 | 亚洲精品中文在线观看 | 在线观看中文字幕 | 国产小视频在线 | 色婷婷综合久久久中字幕精品久久 | 国产日韩一区 | 五月激情婷婷在线 | 久久国产电影 | 天天久久 | 一区二区三区久久久 | 日韩一区二区三区在线 | 久久久免费电影 |