宏晶单片机设置强上拉模式让数码管更亮!

      STC(宏晶)系列单片机的I/O口具有强上拉模式,何为强上拉模式?

      宏晶单片机I/O口可以设置成四种模式:准双向口/弱上接,推挽/强上拉,输入/高阻,设置成推挽/强上拉,无论输出1和0时能承受的电流都很大。

      宏晶单片机的特殊功能寄存器(SFR)对I/O口增加了PXM1、PXM0寄存器,每个口都有这么一对。可通过设置PXM1:PXM0的值选择该口的工作模式:

PXM1,PXM0的定义如下:
 0     0  准双向口(传统IO)
 0     1  推挽输出(强上拉 ,电流可达20mA,尽量少用)
 1     0  仅为输入(高阻)
 1     1  开漏,如传统8051的P0口
下面以P1口为例进行说明:
P1口的模式配置寄存器的名字为P1M1、P1M0,地址分别为91H、92H。
例:不论是汇编还是c,寄存器的定义是一样的:
                 P1M1     equ     91H
                 P1M0     equ     92H
然后,程序中有以下语句:
汇编语言:
                 mov    p1m1,#00000000B
                 mov   p1m0,#11111111B  ;将p1口全部置为强上拉模式
C语言:
                 P1M0 = 0xC0;
                 P1M1 = 0xA0;//P1.7开漏,P1.6高阻,P1.5强推挽输出,其他准双向I/O口。

      利用宏晶单片机的这个功能,将数码管显示变得更亮些简直是轻而易举,以前我老是想着加上拉电阻呀、购买更高亮度的数码管呀,现在呀,觉得真好,用软件这么一设就搞定了。真是爽啊!(我用的单片机是STC11F02E、STC12C5A60S2)。

不过,在这里有两点忠告:

  1. 蚂蚁能拖动比自己重100倍的东西,但是也毕竟是蚂蚁,让蚂蚁去拉马车显然不行。因此,强上拉的“强”仅仅是相对的,拉个数码管是可以的,但拉动继电器之类的器件,你可还是要老老实实的按标准的电路来做,该加三极管的时候你还得要加,不要过于贪心了。
  2. 一旦你将I/O口设为上拉(推挽)模式了,你千万不能把两个口的线搭连在一起了,否则,一旦一个脚是输出1另一个脚是输出0,那你这个口是烧定了。而没有设为上拉模式,则一般不会损坏I/O口。

作者:风铃
如若复制、转载请注明原文地址:
http://mtoou.info/stc-qiangshangla/

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>