Ⅰ 51單片機連接1602液晶顯示屏是不是一定要有電位器啊電位器的作用是什麼
一定要有電位器
電位器在電路中的主要作用如下:
1、用作分壓器
電位計是一個連續可調電阻器,調節電位器手柄或滑動手柄時,動觸頭在電阻體上移動,此時,在電位器的輸出端可以得到與電位器的外電壓和活動臂的角度或行程有一定關系的電位器的輸出電壓。
2、用作變阻器
當電位器用作變阻器時,應將其連接到兩端的裝置上,以在花電位器的行程范圍內獲得平滑、連續的電阻值。
3、用作電流控制器
當電位計用作電流控制器時,所選電流輸出之一必須是滑動接觸導線。
(1)51單片機手柄擴展閱讀:
對於接觸式電位器的電阻體,動觸頭接觸並在其上滑動,使電阻體的表面電阻率較低,使動觸頭的接觸電阻較小,同時表面電阻率應均勻分布,使接觸電阻和軌道電阻在有效行程中保持較小的變化,從而獲得理想的電阻規律特性。
電阻體表面應具有適當的光潔度、硬度和一定的耐磨性,以保證其機械耐久性,線繞電位器是將電阻絲繞在框架上形成環形或螺旋形電阻體。
對於薄膜或厚膜電位器,電阻膜是在普通基板上形成的,大部分是馬蹄形、弧形或帶狀,對於復合固體電位器,馬蹄形或帶狀電阻軌壓在底座上。
Ⅱ 求大神幫個忙,請教單片機的問題
1.什麼是單片機?
簡單地說,單片機就是一個小計算機系統。為了說明清楚這個問題,得要從計算機說起。提到計算機,大家可能馬上會想到「顯示器、滑鼠、鍵盤」,不過,這不是一個計算機的核心和關鍵,計算機的核心部分在一邊的機箱里呢。打開機箱,可以看到,機箱里有主板、硬碟、光碟機等。仔細觀察主板,這上面有CPU、內存條、BIOS晶元,通常還有25針的列印機介面等,這些部件都是通過主板上的連線相互連接。
不論計算機復雜程度如何,它總是由運算器,控制器,存儲器,輸入/輸出介面,匯流排這五個部分組成。通常運算器和控制器被做成一塊晶元,也就是CPU(中央處理器)。在計算機主板上,內存條和BIOS晶元就是存儲器,25針列印機介面就是輸出/輸出設備,而匯流排則被設計在主板上,即各部件相互連接的線路。
圖1
在一些應用場合,人們不需要計算機完成十分復雜的運算,但卻希望計算機小巧,可靠,價格低。於是人們就把組成計算機的這5個部分全部集成到一塊晶元上,也說是一塊晶元就能構成一個獨立的計算機,在當時的技術條件下,這是一件了不起的事情,於是人們就用這個特徵來為之命名,稱為「單片機」。
將構成一個計算機所需要的5個部分全部都集成到一塊晶元中,這塊晶元是否要很大、價格是否很高呢?並非如此。如果要把圖1所示主板上的所有元件都集成到一塊晶元中,那當然非常昂貴,可能技術上也無法實現,但很多單片機中所需要用到的功能完全沒必要那麼強大,因此很多單片機體積很小,價格也很低。如市場上常見的單片機有8,14,16,18,20,28,40,84等引腳,有些甚至只有6個引腳,如圖2所示是微芯公司(Microchip)發布的一款6引腳單片機。而價格從幾元到幾十、上百元的都有,有些品種在大批量定購時甚至可以低至1元以下。
圖2
剛接觸到單片機的人往往會有個疑惑:既然人們已經有能力製造功能強大的計算機,為何還要生產些功能不強的計算機?其實,功能強弱並不是決定是否生產的決定因素,市場需要才是關鍵。比如,用來控制一台電箱的計算機顯然沒必要使用「奔騰」晶元的強大運算能力,只要進行非常簡單的計算,作個比較,看一看溫度是否在所控制區間之內,然後再做出相應的控制就行了。
單片機在人們的生活中、工農業生產設備中處處有應用,例如各定時裝置、自動控制裝置等。愛好者學習單片機應該注意觀察事物,找到自己周圍能夠使用單片機的場合,從而將學到的知識應用到實際中去。例如,使用單片機技術改造傳統的機電設備、在特定的場合使用單片機替代PLC等就有著廣闊的應用前景;又如,使用單片機控制電扇、抽油煙機、空調等,從而製作出具有更強功能、能夠通用的控制器,也是可以嘗試的。
2.單片機是如何工作的?
單片機的工作過程就是一個不斷「取指令-分析指令-執行指令」的過程。單片機的程序以一條一條指令的形式存放在程序存儲器中,單片機開始工作後,就從程序存儲器的特定位置開始取指令,然後由單片機內部的控制器對指令進行分析,根據指令要求,進行「取數、送數、算術運算、邏輯運算、跳轉」等基本操作中的一種或幾種,這些操作都在一個規定的周期中完成,執行完了以後,到下一個存儲器單元中取指令,重復剛才的操作(當然,這些要執行的操作具體內容可能跟上一次不一樣了),如此不斷重復,直到斷電為止。這里所說的「存儲器特定位置」、「規定的周期」等與單片機的型號有關,下面以51系列單片機為例來說明。
在51系列單片機中有一個名為PC的寄存器(就是用來存數的一個容器),在單片機復位後,這個寄存器中的內容被置為0000H,單片機內部的控制器總是根據PC寄存器中的值去相應的程序存儲器單元取指令,因此,開機後,將從0000H單元取第一條指令,分析執行,同時,PC值將作相應的調整,指向將要執行的下一條指令的位置,下一條指令的位置在哪裡呢?對於51單片機來說,一條指令可能佔用一個位元組、二個位元組或三個位元組,如果第一條指令是單位元組指令,取完第一條指令以後,PC的值就會變為0001H,因此,第一條指令執行完畢以後,將從0001H單元中取出第二條指令來執行,以此類推。如果程序是順序執行的,PC的值將始終不斷增加,如果程序中有跳轉指令,該指令將影響PC中的值,使PC中的值指向將要執行的下一條指令所在地址單元。這種跳轉既可能是正向的,例如由0000H跳轉到0030H,也可能是反向的,即往回跳轉,如由200H跳轉到100H。正是由於指令可以影響到PC中的值,才使得程序可以實現「分支」、「循環」等各種功能。那麼,執行一條指令的時間又是多少呢?對於51單片機來說,指令執行時間有三種可能,單周期、雙周期和四周期,不管一條指令需要做多少工作,都必然在規定的時間內完成。
3.單片機程序的作用是什麼?如何編寫?如何寫入單片機?
單片機程序的用途是讓單片機「聽話」,按人們所預定的設計完成一系列動作,最終實現一個特定的功能。
例如使用單片機控制流水燈,接通電源後,第一次燈亮,然後延時一段時間,第二次燈亮,然後延時一段時間,第三次燈亮……,延時一段時間後又回到第一次燈亮,如此循環不已。這里就有這樣的一些問題:第一次亮幾盞燈、延時多少時間、一個循環中設置多少次不同的燈亮的情況……,這些決定了流水燈的花樣,流動的速度,而這些,單片機顯然沒有自我判斷能力,必須依靠人們給它「布置」任務,而它則是按人們的設計依次執行。
要讓單片機「聽話」,就要用單片機能夠聽懂的語言發布命令,單片機能夠聽懂的語言稱之為「指令」。任何一種型號單片機能夠接受的指令都是有限的,51單片機的指令條數為111條,而PIC單片機的指令僅有35條。每一條指令完成一個最基本的動作,人們為了要完成一個特定的功能,就要將這些指令排列組合,成為一個指令序列,這就是程序。
指令的表示形式有兩種:機器語言和匯編語言。以51為例,如果要讓P1.0引腳變為低電平,用機器語言來表示就是 C2H 90H,將這兩個數放進單片機的程序存儲器中,單片機執行後,就可以讓P1.0引腳變為低電平了;而要讓P1.0引腳變為高電平,用機器語言來表示就是D2H,90H。至於為什麼是這兩個數字,大家沒必要追究,這是設計這塊晶元的設計工程師規定的,我們不能更改,只能學習。
C2H,90H就是一條指令,顯然這樣的指令形式是很難記憶的,編程也非常困難,於是人們使用了「助記符」來代替這些數字。例如C2H,90H的助記符是CLR P1.0,而D2H,90H的助記符是SETB P1.0,由於助記符採用了英語字母的縮寫,有一定含義,因此比數字形式的指令易記、易用。使用助記符形式的指令來編寫程序就稱之為「匯編語言源程序」。但是匯編語言源程序是沒有辦法直接送到單片機內部去的,使用助記符形式的指令編寫的程序最終還是要變成為諸如:C2H,90H,D2H,90H,這種形式的指令才能被送入單片機的程序存儲器。將助記符形式的指令變為數字形式的指令的過程稱之「匯編」。匯編有兩種方法,一種是「手工匯編」,即人們通過查表的形式找到所寫匯編指令的數字形式然後寫下來;另一種是「機器匯編」,即編寫好匯編語言源程序以後,使用一個計算機軟體對這些源程序進行處理,從而得到數字形式的指令序列,這個指令序列通常被稱為「機器碼」,即可以直接被機器所執行的代碼。
機器匯編後得到的數字形式的指令序列以一個文件的形式保存在磁碟上,這個文件的擴展名一般是HEX,即人們常說的HEX文件。得到了HEX文件後,就可以將其寫入程序存儲器中了。要將程序寫入晶元,通常需要一個稱之為「編程器」的專用設備,在計算機上運行與之配套的編程軟體,然後在這個軟體中打開HEX文件,即可將其寫入晶元中。隨著技術的發展,編程方式越來越多,但總的概念是這樣的,具體的細節,將在另一個問題「單片機編程器是什麼」中回答。
4. 8位、16位、32位單片機中的「XX位」指什麼?
8位、16位、32位是指單片機的「字長」,也就是一次運算中參與運算的數據長度,這個位是指二進制位。以8位為例,8位二進制的表達范圍是0000,0000~1111,1111即十進制的0~255,即每次參與運算的數據最大不能超過255。而16位機的字長是16位,其數據表達范圍是0~65535,即每次參與運算的數據最大不能超過65535;32位單片機的字長是32位,其數據表達范圍是0~4294967295,即每次參與運算的數據最大不能超過4294967295。
8位、16位、32位與單片機的性能密切相關,通常32位機的性能要高於16位機,而16位機的性能又要高於8位機。為什麼會這樣呢?這要從2個方面來分析。第一,位數不同,運算效率不同。對於8位機而言,由於在一次運算中的每一個數都不能超過8位,因此即便如100+200=300這樣的運算,它也不能一次完成,因為300已超過了8位所能表達的最大范圍(255),因此,要對這樣的一個式子進行運算,就要編寫一段程序,將運算分步完成,最後合成起來得到一個正確的結果。而如果採用16位單片機來運算的話,那麼一次運算就夠了,顯然分步完成所需要的時間要遠遠大於單步完成所需要的時間。同樣道理,當某個運算的結果或者中間值大於65535時,16位機也不能一次運算,要分步實現它,而32位機則可以一次運算完成。第二,商業因素。通常運算能力越高,表示這個單片機性能越強,當然,價格高一些人們也可以接受,有了價格空間,生產商通常都會在這些晶元中提供更多的其他的功能,使得晶元的整體性能得到更大的提升。
典型的單片機中,80C51系列,PIC系列,AVR系列都是8位單片機;80C196、MSP430系列是16位機;而目前非常熱門的ARM系列則是32位機。
5. 單片機編程器、模擬器、燒寫器、下載線各是什麼?有什麼用處?
單片機編程器是用來將程序代碼寫入存儲器晶元或者單片機內部的工具,如圖5-1所示是一個典型的編程的外形。圖中黑色的集成電路插座,通過拔動手柄可以將置於其中的集成電路晶元鎖緊或松開。編程時鎖緊以保證接觸良好,編程完畢松開,可以更換下一片晶元。
圖5-1編程器
當晶元是雙列直插形式時,直接插在座子上就可以燒寫了,但如果遇到如圖5-2所示的各種封裝形式的晶元,又如何寫燒寫呢?一種方法是使用適配器,如圖5-3所示是各種封裝晶元所使用的適配器。
圖5-2 各種封裝形式的集成電路
QFN32 適配器 SOP28適配器
圖5-3 各種封裝的編程適配器
另一種方法是使用下載線。隨著技術的進步,越來越多的單片機晶元開始支持「ISP」功能,即In System Programmer,在線可編程技術。利用這種技術,將空白的(尚未編程的)晶元直接焊在印刷線路板上,利用預先留下的幾個引腳即可對晶元進行編程,不必將晶元拆下來放到編程器上,因此,這給小批量製作帶來了極大的方便,也省去了購買價格昂貴的適配器。如圖5-4所示是使用下載線對晶元進行在線編程的示意圖。
圖5-4下載線對晶元進行在線編程示意圖
6.自學單片機必備的硬體設備有哪些?
學習單片機,除了需要電腦以外,還需要以下的一些器材。
1.實驗板
如果你對單片機還一無所知,那麼自製或者購買一塊實驗板是比較好的選擇。通常在實驗板上會設計一些開關、LED指示燈、數碼管、各種介面晶元等常用器件,通過對這些器件的編程練習,逐步掌握單片機的編程技術。
2.模擬機
模擬機的用途是替代電路板上的單片機晶元,模擬機通過串列口、USB介面等方式與與PC機聯機通信,接收PC端控制軟體發出的指令,以單步、過程單步、全速運行等各種方式來執行程序,以單步或過程單步方式執行程時,每次執行完程序後可以將執行的結果反饋到PC端的控制軟體中顯示出來。由於單片機編程時必須要明確每一條指令執行完畢後會有什麼樣的結果,弄清實際運行後的結果是否與設想的結果相符,因此,模擬功能對於單片機的學習和開發可以起到很重要的幫助作用。
3.編程器或者下載線
其用途是將代碼寫入單片機晶元內部。對於學習者來說,有了模擬機也可暫時不配編程器或下載線,因為有了實驗板、模擬機就可以做實驗了。但是建議配置一台,這樣可以對單片機開發的各個環節都有所了解。
4.萬用表、電烙鐵等電子製作工具
單片機開發,不是簡單的編程,到目前為止,還少有純粹的「單片機程序員」,通常要求開發者軟、硬體方面都要熟悉,因此,這些電子製作工作還是要配備的。
需要說明的是,這里所說的模擬機、實驗板、下載線或編程器等都是就一般概念而言的,並不涉及到具體的產品,市場上也有一些產品在設計時將實驗板、模擬功能、下載或編程功能等中的一部分或者全部都集成到一塊板上,構成一整套的實驗系統。
上面介紹的這些設備,都需要有一定的投入,愛好者未必一定能夠購買,其實,只要有一定動手能力,也可以自製一些簡易的實驗設備,同樣可以開始學習。這里推薦採用STC單片機進行學習的方案,STC系列單片機的特點是可以直接通過串口下載程序,從而將開發工具的成本降到最低。如圖6-1所示是一個完整的電路,器件成本僅20多元,但可以實現諸如單燈閃爍、流水燈、鍵控燈、PC控制燈等一些常用功能,從而學習基本指令、定時器、計數器、串口通信等單片機知識。
圖6-1 簡單的單片機實驗電路板
圖中R1~R9為1K電阻,D1~D8是發光二極體,E1用10u電解,Y1用11.0592M晶振,C1和C2用27P小磁片,C3~C7用104磁片,U1使用STC89C52晶元,U2用MAX232。再自製或購買一條串口電纜,用於和電腦的通信,製作線時使J1與電腦的串口端2,3,5分別相連即可。
製作好這個電路板以後,使用Keil軟體(在http://www.keil.com/demo/default.asp?bhcp=1可以下載DEMO版)編譯、鏈接程序,得到Hex文件,使用STC_ISP軟體(在http://www.mcu-memory.com下載)將Hex文件寫入晶元中,從而觀察程序運行的效果。
7.目前國內常用的單片機有哪些?
1.80C51及其兼容系列
(1)80C51系列,這是最基本的系列。包括80C31,80C51,87C51,80C32,80C52,87C52等晶元,雖然這些晶元已基本不再使用,但它們是後續發展的晶元的基礎。其中80C31單片機片內沒有ROM,80C51內部是一次性可寫4K的PROM,87C51內部是4K的EEPROM,這幾種晶元內部RAM均為128位元組。而後三種晶元其內部RAM均為8K,後兩種晶元的片內ROM為8K位元組。
(2)80C51兼容系列
這些晶元通常都與51系列單片機在指令一級兼容,但都擴充了諸多的新功能。常見的主要有以下一些。
STC89系列單片機,其主要特點有:直接通過串口對單片機編程;可編程為倍速運行;超低功耗;內置看門狗;內部FLASH ROM可作為EEPROM作斷電保存數據之用。
STC12系列單片機,其主要特點有:單時鍾周期,工作頻率0~35M,相當於普通80C510~420M;寬電壓范圍;低功耗;晶元內置E2PROM功能;內置硬體看門狗;通用I/O口可以設置為四種工作模式,在強上拉模式時可以「吐出」電流。
菲利普的LPC系列,其主要特點有:內置RC置振盪器,選擇RC振盪器時不需外接振盪器件;所有口線均有20mA的LED驅動能力;有較寬的工作電壓范圍。
C8051F系列,其主要特點有:一個機器周期僅為一個時鍾周期;增加了中斷源;有內部獨立的時鍾源或接外部時鍾,並能在程序運行時實現內、外部時鍾的切換。每個I/O口引腳都可以設置為推挽或漏極開路輸出,C8051F系列單片機I/O口最為獨特的是增加了數字交叉開關,利用數字交叉開關可將內部數字系統資源定向到P0、P1和P2埠I/O引腳。這個系列很多型號的晶元具有ADC、DAC、PCA等功能。
2.PIC系列
PIC單片機的發展思路與51單片機不同,它不搞單純的功能堆積,而是從實際出發,重視產品的性能與價格比,依靠發展多種型號來滿足不同層次的應用要求;精簡指令使其執行效率大為提高。目前有PIC10、PIC12、PIC16、PIC18系列數百個品種。以PIC16F676晶元為例,該晶元內置1K字FLASH ROM,128位元組EEPROM,64位元組RAM,8路10位AD轉換器,內置精度高達±1%的振盪器,極低功耗,寬工作電壓范圍,這樣一款高性能的14腳晶元,價格不到¥7,性價比相當高。
3.AVR系列
AVR系列單片機是增強型RISC結構的單片機,其主要特點是:速度快,一個機器周期僅為一個時鍾周期;品種豐富,與PIC系列類似,依靠發展多種型號來滿足不同層次的應用要求;支持ISP、IAP功能,可在線編程,方便遠程維護;工作范圍寬、抗干擾能力強。以ATMEGA8晶元為例,該晶元內置8K Flash ROM,512位元組EEPROM,1K位元組的RAM,8路10位AD,內置RC振盪器。這樣一款高性能28引腳的晶元,價格僅在¥7左右,性價比也相當高。
4.其他
其他常用的單片機包括:ST、EMC、摩托羅拉、三星等等。這些單片機有些市場用量很大,但我們並沒有重點介紹,因為我們介紹的內容主要針對業余愛好者,有些晶元雖然功能強大、性價比也很高,但其並不針對業余愛好者,小批量的晶元很難買到,模擬機、C編譯器等開發工具價格極其昂貴,所以這里不作介紹,有興趣可以在網路上搜索有關資料。
8.常用單片機的大致價位是多少?
單片機的價格相差很大,從小於1元到幾十元,上百元不等。下面就大致介紹一下常用單片機的價格。
單片機的價格與其出貨量、性能等有很大的關系。以80C51系列單片機為例,這是一個龐大的系列,這個系列中的單片機性能有很大差別。如內部ROM不同,從1K~64K不等;引腳數不同,從14腳到84腳不等;內部RAM不同,從128位元組到2K不等;內部模塊不等,如有一些單片機內部配置了8位模數轉換器,有一些配置了10位模數轉換器,有一些內部帶有CCP模塊等等。不同配置的單片機價格不同,一般愛好者常用的89S52單片機晶元價格約為6元左右。這款晶元片內ROM為8K,片內RAM為128位元組,內部有看門狗電路。一種常用的PIC單片機PIC16F676,14引腳,帶有10位的AD轉換器,價格僅7元左右。通常功能越強,價格也越高,但這並不絕對,尤其是不同廠商的同內類產品,往往沒法直接加以比較,因此,讀者如希望了解各種晶元的價格,還是要針對具體的型號進行查找,有一些網站有相關報價,可以供參考。
Ⅲ 樹莓派和51單片機哪個簡單
這個首先要明確一下這里指的學哪個「好」指的是什麼?第一,如果是要快速實現產出,比如說要參加電子設計大賽之類的比賽,這種情況下,還是用樹莓派比較好,因為現在不說51單片機,就算用stm32,只要是用mcu的作品,在評委的眼裡都是跟低檔的作品,一般直接就給斃掉了。當然這里排除一些超級有創唯談野意有特點有實用性的玩意,但現在電子、計算機等專業的學生這么多,專業的、業余的參賽者自從電賽開賽以來得數以千萬計了吧,你能想到的、能做到的都有人嘗試過了。不是打擊初學者和參賽選手,90%以上的情況下,你的作品不會是這種能引起評委注意的好玩意。想要拿點上檔次的獎項,你用的控制器也得上檔次一點,這也是當前電賽的「潛規則」。就算用51同樣能實現的項目,評委們還是喜歡用這種開源硬體的板子做出來的產品,好歹裡面也是跑linux的,說出來多麼高大上對不對!這就是現在的浮躁、虛榮的技術圈。第二,如果題主是想要問從那種器件入門電子世界,那我推薦一定要從51開始,一年之內千萬離樹莓派、BBB之類的開源硬體遠一點。首先,不學51這種「低級」(或許這里應該用適合入門)的mcu,就好比你練功不學扎馬步,技術的底子不扎實,以後干什麼項目也都不會踏實(如果你是一個負責任的人的話)。其次,樹莓派這種開源硬體,資料多,國外開源的代碼、項目多這都是事實,但是,這里題主指的一定不是純應用開發,而是驅動級開發吧,基於這個前提,首先需要考慮下要玩的動樹莓派,需要掌握什麼?Linux操作、C高級、arm匯編等,單純就這三樣來講,如果是學生學習時間比較充裕的話,沒有個一年,能真真正正拿的下來?所以,如果是要選擇一種入門電子的器件,一定要打好基礎。現在技術圈很浮躁,大家都向快錢看,很少有人能夠靜下心來踏踏實實的把技術細節搞透徹,非常希望大家能系統、細致的學習基礎課程,過程可能枯燥,但這個階段學好了,內功深厚,以後搞起來也會順風順水,不至於遇到點問題就不知如何解決。我是嵌入式精英訓練營,帶你走進嵌入式開發的精彩世界~
很久沒有焊接硬體了,其實也沒多久也就離開實驗室一個來月。哈哈,這樣一說大家可能也猜到了,我就是一 悲催指喊的硬體狗。
1
「樹莓派們」的興起,確實是一個好事情,很大的擴展了很多創客的實踐方式。實際上樹莓派的本質也是一款微處理器,然後帶上了Linux操作系統,只是這是已經定製後的操作系統。
實際上,單片機裡面的大佬STM32的新的型號,也已經支持虛擬內存的使用,可以正兒八經的跑Linux的操作系統,如STM32MP1。
但是,他們實際上是不一樣的,區別就在應用上。單片機的作用更加接近物理量的處理和應用,舉個簡單的例子:我想自己做一款智能遙控器或者說一個無線游戲手柄,那我肯定就用一個STM32的單片機去做了。
如果說,你要用樹莓派去做一樣也是可以實現的,但是就電池上的功耗來說,一節鋰電池樹莓派怕是喂不飽 。
當然,這里只講了功耗一個方面,只當是拋磚引玉。
2
在程序的更新上,一般的單片機會使用CH340和單片機本身的一個bootloader來升級程序,如果想要使用MDK軟體一鍵升級,在配一個JTAG就行。當然,JTAG-OB也是一個選擇(經濟實惠)。
因為樹莓派作為一個卡片電腦的性質,就不再討論它的主控IC是誰。畢竟不同的版本,IC不同,而且我們也很少去焊接、更換它的IC。
這一類的IC組成的樹莓派,更新程序的方式就比較多了,使用U盤拷貝,使用串口傳送、使用網路伺服器的方式。在這里在剛入門的時候,可能一個更新程序的方式就能寫一個章節。
綜合來說,單片機畢竟比較簡單。有個時候,簡單也是一門藝術,選擇的藝術。
3
學習的資料上兩者有一定的差異,單片機一般會有一定的資料直接講解這個ADC、DAC、GPIO、TIME啥的。而且是分開了敲碎了的講解,直接是一個外設一個程序。
而樹莓派這是開源硬體,主要給大夥實現各種改變世界、改變生活的想法的。所以,一上來直接給一個操作系統,然後有興趣、有能力的同學去論壇侍孝學習大神吧。
是的呀,我這硬體的原理圖有的,軟體的源碼有的,大家都能萬開源硬體了,一定是肯學習的人,那就去吧。祝你好運!
實際上,很多人都成了開源硬體的投資人,不是,應該是韭菜。畢竟,好的想法能不能有是一回事,即便有了想法,發現這做出來的東西也僅僅是個學習的價值,實用,可能還得等等。至於量產,似乎只能是個願望。
還是那句話,單片機簡單,而且資料定位也是給新手的,咱們服個軟,不是認輸。
我給出這樣的一個建議不是胡說的,單純從價格上來說,兩者其實差不多。300-500買個樹莓派或者STM32F1的開發板都可以了。
一般而言,在項目的開發上,會指明要求會STM32的公司不自在少數。樹莓派可能少一些,原因待討論。
樹莓派的系統一般直接按照教程往裡面燒錄就OK了,也不會有多大的問題,因為哪些所謂的驅動、uboot之類的東西都略過了。
不過簡單並不代表簡陋。畢竟樹莓派被成為卡片電腦,在多媒體等方面的處理能力和普通的單片機不在檔次的,可玩性強。比如什麼人臉識別、搭建伺服器等等都很容易找到教程。
結論:
單片機畢竟沒有樹莓派復雜,容易上手。咱就先難後易,乘風破浪指日可待。
個人建議是,考慮專業,未來要從事的工作方面,選擇單片機, 如果你只是單純的想diy,可能樹莓派更容易入手,因為你不需要熟悉寄存器之類的底層
如果是興趣愛好學樹莓派就可以,沒事玩一玩,如果是為了工作,那還是要從單片機開始學,因為單片機可以做各種項目,小項目,大項目,簡單的,復雜的,單片機的種類繁多,可以勝任大多數項目。學習單片機也不是學習一種,而是學會一種,在學習其它的,沒種單片機的性能是不一樣的。
根據我的經驗還是先學習單片機,51單片機資料多,上手容易,還可以學習硬體電路,通過寫程序控制硬體,更加直觀看到現象,只要學會51單片機,在學其他的單片機就非常容易了。
樹莓派是要跑系統,不接觸底層,不需要懂硬體,就可以編寫程序,但是大多數項目不適合,而且成本高,也不能做低功耗的產品,一開始就接觸復雜的東西不好接受,等學會單片機之後,在學習嵌入式,樹莓派等就容易多了。
如果想系統學習嵌入式系統開發那麼從學單片機開始,如果你是DIY,那就樹莓派吧。單片機可以讓你比較系統掌握軟體和硬體的關系,對其有深入認識。單片機熟悉後,後續arm,dsp等會得心應手。
學單片機浪費時間。了解51以後直接去學linux和arm,網路那些。當然作為學生基礎學科還是要學好,高數、模數電、c語言等。
如果要從事嵌入式開發,建議從單片機開始,單片機是C語言最好的入門途徑。樹莓派是個玩具,用python方便些。
從Arino開始吧,軟硬體都得學,門檻低,其實學的東西更基礎。。。。樹莓派玩到最後還是Linux編程,對硬體沒學太多。。。
學樹莓派,然後重軟體開發,通過標准數據介面,集成各種設備,再然後可以玩玩軟體架構,大數據,人工智慧。
Ⅳ 關於ps無線手柄接51單片機
void get_key()
{
uchar i,ref;
ATT=0;
delay12us(4);
for(i=0;i<9;i++)
{
for(ref=0x01;ref>0x00;ref<<=1)
{
if(ref&data_out[i])
COM_O=1;
else
COM_O=0;
CLK=1;
delay8us();
CLK=0;
delay8us();
CLK=1;
if(DATA_I)
data_in[i]=ref|data_in[i];
}
COM_O=1;
delay12us(2);
}
ATT=1;
key_num[0]=data_in[4];
key_num[0]<<=8;
key_num[0]+=data_in[3];
for(i=0;i<9;i++)
data_in[i]=0x00;
}
這是主要的過程,望採納。
Ⅳ stc-isp燒入hex文件到單片機時出現下面的提示,請解決方法!!
首先看你所用的串口是否有問題,可用串口調試助手檢驗,
單片機晶元的電源電壓是否有5V左右
你的晶元是否有問題
晶振是否啟振
232晶元是否好用的
一般就這種原因。
Ⅵ 如何用51單片機實現USB底層通信
用 51,這就太麻煩了。
也可以說,肢宴是辦不到的。
51 單片機的歷飢銀存儲器,一般,是不夠用的。
-----------
用轉換器,把 PC 的 USB 模擬成串口。
51 用串口通信,可以實現與 PC 的聯系。
在 PC 端,只知道有個新的串口而已。
PC 不肢差可能識別出「U盤、鍵盤滑鼠、攝像頭、光碟機、游戲手柄、網卡、列印機等。」
Ⅶ 為什麼ps2手柄遙控51單片機的小車,按鍵松開後電機還會持續驅動一段時間
單片機在使用電機的應用中,普通電機在運轉時如果仃止(斷電)會有一個慣性過程(所以會繼續轉一小段時間),使用步進電機就不會有這種現象(不過驅動程序需要有步進編碼控制),普通電機要去除這個慣性過程可以在仃止(斷電)時加一個短暫的反響驅動就可以(不過硬體電路需要有正反向驅動)。