单片机IO口不能输出高电平
今天在做单片机项目时遇到了一个这样的问题,所用的单片机是PIC的,但是IO/P3.3口不能输出高电平。(PIC的叫RC3)
这次用的板子是别的公司的,最开始给它烧我们的程序,单片机每一个引脚都可以按照程序执行,因为后来需要用到延时,而最开始的时钟频率不便于计算延时,于是我在原有的程序上加了内部时钟的频率,选择的是4M,因为PIC单片机每4个时钟周期运行一条指令,这样便于计算时间。
IO口不能输出
按照上述方法执行之后,结果尽不如人意,这时候PIC单片机的IO口竟然连高电平都不能输出,怎么办呢?最开始是怀疑单片机的问题,于是用相同的程序给另外一块板子烧进去,结果还是一样的,之后试过很多办法都一样的结果,即使把时钟的配置去掉之后,IO口还是不能输出高电平,怎么办呢?好在我们这现在来了一位外聘专家S,他是属于大师级别一类人,尤其是对于PIC单片机。
AD采集
我把问题复述给S,他第一句话问我关AD采集了吗?我说,没有开AD采集啊。因为之前用的单片机没出现过,这次最开始编程的时候就没有注意这个AD采集,最后我把RC3上的AD采集口关掉之后,单片机又可以完美的输出高电平了。
专家就是专家,看待问题总能命中要害,这一点我的道行还很薄,同时我所需要的是去闭关沉淀。
写这一篇文章主要给给自己共勉,以后少犯类似的错误。
单片机高电平和低电平复位电路
对初学 51 单片机的人来说,可能不太能理解复位电路,复位电路有高电平复位和低电平复位两种,C51 是高电平复位,现在一般的 MCU都是低电平复位。
左图是高电平复位,右图是低电平复位。
一个电路看是高电平还是低电平复位,看开关 S 按下 RST 的状态,左图中 S1 按下,RST 是高电平,即高电平复位;右图 S2 按下,RST 是低电平,即低电平复位。
左:高电平复位 右:低电平复位
高电平复位分析
对左图来说,单片机上电,因为电容两端电压不能突变特性,RST 会维持一段时间高电平,所以单片机复位,随着 RST 上的电压经过 10K 电阻对地放电,RST 电压逐渐减低,单片机进入正常的工作状态,最后 RST 电压变为 0V。
当开关 S1 按下时,电容两端相当于短路,RST 为 5V,所以单片机复位,松开 S1 后,RST 的电压变化就又和上面描述一样了。
下图是 RST 电压随时间 t 的变化曲线,在 0~t1 时间内,单片机是复位状态,随着 RST 上电压降低,单片机进入正常工作状态,最后 RST 变为 0V。
RST 电压随时间 t 的变化曲线
低电平复位分析
对上右图来说,单片机上电,由于电容两端电压不能突变,RST 的电压会维持一段时间低电平,单片机进行复位,VCC 通过 10K 电阻对电容进行充电,RST 电压会逐渐升高,单片机进入正常工作状态,最后 RST 电压等于 VCC。
当开关 S2 按下时,电容两端短路,RST 为 0,单片机会复位,松开 S2 后,RST 的变化就和上面描述一样了。
下图是 RST 电压随时间变化的曲线,0~t2 时间内,单片机是复位状态,随着 RST 电压升高,单片机进入正常工作状态,最后 RST 电压等于 VCC。
RST 电压随时间 t 的变化曲线
今天的文章到这里就结束了。。。
相关问答
单片机 输的高 电平 和低 电平 是多少?输出电压=VCC就是高电平,输出电压=GND(一般是0V)就是低电平,分别用1和0来表示,这个是理想值。但实际上它也有一个范围,这个会在单片机的datasheet里说明。...
单片机 的引脚的 输出 电压多大~?一般的引脚输出高电平是15mA,输出低电平形成的灌电流是20mA,P0口不能输出高电平,功率为UI,U为芯片的电源电压。但所有的IO电流加起来不能超过150mA一般的引脚...
单片机 如何 输出 低 电平 ?单片机输出低电平的方法有多种,这里列举几种常见的方式供参考。1.使用GPIO引脚:单片机的GPIO引脚可以通过配置为输出模式,并设置为低电平来实现输出低电平。...
单片机 的 高电平 怎么定义的,多大就是 高电平 ? - 懂得那要看是TTL电平还是CMOS电平了,一.TTLTTL大部分都采用5V电源。1.输出高电平Uoh和输出低电平UolUoh≥2.4V,Uol≤0.4V2.输入高电平和输入低电平Uih≥...
单片机 引脚 电平 变化唤醒应怎么理解?取值是多少?电平变化无非就是由高到低或者由低到高的跳变,没有取值多少一说,高就是1低就是0。电平变化无非就是由高到低或者由低到高的跳变,没有取值多少一说,高就是...
问一下各位大神一个简单的51 单片机 定时器计数初值的问题设单...[最佳回答]周期为600us的等宽方波脉冲,那么高低电平持续时间就是300US,所以那里会乘以2。晶振为6MHz,则一个机器周期为2US,600US就是300个机器周期(8192-N)*2=...
让 单片机 其中一个引脚 输出 2V高 电平 ,为什么他输出3V?而其他脚也输出高 电平 但是是1.5V左右的?单片机编程还不能控制输出电平的数值,他输出的只有高低,要看不同单片机说明书描述了,别指望控制单片机IO口直接输出你想要的电平,那个不可能,除非你用DA转换...
51 单片机 的P1.0口(IO口) 输出 高 电平 的C语言怎么写?sbitP1.0=P1^0;//P1.0声明P1.0=1;//输出高电平P1.0=0;//输出低电平sbitP1.0=P1^0;//P1.0声明P1.0=1;//输出高电平P1.0=0;//输出低电...
51 单片机 做为 输出 高 电平 驱动LED或是三极管基极,需不需要加限流电阻?51单片机高电平驱动能力很弱,输出电流只有300到500uA因此直接接LED的话,电流很小,亮度很低,就别提加限流电阻了负载电流大时,需加三极管驱动,但也要求三...
单片机 P口做输入时需向其端口写1,写1后这个端口始终读到的是高 电平 啊?楼主说的很对。外部接了高电平、悬空,读回来都是1。只有外接低电平,读回来的,才是0。这个特点,不仅是单片机才具有。其它常用数字电子器件(与非门、触发器等...