
晶振是單片機工作所必不可缺少的元器件,晶振的種類眾多,該如何選擇合適的晶振呢?在用51單片機設(shè)計電路時,經(jīng)常會用到12M和11.0592M的晶振,有時候11.0592M的晶振用的頻率會更高,為什么一些比較有經(jīng)驗的工程師會更喜歡用11.0592M呢?
這個是有一定的科學(xué)依據(jù)的,這要從早期的TTL邏輯電平說起。 TTL電平邏輯規(guī)范 早期的TTL邏輯電平是5V,所以以5V供電作為主流,如8051單片機就是5V供電的。隨著技術(shù)的進步,人們對電子設(shè)備的功耗越來越敏感,希望電子產(chǎn)品的功耗盡可能的少。減小電子產(chǎn)品功耗最直接的辦法就是降低芯片的供電電源,但是降到多少合適?既能滿足低功耗的需求,又要兼容5V的TTL電平?
本設(shè)計使用了一個4位的數(shù)碼管,為共陽型,為了節(jié)省單片機的IO口,使用了兩片74HC595作為數(shù)碼管的驅(qū)動芯片,共占用3個IO口。
單片機是嵌入式系統(tǒng)的核心元件,使用單片機的電路要復(fù)雜得多,但在更改和添加新功能時,帶有單片機的電路更加容易實現(xiàn),這也正是電器設(shè)備使用單片機的原因。那么在單片機電路的設(shè)計中需要注意的難點有哪些?
學(xué)習(xí)單片機需要動手,不是照著課本去死記硬背。 所以學(xué)習(xí)單片機的第一個概念:確定好所學(xué)習(xí)的單片機具體型號。
學(xué)習(xí)單片機需要具備一定的電路基礎(chǔ)、數(shù)字電路、模擬電路、信號系統(tǒng)、C語言編程等相關(guān)的基礎(chǔ)知識。單片機的學(xué)習(xí)包括硬件設(shè)計和編程設(shè)計,早期單片機用匯編編程的人比較多,現(xiàn)在越來越多的人用C語言進行編程。下面和大家分享一下如何快速有效的學(xué)習(xí)單片機。
8*8點陣是一種應(yīng)用廣泛的顯示器件,像戶外的顯示屏、點陣屏都是由點陣拼接而成。而點陣其實是發(fā)光二極管LED的矩陣。 在驅(qū)動點陣時,雖然具有專用的點陣驅(qū)動芯片,如MAX7219,但是該芯片價格比較高,所以應(yīng)用并沒有很普遍。而74HC595和74HC138的組合來驅(qū)動點陣應(yīng)用卻非常廣泛。
單片機的GPIO口驅(qū)動能力有限,不能直接驅(qū)動較大功率的負載,如果負載的功率較大必須要考慮采用驅(qū)動功率器件的方式,比如說三極管、MOS管以及其他的專用驅(qū)動芯片。下面結(jié)合幾個典型的例子來介紹一下如何提高單片機的驅(qū)動能力。
單片機和嵌入式,其實沒有什么標(biāo)準的定義來區(qū)分他們,對于進行過單片機和嵌入式開發(fā)的開發(fā)者來說,都有他們自己的定義,接下來,就談?wù)勥@兩個概念的深入理解。
數(shù)字電路剛通電時都會上電復(fù)位,復(fù)位的功能是將單片機里的重新開始,主要防止程序混亂,也就是跑飛、或者死機等現(xiàn)象,目的是使系統(tǒng)進入初始狀態(tài),以便隨時接受各種指令進行工作,CPU的復(fù)位可靠性決定著產(chǎn)品系統(tǒng)的穩(wěn)定性,因此在電路當(dāng)中,發(fā)生任何一種復(fù)位后,系統(tǒng)程序?qū)闹匦麻_始執(zhí)行,系統(tǒng)寄存器也都將恢復(fù)為默認值。
前邊的文章《單片機技巧:快速入門有訣竅,先從最小系統(tǒng)開始入手,事半功倍》里講解了單片機的最小系統(tǒng),單片機想要正常工作,電源電路、晶振電路、下載電路、復(fù)位電路等是必不可少的。今天來詳細講解一下復(fù)位電路。
有 朋友在后臺發(fā)消息,希望設(shè)計一個LED閃爍電路,閃爍頻率為2Hz,想了解LED閃爍的電路原理是什么,下面解答一下,看看有沒有寫的很通俗易懂。
單片機是一種可編程器件,單片機的出現(xiàn)使硬件設(shè)計變得更為簡單,產(chǎn)品的功能也更強大,而程序就是單片機的靈魂。 目前功能稍微復(fù)雜一點的電子產(chǎn)品,都是以單片機為核心,再加以不通的外設(shè)電路實現(xiàn)不通的功能需求。 單片機的編程可以通過匯編語言和C語言來實現(xiàn)。
單片機是可編程器件,在使用時需要編寫滿足需求的程序。其C語言程序在各個端口、配置初始化完成后,會進入一個死循環(huán),一般用while(1){;}的形式。初始化完成后,單片機就在死循環(huán)內(nèi)一遍又一遍的執(zhí)行程序邏輯。復(fù)位后,就從頭開始,初始化完成后,再次進入死循環(huán)。
應(yīng)某位朋友的要求,講解一下單片機中斷的知識,那今天就以51單片機的外部中斷0為例,來簡單講解一下單片機中斷的用法。
在學(xué)習(xí)單片機的時候,我們發(fā)現(xiàn)很多功能都是通過中斷來實現(xiàn)的。之前也舉過燒水的例子來闡述中斷,今天就講解一下定時器賦初值的方法。8位的定時器最大可計數(shù)2的8次方為256,16位的定時器最大可計數(shù)2的16次方為65536。
對一個字節(jié)數(shù)據(jù),逐個交換其高低位;例如11010001,經(jīng)過0-7、1-6、2-5、3-4對應(yīng)位的交換,變成10001011。對于該問題,我們最先想到的是對原字節(jié)通過移位操作來逐位處理,使用另一個變量來存儲交換后的結(jié)果。這種解決方案處理起來思路清晰,編寫代碼應(yīng)該不難。
由于近期要做一個裝置 ,想著把裝置做的好看一點,就打算使用 GUI 來做一個信息的相關(guān)顯示,之前聽說過一款比較輕量級的圖形庫,也就是 lvgl,手頭又正好有一塊搭配屏幕的野火指南者開發(fā)板,單片機型號是 STM32F103VET6,F(xiàn)lash 為 512KB,RAM 為 64KB,屏幕為 3.2 寸電阻觸摸屏,我們在來看一下運行 lvgl 這個 GUI 需要的資源。
相信很多道友都有對輸入IO 口進行濾波的需求,比如按鍵輸入、紅外對管輸入等。本文以按鍵為例,簡單介紹了如何進行較為高效的濾波。
在用單片機設(shè)計電路時,需要用到晶振,晶振的大小要根據(jù)需要來確定,比如說4M,8M,11.0592M,12M,20M,甚至還有其他數(shù)值的晶振。在使用時鐘芯片或者使用RTC功能時,也需要晶振,但是這種晶振我們都用32.768K的晶振,一般把它叫做時鐘晶振。