新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STC讓數(shù)碼管更亮了!

STC讓數(shù)碼管更亮了!

作者: 時間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
STC系列單片機(jī)的I/O口具有強(qiáng)上拉模式,何為強(qiáng)上拉模式?

STC單片機(jī)I/O口可以設(shè)置成四種模式:準(zhǔn)雙向口/弱上接,推挽/強(qiáng)上拉,輸入/高阻,設(shè)置成推挽/強(qiáng)上拉,無論輸出1和0時能承受的電流都很大。
STC單片機(jī)的特殊功能寄存器(SFR)對I/O口增加了PXM1、PXM0寄存器,每個口都有這么一對??赏ㄟ^設(shè)置PXM1:PXM0的值選擇該口的工作模式:
PXM1,PXM0的定義如下:
0 0 準(zhǔn)雙向口(傳統(tǒng)IO)
0 1 推挽輸出(強(qiáng)上拉 ,電流可達(dá)20mA,盡量少用)
1 0 僅為輸入(高阻)
1 1 開漏,如傳統(tǒng)8051的P0口
下面以P1口為例進(jìn)行說明:
P1口的模式配置寄存器的名字為P1M1、P1M0,地址分別為91H、92H。
例:

本文引用地址:http://m.butianyuan.cn/article/201611/323287.htm

不論是匯編還是c,寄存器的定義是一樣的:
P1M1 equ 91H
P1M0 equ 92H
然后,程序中有以下語句:
匯編語言:
mov p1m1,#00000000B
mov p1m0,#11111111B ;將p1口全部置為強(qiáng)上拉模式
C語言:
P1M0 = 0xC0;
P1M1 = 0xA0;//P1.7開漏,P1.6高阻,P1.5強(qiáng)推挽輸出,其他準(zhǔn)雙向I/O口。

利用這個功能,將數(shù)碼管顯示變得更亮些簡直是輕而易舉,以前我老是想著加上拉電阻呀、購買更高亮度的數(shù)碼管呀,現(xiàn)在呀,覺得真好,用軟件這么一設(shè)就搞定了。真是爽??!
(我用的單片機(jī)是STC11F02E、STC12C5A60S2)。

不過,老師在這里有兩點忠告:

1、螞蟻能拖動比自己重100倍的東西,但是也畢竟是螞蟻,讓螞蟻去拉馬車顯然不行。因此,強(qiáng)上拉的“強(qiáng)”僅僅是相對的,拉個數(shù)碼管是可以的,但拉動繼電器之類的器件,你可還是要老老實實的按標(biāo)準(zhǔn)的電路來做,該加三極管的時候你還得要加,不要過于貪心了。

2、一旦你將I/O口設(shè)為上拉(推挽)模式了,你千萬不能把兩個口的線搭連在一起了,否則,一旦一個腳是輸出1另一個腳是輸出0,那你這個口是燒定了。而沒有設(shè)為上拉模式,則一般不會損壞I/O口。



關(guān)鍵詞: STC數(shù)碼

評論


技術(shù)專區(qū)

關(guān)閉