㈠ 51單片機c語言編程中,有很多種數據類型。定義數據類型是按照值域定義,但如果要定義一個a,a=2,
2的16進制是0x02;,2進制是0000 0010,也就是說給a的值為0x02
unsigned char型16進制是0x00~0xff,2進制是0000 0000~1111 1111
unsigned int型16進制是0x0000~0xffff,2進制是0000 0000 0000 0000~1111 1111 1111 1111
unsigned long型16進制是0x000000~0xffffff,2進制是0000 0000 0000 0000 0000 0000~1111 1111 1111 1111 1111 1111
如果用char型的就是0000 0010
如果用int型的就是0000 0000 0000 0010
如果用long型的就是0000 0000 0000 0000 0010
如果只是255以下用int型就會浪費一個位元組,不管是ram 還是 flash
因為它不管是存儲還是運行前面都會多一個0x00
㈡ 什麼叫c51十六進制
C51 是單片機型號的一種,C51是51系列單片機編程中的數據格式為十六進制
相關資料:
就51系列而言,由於Intel公司將其內核使用權以專利互換或出售的形式轉給世界許多著名IC製造商,如PHILIPS、SIEMENS、AMD、ATMEL、SST、STC等,這樣51系列就變成有眾多製造廠商支持的、發展出上百個品種的大家族。到目前為止,其它任何一種單片機系列均未發展到如此規模。
這類單片機具有集成度高、性能價格比優越、貨源充足等優點,在工業測量領域內獲得了極為廣泛的應用。51系列單片機是我國的主流機種,它的開發工具(模擬器、編程器、編譯系統等)也很容易購買到,而且價格較底。我們學習單片機也選擇從51系列開始。
在51系列單片機中,按ROM(程序存儲器)的類型來分,可大致分為三種:1、片內帶內部掩膜ROM的(8051)它是由生產廠家用最後一道工序掩膜工藝來寫入程序的,用戶不能修改。用於大批量的產品。2、片外掛接ROM的(8031),這類單片機本身不含ROM,需要用戶自己外接,主要用在早期的51系列單片機開發中。3、片內帶EPROM的(8751),這類單片機目前常用的有OTP型和FLASH型。
Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟體開發系統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。用過匯編語言後再使用C來開發,體會更加深刻。
㈢ 51單片機數據類型轉換 高分!
假如你的串口發送函數叫SendData,接收函數叫RecvData,參考如下代碼
發送端:
intSendData(unsignedchar*pSendBuf,unsignedintnSendLen);
intRecvData(unsignedchar*pRecvBuf,unsignedintnBufLen);
voidmain(void)
{
floatf;
inti;
doubled;
SendData((unsignedchar*)&f,sizeof(float));
SendData((unsignedchar*)&i,sizeof(int));
SendData((unsignedchar*)&d,sizeof(double));
}
接收端:
voidmain(void)
{
floatf;
inti;
doubled;
RecvData((unsignedchar*)&f,sizeof(float));
RecvData((unsignedchar*)&i,sizeof(int));
RecvData((unsignedchar*)&d,sizeof(double));
}
宗旨就是,先取其他類型數據的地址,用&符號,然後把地址轉換為unsigned char*型,就可以通過*(unsigned char)的方式或(unsigned char)[]的方式訪問了,就這么簡單,希望可以幫到你.
㈣ C51單片機存儲器類型有哪些
c51存儲器類型有bit
sbit
data
xdata
bdata
pdata
sfr
code等,可能不全面有遺漏
對應的物理存儲器是:
bit,即位數據:數據存儲器位定址區,即20h~2fh的范圍,共16個位元組,16*8=128個位,位地址00h~7fh,連續的。
sbit:特殊功能寄存器中的位數據:只有能夠被8整除的那些特殊功能寄存器中的各個位才能被稱為sbit,位地址80h~ffh,不連續的,間斷的。
data:數據區,對51為00h~7fh共128個位元組,對52為00h~ffh,共256個位元組,用mov定址,前128用直接定址或寄存器(r0~r7)定址,後128用r0、r1間接定址。
xdata:外部數據區,0000h~ffffh連續,用dptr間接定址(movx指令)
bdata:位定址去的位元組,20h~2fh
sfr:特殊功能寄存器(80h~ffh),直接定址
pdata:外部數據區,p2口保持數據,用r0r1間接定址(movx指令)
code:程序存儲器,用movc指令只讀
㈤ C51單片機中的數據類型主要有 哪幾種至少寫出四種。
bit 型,只能是0和1
unsigned char 可以表示 0到255
unsigned int 可以表示 0到65535
unsigned long int
float
double float
㈥ 51單片機中SBUF中讀出的數據類型
SBUF讀出來的是ASCII碼,數據類型當然是unsigned char,所以如果你從PC發一個數字9給單片機,單片機實際接收到的數據是0x39(9對應的ASCII碼),所以你在程序中判斷的值應該是0x39而不是9。希望我的回答對你有幫助,謝謝!
㈦ C51程序設計中在定義變數類型時一般要求定義成什麼
C語言中,變數一般有兩種屬性,分別是:存儲類別、數據類型。
例如定義一個變數:static unsigned char var = 0; 上述語句中,static(靜態的)為變數的存儲類別,unsigned char(無符號字元型)為變數的數據類型,var為變數名,初始化值為0。
下面給你說明幾點。
存儲類別:即變數在代碼運行期間的存儲方式。c語言提供了4種,分別是:auto(自動的)、static(靜態的)、extern(外部的)、register(寄存器的)。
默認情況下,如果不加存儲類別,則該變數是auto類的,該關鍵字可以省略,其它三個不能省。static的用法是,定義洞梁滲一個局部變數,該變數只進行一次初始化,在程序運行期間一直佔用著內存,每次調用完畢都保持本次調用完後得到的值(而auto調用完一次即釋放內存,下次調用用從新進行初始化)。extern:一個變數被定義成全局變數,加上該關鍵字,意思是提醒編譯器,該變數是在別的C文件中(即你想再一個C文件中調用另外一個C文件的變數,需用該關鍵字進行引入)。register:渣沒定義一個變數為該存儲類型,建議編譯器將該變數存放在CUP內部寄存器中,以便該變數頻繁調用而提高代碼運行速度。注意,它是建議型的,一般用在循環次數多的地方,因為變數一般存放在內存中,每次CUP訪問它都得跑到內存去提取,次數多了,影響運行速度。放在內部寄存器就快多了(當然放不放我們不知道,只是建議編譯器這么做),這種變數也是用完就釋放。
數據類型:C語言提供了三種基本數據類型:char型 int型 float型。
默認情況下,char/int/float是指有符號的,即前面都省略了signed關鍵字,如果需要定義成無符號型的,需在前面加上不可省略的unsigned關鍵字。char佔一個位元組,int佔2個位元組(在有的環境下是4個位元組),float佔4個。表納脊示的數據范圍也比較明確,char一個位元組8位,共256種狀態,有符號的最高位表示符號,0為正,1為負,其餘7位表示數字位,2的7次方。int型16位 的,一樣。float型的數據必須要有小數點,一般float能表示6~7位有效數字。上述的數據類型中,如果范圍還不夠大,還可以定義成long型,即長整型,佔4個位元組,而浮點型可以定義成double型,可以表示16~17為小數,當然,它也只佔四個位元組。
其它還有指針型的變數,還有構造型的如結構體、共同體、枚舉等等。學單片機的還有bit型的。C語言概念很多,但都很簡單。重點是在用。世界上沒有純記憶的技術,只有一邊用一邊記憶的技術。
看到那麼多頭疼了吧?沒事,小夥子,哥看好你。
木棉城路過。
㈧ 51單片機long,double,float,int范圍是多大,各多少位元組
在keilC51或者iar for c8051編譯器下:
一、int 占兩個位元組 范圍:-32768~+32767
二、long佔四個位元組 范圍:-2147483648~+2147483647
三、float佔四個位元組 范圍:3.40E+38 ~ +3.40E+38
四、double佔8個位元組 范圍:-1.79E+308 ~ +1.79E+308
51單片機是對所有兼容Intel 8031指令系統的單片機的統稱。該系列單片機的始祖是Intel的8004單片機,後來隨著Flash rom技術的發展,8004單片機取得了長足的進展,成為應用最廣泛的8位單片機之一。
(8)51單片機中的基本數據類型擴展閱讀:
51單片機功能特性
1、可以模擬63K程序空間,接近64K 的16位地址空間;
2、可以模擬64Kxdata 空間,全部64K 的16位地址空間;
3、可以真實模擬全部32 條IO腳;
4、完全兼容keilC51 UV2 調試環境,可以通過UV2 環境進行單步,斷點, 全速等操作;
5、可以使用C51語言或者ASM匯編語言進行調試 ;
6、可以非常方便地進行所有變數觀察,包括滑鼠取值觀察,即滑鼠放在某 變數上就會立即顯示出它此的值;
7、可選 使用用戶晶振,支持0-40MHZ晶振頻率;
8、片上帶有768位元組的xdata,您可以在模擬時選 使用他們,進行xdata 的模擬;
9、可以模擬雙DPTR 指針;
10、可以模擬去除ALE 信號輸出. ;
11、自適應300-38400bps 的所有波特率通訊;
12、體積非常細小,非常方便插入到用戶板中.插入時緊貼用戶板,沒有連接電纜,這樣可以有效地減少運行中的干擾,避免模擬時出現莫名其妙的故障;
13、模擬插針採用優質鍍金插針,可以有效地防止日久生銹,選擇優質園腳IC插座,保護模擬插針,同時不會損壞目標板上的插座. ;
14、模擬時監控和用戶代碼分離,不可能產生不能模擬的軟故障;
15、RS-232介面不計成本採用MAX202集成電路,串列通訊穩定可靠,絕非一般三極體的簡易電路可比。