新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機一些基礎問題

        單片機一些基礎問題

        作者: 時間:2013-05-16 來源:網絡 收藏

        74HC573本身能提供20mA的電流,足以使數碼管點亮,不必再用三極管驅動了。

        關于ULN2003

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

        ULN2003是一個非門電路,包含7個單元,但獨每個單元驅動電流最大可達350mA.資料的最后有引用電路,9腳可以懸空。

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

        uln2003的作用:

        ULN2003是大電流驅動陣列,多用于、智能儀表、PLC、數字量輸出卡等控制電路中。可直接驅動繼電器等負載。

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

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

        ULN2003 是高壓大電流達林頓晶體管陣列系列產品,具有電流增益高、工作電壓高、溫度范圍寬、帶負載能力強等特點,適應于各類要求高速大功率驅動的系統。

        lcd12864與1602的區別

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

        1602是指的16字符2行的那種吧。如果是,其點陣是這樣的結構。其IC帶有字庫。想顯示字符,只需要輸入對應字的地址。

        而12864的點陣是連續的。一般不帶有字庫。想寫一個圓點,都要自己想好要寫那些位置。屏上每個點都對應字IC內部RAM中一個BIT.

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

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

        在C51編程中,頭文件INTRINS.H的使用起來,就會讓你像在用匯編時一樣簡便.

        內部 描述

        _crol_ 字符循環左移

        _cror_ 字符循環右移

        _irol_ 整數循環左移

        _iror_ 整數循環右移

        _lrol_ 長整數循環左移

        _lror_ 長整數循環右移

        _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型變量循環向左(右)移動指定位數后返回

        _testbit_: 相當于JBC bitvar測試該位變量并跳轉同時清除。

        _chkfloat_: 測試并返回源點數狀態。

        就是匯編中的子函數。

        _crol_,_cror_:如國二進制數為01010101 那么_crol_(1) 左移1位后將高位補低位。

        結果10101010。

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

        例:

        #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”指令相關,上面幾個函數不同于參數類型。

        例:

        #include

        main()

        {

        unsigned int y;

        y=0x0ff00;

        y=_iror_(y,4);

        }

        函數名: _nop_

        原 型: void _nop_(void);

        功 能:_nop_產生一個NOP 指令,該函數可用作C 程序的時間比較。C51 編譯器在_nop_函數工作期間不產生函數調用,即在程序中直接執行了NOP 指令。

        例:

        P()=1;

        _nop_();

        P()=0;

        函數名: _testbit_

        原 型:bit _testbit_(bit x);

        功 能:_testbit_產生一個JBC 指令,該函數測試一個位,當置位時返回1,否則返回0。如果該位置為1,則將該位復位為0。8051 的JBC 指令即用作此目的。_testbit_只能用于可直接尋址的位;在表達式中使用是不允許的。

        在C51單片機編程中,頭文件INTRINS.H的函數使用起來,就會讓你像在用匯編時一樣簡便.

        內部函數 描述

        _crol_ 字符循環左移

        _cror_ 字符循環右移

        _irol_ 整數循環左移

        _iror_ 整數循環右移

        _lrol_ 長整數循環左移

        _lror_ 長整數循環右移

        _nop_ 空操作8051 NOP 指令



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 威远县| 高州市| 南阳市| 赞皇县| 罗甸县| 贵定县| 沂水县| 天津市| 芦山县| 榆中县| 灵寿县| 漯河市| 曲靖市| 南丹县| 师宗县| 安仁县| 宜章县| 威海市| 静乐县| 长武县| 建始县| 平安县| 新田县| 黑龙江省| 桐城市| 耿马| 昭苏县| 杭锦后旗| 梓潼县| 利津县| 贡山| 秭归县| 平定县| 汝阳县| 宁陕县| 讷河市| 漳平市| 龙山县| 荆门市| 水富县| 呼图壁县|