1. mcs-51系列單片機和stc89c51單片機一樣嗎
都為51內核。
MCS51是INTEL的產品,其他廠家的51系列都基於51內核與其兼容。
STC價格應該比較便宜。
2. mcs 51系列單片機
1.coms工藝
2.利用編程器將用戶程序送人單片機的存儲器,檢查程序,修改程序,監視單片機的工作狀態。
3.51有5個中斷源
4.Mcs-51是8位單片機;I/O的特點有具有雙向通道,數據鎖存,輸入緩沖;P3.0和P3.1分別是串列輸入口和WR串列輸出口;作為輸入時應該注意*****。
5.Mcs-51單片機中振盪電路,片內有一個高增益反向放大器,用於構成振盪器。外接晶振,反相器的輸入端和輸出端跨接石英晶體和兩個電容就構成了穩定的自激振盪器。
6.51單片機的封裝引腳有三種類型:40腳DIP,44腳PLCC,48腳DIP,52腳PLCC,68腳PLCC。引腳定義:1--8:P0.0--0.7,9:RST/Vpd,10--17:P3.0-P3.7,18:XTAL2,19:XTAL1,20:Vss,21--28:P2.0-P2.7,29:~PSEN ,30:ALE/~PROG,31:~EA/pp,32--39:P0.7-P0.0,40:Vcc。
7.單片機片內,片外存儲器的選擇:(程序存儲器)由硬體控制信號~EA/Vpp決定,(數據存儲器)由軟體指令是MOVX還是MOV決定;
8.MCS-51的程序存儲器用於存放運算中間結果。
9.PSW是一個8位的專用寄存器,用於存程序運行中的各種狀態信息。
10.決定程序執行順序的寄存器是程序計數器PC。
11.ALE引腳的特點:(訪問外部存儲器時)信號上升沿可作16為地址低8位的所存信號,信號在兩個機器周期中出現一次;(不訪問時)向外輸出振盪頻率1/6的脈沖信號,可作其他外部介面的時鍾信號。通過該信號可以判斷 CPU是否正常工作
12.MOVC的功能:用於讀取程序存儲器表格的數據傳送
13:51的指令寄存器是對指令寄存器中的指令進行解碼,將指令轉變為執行此指令所需的電信號。
完整的指令格式:由操作碼和操作數組成
DAC0832的輸入電平與TTL電平兼容。
AD與DA的作用是:AD的作用是把模擬信號轉換成數字信號,DA的作用是把數字信號轉換成模擬信號。 0809是8位的AD轉換器及有11個模擬輸入通道,4位地址輸入選擇。17. DAC0832是電流輸出型數模轉換晶元,解析度8位,三種工作方式:直通,單緩沖,雙緩沖。
單片機的復位電路的特點:簡單而重要,上電復位靠電容充電,按鍵復位靠RC微分電路產生正脈沖和電阻與VCC電源接通。是第9引腳復位。單片機開始工作前需要復位,單片機受到干擾後程序跑飛需要復位。
單片機最小系統硬體設計圖。由復位電路、晶振電路和單片機組成,單片機~EA端一般接高。
MCS—51單片機最小系統的振盪周期,機器周期,時鍾周期的關系:12個振盪周期=1個機器周期=6個時鍾周期。
8051在存儲結構上採用哈佛結構。
串列通信中按數據流的方向分成哪三種基本的傳送方式,
8051與8031的區別是:有無ROM存儲器。
程序狀態字寄存器PSW的特點:保存指令執行結果的特徵信息。由硬體自動生成。
計算機匯流排的分類:數據匯流排,地址匯流排,控制匯流排。或片內匯流排,片外匯流排。
80C51單片機的程序存儲器最大定址范圍256B。
編程:跑馬燈程序編寫:8個發光二極體流水燈程序編寫
LED跑馬燈(從右至左)
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<255;i++);
}
}
void main()
{
P1=0xfe;
while(1)
{ if(P1==0x7f)
P1=0xfe;
else
P1=_crol_(P1,1);
DelayMS(80);
}
}
LED跑馬燈(從左至右)
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<255;i++);
}
}
void main()
{
P1=0x7f;
while(1)
{ if(P1==0xfe)
P1=0x7f;
else
P1=_cror_(P1,1);
DelayMS(40);
}
}
LED跑馬燈(左右循環)
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<255;i++);
}
}
void main()
{
uchar i;
P1=0x7f;
while(1)
{
for(i=0;i<7;i++)
{P1=_cror_(P1,1);
DelayMS(40); }
for(i=0;i<7;i++)
{P1=_crol_(P1,1);
DelayMS(40); }
}
}
單個LED的閃爍
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED = P1^0;
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=120;i>0;i--);
}
}
void main()
{
while(1)
{
LED = ~LED;
DelayMS(150);
}
}
連綿燈
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<255;i++);
}
}
void main()
{
P1=0x0e;
while(1)
{ if(P1==0xc1)
P1=0x0e;
else
P1=_crol_(P1,1);
DelayMS(80);
}
}
/* 花樣流水燈程序 間隔300ms先奇數亮再偶數亮,循環三次;一個燈上下循環三次;兩個分別從兩邊往中間流動三次;再從中間往兩邊流動三次;8個全部閃爍3次;關閉發光管,程序停止。*//*********************************************************/#include<reg52.h> //52單片機頭文件#include <intrins.h> //包含有左右循環移位子函數的庫#define uint unsigned int //宏定義#define uchar unsigned char //宏定義void delay(uint z) //延時函數,z的取值為這個函數的延時ms數,如delay(200);大約延時200ms.{ //delay(500);大約延時500ms. uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }void main() //主函數{ uchar a,i,j; for(j=0;j<3;j++) //寄偶交替 { P1=0x55; //點亮小燈 delay(300); //延時300毫秒 P1=0xaa; delay(300); //延時300毫秒 } for(j=0;j<3;j++) //流水燈 { a=0xfe; for(i=0;i<8;i++) { P1=a; //點亮小燈 delay(300); //延時300毫秒 a=_crol_(a,1); } } P1=0xff; for(j=0;j<3;j++) //從兩邊往中間流 { P1=0x7e; //點亮小燈
delay(300); //延時300毫秒 P1=0xbd; delay(300); //延時300毫秒 P1=0xdb; //點亮小燈 delay(300); //延時300毫秒 P1=0xe7; delay(300); //延時300毫秒 } P1=0xff; for(j=0;j<3;j++) //從中間往兩邊流 { P1=0xe7; //點亮小燈 delay(300); //延時300毫秒 P1=0xdb; delay(300); //延時300毫秒 P1=0xbd; //點亮小燈 delay(300); //延時300毫秒 P1=0x7e; delay(300); //延時300毫秒 } P1=0xff; for(j=0;j<6;j++) //全部閃爍 { P1=~P1; //點亮小燈 delay(300); //延時300毫秒 } P1=0xff; while(1);} a=_crol_(a,1); } } for(j=0;j<3;j++) { a=0xfa; for(i=0;i<5;i++) { P1=a; delay(300); a=_crol_(a,1); } } P1=0xff; for(j=0;j<3;j++) //從兩邊往中間流 { P1=0x7e; //點亮小燈 delay(300); //延時300毫秒 P1=0xbd; delay(300); //延時300毫秒 P1=0xdb; //點亮小燈 delay(300); //延時300毫秒 P1=0xe7; delay(300); //延時300毫秒 } P1=0xff; for(j=0;j<3;j++) //從中間往兩邊流 { P1=0xe7; //點亮小燈 delay(300); //延時300毫秒 P1=0xdb; delay(300); //延時300毫秒 P1=0xbd; //點亮小燈 delay(300); //延時300毫秒 P1=0x7e; delay(300); //延時300毫秒 } for(j=0;j<5;j++) { P1=0x66; delay(300); P1=0x99; delay(300); } P1=0xff; for(j=0;j<6;j++) //全部閃爍 { P1=~P1; //點亮小燈 delay(300); //延時300毫秒 } P1=0xff; while(1);}
3. STC系列與MCS—51系列單片機什麼關系
內核是一樣的,都是51,但是STC是國產的,內部集成了好多資源,比較強大。傳統的8051就比較單一,指令完全兼容,只是STC的運行速度快很多
4. stc51與msc51的區別
MCS51是指由美國INTEL公司生產的一系列單片機的總稱,這一系列單片機包括了好些品種,如8031,8051,8751,8032,8052,8752等。
STC51單單片機是,宏晶公司生產的 51內核單片機。如STC89C52、STC12系列、STC15系列等。
共同點:都是51內核單片機
不同點:1. 不是一個公司生產的。 2. 功能上有點小差別。
5. PIC單片機與MCS-51系列單片機有哪些區別
PIC單片機
與
MCS-51
系列單片機的區別應該說有三個主要特點:(1)
匯流排結構
:
MCS-51單片機
的匯流排結構是馮-
諾依曼
型,計算機在同一個存儲空間取指令和數據,兩者不能同時進行;而PIC單片機的匯流排結構是
哈佛結構
,指令和
數據空間
是完全分開的,一個用於指令,一個用於數據,由於可以對程序和數據同時進行訪問,所以提高了
數據吞吐率
。正因為在PIC單片機中採用了哈佛雙匯流排結構,所以與常見的
微控制器
不同的一點是:程序和
數據匯流排
可以採用不同的寬度。數據匯流排都是8位的,但指令匯流排位數分別位12、14、16位。(2)
流水線結構
:MCS-51單片機的取指和執行採用單
指令流水線
結構,即取一條指令,執行完後再取下一條指令;而PIC的取指和執行採用雙指令流水線結構,當一條指令被執行時,允許下一條指令同時被取出,這樣就實現了單周期指令。
6. 請問AT系列51單片機和STC系列51單片機有什麼區別呢AT89S51 和AT89C51的區別
AT系列51單片機和STC系列51單片機區別為:定時器不同、兼容不同、存儲器不同。
一、定時器不同
1、AT系列51單片機:AT系列51單片機有兩個16位定時器/計數器。
2、STC系列51單片機:STC系列51單片機有四個16位定時器/計數器。
二、兼容不同
1、AT系列51單片機:AT系列51單片機與MCS-51 兼容。
2、STC系列51單片機:STC系列51單片機不與MCS-51 兼容。
三、存儲器不同
1、AT系列51單片機:AT系列51單片機包含4K位元組可編程FLASH存儲器。
2、STC系列51單片機:STC系列51單片機包含8K位元組可編程FLASH存儲器。
AT89S51和AT89C51的區別為:全靜態工作頻率不同、鎖定不同、中斷源不同。
一、全靜態工作頻率不同
1、AT89S51:AT89S51的全靜態工作頻率為0Hz-33MHz。
2、AT89C51:AT89C51的全靜態工作頻率為0Hz-24MHz。
二、鎖定不同
1、AT89S51:AT89S51三級程序存儲器保密鎖定。
2、AT89C51:AT89C51三級程序存儲器不保密鎖定。
三、中斷源不同
1、AT89S51:AT89S51有6個中斷源。
2、AT89C51:AT89C51有5個中斷源。
7. mcs-51單片機
其實你可以這樣來理解:
單元:就相當於你電腦里不同的模塊,比如說硬顯卡驅動,內存,CPU,南北橋,51中的單元,就是指不同的模塊,比如CPU,存儲器單元,I/O(輸入輸出單元),以及中斷系統,定時器系統,
地址:主要是內部一些寄存器的地址,都是8位,一些特殊的功能寄存器(SFR)在內部都有專門固定的地址,
位元組:8個二進制數為一個位元組,我相信,只要學過計算機,或是稍微有點基礎的就不難理解這個詞吧,如果,這個你不理解的話,那後面我就不用說了。一個位元組可以用不同的進制來表示,十六進制,八進制,二進制。兩個位元組為一個字(WORD)
位數:就是一個位元組中不同的位,這個好理解撒,比如說51單片機中有的寄存器可以位元組定址,同時也可以位定址,位定址就是可以單獨對某一位進行操作,但有的只能位元組定址,不能位定址。
比如TMOD這個定時/計數器,是8位,低四位為T0定時器的工作方式設置,高四位為T1的工作方式設置,
TMOD=0x11;展開二進制就為:00010001,對應它不同位的功能,設置位定時工作方式,工作在方式1,16位手動重裝計數,比如這個就只能位元組定址,
TCON=0x01;比如定時器的這個寄存器(控制寄存器),卻可位元組定址也可以位定址,如下:
D0:IT0
D1:IE0
D2:IT1
D3:IE1
D4:TR0
D5:TF0
D6:TR1
D7:TF1
如是位元組定址的話:可以這樣TCON=0X00:具體值根據實際而定
如果位定址的話: 可以這樣,比如:TR1=1,開啟定時器T1
TR0=0, 關閉定時器T0
。。。。。。
。。。。。。
也就是說,我除了給TCON這個專用寄存器直接賦值外,我還可以單獨對某一位操作,其產生的作用都是一樣的。
這可是我根據你的提問,我一個字一個字打出來的,目的只希望你能明白,再者,你的這個問題,說真的,還真有點讓人不知道從哪個方面說起。你問得太廣,這是一個基礎知識,所以,個人建議,平時多積累積累,書到用時方恨少,這個我能理解。
8. MCS-51單片機的概念我搞不清
一、MCS-51單片機有一個8位的CPU。(根據我在微機原理課中學的,應該可定址:2的8次方=256B。)
二、可是書本上的片內為128B的ROM,8051是4KB的ROM,8751是4KB的ERROM,這個又是什麼意思,很困惑,理不清。一會兒數據存儲器,一會程序存儲器的。擁有8位的CPU作何解釋?
答:
一、你的說法,混淆了一個東西:CPU不是用來定址的,它只負責運算,定址有另外的組件去完成,所以8位的CPU並不妨礙單片機16位的定址寬度。
二、通常理解ROM為程序存儲器,因為它一旦燒錄就不可更改。理解RAM為數據存儲器,因為單片機運行時產生的臨時數據經常會發生變化,存取的頻率很高,故要求存儲器為可讀可寫的。
但是在一些特殊情況下,我們需要程序也是可修改的,那麼要求程序存儲器為可讀可寫的,於是就應運而生EPROM和EEPROM,它們只是可擦得存儲器而已,只不過要特殊的擦除方法。一般8751中的「7」表示內部ROM為EPROM,8951中的「9」表示內部ROM為EEPROM。
9. 51單片機與mcs51單片機什麼關系
1、51單片機和mcs51單片機是一個概念,MCS51是指由美國INTEL公司生產的一系列單片機的總稱,INTEL公司將MCS51的核心技術授權給了很多其它公司,所以有很多公司在做以8051為核心的單片機,關於這個疑問你可以到網上搜一下就明白了。
2、至於你說51開發板有沒有買的必要?我認為如果你有時間自己去買元件自己焊接一個玩,這對你的提高會很大很大;當然自己去買個開發板學習也行,現在應該不貴;學51單片機就是不斷的去編程實踐。
3、不知你是大幾的學生,不過你剛接觸單片機就能提出這些問題,說明你真的不錯,相信你能學好。
10. MCS51單片機與89C51單片機的區別
一、工藝不同
1、MCS51單片機:集中央處理器、隨機存取存儲器、只讀存儲器、各種輸入輸出埠、中斷系統、定時器/定時器等功能於一體的小型完善的計算機系統。
2、89C51單片機:一種低電壓、高性能的CMOS8位微處理器,配有4K位元組快閃記憶體可編程可擦除只讀存儲器。
二、性能不同
1、MCS51單片機:8051是4KBROM,8751是4KBEPROM,8031片上沒有程序存儲,8951是4KBEPROM。其他性能結構相同,包括片內128B內存、2個16位定時器/計數器和5個中斷源。
2、89C51單片機:可編程串列通道、低功耗空閑和掉電模式、片內振盪器和時鍾電路。
三、配件不同
89C51還多了一個定時器,所以可以說89C51是MCS51的增強型。