① 單片機的現狀也發展前景
轉自:嵌入開發技術論壇 計算機系統的發展已明顯地朝三個方向發展;這三個方向就是:巨型化,單片化,網路化。以解決復雜系統計算和高速數據處理的仍然是巨型機在起作用,故而,巨型機在目前在朝高速及處理能力的方向努力。單片機在出現時,Intel公司就給其單片機取名為嵌入式微控制器(embedded microcontroller)。單片機的最明顯的優勢,就是可以嵌入到各種儀器、設備中。這一點是巨型機和網路不可能做到的。 在本文,介紹單片機的最新技術進步,包括數字單片機的工藝及技術,模糊單片機的工藝及技術,單片機的可靠性技術,以及以單片機為核心的嵌入式系統。 數字單片機的技術發展 數字單片機的技術進步反映在內部結構、功率消耗、外部電壓等級以及製造工藝上。在這幾方面,較為典型地說明了數字單片機的水平。在目前,用戶對單片機的需要越來越多,但是,要求也越來越高。下面分別就這四個方面說明單片機的技術進步狀況。 1、 內部結構的進步 單片機在內部已集成了越來越多的部件,這些部件包括一般常用的電路,例如:定時器,比較器,A/D轉換器,D /A轉換器,串列通信介面,Watchdog電路,LCD控制器等。 有的單片機為了構成控制網路或形成局部網,內部含有局部網路控制模塊CAN。例如,Infineon公司的C 505C,C515C,C167CR,C167CS-32FM,81C90;Motorola公司的68HC08AZ 系列等。特別是在單片機C167CS-32FM中,內部還含有2個CAN。因此,這類單片機十分容易構成網路。特別是在控制,系統較為復雜時,構成一個控制網路十分有用。 為了能在變頻控制中方便使用單片機,形成最具經濟效益的嵌入式控制系統。有的單片機內部設置了專門用於變頻控制的脈寬調制控制電路,這些單片機有Fujitsu公司的MB89850系列、MB89860系列;Motorola 公司的MC68HC08MR16、MR24等。在這些單片機中,脈寬調制電路有6個通道輸出,可產生三相脈寬調制交流電壓,並內部含死區控制等功能。 特別引人注目的是:現在有的單片機已採用所謂的三核(TrCore)結構。這是一種建立在系統級晶元(System on a chip)概念上的結構。這種單片機由三個核組成:一個是微控制器和DSP核,一個是數據和程序存儲器核,最後一個是外圍專用集成電路(ASIC)。這種單片機的最大特點在於把DSP和微控制器同時做在一個片上。雖然從結構定義上講,DSP是單片機的一種類型,但其作用主要反映在高速計算和特殊處理如快速傅立葉變換等上面。把它和傳統單片機結合集成大大提高了單片機的功能。這是目前單片機最大的進步之一。這種單片機最典型的有Infineon公司的TC10GP;Hitachi公司的SH7410,SH7612等。這些單片機都是高檔單片機,MCU都是32位的,而DSP採用16或32位結構,工作頻率一般在60MHz以上。 2、 功耗、封裝及電源電壓的進步 現在新的單片機的功耗越來越小,特別是很多單片機都設置了多種工作方式,這些工作方式包括等待,暫停,睡眠,空閑,節電等工作方式。Philips公司的單片機P87LPC762是一個很典型的例子,在空閑時,其功耗為1.5 mA,而在節電方式中,其功耗只有0.5mA。而在功耗上最令人驚嘆的是TI公司的單片機MSP430系列,它是一個 16位的系列,有超低功耗工作方式。它的低功耗方式有LPM1、LPM3、LPM4三種。當電源為3V時,如果工作於 LMP1方式,即使外圍電路處於活動,由於CPU不活動,振盪器處於1~4MHz,這時功耗只有50?A。在LPM3 時,振盪器處於32kHz,這時功耗只有1.3?A。在LPM4時,CPU、外圍及振盪器32kHz都不活動,則功耗只有0.1?A。 現在單片機的封裝水平已大大提高,隨著貼片工藝的出現,單片機也大量採用了各種合符貼片工藝的封裝方式出現,以大量減少體積。在這種形勢中,Microchip公司推出的8引腳的單片機特別引人注目。這是PIC12CXXX系列。它含有0.5~2K程序存儲器,25~128位元組數據存儲器,6個I/O埠以及一個定時器,有的還含4道A/D ,完全可以滿足一些低檔系統的應用。擴大電源電壓范圍以及在較低電壓下仍然
② 誰能給我解釋一下以下的單片機程序
ORG 0000H
LJMP MAIN
ORG 0100H ;主程序地址
MAIN: JNB P1.0,P10 ;哪個鍵按下,顯示哪個波形
JNB P1.1,P11
JNB P1.2,P12
JNB P1.3,P13
LJMP MAIN ;沒有鍵按下返回主程序循環
P10: MOV R7,#00H ;方波波形,R7為特徵碼,放00,表示方波
LCALL SQU ;調用方波波形函數
LJMP MAIN ;調用完返回主程序循環
P11: MOV R7,#01H ;01表示SAW波
LCALL SAW
LJMP MAIN
P12: MOV R7,#02H
LCALL TRI
LJMP MAIN
P13: MOV R7,#03H
LCALL SIN
LJMP MAIN
SQU: JNB P1.1,N1 ;方波函數,如果有其他鍵按下
JNB P1.2,N2 ;退出程序
JNB P1.3,N3
LJMP SSQU ;沒有鍵按下,到SSQU函數產生方波
N1: MOV R7,#01H ;哪個鍵按下就在R7中記下特徵碼
LJMP TC0
N2: MOV R7,#02H
LJMP TC0
N3: MOV R7,#03H
LJMP TC0
SSQU: CJNE R7,#00H,TC0 ;R7不為0退出
MOV R0,#00H ;R0中放00
MOV DPTR,#7FFFH ;這個應該是DAC0832的地址
K00: MOV A,#0FFH ;A中放FF,高電平
MOVX @DPTR,A ;A到0832轉換
MOV P0,#0FFH ;這一句不怎麼懂,感覺可以去掉
MOV P2,#0FFH ;值P2輸入方式,P2是通過撥碼按鈕改
MOV A,P2 ;變數值,P2越大,波形周期越小
CPL A
MOV R3,A
L00: DEC R3
CJNE R3,#255,L00 ;這個循環改變周期
INC R0
INC R0
CJNE R0,#254,K00 ;高電平波循環127次
MOV R0,#00H
K01: MOV A,#00H ;低電平,跟高電平差不多
MOVX @DPTR,A
MOV P0,#00H
MOV P2,#0FFH
MOV A,P2
CPL A
MOV R3,A
L01: DEC R3
CJNE R3,#255,L01
INC R0
INC R0
CJNE R0,#254,K01
LJMP SQU ;顯示完一個波形,回到方波函數開始,判斷有無其他按鍵
TC0: RET ;返回主函數
SAW: JNB P1.0,N4 ;判斷有無其他按鍵,同方波
JNB P1.2,N5
JNB P1.3,N6
LJMP SSAW
N4: MOV R7,#00H
LJMP TC1
N5: MOV R7,#02H
LJMP TC1
N6: MOV R7,#03H
LJMP TC1
SSAW: CJNE R7,#01H,TC1 ;特徵碼不是01 退出
MOV R0,#0FFH ;RO中放即將輸出的值
MOV DPTR,#7FFFH
K10: MOV A,R0 ;鋸齒波的每個值
MOVX @DPTR,A ;輸出
MOV P0,R0
MOV P2,#0FFH ;通過P2改變周期
MOV A,P2
CPL A
MOV R3,A
L10: DEC R3
CJNE R3,#255,L10
INC R0 ;通過R0加1 來顯示鋸齒波的斜坡
CJNE R0,#255,K10 ;RO不等於255,循環鋸齒波的每個值
LJMP SAW ;等於255,完成一個鋸齒波周期,回鋸齒波開始
TC1: RET ;退出
TRI: JNB P1.0,N7 ;三角波,類似於兩個相反的鋸齒波
JNB P1.1,N8
JNB P1.3,N9
LJMP TTRI
N7: MOV R7,#00H
LJMP TC2
N8: MOV R7,#01H
LJMP TC2
N9: MOV R7,#03H
LJMP TC2
TTRI: CJNE R7,#02H,TC2
MOV R0,#00H
MOV DPTR,#7FFFH
K20: MOV A,R0
MOVX @DPTR,A
MOV P0,R0
MOV P2,#0FFH
MOV A,P2
CPL A
MOV R3,A
L20: DEC R3
CJNE R3,#255,L20
INC R0
INC R0
CJNE R0,#254,K20
K21: MOV A,R0
MOVX @DPTR,A
MOV P0,R0
MOV P2,#0FFH
MOV A,P2
CPL A
MOV R3,A
L21: DEC R3
CJNE R3,#255,L21
DEC R0
DEC R0
CJNE R0,#0,K21
LJMP TRI
TC2: RET
SIN: JNB P1.0,N10 ;正弦波,是通過存儲在代碼區的一個數
JNB P1.1,N11 ;組來顯示值的
JNB P1.2,N12
LJMP SSIN
N10: MOV R7,#00H
LJMP TC3
N11: MOV R7,#01H
LJMP TC3
N12: MOV R7,#02H
LJMP TC3
SSIN: CJNE R7,#03H,TC3
MOV R0,#00H
MOV DPTR,#7FFFH
K30: MOV A,R0
MOV DPTR,#TAB ;數組的地址
MOVC A,@A+DPTR ;把第R0個數放到A中
MOV DPTR,#7FFFH
MOVX @DPTR,A ;輸出A
MOV P0,A
INC R0 ;RO加1
MOV P2,#0FFH ;周期
MOV A,P2
CPL A
MOV R3,A
L30: DEC R3
CJNE R3,#255,L30
CJNE R0,#255,K30 ;不等於255表示一個周期內,跳到K30
LJMP SIN ;等於表示顯示完一個周期,到SIN開始
TC3: RET ;退出
TAB: DB ;定義正弦函數的各個值
看了你的圖和你的程序,感覺你的圖畫得簡單了一點,特別是0832地址,控制信號都沒接,看起來還在調試,建議P2口做地址匯流排,這樣,編程比較方便,你可以把P3口做周期.或者把P1口的其他口做控制匯流排,這樣要對0832時序比較熟悉才行.
我平時是用C開發的,很少用匯編,如果有什麼錯誤,可以共同探討.
③ 腦洞大開,單片機有沒有多核的
以前有個湖南華芯,有雙核 三核 51單片機,但是倒閉停產了。當時覺得價格,性能都不錯,就是編程器麻煩,明明支持ISP,偏偏官方文檔寫的不清不楚,還不提供技術支持,弄得很多地方都不能用。
④ 學好單片機找什麼工作
問題一:學單片機以後可以從事什麼工作? 工業自動化
可以利用單片機來完成一些程序
單片機已經應用到了各個領域
小到家電大到太空梭
最簡單的 商店門頭上的LED顯示文字的 就是單片機做出來的
不錯的專業 加油
問題二:問一下各位單片機答人學單片機有前途么 沒什麼優勢,單片機相對於通用計算機而言學科差距很大,即使對於電科和自動化來言單片機也是非常基礎的工具,沒有比較高層次的人是僅通過單片機來找工作的,當然設計單片機或者開發板的除外。
單片機雖然現在可以用高級語言編程,單實質上一般是通過軟體翻譯工具譯成匯編寫到片子里的,所以單片機的應用主要是低級的工程式控制制或者是簡單演算法,和你的專業是完全脫節的,如果做這個等於你的計算機白學,而軟體開發也不可能用到單片機這種東西。
即使你舍棄專業單一的從事單片機開發,那也是不可取的,單片機對於自動化有點像科學計算器相對於數學,一般做技術含量高一些的工作不會太考慮單片機方面的東西,只要演算法或者控制思想能夠達到要求,具體的活都是底層的技術工人乾的,至於技術工人是用這種或者那種控制晶元,採用什麼樣的編程方法等問題一般不會太關心。就像搞數學的高層技術人員弄出來針對性的公式演算法,接下來怎麼代入數據來算或者用哪個品牌什麼型號的計算器來算,這個雖然他們都懂但是不可能去做,因為這種工作付一中專生即可。
歸根結底是沒有對單片機應用做好定位:低層次的勞動乾的再好也是低層次的勞動,很爛的電鋸設計人員也比最好的伐木工人有優勢。另外您所參加的單片機校園實踐活動這些並非廠像電科或者自動化那個層次對單片機的使用。比如你所定義的智能車,自動化定義的智能是有自學習或者通俗一點能自己適應工作環境的含義的,在飛思卡爾汽車設計比賽當中也有人用單片機控制的,但是必須要提出新的智能控制理論或者建立新的智能控制演算法並寫出論文才敢定義智能二字;再比如機器人,也有用單片機設計的,但是往往都會提出新的平衡演算法和力學方程,或者是對硬體比如濾波器,單片機時鍾電路,介面等做出突破性的改進才算取得成果,並非是簡單的接個數字電路再配點外設寫個程序接上好使就行。
所謂的專攻單片機的也有,而且成果很豐碩,但是不適合你的專業。比如吉林大學做的博碩系列開發板就很有市場佔有率,再比如我有個老師,提出了一些時鍾信號誤差規避演算法和採用老式通用計算機CPU外接TTL電路設計專有單片機的思想。這些工作對於您的專業很不對口,如果讓您設計一款單片機開發板或者給你一些硬體條件讓您做一款符合工作環境的專用單片機的話肯定比較困難,所以按部就班的做好自己專業的工作才是正道,雖然條條大路通羅馬,但是每個專業都有自己的路,走別人的路就成了歪門邪道了。
問題三:學好單片機出來工作好找嗎 你要是學的特好,肯定能找到好工作
問題四:單片機 學精了 可以找什麼工作 說實話,要看運氣,看關系,看能力。
不論你在學校里多牛X,參加什麼電子設計大賽。拿過什麼獎項。沒有用的。
學校里用的單片機,工業上都不會用。
現在51在工業上用的很少。FPGA\DSP、ARM用的比較多。
不過,工業上,對CAN\ 485\ TC/IP 這些傳輸協議看的比較重,你可以多學習一點。
對於51單片機,實在是沒有必要在學習了。
如果要搞硬體,最好要學會ARM,還有操作系統,ucos,安卓,等主流系統,進入嵌入式行業。
另外,剛畢業的大學生,大公司一般一開始不會要你做研發。要有心理准備。
找一個對胃口,工資不錯的工作真不容易。
總之,努力吧!
問題五:請問學好單片機具體能從事哪些工作? 工業自動化 可以利用單片機來完成一些程序 單片機已經應用到了各個領域 小到家電大到太空梭 最簡單的 商店門頭上的LED顯示文字的 就是單片機做出來的 不錯的專業 加油
問題六:單片機學好了可以做哪些工作 簡單點的做測試,單片機技術比較好的做研發,跟團隊做項目,單片機的應用太廣了,相信只要自己技術厲害,到哪都不怕
當然單片機學好也並非容易的事,一般初學者都不知道怎麼學,入門學習藉助吳鑒鷹單片機開發板,看視頻教程,多動手多思考
後期轉其他單片機開發板,突出精通一個,其他的要做到會用
問題七:學會51單片機能做什麼工作? 學會51單片機可以做很多工作,簡單列舉一些吧。
1、工業控制領域方面,很多設備的底層控制都是採用51單片機實現的。
2、儀器儀表方面,51單片機由於成本低廉,所以很受該行業歡迎。
3、汽車行業,一輛汽車的控制MCU很多,51單片機也佔有一席之地 。
4、通訊方面,51單片機在GPS、紅外、射頻等方面都有很廣泛的應用。
5、航海航空,盡管ARM逐步儲有了主導地位,但是各個模塊的底層51單片機仍然再使用。
6、其他各個方面,其實作為最早大量使用的單片機之一,51單片機在各行各業都沒有退出歷史舞台,仍然在發揮作用。
問題八:學習單片機能找到什麼樣的工作 可以做設計,單片機應用領域特別廣泛,比如電磁爐,可控電風扇,冰箱,洗衣機,數字電視,手機,電梯等等,主要看你對哪一個產品感興趣
問題九:學習單片機有前途嗎?想找一份單片機工程師的工作,需要學習哪些知識啊? 你好,單片機的學習肯定是有前途的,這個領域應用特別廣,現在基本上找不到不應用單片機的領域。要做單片機工程師工作的話,需要會簡單的模擬電子技術,數字電子技術,C語言程序設計能力 ,單片機基礎知識,教程的話建議你去看一下吳鑒鷹單片機實戰精講,在很多論壇都有分享,裡面源程序,原理圖,Proteus模擬圖都有,在裡面能夠看懂十個他的常式,找工作一點問題,要耐下心去學習。
問題十:學好單片機有什麼用處啊,工作好找嗎,一般工資多少 電子設計,嵌入式開發什麼的,工資的話剛出來不高,除非你讀書參加比賽然後有公司相中你可能工資就高一些,但是畢竟工資還是得靠年份和技術掛鉤的
⑤ st單片機IO口類型FT、TC是什麼意思
FT表示最大耐壓5V。
TC表示標准3.3VI/O。
還有一些FM是FASTMODE的意思。
FM表示該IO口做I2C應用時支持400K速率,
FM+表示該IO口做I2C應用時支持高達1M的速率。
⑥ C語言控制單片機的詳細原理是怎樣的
C語言源程序----->C編譯器----->匯編代碼----->匯編器----->機器代碼
所謂的單片機C語言的意思是拿C語言來編寫單片機程序,沒有什麼C語言控制單片機這回說法。具體過程是:C語言源程序通過特定的C編譯器編譯為針對某種單片機的匯編代碼,再由匯編器將匯編代碼匯編為單片機可執行的機器代碼,然後下載到單片機的存儲器運行。當前一般的集成開發環境(如Keil C)可以一次搞定生成機器代碼。
需要補充一點的是,單片機也是一種計算機,不要以為只有在PC機上才可以用C語言編程,C語言可以用作為任何計算機的編程語言,當然包括單片機,但有一個條件就是,你必需要有針對某種架構的計算機的C編譯器。目前來講,C語言的編譯器種類非常多,有用於各種單片機以及微處理器架構的編譯器版本,所以可以用C來做為單片機的編程語言。不同的是,你用TC或者VC編譯得到的是X86(如Intel,AMD)的目標代碼,只能在PC機上運行,而如果用單片機C編譯器(比如Keil C)編譯的代碼是單片機代碼,只能在特定的單片機上運行。目前C/C++是最流行的單片機/微處理器編程語言。