單片機一些基礎問(wèn)題
74HC573本身能提供20mA的電流,足以使數碼管點(diǎn)亮,不必再用三極管驅動(dòng)了。
關(guān)于ULN2003
ULN是集成達林頓管IC,內部還集成了一個(gè)消線(xiàn)圈反電動(dòng)勢的二極管,可用來(lái)驅動(dòng)繼電器。它是雙列16腳封裝,NPN晶體管矩陣,最大驅動(dòng)電壓=50V,電流=500mA,輸入電壓=5V,適用于TTL COMS,由達林頓管組成驅動(dòng)電路。 ULN是集成達林頓管IC,內部還集成了一個(gè)消線(xiàn)圈反電動(dòng)勢的二極管,它的輸出端允許通過(guò)電流為200mA,飽和壓降VCE 約1V左右,耐壓BVCEO 約為36V。用戶(hù)輸出口的外接負載可根據以上參數估算。采用集電極開(kāi)路輸出,輸出電流大,故可直接驅動(dòng)繼電器或固體繼電器,也可直接驅動(dòng)低壓燈泡。通常單片機驅動(dòng)ULN2003時(shí),上拉2K的電阻較為合適,同時(shí),COM引腳應該懸空或接電源。
ULN2003是一個(gè)非門(mén)電路,包含7個(gè)單元,但獨每個(gè)單元驅動(dòng)電流最大可達350mA.資料的最后有引用電路,9腳可以懸空。
比如1腳輸入,16腳輸出,你的負載接在VCC與16腳之間,不用9腳。
uln2003的作用:
ULN2003是大電流驅動(dòng)陣列,多用于單片機、智能儀表、PLC、數字量輸出卡等控制電路中??芍苯域寗?dòng)繼電器等負載。
輸入5VTTL電平,輸出可達500mA/50V。
ULN2003是高耐壓、大電流達林頓陳列,由七個(gè)硅NPN達林頓管組成。 該電路的特點(diǎn)如下: ULN2003的每一對達林頓都串聯(lián)一個(gè)2.7K的基極電阻,在5V的工作電壓下它能與TTL和CMOS電路 直接相連,可以直接處理原先需要標準邏輯緩沖器。
ULN2003 是高壓大電流達林頓晶體管陣列系列產(chǎn)品,具有電流增益高、工作電壓高、溫度范圍寬、帶負載能力強等特點(diǎn),適應于各類(lèi)要求高速大功率驅動(dòng)的系統。
lcd12864與1602的區別
一般12864的控制芯片通常有ST7920、KS0108和T6963C等;但1602是字符的模塊控制芯片是KS0066等,1602它現在的芯片也有不少,但都是可以兼容的;簡(jiǎn)單的來(lái)說(shuō):12864是圖形點(diǎn)陣,是顯示圖形和漢字,當然也是可以顯示字母和阿拉伯數字了;但1602只能顯示字母和阿拉伯數字;同時(shí)他們的芯片不一樣,所以他們的編程上中的程序也是不一樣!
1602是指的16字符2行的那種吧。如果是,其點(diǎn)陣是這樣的結構。其IC帶有字庫。想顯示字符,只需要輸入對應字的地址。
而12864的點(diǎn)陣是連續的。一般不帶有字庫。想寫(xiě)一個(gè)圓點(diǎn),都要自己想好要寫(xiě)那些位置。屏上每個(gè)點(diǎn)都對應字IC內部RAM中一個(gè)BIT.
12864 顧名思義像素是128*64,能顯示8*4個(gè)漢字,因型號不同,有的帶漢字庫,有的不帶,能顯示圖像效果,功能比1602強大,1602只能顯示字母、數字和符號能顯示16*2個(gè)字符,但寄存器不止32個(gè),具體也忘了,有一些顯示效果,如字符一個(gè)個(gè)顯示、字符從左到右或從右到左顯示等等,顯示效果簡(jiǎn)單,價(jià)格低,大約6塊錢(qián),而12864最少40塊錢(qián)一塊,在編程使用方面,兩者難度差不多,原理差不多,都是寫(xiě)指令、寫(xiě)地址、寫(xiě)數據等等。
頭文件INTRINS.H的作用(轉自http://blog.csdn.net/sky0829/article/details/6043230)
在C51單片機編程中,頭文件INTRINS.H的函數使用起來(lái),就會(huì )讓你像在用匯編時(shí)一樣簡(jiǎn)便.
內部函數 描述
_crol_ 字符循環(huán)左移
_cror_ 字符循環(huán)右移
_irol_ 整數循環(huán)左移
_iror_ 整數循環(huán)右移
_lrol_ 長(cháng)整數循環(huán)左移
_lror_ 長(cháng)整數循環(huán)右移
_nop_ 空操作8051 NOP 指令
_testbit_ 測試并清零位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)指定位數后返回
_testbit_: 相當于JBC bitvar測試該位變量并跳轉同時(shí)清除。
_chkfloat_: 測試并返回源點(diǎn)數狀態(tài)。
就是匯編中的子函數。
_crol_,_cror_:如國二進(jìn)制數為01010101 那么_crol_(1) 左移1位后將高位補低位。
結果10101010。
功 能:_crol_,_irol_,_lrol_以位形式將val 左移n 位,該函數與8051“RLA”指令相關(guān),上面幾個(gè)函數不同于參數類(lèi)型。
例:
#include
main()
{
unsigned int y;
C-5 1 程序設計 37
y=0x00ff;
y=_irol_(y,4);
}
函數名: _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 位,該函數與8051“RRA”指令相關(guān),上面幾個(gè)函數不同于參數類(lèi)型。
例:
#include
main()
{
unsigned int y;
y=0x0ff00;
y=_iror_(y,4);
}
函數名: _nop_
原 型: void _nop_(void);
功 能:_nop_產(chǎn)生一個(gè)NOP 指令,該函數可用作C 程序的時(shí)間比較。C51 編譯器在_nop_函數工作期間不產(chǎn)生函數調用,即在程序中直接執行了NOP 指令。
例:
P()=1;
_nop_();
P()=0;
函數名: _testbit_
原 型:bit _testbit_(bit x);
功 能:_testbit_產(chǎn)生一個(gè)JBC 指令,該函數測試一個(gè)位,當置位時(shí)返回1,否則返回0。如果該位置為1,則將該位復位為0。8051 的JBC 指令即用作此目的。_testbit_只能用于可直接尋址的位;在表達式中使用是不允許的。
在C51單片機編程中,頭文件INTRINS.H的函數使用起來(lái),就會(huì )讓你像在用匯編時(shí)一樣簡(jiǎn)便.
內部函數 描述
_crol_ 字符循環(huán)左移
_cror_ 字符循環(huán)右移
_irol_ 整數循環(huán)左移
_iror_ 整數循環(huán)右移
_lrol_ 長(cháng)整數循環(huán)左移
_lror_ 長(cháng)整數循環(huán)右移
_nop_ 空操作8051 NOP 指令
評論