1. 單片機里的與門,或門,非門怎麼做
單片機內部的硬體是固定的,所以,在硬體層面上任何的電路都不有能自己做的,只能在外部自己做了,要在外部也沒有必要自己做了,都有現在的TTL數據電路,要什麼有什麼,何必自己做呢。要在硬體層面上還要在內部自己做門電路,那要用可編程晶元了,如FPGA,或CPLD,而且還可以自己設計一個單片機呢。
2. 單片機請問與門在電路怎麼接。
1 門電路掘侍晶元一般只作為邏輯運算,最好不要拿來當成驅動,你的2腳可以接單片機的IO口,讓後輸出端其實不用接電阻的,因為輸出電流本身就很小,你看看晶元手冊吧
2 7腳和14腳不是電源引腳世散豎嗎?
3 當然可以接5v,這是最常見的電壓值哦,搜大隻是該晶元電源有個范圍,最大不能超過7V
3. 51單片機常識
1.學習單片機要有哪些基礎知識
單片機基礎知識 飛翔電子技術 2003-11-04 單片機的組成 單片機要自動完成計算,它應該具有哪些最重要的部分呢? 我們以打算盤為例計算一道算術題。
例:36+163*156-166÷34。現在要進行運算,首先需要一把算盤,其次是紙和筆。
我們把要計算的問題記錄下來,然後第一步先算163*156,把它與36相加的結果記在紙上,然後計算166÷34,再把它從上一次結果中減去,就得到最後的結果。 現在,我們用單片機來完成上述過程,顯然,它首先要有代替算盤進行運算的部件,這就是「運算器」;其次,要有能起到紙和筆作用的器件,即能記憶原始題目、原始數據和中間結果,還要記住使單片機能自動進行運算而編制的各種命令。
這類器件就稱為「存貯器」。此外,還需要有能代替人作用的控制器,它能根據事先給定的命令發出各種控制信號,使整個計算過程能一步步地進行。
但是光有這三部分還不夠,原始的數據與命令要輸入,計算的結果要輸出,都需要按先後順序進行,有時還需等待。 如上例中,當在計算163*156時,數字36就不能同時進入運算器。
因此就需要在單片機上設置按控制器的命令進行動作的「門」,當運算器需要時,就讓新數據進入。或者,當運算器得到最後結果時,再將此結沒沒果輸出,而中間結果不能隨便「溜出」單片機。
這種對輸入、輸出數據進行一定管理的「門」電路在單片機中稱為「口」(Port)。在單片機中,基本上有三類信息在流動,一類是數據,即各種原始數據(如上例中的36、163等)、中間結果(如166÷34所得的商4、余數30等)、程序(命令的 *** )等。
這樣要由外部設備通過「口」進入單片機,再存放在存貯器中,在運算處理過程中,數據從存貯器讀入運算器仔察慎進行運算,運算的中間結果要存入存貯器中,或最後由運算器經「出入口」輸出。 用戶要單片機執行的各種命令(程序)也以數據的形式由存貯器送入控制器,由控制器解讀(解碼)後變為各種控制信號,以便執行如加、減、乘、除等功能的各種命令。
所以,這一類信息就稱為控制命令,即由控制器去控制運算器一步步地進行運算和處理,又控制存貯器的讀(取出數據)和寫(存入數據)等。第三類信息是地址信息,其作用是告訴運算器和控制器在何處去取命令取數據,將結果存放到什麼地方,通過哪個口輸入和輸出信息等。
存貯器又分為只讀存貯器和讀寫存貯器兩種,前者存放調試好的固定程序和常數,後者存放一些隨時有可能變動的數據。顧名思義,只讀存貯器一旦將數據存入,就只能讀出,不能更改(EPROM、E2PROM等類型的ROM可通過一定的方法來更改、寫入數據——編者注)。
而讀寫存貯器可隨時存入或讀出數據。 實際上,人們往往把運算器和控制器合並稱為中央處理單元——CPU。
單片機除了進行運算外,還要完成控制功能。所以離不開計數和定時。
因此,在單片機中就設置有定時器兼計數器,其基本結構與本連載之(二)中的舉例類似。到這里為止,我們已經知道了單片機的基本組成,即單片機是由中央處理器(即CPU中的運算器和控制器)、只讀存貯器(通常表示為ROM)、讀寫存貯器(又稱隨機存貯器通常表示為RAM)、輸入/輸出口(又分為並行口和串列口,表示為I/O口)等等組成。
實際上單片機裡面還有一個時鍾電路,使單片機在進行運算和控制時,都能有節奏地進行。另外,還有所謂的「中斷系統」,這個系統有「傳達室」的作用,當單片機控制對象的參數到達某個需要加以干預的狀態時,就可經此「傳達室」通報給CPU,使念敬CPU根據外部事態的輕重緩急來採取適當的應付措施。
現在,我們已經知道了單片機的組成,餘下的問題是如何將它們的各部分連接成相互關聯的整體呢?實際上,單片機內部有一條將它們連接起來的「紐帶」,即所謂的「內部匯流排」。此匯流排有如大城市的「幹道」,而CPU、ROM、RAM、I/O口、中斷系統等就分布在此「匯流排」的兩旁,並和它連通。
從而,一切指令、數據都可經內部匯流排傳送,有如大城市內各種物品的傳送都經過幹道進行。 單片機指令系統與匯編語言程序 前面已經講述了單片機的幾個主要組成部分,這些部分構成了單片機的硬體。
所謂硬體(Hardware),就是看得到,摸得到的實體。但是,光有這樣的硬體,還只是有了實現計算和控制功能的可能性。
單片機要真正地能進行計算和控制,還必須有軟體(Software)的配合。軟體主要指的是各種程序。
只有將各種正確的程序「灌入」(存入)單片機,它才能有效地工作。單片機所以能自動地進行運算和控制,正是由於人把實現計算和控制的步驟一步步地用命令的形式,即一條條指令(Instruction)預先存入到存貯器中,單片機在CPU的控制下,將指令一條條地取出來,並加以翻譯和執行。
就以兩個數相加這一簡單的運算來說,當需要運算的數已存入存貯器後,還需要進行以下幾步: 第一步:把第一個數從它的存貯單元(Location)中取出來,送至運算器。 第二步:把第二個數從它所在的存貯單元中取出來,送至運算器; 第三步:相加; 第四步:把相加完的結果,送至存貯器中指定的單元。
所有這些取數、送數、相加、存數等等都是一種操。
2.學習單片機需要具備哪些基礎知識
我是大四學生,大三學的單片機,參加了一些大賽,個人認為學單片機首先把單片機課本熟讀兩遍,這可不能拖太長時間,對單片機的內部資源理解。外圍電路能熟練。
模電、數電不好也不要緊,不懂時再回去看看不就好了。
匯編不用學的太好,但起碼你能用匯編把課程設計做完。然後得話就學c吧。
學c不是說拿著c語言書,而是做些小製作之類的。在設計中學。
沒單片機基礎的話,先學c51吧。
不要聽別人說51不行,學51是為了以後學別的更方便,更快。以後可以學arm等更高級的。
3.51單片機應該掌握哪些
上面說的是什麼亂七八糟啊
1.基本要掌握哪些型號的單片機
首先說明一點,現在的像ATMEL,SST,STC,PHILIPS等等大多數單片機都是51內核,所以說你學會一樣就行了,要說具體型號像AT89S52,STC89C51等等都可以,它是的區別只是內部資源不一樣,也就是說功能多少的問題,但指令完全兼容.
2.要會哪些編程語言?
老大,你學哪個系列的單片機,那就會相應的匯編就行了.(51系列的指令兼容)而且應用也很廣泛.
3.還有其他需要注意的東西嗎?謝謝~~
不用謝謝,學會單片機軟體並不難,但模電.數電要是不好也做不了什麼大項目的,所以電子基礎比較重要.
4.有時有匯編做演算法很難,建議你學C語言,很容易學,而且用起來比匯編容易的多,但匯編也得懂(這個很重要).
5.有什麼問題可以發消息給我,我會盡量幫你的.
6.祝你早日成功
4.什麼是單片機
隨著大范疇集成電路的顯現和發展,將計算機的cpu、ram、rom、定時/數器和多種i/o介面集成在一片晶元上,組成晶元級的計較機,因此單片機早期的含義稱為單片微型計較機,直譯為單片機。
單片機是一種集成在電路晶元,是採用超大范疇集成電路技能把具有數據處理本事的中心處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和間斷系統、定時器/計時器等成果(大要還包括表現驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完竣的計算機系統。
5.51單片機初學重點
引腳是肯定要學的 比如51有40個腳 有P0,P1,P2這3個口,另外還有特殊功能引腳還有P0口是作為數據口 也可以作為地址口 存放低8位地址信號那麼P2口也可以作為數據口 同時也可以作為地址口 存放高8位地址信號這樣你要外部訪問16位的地址 那麼就要P0和P2一起用了這只是個例子 這些引腳都要背熟的存儲器結構還好吧 也就編程的時候用到比較多 一般不怎麼用到 只要知道你的晶元RAM,ROM大小就行了 如果你寫的程序太大 超過了 就要用到外部擴展的RAM了關鍵還是多畫一些電路吧 熟悉一些常見的電路的畫法比如連LED顯示啦 鍵盤啦 外部中斷啦 計時器啦還有一些常見的東西 比如動態顯示啦 簡單計算器啦 簡單電子表啦。
4. 單片機的I/O口接「與門」問題
驅動能力不同,單片機埠的驅動能力一般不大,寬棚51的灌電流可以達到20毫安,但拉電流就小得多了所以氏枯一般都要加驅動。如果與門的其它輸入是並聯或者接高電平的話,輸出就直接反映單片機的輸出只是提高驅動能力。如果還有其它連接的話就要看相與的結果了,可以形成條件控制。不過這些通過單片機也可以完成慎核則。
5. 單片機設計中的四輸入與門都有什麼型號的
74LS08、74LS09、州陸74LS11、74LS109都是與門。
74LS08是四2輸冊盯頃入與門
74LS11是三3輸入與門
74LS09和74LS109是四2輸入OC輸出與門
希望能則局對你有些幫助。
6. 單片機內部4個並行I/O口各有什麼異同其作用是什麼
p0是雙向數據口用作數據傳輸和低位地址輸出,P1-P3有內部上接電阻,叫准雙向口,P1無特殊功能,P2可輸出高位地址,P3有特殊功能,如中斷,計數等
7. 單片機畫圖一條線是什麼
是一條外部中斷線或外部事件線的示意圖,圖中信號線上劃有一條斜線,旁邊標志19字樣的注釋,表示這樣的線路共有19套。圖中的藍色虛線箭頭,標出了外部中斷信號的傳輸路徑。
首先外部信號從編號1的晶元管腳進入,經過編號2的邊沿檢測電路,通過編號3的或門進入中斷掛起請求寄存器,最後經過編號4的與門輸出到NVIC中斷檢測電路,這個邊沿檢測電路受上升沿或下降沿選擇寄存器控制,用戶可以使用這兩個寄存器控制需要哪一個邊沿產生中斷,因為選擇上升沿或下降沿是分別受2個平行的寄存器控制,所以用戶可以同時選擇上升沿或下降沿,而如果只有一個寄存器控制,那麼只能選擇一個邊沿了。
單片機
接下來是編號3的或門,這個或門的另一個輸入是軟體中斷/事件寄存器,從這里可以看出,軟體可以優先於外部信號請求一個中斷或事件,即當軟體中斷/事件寄存器的對應位為「1」時,不管外部信號如何,編號3的或門都會輸出有效信號。
一個中斷或事件請求信號經過編號3的或門後,進入掛起請求寄存器,到此之前,中斷和事件的信號傳輸通路都是哪派一致的,也就是說,掛起請求寄存器中記錄了外部信號的電平變化。
外部請求信號最後經過編號4的與門,向NVIC中斷控制器發出一個中斷請求,如果中斷屏蔽寄存器的對應位為「0」,則該請求信號不能傳輸到與門的另一端,實現了中斷的屏蔽單片機執行指令
我們來思考一個問題,當我們在編程器中把一條指令寫進單片機內部,然後取下單片機,單片機就可以執行這條指令。
那麼這條指令一定保存在單片機的某個地方,並且這個地方在單片機掉電後依然可以保持這條指令不會丟失,這是個什麼地方呢?
這個地方就是單片機內部的只讀存儲器即ROM(READ ONLY MEMORY)。
為什麼稱它為只讀存儲器呢?剛才我們不是明明把兩個數字寫進去了嗎?原來在89C51中的ROM是一種電可擦除的ROM,稱為FLASH ROM,剛才我們是用的編程器,在特殊的條件下由外部設備對ROM進行寫的操作,在單片機正常工作條件下,只能從那面讀,不能把數據寫進去,所以我們還是把它稱為ROM。
02
單片機數的本質和物理現象
我們知道,計算機可以進行數學運算,這令我們非常難以理解,它們只是一些電子元器件,怎麼可以進行數學運算呢?
我們人類做數學題如37+45是這樣做的,先在紙上寫37,然後在下面寫45,然後大腦運算最後寫出結果,運算的原材料是37和45,結果是82都是寫在紙上的,計算機中又是放在什麼地方呢?
為了解決這個問題,先讓我們做一個實驗:這里有一盞燈,我們知道燈要麼亮,要麼不亮,就有兩種狀態,我們可以用『0』和『1』來代替這兩種狀態:規定亮為『1』、不亮為『0』。
現在放上三盞燈,一共有幾種狀態呢?我們列表來看一下:000 / 001 / 010 / 011 / 100 / 101 / 110 / 111。我們來看,這個000 / 001 / 101 不就是我們學過的的二進制旦隱數嗎?本來,燈的亮和滅只是一種物理現象,可當我們把它們按一定的順序排好後,燈的亮和滅就代表了數字了。
讓我們再抽象一步,燈為什麼會亮呢?是因為輸出電路輸出高電平,給燈通了電。因此,燈亮和滅就可以用電路的輸出是高電平還是低電平來替代了。這樣,數字就和電平的高、低聯繫上了。
03
單片機數位的含義
通過上面的實驗我們已經知道:一盞燈亮或者說一根線的電平的高低,可以代表兩種狀態:0和1,實際上這就是一個二進制位。
因此我們就把一根線稱之為一「位」,用BIT表示。
04
單片機位元組的含義
一根線可以表示0和1,兩根線可以表達00 / 01 / 10 / 11四種狀態,也就是可以表達0~3,而三根可以表達0~7,計算機中通常用8根線放在一起,同時計數,就可以表示0~255一共256種狀態。
這8根線或者8位就稱之為一個位元組(BYTE)。
05
單片機存儲器的構造
存儲器就是用來存放數據的地方。它是利用電平的高低來存放數據的,也就是說,它存放的實際上是電平的高、低,而不是我們所習慣認為的1234這樣的數字,這李遲賀樣,我們的一個謎團就解開了。
一個存儲器就象一個個的小抽屜,一個小抽屜里有八個小格子,每個小格子就是用來存放「電荷」的,電荷通過與它相連的電線傳進來或釋放掉。至於電荷在小格子里是怎樣存的,就不用我們操心了,你可以把電線想像成水管,小格子里的電荷就象是水,那就好理解了。存儲器中的每個小抽屜就是一個放數據的地方,我們稱之為一個「單元」。
有了這么一個構造,我們就可以開始存放數據了,想要放進一個數據12,也就是00001100,我們只要把第二號和第三號小格子里存滿電荷,而其它小格子里的電荷給放掉就行了。
可是問題出來了,一個存儲器有好多單元,線是並聯的,在放入電荷的時候,會將電荷放入所有的單元中,而釋放電荷的時候,會把每個單元中的電荷都放掉。這樣的話,不管存儲器有多少個單元,都只能放同一個數,這當然不是我們所希望的。因此,要在結構上稍作變化。
需要在每個單元上有個控制線,想要把數據放進哪個單元,就把一個信號給這個單元的控制線,這個控制線就把開關打開,這樣電荷就可以自由流動了。而其它單元控制線上沒有信號,所以開關不打開,不會受到影響。
這樣,只要控制不同單元的控制線,就可以向各單元寫入不同的數據了。同樣,如果要從某個單元中取數據,也只要打開相應的控制開關就行了。
06
單片機存儲器的解碼
那麼,我們怎樣來控制各個單元的控制線呢?這個還不簡單,把每個單元的控制線都引到集成電路的外面不就行了嗎?
事情可沒那麼簡單,一片27512存儲器中有65536個單元,把每根線都引出來,這個集成電路就得有6萬多個腳?不行,怎麼辦?要想法減少線的數量。
有一種方法稱這為解碼,簡單介紹一下:一根線可以代表2種狀態,2根線可以代表4種狀態,3根線可以代表8種,256種狀態又需要幾根線代表?8根線,所以65536種狀態我們只需要16根線就可以代表了。
明白了外部中斷的請求機制,就很容易理解事件的請求機制了。圖中紅色虛線箭頭,標出了外部事件信號的傳輸路徑,外部請求信號經過編號3的或門後,進入編號5的與門,這個與門的作用與編號4的與門類似,用於引入事件屏蔽寄存器的控制;最後脈沖發生器的一個跳變的信號轉變為一個單脈沖,輸出到晶元中的其它功能模塊。從這張圖上我們也可以知道,從外部激勵信號來看,中斷和事件的產生源都可以是一樣的。之所以分成2個部分,由於中斷是需要CPU參與的,需要軟體的中斷服務函數才能完成中斷後產生的結果;但是事件,是靠脈沖發生器產生一個脈沖,進而由硬體自動完成這個事件產生的結果,當然相應的聯動部件需要先設置好,比如引起DMA操作,AD轉換等;
簡單舉例:外部I/O觸發AD轉換,來測量外部物品的重量;如果使用傳統的中斷通道,需要I/O觸發產生外部中斷,外部中斷服務程序啟動AD轉換,AD轉換完成中斷服務程序提交最後結果;要是使用事件通道,I/O觸發產生事件,然後聯動觸發AD轉換,AD轉換完成中斷服務程序提交最後結果;相比之下,後者不要軟體參與AD觸發,並且響應速度也更塊;要是使用事件觸發DMA操作,就完全不用軟體參與就可以完成某些聯動任務了。
總結:可以這樣簡單的認為,事件機制提供了一個完全有硬體自動完成的觸發到產生結果的通道,不要軟體的參與,降低了CPU的負荷,節省了中斷資源,提高了響應速度(硬體總快於軟體),是利用硬體來提升CPU晶元處理事件能力的一個有效方法。
8. 51單片機系列:單片機最小系統
單片機是一種集成電路晶元。在單片機程序的控制下能准確、迅速、高效地完成程序設計者事先規定的任務。單片機最小系統,或者稱為最小應用系統,是指用最少的元件組成的單片機可以工作的系統。下面給大家介紹51單片機最小系統,一起學習。
單片機
第三部分復位組,單片機自動復位,從零開始執行程序,這個就是復位的概念。第四部分其它功能組,使用單片機的內部存儲器,如果內部存儲器不夠容量,最多選擇更高級容量的單片機型號,就可以解決問題。
51單片機最小系統晶振的振盪頻率直接影響單片機的處理速度,頻率越大處理速度越快。
對於一個完整的電子設計來講,首要問題就是為整個系統提供電源供電模塊,電源模塊的穩定可靠是系統平穩運行的前提和基礎。51單片機雖然使用時間最早、應用范圍最廣,但是在實際使用過程中,一個和典型的問題就是相比其他系列的單片機,51單片機更容易受到干擾而出現程序跑飛的現象,克服這種現象出現的一個重要手段就是為單片機系統配置一個穩定可靠的電源供電模塊。
此最小系統中的電源供電模塊的電源可以通過計算機的USB口供給,也可使用外部穩定的5V電源供電模塊供給。電源電路中接入了電源指示LED,圖中R11為LED的限流電阻,S1 為電源開關。
上電復位:STC89系列單片及為高電平復位,通常在復位引腳RST上連接一個電容到VCC,再連接一個電阻到GND,由此形成一個RC充放電迴路保證單片機在上電時RST腳上有足夠時間的高電平進行復位,隨後回歸到低電平進入正常工作狀態,這個電阻和電容的典型值為10K和10uF。
按鍵復位:按鍵復位就是在復位電容上並聯一個開關,當開關按下時電容被放電、RST也被拉到高電平,而且由於電容的充電,會保持一段時間的高電平來使單片機復位。
在通常工作條件下,普通的晶振頻率絕對精度可達百萬分之五十。高級的精度更高。有些晶振還可以由外加電壓在一定范圍內調整頻率,稱為壓控振盪器(VCO)。晶振用一種能把電能和機械能相互轉化的晶體在共振的狀態下工作,以提供穩定,精確的單頻振盪。
51單片機的P0埠為開漏輸出,內部無上拉電阻,如下圖。所以在當做普通I/O輸出數據時,由於V2截止,輸出級是漏極開路電路,要使“1”信號(即高電平)正常輸出,必須外接上拉電阻。
這是按單片機(Microcontrollers)適用范圍來區分的。例如,80C51式通用型單片機,它不是為某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。
這是按單片機(Microcontrollers)是否提供並行匯流排來區分的。匯流排型單片機普遍設置有並行地址匯流排、 數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接,另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積,這類單片機稱為非匯流排型單片機。
這是按照單片機(Microcontrollers)大致應用的領域進行區分的。一般而言,工控型定址范圍大,運算能力強;用於家電的單片機多為專用型,通常是小封裝、低價格,外圍器件和外設介面集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是匯流排型,還可以作工控用。