新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)一些基礎(chǔ)問題

單片機(jī)一些基礎(chǔ)問題

作者: 時(shí)間:2013-05-16 來源:網(wǎng)絡(luò) 收藏

74HC573本身能提供20mA的電流,足以使數(shù)碼管點(diǎn)亮,不必再用三極管驅(qū)動(dòng)了。

關(guān)于ULN2003

ULN是集成達(dá)林頓管IC,內(nèi)部還集成了一個(gè)消線圈反電動(dòng)勢(shì)的二極管,可用來驅(qū)動(dòng)繼電器。它是雙列16腳封裝,NPN晶體管矩陣,最大驅(qū)動(dòng)電壓=50V,電流=500mA,輸入電壓=5V,適用于TTL COMS,由達(dá)林頓管組成驅(qū)動(dòng)電路。 ULN是集成達(dá)林頓管IC,內(nèi)部還集成了一個(gè)消線圈反電動(dòng)勢(shì)的二極管,它的輸出端允許通過電流為200mA,飽和壓降VCE 約1V左右,耐壓BVCEO 約為36V。用戶輸出口的外接負(fù)載可根據(jù)以上參數(shù)估算。采用集電極開路輸出,輸出電流大,故可直接驅(qū)動(dòng)繼電器或固體繼電器,也可直接驅(qū)動(dòng)低壓燈泡。通常驅(qū)動(dòng)ULN2003時(shí),上拉2K的電阻較為合適,同時(shí),COM引腳應(yīng)該懸空或接電源。

ULN2003是一個(gè)非門電路,包含7個(gè)單元,但獨(dú)每個(gè)單元驅(qū)動(dòng)電流最大可達(dá)350mA.資料的最后有引用電路,9腳可以懸空。

比如1腳輸入,16腳輸出,你的負(fù)載接在VCC與16腳之間,不用9腳。

uln2003的作用:

ULN2003是大電流驅(qū)動(dòng)陣列,多用于、智能儀表、PLC、數(shù)字量輸出卡等控制電路中。可直接驅(qū)動(dòng)繼電器等負(fù)載。

輸入5VTTL電平,輸出可達(dá)500mA/50V。

ULN2003是高耐壓、大電流達(dá)林頓陳列,由七個(gè)硅NPN達(dá)林頓管組成。 該電路的特點(diǎn)如下: ULN2003的每一對(duì)達(dá)林頓都串聯(lián)一個(gè)2.7K的基極電阻,在5V的工作電壓下它能與TTL和CMOS電路 直接相連,可以直接處理原先需要標(biāo)準(zhǔn)邏輯緩沖器。

ULN2003 是高壓大電流達(dá)林頓晶體管陣列系列產(chǎn)品,具有電流增益高、工作電壓高、溫度范圍寬、帶負(fù)載能力強(qiáng)等特點(diǎn),適應(yīng)于各類要求高速大功率驅(qū)動(dòng)的系統(tǒng)。

lcd12864與1602的區(qū)別

一般12864的控制芯片通常有ST7920、KS0108和T6963C等;但1602是字符的模塊控制芯片是KS0066等,1602它現(xiàn)在的芯片也有不少,但都是可以兼容的;簡(jiǎn)單的來說:12864是圖形點(diǎn)陣,是顯示圖形和漢字,當(dāng)然也是可以顯示字母和阿拉伯?dāng)?shù)字了;但1602只能顯示字母和阿拉伯?dāng)?shù)字;同時(shí)他們的芯片不一樣,所以他們的編程上中的程序也是不一樣!

1602是指的16字符2行的那種吧。如果是,其點(diǎn)陣是這樣的結(jié)構(gòu)。其IC帶有字庫。想顯示字符,只需要輸入對(duì)應(yīng)字的地址。

而12864的點(diǎn)陣是連續(xù)的。一般不帶有字庫。想寫一個(gè)圓點(diǎn),都要自己想好要寫那些位置。屏上每個(gè)點(diǎn)都對(duì)應(yīng)字IC內(nèi)部RAM中一個(gè)BIT.

12864 顧名思義像素是128*64,能顯示8*4個(gè)漢字,因型號(hào)不同,有的帶漢字庫,有的不帶,能顯示圖像效果,功能比1602強(qiáng)大,1602只能顯示字母、數(shù)字和符號(hào)能顯示16*2個(gè)字符,但寄存器不止32個(gè),具體也忘了,有一些顯示效果,如字符一個(gè)個(gè)顯示、字符從左到右或從右到左顯示等等,顯示效果簡(jiǎn)單,價(jià)格低,大約6塊錢,而12864最少40塊錢一塊,在編程使用方面,兩者難度差不多,原理差不多,都是寫指令、寫地址、寫數(shù)據(jù)等等。

頭文件INTRINS.H的作用(轉(zhuǎn)自http://blog.csdn.net/sky0829/article/details/6043230)

在C51編程中,頭文件INTRINS.H的使用起來,就會(huì)讓你像在用匯編時(shí)一樣簡(jiǎn)便.

內(nèi)部 描述

_crol_ 字符循環(huán)左移

_cror_ 字符循環(huán)右移

_irol_ 整數(shù)循環(huán)左移

_iror_ 整數(shù)循環(huán)右移

_lrol_ 長(zhǎng)整數(shù)循環(huán)左移

_lror_ 長(zhǎng)整數(shù)循環(huán)右移

_nop_ 空操作8051 NOP 指令

_testbit_ 測(cè)試并清零位8051 JBC 指令

名: _crol_,_irol_,_lrol_

原 型: unsigned char _crol_(unsigned char val,unsigned char n);

unsigned int _irol_(unsigned int val,unsigned char n);

unsigned int _lrol_(unsigned int val,unsigned char n);

舉例:

_crol_,_cror_:將char型變量循環(huán)向左(右)移動(dòng)指定位數(shù)后返回

_testbit_: 相當(dāng)于JBC bitvar測(cè)試該位變量并跳轉(zhuǎn)同時(shí)清除。

_chkfloat_: 測(cè)試并返回源點(diǎn)數(shù)狀態(tài)。

就是匯編中的子函數(shù)。

_crol_,_cror_:如國二進(jìn)制數(shù)為01010101 那么_crol_(1) 左移1位后將高位補(bǔ)低位。

結(jié)果10101010。

功 能:_crol_,_irol_,_lrol_以位形式將val 左移n 位,該函數(shù)與8051“RLA”指令相關(guān),上面幾個(gè)函數(shù)不同于參數(shù)類型。

例:

#include

main()

{

unsigned int y;

C-5 1 程序設(shè)計(jì) 37

y=0x00ff;

y=_irol_(y,4);

}

函數(shù)名: _cror_,_iror_,_lror_

原 型: unsigned char _cror_(unsigned char val,unsigned char n);

unsigned int _iror_(unsigned int val,unsigned char n);

unsigned int _lror_(unsigned int val,unsigned char n);

功 能:_cror_,_iror_,_lror_以位形式將val 右移n 位,該函數(shù)與8051“RRA”指令相關(guān),上面幾個(gè)函數(shù)不同于參數(shù)類型。

例:

#include

main()

{

unsigned int y;

y=0x0ff00;

y=_iror_(y,4);

}

函數(shù)名: _nop_

原 型: void _nop_(void);

功 能:_nop_產(chǎn)生一個(gè)NOP 指令,該函數(shù)可用作C 程序的時(shí)間比較。C51 編譯器在_nop_函數(shù)工作期間不產(chǎn)生函數(shù)調(diào)用,即在程序中直接執(zhí)行了NOP 指令。

例:

P()=1;

_nop_();

P()=0;

函數(shù)名: _testbit_

原 型:bit _testbit_(bit x);

功 能:_testbit_產(chǎn)生一個(gè)JBC 指令,該函數(shù)測(cè)試一個(gè)位,當(dāng)置位時(shí)返回1,否則返回0。如果該位置為1,則將該位復(fù)位為0。8051 的JBC 指令即用作此目的。_testbit_只能用于可直接尋址的位;在表達(dá)式中使用是不允許的。

在C51單片機(jī)編程中,頭文件INTRINS.H的函數(shù)使用起來,就會(huì)讓你像在用匯編時(shí)一樣簡(jiǎn)便.

內(nèi)部函數(shù) 描述

_crol_ 字符循環(huán)左移

_cror_ 字符循環(huán)右移

_irol_ 整數(shù)循環(huán)左移

_iror_ 整數(shù)循環(huán)右移

_lrol_ 長(zhǎng)整數(shù)循環(huán)左移

_lror_ 長(zhǎng)整數(shù)循環(huán)右移

_nop_ 空操作8051 NOP 指令



評(píng)論


相關(guān)推薦

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

關(guān)閉