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

通過矩陣按鍵讓不同數(shù)碼管顯示不同數(shù)值
按鍵次數(shù)計數(shù)器
多位數(shù)按鍵加減(閃爍)數(shù)碼管顯示
fpga按鍵控制數(shù)碼管顯示

按鍵使數(shù)碼管循環(huán)顯示從0到9 (51單片機+匯編語言+Proteus仿真)

利用匯編編寫51單片機串口通信程序,實現(xiàn)對于按鍵次數(shù)的顯示

多個按鍵控制數(shù)碼管顯示數(shù)字

評論