小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

單片機_第4章 單片機的C51語言

 和生k7zm98l2kv 2023-06-08 發(fā)布于廣東

目錄

4.1 C51的程序結(jié)構(gòu)

4.1.1 C51語言概述

兩種51單片機編程語言:匯編語言和C51語言

創(chuàng)建C51程序

4.1.2 C51的程序結(jié)構(gòu)

4.2 C51的數(shù)據(jù)結(jié)構(gòu)

4.2.1 C51的變量(根據(jù)給出的定義說明變量的四大要素)

前言

定義一個變量的完整格式(變量具有4大要素):〔存儲種類〕數(shù)據(jù)類型〔存儲類型〕變量名;

4.2.2 C51的指針

4.3 C51與匯編語言的混合編程

4.4 C51仿真開發(fā)環(huán)境

4.5 C51應用編程初步

4.5.1 I/O端口的簡單應用

1. 基本輸入/輸出單元與編程

2. LED數(shù)碼管原理與編程

4.5.2 I/O端口的進階實踐

1. 數(shù)碼管動態(tài)顯示原理與編程

2. 行列式鍵盤原理與編程

本章小結(jié)


  • 4.1 C51的程序結(jié)構(gòu)

    • 4.1.1 C51語言概述

      • 兩種51單片機編程語言:匯編語言和C51語言

        • 匯編語言
          • 是一種面向機器的編程語言,能直接操作單片機的硬件系統(tǒng),如存儲器、I/O端口、定時/計數(shù)器等。
          • 優(yōu)點:指令效率高、執(zhí)行速度快,在實時性要求較高的場合有著不可替代的作用。
          • 缺點:匯編語言屬于低級編程語言,程序可讀性差,移植困難,而且編程時還必須具體組織、分配存儲器資源和處理端口數(shù)據(jù),因而編程工作量很大。
          • 51單片機操作數(shù)的簡記符

        • C51語言
          • 是為51單片機設計的一種高級編程語言,屬于標準C語言的一個子集。
          • 優(yōu)點:具有可讀性強,易于調(diào)試維護,編程工作量小的特點。由于允許直接訪問物理地址,能直接對硬件進行操作,可實現(xiàn)匯編語言的部分功能,因而兼有高級和低級語言的特點,適用范圍廣。目前C51語言已成為51單片機程序開發(fā)的主流編程方法。
            • 結(jié)構(gòu)化語言,代碼緊湊——效率可與匯編語言媲美(但仍不如)
            • 接近真實語言,程序可讀性強——易于調(diào)試、維護
            • 庫函數(shù)豐富,編程工作量小——產(chǎn)品開發(fā)周期短
            • 機器級控制能力,功能很強——適合于嵌入式系統(tǒng)開發(fā)
            • 與匯編指令無關(guān),易于掌握——在單片機基礎上上手快
          • 缺點:執(zhí)行效率不如匯編語言
          • C51語言所編制的源程序不能直接被計算機識別,必須轉(zhuǎn)換成可執(zhí)行語言(或稱目標代碼)后才能執(zhí)行。
            • 先將高級語言源程序全部轉(zhuǎn)換為目標代碼,然后再執(zhí)行的方式叫做編譯型執(zhí)行方式。
              • C51采用編譯型執(zhí)行方式,產(chǎn)生的目標代碼可以脫離C51編程環(huán)境獨立執(zhí)行,程序執(zhí)行速度快,代碼效率高。
            • 將源程序邊轉(zhuǎn)換,邊執(zhí)行的方式叫做解釋型執(zhí)行方式。
        • C51 VS 標準C語言
          • 相同之處:語法規(guī)則、程序結(jié)構(gòu)、編程方法
          • 不同之處:數(shù)據(jù)結(jié)構(gòu)(第4章)、中斷處理(第5章)、端口擴展(第8章)
      • 創(chuàng)建C51程序:

        • “新建工程文件”→“選擇單片機”→“編輯源程序”→“添加源程序” →“修改工程配置”→“進行程序編譯”→生成可執(zhí)行文件”。
    • 4.1.2 C51的程序結(jié)構(gòu)

      • C51程序的基本單位是函數(shù),一個C51源程序至少包含一個主函數(shù),也可以是一個主函數(shù)和若干個其他函數(shù)。
      • 主函數(shù)是程序的入口;
      • 主函數(shù)中的所有語句執(zhí)行完畢,則程序結(jié)束。
      • 舉例:LED閃爍控制功能

        • 程序
          • C51

          • 匯編語言

        • C51程序的基本結(jié)構(gòu)

  • 4.2 C51的數(shù)據(jù)結(jié)構(gòu)

    • 4.2.1 C51的變量(根據(jù)給出的定義說明變量的四大要素)

      • 前言

        • 在C語言編程中,數(shù)值可以發(fā)生改變的量稱為變量。
        • 變量的基本屬性是變量名和變量值
        • 在程序中定義變量,C51編譯器就會給這個變量分配相應的存儲單元,從而將變量名與存儲單元的地址“捆綁”在一起,變量值就與存儲單元的內(nèi)容相對應(若存儲單元中放置不同的內(nèi)容,變量就會有不同的值)。
        • 使用變量的過程,就是通過變量名找到相應的內(nèi)存地址,進而對該存儲單元進行數(shù)據(jù)讀取的操作過程。

        • 實際使用變量時要考慮的因素:
          • 如果變量要對應更大的數(shù)值就需要將多個連續(xù)地址的存儲單元串聯(lián)起來以便增加位數(shù),這就涉及到變量的數(shù)據(jù)類型問題。
          • 51單片機有片內(nèi)RAM和片外RAM兩種數(shù)據(jù)存儲器,這就涉及到變量的存儲類型問題。
          • 變量與存儲單元永久“綁定” 會降低存儲單元的利用率,臨時分配存儲單元的動態(tài)方案會降低變量使用的方便性,涉及到變量的存儲種類問題。
      • 定義一個變量的完整格式(變量具有4大要素):〔存儲種類〕數(shù)據(jù)類型〔存儲類型〕變量名;

      • 〔存儲種類〕
        • 變量定義時還需考慮變量的“作用域”問題。
        • 為提高變量存儲效率,比較科學的做法應該是:
          • ①對于僅有當前使用價值的變量,可以讓它用完后“自動”釋放占用的存儲單元,以便編譯器重新進行變量存儲空間分配;——auto
          • ②對于具有長期使用價值的變量,可以讓它處于“靜態(tài)”保護下,在程序運行期間都不釋放存儲單元;——static
          • ③對于需要在多個程序或函數(shù)中傳遞數(shù)據(jù)的變量,可以讓它只在一處進行定義,而在其它程序或函數(shù)中聲明它的“外部”屬性,從而實現(xiàn)該變量的數(shù)據(jù)共享;——extern
          • ④對于需要頻繁改變其值的變量,可讓其數(shù)值保存在CPU的“寄存器”中,避免反復訪問內(nèi)存,從而獲得較高的執(zhí)行效率。——register
        • 變量的存儲類型有4種:
          • 1、自動型(auto)。
            • 具有auto屬性的變量稱為自動型變量。自動型變量的作用域是在定義該變量的函數(shù)體或語句組內(nèi)。當函數(shù)調(diào)用結(jié)束或語句組執(zhí)行完畢時,自動型變量所占用的存儲單元就被釋放。由于存儲單元中的值是隨機的,因此自動型變量在賦初值前的值也是隨機的。自動型是“存儲種類”的默認選項,如果變量定義時“存儲種類”項省略,則變量被默認為是自動型的。
          • 2、靜態(tài)型(static)。
            • 具有static屬性的變量稱為靜態(tài)型變量。靜態(tài)型變量的作用域是定義它的函數(shù)體、程序文件或語句組內(nèi)。靜態(tài)型變量具有變量的隱藏性、存儲持久性和默認0初值3個特點。
            • 如果希望變量在離開作用域后仍能保持它已經(jīng)獲得的數(shù)值不丟失,或者希望變量無法被作用域外的其它同名變量所使用,或者希望變量雖經(jīng)定義但缺省賦初值時能默認為0,就可在變量定義時用static進行聲明。
          • 3、外部型(extern)。
            • 具有extern屬性的變量稱為外部型變量。如果變量的定義與使用不在同一個作用域內(nèi),則用extern聲明后就能將原作用域擴展到聲明所在的位置,從而將變量值帶到新的作用域內(nèi)。extern的這一擴展性與static的隱藏性恰好相反。變量做extern聲明后可分配固定的存儲單元,并在程序的整個執(zhí)行期內(nèi)始終有效。
          • 4、寄存器型(register)。
            • 具有register屬性的變量稱為寄存器型變量。如果變量在使用中需要頻繁地與內(nèi)存進行數(shù)據(jù)交換,可以通過register定義將變量的存儲單元指定為寄存器。但是隨著編譯器技術(shù)不斷優(yōu)化,現(xiàn)在編譯器已能將數(shù)據(jù)交換過于頻繁的變量自動放入寄存器中,因而進行register聲明的必要性已不大了。
        • 注意
          • auto,static和register關(guān)鍵詞需要在變量定義的同時進行使用,不能單獨使用
            • 因此下面的用法是不對的:
              • int a; (先定義整型變量a)
              • static a; (企圖再對a聲明為靜態(tài)變量)
            • 這樣做會被編譯器認為是“重新定義”。正確的用法應該是:static int a;
          • 但是,extern卻是可以單獨進行聲明的,它可對已定義過的變量進行作用域擴展,例如:
            • int b;(在另一程序文件或函數(shù)中定義了變量b)
            • extern b;(將變量b的作用域擴展至此,允許省略變量b的int類型)
          • 變量的定義和變量的聲明問題
            • 實際應用中這兩者常常被不加區(qū)別的隨意使用,這是不嚴格的,因為兩者間是有區(qū)別的。
            • 變量定義既涉及到變量特性的約定,也涉及到存儲單元的分配問題。
            • 變量聲明則是僅指出變量的特性,不涉及存儲單元的分配問題。
            • 例如上面介紹過的“int a;”稱為變量定義,而“extern b;”則稱為變量聲明。
          • 全局變量與局部變量問題
            • 根據(jù)C51規(guī)則,變量定義語句放置的位置決定了變量的作用域,其中放在程序開始處(即所有函數(shù)前面)的稱為全局變量,而放在函數(shù)內(nèi)部的稱為局部變量。
            • 全局變量的作用域是整個源程序范圍,變量值可在程序運行期間始終有效,而局部變量值僅在函數(shù)調(diào)用期間有效,調(diào)用結(jié)束后就會失效。
            • 為了合理利用存儲資源,需要根據(jù)情況靈活采用全局變量或局部變量,一般情況下應盡量選用局部變量。
      • 數(shù)據(jù)類型
        • C51使用的數(shù)據(jù)類型 = 標準C語言傳承的 + C51特有的
        • (一)由標準C語言傳承的數(shù)據(jù)類型
          • 數(shù)據(jù)類型用于表示數(shù)據(jù)存放格式(有符號數(shù)類型可以忽略signed標識符)

          • 整型數(shù)據(jù)、字符型數(shù)據(jù)和浮點型數(shù)據(jù)
            • 1、整型變量與整型常量
            • 2、字符型變量與字符型常量
            • 3、浮點型變量與浮點型常量
        • (二)C51特有的數(shù)據(jù)類型
          • bit型、sfr型和sbit型
          • 1、bit型變量
            • 可以但不限于在位尋址區(qū)開辟內(nèi)存空間,作狀態(tài)變化
            • 51單片機中有許多可以按位(bit)進行讀寫操作的存儲單元,如片內(nèi)RAM中位地址為00~7FH的128個位存儲單元。每個位存儲單元都可存放0或1兩個位型常量。與這些位存儲單元相對應的變量稱為位型變量或bit型變量。
            • 位型變量的一般定義形式也與整型變量基本相同,即類型說明符 變量名〔=0或1〕;例如:bit abc =1;(指定變量abc為位型變量,初值為1)
          • 2、sfr型變量
            • 80C51單片機內(nèi)部有21個特殊功能寄存器(SFR),除了DPTR為16位寄存器外(在SFR中,DPTR也被分成了DPH和DPL兩個8位的)(PC為16位寄存器但是不屬于SFR),其余都是8位寄存器,每個SFR都有特定的字節(jié)地址,部分SFR中還有獨立的位地址。
            • sfr型變量的一般定義形式為:類型說明符 變量名=8位地址常量;
              • 類型說明符:
                • 8位SFR變量的sfr,16位SFR變量的sfr16
                • 8位地址常量是指有意義的SFR字節(jié)地址
                • 例如:
                  • sfr P1 = 0x90;//指定變量P1為sfr型變量,對應地址為0x90
                  • sfr PSW = 0xd0; //指定變量PSW為sfr型變量,對應地址為0xd0
                  • sfr16 DPTR = 0x82; //指定DPTR為sfr16型變量,即DPL=0x82,DPH=0x83
          • 3、sbit型變量
            • “相對位置”是指相對于已定義過SFR名稱或可位尋址字節(jié)地址的位置,其中0表示最低位,以此類推。

            • 如前所述,sbit是用于定義SFR中具有位地址變量的類型說明符,變量定義可以有以下3種不同的用法:
              • 第1種(絕對位地址):sbit 位變量名=位地址;
                • 例如, sbit CY = 0xD7;
              • 第2種(相對位地址):sbit 位變量名=可位尋址的SFR字節(jié)地址^相對位置
                • 例如,sbit CY = 0xD0^7;
              • 第3種(相對位位置):sbit 位變量名=可位尋址變量^相對位置
                • 例如,sbit CY = PSW^7;
          • 還需要注意幾點:
            • ①雖然bit和sbit定義的都是位型變量,但兩者還是有很大區(qū)別的:
              • bit型變量的位地址是由編譯器為其隨機分配的(定義時不能用戶指定),位地址范圍是在片內(nèi)RAM的可位尋址區(qū)(bdata區(qū))中;
              • sbit型變量的位地址則是由用戶指定的,位地址范圍是在可位尋址的SFR單元內(nèi)(利用bdata限定變量存儲類型后可將位地址范圍擴大到bdata區(qū))。
            • ②sfr型變量和sbit型變量都必須定義為全局變量,即必須在所有C51函數(shù)之前進行定義,否則就會編譯出錯。
            • 程序中如果使用了頭文件reg51.h后,原先定義P1變量的語句(sfr P1=0x90;)便可省略。但由于頭文件reg51.h中并未對P0~P3寄存器中的位單元(如P1.0)進行sbit定義,因此程序中還需重新定義如p1_0的sbit型變量。
            • bit和unsigned char這兩種數(shù)據(jù)類型都可以直接支持單片機機器指令,因此代碼的執(zhí)行效率最高,編程時應盡量選用bit和unsigned char這兩種變量。
              • signed char雖然也只占有一個字節(jié),但CPU需要進行額外的操作來測試代碼的符號位,這無疑會降低代碼效率。
              • 使用浮點型變量時,編譯系統(tǒng)將調(diào)用相應的庫函數(shù)來保證運算精度,這將明顯增加運算時間和程序代碼長度,因此,不是十分必要時應盡量避免使用float數(shù)據(jù)類型。
          • C51常用數(shù)據(jù)類型一覽表

      • 〔存儲類型〕
        • 為了合理使用51單片機的存儲空間,需要進一步細化存儲區(qū)域的組成,為此C51將3個物理存儲空間細分成6個存儲類型區(qū)。

        • 片內(nèi)低128B RAM空間被劃分成data和bdata兩個存儲區(qū),8052型單片機專有的高128B RAM被作為idata存儲區(qū),片內(nèi)外統(tǒng)一ROM空間被作為code存儲區(qū),片外RAM空間被劃分成xdata和pdata兩個存儲區(qū)。
        • 若省略,則默認為data區(qū)(此時位于SMALL編譯模式下)

          • 實際應用中,用戶對單片機存儲器的需求差別很大,為此,C51編譯器中設立了3種編譯模式供用戶選擇。
            • 在SMALL編譯模式下,如果變量定義語句中省略了存儲類型參數(shù),則系統(tǒng)會自動默認采用data存儲類型。同理,COMPACT編譯模式和LARGE編譯模式時的默認存儲類型分別是pdata和xdata。
              • 例如,在SMALL編譯模式下,變量a的定義語句char a;等價于char data a;。而在LARGE編譯模式下,變量a的定義語句char a;則等價于char xdata a;。
            • 編譯模式可以通過μVision3工程配置窗口的“Target”頁進行指定。
        • 不同存儲區(qū)各有特點,適合不同類型的變量。(注意:idata區(qū))

        • 由此可見,變量在定義時,只有將其數(shù)據(jù)類型和存儲類型的信息都展現(xiàn)在變量定義式中才能保證編譯器順利工作。
      • 變量名
        • C51語言中規(guī)定:
          • 變量名可以由英文字母、數(shù)字和下劃線3種字符組成;
          • 第1個字符必須為字母或下劃線(即不能為數(shù)字);
          • 變量名長度無統(tǒng)一規(guī)定(視編譯系統(tǒng)而定),一般為不超過8個字符,超過部分有可能被編譯系統(tǒng)舍棄。
          • 例如:sum,_total,month,Student,lotus_3,BASIC,li_ling都是合法的變量名。M.D.John,¥123,3D64,a>b都是不合法的變量名。
        • 使用變量名時還應注意:
          • 1、編譯系統(tǒng)會將大寫字母和小寫字母認為是兩個不同的字符,即變量名是大小寫敏感的,如SUM和sum,習慣上變量名用小寫字母表示,常量標識符用大寫字母表示。(匯編語言不敏感)
          • 2、在選擇變量名時,最好做到“見名知意”,即選用有一定含意的英文單詞(或其縮寫)作變量名。
          • 3、編譯系統(tǒng)規(guī)定的關(guān)鍵詞不得作為變量名,其中包括標準C語言的32個關(guān)鍵字和C51語言擴展的21個新關(guān)鍵字。

          • 強調(diào):頭文件中定義的變量(SFR)都是大寫的,若程序采取小寫變量則需要重新定義。
    • 4.2.2 C51的指針

      • C語言指針的一般定義形式為:數(shù)據(jù)類型 *指針變量名 [= &被指向變量名];

         

        • 其中,指針變量指向一個由“數(shù)據(jù)類型”說明的變量。被指向變量和指針變量都位于C編譯器默認的內(nèi)存區(qū)中。
        • 舉例

      • C51指針變量定義的一般形式為:數(shù)據(jù)類型〔存儲類型1〕*〔存儲類型2〕變量名;
        • 數(shù)據(jù)類型是被指向變量的數(shù)據(jù)類型,如char、int、long等;
        • 存儲類型1是指被指向變量所在的存儲類型,如data, code,xdata等,缺省時根據(jù)被指向變量的定義語句(地址賦值關(guān)系)確定;
        • 存儲類型2是指針變量所在的存儲類型,如data,code,xdata等缺省時根據(jù)C51 編譯模式的默認值確定;
        • 指針變量名可按C51變量名的規(guī)則選取。
      • * —— 取變量內(nèi)的值
      • $ —— 取地址
      • 實例
        • 圖1

        • 圖2

        • 圖3

  • 4.3 C51與匯編語言的混合編程

  • 4.4 C51仿真開發(fā)環(huán)境

  • 4.5 C51應用編程初步

    • 4.5.1 I/O端口的簡單應用

      • 1. 基本輸入/輸出單元與編程

        • 按鍵檢測與控制是單片機應用系統(tǒng)中的基本輸入/輸出功能。
        • 發(fā)光二極管
          • 發(fā)光二極管作為輸出狀態(tài)顯示設備,具有電路簡單,功耗低,壽命長,響應速度快等特點。
          • 發(fā)光二極管與單片機接口可以采用低電平驅(qū)動和高電平驅(qū)動兩種方式。

             

          • 由于低電平驅(qū)動時單片機可提供較大輸出電流2.4.1 P1口 ,故低電平驅(qū)動最為常用。
          • 發(fā)光二極管限流電阻通常取值100歐姆至200歐姆。
        • 按鍵或開關(guān)
          • 按鍵或開關(guān)是最基本的輸入設備,與單片機相連的簡單方式是直接與I/O口線相連。

          • 當按鍵或開關(guān)閉合時,對應口線的電平就會發(fā)生反轉(zhuǎn),CPU通過讀端口電平即可識別是哪個按鍵或開關(guān)閉合。(當按鍵未按下壓時,Px.n端口為高電平;按壓按鍵后為低電平。)
      • 2. LED數(shù)碼管原理與編程

        • LED數(shù)碼管具有顯示亮度高,響應速度快的特點。
        • 最常用的是七段LED顯示器,該顯示器內(nèi)部有七個條形發(fā)光二極管和一個小圓點發(fā)光二極管。

        • 這種顯示器分共陰極和共陽極兩種:
          • 共陽極LED顯示器的發(fā)光二極管的所有陽極連接在一起,為公共端;
          • 共陰極LED顯示器的發(fā)光二極管的所有陰極連接在一起,為公共端。
        • LED數(shù)碼管的a~g7個發(fā)光二極管加正電壓點亮,加零電壓熄滅,不同亮暗的組合的組合能形成不同的字形,這種組合稱為段碼。

        • a~g、dp應接在單片機上,更適合共陰極
        • 動態(tài)顯示時,共陰極和共陽極均不行,因為電流不夠,燈不亮,應再加驅(qū)動。
    • 4.5.2 I/O端口的進階實踐

      • 1. 數(shù)碼管動態(tài)顯示原理與編程

        • LED數(shù)碼管與單片機的接口方式有靜態(tài)顯示接口和動態(tài)顯示接口之分。
          • 靜態(tài)顯示接口
            • 靜態(tài)顯示接口是一個并行口接一個數(shù)碼管(一個數(shù)碼管的引腳獨立占據(jù)一根I/O口線)。
            • 優(yōu)點:被顯示數(shù)據(jù)只要送入并行口后就不再需要CPU干預,因而顯示效果穩(wěn)定。
            • 缺點:占用資源較多
          • 動態(tài)顯示接口
            • 所有數(shù)碼管的輸入端(段碼線)對應并聯(lián)在一個IO口上,而每位數(shù)碼管的公共端(位碼線)分別由一位IO線控制;
            • 由IO口輸出的顯示碼可被所有數(shù)碼管收到,但只有滿足位碼線電平要求的數(shù)碼管可被驅(qū)動。
            • 動態(tài)顯示編程原理:
              • 快速(如10ms)切換段碼值和位碼值,使每一時刻只有一只數(shù)碼管被驅(qū)動。利用視力暫留特性,可獲得連續(xù)顯示效果。
              • 優(yōu)點:占用IO口資源較少(節(jié)省空間)
              • 缺點:需要CPU不斷進行干預(占用機時)
      • 2. 行列式鍵盤原理與編程

        • 獨立式鍵盤的電路簡單,易于編程,但占用的I/O口線較多,當需要較多按鍵時可能產(chǎn)生IO口資源緊張問題。

        • 行列式鍵盤
          • 將I/O口分為行線和列線,按鍵跨接在行線和列線上,列線通過上拉電阻接正電源。
          • 行列式鍵盤的特點:占用I/O口線少,但軟件過程復雜。
          • 行列式鍵盤的檢測可采用軟件掃描查詢法進行,級根據(jù)按鍵壓下前后,所在行線的端口電平是否發(fā)生反轉(zhuǎn),判斷有無按鍵閉合動作。
            • 鍵盤列掃描(各行電平同時置1,各列電平輪流清0)
            • 按鍵閉合狀態(tài)判斷
            • 查找閉合鍵鍵號
        • 按鍵抖動
          • 按鍵抖動會造成按鍵狀態(tài)不易確定的問題,需要采用措施消除抖動影響。
          • 單片機通常采用軟件延時10ms的方法來消除抖動的影響。
          • 當檢測到有鍵按下時,先延時10ms,然后再檢測按鍵狀態(tài),若仍是閉合狀態(tài),則認為真正有鍵按下。
          • 當需要檢測到按鍵釋放時,也需做同樣的處理。
  • 本章小結(jié)

    • 1. C51普通變量的一般定義形式為: (存儲種類) 數(shù)據(jù)類型 (存儲類型) 變量名;
      • 存儲種類包括auto、 extermn、 static和register4 個說明符,缺省時為auto型。
      • 常用數(shù)據(jù)類型為char和int, C51擴充類型為bit、 sfr、 sfr16和sbit。
      • 存儲類型包括data、 bdata、 idata、 pdata、 xdata和code6個具體類型,缺省類型由編譯模式指定。
      • 變量名可由字母、數(shù)字和下畫線3種字符組成,首字符應為字母或下畫線。
    • 2. C51指針的一般定義形式為:數(shù)據(jù)類型 (存儲類型1) * (存儲類型2) 指針變量名;
      • 數(shù)據(jù)類型是被指向變量的數(shù)據(jù)類型。
      • 存儲類型1是被指向變量的存儲類型,缺省時需根據(jù)該變量的定義確定。
      • 存儲類型2是指針變量的存儲類型,缺省時根據(jù)C51編譯模式確定。
      • 變量名可由字母、數(shù)字和下畫線3種字符組成,首字符應為字母或下畫線。
    • 3. 在Keil下進行C51編程的方法是:建立工程--→輸入源程序--→保存為.c文件--→添加文件到工程--→檢查編譯參數(shù)--→編譯連接--→下載調(diào)試。
    • 4.鍵盤分為獨立式按鍵和行列式鍵盤兩種基本類型,前者:每只按鍵獨立占用1個IO口,電路簡單,易于編程,但占用I/O口較多。后者:所有按鍵按序跨接在行線和列線上,占用較少系統(tǒng)資源,但編程復雜,占用機時較多。
    • 5.數(shù)碼管顯示分為靜態(tài)顯示和動態(tài)顯示兩種工作方式。前者:每個數(shù)碼管的引腳獨立占據(jù)1根1/O口線。后者:所有數(shù)碼管的段碼線對應并聯(lián)接在1個并行口上,每只數(shù)碼管的公共端分別由1位IO線控制。
    • 6.數(shù)碼管分為共陰型和共陽型兩種基本類型,由于段碼與顯示值之間沒有規(guī)律可循,通常將字模存放在數(shù)組中,通過查表的方式使用。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多