伊人久久大香线蕉综合bd高清,国产三级精品三级在线播放 ,欧美性猛xxxxx精品,久久久久国产精品熟女影院

0 賣盤信息
BOM詢價
您現在的位置: 首頁 > 電子資訊 >基礎知識 > 單片機編程軟件很簡單(18),Keil單片機編程軟件對ANSIC的擴展學習

單片機編程軟件很簡單(18),Keil單片機編程軟件對ANSIC的擴展學習

來源: 21ic
2020-12-10
類別:基礎知識
eye 31
文章創建人 拍明

原標題:單片機21ic編程軟件很簡單(18),Keil單片機編程軟件對ANSIC的擴展學習

在單片機編程中,Keil單片機編程軟件(特別是Keil C51)對標準ANSI C進行了一系列擴展,以適應8051系列單片機的硬件特性。以下是對Keil C51對ANSI C擴展的詳細學習:

一、Keil C51擴展關鍵字

Keil C51在ANSI C的基礎上增加了一些特定的關鍵字,以支持8051單片機的特殊功能。例如,C51 V4.0版本有以下擴展關鍵字:

  • _at_:用于指定變量的絕對地址。

  • idatabdataxdatapdata:用于聲明變量的存儲類型,分別對應不同的內存區域。

  • sfrsfr16:用于聲明特殊功能寄存器(SFR),分別用于字節尋址和字尋址。

  • sbit:用于聲明可位尋址的特殊功能寄存器的位。

  • interrupt:用于聲明中斷服務函數。

  • using:用于指定中斷服務函數使用的寄存器組。

  • reentrant:用于聲明可重入函數。

二、內存區域與存儲類型

Keil C51支持多種內存區域,每種內存區域都有特定的用途和訪問方式。通過不同的存儲類型關鍵字,可以指定變量存儲在不同的內存區域中。

  • 程序存儲器(Code Area):用于存放程序代碼,最大可達64KB。

  • 內部數據存儲器(Internal Data Memory)

    • data:直接尋址區,為內部RAM的低128字節(00H~7FH)。

    • idata:間接尋址區,包括整個內部RAM區(00H~FFH)。

    • bdata:可位尋址區,位于20H~2FH。

  • 外部數據存儲器(External Data Memory)

    • xdata:可指定多達64KB的外部直接尋址區,地址范圍0000H~0FFFFH。

    • pdata:能訪問1頁(256Bytes)的外部RAM,主要用于緊湊模式(Compact Model)。

  • 特殊功能寄存器(SFR Memory):提供128Bytes的SFR尋址區,可位尋址、字節尋址或字尋址。

QQ_1741772419239.png

三、變量類型與數據類型

Keil C51提供了一些擴展的數據類型,以更好地支持8051單片機的硬件操作。

  • bit型變量:用于表示位變量,值為0或1,通常存儲在內部RAM的20H~2FH區域。

  • sbit型變量:從字節中定義的位變量,用于訪問特殊功能寄存器的位。

  • sfr和sfr16型變量:用于聲明特殊功能寄存器,分別用于字節尋址和字尋址。

此外,Keil C51還支持ANSI C中的所有標準數據類型,如charenumshortintlongfloat等。

四、指針

Keil C51支持一般指針(Generic Pointer)和存儲器指針(Memory-Specific Pointer)。

  • 一般指針:聲明和使用方式與標準C相同,但可以指定指針的存儲類型。例如,long *state;為一個指向long型整數的指針,而state本身則依存儲模式存放。

  • 存儲器指針:在聲明時即指定了存儲類型,如char data *str;表示str指向data區中的char型數據。這種指針存放時只需一個字節或兩個字節(根據存儲類型而定),因為只需存放偏移量。

五、函數屬性

Keil C51對ANSI C的函數聲明進行了擴展,以支持中斷服務函數等特殊功能。

  • 中斷函數聲明:使用interrupt關鍵字聲明中斷服務函數,并指定中斷號。例如,void serial_ISR() interrupt 4;表示聲明一個中斷號為4的中斷服務函數。

  • 指定存儲模式:使用smallcompactlarge等關鍵字指定函數的存儲模式,以控制函數內部變量的存儲區域。

  • 選通用存儲工作區:使用using關鍵字指定中斷服務函數使用的寄存器組。

六、其他擴展

除了上述擴展外,Keil C51還支持一些其他特性,如絕對地址訪問、內聯匯編等。這些特性為開發者提供了更多的靈活性和控制權,以便更好地適應不同的硬件需求和應用場景。

學習建議

  1. 閱讀官方文檔:Keil官方提供了詳細的文檔和手冊,是學習Keil C51擴展特性的最佳途徑。

  2. 實踐操作:通過編寫實際的單片機程序,應用所學的擴展特性,加深對Keil C51的理解。

  3. 參考示例代碼:Keil軟件通常包含大量的示例代碼,這些代碼展示了如何使用各種擴展特性。通過閱讀和分析示例代碼,可以更快地掌握Keil C51的使用方法。

通過深入學習和實踐,您可以充分利用Keil C51對ANSI C的擴展特性,開發出更高效、更可靠的單片機程序。


責任編輯:David

【免責聲明】

1、本文內容、數據、圖表等來源于網絡引用或其他公開資料,版權歸屬原作者、原發表出處。若版權所有方對本文的引用持有異議,請聯系拍明芯城(marketing@iczoom.com),本方將及時處理。

2、本文的引用僅供讀者交流學習使用,不涉及商業目的。

3、本文內容僅代表作者觀點,拍明芯城不對內容的準確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨立判斷做出的,請讀者明確相關結果。

4、如需轉載本方擁有版權的文章,請聯系拍明芯城(marketing@iczoom.com)注明“轉載原因”。未經允許私自轉載拍明芯城將保留追究其法律責任的權利。

拍明芯城擁有對此聲明的最終解釋權。

相關資訊

資訊推薦
云母電容公司_云母電容生產廠商

云母電容公司_云母電容生產廠商

開關三極管13007的規格參數、引腳圖、開關電源電路圖?三極管13007可以用什么型號替代?

開關三極管13007的規格參數、引腳圖、開關電源電路圖?三極管13007可以用什么型號替代?

74ls74中文資料匯總(74ls74引腳圖及功能_內部結構及應用電路)

74ls74中文資料匯總(74ls74引腳圖及功能_內部結構及應用電路)

芯片lm2596s開關電壓調節器的中文資料_引腳圖及功能_內部結構及原理圖_電路圖及封裝

芯片lm2596s開關電壓調節器的中文資料_引腳圖及功能_內部結構及原理圖_電路圖及封裝

芯片UA741運算放大器的資料及參數_引腳圖及功能_電路原理圖?ua741運算放大器的替代型號有哪些?

芯片UA741運算放大器的資料及參數_引腳圖及功能_電路原理圖?ua741運算放大器的替代型號有哪些?

28nm光刻機卡住“02專項”——對于督工部分觀點的批判(睡前消息353期)

28nm光刻機卡住“02專項”——對于督工部分觀點的批判(睡前消息353期)

拍明芯城微信圖標

各大手機應用商城搜索“拍明芯城”

下載客戶端,隨時隨地買賣元器件!

拍明芯城公眾號
拍明芯城抖音
拍明芯城b站
拍明芯城頭條
拍明芯城微博
拍明芯城視頻號
拍明
廣告
恒捷廣告
廣告
深亞廣告
廣告
原廠直供
廣告