㈠ Keil C51單片機 c語言編程基本語法問題
函數聲明是在使用之前么?
關於GOTO的問題,很明顯GOTO是不彎和能跨函數的,LABEL必須是在GOTO語句慶絕的同一個函埋差盯數內才有效。
㈡ 51單片機串口通信c語言編程
#include <REG52.H>
#define uchar unsigned char
#define uint unsigned int
sbit ring=P3^7;
sbit CASE1=P2^0;
sbit CASE2=P2^1;
sbit CASE3=P2^2;
sbit CASE4=P2^3;
uchar se=0,re=0;
uchar temp=0;
void wait(uint cnt)
{
while(--cnt);
}
//串口發送程序
void send(uchar se)
{
SBUF=se; //發送數據
while(TI == 0);
TI = 0;
}
//串口接收程序
uchar receive(void)
{
re=SBUF; //接收數據
while(RI==0);
RI=0;
return re;
}
//串口初始化
void sinti(void)
{
SCON = 0x50;
TMOD |= 0x20;
TH1 = 0xFD;
TR1 = 1;
EA = 1;
ES = 1;
}
void delay(int cnt)
{
while(--cnt);
}
//主程序
int main (void)
{
int i;
sinti(); //串口初始化程序
ring=1;
while(1)
{
while (1)
{
if(CASE1==0)
{
send('a');
ring=0;
break;
}
if(CASE2==0)
{
send('b');
ring=0;
break;
}
if(CASE3==0)
{
send('c');
ring=0;
break;
}
if(CASE4==0)
{
send('d');
ring=0;
break;
}
}
if(ring==0)
{
wait(60000);
ring=1;
}
for(i=0;i<10000;i++);
}
}
//串口中斷程序
void UART_SER (void) interrupt 4 //串列中斷服務程序
{
if(RI) //判斷是接收中斷產生
{
RI=0; //標志位清零
temp=SBUF;
}
if(TI) //如果是發送標志位,清零
TI=0;
}
㈢ 51單片機C語言指針語法的問題
uchar *table[5]; table= {&HH,&HL,&MinH,&MinL,&SH,&SL};
table只有5個元稿磨素 你賦值了6個鍵讓斗變數滑核進去
㈣ c語言編程基本語法
我直接給你一個簡單的實例吧,你看看,如果你看過書,應該能看懂一點,如果你沒看到書,就算給你語法也沒用的。。
void main()
{
reset(); //自己寫的一個調用函數
Init_Timer(); //同上
while(1) //while是一個循環函數,我在裡面加入1,是為了讓它進入死循環,這樣我就可以
//不斷的掃描 達到我要的目的
{
int i=10;
while(i--) ;
}//while
}//main
㈤ 51單片機c語言符號解釋
語法:「MA |= MB;」等價於「MA=MA|MB;」
意思和野是:先將MA與MB按沒閉位作或運算,再枯棚裂將結果保存到MA;
0X20是16進製表示的常量。
㈥ 51單片機c語言 #define語句解釋
問題 1 : #define 的作用, 這是一個預處理語句.
何為預處虧帆理? 是指乎指編譯器(也開發環境)在編譯之前的處理.
怎麼處理呢? 其它就是字元串替換
例: #define PI 3.14
void main()
{
float area=0;
int radius=2;
area=PI*(radius*radius);
printf("%f",area);
}
預處理之後
void main()
{
float area=0;
int radius=2;
area=3.14*(radius*radius);
printf("%f",area);
}
其實就是字元串替換,所以 #define PI 3.14 不能加 ";" 不然變成 area=3.14;*(radius*radius);
這樣的話肯定出錯.
問題2: "\" 的作用,就是上下行的連接符,有可能是一行太長銷頃雹了,也有可以是為了好看,所有寫成多行
例:
#define PI 3.\
14
void _tmain()
{
float area=0;
int radius=2;
area=PI*(radius*radius);
printf("%f",area);
}
寫成這樣,也是可以的.
㈦ 51單片機最簡單的C語言編程求教
你把裡面的數字轉換成二進制,比如table[0]=0x3f=00111111b;
由於你這個是共陰極數碼管,高電平有效,所以寫一的地方對應的LED都點亮 至於那七根數碼管以及一個小數點和二進制位數對應關系你可以上網上查一下,簡單的說小數點也就是DP是最高位,其他的那七根數碼管從最上面那個開始順時針一共是六根從bit(0)到bit(5),最後橫著那根是bit(6)。希望能幫到你。至於你說的TEMP對應P2口,得有硬體圖才可以知道有什麼作用。
㈧ C語言編程的語法
#include <stdio.h>
#include <conio.h>
main()
{
float a,b,c;
scanf("%f%f",&a,&b);
c=a*b;
printf("%f",c);
getch();
}
在微軟的編譯器種 要使用getch();
必須加#include <conio.h>
這樣可以提高移植性。
你在tc中也可以使用上術代碼
在微軟的編譯器上也可以 比如vc++ 6.0