chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣對PIC單片機進行編程和讀取編碼器

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2019-11-05 17:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

第1步:材料

注意: 材料以星號列出的內(nèi)容可以替換,具體取決于您可能提供的內(nèi)容。本教程中用于該類別的組件列在括號中。請注意,替換可能會使本指南的部分內(nèi)容無關(guān)(即如果使用不同的微控制器,則部分代碼可能無效)。

軟件:

MPLAB X IDE(免費提供:http://www.microchip.com/pagehandler/zh-cn/family 。..

MPLAB XC8(免費提供:http://www.microchip.com/pagehandler/en_us/devtoo 。..

硬件:

DC電源

香蕉電纜

面包板

電線

PIC編程器/調(diào)試器* (MPLAB ICD 3)

RJ11連接器[包含在MPLAB ICD 3中]

USB 2.0電纜[包含在MPLAB ICD 3中]

PIC單片機*(PIC18F4520) - 務(wù)必使用 DIP 微控制器,以便它可以放入面包板。

帶旋轉(zhuǎn)編碼器的設(shè)備*(Pololu項目#2269)

10歐姆電阻器

RJ-11到面包板適配器(DigiKey#H11394-ND)

示波器(可選) - 允許您查看編碼器信號

示波器探頭x 2(可選)

萬用表(可選) - 有助于調(diào)試問題

步驟2:電源設(shè)置

獲得必要的設(shè)備后,我們的下一個任務(wù)是設(shè)置面包板并為PIC微控制器MCU)供電。這意味著是時候連接直流電源了。

電源: 正如您將在此步驟中所示的Acopian直流電源的圖片中看到的那樣每個電源通道都有三個彩色連接器,香蕉電纜可以連接到這些連接器上。就本教程而言,我們需要電源提供+ 5V和+ 0V(接地)。為了提供+ 5V和+ 0V,將電源的負(fù)極和接地端子連接在一起(圖中提供的綠色和黑色端子)。然后,將香蕉電纜連接到將要連接到面包板的正極(紅色)端子和接地(綠色)端子上。在面包板上找到的這些端子在步驟3中顯示為連接的香蕉電纜。

步驟3:面包板設(shè)置

面包板: 是時候設(shè)置面包板了。經(jīng)過我自己的許多布線災(zāi)難后,我建議你保持線顏色一致。在本教程中,您將看到紅色的+ 5V電線和綠色的+ 0V電線,以及RJ-11到面包板連接器(已布線)的電線的 exception 由一家公司)。另請注意,在面包板的端子排上設(shè)置+ 5V和+ 0V會很有幫助。

注意:上面提供的圖片顯示了下面提到的相同連接和幫助解釋下面的說明。

引腳號: 確定連接+ 5V和+ 0V(接地)的位置就像打開此鏈接一樣簡單(包含數(shù)據(jù)表)并向下滾動到第四頁:http://microchip.com/downloads/en/DeviceDoc/39631E 。..。在那里你會發(fā)現(xiàn)需要進行以下連接:

Pin 11至+ 5V

Pin 12至+ 0V

Pin 31至+ 0V

Pin 32至+ 5V

Pin 1至 一側(cè) 100歐姆電阻(數(shù)據(jù)表中未提及)

此外,需要使用 RJ-11到面包板適配器(以下簡稱RJ-11)進行以下連接適配器)。與該步驟相關(guān)的適配器的圖片還顯示了要連接的對象。

RJ-11適配器黃線:至+ 5V

RJ-11適配器藍線:至 10Ohm電阻器

RJ-11適配器:綠線:到+ 0V

RJ-11適配器紅色線:到插針40

RJ-11適配器黑線:到插針39

RJ-11適配器白線是 不 已連接

作為經(jīng)驗法則您可以記住,集成電路芯片始于引腳1位于左上角,然后向下移動左側(cè),然后向上備份編號最高的引腳(右上角)。要從下往上看,通常在芯片的頂部有一個凹痕或圓點。

還要注意 VDD = + 5V 和 VSS = + 0V (地面)

第4步:編碼器設(shè)置

接下來,將帶有編碼器的電動機添加到電路中,并連接到微控制器。如果您訂購了材料頁面上列出的電動機,則它帶有6針適配器,可用于將編碼器插入面包板(參見圖1)。

電路連接:電動機&編碼器需要下面列出的連接。包括三張圖片,每張圖片在電路上都有不同的視圖,以幫助進行編碼器連接過程。

紅線:至+ 5V

黑線:至+ 0V

綠線:至+ 0V

藍線:至+ 5V

黃線:至Pin 33(微控制器上)

白線:至Pin 34(微控制器上)

您可能希望連接紅線 僅在測試 電機時,因為當(dāng)前配置會使電機不斷運轉(zhuǎn)。或者,可以使用電機驅(qū)動器來打開和關(guān)閉電機(本教程未介紹)。

步驟5:編程設(shè)置

在電路調(diào)試器中:要完成此項目的硬件設(shè)置,請使用RJ-11電纜將ICD3連接到電路。最后,使用USB 2.0電纜將ICD3連接到計算機。

MPLAB X配置:至此,我們準(zhǔn)備打開MPLAB X并設(shè)置我們的項目。請參閱以下步驟:

文件》新建項目》獨立項目

選擇設(shè)備:PIC18F4520

選擇硬件工具:ICD3

選擇編譯器:XC8

名稱并保存您的項目

注意: :如果您在使用這些說明時遇到任何困難,請從起始頁中選擇“快速入門”,這將打開一個網(wǎng)頁,該網(wǎng)頁將指導(dǎo)您完成與圖像相同的步驟。為了本項目的目的,我們只關(guān)注該頁面上的前五個步驟。

第6步:編程

此時,我們將專門使用MPLAB X IDE。要開始使用,請注意MPLAB IDE窗口左側(cè)標(biāo)題為 Projects 的面板。在此面板中,創(chuàng)建代碼:

右鍵單擊 項目下方列出的“源文件”文件夾》新建》 C主文件

無需任何操作根據(jù)需要命名(‘Main’很好)現(xiàn)在您將看到MPLAB X創(chuàng)建了一個 主文件 ,在中心面板中可見。

代碼: 就本教程而言,我將提供必要的代碼,您可以將其復(fù)制并粘貼到該中心窗口中(刪除文件中的所有其他文本之后)。讓您了解代碼的作用,我在下面簡要介紹了實際代碼本身的評論(粘貼在下面)

概述: 對PIC單片機進行編程的代碼有幾個不同的部分,概述如下。

定義語句: 定義語句允許程序員使用可能對計算機有意義的單詞。例如,我們可以將單詞OFF定義為二進制“0”。因此,當(dāng)我們看到“ off”一詞使代碼更易于理解時,計算機將讀取二進制“ 0”。

Include語句: Include語句告訴編譯器執(zhí)行以下操作:包括各種頭文件。這些外部文件可能包含定義輸入/輸出函數(shù)(stdlib.h)或各種標(biāo)準(zhǔn)C函數(shù)(stdio.h)等的文件。

編譯指示: Pragma用于設(shè)置微控制器上的配置位,用于控制振蕩器選擇,代碼保護等方面。請選擇窗口》 PIC存儲器視圖》配置位

《隨意檢查配置位。 strong》函數(shù):函數(shù)是執(zhí)行特定任務(wù)的程序部分。主要功能是程序開始執(zhí)行。

程序:

/***************** ************************************************** *

如何編程PIC和讀取編碼器程序

最近修訂:1/3/14

作者:Carson Miller

撰寫:PIC18F4525(當(dāng)前版本)

**** ************************************************** ***************/

#define INPUT 1

#define OUTPUT 0

#define _XTAL_FREQ 4000000//由XC8使用delay_ms(x)宏

//PIC18F25K22配置位設(shè)置

#include //包括PIC硬件映射

#include“ GenericTypeDefs.h”//包括標(biāo)準(zhǔn)變量類型

//#pragma config語句應(yīng)位于

//使用項目枚舉代替#define進行ON和OFF。 CONFIG1H

#pragma config OSC = INTIO7//振蕩器選擇位(內(nèi)部振蕩器模塊,RA6的CLKOUT功能) ,RA7上的端口功能)

#pragma config FCMEN = OFF//故障保護時鐘監(jiān)視器使能位(故障保護時鐘監(jiān)視器禁用)

#pragma config IESO = OFF//內(nèi)部/外部振蕩器切換位(禁用振蕩器切換模式)

//CONFIG2L

#pragma config PWRT = OFF//上電定時器使能位(PWRT禁止)

#pragma config BOREN = SBORDIS//欠壓復(fù)位使能位(僅在硬件中使能欠壓復(fù)位(SBOREN禁用))

#pragma config BORV = 3//欠壓復(fù)位電壓位(最小設(shè)置)

//CONFIG2H

#pragma config WDT = OFF//看門狗定時器使能位(WDT使能)

#pragma config WDTPS = 32768//看門狗定時器后置選擇位(1:32768)

//CONFIG3H

#pragma config CCP2MX = PORTC//CCP2 MUX位(CCP2輸入/輸出與RC1復(fù)用)

#pragma config PBADEN = ON//PORTB A/D使能位(PORTB 《4:0》引腳在復(fù)位時配置為模擬輸入通道)

#pragma config LPT1OSC = OFF//低功耗Timer1振蕩器使能位(Timer1配置為更高功率運行)

#pragma config MCLRE = ON//MCLR Pi n使能位(MCLR引腳使能; RE3輸入引腳已禁用)

//CONFIG4L

#pragma config STVREN = ON//堆棧滿/下溢復(fù)位使能位(堆棧滿/下溢將導(dǎo)致復(fù)位)

#pragma config LVP = OFF//單 - 供應(yīng)ICSP使能位(單電源ICSP使能)

#pragma config XINST = OFF//擴展指令集使能位(指令集擴展和索引尋址模式禁用(傳統(tǒng)模式))

//CONFIG5L

#pragma config CP0 = OFF//代碼保護位(塊0(000800-003FFFh)未受代碼保護)

#pragma config CP1 = OFF//代碼保護位(塊1(004000-007FFFh)不代碼 -

#pragma config CP2 = OFF//代碼保護位(塊2(008000-00BFFFh)沒有代碼保護)

//CONFIG5H

#pragma config CPB = OFF//引導(dǎo)塊代碼保護位(引導(dǎo)塊(000000-0007FFh)沒有代碼保護)

#pragma config CPD = OFF//數(shù)據(jù)EEPROM代碼保護位(數(shù)據(jù)EEPROM沒有代碼保護)

//CONFIG6L

#pragma config WRT0 = OFF//寫保護位(塊0(000800) -003FFFh)沒有寫保護)

#pragma config WRT1 = OFF//寫保護位(塊1(004000-007FFFh)沒有寫保護)

#pragma config WRT2 = OFF//寫保護位(塊2(008000-00BFFFh)沒有寫保護)

//CONFIG6H

#pragma config WRTC = OFF//配置寄存器寫保護位(配置寄存器(300000-3000FFh)沒有寫保護)

#pragma config WRTB = OFF//引導(dǎo)塊寫保護位(引導(dǎo)塊(000000-0007FFh)未寫保護)

#pragma config WRTD = OFF//數(shù)據(jù)EEPROM寫保護位(數(shù)據(jù)EEPROM未寫保護)

//CONFIG7L

#pragma config EBTR0 = OFF//表讀保護位(塊0(000800-003FFFh)不受其他塊中執(zhí)行的表讀操作的保護)

#pragma config EBTR1 = OFF//表讀保護位(塊1(004000-007FFFh)不受其他塊中執(zhí)行的表讀操作的保護)

#pragma config EBTR2 = OFF//表讀保護位(塊2(008000-00BFFFh)未受保護

//CONFIG7H

#pragma config EBTRB = OFF//引導(dǎo)塊表讀取保護位(引導(dǎo)塊(000000-0007FFh)不受其他塊中執(zhí)行的表讀取的保護)

》//虛擬變量設(shè)置

UINT距離= 0;

CHAR方向= 0;

CHAR錯誤= 0;

void configure(void)

{

//ADC Setup

ADCON1bits.PCFG = 1111;//關(guān)閉所有模擬輸入(參見數(shù)據(jù)表第224頁)

//振蕩器設(shè)置

OSCCONbits.IRCF = 110;//將振蕩器設(shè)置為4MHz

//中斷設(shè)置

INTCONbits.GIE = 1;//啟用所有未屏蔽或高優(yōu)先級的中斷(取決于IPEN)

INTCONbits.PEIE = 1;//啟用所有未屏蔽的外設(shè)中斷或低優(yōu)先級中斷(取決于IPEN)

INTCONbits.INT0IF = 0;//清除中斷0標(biāo)志位(必須在啟用中斷之前發(fā)生)

INTCONbits.INT0IE = 1;//啟用INT0外部中斷

INTCON2bits.INTEDG0 = 1;//將外部中斷0設(shè)置為在上升沿中斷

RCONbits.IPEN = 0;//禁用中斷優(yōu)先級

TRISBbits.TRISB0 = INPUT;//將INT0設(shè)置為輸入

TRISBbits.TRISB1 = INPUT;//將INT1設(shè)置為輸入

}

void main()

{

configure();

while(1)

{

//Program Loop

}

}

//主中斷服務(wù)程序(ISR)

void中斷ISR()

{

//檢查它是否是中斷0

(INTCONbits.INT0IF = = 1)

{

distance ++;

INTCONbits.INT0IF = 0;//清除中斷標(biāo)志

錯誤= 1;

}

步驟7:運行程序和調(diào)試

使用MPLABX IDE的注意事項: 添加該程序后,您可以按以下方式運行該程序調(diào)試項目按鈕。調(diào)試項目按鈕看起來像一段破碎的代碼,旁邊有一個播放按鈕,位于上方工具欄(文件工具欄下方)。按下此按鈕后,您將可以使用上方工具欄中的按鈕暫停和播放程序。

檢查編碼器值: 要檢查編碼器值,必須在MPLAB IDE窗口左側(cè)的面板中添加變量“watch”。只需單擊“輸入新手表”的位置,然后鍵入方向或距離。然后,您將可以通過該窗口跟蹤這些變量。請注意,必須暫停程序才能看到變量監(jiān)視中的值發(fā)生變化。此外,如果變量監(jiān)視中的值以不正確的格式顯示,請右鍵單擊不正確的值并將鼠標(biāo)懸停在“顯示值列為”上,以便您可以選擇正確的格式。

項目完成!

如果你已經(jīng)到了最后并且沒有工作項目,請不要擔(dān)心。有許多事情要嘗試:

萬用表:檢查以確保您的微控制器和電機/編碼器在適當(dāng)?shù)奈恢媒邮? 5V和+ 0V(接地)

示波器:檢查以確保編碼器正在發(fā)送與該步驟相關(guān)的示波器圖像中所示的信號。編碼器應(yīng)該從黃色和白色線中放出兩個90度異相的方波。

MPLAB X:檢查以確保您的微控制器設(shè)置正確,確保您的特殊功能寄存器具有適當(dāng)?shù)亩M制值(在步驟6的代碼中設(shè)置)。要在調(diào)試會話期間暫停后,要查看特殊功能寄存器,請轉(zhuǎn)到窗口》 PIC內(nèi)存視圖》 SFR。從那里你可以檢查INT0(引腳33)的引腳是否設(shè)置為輸入,例如,將光標(biāo)懸停在TRISB寄存器上。

責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6074

    文章

    45325

    瀏覽量

    663104
  • 編碼器
    +關(guān)注

    關(guān)注

    45

    文章

    3900

    瀏覽量

    141353
  • 編程
    +關(guān)注

    關(guān)注

    90

    文章

    3707

    瀏覽量

    96720
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Vishay USB編碼器接口技術(shù)解析與應(yīng)用指南

    Type C? 電纜即可輕松讀取和評估編碼器。該板還配有microSD卡,其中包含在PC上加載所需的軟件。Vishay網(wǎng)站上提供軟件更新,特別是針對各種類型編碼器的更新。Vishay/MCB
    的頭像 發(fā)表于 11-12 11:51 ?369次閱讀

    舵機伺服編碼器

    —— 沒有編碼器的反饋,舵機就無法判斷自身是否到達目標(biāo)位置,控制精度會大幅下降。 核心作用:實現(xiàn) “閉環(huán)控制” 舵機伺服編碼器的本質(zhì)是為舵機提供 “位置反饋”,其核心作用體現(xiàn)在以下 3 點: 位置檢測 :實時讀取舵機輸出軸
    的頭像 發(fā)表于 10-30 10:05 ?86次閱讀

    絕對值編碼器與增量式編碼器相比有哪些優(yōu)勢?

    、是否重啟,只要設(shè)備未發(fā)生物理位移,再次上電后可直接讀取當(dāng)前的準(zhǔn)確位置,無需 “找零” 或重新校準(zhǔn)。 增量式編碼器:僅輸出脈沖信號,通過計數(shù)脈沖數(shù)量計算位置變化,但無
    的頭像 發(fā)表于 08-11 13:57 ?1141次閱讀
    絕對值<b class='flag-5'>編碼器</b>與增量式<b class='flag-5'>編碼器</b>相比有哪些優(yōu)勢?

    編碼器常見的故障詳細(xì)說明

    編碼器作為自動化控制系統(tǒng)中的重要組件,負(fù)責(zé)將機械位移轉(zhuǎn)換為電信號,以供上位、PLC或驅(qū)動等設(shè)備讀取和處理。然而,在使用過程中,編碼器可能
    的頭像 發(fā)表于 04-16 18:28 ?3156次閱讀

    編碼器與無軸承編碼器,到底如何選擇?

    在選擇軸編碼器與無軸承編碼器時,需要根據(jù)具體的應(yīng)用場景、性能需求、環(huán)境條件和成本預(yù)算等因素進行綜合考慮。以下是對兩者的詳細(xì)對比,以幫助做出合適的選擇: 一、工作原理與結(jié)構(gòu) 1. 軸編碼器
    的頭像 發(fā)表于 03-11 15:33 ?977次閱讀
    軸<b class='flag-5'>編碼器</b>與無軸承<b class='flag-5'>編碼器</b>,到底如何選擇?

    伺服電機編碼器怎么選型

    伺服電機編碼器的選型是一個綜合性的過程,需要考慮多個因素以確保所選編碼器能夠滿足系統(tǒng)的性能要求。以下是一些關(guān)鍵的選型步驟和考慮因素: 一、明確應(yīng)用需求 首先,需要明確伺服電機編碼器的應(yīng)用需求,包括
    的頭像 發(fā)表于 03-11 12:01 ?1442次閱讀
    伺服電機<b class='flag-5'>編碼器</b>怎么選型

    編碼器常見的故障問題及案例分析

    編碼器作為自動化控制系統(tǒng)中的重要組件,負(fù)責(zé)將機械位移轉(zhuǎn)換為電信號,以供上位、PLC或驅(qū)動等設(shè)備讀取和處理。然而,在使用過程中,編碼器可能
    的頭像 發(fā)表于 03-07 11:05 ?3606次閱讀

    DISCOAA編碼器性質(zhì)特點

    DISCOAA編碼器的具體詳細(xì)資料或參數(shù) ?。不過,我們可以根據(jù)編碼器的通用知識和一些相關(guān)信息來概述編碼器的一般特點和類型。 編碼器通常用于將機械運動或位置轉(zhuǎn)換為電信號,以便
    的頭像 發(fā)表于 02-20 13:50 ?613次閱讀

    DISCOAA編碼器維修

    DISCOAA編碼器維修主要包括故障診斷、維修準(zhǔn)備、維修步驟及注意事項等方面?。 在進行DISCOAA編碼器維修時,首先需要了解常見的故障類型,如信號輸出異常、機械損壞、電氣連接問題等?1。這些故障
    的頭像 發(fā)表于 02-20 13:48 ?885次閱讀

    DISCOAA編碼器類型功能

    DISCOAA編碼器可能包括絕對編碼器和增量編碼器兩種類型,其主要功能是將輸入信號進行分析和處理,并將其轉(zhuǎn)換為數(shù)字信號 ?。 關(guān)于類型,雖然搜索結(jié)果中并未直接提及DISCOAA
    的頭像 發(fā)表于 02-20 13:47 ?663次閱讀

    伺服電機編碼器故障及維修

    伺服電機編碼器故障及維修,伺服電機編碼器4大常見故障,編碼器信號丟失或不穩(wěn)定,編碼器零點偏移,編碼器過熱,
    的頭像 發(fā)表于 01-21 14:49 ?3809次閱讀
    伺服電機<b class='flag-5'>編碼器</b>故障及維修

    AN4121-采用PIC16F單片機進行系統(tǒng)電源控制

    電子發(fā)燒友網(wǎng)站提供《AN4121-采用PIC16F單片機進行系統(tǒng)電源控制.pdf》資料免費下載
    發(fā)表于 01-21 14:42 ?0次下載
    AN4121-采用<b class='flag-5'>PIC</b>16F<b class='flag-5'>單片機</b><b class='flag-5'>進行</b>系統(tǒng)電源控制

    拉線編碼器關(guān)鍵參數(shù)詳解

    在工業(yè)自動化和精密測量領(lǐng)域,拉線編碼器以其高精度、長壽命和靈活的安裝方式,成為了眾多應(yīng)用場合的首選。然而,面對市場上琳瑯滿目的拉線編碼器產(chǎn)品,如何挑選一款符合自己需求的編碼器,成為了許多工程師和采購人員面臨的挑戰(zhàn)。本文將詳細(xì)介紹
    的頭像 發(fā)表于 01-07 15:53 ?1195次閱讀

    絕對值編碼器是什么?有哪些特點呢

    ,探索它的奧秘。 ?一、絕對值編碼器的定義 ? ? ? ? ?絕對值編碼器是一種能夠直接輸出對應(yīng)于被測量軸的絕對位置值的編碼器。與增量式編碼器不同,絕對值
    的頭像 發(fā)表于 12-17 09:07 ?2305次閱讀

    編碼器的種類全解析

    編碼器的種類按工作原理分類 光電式編碼器簡述: 光電式編碼器由一個中心有軸的光電碼盤,其上有環(huán)形通、暗的刻線,有光電發(fā)射和接收器件讀取,獲得四組正弦波信號組合成 A、B、C、D,每個正
    的頭像 發(fā)表于 12-11 16:57 ?3808次閱讀
    <b class='flag-5'>編碼器</b>的種類全解析