亚洲免费人人妻人人,cao78在线视频,福建一级毛片,91精品视频免费观看,高清另类图片操逼,日本特黄特色大片免费看,超碰欧美人人澡曰曰澡夜夜泛

51單片機(jī)C語(yǔ)言程序設(shè)計(jì)經(jīng)典案例

時(shí)間:2023-05-01 02:32:48 資料 我要投稿
  • 相關(guān)推薦

51單片機(jī)C語(yǔ)言程序設(shè)計(jì)經(jīng)典案例

項(xiàng)目三C51程序設(shè)計(jì)語(yǔ)言基礎(chǔ)任務(wù)1C51程序的識(shí)讀1.C51程序結(jié)構(gòu)例3-1P_test

/*********************//注釋,還可用//注釋掉一行Filename:P_test.c

Chipname:STC89C51RCClockfrequency:1.20MHz***********************/#include“reg52.h”//預(yù)處理命令,文件包含預(yù)處理命令,后綴名都是.h,標(biāo)準(zhǔn)的MCS-51單片機(jī)頭文件為”reg51.h”,STC89系列單片機(jī)頭文件為”reg52.h”#defineunitunsignedint//宏定義預(yù)處理命令sbitBZ=P3`7;sbitkey=P1`0;voiddelay(unitms){

uniti;

while(ms--){

for(i=0;i<120;i++);}}

voidmain(void){

while(1)

{

if(key==0)

{

BZ=0x0;delayms(10);BZ=0x1;delayms(50);P0=0xFF;}else{

P0=~P0;

delayms(500);}}}

2.C51的數(shù)據(jù)類型

C51的數(shù)據(jù)類型

構(gòu)造類型

位變量型bit字符型無(wú)符號(hào)字符型unsignedchar

有符號(hào)字符型signedchar

整數(shù)型無(wú)符號(hào)整數(shù)型unsignedint

有符號(hào)整數(shù)型signedint

長(zhǎng)整數(shù)型無(wú)符號(hào)長(zhǎng)整數(shù)型unsignedlongint

有符號(hào)長(zhǎng)整數(shù)型signedlongint

實(shí)數(shù)型(浮點(diǎn)型)單精度浮點(diǎn)型float

雙精度浮點(diǎn)型double

數(shù)組類型array結(jié)構(gòu)體類型struct共用體union枚舉enum

表3-1類型

指針類型空類型(void)

C51基本數(shù)據(jù)類型的長(zhǎng)度和值域

長(zhǎng)度/bit18816163232323224

單字節(jié)單字節(jié)雙字節(jié)雙字節(jié)四字節(jié)四字節(jié)四字節(jié)四字節(jié)三字節(jié)長(zhǎng)度/byte

范圍0,10-255-128-1270-65536-32768-32767

位變量型bit

無(wú)符號(hào)字符型unsignedchar有符號(hào)字符型signedchar無(wú)符號(hào)整數(shù)型unsignedint有符號(hào)整數(shù)型signedint

無(wú)符號(hào)長(zhǎng)整數(shù)型unsignedlongint有符號(hào)長(zhǎng)整數(shù)型signedlongint單精度浮點(diǎn)型float雙精度浮點(diǎn)型double一般指針類型

3.C51的標(biāo)識(shí)符和關(guān)鍵字

標(biāo)識(shí)符是由字母、數(shù)字和下劃線組成的字符串,第一個(gè)字符必須是字母或下劃線,不超過(guò)32個(gè)字符。

表3-2C51中的關(guān)鍵字關(guān)鍵字autobdatabreakbitcasechar

用途

存儲(chǔ)種類聲明存儲(chǔ)器類型說(shuō)明程序語(yǔ)句位變量語(yǔ)句程序語(yǔ)句數(shù)據(jù)類型的聲明

說(shuō)明

用來(lái)聲明局部變量

可位尋址的內(nèi)部數(shù)據(jù)存儲(chǔ)器退出最內(nèi)層循環(huán)體

位變量的值是1(true)或0(flase)switch語(yǔ)句中的選擇項(xiàng)單字節(jié)整數(shù)型或字符型數(shù)據(jù)

關(guān)鍵字codeconstcontinuedatadefaultdodoubleelseenumexternfloatforgotoidataifintinterruptlongpdataregisterreentrantreturnsbitshortsignedsizeofSfrSfr16staticstructswitchtypedefunionunsignedusingvoidvolatilewhilexdata

用途

存儲(chǔ)器類型聲明存儲(chǔ)類型說(shuō)明程序語(yǔ)句存儲(chǔ)器類型說(shuō)明程序語(yǔ)句程序語(yǔ)句數(shù)據(jù)類型說(shuō)明程序語(yǔ)句數(shù)據(jù)類型說(shuō)明存儲(chǔ)類型說(shuō)明數(shù)據(jù)類型說(shuō)明程序語(yǔ)句程序語(yǔ)句存儲(chǔ)器類型說(shuō)明程序語(yǔ)句數(shù)據(jù)類型說(shuō)明中斷聲明數(shù)據(jù)類型說(shuō)明存儲(chǔ)器類型說(shuō)明存儲(chǔ)類型說(shuō)明再入函數(shù)說(shuō)明程序語(yǔ)句位變量聲明數(shù)據(jù)類型說(shuō)明數(shù)據(jù)類型說(shuō)明運(yùn)算符

特殊功能寄存器聲明特殊功能寄存器聲明存儲(chǔ)類型說(shuō)明數(shù)據(jù)類型說(shuō)明程序語(yǔ)句數(shù)據(jù)類型說(shuō)明數(shù)據(jù)類型說(shuō)明數(shù)據(jù)類型說(shuō)明寄存器組定義數(shù)據(jù)類型說(shuō)明數(shù)據(jù)類型說(shuō)明程序語(yǔ)句存儲(chǔ)器類型說(shuō)明

說(shuō)明程序存儲(chǔ)器

在程序執(zhí)行過(guò)程中不可修改的變量值退出本次循環(huán),轉(zhuǎn)向下一次循環(huán)直接尋址的內(nèi)部數(shù)據(jù)存儲(chǔ)器Switch語(yǔ)句中的失敗選擇項(xiàng)構(gòu)成do...while循環(huán)結(jié)構(gòu)雙精度浮點(diǎn)數(shù)構(gòu)成if...else選擇結(jié)構(gòu)枚舉

在其他程序模塊中聲明了的全局變量單精度浮點(diǎn)型構(gòu)成for循環(huán)結(jié)構(gòu)構(gòu)成goto循環(huán)結(jié)構(gòu)間接尋址的內(nèi)部數(shù)據(jù)存儲(chǔ)器構(gòu)成do...while循環(huán)結(jié)構(gòu)基本整數(shù)型定義一個(gè)中斷函數(shù)長(zhǎng)整數(shù)型

分頁(yè)尋址的內(nèi)部數(shù)據(jù)存儲(chǔ)器使用CPU內(nèi)部的寄存器變量定義一個(gè)再入函數(shù)函數(shù)返回

聲明一個(gè)可位尋址的變量短整數(shù)型

有符號(hào)數(shù),二進(jìn)制的最高位位符號(hào)位計(jì)算表達(dá)式或數(shù)據(jù)類型的字節(jié)數(shù)聲明一個(gè)特殊功能寄存器聲明一個(gè)16位的特殊功能寄存器靜態(tài)變量結(jié)構(gòu)類型數(shù)據(jù)構(gòu)成switch選擇語(yǔ)句重新進(jìn)行數(shù)據(jù)類型定義聯(lián)合數(shù)據(jù)類型無(wú)符號(hào)數(shù)據(jù)

定義芯片的工作寄存器無(wú)符號(hào)數(shù)據(jù)

聲明該變量在程序執(zhí)行中可被隱含改變構(gòu)成while和do...while循環(huán)語(yǔ)句外部數(shù)據(jù)存儲(chǔ)器

4.C51的常量和變量1)常量

常量就是在程序運(yùn)行過(guò)程中,其值不能改變的數(shù)據(jù),包括整型常量、字符常量、字符串常量、實(shí)數(shù)常量、位標(biāo)量等。

(1)整型常量:可以用二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制表示。

無(wú)符號(hào)整數(shù)常量在一個(gè)數(shù)字后面加上“u”或“U”表示。長(zhǎng)整數(shù)型常量在后面加上“l(fā)”或“L”,無(wú)符號(hào)長(zhǎng)整數(shù)型常量在數(shù)字后面加上“ul”或“UL”,實(shí)數(shù)型常量在后面加“f”或“F”。

(2)字符常量:?jiǎn)我?hào)內(nèi)的字符,不可以顯示的控制字符在前加“\”組成專用轉(zhuǎn)義字符。(3)字符串常量:雙引號(hào)內(nèi)的字符,當(dāng)雙引號(hào)內(nèi)沒(méi)有字符時(shí)是空字符串。在C語(yǔ)言中,字符串常量是作為字符類型數(shù)組來(lái)處理的,在存儲(chǔ)字符串時(shí),系統(tǒng)在字符串尾部加上轉(zhuǎn)義字符“\o”,作為該字符串的結(jié)束符。

(4)實(shí)數(shù)常量:有十進(jìn)制和指數(shù)兩種表示形式。指數(shù)表示的實(shí)數(shù)為“[±]數(shù)字[.數(shù)字]e[±]數(shù)字”,[]中的內(nèi)容為可選項(xiàng)

(5)位標(biāo)量:位標(biāo)量的值是一個(gè)二進(jìn)制數(shù)。2)變量

變量就是在程序運(yùn)行過(guò)程中,其值可以被改變的數(shù)據(jù)。必須先用標(biāo)識(shí)符作為變量名,并指出所用的數(shù)據(jù)類型和存儲(chǔ)模式,這樣編譯系統(tǒng)才能為變量分配相應(yīng)的存儲(chǔ)空間。定義變量的格式:[<存儲(chǔ)模式>]<類型定義>[存儲(chǔ)器類型]<標(biāo)識(shí)符>;類型定義和標(biāo)識(shí)符是必要的。存儲(chǔ)模式有四種,自動(dòng)(auto)、外部(extern)、靜態(tài)(static)和寄存器(register),默認(rèn)類型為自動(dòng)(auto)。

表3-3C51存儲(chǔ)類型與MCS-51單片機(jī)存儲(chǔ)空間的對(duì)應(yīng)關(guān)系及其大小存儲(chǔ)類型databdataidatapdataxdatacode

與存儲(chǔ)空間的對(duì)應(yīng)關(guān)系

直接尋址片內(nèi)數(shù)據(jù)存儲(chǔ)區(qū),訪問(wèn)速度快(128B)

可位尋址片內(nèi)數(shù)據(jù)存儲(chǔ)區(qū),允許位與字節(jié)混合訪問(wèn)(16B)

間接尋址片內(nèi)數(shù)據(jù)存儲(chǔ)區(qū),可訪問(wèn)片內(nèi)全部RAM地址空間(256B)

分頁(yè)尋址片外數(shù)據(jù)存儲(chǔ)區(qū),由MOVX@Ri訪問(wèn)

尋址片外數(shù)據(jù)存儲(chǔ)區(qū)(64KB),由MOVX@DPTR訪問(wèn)

尋址代碼存儲(chǔ)區(qū)(64KB),由MOVC@DPTR訪問(wèn)

長(zhǎng)度/bit88881616

長(zhǎng)度/byte111122

存儲(chǔ)范圍0-2550-2550-2550-2550-655350-65535

如果在變量定義時(shí)省略了存儲(chǔ)類型標(biāo)識(shí)符,則編譯器會(huì)自動(dòng)選擇默認(rèn)的存儲(chǔ)類型。默認(rèn)的存儲(chǔ)類型進(jìn)一步由SMALL、COMPACT、和LARGE存儲(chǔ)模式指令限制。

存儲(chǔ)模式?jīng)Q定了變量的默認(rèn)存儲(chǔ)類型、參數(shù)傳遞區(qū)和無(wú)明確存儲(chǔ)類型說(shuō)明變量的存儲(chǔ)類型。在SMALL模式下,參數(shù)傳遞是在片內(nèi)數(shù)據(jù)存儲(chǔ)區(qū)中完成的。

51單片機(jī)C語(yǔ)言程序設(shè)計(jì)經(jīng)典案例

COMPACT和LARGE模式允許參數(shù)在外部存儲(chǔ)器中傳遞。

表3-4存儲(chǔ)模式及說(shuō)明存儲(chǔ)模式SMALL

說(shuō)明

參數(shù)及局部變量放入可直接尋址的片內(nèi)存儲(chǔ)器(最大為128B,默認(rèn)存儲(chǔ)類型為data),因此訪問(wèn)十分方便。另外,所有對(duì)象(包括棧)都必須嵌入片內(nèi)RAM,棧長(zhǎng)由函數(shù)的嵌套導(dǎo)數(shù)決定。

參數(shù)及局部變量放入分頁(yè)片外存儲(chǔ)區(qū)(最大為256B,默認(rèn)的存儲(chǔ)類型為pdata),通過(guò)寄存器R0和R1(@R0、@R1)間接尋址,?臻g位于MCS-51系統(tǒng)內(nèi)部數(shù)據(jù)存儲(chǔ)區(qū)中。

參數(shù)及局部變量直接放入片外數(shù)據(jù)存儲(chǔ)區(qū)(最大為64KB,默認(rèn)存儲(chǔ)類型為xdata),使用數(shù)據(jù)指針DPTR來(lái)進(jìn)行尋址。用此數(shù)據(jù)指針進(jìn)行訪問(wèn)效率較低,尤其是對(duì)兩個(gè)或多個(gè)字節(jié)的變量,這種數(shù)據(jù)類型的訪問(wèn)機(jī)制直接影響代碼的長(zhǎng)度。另一不方便之處在于這種數(shù)據(jù)指針不能對(duì)稱操作。

COMPACT

LARGE

任務(wù)2運(yùn)算符和表達(dá)式表3-5C語(yǔ)言常用的運(yùn)算符

【51單片機(jī)C語(yǔ)言程序設(shè)計(jì)經(jīng)典案例】相關(guān)文章:

案例驅(qū)動(dòng)在C語(yǔ)言程序設(shè)計(jì)教學(xué)中的探索實(shí)踐04-28

《C語(yǔ)言程序設(shè)計(jì)》課程教學(xué)探索04-29

單片機(jī)C語(yǔ)言教學(xué)探索04-28

C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)的探討04-29

淺談C語(yǔ)言程序設(shè)計(jì)的教學(xué)方法04-29

初學(xué)C語(yǔ)言程序設(shè)計(jì)的基本方法和技巧04-28

獨(dú)立學(xué)院C語(yǔ)言程序設(shè)計(jì)教學(xué)改革與實(shí)踐04-29

《C#語(yǔ)言程序設(shè)計(jì)》課程教學(xué)改革與實(shí)踐05-01

關(guān)于C語(yǔ)言程序設(shè)計(jì)教學(xué)的一些思考04-29

在單片機(jī)C語(yǔ)言編程中的心得體會(huì)04-25