PIC单片机之I/O控制

article/2025/10/24 11:12:32

 I/O控制对于单片机而言是最基础最核心的东西,其实单片机除了AD DA 转换之外的事情。其他大部分的事情I/O口都能做的到。I/O控制简单却能千变万化。

 单片机在大部分应用中做的事情,莫过于 输入高低电平 ,输出高低电平。就是通过这简单的控制电平来实现大多数的应用控制。

 什么是I/O口?

 什么是I/O  就是 IN/OUT 就是 输入/输出。

 I/O具体能做什么呢?

     如果你是刚刚步入电子的新手,那你最好要知道一下I/O口具体能做什么。感性的认识对你的学习是很有帮助的。I/O口输出一个高(低)电平可以用来点亮一个LED灯,可以接通过一个继电器,来开启电机,来开启音响。开启许多的东西,也可以用于通信等等。输入一个高(低)电平 可以用来检测按键,检测红外线输入 ,检测信号,等等。 

 I/O口和寄存器之间的对应关系

首先看下一个芯片的原理图。 注意 RA5~RA0这些口

在看看RA口的方向控制寄存器TRISA

   

在看看RA口的数据控制寄存器PORTA

   

 可以看出 芯片原理图中的第二脚 RA5 口 和 TRISA 寄存器中的TRISA5位对应 和PORTA寄存器中的 RA5位对应的,RA4~RA0都是如此对应的。

 也就是说TRISA 寄存器中的TRISA5位 和PORTA寄存器中的 RA5位来控制 第二脚的RA5口。

 如何控制I/O口?

 其实控制单片机,就是控制寄存器上的各个位,设置成高设置成低。就好像给你一台机器有  8个的按钮。然后你根据说明书上介绍,根据你的需要按下 或者松开相应的按键 来得到你想得到的功能。只不过我们用的不是手而是C语言来按下和松开这些按键。 

 TRISA寄存器是方向控制寄存器。就是控制I/O输入还是输出。比如 TRISA寄存器中的TRISA5位 设置成为0 RA5口是输出 设置成为1 RA5口为是输入。

  C语言的具体实现:

   将RA5口设置成输入的几种方式

    第一种   TRISAbits.TRISA5=1; //简单明了,只影响一个位 设置单个I/O比较方便

    第二种   TRISA |= 0x20;//不够明了,只影响一个位

    第三种   TRISA  =0x20;//不够明了,影响到其他位,设置多个I/O用比较方便

  将RA5口设置成输出的几种方式

    第一种   TRISAbits.TRISA5=0;

    第二种   TRISA &= ~0x20;

    第三种   TRISA  =0x00;

 PORTA寄存器是数据控制寄存器。如果是输出状态:PORTA寄存器中的RA5位为0  则RA5口输出低电平,PORTA寄存器中的RA5位为1  则RA5口输出高电平。

                                                              如果是输入状态:PORTA寄存器中的RA5位为0  则说明RA5口当前为低电平,PORTA寄存器中的RA5位为1  则说明RA5口当前为高电平。

实例程序:

  如果在RA5口上连接着一个LED灯。我们将如何点亮他呢?

/* 

开发环境为 MPLAB X IDE,芯片型号为PIC16LF1823

*/

#include<pic.h>  //头文件
__CONFIG(FOSC_INTOSC&WDTE_OFF&PWRTE_ON&MCLRE_OFF&CP_ON&CPD_OFF&BOREN_ON

                   &CLKOUTEN_OFF&IESO_ON&FCMEN_ON);//这个要放到上一行去
__CONFIG(PLLEN_OFF&LVP_OFF) ;//配置位
int main(int argc, char** argv) {


    ANSELA=0;//将RA口全部设置成数字口,
    TRISAbits.TRISA5=0;//设置RA5为输出
    PORTAbits.RA5=1;//设置输出高电平点亮LED

    while(1);//程序在此无限循环
}

头文件:程序中只要有了#include<pic.h>编译器就会去自动找到相应型号的头文件,头文件中定义好了每个寄存器的地址,位的地址等。

配置位:这是十分重要即使程序没有任何错误 配置位没配置好程序一样不能用。具体如何配置可以看( 基于MPLAB X IDE配置位设置讲解 )。

模拟数字口:在使用I/O口的时候要确保对应的I/O口是被设置成数字口的。



  

  


                                           


  

 

  

 


http://chatgpt.dhexx.cn/article/ELwtBMFA.shtml

相关文章

PIC单片机入门_中断系统详解

1.中断的基本概念 当单片机正在执行程序时&#xff0c;出现了某些特殊状况&#xff0c;例如定时时间到、有键盘信号输入等&#xff0c;此时CPU须要暂时停止当前的程序&#xff0c;而转去执行处理这些事件的程序&#xff0c;待执行完这些特定的程序之后&#xff0c;再返回到原先…

PIC单片机学习笔记

视频内容来自哔哩哔哩-【单片机】PIC单片机F877A视频教程&#xff08;郭天祥&#xff09; 1、简介 本视频使用的单片机是PIC16F877A &#xff08;公司用的的dsPIC33FJ128GP306&#xff09; dsPIC33——16位单片机 中档产品仅有35条汇编语言——意外之喜 哈佛总线结构、RI…

PIC单片机学习—USART串口

PIC单片机学习—USART串口 最近做了几个项目都用到了PIC单片机&#xff0c;在这几个项目之前我只用到了51单片机和STM32来做控制类的项目&#xff0c;用PIC单片机的时候发现使用的时候和51单片机还是有所区别&#xff0c;有许多小坑需要注意&#xff0c;所以决定写几篇针对新手…

PIC单片机应用开发实践教程(四): MPLAB X IDE Debug

源码基于 PIC16F15355开发板&#xff0c;想了解详情&#xff0c;请点 PIC16F15355开发板 当程序写好后&#xff0c;我们就可以使用在线调试功能&#xff0c;验证代码的正确性。 1、打开工程 File - Open Project &#xff0c;打开我们要调试的工程 2、打开工程属性&#xf…

PIC单片机

PIC芯片所用编译器是MPLAB X IDE&#xff0c;刚开始接触PIC单片机&#xff0c;也是一脸茫然&#xff0c;然后查阅资料逐渐了解、运用编译器&#xff0c;这里我就不说编译器怎么使用了&#xff0c;下面我将以PIC12LF1822芯片为例&#xff0c;简单来说说我见解&#xff0c;分别说…

PIC单片机应用开发实践教程(六): 代码配置器(MCC)

源码基于 PIC16F15355开发板&#xff0c;想了解详情&#xff0c;请点 PIC16F15355开发板 1、简介 MPLAB 代码配置器&#xff08;MPLAB Code Configurator&#xff0c;MCC&#xff09;通过图形用户界面&#xff08;Graphical User Interface&#xff0c;GUI&#xff09;生成驱…

【PIC】单片机基本概述

1. 公司 PIC 单片机是 Microchip&#xff08;微芯&#xff09; 公司的产品&#xff0c;始于1989年。 2. 精简指令集技术 传统的单片机采用复杂指令集&#xff08;Complex Instruction Set Computer, CISC&#xff09;结构&#xff0c;通常有50~110条。而 PIC 采用精简指令集&…

PIC单片机应用开发实践教程(二): 新建工程

源码基于 PIC16F15355开发板&#xff0c;想了解详情&#xff0c;请点 PIC16F15355开发板 1 打开MPLAB X IDE File---New Project Microchip Embedded --- Standalone Project 选择所用MCU对应型号 点击 Finish 后&#xff0c;工程就建好了 2 添加main.c文件 3 添加main.h文件 …

PIC单片机的入门认识(以PIC12为学习目标)

1.学习PIC12针脚定义 针脚1及针脚8可接电源5V和地线。针脚2.3可外接晶振。 针脚4为复位脚&#xff0c;当单片机正常运行时接高电平&#xff0c;若有一个低电平输入&#xff0c;单片机便复位。 针脚5则为单片机的I/O脚&#xff0c;可控制它为输入或输出&#xff0c;输入0&…

PIC单片机应用开发实践教程(七):PIC16F153xx——时钟使用

源码基于 PIC16F15355开发板&#xff0c;想了解详情&#xff0c;请点 PIC16F15355开发板 PIC16F15355 内部晶振框图如下&#xff0c;从框图中我们知道MCU时钟来源有3个&#xff1a;外部时钟&#xff0c;内部时钟&#xff0c;Timer1 内部时钟源&#xff08;INTERNAL CLOCK SOUR…

PIC单片机入门教程(二)—— 安装集成开发环境(MPLAB X IDE)

PIC单片机入门教程&#xff08;二&#xff09;—— 安装集成开发环境&#xff08;MPLAB X IDE&#xff09; 教程中使用的电脑运行Windows 10 专业版 64位系统 1、下载 MPLAB X IDE v4.05 历史版本&#xff1a;http://www.microchip.com/development-tools/pic-and-dspic-downl…

PIC单片机-Mplab的使用与PIC单片机介绍

内容包括Mplab IDE与Mplab X IDE的使用&#xff0c;触摸功能实践&#xff0c;PIC单片机C与汇编混合编程&#xff0c;PIC单片机介绍等。紫色文字是超链接&#xff0c;点击自动跳转至相关博文。持续更新&#xff0c;原创不易&#xff01; 目录&#xff1a; 一、Mplab IDE的使用…

PIC16F887 实战编程 单片机编程 基础实验教程

文章目录 2 PIC工程建立与仿真3 单片机基础寄存器操作&#xff1a;3.1 IO3.2 模拟输入电压读取3.3 外部中断3.4 定时器中断3.5 串口UART3.6 IIC通信 4 实际项目5 如何阅读代码6 如何把代码放到MPLAB V5.0xc8 v2.0上工作&#xff1f;6.1 短暂的回顾6.2 xc8 v2.0程序结构6.3 移植…

通俗易懂讲PIC单片机:从一窍不通到入门进步

单片机入门不难------谈PIC系列&#xff08;转自矿石收音机论坛---崂山&#xff09;十年前的老帖子&#xff0c;讲得通俗易懂&#xff0c;分享之。 请看图1 这个8条腿的小螃蟹就是我们的第一顿饭&#xff0c;只要把它吃下去&#xff0c;以后的大餐就好办了。第1、8条腿接电源 …

PIC单片机应用开发实践教程(五): 烧录器简介

源码基于 PIC16F15355开发板&#xff0c;想了解详情&#xff0c;请点 PIC16F15355开发板 ​​​​​​​ PIC单片机&#xff0c;无论是8位的10/12/16/18系列&#xff0c;还是16位PIC24/dsPIC33系列&#xff0c;常用的烧录器如下&#xff1a;PICkit3&#xff0c;PICkit4&#…

PIC单片机入门_C语言编程技术

1.为什么也是C语言&#xff1f; 用C 语言来开发单片机系统软件最大的好处是编写代码效率高、软件调试直观、维护升级方便、代码的重复利用率高等&#xff0c;因此C 语言编程在单片机系统设计中越来越广泛的运用。PIC 单片机的软件开发&#xff0c;同样可以用C 语言实现。 Micro…

PIC单片机与PIC单片机C语言编程简介

对于计算机学院与电子学院相关的同学来说&#xff0c;单片机一定不是一个陌生的概念。在大学的学习生涯中&#xff0c;经常用于教学的是MCS-51系列单片机。其实&#xff0c;除了MCS-51单片机外&#xff0c;还有一类单片机——PIC单片机。 PIC单片机&#xff0c;英文名为Periphe…

PIC单片机应用开发实践教程(三): MCU配置位与烧录

1 编译 工程建好并把相应的 .c和.h文件都加载到工程后&#xff0c;如下图 试试编译&#xff0c;如果没有语法错误&#xff0c;编译结果如下 到这里&#xff0c;是不是可以进行烧录了呢&#xff1f;不急&#xff0c;还有很重要的一个步骤&#xff0c;MCU配置位的设置&#xff0…

PIC单片机应用开发实践教程(一):MPLAB X IDE 开发环境安装

源码基于 PIC16F15355开发板&#xff0c;想了解详情&#xff0c;请点 PIC16F15355开发板 1 准备电脑一台 2 下载开发环境 MPLAB-X-IDE 点Download后&#xff0c;自动下载。 3 下载C编译器&#xff08;以8位MCU用的xc8编译器为例&#xff09; MPLAB XC8 Compiler 4 安装MP…

PIC单片机入门教程(一)—— 准备工作

PIC单片机入门教程&#xff08;一&#xff09;—— 准备工作 1、电脑一台&#xff08;推荐运行Windows 7 旗舰版 64位系统&#xff09; 2、选择合适的烧录/调试工具 2.1 “Device Support.html”文件列举了所有器件能支持哪些烧录/调试工具&#xff0c;文件官方版本说明包里 下…