新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機C語言入門教程

        單片機C語言入門教程

        作者: 時間:2012-12-18 來源:網絡 收藏

        學習一種編程語言,最重要的是建立一個練習環(huán)境,邊學邊練才能學好。Keil軟件是目前最流行開發(fā)系列的軟件,Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(?Vision)將這些部份組合在一起。

        學習之前請先安裝KEILC51軟件,在學會使用匯編語言后,學習編程是一件比較容易的事,我們將通過一系列的實例介紹編程的方法。圖1-1所示電路圖使用89c51作為主芯片,這種性屬于系列,其內部有8K的FLASH ROM,可以反復擦寫,非常適于做實驗。89c51的P1引腳上接8個發(fā)光二極管,P3.2~P3.4引腳上接4個按鈕開關,我們的任務是讓接在P1引腳上的發(fā)光二極管按要求發(fā)光。

        1.jpg

        1 簡單的C程序介紹

        例1-1: 讓接在P1.0引腳上的LED發(fā)光。

        /************************************************

        單燈閃爍程序

        *************************************************/

        #include "reg51.h"http://這一句是將51的常用端口,內部寄存器等的定義文件包含進這段程序

        sbit P1_0=P1^0;

        void main()

        {  P1_1=0;

        }

        這個程序的作用是讓接在P1.0引腳上的LED點亮。下面來分析一下這個程序包含了哪些信息。

        1)"文件包含"處理。

        程序的第一行是一個"文件包含"處理。

        所謂"文件包含"是指一個文件將另外一個文件的內容全部包含進來,所以這里的程序雖然只有4行,但C編譯器在處理的時候卻要處理幾十或幾百行。這里程序中包含REG51.h文件的目的是為了要使用P1這個符號,即通知C編譯器,程序中所寫的P1是指單片機的P1端口而不是其它變量。這是如何做到的呢?

        打開reg51.h可以看到這樣的一些內容:

        /*--------------------------------------------------------------------REG51.H

        Header file for generic 80C51 and 80C31 microcontroller.

        Copyright (c) 1988-2001 Keil Elektronik GmbH and Keil Software, Inc.

        All rights reserved.

        --------------------------------------------------------------------------*/

        /* BYTE Register */

        sfr P0 = 0x80;

        sfr P1 = 0x90;

        sfr P2 = 0xA0;

        sfr P3 = 0xB0;

        sfr PSW = 0xD0;

        sfr ACC = 0xE0;

        sfr B = 0xF0;

        sfr SP = 0x81;

        sfr DPL = 0x82;

        sfr DPH = 0x83;

        sfr PCON = 0x87;

        sfr TCON = 0x88;

        sfr TMOD = 0x89;

        sfr TL0 = 0x8A;

        sfr TL1 = 0x8B;

        sfr TH0 = 0x8C;

        sfr TH1 = 0x8D;

        sfr IE = 0xA8;

        sfr IP = 0xB8;

        sfr SCON = 0x98;

        sfr SBUF = 0x99;

        /* BIT Register */

        /* PSW */

        sbit CY = 0xD7;

        sbit AC = 0xD6;

        sbit F0 = 0xD5;

        sbit RS1 = 0xD4;

        sbit RS0 = 0xD3;

        sbit OV = 0xD2;

        sbit P = 0xD0;

        /* TCON */

        sbit TF1 = 0x8F;

        sbit TR1 = 0x8E;

        sbit TF0 = 0x8D;

        sbit TR0 = 0x8C;

        sbit IE1 = 0x8B;

        sbit IT1 = 0x8A;

        sbit IE0 = 0x89;

        sbit IT0 = 0x88;

        /* IE */

        sbit EA = 0xAF;

        sbit ES = 0xAC;

        sbit ET1 = 0xAB;

        sbit EX1 = 0xAA;

        sbit ET0 = 0xA9;

        sbit EX0 = 0xA8;

        /* IP */

        sbit PS = 0xBC;

        sbit PT1 = 0xBB;

        sbit PX1 = 0xBA;

        sbit PT0 = 0xB9;

        sbit PX0 = 0xB8;

        /* P3 */

        sbit RD = 0xB7;

        sbit WR = 0xB6;

        sbit T1 = 0xB5;

        sbit T0 = 0xB4;

        sbit INT1 = 0xB3;

        sbit INT0 = 0xB2;

        sbit TXD = 0xB1;

        sbit RXD = 0xB0;

        /* SCON */

        sbit SM0 = 0x9F;

        sbit SM1 = 0x9E;

        sbit SM2 = 0x9D;

        sbit REN = 0x9C;

        sbit TB8 = 0x9B;

        sbit RB8 = 0x9A;

        sbit TI = 0x99;

        sbit RI = 0x98;

        51單片機相關文章:51單片機教程


        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理



        上一頁 1 2 下一頁

        關鍵詞: 單片機 C語言 80C51

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 东光县| 招远市| 吴桥县| 宿松县| 静乐县| 涞水县| 正阳县| 中宁县| 丰都县| 扎赉特旗| 丹寨县| 定陶县| 内黄县| 石柱| 柏乡县| 绥滨县| 华容县| 茌平县| 延津县| 淮安市| 牡丹江市| 象州县| 乐平市| 陈巴尔虎旗| 石台县| 辛集市| 温泉县| 平邑县| 洮南市| 察隅县| 当阳市| 图木舒克市| 太保市| 资中县| 绥化市| 荆州市| 广安市| 临城县| 奉贤区| 长宁区| 化州市|