單片機C語言-第2章51單片機硬件及C51編程基礎-4課件_第1頁
單片機C語言-第2章51單片機硬件及C51編程基礎-4課件_第2頁
單片機C語言-第2章51單片機硬件及C51編程基礎-4課件_第3頁
單片機C語言-第2章51單片機硬件及C51編程基礎-4課件_第4頁
單片機C語言-第2章51單片機硬件及C51編程基礎-4課件_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2.4對單片機主要資源的控制2.4.1特殊功能寄存器的定義2.4.2絕對地址的訪問2.4.3位變量的定義2.4對單片機主要資源的控制1、采用關鍵字進行定義(1)sfr特殊功能寄存器名字=特殊寄存器地址80C51單片機片內RAM中與idata空間相重疊的高128字節(jié)(地址范圍80~FFH)稱為特殊功能寄存器(SFR)區(qū),單片機內部集成功能的操作都是通過特殊功能寄存器來實現(xiàn)的。為了能夠直接訪問80C51系列單片機內部特殊功能寄存器,C51編譯器擴充了關鍵字sfr和sfr16,利用這種擴充關鍵字可以在C51源程序中直接定義80C51單片機的特殊功能寄存器。例如:sfrP0=0x80;/*定義P0寄存器,地址為0x80*/sfrSCON=0x90;/*定義串行口控制寄存器,地址為0x90*/2.4.1特殊功能寄存器的定義1、采用關鍵字進行定義2.4.1特殊功能寄存器的定義(2)sfr16:在80C51單片機中,特殊功能寄存器經常組合成16位來使用。采用關鍵字sfr16可以定義這種16位的特殊功能寄存器。當SFR的高端地址直接位于低端地址之后,采用sfr16直接訪問。sfr16T2=oxcc;//定時器T2低8位地址為0xcc,

高8位地址為0xcd2、通過頭文件訪問SFR:把頭文#include<reg51.h>加入到程序中。(2)sfr16:在80C51單片機中,特殊功能寄存器經常組(1)采用sbit定義

關鍵字sbit用于定義可獨立尋址訪問的位變量,簡稱可位尋址變量。C51編譯器提供一個存儲器類型bdata,帶有bdata存儲器類型的變量定位在80C51單片機片內RAM的可位尋址區(qū),帶有bdata存儲器類型的變量可以進行字節(jié)尋址也可以進行位尋址,因此對bdata變量可用sbit指定其中任意位為可位尋址變量。

3、SFR中位定義(1)采用sbit定義3、SFR中位定義(2)定義方法有如下三種:1)sbit位變量名=特殊功能寄存器名^位置當可尋址位位于特殊功能寄存器中時可采用這種方法,“位位置”是一個0~7之間的常數(shù)。sfrPSW=0xD0;sbitOV=PSW^2;

2)sbit位變量名=字節(jié)地址^位置這種方法以一個常數(shù)(字節(jié)地址)作為基地址,該常數(shù)必須在0x80H~0xFF之間?!拔晃恢谩笔且粋€0~7之間的常數(shù)。sbitOV=0XD0^2;

3)sbit位變量名=位地址這種方法將位的絕對地址賦給位變量,位地址必須位于0x80~0xFF之間。

sbitOV=0XD0;(2)定義方法有如下三種:sbitOV=0XD0;2.4.2絕對地址的訪問兩種方法:1、絕對宏:采用頭文件#include<absacc.h>,即可使用其中的宏來訪問絕對地址2.4.2絕對地址的訪問兩種方法:例題:#include<absacc.h> #definePAXBYTE[0xffec]#defineNRAMDBYTE[0x40] voidmain(void){ PA=0x3A; NRAM=0x01; }例題:#include<absacc.h> 2、_at_關鍵字[存儲類型]數(shù)據(jù)類型變量名_at_地址常數(shù);例題:dataunsignedcharx1_at_0x40; xdataunsignedintx2_at_0x2000;

voidmain(void){ x1=0xff; x2=0x1234; while(1);}2、_at_關鍵字[存儲類型]數(shù)據(jù)類型變量名_at2.4.3SFR中的位及位變量的C51定義1、SFR的位定義sbit位名=SFR名^位置;如:sbitLED0=P1^0;2、位變量的C51定義(1)采用關鍵字bit進行定義biti1;2.4.3SFR中的位及位變量的C51定義1、SFR的位在C51程序中可以定義bit類型的變量、函數(shù)、函數(shù)參數(shù)及返回值。例如:staticbitdone_flag=0;/*bit類型變量*/bittestfunc(/*bit類型函數(shù)*/bitflag1,/*bit類型函數(shù)參數(shù)*/bitflag2){……;return(0);/*bit類型返回值*/}所有bit類型的變量都被定位在80C51片內RAM的可位尋址區(qū)。在C51程序中可以定義bit類型的變量、函數(shù)、函數(shù)參數(shù)及返回(2)可位尋址對象:位變量的存儲類型只能是bdata,使用時先說明字節(jié)變量的數(shù)據(jù)類型和存儲類型,然后采用bit定義可尋址訪問的對象位。例如,可先定義變量的數(shù)據(jù)類型和存儲器類型如下:intbdataibase;/*定義ibase為bdata整型變量*/charbdatabary[4];/*定義bary[4]為bdata字符型數(shù)組*/然后使用sbit定義可位尋址變量如下:sbitmybit0=ibase^0;/*定義mybit0為ibase第0位*/sbitmybit15=ibase^15;/*定義mybit15為ibase第15位*/sbitAry07=bary[0]^7;/*定義Ary07為bary[0]第7位*/sbitAry37=bary[3]^7;/*定義Ary37為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論