女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

第1步:材料

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

軟件:

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

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

硬件:

DC電源

香蕉電纜

面包板

電線

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

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

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

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

帶旋轉編碼器的設備*(Pololu項目#2269)

10歐姆電阻器

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

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

示波器探頭x 2(可選)

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

步驟2:電源設置

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

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

步驟3:面包板設置

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

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

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

Pin 11至+ 5V

Pin 12至+ 0V

Pin 31至+ 0V

Pin 32至+ 5V

Pin 1至 一側 100歐姆電阻(數據表中未提及)

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

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

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

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

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

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

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

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

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

第4步:編碼器設置

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

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

紅線:至+ 5V

黑線:至+ 0V

綠線:至+ 0V

藍線:至+ 5V

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

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

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

步驟5:編程設置

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

MPLAB X配置:至此,我們準備打開MPLAB X并設置我們的項目。請參閱以下步驟:

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

選擇設備:PIC18F4520

選擇硬件工具:ICD3

選擇編譯器:XC8

名稱并保存您的項目

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

第6步:編程

此時,我們將專門使用MPLAB X IDE。要開始使用,請注意MPLAB IDE窗口左側標題為 Projects 的面板。在此面板中,創建代碼:

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

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

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

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

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

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

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

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

程序:

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

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

最近修訂:1/3/14

作者:Carson Miller

撰寫:PIC18F4525(當前版本)

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

#define INPUT 1

#define OUTPUT 0

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

//PIC18F25K22配置位設置

#include //包括PIC硬件映射

#include“ GenericTypeDefs.h”//包括標準變量類型

//#pragma config語句應位于

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

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

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

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

//CONFIG2L

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

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

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

//CONFIG2H

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

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

//CONFIG3H

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

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

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

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

//CONFIG4L

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

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

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

//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//引導塊代碼保護位(引導塊(000000-0007FFh)沒有代碼保護)

#pragma config CPD = OFF//數據EEPROM代碼保護位(數據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//引導塊寫保護位(引導塊(000000-0007FFh)未寫保護)

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

//CONFIG7L

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

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

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

//CONFIG7H

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

》//虛擬變量設置

UINT距離= 0;

CHAR方向= 0;

CHAR錯誤= 0;

void configure(void)

{

//ADC Setup

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

//振蕩器設置

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

//中斷設置

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

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

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

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

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

RCONbits.IPEN = 0;//禁用中斷優先級

TRISBbits.TRISB0 = INPUT;//將INT0設置為輸入

TRISBbits.TRISB1 = INPUT;//將INT1設置為輸入

}

void main()

{

configure();

while(1)

{

//Program Loop

}

}

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

void中斷ISR()

{

//檢查它是否是中斷0

(INTCONbits.INT0IF = = 1)

{

distance ++;

INTCONbits.INT0IF = 0;//清除中斷標志

錯誤= 1;

}

步驟7:運行程序和調試

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

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

項目完成!

如果你已經到了最后并且沒有工作項目,請不要擔心。有許多事情要嘗試:

萬用表:檢查以確保您的微控制器和電機/編碼器在適當的位置接收+ 5V和+ 0V(接地)

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

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

責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6067

    文章

    44989

    瀏覽量

    650349
  • 編碼器
    +關注

    關注

    45

    文章

    3796

    瀏覽量

    138012
  • 編程
    +關注

    關注

    88

    文章

    3689

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    編碼器常見的故障詳細說明

    編碼器作為自動化控制系統中的重要組件,負責將機械位移轉換為電信號,以供上位、PLC或驅動等設備讀取和處理。然而,在使用過程中,編碼器可能
    的頭像 發表于 04-16 18:28 ?1103次閱讀

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

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

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

    編碼器作為自動化控制系統中的重要組件,負責將機械位移轉換為電信號,以供上位、PLC或驅動等設備讀取和處理。然而,在使用過程中,編碼器可能
    的頭像 發表于 03-07 11:05 ?1575次閱讀

    DISCOAA編碼器性質特點

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

    DISCOAA編碼器類型功能

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

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

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

    AN4121-采用PIC16F單片機進行系統電源控制

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

    編碼器與位置控制系統的結合應用

    。它利用磁阻或元件對變化的磁性材料的角度或位移值進行測量,當磁性材料角度或位移發生變化時,會引起一定電阻或電壓的變化。通過單片機處理后,可以輸出脈沖信號或模擬量信號,從而達到測量的目的。磁編碼器具有高精度、
    的頭像 發表于 11-23 09:26 ?953次閱讀

    增量編碼器與絕對值編碼器的區別

    增量編碼器與絕對值編碼器的區別:增量編碼器與絕對值編碼器在精度特點對比 增量編碼器的精度取決于脈沖的數量和測量的細分程度,通常情況下,其精度
    的頭像 發表于 11-18 16:38 ?2488次閱讀
    增量<b class='flag-5'>編碼器</b>與絕對值<b class='flag-5'>編碼器</b>的區別

    二進制編碼器與絕對編碼器的區別

    編碼器是工業自動化和機器人技術中不可或缺的組件,用于將機械位置或運動轉換為電信號。二進制編碼器和絕對編碼器是兩種常見的編碼器類型,它們各自有著獨特的特點和應用場景。 二進制
    的頭像 發表于 11-06 09:54 ?1286次閱讀

    單片機編程語言有哪些選擇

    單片機(Microcontroller Unit,MCU)編程是指為單片機編寫程序的過程,這些程序控制單片機的行為和功能。單片機廣泛應用于嵌
    的頭像 發表于 11-01 14:13 ?2416次閱讀

    磁電編碼器和光電編碼器的區別

    磁電編碼器和光電編碼器是兩種不同類型的編碼器,它們在原理、結構、性能和應用領域上都有所不同。 磁電編碼器和光電編碼器的區別 1. 引言
    的頭像 發表于 10-12 09:54 ?3090次閱讀

    PIC單片機的優勢和不足之處

    的核心優勢在于其CPU采用的RISC結構,這一結構精簡而高效,分別包含33、35、58條指令,構成了精簡指令集。這種設計不僅減少了指令的數量,還提高了指令的執行效率。 同時,PIC單片機采用了Harvard雙總線結構,使得程序存儲
    的頭像 發表于 09-25 17:22 ?1007次閱讀

    stm32單片機用什么軟件編程

    STM32單片機是一種廣泛應用于嵌入式系統領域的微控制,具有高性能、低功耗、豐富的外設接口等特點。要對STM32單片機進行編程,需要選擇合
    的頭像 發表于 09-02 10:16 ?3462次閱讀

    MT6501在線編程編碼IC:光電編碼器的理想替代品

    在現代工業控制和自動化領域,編碼器是一種常見的傳感,用于將機械運動轉化為電信號,以實現位置、速度和方向的檢測和控制。傳統的光電編碼器雖然技術成熟,但在一些特殊應用場景中,可能存在著一些局限性。而 MT6501 在線
    的頭像 發表于 07-31 17:18 ?964次閱讀