0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

數(shù)碼顯示按鍵次數(shù)

冬至子 ? 來(lái)源:?jiǎn)纹瑱C(jī)技術(shù)宅 ? 作者:小代 ? 2023-06-13 16:40 ? 次閱讀

我們學(xué)習(xí)單片機(jī),寫(xiě)單片機(jī)程序,首先要看看我們做實(shí)驗(yàn)的板子的原理圖,這是最基本的,我們要知道了單片機(jī)的接口的使用情況,電路的驅(qū)動(dòng)方式,所使用的的芯片,這樣我才能去開(kāi)始寫(xiě)程序。

一、電路原理分析

圖片

如上圖所示就是我們整個(gè)板子的原理圖了,今天我們只分析數(shù)碼管和按鍵相關(guān)的部分,其他部分會(huì)在后續(xù)的教程中詳細(xì)說(shuō)明。上圖中左上角的U1為主控STC15W408as,28引腳的DIP封裝。右上角的LED1就是4位一體的共陰數(shù)碼管,帶時(shí)間秒顯示點(diǎn),緊接著下面的四個(gè)三極管Q6-Q9你和電阻R17-R20組成了共陰數(shù)碼管的驅(qū)動(dòng)電路。

在此三極管是作為開(kāi)關(guān)使用,用它來(lái)控制數(shù)碼的陰極的選通與關(guān)短;下面點(diǎn)的S1-S3為三個(gè)按鍵,在今天,我們用著三個(gè)按鍵來(lái)控制數(shù)碼管上顯示的字符的變化;在按鍵的左邊有個(gè)U9和撒你管Q1組成的是蜂鳴器驅(qū)動(dòng)電路。電路介紹完了,接下來(lái)看單片機(jī)接口使用情況。我們數(shù)碼管的8個(gè)段選接單片機(jī)P2口,四個(gè)位選通過(guò)三極管驅(qū)動(dòng)電路,分別接P3.1/P3.2/P3.3/P3.6,三個(gè)按鍵分別接單片機(jī)的P1.2/P1.3P1.4。蜂鳴器做發(fā)聲元件,實(shí)現(xiàn)按鍵音提示,接的P3.7。電路部分全部介紹完了,接下來(lái)就是編程部分了。

二、程序原理分析

首先我們來(lái)說(shuō)數(shù)碼顯示的原理?,F(xiàn)在我們的顯示電路采用的是動(dòng)態(tài)顯示的驅(qū)動(dòng)方式,這樣,在每個(gè)時(shí)刻,其實(shí)只有一位數(shù)碼管是被選通點(diǎn)亮的,因?yàn)槲覀內(nèi)搜鄣囊曈X(jué)暫留和LED發(fā)光管的余暉,當(dāng)數(shù)碼管再快速的選通點(diǎn)亮后,我們?nèi)搜劭吹降木褪侨慷际屈c(diǎn)亮的了。具體原理網(wǎng)上有一堆資料,我們不做過(guò)多說(shuō)明。數(shù)碼管顯示首先得有個(gè)段選碼,有些地方叫字形碼,也就是說(shuō)我要顯示個(gè)“1”,那對(duì)應(yīng)的單片機(jī)需要給數(shù)碼管一個(gè)什么樣的數(shù)據(jù)。具體怎么算請(qǐng)問(wèn)百度,也可以關(guān)注我們我微信公眾號(hào)或者Q群,里面有快捷的小工具,1秒鐘幫你算完,直接復(fù)制來(lái)用。

有了段碼后,就需要我們控制位選碼了,比如我要在第三位上顯示一個(gè)“1”,那就需要在段選碼上(本電路中的P2口)送“1”對(duì)應(yīng)的段選碼,然后關(guān)閉第一、二、四位位選,開(kāi)通第三位位選。這就完了,但是大家不要忘記了,我們單片機(jī)可厲害了,運(yùn)行完你寫(xiě)的的兩句話只要幾微秒,對(duì)于微秒級(jí)別的時(shí)間,人眼是識(shí)別不出來(lái)的,也就說(shuō),單片機(jī)數(shù)執(zhí)行了我們現(xiàn)實(shí)“1”的指令,但是我們?nèi)搜劭床怀鰜?lái),因?yàn)樘炝?,怎么辦呢,它快了,那就讓它等等我們?nèi)搜郯?,好的,這就簡(jiǎn)單了啊,執(zhí)行完顯示“1”的指令后,等待一會(huì),讓我們眼睛看到。這樣是等待程序的來(lái)由了。

接下來(lái),我們?cè)僬f(shuō)按鍵,從按鍵原理圖中看出,一邊接到單片機(jī)IO口,一邊接電源地,也就說(shuō)當(dāng)按鍵按下后,單片機(jī)的IO口就接到電源地上,地上的電壓是多少?0V啊,沒(méi)按按鍵時(shí),IO口上電平是默認(rèn)的5V啊,也就說(shuō)只要我們識(shí)別電平就可以知道按鍵按下沒(méi)有。這就是程序的原理,具體怎么來(lái)寫(xiě)呢?慢慢說(shuō),單片機(jī)屬于數(shù)字器件,它只知道高低電平,不知道電壓具體是5V還是3.7V的,電壓大于它的高電平的閥值,它就認(rèn)為是高電平;反之它就認(rèn)為是低電平。程序里我們就讓單片機(jī)去識(shí)別是高電平還是低電平就可知道按鍵按下沒(méi)有。

最后說(shuō)說(shuō)蜂鳴器,我們用的是有源蜂鳴器,如圖所示,只要在接口上給高電平,蜂鳴器就發(fā)聲,給低電平,蜂鳴器就關(guān)閉。

這樣一來(lái),全部程序都分析完了,接下來(lái)說(shuō)程序設(shè)計(jì)的步驟。首先新建工程(這都要說(shuō),我也是醉了),完了包含頭文件,這里我們包含了兩個(gè)頭文件,一個(gè)是官方的STC15.h,另外一個(gè)是我們自己寫(xiě)的延時(shí)函數(shù)頭文件delay.h。這兩個(gè)文件都需要我們手動(dòng)復(fù)制到你的工程文件夾下去,不然編譯時(shí)會(huì)提示找不到文件。完了新建一個(gè)C代碼文件,我們所有的代碼都在這個(gè)文件里編寫(xiě)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6040

    文章

    44592

    瀏覽量

    636891
  • led燈
    +關(guān)注

    關(guān)注

    22

    文章

    1592

    瀏覽量

    108186
  • 數(shù)碼管
    +關(guān)注

    關(guān)注

    32

    文章

    1883

    瀏覽量

    91282
  • 驅(qū)動(dòng)電路
    +關(guān)注

    關(guān)注

    153

    文章

    1532

    瀏覽量

    108647
  • 蜂鳴器
    +關(guān)注

    關(guān)注

    12

    文章

    892

    瀏覽量

    46024
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【芯航線FPGA開(kāi)發(fā)板學(xué)習(xí)筆記】--------按鍵次數(shù)顯示

    了,而是它有關(guān)于這個(gè)東西的設(shè)計(jì)文檔,而且代碼是全部是手敲,看出來(lái)梅總的用心。哈哈說(shuō)了半天估計(jì)有人又開(kāi)始說(shuō)打廣告了,哈哈實(shí)事求是。 水了這么半天下面開(kāi)始進(jìn)入正題,如何將按鍵次數(shù)顯示數(shù)碼
    發(fā)表于 10-23 15:54

    按鍵數(shù)碼管逐漸輸出5fpga數(shù)碼管數(shù)字1~6

    從上一次停止移動(dòng)的數(shù)字開(kāi)始。打個(gè)比方,上一次數(shù)碼顯示345612,按下按鍵顯示456125–>561255–>612555–>125555,松開(kāi)
    發(fā)表于 07-29 07:30

    矩陣按鍵數(shù)碼管移位顯示

    單片機(jī)中級(jí)項(xiàng)目13丨矩陣按鍵數(shù)碼管移位顯示
    發(fā)表于 12-01 08:17

    按鍵數(shù)碼顯示

    按鍵數(shù)碼顯示一、實(shí)驗(yàn)?zāi)康?b class='flag-5'>按鍵是單片機(jī)常用的輸入設(shè)備,操作人員可以通過(guò)按鍵輸入指令和數(shù)據(jù)。在使用按鍵
    發(fā)表于 03-23 10:44 ?5283次閱讀
    <b class='flag-5'>按鍵</b>及<b class='flag-5'>數(shù)碼</b>管<b class='flag-5'>顯示</b>

    通過(guò)矩陣按鍵讓不同數(shù)碼顯示不同數(shù)值

    慧凈HL-1 配套C實(shí)驗(yàn)例程100例【實(shí)驗(yàn)17】通過(guò)矩陣按鍵讓不同數(shù)碼顯示不同數(shù)值),很好的C51學(xué)習(xí)資料程序。
    發(fā)表于 03-21 16:48 ?29次下載

    按鍵次數(shù)計(jì)數(shù)器

    慧凈HL-1 配套C實(shí)驗(yàn)例程100例【實(shí)驗(yàn)21】按鍵次數(shù)計(jì)數(shù)器),很好的C51學(xué)習(xí)資料程序。
    發(fā)表于 03-21 16:44 ?21次下載

    按鍵控制單個(gè)數(shù)碼顯示

    19-按鍵控制單個(gè)數(shù)碼顯示----------51單片機(jī)源程序 用keil直接打開(kāi)
    發(fā)表于 06-16 15:36 ?34次下載

    按鍵--數(shù)碼顯示--硬件延時(shí)

    51單片機(jī)的按鍵識(shí)別顯示,識(shí)別后用數(shù)碼顯示。
    發(fā)表于 06-17 16:16 ?7次下載

    2按鍵加減操作數(shù)碼顯示

    2按鍵加減操作數(shù)碼顯示--C51單片機(jī)源碼,KEIL源文件,C語(yǔ)言編寫(xiě)
    發(fā)表于 06-20 16:15 ?22次下載

    多位數(shù)按鍵加減(閃爍)數(shù)碼顯示

    多位數(shù)按鍵加減(閃爍)數(shù)碼顯示 C51單片機(jī)源碼,KEIL源文件,C語(yǔ)言編寫(xiě)
    發(fā)表于 06-20 16:36 ?25次下載

    fpga按鍵控制數(shù)碼顯示

    本文主要介紹了fpga按鍵控制數(shù)碼顯示程序設(shè)計(jì)。數(shù)碼管是由多個(gè)發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個(gè)筆劃,公共電極。下面我們來(lái)了解一下
    發(fā)表于 01-16 16:19 ?1.7w次閱讀
    fpga<b class='flag-5'>按鍵</b>控制<b class='flag-5'>數(shù)碼</b>管<b class='flag-5'>顯示</b>

    FPGA DIY 按鍵控制數(shù)碼顯示

    asean的 FPGA DIY 按鍵控制數(shù)碼顯示的視頻
    的頭像 發(fā)表于 06-20 00:37 ?7851次閱讀

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

    按鍵使數(shù)碼管循環(huán)顯示從0到9(51單片機(jī)+匯編語(yǔ)言+Proteus仿真)具體功能:顯示按第一次數(shù)碼管變亮
    發(fā)表于 11-22 20:51 ?95次下載
    <b class='flag-5'>按鍵</b>使<b class='flag-5'>數(shù)碼</b>管循環(huán)<b class='flag-5'>顯示</b>從0到9 (51單片機(jī)+匯編語(yǔ)言+Proteus仿真)

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

    利用匯編編寫(xiě)51單片機(jī)串口通信程序,實(shí)現(xiàn)對(duì)于按鍵次數(shù)顯示題目如下甲乙兩個(gè)單片機(jī)之間通信,其中甲機(jī)連接有8個(gè)流水燈循環(huán)閃爍和一個(gè)按鍵,乙機(jī)連接有一個(gè)LED
    發(fā)表于 11-23 09:06 ?23次下載
    利用匯編編寫(xiě)51單片機(jī)串口通信程序,實(shí)現(xiàn)對(duì)于<b class='flag-5'>按鍵</b><b class='flag-5'>次數(shù)</b>的<b class='flag-5'>顯示</b>

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

    按照之前的文章關(guān)于數(shù)碼管說(shuō)到的線與,在此之上我們將一個(gè)按鍵拓展為多個(gè)按鍵,對(duì)數(shù)碼管進(jìn)行控制,就需要按鍵掃描函數(shù),
    的頭像 發(fā)表于 06-28 11:31 ?3634次閱讀
    多個(gè)<b class='flag-5'>按鍵</b>控制<b class='flag-5'>數(shù)碼</b>管<b class='flag-5'>顯示</b>數(shù)字