『壹』 單片機!!!!!!!!!!!!!!!
單片機是指一個集成在一塊晶元上的完整計算機系統。盡管他的大部分功能集成在一塊小晶元上,但是它具有一個完整計算機所需要的大部分部件:CPU、內存、內部和外部匯流排系統,目前大部分還會具有外存。同時集成諸如通訊介面、定時器,實時時鍾等外圍設備。而現在最強大的單片機系統甚至可以將聲音、圖像、網路、復雜的輸入輸出系統集成在一塊晶元上。
單片機也被稱為微控制器(Microcontroler),是因為它最早被用在工業控制領域。單片機由晶元內僅有CPU的專用處理器發展而來。最早的設計理念是通過將大量外圍設備和CPU集成在一個晶元中,使計算機系統更小,更容易集成進復雜的而對提及要求嚴格的控制設備當中。INTEL的Z80是最早按照這種思想設計出的處理器,從此以後,單片機和專用處理器的發展便分道揚鑣。
早期的單片機都是8位或4位的。其中最成功的是INTEL的8031,因為簡單可靠而性能不錯獲得了很大的好評。此後在8031上發展出了MCS51系列單片機系統。基於這一系統的單片機系統直到現在還在廣泛使用。隨著工業控制領域要求的提高,開始出現了16位單片機,但因為性價比不理想並未得到很廣泛的應用。90年代後隨著消費電子產品大發展,單片機技術得到了巨大的提高。隨著INTEL
i960系列特別是後來的ARM系列的廣泛應用,32位單片機迅速取代16位單片機的高端地位,並且進入主流市場。而傳統的8位單片機的性能也得到了飛速提高,處理能力比起80年代提高了數百倍。目前,高端的32位單片機主頻已經超過300MHz,性能直追90年代中期的專用處理器,而普通的型號出廠價格跌落至1美元,最高端的型號也只有10美元。當代單片機系統已經不再只在裸機環境下開發和使用,大量專用的嵌入式操作系統被廣泛應用在全系列的單片機上。而在作為掌上電腦和手機核心處理的高端單片機甚至可以直接使用專用的Windows和Linux操作系統。
單片機比專用處理器最適合應用於嵌入式系統,因此它得到了最多的應用。事實上單片機是世界上數量最多的計算機。現代人類生活中所用的幾乎每件電子和機械產品中都會集成有單片機。手機、電話、計算器、家用電器、電子玩具、掌上電腦以及滑鼠等電腦配件中都配有1-2部單片機。而個人電腦中也會有為數不少的單片機在工作。汽車上一般配備40多部單片機,復雜的工業控制系統上甚至可能有數百台單片機在同時工作!單片機的數量不僅遠超過PC機和其他計算的綜合,甚至比人類的數量還要多。
『貳』 51單片機紅外感應開關代碼怎麼寫
RE200B紅外熱釋電處理晶元BISS0001,BISS0001是一款具有較高性能的感測信號處理集成電路,它配以熱釋電紅外感測器和少量外接元器件構成被動式的熱釋電紅外開關。它能自動快速開啟各類白熾燈、熒光燈、蜂鳴器、自動門、電風扇、烘乾機和自動洗手池等裝置,特別適用於企業、賓館、商場、庫房及家庭的過道走廊等敏感區域,或用於安全區域的自動燈光、照明和報警系統[6]。該處理晶元具有CMOS工藝,數模混合,具有獨立的高輸入阻抗運算放大器;內部的雙向鑒幅器可有效抑制干擾,內設延遲時間定時器和封鎖時間定時器,採用16腳DIP封裝等特點。紅外感測器接收到人體紅外信號經BISS0001處理後輸出輸給單片機P1.0口,TEL0表示接STC89C52是的P1.0口,通過對P1.0電平的判斷,實現對單片機外圍電路的控制.具體去看我的網路文庫「基於單片機的紅外淋浴器的設計」。
『叄』 用C語言編寫一個單片機控制LED燈閃爍變化的編程 急用!!!!!!!!!
C語言實現LED燈閃爍控制配套51單片機開發板。
#include //包含單片機寄存器的頭文件
/****************************************
函數功能:延時一段時間
*****************************************/
void delay(void) //兩個void意思分別為無需返回值,沒有參數傳遞。
{
unsigned int i; //定義無符號整數,最大取值范圍65535。
for(i=0;i<20000;i++) //做20000次空循環。
; //什麼也不做,等待一個機器周期。
}
/*******************************************************
函數功能:主函數 (C語言規定必須有也只能有1個主函數)。
********************************************************/
void main(void)
{
while(1) //無限循環。
{
P0=0xfe; //P1=1111 1110B, P0.0輸出低電平。
delay(); //延時一段時間。
P0=0xff; //P1=1111 1111B, P0.0輸出高電平。
delay(); //延時一段時間。
}
}
單片機驅動LED燈的源程序:
#include<reg52.h> //頭文件。
#define uint unsigned int
#define uchar unsigned char
sbit LED1=P1^7; //位定義。
void delay_ms(uint);//mS級帶參數延時函數。
void main()
{
while(1)
{
LED1=0;
delay_ms(1000);
LED1=1;
delay_ms(1000);
}
}
void delay_ms(uint z) //延時子程序
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
(3)小家電單片機源碼擴展閱讀:
單片機應用分類:
通用型:
這是按單片機(Microcontrollers)適用范圍來區分的。例如,80C51式通用型單片機,它不是為某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。
匯流排型:
這是按單片機(Microcontrollers)是否提供並行匯流排來區分的。匯流排型單片機普遍設置有並行地址匯流排、 數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接。
另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積,這類單片機稱為非匯流排型單片機。
控制型:
這是按照單片機(Microcontrollers)大致應用的領域進行區分的。一般而言,工控型定址范圍大,運算能力強;用於家電的單片機多為專用型。
通常是小封裝、低價格,外圍器件和外設介面集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是匯流排型,還可以作工控用。
參考資料來源:網路-單片機
『肆』 求"基於單片機的電器遙控器的設計"外文參考文獻,近似的也可以
-5
就找到這一個!
『伍』 單片機和晶元的區別嗎
晶元范圍小,單片機范圍大,打個比方,單片機好比是台計算機,那晶元就是裡面的部件,;兩者的區別是什麼呢?下面就跟著我一起來看看吧。
單片機與晶元的區別
單片機又稱單片微控制器,它不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。概括的講:一塊晶元就成了一台計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機了解計算機原理與結構的最佳選擇。
晶元就是有一些功能(如邏輯功能、轉換功能)的集成電路。一般並不是帶有全部的ROM、IO、運算器和RAM。 但組合在一起的晶元要完成單片機的全部功能(如ROM RAM 等等).而不止是一些邏輯器件的一般組合.
1.區別:晶元是一些電子元件集成IC封裝使實現某一電氣功能的元件佔用空間更少,使用更方便。單片機通俗來講就是一個小的計算機系統,通過程序來控制各引腳的功能。
2.應用領域二者都很廣,通俗講我們用的家電電器控制中都能用到晶元和單片機
3.不能絕對的說那個便宜。你想功能強大的晶元和功能少一點的單片機比,可想而知
晶元 指內含集成電路的矽片,體積很小,常常是計算機或其他設備的一部分。 晶元組(Chipset)是主板的核心組成部分,按照在主板上的排列位置的不同,通常分為北橋晶元和南橋晶元。北橋晶元提供對CPU的類型和主頻、內存的類型和最大容量、ISA/PCI/AGP插槽、ECC糾錯等支持。南橋晶元則提供對KBC(鍵盤控制器)、RTC(實時時鍾控制器)、USB(通用串列匯流排)、Ultra DMA/33(66)EIDE數據傳輸方式和ACPI(高級能源管理)等的支持。其中北橋晶元起著主導性的作用,也稱為主橋(Host Bridge)。 晶元組的識別也非常容易,以Intel 440BX晶元組為例,它的北橋晶元是Intel 82443BX晶元,通常在主板上靠近CPU插槽的位置,由於晶元的發熱量較高,在這塊晶元上裝有散熱片。
DSP器件與單片機的比較
1.單片機的特點
所謂單片機就是在一塊晶元上集成了CPU、RAM、ROM(EPROM或EEPROM)、時鍾、定時/計數器、多種功能的串列和並行I/O口。如Intel公司的8031系列等。除了以上基本功能外,有的還集成有A/D、D/A,如Intel公司的8098系列。概括起來說,單片機具有如下特點:
具有位處理能力,強調控制和事務處理功能。
價格低廉。如低檔單片機價格只有人民幣幾元錢。
開發環境完備,開發工具齊全,應用資料眾多。
後備人才充足。國內大多數高校都開設了單片機課程和單片機實驗。
2.DSP器件的特點
與單片機相比,DSP器件具有較高的集成度。DSP具有更快的CPU,更大容量的存儲器,內置有波特率發生器和FIFO緩沖器。提供高速、同步串口和標准非同步串口。有的片內集成了A/D和采樣/保持電路,可提供PWM輸出。DSP器件採用改進的哈佛結構,具有獨立的程序和數據空間,允許同時存取程序和數據。內置高速的硬體乘法器,增強的多級流水線,使DSP器件具有高速的數據運算能力。DSP器件比16位單片機單指令執行時間快8~10倍,完成一次乘加運算快16~30倍。DSP器件還提供了高度專業化的指令集,提高了FFT快速傅里葉變換和濾波器的運算速度。此外,DSP器件提供JTAG介面,具有更先進的開發手段,批量生產測試更方便,開發工具可實現全空間透明模擬,不佔用用戶任何資源。軟體配有匯編/鏈接C編譯器、C源碼調試器。
目前國內推廣應用最為廣泛的DSP器件是美國德州儀器(TI)公司生產的TMS320系列。DSP開發系統的國產化工作已經完成,國產開發系統的價格至少比進口價格低一半,有的如TMS320C2XX開發系統只有進口開發系統價格的1/5,這大大刺激了DSP器件的應用。目前,已有不少高校計劃建立DSP實驗室,TI公司和北京聞亭公司都已制訂了高校支持計劃,將帶動國內DSP器件的應用和推廣。
3.DSP器件大規模推廣指日可待
通過上述比較,我們可得出結論:DSP器件是一種具有高速運算能力的單片機
從應用角度看:DSP器件是運算密集型的,而單片機是事務密集型的,DSP器件可以取
代單片機,單片機卻不能取代DSP。DSP器件價格大幅度下滑,直逼單片機。DSP器件廣泛使用了JTAG硬體模擬,比單片機更易於硬體調試。國產化的DSP開發系統為更多用戶採用DSP器件提供了可能性。DSP取代單片機的技術和價格的市場條件已經成熟,大規模推廣指日可待。
DSP器件的典型應用
隨著DSP性能不斷改善,用DSP器件來作實時處理已成為當今和未來技術發展的一個新熱點。
TI公司最新推出的TMS320C2XX系列具有良好的性能價格比,基本可以取代16位單片機。其中TMS320C203單片價格不到人民幣100元,晶元內置544字的高速SRAM。外部可定址64K字程序/數據及I/O,指令周期在25ns~50ns之間,實時性處理比16位單片機快2倍以上,可取代一般的單片機。TMS320F206除了具有TMS320C203的功能外,內置32K字零等待快閃記憶體,可滿足單片設計的要求,能最大限度減少用戶板的體積。TMS320F240的指令、DSP核與TMS320C203、F206完全兼容,內置8K/16K字快閃記憶體,增加了兩路10位A/D,每路采樣頻率可達166kHz,提供9路獨立的PWM輸出,內置SCI和SPI介面,內置CAN匯流排介面。這些大大增強了TMS320X240的處理能力,在電機控制領域顯示了強大的生命力。它是一個典型的TMS320F240的用戶系統,它實現如下功能:
3相PWM輸出/3相電流測量/按鍵控制、液晶顯示/RS232通信,A/D、D/A介面,62K字零等待SRAM,擴展的輸入、輸出及雙向I/O口/JTAG介面。
猜你喜歡
1. cpu,mcu,dsp的區別是什麼
2. 單片機技術論文
3. 單片機的發聲原理
4. 單片機學術論文
5. 單片機的發展歷史簡介
6. 電子設計入門基礎知識
『陸』 點亮d37發光二極體的單片機代碼是什麼
實驗(二):本程序的功能是點亮一個發光二極體#includeVoid main(){P1=0xfe;While(1);}實驗(三):本程序的功能是點亮三個發光
『柒』 怎樣用51單片機做計算器啊
1、硬體模擬圖
4、程序源代碼
#include <reg51.h>#include <intrins.h>
#include <ctype.h>
#include <stdlib.h>
#define uchar unsigned char
#define uint unsigned int
uchar operand1[9], operand2[9];
uchar operator;
void delay(uint);
uchar keyscan();
void disp(void);
void buf(uint value);
uint compute(uint va1,uint va2,uchar optor);
uchar code table[] = {0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,0xff};
uchar dbuf[8] = {10,10,10,10,10,10,10,10};
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
uchar keyscan()
{
uchar skey;
P1 = 0xfe;
while((P1 & 0xf0) != 0xf0)
{
delay(3);
while((P1 & 0xf0) != 0xf0)
{
switch(P1)
{
case 0xee: skey = '7'; break;
case 0xde: skey = '8'; break;
case 0xbe: skey = '9'; break;
case 0x7e: skey = '/'; break;
default: skey = '#';
}
while((P1 & 0xf0) != 0xf0)
;
}
}
P1 = 0xfd;
while((P1 & 0xf0) != 0xf0)
{
delay(3);
while((P1 & 0xf0) != 0xf0)
{
switch(P1)
{
case 0xed: skey = '4'; break;
case 0xdd: skey = '5'; break;
case 0xbd: skey = '6'; break;
case 0x7d: skey = '*'; break;
default: skey = '#';
}
while((P1 & 0xf0) != 0xf0)
;
}
}
P1 = 0xfb;
while((P1 & 0xf0) != 0xf0)
{
delay(3);
while((P1 & 0xf0) != 0xf0)
{
switch(P1)
{
case 0xeb: skey = '1'; break;
case 0xdb: skey = '2'; break;
case 0xbb: skey = '3'; break;
case 0x7b: skey = '-'; break;
default: skey = '#';
}
while((P1 & 0xf0) != 0xf0)
;
}
}
P1 = 0xf7;
while((P1 & 0xf0) != 0xf0)
{
delay(3);
while((P1 & 0xf0) != 0xf0)
{
switch(P1)
{
case 0xe7: skey = '$'; break;
case 0xd7: skey = '0'; break;
case 0xb7: skey = '='; break;
case 0x77: skey = '+'; break;
default: skey = '#';
}
while((P1 & 0xf0) != 0xf0)
;
}
}
return skey;
}
void main()
{
uint value1, value2, value;
uchar ckey, cut1 = 0, cut2 = 0;
uchar operator;
uchar i, bool = 0;
init:
buf(0);
disp();
value = 0;
cut1 = cut2 = 0;
bool = 0;
for(i = 0;i < 9;i++)
{
operand1[i] = '