第二課C51單片機教程_第1頁
第二課C51單片機教程_第2頁
第二課C51單片機教程_第3頁
第二課C51單片機教程_第4頁
第二課C51單片機教程_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、KEIL C51的應(yīng)用C語言是一種編譯型程序設(shè)計語言,它兼顧了多種高級語言的特點,并具備匯編語言的功能。目前,使用C語言進行程序設(shè)計已經(jīng)成為軟件開發(fā)的一個主流。用C語言開發(fā)系統(tǒng)可以大大縮短開發(fā)周期,明顯增強程序的可讀性,便于改進和擴充。而針對8051的C語言日趨成熟,成為了專業(yè)化的實用高級語言。1C語言作為一種非常方便的語言而得到廣泛的支持,國內(nèi)最通用的是Keil C51.C語言程序本身不依賴于機器硬件系統(tǒng),基本上不作修改就可將程序從不同的單片機中移植過來。C提供了很多數(shù)學(xué)函數(shù)并支持浮點運算,開發(fā)效率高,故可縮短開發(fā)時間,增加程序可讀性和可維護性。 C-51的特點2C-51與ASM-51相比,

2、有如下優(yōu)點:1.對單片機的指令系統(tǒng)不要求了解,僅要求對8051 的存貯器結(jié)構(gòu)有初步了解;2.寄存器分配、不同存貯器的尋址及數(shù)據(jù)類型等細節(jié)可由編譯器管理;3.程序有規(guī)范的結(jié)構(gòu),可分成不同的函數(shù),這種方式可使程序結(jié)構(gòu)化;4.具有將可變的選擇與特殊操作組合在一起的能力,改善了程序的可讀性;5.提供的庫包含許多標(biāo)準(zhǔn)子程序,具有較強的數(shù)據(jù)處理能力;6.由于具有方便的模塊化編程技術(shù),使已編好程序可容易地移植;3C51存儲類型存儲類型尋址空間數(shù)據(jù)長度值域范圍data片內(nèi)直接尋址 RAM80127idata片內(nèi)間接尋址 RAM80255pdata分頁尋址片外 RAM802554存儲類型尋址空間數(shù)據(jù)長度值域范圍

3、xdata片外數(shù)據(jù)存儲 (64K)16065535code片內(nèi)統(tǒng)一編址ROM(64K)16065535bdata片內(nèi)可位尋址的RAM(16byet)101275C51的數(shù)據(jù)聲明的一般格式如下類型說明符修飾符 標(biāo)識符=初值例如:unsigned char code Flag = 0 x0f; 就是聲明一個無符號的char型變量Flag,并給他賦初值為0 x0f;并且聲明他所在的存儲空間在片內(nèi)統(tǒng)一編址的ROM中。 聲明中,如果沒有修飾符,則數(shù)據(jù)默認的存儲空間為data型,也就是在片內(nèi)RAM中。6 C51的程序結(jié)構(gòu) 與一般C語言的結(jié)構(gòu)相同,以main()函數(shù)為程序人口,程序體中包含若干語句還可以包含

4、若干函數(shù)。 C51函數(shù)的一般格式 類型 函數(shù)名(參數(shù)表) 數(shù)據(jù)說明部分 語句執(zhí)行部分 7 C51的數(shù)據(jù)類型基本數(shù)據(jù)類型類型符號關(guān)鍵字數(shù)的表示范圍所占位數(shù)整型字符型實型有無(signed) int16-3276832767(signed) short16-3276832767(signed) long32-2147483648214748364716unsigned int0655353204294967295unsigned long intunsigned short int16065535有float323.4e-383.4e38有double641.7e-3081.7e308有char8

5、-128127無unsigned char802558C語言中的基本數(shù)據(jù)類型類型符號關(guān)鍵字數(shù)的表示范圍所占位數(shù)整型字符型實型有無(signed) int16-3276832767(signed) short16-3276832767(signed) long32-2147483648214748364716unsigned int0655353204294967295unsigned long intunsigned short int16065535有float323.4e-383.4e38有double641.7e-3081.7e308有char8-128127無unsigned char

6、802559(續(xù)) C51的數(shù)據(jù)類型擴充定義sfr:特殊功能寄存器聲明sfr16:sfr的16位數(shù)據(jù)聲明sbit:特殊功能位聲明bit:位變量聲明例:sfr SCON = 0X98; sfr16 T2 = 0 xCC; sbit OV = PSW2;10 C-51數(shù)據(jù)的存儲類型名 存儲空間位置 長度 數(shù)據(jù)范圍 data 直接尋址片內(nèi)RAM 8位 0255 bdata 可位尋址片內(nèi)RAM 1位 0/1idata 間接尋址片內(nèi)RAM 8位 0255pdata 片外頁RAM 8位 0255xdata 片外RAM 16位 065535code 程序ROM 16位 06553511 C-51數(shù)據(jù)的存儲類

7、型(續(xù))例:數(shù)據(jù)類型 存儲類型 變量char data var1;bit data flags;unsigned char xdata vextor10; C-51數(shù)據(jù)的存儲類型12 C-51的包含的頭文件通常有:reg51.h math.h ctype.h stdio.h stdlib.h absacc.h常用有:reg51.h (定義特殊功能寄存器和位寄存器); math.h (定義常用數(shù)學(xué)運算); 13 C-51的運算符與C語言基本相同:+ - * / (加 減 乘 除) = (位右移 位左移)& | (按位與 按位或) (按位異或 按位取反)14 C-51的基本語句與標(biāo)準(zhǔn)C語言基本相同

8、: if 選擇語言 switch/case 多分支選擇語言 while 循環(huán)語言 do-while 循環(huán)語言 for 循環(huán)語言15 中斷服務(wù)程序函數(shù)名()interrupt n I/O口定義#include #define prot xbyte0 x1000或用指針定義16例:清零程序 (將2000H20FFH的內(nèi)容清零) 匯編語言程序 ORG 0000HSE01: MOV R0,#00H MOV DPTR,#2000H ;(0000H)送DPTRLOO1: CLR A MOVX DPTR,A ;0送(DPTR) INC DPTR ;DPTR+1 INC R0 ;字節(jié)數(shù)加1 CJNE R0,#

9、00H,LOO1 ;不到FF個字節(jié)再清LOOP: SJMP LOOP17清零程序 (將2000H20FFH的內(nèi)容清零) C51程序 #include main( ) int i; unsigned char xdata *p=0 x2000; /* 指針指向2000H單元 */ for(i=0;i256;i+) *p=0; p+; /*清零2000H-20FFH單元*/ 18 匯編語言程序 ORG 0000HL00: MOV R0,#10H ;查找16個字節(jié) MOV R1,#00H MOV DPTR,#2000HL11: MOVX A,DPTR CJNE A,#00H,L16 ;取出內(nèi)容與00H相等嗎? INC R1 ;取出個數(shù)加1L16: INC DPTR DJNZ R0,L11 ;未完繼續(xù) MOV DPTR,#2100H MOV A,R1 MOVX DPTR,A ;相同數(shù)個數(shù)送2100HL1E: SJMP L1E例:查找零的個數(shù)(在2000H-200FH中查出有幾個字 節(jié)是零,把個數(shù)放在2100H單元中)19查找零的個數(shù)C51程序#include main ( ) unsigned char xdata *p=0 x2000;/*指針p指向2000H單元*/ int n=0,i; for(i=0;i16;i

溫馨提示

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

評論

0/150

提交評論