<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

          STC系列單片讓數(shù)碼管更亮

          作者: 時(shí)間:2012-08-18 來(lái)源:網(wǎng)絡(luò) 收藏

          STC系列的I/O口具有強(qiáng),何為強(qiáng)
          STCI/O口可以設(shè)置成四種模式:準(zhǔn)雙向口/弱上接,推挽/強(qiáng)上拉,輸入/高阻,設(shè)置成推挽/強(qiáng)上拉,無(wú)論輸出1和0時(shí)能承受的電流都很大。
          STC的特殊功能寄存器(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è)功能,將顯示變得更亮些簡(jiǎn)直是輕而易舉,以前我老是想著加上拉電阻呀、購(gòu)買更高亮度的呀,現(xiàn)在呀,覺(jué)得真好,用軟件這么一設(shè)就搞定了。真是爽?。?BR>(我用的單片機(jī)是STC11F02E、STC12C5A60S2)。

          不過(guò),老師在這里有兩點(diǎn)忠告:

          1、螞蟻能拖動(dòng)比自己重100倍的東西,但是也畢竟是螞蟻,讓螞蟻去拉馬車顯然不行。因此,強(qiáng)上拉的“強(qiáng)”僅僅是相對(duì)的,拉個(gè)是可以的,但拉動(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)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();