单片机 > 单片机程序设计 > 详情

STC系列单片让数码管更亮

发布时间:2020-05-18 发布时间:
|

STC系列单片机的I/O口具有强上拉模式,何为强上拉模式?
STC单片机I/O口可以设置成四种模式:准双向口/弱上接,推挽/强上拉,输入/高阻,设置成推挽/强上拉,无论输出1和0时能承受的电流都很大。
STC单片机的特殊功能寄存器(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口。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM JTAG 调试原理