STC主要依靠高校學生市場和超低端小批量市場(51系列在工業用單片機上的份額並不大)生存多年,出了這麼多產品。而且那個神奇的ISP工具越做越像客戶端,也許有一天STC把編譯器做進去,直接就在下載工具裡面寫程序了。
STC最大的優勢,就是超低的學習成本,就像一架高性能的教練機一樣,非常適合作為單片機愛好者學習的入門機型。雖然這樣導致了註定很難有驚豔的設計或者產品(不代表沒有),但是低端市場也是市場,而且很大。這樣的市場有這樣的需求,STC滿足了這個需求就很好,就像廣場舞滿足了普通大眾的娛樂需求。51系列中,STC用的是最多的。但問題是:
1、51的最大好處無非就是學習資料眾多,學習條件比較好,但51單片機性能偏弱且價格高,因此性價比其實並不好。
2、現在比較熱門的是STM8或STM32,大有代替51之勢,它的價格比STC51更便宜,性能也強得多(特別是STM32,性能非常高,根本不是STC這種8位單片機能比得了),穩定性也好。其他的還有PIC、AVR、MSP430系列單片機,飛思卡爾(去年已經被高通收購)也是很不錯的單片機,工業上也有一定應用。
3、另外一大領域是專用的工業用單片機,這種單片機往往突出某個方面的性能,比如AD,而簡化了其他性能,但好處是價格非常便宜。但這種單片機資料往往要少得多,燒寫器等都是專用的,比較貴,不適合學習者而更適合工業化大批量生產。比如三星、義隆、合泰的一些單片機都是這樣,他們比51更便宜,性能上在自己的強項上一點不比51弱。
4、說51好的,一般都是高校學生,畢業之後的人很少這麼說。STC雖然性價比在51系列中算突出的了,但也有自身的缺陷,就是穩定性差,抗幹擾能力比較弱(這也是它為何那麼便宜,而很多上規模的正規企業不願意用STC的關鍵原因。ATMEL公司的51 穩定性上要比STC好,但價格貴,功能弱)。
5、個人理解,如果你要學單片機,51起步是很不錯的,先學彙編把硬體底層搞熟,然後轉到C語言編程(彙編紮實,轉到C語言輕而易舉,直接學C,表面上看進度很快,但實際上基礎很不牢固,以後要吃苦頭)。等51熟悉了之後,轉到另外更實用,功能更強的單片機比如STM8,是一種比較好的途徑。
推薦閱讀
LED點陣模塊顯示數字0#include<reg51.h>#include<intrins.h>typedef unsigned char u8;typedef unsigned int u16;sbit SRCLK=P3^6;sbit RCLK=P3^5;sbit SER=P3^6;u8 ledduan[]={0x00,0x00,0x3e,0x41,0x41,0x41,0x3e};u8 ledwei[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};void delay(int i){ while(i--);}void Hc595SendByte(u8 dat){ u8
發表於 2020-04-29
計算機通信是將計算機技術和通信技術的相結合,完成計算機與外部設備或計算機與計算機之間的信息交換 。可以分為兩大類:並行通信與串行通信。並行通信通常是將數據字節的各位用多條數據線同時進行傳送 。並行通信控制簡單、傳輸速度快;由於傳輸線較多,長距離傳送時成本高且接收方的各位同時接收存在困難。串行通信是將數據字節分成一位一位的形式在一條傳輸線上逐個地傳送。串行通信的特點:傳輸線少,長距離傳送時成本低,且可以利用電話網等現成的設備,但數據的傳送控制比並行通信複雜。串行通信的基本概念一、異步通信與同步通信1、異步通信異步通信是指通信的發送與接收設備使用各自的時鐘控制數據的發送和接收過程。為使雙方的收發協調,要求發送和接收設備的時鐘
發表於 2020-04-26
CPU時序的有關知識振蕩周期:為單片機提供定時信號的振蕩源的周期(晶振周期或外加振蕩周期)狀態周期:2個振蕩周期為1個狀態周期,用S表示。振蕩周期又稱S周期或時鐘周期。機器周期:機器周期也就是CPU完成一個基本操作所需要的時間。1個機器周期含6個狀態周期,12個振蕩周期。機器周期=1/單片機的時鐘頻率。時鐘頻率:外部時鐘的12分頻。也就是說當外部晶振的頻率輸入到單片機裡面的時候要進行12分頻。比如說你用的是12MHZ的晶振,那麼單片機內部的時鐘頻率就是12/12MHZ,當你使用12MHZ的外部晶振的時候。機器周期=1/1M=1us。指令周期:完成1條指令所佔用的全部時間,它以機器周期為單位。在學習定時器之前需要明白的51單片機有兩組
發表於 2020-04-26
中斷是為使單片機具有對外部或內部隨機發生的事件實時處理而設置的,中斷功能的存在,很大程度上提高了單片機處理外部或者內部事件的能力。它也是單片機最重要的功能之一,是我們學習單片機必須要掌握。首先介紹單片機中斷技術的優點:解決了快速主機與慢速I/O設備的數據傳送問題;分時操作。CPU可以分時為多個I/O設備服務,提高了計算機的利用率;實時響應。CPU能夠及時處理應用系統的隨機事件,系統的實時性大大增強;可靠性高。CPU具有處理設備故障及掉電等突發性事件能力,從而使系統可靠性提高。中斷的相關概念:以下事件依次發生,這一過程稱為「中斷」!中斷發生:CPU在處理某一事件A時,發生了另一事件B請求CPU迅速去處理;中斷響應:CPU暫時中斷當前的
發表於 2020-04-25
/*Coder : FarmanDate : 2018-01-02參考了廠家的TM1637數據手冊,在此表示感謝。*/ #include <STC89C5XRC.h> //包含52單片機頭文件#include "Delay.h" //////////////////////////////////////////////////////////////////////////// sbit I2C_SCL = P2^1; //定義模擬IIC總線的時鐘線sbit I2C_SDA = P2^0; 
發表於 2020-04-11
這個程序實現的效果是將程序下載到STC板子上後,可以看到8個數碼管從左到右分別顯示0到7的八個數字,隔一段時間後顯示1到8,接著是2到9,再接著是3到0以此循環向左移動。首先我們先來看看數碼管和發光二極體的硬體電路圖需要明確的是,這個程序的是實現需要:LED燈亮且不會數碼管同時亮。要讓LED燈亮,首先需要將P0的8個引腳以及P2.3設置成推輓輸出(工作模式)(這裡對工作模式的設置方式不再贅述)數碼管和LED燈不同時亮:通過E3實現。E3 既是反相器輸出信號也是數碼管的使能信號,當E3=0時,LED燈(共陰極)亮,數碼管位選信號的使能信號為0,數碼管不亮;反之,數碼管亮而LED不亮接下來,我們還需要注意到的是,不光要是數碼管
發表於 2020-04-06