A. 51單片機語言

void Delay_ms(unsigned int t) //一個延時ms的程序,t是延時的數量,即是tms
{
unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<120;j++)
;
}
void Delay(uint x) //延時時間
{
while(--x);
}

//---------------1602--------------------------------------
void delayms(uint z) //延時N ms
{
uint x,y;
for(x=z;x>0;x--)
for(y=120;y>0;y--);
}
void write_com(uchar com) //1602液晶寫指令
{
rs=0;
lcden=0;
LCDDATA=com; //命令送埠
delayms(1); //延時1Ms
lcden=1;
delayms(2); //延時2Ms
lcden=0;
}
void write_date(uchar date) //1602液晶寫數據

{
rs=1;
lcden=0;
LCDDATA=date; //數據送埠
delayms(1);
lcden=1;
delayms(2);
lcden=0;
}
void init_lcd(void) //初始化液晶,及畫面初始化
{
uchar num;
wela=0;
lcden=0;
write_com(0x38); //16*2顯示,5*7點陣,8位數據
write_com(0x0c); //顯示開,關游標
write_com(0x06); //移動游標
write_com(0x01); //清除LCD的顯示內容
write_com(0x80); //第一行的第一個字元位置。
for(num=0;num<13;num++) // " temper: ";
{
write_date(table[num]); //把table數組中定義的字元串顯示出來。。。" temper: ";
Delay(10);
}

B. 51單片機c語言編程

#include<AT89X51.H>
//設CPU是時鍾12MHz的8051系列
dataunsignedintms;
sbitKEY=P2^3;
voidSetupTimer0()
{
TMOD&=0XF0;//僅保留信息
TMOD|=0X02;//設置T0:定時功能,方式2,自動重載8位定時器/計數器
TH0=256-250;//定時每0.25ms中斷一次
TL0=256-250;
TR0=1;//開啟定時器
ET0=1;//定時器0中斷打開
}

voidTimer0_ISR()interrupt1//中斷服務程序
{
staticdataunsignedcharus250;
if(++us250>=4){++ms;us250=0;}
}


voidprocess1()
{
unsignedchari,d;
unsignedinttime,dlt;

//第一步8燈整體一直閃(閃10下)。
for(i=0;i<10;++i)
{
P1=0;
for(time=ms,dlt=0;dlt<500;dlt=ms-time);
P1=0xFF;
for(time=ms,dlt=0;dlt<500;dlt=ms-time);
}

//第二步整體滅5秒。
P1=0xff;
for(time=ms,dlt=0;dlt<5000;dlt=ms-time);

//第三步從右邊逐個點亮並循環4遍。
for(i=0;i<4;++i)
for(d=1;d;d<<=1)
for(P1=~d,time=ms,dlt=0;dlt<500;dlt=ms-time);


//第4步循環完畢後全部熄滅;
P1=0xff;
}

voidprocess2()
{
unsignedchari,d;
unsignedinttime,dlt;

//第一步8燈整體閃3次。
for(i=0;i<3;++i)
{
P1=0;
for(time=ms,dlt=0;dlt<500;dlt=ms-time);
P1=0xFF;
for(time=ms,dlt=0;dlt<500;dlt=ms-time);
}

//第二步從左邊逐個點亮並循環2遍。
for(i=0;i<2;++i)
for(d=0x80;d;d>>=1)
for(P1=~d,time=ms,dlt=0;dlt<500;dlt=ms-time);

//第三步循環完畢後8燈一直流水;
for(;KEY;)
for(d=1;d&&KEY;d<<=1)
for(P1=d,time=ms,dlt=0;dlt<500&&KEY;dlt=ms-time);
}

voidprocess3()
{
unsignedchari,j,d;
unsignedinttime,dlt;

//第一步8燈整體保持全滅,滅的時間為500ms,可以修改
P1=0XFF;
for(time=ms,dlt=0;dlt<500;dlt=ms-time);

//第二步8燈從外到里依次點亮,重復兩遍。
for(i=0;i<2;++i)
for(d=0x1,j=0x80;d<=0x8;d<<=1,j>>=1)
for(P1=~(d|j),time=ms,dlt=0;dlt<500;dlt=ms-time);

//第三步8燈從里到外依次點亮,重復兩遍循環完畢後8燈保持在4亮4滅的狀態
for(i=0;i<2;++i)
for(d=0x8,j=0x10;d;d>>=1,j<<=1)
for(P1=~(d|j),time=ms,dlt=0;dlt<500&&KEY;dlt=ms-time);
P1=0xc3;
for(;KEY;);

}


voidprocess4()
{
unsignedchari,d;
unsignedinttime,dlt;

//第一步整體保持全滅。滅的時間為1000ms,可以修改
P1=0XFF;
for(time=ms,dlt=0;dlt<1000;dlt=ms-time);

//第二步從左到右流水兩遍。
for(i=0;i<2;++i)
for(d=1;d;d<<=1)
for(P1=d,time=ms,dlt=0;dlt<500;dlt=ms-time);

//第三步從右到左逐個點亮三遍。
for(i=0;i<3;++i)
for(d=0x1;d;d<<=1)
for(P1=~d,time=ms,dlt=0;dlt<500;dlt=ms-time);

//第4步其中一盞燈保持閃
for(;KEY;)
{
for(d=0x8;KEY;d^=0x8)
for(P1=~d,time=ms,dlt=0;dlt<500&&KEY;dlt=ms-time);
}
}

voidmain()
{
//dataunsignedcharp0;
ms=0;
SetupTimer0();
EA=1;//全局中斷打開
while(1)
{
process1();
process2();
process3();
process4();
}
}

C. 給51單片機編程序,用basic語言好還是c語言好

兄台你搞錯了,basic是操作系統上用的編程。即Visual Basic是一種可視化的面向對象的編程語言版,以其編程簡單、權快捷等特點,深受廣大WINDOWS程序員的青睞。而51系列單片機只有用c語言匯編語言。另外單片機的c語言又跟標准c語語言有點差別。主要是IO口、中斷及寄存器,不太一樣。
單片機c語言增加了一些基本的指令 變數的賦值是16進制,當然單片機c語言只牽涉到普通c語言的基礎部分。
但是在單片機上的C語言多了一些特定的指令,如SFR定義寄存器指令,在標准C上是沒有的; 在標准C上的有些庫,在單片機上是不支持的, 可以這么說,單片機C是標准C的子集,在這基礎上,加上了一些單片機特定的指令構成。

D. 51單片機用什麼語言編好

c和匯編各有特點

建議先用匯編搞懂原理
對以後學習更高級的單片機提供基礎

E. 80c51單片機的語言和C語言有什麼關系

80c51是單片機C語言,而C語言通常情況下是默認為POSIX
C,即為標准C,標准C是基礎,要學好才可以去學一些難的C語言編程

F. 51單片機用的是什麼編程語言

你好,C語言和匯編都是可以的!希望可以幫到你,滿意請點贊!

G. 51單片機C語言程序

這個很簡單,可以利用單片機的定時器來完成


當有脈沖輸入的時候,啟動定時器,並對定時器的計數值進行清零


每一次脈沖輸入都清零計數值,當脈沖消失後,定時器的計數值達到指定時間則關閉


關閉的同時,調用其它函數,例如你的繼電器控制


需要說明的是,我使用的開發板和你的不見得一樣,所以埠的使用只能你自己修改了


但程序已經經過硬體測試成功,請放心使用,如果滿意記得點贊哦


/***************************************************************************/

#include <reg51.h> //51單片機通用頭文件

sbit P24=P1^0; sbit P25=P1^1; sbit P26=P1^2; sbit P27=P1^3;//數碼管位選埠

char table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//數碼管顯示編碼

sbit k=P3^7; sbit KK=P1^4;//定義按鍵和繼電器埠

int t,n,s,fe=0;

/***************************************************************************/

void YS(int hs){int hk;for(;hs>0;hs--){for(hk=100;hk>0;hk--);}}//延時函數

/***************************************************************************/

void XS(int xs)//數碼管顯示

{

char d1,d2,d3,d4;

d1=(xs/1)%10; d2=(xs/10)%10; d3=(xs/100)%10; d4=(xs/1000)%10;

P0=table[d1]; P27=0; YS(5); P27=1;

P0=table[d2]; P26=0; YS(5); P26=1;

P0=table[d3]; P25=0; YS(5); P25=1;

P0=table[d4]; P24=0; YS(5); P24=1;

}

/***************************************************************************/

void main(void)//主函數

{

TMOD=0x01; EA=1; ET0=1; KK=0;//定時器初始化

TH0=(65536-921)/256; TL0=(65536-921)%256;//定時器初值

while(1)

{

XS(t);//調用數碼管顯示函數

if(k==0)//如果按鍵被按下

{

YS(10);//延時去抖動

if(k==0)//如果是有效按鍵

{

TR0=1;//啟動定時器,開始計時

n=0;//每次按鍵都清空定時計數

t++;//按鍵值累加一次

KK=1;//繼電器打開

while(!k){XS(t);}//等待按鍵松開,並調用數碼管顯示,避免黑屏

}

}

if(fe==1)//如果沒按鍵輸入

{

fe=0;t=0;//清空按鍵計數值,並設置標識符

KK=0;//繼電器吸合

}

}

}

/***************************************************************************/

void int1() interrupt 1 //定時器中斷

{

TH0=(65536-1000)/256; TL0=(65536-1000)%256; n++;//n等於100時,則為1秒

if(n>1000){TR0=0;n=0;fe=1;}//如果達到指定時間,則關閉定時器,並設置標識符

}

/***************************************************************************/

H. 單片機用什麼語言編寫程序

一般是C語言或者匯編語言。
1、大多數情況下,單片機運行的程序,都是C語言編寫的。不過並不是純粹的傳統C語言,而是變種後的C51語言。
單片機C51語言是由C語言繼承而來的。和C語言不同的是,C51語言運行於單片機平台,而C語言則運行於普通的桌面平台。C51語言具有C語言結構清晰的優點,便於學習,同時具有匯編語言的硬體操作能力。對於具有C語言編程基礎的工程師,能夠輕松地掌握單片機C51語言的程序設計。
2、匯編語言:
匯編語言(assembly language)是一種用於電子計算機、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。在匯編語言中,用助記符(Mnemonics)代替機器指令的操作碼,用地址符號(Symbol)或標號(Label)代替指令或操作數的地址。在不同的設備中,匯編語言對應著不同的機器語言指令集,通過匯編過程轉換成機器指令。普遍地說,特定的匯編語言和特定的機器語言指令集是一一對應的,不同平台之間不可直接移植。
匯編語言不像其他大多數的程序設計語言一樣被廣泛用於程序設計。在今天的實際應用中,它通常被應用在底層,硬體操作和高要求的程序優化的場合。驅動程序、嵌入式操作系統和實時運行程序都需要匯編語言。
在一些情況下,C51並不能完美的實現功能,所以匯編語言是對C51的一個重要補充。一般來說,啟動部分(基礎硬體的初始化),往往是由匯編語言完成的。除此以外,一些要求時效性特別強,效率要求特別高時,也需要使用匯編語言完成。

I. c51單片機c語言程序

#include<reg51.h>
void delay(unsigned int i);
unsigned char dis[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f);unsigned char code[]={0xef,0xdf,0xbf,0x7f,0xfe,0xfd,0xfb,0xf7);void main(void)
{
unsigned char i,j;
while(1)
{
for(i=0;i<8;i--)for(j=0;j<8;j--)
}P0=dis[i]; P2=dis[i]; P1=dis[j]; P3=dis[j];
delay(10);
}
}
}void delay(unsigned int i)
{
unsigned int j;
for(;i!=0;i--)
for(j=3000;j>0;j--);
}這個可以實現P0P2,P1P3口 單個I/0口的具體意思不專是很明白!屬

J. C51單片機用的是C語言還是匯編語言謝謝

兩種語言都可以,因為最後燒寫到晶元中的是二進制文件,該二進制文件由編輯器(如KEIL)編譯連接C語言源碼,或者匯編語言源碼獲得