導航:首頁 > 編程語言 > c51編程

c51編程

發布時間:2022-01-16 04:28:54

❶ 用C51語言編程

一段時間通過單片機某個埠的讀入採集卡的值,把這個讀入的值與你單片機里米娜設定的各項值進行比較,或者計算,然後根據計算、判斷的結果,輸出另外一個高電壓或者低電壓,或者脈沖給輸出埠,通過這個脈沖或者電平來驅動LED。當然,如果LED的功率比較高,需要在單片機的輸出端再接功放電路。

❷ 編寫一個完整的單片機C51程序

#include<reg51.h>
sbit led=P1^0; //單片機管腳位聲明
void main()
{
TMOD=0x01; //定時器TO工作在方式1
TH0=(65536-5000)/256; //裝初值,12M晶振 1為1us; 5000為5000us=5ms;
TL0=(65536-5000)%256;
EA =1; //開總中斷
ET0=1; //開定時器TO中斷
TR0=1; //啟動定時器
P1=0; //初始化P1口
while(1) ; //程序在這里等待中斷發生
}
void T0_time() interrupt 1
{
unsigned char num;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
num++;
if(num==100) //0.5S (1s閃爍1次==0.5S亮0.5S滅)
{
num=0;
led=~led; //led狀態取反
}
}

❸ c51單片機程序實例

#include<reg51.h>
#defineucharunsignedchar
uchartab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//0到9
ucharnum,cnt,disn;
ucharkeyval,disk;
ucharled[]={1,2,3,4};
voiddealdat(uchara)
{
led[0]=0;
led[1]=0;
led[2]=0;
led[3]=0;
led[a]=disk;
}
voiddelay(unsignedinta)
{
unsignedinti,j;
for(i=0;i<a;i++)
for(j=0;j<1000;j++);
}
voidt0isr()interrupt1
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
switch(num)
{
case0:P2=0x01;break;
case1:P2=0x02;break;
case2:P2=0x04;break;
case3:P2=0x08;break;
default:break;
}
P0=~tab[led[num]];
num++;
num&=0x03;
cnt++;
if(cnt>100)
{
cnt=0;
disn++;
disn%=4;
dealdat(disn);
}
}

ucharkbscan(void)
{
unsignedcharsccode,recode;
P3=0x0f;//發0掃描,列線輸入
if((P3&0x0f)!=0x0f)//有鍵按下
{
// delay(20);//延時去抖動
if((P3&0x0f)!=0x0f)
{
sccode=0xef;//逐行掃描初值
while((sccode&0x01)!=0)
{
P3=sccode;
if((P3&0x0f)!=0x0f)
{
recode=(P3&0x0f)|0xf0;
return((~sccode)+(~recode));
}
else
sccode=(sccode<<1)|0x01;
}
}
}
return0;//無鍵按下,返回0
}

voidgetkey(void)
{
unsignedcharkey;
key=kbscan();
if(key==0){keyval=0xff;return;}
switch(key)
{
case0x11:keyval=7;break;
case0x12:keyval=4;break;
case0x14:keyval=1;break;
case0x18:keyval=10;break;
case0x21:keyval=8;break;
case0x22:keyval=5;break;
case0x24:keyval=2;break;
case0x28:keyval=0;break;
case0x41:keyval=9;break;
case0x42:keyval=6;break;
case0x44:keyval=3;break;
case0x48:keyval=11;break;
case0x81:keyval=12;break;
case0x82:keyval=13;break;
case0x84:keyval=14;break;
case0x88:keyval=15;break;
default:keyval=0xff;break;
}
}

main()
{
TMOD=0x11;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
TR0=1;
ET0=1;
EA=1;
while(1)
{
getkey();
if(keyval!=0xff)disk=keyval;
delay(10);
}

}

❹ 編制c51程序

太有才了,第一次知道還有這種問題可提

❺ c51單片機編程

一位共陽數碼管接在P0口,為靜態顯示。P3口接有8個獨立式按鍵,按鍵為K1~K8,按鍵8個按鍵中的任意一個,數碼管則顯示出按鍵編號。模擬圖如下,這是按下K6時顯示6。

❻ C51單片機編程

51單片機是對所有兼容Intel 8031指令系統的單片機的統稱。該系列單片機的始祖是Intel的8004單片機,後來隨著Flash rom技術的發展,8004單片機取得了長足的進展,成為應用最廣泛的8位單片機之一,其代表型號是ATMEL公司的AT89系列,它廣泛應用於工業測控系統之中。很多公司都有51系列的兼容機型推出,今後很長的一段時間內將佔有大量市場。51單片機是基礎入門的一個單片機,還是應用最廣泛的一種。需要注意的是51系列的單片機一般不具備自編程能力。

❼ 請問單片機C語言編程與單片機C51編程的區別是什麼

沒什麼區別。C51單片機可以用匯編語言編程,也可以用C語言編程!

閱讀全文

與c51編程相關的資料

熱點內容
安卓什麼時候更新軟體格式 瀏覽:976
三星920sc加密碼 瀏覽:719
南航app在哪裡 瀏覽:741
我的世界伺服器菜單怎麼做出來 瀏覽:364
馬後炮編程視頻 瀏覽:647
程序員上海郊區 瀏覽:349
哪裡app可回收手機殼 瀏覽:678
隨機攀登演算法 瀏覽:781
世界怎麼玩命令方塊 瀏覽:297
貴高速科技源碼 瀏覽:530
按鍵精靈字元串加密 瀏覽:247
javaquartz時間設置時間 瀏覽:519
安卓怎麼弄香港id 瀏覽:406
福州非溯源碼燕窩零售 瀏覽:422
99乘017的簡便演算法 瀏覽:364
通達信福利指標源碼 瀏覽:305
java序列號生成 瀏覽:97
linux宕機日誌 瀏覽:146
app培訓怎麼快進 瀏覽:387
安卓機不怎麼用還耗電快 瀏覽:55