❶ arm單片機和avr、51有什麼區別
ARM、DSP、FPGA的技術特點和區別
ARM(AdvancedRISCMachines)是微處理器行業的一家知名企業,設計了大量高性能、廉價、耗能低的RISC處理器、相關技術及軟體。ARM架構是面向低預算市場設計的第一款RISC微處理器,基本是32位單片機的行業標准,它提供一系列內核、體系擴展、微處理器和系統晶元方案,四個功能模塊可供生產廠商根據不同用戶的要求來配置生產。由於所有產品均採用一個通用的軟體體系,所以相同的軟體可在所有產品中運行。目前ARM在手持設備市場佔有90以上的份額,可以有效地縮短應用程序開發與測試的時間,也降低了研發費用。
DSP(digitalsingnalprocessor)是一種獨特的微處理器,有自己的完整指令系統,是以數字信號來處理大量信息的器件。一個數字信號處理器在一塊不大的晶元內包括有控制單元、運算單元、各種寄存器以及一定數量的存儲單元等等,在其外圍還可以連接若干存儲器,並可以與一定數量的外部設備互相通信,有軟、硬體的全面功能,本身就是一個微型計算機。DSP採用的是哈佛設計,即數據匯流排和地址匯流排分開,使程序和數據分別存儲在兩個分開的空間,允許取指令和執行指令完全重疊。也就是說在執行上一條指令的同時就可取出下一條指令,並進行解碼,這大大的提高了微處理器的速度。另外還允許在程序空間和數據空間之間進行傳輸,因為增加了器件的靈活性。其工作原理是接收模擬信號,轉換為0或1的數字信號,再對數字信號進行修改、刪除、強化,並在其他系統晶元中把數字數據解譯回模擬數據或實際環境格式。它不僅具有可編程性,而且其實時運行速度可達每秒數以千萬條復雜指令程序,遠遠超過通用微處理器,是數字化電子世界中日益重要的電腦晶元。它的強大數據處理能力和高運行速度,是最值得稱道的兩大特色。由於它運算能力很強,速度很快,體積很小,而且採用軟體編程具有高度的靈活性,因此為從事各種復雜的應用提供了一條有效途徑。根據數字信號處理的要求,DSP晶元一般具有如下主要特點:
(1)在一個指令周期內可完成一次乘法和一次加法;
(2)程序和數據空間分開,可以同時訪問指令和數據;
(3)片內具有快速RAM,通常可通過獨立的數據匯流排在兩塊中同時訪問;
(4)具有低開銷或無開銷循環及跳轉的硬體支持;
(5)快速的中斷處理和硬體I/O支持;
(6)具有在單周期內操作的多個硬體地址產生器;
(7)可以並行執行多個操作;
(8)支持流水線操作,使取指、解碼和執行等操作可以重疊執行。
當然,與通用微處理器相比,DSP晶元的其他通用功能相對較弱些。
FPGA是英文FieldProgrammableGateArray(現場可編程門陣列)的縮寫,它是在PAL、GAL、PLD等可編程器件的基礎上進一步發展的產物,是專用集成電路(ASIC)中集成度最高的一種。FPGA採用了邏輯單元陣列LCA(LogicCellArray)這樣一個新概念,內部包括可配置邏輯模塊CLB(ConfigurableLogicBlock)、輸出輸入模塊IOB(InputOutputBlock)和內部連線(Interconnect)三個部分。用戶可對FPGA內部的邏輯模塊和I/O模塊重新配置,以實現用戶的邏輯。它還具有靜態可重復編程和動態在系統重構的特性,使得硬體的功能可以像軟體一樣通過編程來修改。作為專用集成電路(ASIC)領域中的一種半定製電路,FPGA既解決了定製電路的不足,又克服了原有可編程器件門電路數有限的缺點。可以毫不誇張的講,FPGA能完成任何數字器件的功能,上至高性能CPU,下至簡單的74電路,都可以用FPGA來實現。FPGA如同一張白紙或是一堆積木,工程師可以通過傳統的原理圖輸入法,或是硬體描述語言自由的設計一個數字系統。通過軟體模擬,我們可以事先驗證設計的正確性。在PCB完成以後,還可以利用FPGA的在線修改能力,隨時修改設計而不必改動硬體電路。使用FPGA來開發數字電路,可以大大縮短設計時間,減少PCB面積,提高系統的可靠性。FPGA是由存放在片內RAM中的程序來設置其工作狀態的,因此工作時需要對片內的RAM進行編程。用戶可以根據不同的配置模式,採用不同的編程方式。加電時,FPGA晶元將EPROM中數據讀入片內編程RAM中,配置完成後,FPGA進入工作狀態。掉電後,FPGA恢復成白片,內部邏輯關系消失,因此,FPGA能夠反復使用。FPGA的編程無須專用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當需要修改FPGA功能時,只需換一片EPROM即可。這樣,同一片FPGA,不同的編程數據,可以產生不同的電路功能。因此,FPGA的使用非常靈活。可以說,FPGA晶元是小批量系統提高系統集成度、可靠性的最佳選擇之一。目前FPGA的品種很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。
區別是什麼?:ARM具有比較強的事務管理功能,可以用來跑界面以及應用程序等,其優勢主要體現在控制方面,而DSP主要是用來計算的,比如進行加密解密、調制解調等,優勢是強大的數據處理能力和較高的運行速度。FPGA可以用VHDL或verilogHDL來編程,靈活性強,由於能夠進行編程、除錯、再編程和重復操作,因此可以充分地進行設計開發和驗證。當電路有少量改動時,更能顯示出FPGA的優勢,其現場編程能力可以延長產品在市場上的壽命,而這種能力可以用來進行系統升級或除錯。
新手在學習時,最好能有51單片機的基礎.這樣今後學起別的片子來會快很多.推薦你們用鐵牛單片機實驗板F1版
❷ 「_」這個符號在電腦上怎麼打出來
^ 特殊符號,標准鍵盤中位於數字6上方,可用英文輸入法Shift+6打出。
^,中文尚無通用名稱,可以是乘方、插入符號、插入符、脫字元號等, 其也可代表山形符號、邏輯異或符號、冪、尖牙、指標 ( Pascal (編程語言)), 或「楔子」。
此字元不論在 ASCII或Unicode都代表揚抑符(因其歷來在 overstrike 的作用),而caret則代表另一個相似但位於下方的 Unicode 字元:「‸」(CARET,U+2038)。此外還有一個帶斜線的下方變形字元:「⁁」(CARET INSERTION POINT,U+2041)。
(2)51單片機輸入法擴展閱讀
一 、在C語言中,^屬於特殊字元,表示脫字元號;在ANSI C中,引入了三元字元,為某些鍵盤上沒有的字元提供輸入方法。此時可以用三元符號「??/」表示脫位字元 ^ 。
二、^也可以表示特殊的二元運算符-逐位邏輯運算符(用於對數據的位進行操作),它表示的含義是逐位非或,要求兩個整型操作數。從最小(即最右)的位開始,對操作數逐位操作,如果只有其中一個位為1,那麼結果為1,否則為0。
三、^在51單片機C語言中有兩種用法:
1, 表示一個直接地址的某一。
2, 表示一個立即數的冪運算。
❸ 用C語言編寫 手機用拼音輸入法的實現
關於嵌入式設備輸入法(手機輸入法) C語言實現
目前我在調試一款設備,類似於手機,有0-9,*,#,確定,退出,上下左右這些鍵。
苦於沒有輸入法。
顯示漢字那一塊目前已搞定,我貼出來原理:
漢字由兩個機內碼組成qh,wh,
第一步:
qh-=0xa0; //機內碼轉成區位碼-0xa0
wh-=0xa0;
第二步:
定位字型檔裡面的字:
offset=(94*(qh-1)+(wh-1))*32; /* 定位字型檔的字 */
第三步:
顯示到屏上面16*16個點一個漢字
for(i=0;i<16;i++)
{
val16=((hzk16[i]<<8)&0xff00) + ((hzk16[i]>>8)&0xff);
for(j=0;j<16;j++)
{
if(val16 & 0x8000) p16[i*nDataWidth+j]=nColor&0xffff;
val16=val16<<1;
}
}
說了半天的顯示其實主題是輸入法,只要能鍵出機內碼就行。
問題的關鍵就在這里了,目前我才剛開始開發。希望喜歡的朋友一起交流。
網上找了些東西參考:
直接在Keil下模擬的T9拼音輸入法(完整版)
嵌入式系統中文輸入法的設計
這兩個東西也比較重要:
漢字編碼原理 文中講了漢字編碼的整下原理,一目瞭然。
點陣漢字顯示 文中講了點陣的漢字的顯示方法,配合上面的代碼理解。
16x16字型檔文件下載,注意右鍵另存為後面把.jpg的改成.bin即可.
用什麼問題可以多多交流。[email protected].或者QQ郡里
手機爆中文輸入法侵權糾紛 幾乎所有品牌捲入
信產部制定手機輸入法標准
附:剛移植了一個51單片機的拼音輸入法,主要就是一個索引表。還得做一些聯想等功能。源碼我共享在郡裡面了。