用简单控制电平来实现大多数的应用控制

单片机在大部分应用中做的事情,莫过于输入高低电平 ,输出高低电平。就是通过这简单的控制电平来实现大多数的应用控制。
什么是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 &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 配置位:这是十分重要即使程序没有任何错误 配置位没配置好程序一样不能用。具体如何配置可以看( 基于mplab x ide配置位设置讲解 )。
模拟数字口:在使用i/o口的时候要确保对应的i/o口是被设置成数字口的。

索尼Q1仅出货110万台Xperia手机,创历史新低
脱扣曲线的分类
直流无刷电机调速原理
希立仪器荣获广东省知名品牌殊荣
米家扫拖机器人1C高清图集
用简单控制电平来实现大多数的应用控制
行业方案|数商云新能源行业SRM供应商管理解决方案
微型新能源汽车推荐,看看有你喜欢的吗?
17年的开年第一“机”红米note4x和魅族中的魅蓝5s该选谁?
四个常见的电路板质量问题
中美贸易战背后原来在争5G的主导权,为什么要争取5G网络的主导权?
“甩锅”国家电网后,特斯拉将在美国召回十万余台汽车
IC设计端EDA工具的使用
图表记录华为从中国到世界的崛起之路
什么是3D场景式消费,新兴技术如何助力发展
恩智浦半导体USB Type-C连接器
普源DG1000Z信号源,逐点生成任意波
不降低网络下还能实现5G网络节能吗
如何更健康护眼的参与线上教育,贝投影NEW F3是首选
华为联合伙伴发布首个《数据中心电力模块预制化技术规范》