Ⅰ 请问 用PIC 单片机 的 I/O 口,怎么同时设置成为输入、输出。
看来这是个比较有争议的话题哟,上面两位都说DHLFAN说的不对,我倒是有点说法了,将端口配置为模拟输入并不代表打开AD模块,ADGO没有置位嘛.并且当端口为模拟输入时候内部就等于是悬空的,因为AD模块是通过一个多路开关选择和某个通道接通的,平时不被选中的通道基本等于悬空,选中的通道也基本算是接一个几十PF的保持电容,电流几乎为0。在说说设置为普通输入和输出的问题,当设置为普通输入时,虽说此时为高阻抗,但是芯片内部的整形电路需要工作,(这个不要解释了吧?)此时你再将这个端口悬空的话,因为输入阻抗高的原因,在实际使用时内部的整形电路不断翻转,要消耗不少电流的哦,另外什么WDT BOD,不再问题范围就不说了,还有降低频率这些个地球人都知道!!什么?你不知道内部的整形电路是啥东东?好吧,我就说说,大家都知道设置为普通输入(数字输入)的端口只能读到两个状态,0、1 。但是当此端口的电压为0.5V时呢?大家都会说为0为1V时呢?大家还是说为0.为2.5V呢????大家会说为1了吧???为什么2.5V会为1?为什么1V时不为1,(当然事实上还有不同逻辑电平(特性)的输入端。什么施密特输入啊,TTL输入啊就不说了)这个时候就是靠内部的整形电路来将这个端口的电压值转换为0或者1,当设置为普通输入时这个电路就要干活了,而且是每个端口有一个,就等着消耗电流吧。
Ⅱ PIC单片机I/O口输出高电平时电压多高
PIC系列的单片机通用电压多为5V和3.3V,如果使用13V的电源系统需要加降压稳压电路,比较简单的3端稳压器就可以了。
IO输出高电压接近于电源电压,也就是5V或3.3V左右,可以驱动某些MOS管,但要有与之相匹配的栅极开通电压,4.5V开通的MOS管比较容易买到,3V以下的品种少一些;
如果负载的接口电平比较高的话,最好使用电平转换电路进行连接,比如74ls07、ULN2003等
Ⅲ PIC单片机的IO口如何操作更稳定
问题问的不清楚
我就是做这个的 ,我常用的是 PIC18F4480 对IO口进行读写操作一般都没什么问题
写程序
一般先初始化,设定IO口方向 输入还是输出 TRIS
设定IO口初态 高电平还是低电平 PORT
此步骤完成后
对IO口通常都不是直接操作 比如RA0=0;(可以这样写但不推荐)
通常的做法是设定中间变量 TEMP
在执行函数中对TEMP进行一系列赋值和运算
最终在主函数中把TEMP的值付给(比如)A口
PORTA=TEMP;
这东西没什么复杂的知识在里面,结合数据手册看 结合前辈的程序看 哪怕你C语言修为不是很高,也能写出来的
Ⅳ PIC单片机的某些I/O口没有电平变化唤醒功能,要如何让这些I/O口也能唤醒程序
PIC单片机有电平变化唤醒功能的。一般是PORTB口上可以有电平变化唤醒。(前提是这款芯片要有PORTB口,有的很简单的PIC是没有这个口的。比如PIC10系列PIC12系列。PIC16以上系列都有PORTB口的。)
其实不仅仅是PIC所有的单片机如果要从休眠模式下唤醒用的方法都是差不多的。
1. 复位(上电复位,看门狗复位等等)
2. 就是你要用到的方法。中断唤醒。比如说像这个电平变化唤醒。当你PORTB某一个或几个I/O上电平有变化。则芯片产生一个中断标志位。利用中断然后就能唤醒单片机了。
我帮你查了一款用的比较多的PIC16F886芯片。
根据数据手册它的中断唤醒有以下几种:
下列外设中断可以将器件从休眠状态唤醒:
1. TMR1 中断。Timer1 必须用作异步计数器。
2. ECCP 捕捉模式中断。
3. A/D 转换(当A/D 时钟源为FRC 振荡器时)。
4. EEPROM 写操作完成。
5. 比较器输出状态变化。
6. 电平变化中断。
7. 来自INT 引脚的外部中断
8. EUSART 间隔检测, I2C 从动模式。
Ⅳ ,PIC单片机IO口什么时候设置为输入,什么时候设置为输出,这个输入输出的我好像还不是很明白原理,
如果要用某个引脚控制一个东西,如让它高电平或低电平,则这个引脚就得设置为输出。如果你想知道某个引脚是高电平或低电平,则这个引脚就得设置为输入。还有如果作为AD转换,相应的引脚就得做为输入。设置引脚是输出或输入,就是把对应的TRISx的寄存器的位设为0为1,这个容易记住:0象OUTOUT的第一个字母,它就是输出;1象INPUT的第一个字母,它就是输入。
单片机,全称单片微型计算机(英语:Single-Chip Microcomputer),又称微控制器(Microcontroller),是把中央处理器、存储器、定时/计数器(Timer/Counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。
Ⅵ PIC单片机IO口无法控制
在PIC18系列里,PORT寄存器不是用来做输出的,LAT才是用来做输出的。如LATB=0xff;
PORT寄存器是用来读取IO的状态,而LAT其实是读-修改-写操作。
如果对PORT寄存器进行写操作,只是会将你要写的数据放到IO口的锁存器中,但并不会发送到IO上。而写LAT则是先读锁存器的数据,然后像用PORT操作那样将其修改写到IO口的锁存器中,最后发送到IO引脚上。
其实,数据手册上在IO口那一章的开始就明确指出:
“每个端口有三个与其相关的寄存器”
“TRIS寄存器(数据方向)”
“PORT寄存器(读取引脚的电平)”
“LAT寄存器(输出锁存)”
玩PIC,只要你仔细阅读对应的数据手册,你不需要看其他书籍都能弄懂。而且大部分都有官方中文版。
Ⅶ PIC单片机在读I/O口的时候需要对寄存器写一吗
对于PIC单老蔽搏片机来讲,要想读出某个I/O口的电平值,首先应该设置管脚为输入方式(对应寄存器TRISx),然后读取管脚电平值就可以了。当然如果管脚有第三功能(例如AD口或者SPI总线等)还要考虑首先要设置其为普通数并蔽字IO口。例如读取RA0口的电平值:
ANSELA = 0x00; //因为RA0一般都有AD的功能,通过设置模拟选择寄存器使RA口全为数字IO口
TRISA = 0x01; //TRISx为方向控制寄存器,0为输出,1为输入。
...//其他操作
unsigned char value = 0; //声明个变量
value = RA0; //这样就能读出RA0端口的电侍祥平值了,value的值即为读到的RA0的值
Ⅷ PIC单片机IO口无法控制
在PIC18系列里,PORT寄存器不是用来做输出的,LAT才是用来做输出的。如LATB=0xff;
PORT寄存器是用来读取IO的状态,而LAT其实是读-修改-写操作。
如果对PORT寄存器进行写操作,只是会将你要写的数据放到IO口的锁存器中,但并不会发送到IO上。而写LAT则是先读锁存器的数据,然后像用PORT操作那样将其修改写到IO口的锁存器中,最后发送到IO引脚上。
其实,数据手册上在IO口那一章的开始就明确指出:
“每个端口有三个与其相关的寄存器”
“TRIS寄存器(数据方向)”
“PORT寄存器(读取引脚的电平)”
“LAT寄存器(输出锁存)”
玩PIC,只要你仔细阅读对应的数据手册,你不需要看其他书籍都能弄懂。而且大部分都有官方中文版。
Ⅸ pic单片机上电复位后所有I/O引脚将被 成什么工作方式
复位后IO脚为输入状态。默认是普通的IO口作为数字式输入模式,就是对应tris位被配置成1。
而如果这个IO引脚复用做AD输入的话,就默认配置为模拟输入。如果还被复用为和比较器相关的引脚,那么就被配置为比较器输入。
有的IO引脚复用为MCLR上电复位引脚,那么它会根据你程序设置的配置位来决定其复位后是作为IO输入还是作为MCLR引脚。
简介
单片机也被称为单片微控器,属于一种集成式电路芯片。在单片机中主要包含CPU、只读存储器ROM和随机存储器RAM等,多样化数据采集与控制系统能够让单片机完成各项复杂的运算,无论是对运算符号进行控制,还是对系统下达运算指令都能通过单片机完成。
由此可见,单片机凭借着强大的数据处理技术和计算功能可以在智能电子设备中充分应用。简单地说,单片机就是一块芯片,这块芯片组成了一个系统,通过集成电路技术的应用,将数据运算与处理能力集成到芯片中,实现对数据的高速化处理。
Ⅹ 增强型PIC单片机IO口读取问题
设置TRIS为输入
设置ANSEL为digital
参考“http://ww1.microchip.com/downloads/en/DeviceDoc/41391D.pdf”
的120页, 12.2.2
如果都做了还不行,那应该是芯片的问题。
另外,如果要读取编程口MCLR, 那么还需要额外的设置。