日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

如何在XC8中使用PIC IO引腳

454398 ? 來(lái)源:工程師吳畏 ? 2019-07-26 09:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

原理圖

如何在XC8中使用PIC IO引腳

配置位

大多數(shù)PIC程序在main.c文件的最頂部都有一個(gè)配置代碼塊。大部分內(nèi)容在相關(guān)之前不會(huì)被覆蓋,但重要的是在main.c文件中放入相同的代碼(如下所示)。

原因是PIC具有硬件(例如看門狗定時(shí)器)可以重置設(shè)備,這可能會(huì)導(dǎo)致意外的結(jié)果。因此,此處的配置代碼完全禁用所有這些額外功能,以確保它們不會(huì)妨礙您!

但是如果您很好奇,可以通過(guò)單擊生產(chǎn)》設(shè)置配置位來(lái)生成自己的配置代碼。

這將打開以下窗口,可用于更改位。完成所有更改后,單擊“生成源代碼以輸出”。然后,這將在輸出窗口中生成可以復(fù)制到主文件的代碼!

配置振蕩器

當(dāng)我們用C編寫程序時(shí),有些事情我們不必考慮,例如計(jì)算機(jī)將如何與鍵盤對(duì)話或CPU正在使用什么振蕩器。但是,微控制器與日常計(jì)算機(jī)不同,它們需要一定程度的配置才能正常運(yùn)行。那么我們需要配置什么才能使PIC運(yùn)行?通常,在運(yùn)行主循環(huán)之前需要執(zhí)行兩個(gè)主要的配置代碼:振蕩器配置和I/O配置。

PIC器件由許多不同的模塊組成,包括定時(shí)器,存儲(chǔ)器和I/O外設(shè),但最重要的是CPU。 CPU或中央處理單元是實(shí)際以指令形式執(zhí)行操作的電路。當(dāng)我們?yōu)檫\(yùn)行的芯片創(chuàng)建C程序時(shí),編譯器將C程序轉(zhuǎn)換為PIC的CPU可以理解的指令。與現(xiàn)有的其他CPU一樣,PIC中的CPU以離散的步驟工作,而不是瞬間完成。要使CPU執(zhí)行這些步驟(運(yùn)行程序),需要一個(gè)時(shí)鐘源。該時(shí)鐘源可以來(lái)自外部振蕩器,晶振,甚至是PIC內(nèi)部的內(nèi)部振蕩器。為了簡(jiǎn)化電路,這里的大多數(shù)項(xiàng)目都會(huì)將PIC配置為使用內(nèi)部振蕩器。

在PIC芯片上配置振蕩器要求我們調(diào)用一些特定指令并配置特定配置位。根據(jù)您使用的PIC,這將有所不同,因此本文中的代碼僅考慮PIC16F819。我們的主文件(在上一篇文章中創(chuàng)建)中的第一個(gè)任務(wù)是確保我們的振蕩器配置位設(shè)置為使用內(nèi)部振蕩器。

PIC16F819內(nèi)部振蕩器配置

設(shè)置該位不能配置振蕩器運(yùn)行的速度;它只告訴PIC它將運(yùn)行內(nèi)部振蕩器。

下一步是設(shè)置振蕩器的速度。由于PIC會(huì)逐步執(zhí)行指令,并且這些步驟發(fā)生在來(lái)自振蕩器的脈沖上,因此更快的振蕩器將導(dǎo)致更快的PIC,這意味著它將能夠每秒執(zhí)行更多指令。但有多少? PIC16和PIC18器件通常需要四個(gè)時(shí)鐘周期來(lái)執(zhí)行指令,因此經(jīng)驗(yàn)法則是將振蕩器速度除以4,這就是PIC每秒指令的速度。

例如一個(gè)工作在8MHz的PIC每秒可以執(zhí)行大約200萬(wàn)條指令,而工作在64MHz的PIC每秒可以執(zhí)行1600萬(wàn)條指令。

那么,我們?nèi)绾闻渲盟俣??這取決于每個(gè)PIC,但通常有一個(gè)名為OSCCON的寄存器可用于調(diào)整速度。找出所涉及寄存器的最佳方法是查看振蕩器配置章節(jié)下的器件數(shù)據(jù)表。以下是PIC16F819數(shù)據(jù)手冊(cè)中的摘錄,描述了第38頁(yè)上的不同速度(PDF)。

我們將配置我們的設(shè)備以8MHz運(yùn)行,要做到這一點(diǎn),我們需要將IRCF設(shè)置為111.在XC8中,可以使用它們的名稱直接訪問(wèn)寄存器,可以使用位和點(diǎn)指令訪問(wèn)特定位,并且可以訪問(wèn)一組位(例如IRCF)作為單個(gè)值,如下所示。

OSCCON = 0b01110000(為整個(gè)OSCCON寄存器賦值)

OSCCONbits.IRCF = 0b111(將三個(gè)IRCF位分配給111)

OSCCONbits.IRCF0 = 1(為IRCF0指定二進(jìn)制值1)

在我們的代碼中,我們將使用以下指令將振蕩器設(shè)置為8MHz:

配置和使用I/O端口

為了使我們的PIC能夠與外部電路進(jìn)行交互,它需要能夠讀取和寫入其I/O引腳的數(shù)據(jù)。在處理PIC16F819上的I/O端口時(shí),我們需要關(guān)注三個(gè)寄存器:

TRISA和TRISB寄存器(端口A和端口B上引腳的方向)

PORTA和PORTB寄存器(輸入和輸出寄存器)

ADCON1寄存器(引腳是數(shù)字引腳還是模擬輸入引腳)

在我們的大多數(shù)項(xiàng)目中,我們將處理數(shù)字輸出(如LED,顯示器等),因此務(wù)必確保I/O引腳未配置為模擬輸入。為確保這一點(diǎn),我們將查看ADCON1寄存器(見第82頁(yè)(PDF))并設(shè)置相應(yīng)的PCFG位,以便與ADC相關(guān)的所有引腳都是數(shù)字引腳。

在我們的電路中,我們有一個(gè)LED輸出連接到RB2(引腳8),因此我們需要將其配置為輸出。為此,我們使用TRIS(TRISTATE)寄存器,該寄存器用于確定哪些引腳是輸入,哪些是輸出。

PIC上的每個(gè)端口最多可以為8位寬(RB0-RB7用于示例)并且TRIS寄存器中的每個(gè)位對(duì)應(yīng)于輸出引腳。如果某位為1(打開),則后續(xù)引腳為輸入,如果某位為0(關(guān)閉),則該位為輸出。

例如,如果TRISB等于0,則全部為8 PORT B上的引腳將是輸出。如果TRISB = 255(二進(jìn)制為11111111),則PORT B上的所有引腳都是輸入。如果TRISB的值為0xF0(二進(jìn)制為11110000),則PORT B(RB0-RB3)中的前四個(gè)引腳為輸出,后四個(gè)引腳(RB4-RB7)為輸入。請(qǐng)記住,二進(jìn)制數(shù)首先從最右邊讀取!

有了這些知識(shí),我們需要將RB2配置為輸出。這可以使用TRISB寄存器名稱并訪問(wèn)TRISB2位來(lái)完成,如下所示。

但我們?nèi)绾巫x寫I/O銷?這在其他PIC上可能略有不同,但在PIC16F819上我們使用PORT寄存器,我們?cè)俅问褂梦缓忘c(diǎn)訪問(wèn)各個(gè)引腳!

端口引腳不限于一次讀取一個(gè)。您可以改為對(duì)整個(gè)PORT寄存器進(jìn)行讀寫操作。這意味著您可以將PORT用作8位輸入/輸出端口,這在與字母數(shù)字LCD顯示器等設(shè)備交互時(shí)非常有用。

您可能想要記住的一個(gè)簡(jiǎn)潔功能是您可以隨時(shí)配置I/O引腳!一分鐘你的引腳可能是一個(gè)輸入引腳,下一個(gè)它可能是一個(gè)輸出!重要的是你設(shè)置了TRIS位的正確值。

示例程序

本示例程序配置PIC16F819讀取連接到其引腳RA0(引腳17)的觸覺開關(guān),然后打開/關(guān)閉RB2上的LED(引腳) 8),取決于開關(guān)的狀態(tài)。

雖然這個(gè)例子看起來(lái)很基本,但你現(xiàn)在應(yīng)該可以編寫一個(gè)PIC設(shè)備來(lái)運(yùn)行你的C程序和讀/寫端口。這已經(jīng)允許您與市場(chǎng)上的大多數(shù)硬件接口,并且您可以開始與您自己的電路和項(xiàng)目進(jìn)行交互!

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

    關(guān)注

    8

    文章

    512

    瀏覽量

    91251
  • XC8
    XC8
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    何在 Linux 中使用 imx8mm

    Hi, 我們?cè)?Linux 中使用 imx8mm(4x Cortex A53)。因此,我們的設(shè)備樹 dts 包括 imx8mm.dtsi (https://elixir.bootlin.com
    發(fā)表于 04-29 08:26

    T8xC5121 8 位微控制器:特性、功能與應(yīng)用全解析

    T8xC5121 8 位微控制器:特性、功能與應(yīng)用全解析 在電子設(shè)計(jì)領(lǐng)域,一款性能卓越的微控制器往往能為項(xiàng)目帶來(lái)事半功倍的效果。T8xC5121 作為一款高性能的 8 位微控制器,融合
    的頭像 發(fā)表于 04-08 15:00 ?241次閱讀

    深入解析Microchip PIC16F8X系列微控制器

    深入解析Microchip PIC16F8X系列微控制器 在電子工程領(lǐng)域,微控制器是眾多項(xiàng)目的核心組件,其性能和特性直接影響著整個(gè)系統(tǒng)的表現(xiàn)。今天,我們將深入探討Microchip的PIC16F8
    的頭像 發(fā)表于 04-08 09:10 ?730次閱讀

    何在 S32 配置工具添加 ADC 并在 Simulink 中使用?

    對(duì)于 S32K3,如何在 S32 配置工具添加 ADC 并在 Simulink 中使用?
    發(fā)表于 04-07 07:09

    基于 AT8xC51SND1C 的單芯片解決方案:功能、應(yīng)用與設(shè)計(jì)要點(diǎn)

    基于 AT8xC51SND1C 的單芯片解決方案:功能、應(yīng)用與設(shè)計(jì)要點(diǎn) 在當(dāng)今數(shù)字化音頻和多媒體應(yīng)用的浪潮,對(duì)高效、集成度高的解決方案的需求日益增長(zhǎng)。AT8xC51SND1C 系列單芯片閃存
    的頭像 發(fā)表于 04-05 16:50 ?1125次閱讀

    Atmel TS8xC51Rx2:高性能8位微控制器的卓越之選

    Atmel TS8xC51Rx2:高性能8位微控制器的卓越之選 在電子工程領(lǐng)域,微控制器是眾多應(yīng)用的核心。Atmel的TS8xC51Rx2系列微控制器以其高性能和豐富的特性,為工程師們提供了強(qiáng)大
    的頭像 發(fā)表于 04-05 15:10 ?675次閱讀

    8XC51FX:高性能8位單片機(jī)的全方位解析

    的特點(diǎn)、功能以及使用的注意事項(xiàng)。 文件下載: EE80C51FA24SF88.pdf 一、產(chǎn)品概述 8XC51FX是一系列高性能的CHMOS單芯片8位微控制器,包括87C51FA、83C51FA
    的頭像 發(fā)表于 03-29 13:15 ?366次閱讀

    Infineon XC87xCLM 8位單片機(jī):功能、特性與應(yīng)用深度解析

    Infineon XC87xCLM 8位單片機(jī):功能、特性與應(yīng)用深度解析 在電子工程領(lǐng)域,單片機(jī)作為核心控制部件,其性能和特性直接影響著產(chǎn)品的功能和穩(wěn)定性。Infineon的XC87xCLM
    的頭像 發(fā)表于 03-29 12:15 ?385次閱讀

    英飛凌XC835/836 8位單片機(jī):特性、參數(shù)與應(yīng)用解析

    英飛凌XC835/836 8位單片機(jī):特性、參數(shù)與應(yīng)用解析 在當(dāng)今的電子設(shè)計(jì)領(lǐng)域,單片機(jī)作為核心控制元件,其性能和特性對(duì)整個(gè)系統(tǒng)的設(shè)計(jì)和運(yùn)行起著至關(guān)重要的作用。英飛凌的XC835/836 8
    的頭像 發(fā)表于 03-29 12:05 ?378次閱讀

    Infineon XC822/824 8位單片機(jī):特性、參數(shù)與應(yīng)用解析

    Infineon XC822/824 8位單片機(jī):特性、參數(shù)與應(yīng)用解析 在電子設(shè)計(jì)領(lǐng)域,選擇一款合適的單片機(jī)至關(guān)重要。Infineon的XC822/824 8位單片機(jī),以其豐富的特性和
    的頭像 發(fā)表于 03-29 12:05 ?321次閱讀

    數(shù)據(jù)采集IO卡設(shè)計(jì)原理圖:136-KC705E增強(qiáng)版基于FMC接口的 Kintex-7 XC7K325T PCIeX8 接口卡

    FMC子卡模塊, Kintex-7 XC7K325T板卡, 高速信號(hào)處理, 軟件無(wú)線電處理平臺(tái), 數(shù)據(jù)采集IO
    的頭像 發(fā)表于 02-14 10:27 ?281次閱讀
    數(shù)據(jù)采集<b class='flag-5'>IO</b>卡設(shè)計(jì)原理圖:136-KC705E增強(qiáng)版基于FMC接口的 Kintex-7 <b class='flag-5'>XC</b>7K325T PCIeX<b class='flag-5'>8</b> 接口卡

    深入解析英飛凌XC835/836 8位單片機(jī):特性、參數(shù)與應(yīng)用考量

    深入解析英飛凌XC835/836 8位單片機(jī):特性、參數(shù)與應(yīng)用考量 在當(dāng)今的電子設(shè)計(jì)領(lǐng)域,單片機(jī)作為核心控制元件,廣泛應(yīng)用于各種電子設(shè)備。英飛凌的XC835/836
    的頭像 發(fā)表于 02-10 11:05 ?724次閱讀

    何在AMD Vitis Unified IDE中使用系統(tǒng)設(shè)備樹

    您將在這篇博客中了解系統(tǒng)設(shè)備樹 (SDT) 以及如何在 AMD Vitis Unified IDE 中使用 SDT 維護(hù)來(lái)自 XSA 的硬件元數(shù)據(jù)。本文還講述了如何對(duì) SDT 進(jìn)行操作,以便在 Vitis Unified IDE
    的頭像 發(fā)表于 11-18 11:13 ?3363次閱讀
    如<b class='flag-5'>何在</b>AMD Vitis Unified IDE<b class='flag-5'>中使</b>用系統(tǒng)設(shè)備樹

    何在VS code配置Zephyr集成開發(fā)環(huán)境

    上一篇文章介紹了如何在VS code中使用瑞薩官方插件為RA芯片創(chuàng)建項(xiàng)目與項(xiàng)目調(diào)試,相信大家對(duì)RA在VS code的開發(fā)有了基礎(chǔ)的了解。
    的頭像 發(fā)表于 11-05 14:46 ?1821次閱讀
    如<b class='flag-5'>何在</b>VS code<b class='flag-5'>中</b>配置Zephyr集成開發(fā)環(huán)境

    何在vivadoHLS中使用.TLite模型

    本帖欲分享如何在vivadoHLS中使用.TLite模型。在Vivado HLS中導(dǎo)入模型后,需要設(shè)置其輸入和輸出接口以與您的設(shè)計(jì)進(jìn)行適配。 1. 在Vivado HLS項(xiàng)目中導(dǎo)入模型文件 可以
    發(fā)表于 10-22 06:29
    安丘市| 平阳县| 漳平市| 安多县| 西乌珠穆沁旗| 赤城县| 余姚市| 辽阳市| 咸宁市| 白山市| 密山市| 台湾省| 滕州市| 饶河县| 弥渡县| 游戏| 惠安县| 军事| 海伦市| 池州市| 日土县| 福建省| 乾安县| 察雅县| 图们市| 德清县| 自治县| 凌海市| 合肥市| 永吉县| 华亭县| 遂宁市| 晴隆县| 旬阳县| 深泽县| 乃东县| 巩留县| 和林格尔县| 保亭| 孟州市| 曲阜市|