㈠ STC12C2051C使用什麼編譯器
STC單片機是51單片機內核,所以,用匯編語言或C語言寫程序都用keil編譯器。新建工程時,可用AT89C51代替,用#define包含STC的頭文件。
㈡ STC12的1T模式與12T模式哪個穩定
1T和12T
1T和12T只有在STC12系列以後的單片機里才出現的。前面我們已經說到了,傳統的單片機其實就是12T單片機,也就是晶振頻率會被12分頻後才是指令運行的頻率。到時STC12系列以後的STC單片機出現1T模式,也就是有些指令的執行時只需要兩個晶振周期就能執行完。理論上來說,這樣的運行速度會比傳統單片機快6倍,為什麼加「理論」,因為不是所有的指令都快6倍,只是一部分,還有些是快4倍,快3倍的。具體的需要看STC官方數據手冊,如下圖。
仔細的小夥伴會看到在第5列的第一行里有個小括弧(採用STC-Y2 CPU內核指令集),STC12用的就是這個內核,而到了STC15系列晶元用的是STC-Y5內核,STC8系列用的是STC-Y6內核,Y後面的數字越大,指令優化的越厲害,表現出來的就是運行的更快,STC-Y5內核的指令集里,大部分的匯編指令到時一個晶振周期就執行完成的了,也就是比傳統單片機快12倍。 現在我在做單片機開發的時候,絕大部分都是採用的C語言開發,你還在用匯編,那我只能是膜拜你了。C語言編程的程序方便移植,好理解,容易入門,不需要去記住那些復雜的寄存器,但是確定也明顯,就是效率不高,運行速度我們沒辦法准確的計算出來。編譯器在把C語言代碼轉化為匯編語言的過程我們是沒法控制的,這樣編譯出來的機器代碼我們就沒辦法去計算時間的指令運行時間。 >>>>
軟體模擬和實際開發板
模擬軟體,外國老表開發的,STC國產(好吧,內核還是人家的)。不知道什麼原因,我們不知道,也不敢問,在模擬軟體里就是沒有STC的單片機晶元可以選擇,沒有STC的單片機,我們只能選擇傳統51單片機,這樣一來,模擬的時候,程序運行的速度是傳統的12T模式,也就是晶振頻率12分頻後才是執行的實際頻率。 單片機開發板運行時,因為提問小夥伴用的單片機是STC12系列的晶元,就算他運行在12T模式下,指令系統還是有優化,速度肯定比傳統的指令集要快。更何況呢,他連1T和12T都分不清,運行在1T模式下也是有可能的,所以,今天的問題就來了。實際開發板運行速度肯定會比軟體模擬快。 寫在最後 在很久之前,我就寫過一篇文字,就說了不建議初學單片機的菜鳥從軟體模擬開始。現在還有多少高校的單片機課程還在是以模擬運行的呢,希望是沒有了,但我想,僅僅是我想想。 其實,小代覺得,學單片機的最終是要自己設計屬於自己的東西,比如自己的畢設,更或是親手做一個小禮物俘獲女神的芳心。但是自己寫的代碼永遠都運行在軟體里,沒有實際電路,你又怎麼可能會自己設計電路呢。你不自己看見過電阻,又怎麼可能會知道一個長得很像電阻的電子元件它其實是二極體。 最最後,回到今天的問題上,當我們把軟體模擬運行完美的代碼移植到實際開發板上運行時,代碼是需要做單片機的適配的,比如,採用代碼方式實現的延時函數,比如IO埠的配置,比如某些中斷的入口,比如某些寄存器的定義等等。在移植之前,還是得拿目標晶元的數據手冊來看看。
㈢ 編程器做什麼用的,還有一些關於單片機燒寫的問題
你問題還真多,下面一個一個給你回答:
1.編程器就是將你電腦上寫好並生成可執行文件的程序代碼寫入到你的單片機程序儲存器里邊。這本身是一個實物大類。
2.編程器就會有與電腦的介面,而與電腦的介面常用的是串口,現在用的STC單片機編程器有一種是USB介面的,其實質是USB介面模擬的串口,所以USB轉串口就是指用USB介面模擬串口。
3.ISP是一種通信協議,說簡單點就是時序問題,只有時序正確,雙方才能進行通信。
4.ISP3.8這個軟體應該可以燒寫支持ISP程序下載的單片機。但你用的是USB轉串口的硬體,所以你所選單片機應該是STC51系列單片機,而不是AT51系列單片機,兩者程序下載方式是不一樣的。如果要燒寫AT51系列單片機必須用專用的編程器。
5.51單片機的指令周期長,AVR的指令周期短,在同樣的外部時鍾下,AVR的運行速度比51的快很多。不過現在的STC51系列的單片機在指令周期方面也縮短了很多。在這兒一兩句說不清楚。51單片機是一個系列,按各自的配置(比如程序存儲器大小,A/D路數等)分有很多種型號,所以在51選型上,你要清楚自己會用到一些什麼功能。
㈣ 如何在keil4中添加STC單片機
1、在STC的官網下載好中物最新的STC-ISP軟體,然後在電腦上打開此軟體。