當前位置:首頁 » 編程語言 » 單片機c語言常用語句
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

單片機c語言常用語句

發布時間: 2022-07-11 05:53:53

㈠ 求一份單片機c語言編程的32個關鍵字和9種控制語句的主要作用表

auto
:聲明自動變數
short
:聲明短整型變數或函數
int:
聲明整型變數或函數
long
:聲明長整型變數或函數
float:聲明浮點型變數或函數
double
:聲明雙精度變數或函數
char
:聲明字元型變數或函數
struct:聲明結構體變數或函數
union:聲明共用數據類型
enum
:聲明枚舉類型
typedef:用以給數據類型取別名
const
:聲明只讀變數
unsigned:聲明無符號類型變數或函數
signed:聲明有符號類型變數或函數
extern:聲明變數是在其他文件中聲明
register:聲明寄存器變數
static
:聲明靜態變數
volatile:說明變數在程序執行中可被隱含地改變
void
:聲明函數無返回值或無參數,聲明無類型指針
if:條件語句
else
:條件語句否定分支(與
if
連用)
switch
:用於開關語句
case:開關語句分支
for:一種循環語句
do
:循環語句的循環體
while
:循環語句的循環條件
goto:無條件跳轉語句
continue:結束當前循環,開始下一輪循環
break:跳出當前循環
default:開關語句中的「其他」分支
sizeof:計算數據類型長度
return
:子程序返回語句(可以帶參數,也可不帶參數)循環條件

㈡ 求單片機C語言所有語句

也不知道你具體想要知道哪些C語言語句,下面有些基本知識的。。。希望對你有用,如還有疑問,記得回復下。。。
1. 十六進製表示位元組0x5a:二進制為01011010B;0x6E為01101110。
2. 如果將一個16位二進數賦給一個8位的位元組變數,則自動截斷為低8位,而丟掉高8位。
3. ++var表示對變數var先增一;var—表示對變數後減一。
4. x |= 0x0f;表示為 x = x | 0x0f;
5. TMOD = ( TMOD & 0xf0 ) | 0x05;表示給變數TMOD的低四位賦值0x5,而不改變TMOD的高四位。
6. While( 1 ); 表示無限執行該語句,即死循環。語句後的分號表示空循環體,也就是{;}
在某引腳輸出高電平的編程方法:(比如P1.3(PIN4)引腳)
代碼
1. #include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P1.3
2. void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口
3. {
4. P1_3 = 1; //給P1_3賦值1,引腳P1.3就能輸出高電平VCC
5. While( 1 ); //死循環,相當 LOOP: goto LOOP;
6. }

注意:P0的每個引腳要輸出高電平時,必須外接上拉電阻(如4K7)至VCC電源。
在某引腳輸出低電平的編程方法:(比如P2.7引腳)
代碼
1. #include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P2.7
2. void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口
3. {
4. P2_7 = 0; //給P2_7賦值0,引腳P2.7就能輸出低電平GND
5. While( 1 ); //死循環,相當 LOOP: goto LOOP;
6. }
在某引腳輸出方波編程方法:(比如P3.1引腳)
代碼
1. #include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P3.1
2. void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口
3. {
4. While( 1 ) //非零表示真,如果為真則執行下面循環體的語句
5. {
6. P3_1 = 1; //給P3_1賦值1,引腳P3.1就能輸出高電平VCC
7. P3_1 = 0; //給P3_1賦值0,引腳P3.1就能輸出低電平GND
8. } //由於一直為真,所以不斷輸出高、低、高、低……,從而形成方波
9. }
將某引腳的輸入電平取反後,從另一個引腳輸出:( 比如 P0.4 = NOT( P1.1) )
代碼
1. #include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P0.4和P1.1
2. void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口
3. {
4. P1_1 = 1; //初始化。P1.1作為輸入,必須輸出高電平
5. While( 1 ) //非零表示真,如果為真則執行下面循環體的語句
6. {
7. if( P1_1 == 1 ) //讀取P1.1,就是認為P1.1為輸入,如果P1.1輸入高電平VCC
8. { P0_4 = 0; } //給P0_4賦值0,引腳P0.4就能輸出低電平GND
9. else //否則P1.1輸入為低電平GND
10. //{ P0_4 = 0; } //給P0_4賦值0,引腳P0.4就能輸出低電平GND
11. { P0_4 = 1; } //給P0_4賦值1,引腳P0.4就能輸出高電平VCC
12. } //由於一直為真,所以不斷根據P1.1的輸入情況,改變P0.4的輸出電平
13. }
將某埠8個引腳輸入電平,低四位取反後,從另一個埠8個引腳輸出:( 比如 P2 = NOT( P3 ) )
代碼
1. #include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P2和P3
2. void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口
3. {
4. P3 = 0xff; //初始化。P3作為輸入,必須輸出高電平,同時給P3口的8個引腳輸出高電平
5. While( 1 ) //非零表示真,如果為真則執行下面循環體的語句
6. { //取反的方法是異或1,而不取反的方法則是異或0
7. P2 = P3^0x0f //讀取P3,就是認為P3為輸入,低四位異或者1,即取反,然後輸出
8. } //由於一直為真,所以不斷將P3取反輸出到P2
9. }

注意:一個位元組的8位D7、D6至D0,分別輸出到P3.7、P3.6至P3.0,比如P3=0x0f,則P3.7、P3.6、P3.5、P3.4四個引腳都輸出低電平,而P3.3、P3.2、P3.1、P3.0四個引腳都輸出高電平。同樣,輸入一個埠P2,即是將P2.7、P2.6至P2.0,讀入到一個位元組的8位D7、D6至D0。
第一節:單數碼管按鍵顯示
單片機最小系統的硬體原理接線圖:
1. 接電源:VCC(PIN40)、GND(PIN20)。加接退耦電容0.1uF
2. 接晶體:X1(PIN18)、X2(PIN19)。注意標出晶體頻率(選用12MHz),還有輔助電容30pF
3. 接復位:RES(PIN9)。接上電復位電路,以及手動復位電路,分析復位工作原理
4. 接配置:EA(PIN31)。說明原因。
發光二極的控制:單片機I/O輸出
將一發光二極體LED的正極(陽極)接P1.1,LED的負極(陰極)接地GND。只要P1.1輸出高電平VCC,LED就正向導通(導通時LED上的壓降大於1V),有電流流過LED,至發LED發亮。實際上由於P1.1高電平輸出電阻為10K,起到輸出限流的作用,所以流過LED的電流小於(5V-1V)/10K = 0.4mA。只要P1.1輸出低電平GND,實際小於0.3V,LED就不能導通,結果LED不亮。
開關雙鍵的輸入:輸入先輸出高
一個按鍵KEY_ON接在P1.6與GND之間,另一個按鍵KEY_OFF接P1.7與GND之間,按KEY_ON後LED亮,按KEY_OFF後LED滅。同時按下LED半亮,LED保持後松開鍵的狀態,即ON亮OFF滅。
代碼
1. #include <at89x52.h>
2. #define LED P1^1 //用符號LED代替P1_1
3. #define KEY_ON P1^6 //用符號KEY_ON代替P1_6
4. #define KEY_OFF P1^7 //用符號KEY_OFF代替P1_7
5. void main( void ) //單片機復位後的執行入口,void表示空,無輸入參數,無返回值
6. {
7. KEY_ON = 1; //作為輸入,首先輸出高,接下KEY_ON,P1.6則接地為0,否則輸入為1
8. KEY_OFF = 1; //作為輸入,首先輸出高,接下KEY_OFF,P1.7則接地為0,否則輸入為1
9. While( 1 ) //永遠為真,所以永遠循環執行如下括弧內所有語句
10. {
11. if( KEY_ON==0 ) LED=1; //是KEY_ON接下,所示P1.1輸出高,LED亮
12. if( KEY_OFF==0 ) LED=0; //是KEY_OFF接下,所示P1.1輸出低,LED滅
13. } //松開鍵後,都不給LED賦值,所以LED保持最後按鍵狀態。
14. //同時按下時,LED不斷亮滅,各佔一半時間,交替頻率很快,由於人眼慣性,看上去為半亮態
15. }
數碼管的接法和驅動原理
一支七段數碼管實際由8個發光二極體構成,其中7個組形構成數字8的七段筆畫,所以稱為七段數碼管,而餘下的1個發光二極體作為小數點。作為習慣,分別給8個發光二極體標上記號:a,b,c,d,e,f,g,h。對應8的頂上一畫,按順時針方向排,中間一畫為g,小數點為h。
我們通常又將各二極與一個位元組的8位對應,a(D0),b(D1),c(D2),d(D3),e(D4),f(D5),g(D6),h(D7),相應8個發光二極體正好與單片機一個埠Pn的8個引腳連接,這樣單片機就可以通過引腳輸出高低電平控制8個發光二極的亮與滅,從而顯示各種數字和符號;對應位元組,引腳接法為:a(Pn.0),b(Pn.1),c(Pn.2),d(Pn.3),e(Pn.4),f(Pn.5),g(Pn.6),h(Pn.7)。
如果將8個發光二極體的負極(陰極)內接在一起,作為數碼管的一個引腳,這種數碼管則被稱為共陰數碼管,共同的引腳則稱為共陰極,8個正極則為段極。否則,如果是將正極(陽極)內接在一起引出的,則稱為共陽數碼管,共同的引腳則稱為共陽極,8個負極則為段極。
以單支共陰數碼管為例,可將段極接到某埠Pn,共陰極接GND,則可編寫出對應十六進制碼的七段碼表位元組數據

㈢ 單片機C語言:3個條件判斷語句、3個循環語句、3個跳轉語句和1個開關語句。

條件判斷語句:if語句、switch語句、condition ? exp1 : exp2(問號表達式)
循環語句:for語句、while語句、do...while
跳轉語句:continue、break、goto
開關語句:switch語句

㈣ 單片機C語言語句

1、bit 位定義2、無返回值 是指函數沒有返回值如 void huanshu(void) 有返回值是函數有返回值如:void huanshu(uint a) 3、unsigned long 為無符號長整型 xdata外部擴展RAM數據,LedOut數組名。[8]為數組里有8個元素

㈤ 單片機c語言基本語句dat<<=8是什麼

dat<<=8
也就是:
dat=dat<<8=dat<<2^3
也就是將dat的二進制值左移3位,右端用0補充

㈥ 關於單片機C語言中的for語句

延時函數 For(j=110;j>0;j--);中的110不是計算出來的,是經驗值,當晶振是11.0592M時為110,位12M時一般應該為120,這是12T模式時的值,如果是6T或者STC的1T模式,該值就不對了。

㈦ 單片機中常用到的C語言是什麼,主要用到哪些。

只需要幾個最常見的語句:if、for、while。
對於單片機的學習,要多動手實踐,多自己琢磨,可以用一個開發板,類似於吳(鑒 鷹)開發板。

㈧ 單片機c語言編程時會用到哪些常用的C語

關鍵字
用 途
說 明

auto
存儲種類說明
用以說明局部變數,預設值為此

break
程序語句
退出最內層循環

case
程序語句
Switch語句中的選擇項

char
數據類型說明
單位元組整型數或字元型數據

const
存儲類型說明
在程序執行過程中不可更改的常量值

continue
程序語句
轉向下一次循環

default
程序語句
Switch語句中的失敗選擇項

do
程序語句
構成do..while循環結構

double
數據類型說明
雙精度浮點數

else
程序語句
構成if..else選擇結構

enum
數據類型說明
枚舉

extern
存儲種類說明
在其他程序模塊中說明了的全局變數

flost
數據類型說明
單精度浮點數

for
程序語句
構成for循環結構

goto
程序語句
構成goto轉移結構

if
程序語句
構成if..else選擇結構

int
數據類型說明
基本整型數

long
數據類型說明
長整型數

register
存儲種類說明
使用CPU內部寄存的變數

return
程序語句
函數返回

short
數據類型說明
短整型數

signed
數據類型說明
有符號數,二進制數據的最高位為符號位

sizeof
運算符
計算表達式或數據類型的位元組數

static
存儲種類說明
靜態變數

struct
數據類型說明
結構類型數據

swicth
程序語句
構成switch選擇結構

typedef
數據類型說明
重新進行數據類型定義

union
數據類型說明
聯合類型數據

unsigned
數據類型說明
無符號數數據

void
數據類型說明
無類型數據

volatile
數據類型說明
該變數在程序執行中可被隱含地改變

while
程序語句
構成while和do..while循環結構

附表1-1 ANSIC標准關鍵字

關鍵字
用 途
說 明

bit
位標量聲明
聲明一個位標量或位類型的函數

sbit
位標量聲明
聲明一個可位定址變數

Sfr
特殊功能寄存器聲明
聲明一個特殊功能寄存器

Sfr16
特殊功能寄存器聲明
聲明一個16位的特殊功能寄存器

data
存儲器類型說明
直接定址的內部數據存儲器

bdata
存儲器類型說明
可位定址的內部數據存儲器

idata
存儲器類型說明
間接定址的內部數據存儲器

pdata
存儲器類型說明
分頁定址的外部數據存儲器

xdata
存儲器類型說明
外部數據存儲器

code
存儲器類型說明
程序存儲器

interrupt
中斷函數說明
定義一個中斷函數

reentrant
再入函數說明
定義一個再入函數

using
寄存器組定義
定義晶元的工作寄存器

附表1-2 C51編譯器的擴展關鍵字

附錄二 AT89C51特殊功能寄存器列表(適用於同一架構的晶元)
符 號
地 址
注 釋

*ACC
E0H
累加器

*B
F0H
乘法寄存器

*PSW
D0H
程序狀態字

SP
81H
堆棧指針

DPL
82H
數據存儲器指針低8位

DPH
83H
數據存儲器指針高8位

*IE
A8H
中斷允許控制器

*IP
D8H
中斷優先控制器

*P0
80H
埠0

*P1
90H
埠1

*P2
A0H
埠2

*P3
B0H
埠3

PCON
87H
電源控制及波特率選擇

*SCON
98H
串列口控制器

SBUF
99H
串列數據緩沖器

*TCON
88H
定時器控制

TMOD
89H
定時器方式選擇

TL0
8AH
定時器0低8位

TL1
8BH
定時器1低8位

TH0
8CH
定時器0低8位

TH1
8DH
定時器1高8位

帶*號的特殊功能寄存器都是可以位定址的寄存器