STC系列單片讓數(shù)碼管更亮
STC系列單片機(jī)的I/O口具有強(qiáng)上拉模式,何為強(qiáng)上拉模式?
STC單片機(jī)I/O口可以設(shè)置成四種模式:準(zhǔn)雙向口/弱上接,推挽/強(qiáng)上拉,輸入/高阻,設(shè)置成推挽/強(qiáng)上拉,無(wú)論輸出1和0時(shí)能承受的電流都很大。
STC單片機(jī)的特殊功能寄存器(SFR)對(duì)I/O口增加了PXM1、PXM0寄存器,每個(gè)口都有這么一對(duì)??赏ㄟ^(guò)設(shè)置PXM1:PXM0的值選擇該口的工作模式:
PXM1,PXM0的定義如下:
0 0 準(zhǔn)雙向口(傳統(tǒng)IO)
0 1 推挽輸出(強(qiáng)上拉 ,電流可達(dá)20mA,盡量少用)
1 0 僅為輸入(高阻)
1 1 開(kāi)漏,如傳統(tǒng)8051的P0口
下面以P1口為例進(jìn)行說(shuō)明:
P1口的模式配置寄存器的名字為P1M1、P1M0,地址分別為91H、92H。
例:
不論是匯編還是c,寄存器的定義是一樣的:
P1M1 equ 91H
P1M0 equ 92H
然后,程序中有以下語(yǔ)句:
匯編語(yǔ)言:
mov p1m1,#00000000B
mov p1m0,#11111111B ;將p1口全部置為強(qiáng)上拉模式
C語(yǔ)言:
P1M0 = 0xC0;
P1M1 = 0xA0;//P1.7開(kāi)漏,P1.6高阻,P1.5強(qiáng)推挽輸出,其他準(zhǔn)雙向I/O口。
利用這個(gè)功能,將數(shù)碼管顯示變得更亮些簡(jiǎn)直是輕而易舉,以前我老是想著加上拉電阻呀、購(gòu)買更高亮度的數(shù)碼管呀,現(xiàn)在呀,覺(jué)得真好,用軟件這么一設(shè)就搞定了。真是爽?。?BR>(我用的單片機(jī)是STC11F02E、STC12C5A60S2)。
不過(guò),老師在這里有兩點(diǎn)忠告:
1、螞蟻能拖動(dòng)比自己重100倍的東西,但是也畢竟是螞蟻,讓螞蟻去拉馬車顯然不行。因此,強(qiáng)上拉的“強(qiáng)”僅僅是相對(duì)的,拉個(gè)數(shù)碼管是可以的,但拉動(dòng)繼電器之類的器件,你可還是要老老實(shí)實(shí)的按標(biāo)準(zhǔn)的電路來(lái)做,該加三極管的時(shí)候你還得要加,不要過(guò)于貪心了。
2、一旦你將I/O口設(shè)為上拉(推挽)模式了,你千萬(wàn)不能把兩個(gè)口的線搭連在一起了,否則,一旦一個(gè)腳是輸出1另一個(gè)腳是輸出0,那你這個(gè)口是燒定了。而沒(méi)有設(shè)為上拉模式,則一般不會(huì)損壞I/O口。
評(píng)論