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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7565|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

mini512線編碼器MC9S12XS128源程序與相關(guān)資料下載

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:402019 發(fā)表于 2018-9-25 09:44 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式


mini 512編碼器系列使用說明書

一、特點(diǎn)
電子部分采用先進(jìn)的檢測技術(shù) , 機(jī)械外殼全鋁合金構(gòu)造 ( 轉(zhuǎn)子除外 ) 。

具有以下特點(diǎn):
● 分辨率有: AB 相正交輸出 256 線、 AB 相正交輸出 1024 線、步進(jìn) + 方向輸出 512 線;
● 旋轉(zhuǎn)速度高,最高轉(zhuǎn)速可達(dá) 10000rpm ;
● 寬廣的工作溫度范圍: -40 ℃ ~ +125 ℃ 。
● 抗擾性好 。 本產(chǎn)品采用霍爾檢測技術(shù) , 屬于無接觸檢測 , 傳感器運(yùn)行不受灰塵或其它雜物影響,很好克服了基于光學(xué)檢測原理的缺點(diǎn);
● 體積小巧。直徑 D : 14mm 高 H : 18mm 軸徑: 3mm ;
● 重量輕。除轉(zhuǎn)軸外,全鋁合金構(gòu)造,凈重 11.5 克。

二、應(yīng)用
● 機(jī)器人
● 機(jī)械手
● 運(yùn)動控制系統(tǒng)
● 伺服系統(tǒng)
● 自動化設(shè)備
● 辦公室設(shè)備
● 取代光學(xué)編碼器
● 智能車



512 線增量式編碼器使用教程


模塊說明:本編碼器體積超小,編碼器外徑 1.5cm,質(zhì)量超輕,方便靈活的安裝在 A,B,C,D,E 等車模上,是智能車和機(jī)器人的不二人選。編碼器為 512 線 3 相Mini 增量式旋轉(zhuǎn)編碼器,編碼器自身直接輸出旋轉(zhuǎn)方向和脈沖,程序簡單,可運(yùn)用于 8 位,16 位,32 位等系列單片機(jī)。3.3V到5V寬電壓供電,以滿足不同 IO 口電平的單片機(jī)。無需正交解碼或其他
繁瑣程序即可穩(wěn)定獲得編碼器齒選裝方向。編碼器配套各種車模的齒輪可使用任意組別車模。
模塊使用方法:按下圖方式連接編碼器至電源和單片機(jī)打開測試程序,連接單片機(jī)和電腦或OLED即可在虛擬示波器或OLED上觀看編碼器旋轉(zhuǎn)波沖值,也可利用示波器觀看編碼器輸出波形。

如果采用示波器觀看編碼器輸出脈沖,只需要給編碼器連接電源,將示波器探頭底線與電源地線連接,示波器探頭信號輸入端連接 2(LSB)即可觀看編碼器輸出脈沖的波形,連接示波器信號輸出端到 5(Dir)即可觀看旋轉(zhuǎn)方向輸出信號。若采用單片機(jī)查看編碼器脈沖和旋轉(zhuǎn)方向輸出,即可連接 1(GND)到單片機(jī)電源地線,2(LSB)到單片機(jī)脈沖撲捉端口具體單片機(jī)下面將會介紹,4(VCC)到單片機(jī)電源正極,5(Dir)到單片機(jī)普通可做輸入的 IO 口,下載相應(yīng)的測試程序,連接好 OLED 或者串口工具到電腦即可在上位機(jī)和OLED 上查看編碼器輸出脈沖和旋轉(zhuǎn)方向, 具體方法程序介紹中有介紹。

使用注意事項:編碼器供電電壓不得超過允許的電壓,不得對編碼器轉(zhuǎn)軸施加過大的力從而導(dǎo)致轉(zhuǎn)軸變形,編碼器信號線最好使用膠帶固定在編碼器外殼上避免長期使用過程中的拉扯導(dǎo)致信號線脫落。
(二)編碼器采集程序介紹
XS128 程序介紹: 給編碼器和單片機(jī)供電, 要求單片機(jī)和編碼器公地,連接編碼器2(LSB)到單片機(jī) T7 口,連接編碼器 5(Dir)到單片機(jī) A0 口,連接單片機(jī)和藍(lán)牙串口模塊,RX 到 S0,TX 到單片機(jī) S1,打開上位機(jī)


運(yùn)行上位機(jī)后,帶串口連接好后調(diào)節(jié)上位機(jī)刻度就會看到編碼器的脈沖信息。
K60 程序介紹:給編碼器和單片機(jī)供電(編碼器可選擇3.3V 或5V供電) ,要求單片機(jī)和編碼器公地, 連接編碼器 2 (LSB) 到單片機(jī) C5 口, 連接編碼器 5(Dir)到單片機(jī)C0 口,連接單片機(jī)和藍(lán)牙串口模塊,RX 到D6,TX 到單片機(jī) D7,上位機(jī)如上操作。運(yùn)行上位機(jī)后,帶串口連接好后調(diào)節(jié)上位機(jī)刻度就會看到編碼器的脈沖信息。



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

  80. PACTL=0X00;
  81. PACNT=0X0000;//設(shè)置脈沖累加器初值
  82. PACTL_PAEN=1;
  83. }

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

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

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


  186.   
  187. }
  188. //==============================================================
  189. //函數(shù)Speed_Read(void)
  190. //描述:讀取編碼器脈沖
  191. //參數(shù):無
  192. //返回:無
  193. //==============================================================
  194. void Speed_Read(void)

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

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

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


  225. }
復(fù)制代碼



全部資料51hei下載地址:
http://www.zg4o1577.cn/bbs/dpj-109842-1.html


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

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日本人麻豆| 亚洲一一在线 | 男人天堂网址 | 国产成人精品视频 | 久久99网 | 日韩免费在线视频 | 亚洲三级在线 | 日本一区精品 | 国产精品久久久久久一区二区三区 | av毛片| 国产精品高潮呻吟久久 | 日韩高清www | 操人网站| 亚洲三区在线观看 | 亚洲一区二区免费看 | 中文av在线播放 | 国产精品一区二区无线 | 老子午夜影院 | 亚洲免费在线观看视频 | 亚洲精品久久久9婷婷中文字幕 | 国产精品毛片一区二区三区 | 91精品国产综合久久精品 | 久久精品亚洲精品 | 玖玖国产 | 国产一区免费 | 欧美亚洲成人网 | 天天躁日日躁xxxxaaaa | 中文在线一区二区 | 色性av | 午夜电影福利 | 国产免费a | 亚洲 中文 欧美 | 天天综合久久 | 中文字幕在线欧美 | 亚洲精品欧美一区二区三区 | 国产成人福利在线观看 | 免费久久久久久 | 爱爱综合网| 成人免费视频观看 | 91最新在线视频 | 亚洲欧洲国产视频 |