产品概述

单片机的ad口 单片机IO口不能输出高电平

小编 2024-11-24 产品概述 23 0

单片机IO口不能输出高电平

今天在做单片机项目时遇到了一个这样的问题,所用的单片机是PIC的,但是IO/P3.3口不能输出高电平。(PIC的叫RC3)

这次用的板子是别的公司的,最开始给它烧我们的程序,单片机每一个引脚都可以按照程序执行,因为后来需要用到延时,而最开始的时钟频率不便于计算延时,于是我在原有的程序上加了内部时钟的频率,选择的是4M,因为PIC单片机每4个时钟周期运行一条指令,这样便于计算时间。

IO口不能输出

按照上述方法执行之后,结果尽不如人意,这时候PIC单片机的IO口竟然连高电平都不能输出,怎么办呢?最开始是怀疑单片机的问题,于是用相同的程序给另外一块板子烧进去,结果还是一样的,之后试过很多办法都一样的结果,即使把时钟的配置去掉之后,IO口还是不能输出高电平,怎么办呢?好在我们这现在来了一位外聘专家S,他是属于大师级别一类人,尤其是对于PIC单片机。

AD采集

我把问题复述给S,他第一句话问我关AD采集了吗?我说,没有开AD采集啊。因为之前用的单片机没出现过,这次最开始编程的时候就没有注意这个AD采集,最后我把RC3上的AD采集口关掉之后,单片机又可以完美的输出高电平了。

专家就是专家,看待问题总能命中要害,这一点我的道行还很薄,同时我所需要的是去闭关沉淀。

写这一篇文章主要给给自己共勉,以后少犯类似的错误。

单片机IO口不够用,如何用一根线识别16个按键?方法原来在这里!

学过单片机的都知道,按键在开发项目中是必不可缺少的东西,而大多数人都是采用行列式来识别矩阵键盘,这样很容易浪费IO口资源,不利于大型项目的开发。

这里介绍一种用AD转换接口来识别键盘的方法,由于现在的大多数单片机都带A/D转换,这样使用起来就方便多了,电路图如下图所示:

单片机只要识别AD转换结果的高四位就行。这里设计的关键就在于各段的电压变化只影响A/D转换结果的高四位。上边的VCC是接的AD的参考电压。

例如:一个12位的AD,读出的结果是0x0E08,那么这个按键就是15。下边是用C8051F410单片机识别的程序

void anjianshibie() //按键识别函数

{

unsigned int ad_val;

ad_val=Adc_410( ); //读出一个AD值

while(ad_val<0x0f88) //这里避免上限电压,如果不加这一句识别的按键永远是F

{

delayms(10); //延时消抖

ad_val=Adc_410( ); //再次判断

if(ad_val<0x0f88)

{

Key_AD=(unsigned char)(ad_val>>8)&0x0f; //读出按键值(高4位)

Display_5((uint)Key_AD);} //显示按键

}

}

下面是PCB设计图片和制作图片。不过这种识别键盘的方法有利也有弊,唯一缺点是使用长时间会造成焊点虚焊,一个焊点虚焊就会影响整个按键识别的准确度。以前的显像管电视就是采用这种识别键盘的办法,只要有一个按键接触不良其他按键就会乱识别,常常是按着音量加它就换台。

PCB

相关问答

单片机AD口 检测电压?

内部晶体管处于开漏状态,无输出电压。就算可以测的也是感应电压,不是有效电压。正常使用AD口需要一个有效的模拟量才可以。内部晶体管处于开漏状态,无输出电...

利用 单片机 串行 怎么跟 ad 转换芯片连接-ZOL问答

这个得具体看你AD芯片的型号啊,不同的AD可能接口是不一样的。一般是SPI接口和并行接口的多。而且,如果是高速的AD芯片,那就只能是并行接口了,就是有多少位数据...

单片机的 I/O接口能输入或输出模拟信号吗? - 桃子今天有点酸 ...

单片机的I/O接口,如果该I/O口有AD功能就可以,以模拟量信号输入,如果该I/O口有PWM功能就可以,以PWM调制信号输出,或者通过滤波以...

单片机ad 转换器锯齿波产生原理?

单片机AD转换器通过逐渐增加或逐渐减小的数字信号来产生锯齿波形。具体原理如下:1.单片机AD转换器产生锯齿波形的原理是...单片机AD转换器锯齿波产生原理是...

PIC 单片机 IO 什么时候设置为输入,什么时候设置为输出,这个输入输出的我好像还不是很明白原理?

如果你想知道某个引脚是高电平或低电平,则这个引脚就得设置为输入。还有如果作为AD转换,相应的引脚就得做为输入。设置引脚是输出或输入,就是把对应的TRISx的...

ad 采样pcb布局靠近 单片机 吗?

模拟地和数字地之间用一个0欧的电阻或者磁珠相连,模拟信号尽量不要从芯片底部走线模拟地和数字地之间用一个0欧的电阻或者磁珠相连,模拟信号尽量不要从芯片底...

STC12C5A60S2 单片机 中, AD 转换有几个通道?转换的二进制位数为多少?

可转换的模拟通道为4通道是指AD转换器具备四个模拟量输入端口,四个端口可能是同步转换,也可能是分时转换,具体是哪种情况要看器件的资料。转换位数可变的AD一...

如何用stc 单片机 内部 ad 采集多路交流信号?

用stc单片机内部ad采集多路交流信号,有两种办法:一、用两个AD转换芯片,两路模拟量分别接一个。用单片机控制两个AD芯片同时启动转换,这样基本可以实现采...

8位 单片机 可以加多路 ad 采集芯片吗?

8位单片机可以加多路AD采集芯片。8位单片机加多路AD采集芯片实现方法有两种:1、如果8位单片机自带AD通道允许,则可以通过自带AD通道实现;2、如果AD通道不允...

图中的6位数码管是怎么连接到51 单片机 I/O 上啊-ZOL问答

8根段信号直接连单片机IO,例如P1口,6个位信号分别用PNP型三极管例如8550驱动,三极管发极接电源,集电极接位,基极通过一个220欧电阻接单片机IO口。就可以了,驱动...

猜你喜欢