纳兰无双 纳兰无双
关注数: 88 粉丝数: 11 发帖数: 582 关注贴吧数: 47
STC管脚上电如何输出低电平 最近在做一个项目,其中电路板部分功能原理是,STC MCU直接连接ULN2003,再驱动ULN2003控制继电器。本来一切正常的,后面在细调的时候发现有一个问题,就是在电路板上电瞬间或MCU复位瞬间,所有的继电器都会闭合一下,这个误动作是很有问题的,必须避免。该现象的原因我很清楚,即STC MCU上电默认所有管脚都会输出高电平,而我在初始化程序中,将继电器对应的控制IO初始化为低电平,但这之间还是存在一小段时间,管脚输出的是高电平。 通过参看STC器件的使用手册,上面提供了一种方法可以使管脚上电输出低电平,在此一并说下:即在需要上电保持低电平的管脚上,加一个较小阻值的下拉电阻(如1K/2K/3K)。因为STC MCU上电时,所有的管脚的属性都会默认恢复为普通GPIO,该模式下的弱上拉电阻不足以在接了较小的下拉电阻时,将管脚电平拉高,从而避免了上电时输出高电平。而在之后的程序初始化中,再设置对应管脚电平,并设置管脚模式为推挽输出,推挽输出模式下的电流 可以即便在较小的下拉电阻时,仍将管脚电平拉至高电平。从原理上来说,这样是没错的,但唯一的问题是 这意味着要重新制板。所以我实验了很多种其它方法,以期在不改动现有硬件电路的前提下,实现MCU的管脚上电输出低电平。当然,最后我成功了 ;) 在介绍具体的做法之前先介绍两个事实: 第一、STC MCU或者说51单片机,在上电时,都会先执行一个名为STARTUP.A51的文件里的汇编程序的,在该段汇编程序中,MCU会进行最初的初始化,包括一些堆栈参数设置,工作区选定,数据初始化等。而我们平时所写的程序,是在该段汇编程序执行完了之后,才会跳过来的,所以从系统上电到执行初始化应用程序之间是有一定的时间间隔的。 第二,STC MCU的管脚有四种模式:1,准双向口,传统8051的I/O模式,灌电流可达20mA,拉电流270uA,即可以接受较大的输入电流,和输出较小的电流;2、推挽输出,具有较大的拉电流,可达20mA,和准双向口的区别就是具有较大输出电流;3、高阻输入,该模式下,管脚既不能输出电流,也不能接受输入电流;4,开漏模式,和准双向口的区别就是不能输出拉电流,即对外不能输出高电平。而我解决 MCU上电输出高电平,就需要设置管脚模式为高阻或开漏。 STC MCU管脚模式以及设置方法 最后,具体的做法思路是这样的:在STARTUP.A51中,使用汇编语言 对需要上电输出低电平的管脚,设置其管脚属性为高阻或开漏,然后在应用程序中,先将控制管脚的电平初始化后,再重新设置这些控制管脚的模式。这样,在MCU上电后,运行到汇编程序中的管脚属性初始化这点时间就很短,并且STC MCU在下载程序时,ISP软件设置 不需要使用额外复位延时。最后上图上程序上真相: ISP下载时的设置,不勾选上电复位使用较长延时 另还要注意的第一点是:该段管脚属性初始化程序应该加载STARTUP1段中,并且在该汇编程序文件的开头部分声明这些寄存器: eg. P2M1 DATA 095H P2M0 DATA 096H P4M1 DATA 0b3H P4M0 DATA 0b4H 第二点是,在使用Keil建立工程时,应该选择不使用默认的STARTUP.A51,并从Keil的安装目录下,找到这个STARTUP.A51(这个相信不难了),把它放到自己的应用程序目录下,然后添加到Keil中,再进行此项修改,如下图所示: 最后,没改动任何硬件线路,即实现了MCU上电或复位后,既定管脚输出低电平,防止控制的后级误动作。 贴出startup.a51下载地址,仅供参考,慎用。 http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fdownload.csdn.net%2Fdetail%2Ffirestarway%2F9349829&urlrefer=f19a04c4fdd0c373e66befeef879bb68 ———————————————— 版权声明:本文为CSDN博主「YaHa201286」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fblog.csdn.net%2FFireStarway%2Farticle%2Fdetails%2F50275463&urlrefer=c18137de7868c6afda077964b948ec2d
《我们无处安放的青春》结局是好的——请你来评一下      终于看完了。      从第15集,我就开始看不下去了,每次都是一集看完了,歇一会儿才能再心平气和得看下一集。不过,我庆幸我最后还是看完了。     就像是蒙蒙的艰辛的历程,每一步都让人心痛。周校长的话,时时都回响在耳边,“蒙蒙,爸爸不在的日子里,恐怕你最大的敌人就是孤独了。孤独是你的敌人,可也是你的良师益友,全看你的态度。爸爸不苛求你有多坚强,爸爸只是希望你学会享受孤独、战胜孤独。”     我还是很喜欢最后的蒙蒙,学会了不依赖,真正的成长。如果没有李然的离开,也许她只能做一个从爸爸身边离开后,就依附于另外一个小爸爸身边、永远也长不大的女孩子。虽然很让人疼爱,但却是又不是那么现实了。     最后李然会去靠山屯找蒙蒙的,我相信,希望就在我们心中。     虽然李然是那么可恨,可我们的蒙蒙却无法有另外一个。所有的一切,也许是必然,是这个坠落凡尘的仙子成长所必须的吧。      分享我的《我们无处安放的青春》,也同时希望看到你们心里的《我们无处安放的青春》。也许会不同、也许会悲观、也许会乐观,但都是我们每个人心灵深处的爱情。     看到了爱情的成长,才能懂得爱情的珍贵,才能用心灵呵护好心里的那个人。      朋友,你又怎么看?
遇见 时间是一个很有趣的东西,两个注定要相识的人总会在时间的安排下很合理的相遇,陌生与熟识之间的痕迹,又好像划破口后自动愈合的伤口,那么的柔和自然。在真正的相遇之前,也许真的有见过,但时间却不允许他们相识。所以,在那个时间里,彼此走的都是陌路,彼此间亦都是陌生人。     所以,一切都是因为我们有缘才来此相聚,没有谁会一辈子不变化的。等好多年以后,我相信,我会很怀念这个时间里的这个我,还有这个时间里面和我相识相知的朋友、同事、还有所有的知心人儿。人生在世,也许并不需要太多的抱怨。如果你感到了生活得不满,那我们就更要努力,努力去改变这让我们不满的。努力得去工作,努力地去做好我们该做的每一件事情。无论是爱情、亲情、同学情、同事情,只要你真心得付出了,你就能得到欣慰的回报。     来到这里,既然遇见了,就好好相识下吧。也许,以后终要别离;也许,从此永不分离。但我们不应太伤感,因为人生也是一场相遇,而且是一场早就注定了要分离的相遇。在这一生的时间的轨迹里,注定了在最后的时候要别离,我们所能永远保存的,就是在这别离之前的一起。我和你一起,无论能走多远,在将来里,都应是一段最美好的回忆。     所以,我们不应感伤,我们应该庆幸,庆幸这个时间的导演给我们安排的这一场戏,一场人生的遇见。如果真的觉得相识的太晚,我恨不能把梦也当作一场相遇。所以,未来要遇见的人儿,我已作好了准备,将要和你一起演义一场人生的遇见。无论你是谁,无论此刻你在那里,我们注定了要有一场相识,也注定了要有一场别离。你不必窃喜,亦无需忧伤,因为这注定了是一场要分离的相遇。     我从未后悔来到这里,比较1年前的自己,发现自己真的学到了很多。不过,在这过渡时期里,难免会碰到些不尽人意的小挫折,但有了挫折,才会有成长。来这里,要学的不只是技术的技巧,还有生活得技巧,我们要一并去感受,去收获。     我是外来的一块小石子,缘分的孩童忽然很想打水漂,所以我就遇到了你。在你的湖心漂过,留下一串串的波心,荡漾在你的心田!     我很相信缘分。所以,有缘遇到你。 (本想搜索写我们公司的一点东西,却,无意间来到这里。于是就有了上面的这些东西。希望同事、同学们会喜欢)
1 下一页