我們學習單片機,寫單片機程序,首先要看看我們做實驗的板子的原理圖,這是最基本的,我們要知道了單片機的接口的使用情況,電路的驅動方式,所使用的的芯片,這樣我才能去開始寫程序。
一、電路原理分析
如上圖所示就是我們整個板子的原理圖了,今天我們只分析數碼管和按鍵相關的部分,其他部分會在后續的教程中詳細說明。上圖中左上角的U1為主控STC15W408as,28引腳的DIP封裝。右上角的LED1就是4位一體的共陰數碼管,帶時間秒顯示點,緊接著下面的四個三極管Q6-Q9你和電阻R17-R20組成了共陰數碼管的驅動電路。
在此三極管是作為開關使用,用它來控制數碼的陰極的選通與關短;下面點的S1-S3為三個按鍵,在今天,我們用著三個按鍵來控制數碼管上顯示的字符的變化;在按鍵的左邊有個U9和撒你管Q1組成的是蜂鳴器驅動電路。電路介紹完了,接下來看單片機接口使用情況。我們數碼管的8個段選接單片機P2口,四個位選通過三極管驅動電路,分別接P3.1/P3.2/P3.3/P3.6,三個按鍵分別接單片機的P1.2/P1.3P1.4。蜂鳴器做發聲元件,實現按鍵音提示,接的P3.7。電路部分全部介紹完了,接下來就是編程部分了。
二、程序原理分析
首先我們來說數碼顯示的原理?,F在我們的顯示電路采用的是動態顯示的驅動方式,這樣,在每個時刻,其實只有一位數碼管是被選通點亮的,因為我們人眼的視覺暫留和LED發光管的余暉,當數碼管再快速的選通點亮后,我們人眼看到的就是全部都是點亮的了。具體原理網上有一堆資料,我們不做過多說明。數碼管顯示首先得有個段選碼,有些地方叫字形碼,也就是說我要顯示個“1”,那對應的單片機需要給數碼管一個什么樣的數據。具體怎么算請問百度,也可以關注我們我微信公眾號或者Q群,里面有快捷的小工具,1秒鐘幫你算完,直接復制來用。
有了段碼后,就需要我們控制位選碼了,比如我要在第三位上顯示一個“1”,那就需要在段選碼上(本電路中的P2口)送“1”對應的段選碼,然后關閉第一、二、四位位選,開通第三位位選。這就完了,但是大家不要忘記了,我們單片機可厲害了,運行完你寫的的兩句話只要幾微秒,對于微秒級別的時間,人眼是識別不出來的,也就說,單片機數執行了我們現實“1”的指令,但是我們人眼看不出來,因為太快了,怎么辦呢,它快了,那就讓它等等我們人眼吧,好的,這就簡單了啊,執行完顯示“1”的指令后,等待一會,讓我們眼睛看到。這樣是等待程序的來由了。
接下來,我們再說按鍵,從按鍵原理圖中看出,一邊接到單片機IO口,一邊接電源地,也就說當按鍵按下后,單片機的IO口就接到電源地上,地上的電壓是多少?0V啊,沒按按鍵時,IO口上電平是默認的5V啊,也就說只要我們識別電平就可以知道按鍵按下沒有。這就是程序的原理,具體怎么來寫呢?慢慢說,單片機屬于數字器件,它只知道高低電平,不知道電壓具體是5V還是3.7V的,電壓大于它的高電平的閥值,它就認為是高電平;反之它就認為是低電平。程序里我們就讓單片機去識別是高電平還是低電平就可知道按鍵按下沒有。
最后說說蜂鳴器,我們用的是有源蜂鳴器,如圖所示,只要在接口上給高電平,蜂鳴器就發聲,給低電平,蜂鳴器就關閉。
這樣一來,全部程序都分析完了,接下來說程序設計的步驟。首先新建工程(這都要說,我也是醉了),完了包含頭文件,這里我們包含了兩個頭文件,一個是官方的STC15.h,另外一個是我們自己寫的延時函數頭文件delay.h。這兩個文件都需要我們手動復制到你的工程文件夾下去,不然編譯時會提示找不到文件。完了新建一個C代碼文件,我們所有的代碼都在這個文件里編寫。
-
單片機
+關注
關注
6035文章
44553瀏覽量
634735 -
led燈
+關注
關注
22文章
1592瀏覽量
107956 -
數碼管
+關注
關注
32文章
1882瀏覽量
91069 -
驅動電路
+關注
關注
153文章
1529瀏覽量
108496 -
蜂鳴器
+關注
關注
12文章
891瀏覽量
45923
發布評論請先 登錄
相關推薦
評論