㈠ 學C51單片機看什麼書
單片機,其實就是微控制器,主要用於控制外圍器件,本身幹不了任何事情。要學習單片機,書是少不了的,至於書的選擇,只要是單片機方面基礎的書都可以,講得東西都是一樣的(北航出的《單片機與最小系統實踐》就不錯)。但是光看書很顯然是不行的,要理論加實踐,並且要注重實踐。看書只是讓你對單片機的硬體結構有所了解,要想真正掌握單片機,就必須多實踐。推薦一款視頻教程,郭天祥講的《10天學會51單片機和C語言》,照著這個視頻做實驗(實驗板可以網上買,也可以自己搭建),從頭做到尾的話,相信你的單片機編程水平不僅僅是入門久別的了。
㈡ c51單片機c語言程序
用C51是多麼簡單的事情啊。你的每個燈的順序不說。不好寫。思路這樣的:sbit led1=P1^0;~~~把所有的燈都定一下。void delay(int ms){int x,y;for(x=ms;x>0;x--)for(y=110;y>0;y--);}一個Nms的延遲,要求是12M的晶振。void main(){while(1){led1=0;delay(1000);led1=1;裡面隨便寫了。}}
㈢ c51單片機與c52單片機的區別
C51及C52單片機在內核結構上完全一樣,兩者的主要差別在RAM和ROM上,C51是128byte RAM,4K ROM,C52是256Byte,8K ROM。
㈣ c51單片機是什麼
單片機,是典型的嵌入式微控制器,一般用在工業控制上,現在用的c51大都是AT89c51.
㈤ MCS51和8051和C51單片機什麼聯系
MCS-51單片機是美
國INTE公司於1980年推出的產品,典型產品有 8031(內部沒有程序存儲器,實際使用方面已經被市場淘汰)、8051(晶元採用HMOS,功耗是630mW,是89C51的5倍,實際使用方面已經被市場淘汰)和8751等通用產品,一直到現在, MCS-51內核系列兼容的單片機仍是應用的主流產品(比如目前流行的89S51、已經停產的89C51等),各高校及專業學校的培訓教材仍與MCS-51單片機作為代表進行理論基礎學習。
有些文獻甚至也將8051泛指MCS-51系列單片機,8051是早期的最典型的代表作,由於MCS-51單片機影響極深遠,許多公司都推出了兼容系列單片機,就是說MCS-51內核實際上已經成為一個8位單片機的標准。
其他的公司的51單片機產品都是和MCS-51內核兼容的產品而以。同樣的一段程序,在各個單片機廠家的硬體上運行的結果都是一樣的,如ATMEL的89C51(已經停產)、89S51, PHILIPS(菲利浦),和WINBOND(華邦)等,我們常說的已經停產的89C51指的是ATMEL公司的 AT89C51單片機,同時是在原基礎上增強了許多特性,如時鍾,更優秀的是由Flash(程序存儲器的內容至少可以改寫1000次)存儲器取帶了原來的ROM(一次性寫入),AT89C51的性能相對於8051已經算是非常優越的了。
不過在市場化方面,89C51受到了PIC單片機陣營的挑戰,89C51最致命的缺陷在於不支持ISP(在線更新程序)功能,必須加上ISP功能等新功能才能更好延續MCS-51的傳奇。89S51就是在這樣的背景下取代89C51的,現在,89S51目前已經成為了實際應用市場上新的寵兒,作為市場佔有率第一的Atmel目前公司已經停產AT89C51,將用AT89S51代替。89S51在工藝上進行了改進,89S51採用0.35新工藝,成本降低,而且將功能提升,增加了競爭力。89SXX可以像下兼容89CXX等51系列晶元。同時,Atmel不再接受89CXX的定單,大家在市場上見到的89C51實際都是Atmel前期生產的巨量庫存而以。
㈥ 單片機C51
你把「STARTUP.A51」,從項目中刪除,就好了。
㈦ C51單片機分類
你的提問是C51單片機的分類,就是說,特指MCS-51系列,那麼MCS-51系列的單片機基本上沒什麼區別的,至少內核都是一模一樣的。就是功能模塊可能稍有不一樣。比如說:
有些具有AD/DA模塊,有些不具有;
有些有EEPROM(STC89C52),有些沒有(AT89S52);
有些ROM有8K(AT89S52),有些只有2K;
有些RAM有256B,而有些只有128BIT;
有些40個管腳(AT89C51、89C52、89S52),有些20個管腳(AT89C2051、89C4051);
有些有內部晶振,有些沒有;
但這些都是稍微一點點的區別,基本都還是算一樣的。
單片機是一個很大的類,這個類下面有很多子類,C51是單片機其中一個子集,其它的子類還有PIC、AVR、Cortex、STM等。
至於樓上說的ARM,其實ARM已經有點偏離單片機的定義了,更趨向於處理器,ARM9經常用在強大的智能手機中,各種硬體資源和運算速度都不是普通單片機可以相比的,而且編程與電路方面的設計也跟單片機不太一樣。ARM7類似,但現在已經基本不用ARM7了。
還有最後一個PLC,看到PLC就知道他不是專業,可能是復制來的。PLC我們現在正在學,其實是一種工控設備,外形就是一個大大的盒子,裡面裝的也是單片機,可能是PIC的,也可能是ST的,也可能是其它的,還有一些外圍電路。總之,我不敢說ARM不屬於單片機,但PLC絕對不是單片機!!!
如果樓主要學,一般從40管腳的89C52或89S52開始學,也可以學STC的,STC的跟AT非常非常像,你可以簡單的認為,STC是仿AT的,型號也一一對應,但STC的往往會加入一些AT沒有的模塊。
㈧ 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單片機編程
51單片機是對所有兼容Intel 8031指令系統的單片機的統稱。該系列單片機的始祖是Intel的8004單片機,後來隨著Flash rom技術的發展,8004單片機取得了長足的進展,成為應用最廣泛的8位單片機之一,其代表型號是ATMEL公司的AT89系列,它廣泛應用於工業測控系統之中。很多公司都有51系列的兼容機型推出,今後很長的一段時間內將佔有大量市場。51單片機是基礎入門的一個單片機,還是應用最廣泛的一種。需要注意的是51系列的單片機一般不具備自編程能力。
㈩ C51單片機
你說的是在定義一組數組時,可以作為數據表格時,就用code 語句,意思是這些數據放在程序存儲器中。
如下:
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
這就是典型的用法,這是定義一組數據,即為數碼管的段碼表,因都是常數,就可以放在程序存儲區。
如果沒有code 就放在數據存儲區了,但是,因單片機的內部RAM容量比較小,像這樣的常數就不必放在RAM數據區,以節省RAM數據區的使用。