<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發網

      電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
      搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 單片機 >> 正文

      單片機的PO口和P2口的結構:八路鍵控數碼管顯示制作,LED dispalyer

      作者:佚名    文章來源:本站原創    點擊數:    更新時間:2018-02-20

      八路鍵控數碼管顯示制作,LED dispalyer

      關鍵字:單片機數碼管顯示電路

       
        通過制作《八路鍵控數碼管》的實訓項目學會單片機的PO口和P2口的結構特點及數據的輸入/輸出使用方法、鍵盤輸入原理、數碼管顯示原理等知識點,為以后制作多功能八路搶答器做好準備。
        一、任務目標
        
        使用八路直控鍵盤控制一位共陰極數碼管顯示數字。
        二、硬件電路設計
        
        1.顯示電路設計
        
        數碼管由8個發光二極管(以下簡稱字段)構成,通過不同的組合可用來顯示數字0—9、字符A~F、H、L、P、R、U、Y、符號“-”及小數點“.”。
       
        數碼管又分為共陰極和共陽極兩種結構,如下左圖所示為共陰極數碼管的外型結構示意圖。下右圖為共陰極數碼管的內部結構圖。
        共陰極數碼管的8個發光二極管的陰極(二極管負端)連接在一起。通常,共陰極接低電平(一般接地),其他管腳接段驅動電路輸出端,當某段驅動電路的輸出端為高電平時,則該端所連接的字段導通并點亮,根據發光字段的不同組合可顯示出各種數字和字符。此時,要求段驅動電路能提供額定的段導通電流,還需根據外接電源及額定段導通電流來確定相應的限流電阻。
        我們知道單片機的PO口可以驅動8個LS型TTL負載(低電平灌輸電流為3.2mA,高電平上拉電流為0)。因此我們選擇單片機的PO口作為共陰極數碼管的段驅動電路輸出端,但是必須外接上拉電阻。數碼管顯示電路圖如下圖。
        現在只需要通過指令控制單片機的PO口輸出相應的高低電平就可以控制數碼管顯示數字0~9。
        如:MOV PO,#06H;顯示數字1。
        MOV PO,#5BH;顯示數字2。
        數碼管字型編碼表如下表所示。
        2.鍵盤電路設計
        
        常見的鍵盤電路形式有直接編碼輸入鍵盤電路(簡稱直控鍵盤)和矩陣鍵盤電路,直控鍵盤是直接用I/O口線構成的單個按鍵電路,其特點是每個按鍵單獨占用一根I/O口線,每個按鍵的工作不會影響其它I/O口線的狀態,直控鍵盤的典型電路如下圖所示。
        直控鍵盤電路配置靈活,軟件結構簡單,但每個按鍵必須占用一根I/O口線,因此,在按鍵較多時,I/O口線浪費較大,不宜采用,應采用矩陣鍵盤,矩陣鍵盤就不詳細討論了。
        上圖中按鍵輸入均采用低電平有效,因為P2口內部自帶了上拉電阻,所以外電路可不接上拉電阻。
        3.八路鍵控數碼管電路
        
        
        鍵盤電路作為單片機的輸入部分,數碼顯示電路作為單片機的輸出部分,由鍵盤電路通過單片機控制數碼管顯示電路的八路鍵控數碼管電路設計如下圖。
       
       
       
      三、程序設計
        
        1.數碼管工作原理分析
        
        本電路采用的是共陰極數碼管,接到單片機的PO口,現在只要向PO口輸出相應的字型編碼就可以顯示相應的數字。
        2.鍵盤工作原理分析
        
        P2口作為輸入口使用時,要先向P2口寫入高電平后才能讀取到正確的輸入電平。在讀取電平的時候應考慮下面幾點:
       
        (1)檢測有無按鍵按下,并采取軟件措施,消除按鍵機械觸點抖動的影響。一般采用軟件措施:在檢測到有按鍵按下時,執行一個10ms左右的延時子程序后,再檢測該鍵電平是否仍保持閉合狀態電平,若仍保持閉合狀態電平,則確認該鍵處于閉合狀態;同理,在檢測到該鍵釋放后,也應采用相同的步驟進行確認,從而可消除抖動的影響。
        (2)有可靠的邏輯處理辦法。每次只處理一個按鍵,其間任何按鍵的操作對系統不產生影響,且無論一次按鍵時間有多長,系統僅執行一次按鍵功能程序。
        (3)準確輸出按鍵值(或鍵號),以滿足控制功能的要求。
        3.程序流程圖設計
        
        根據數碼管工作原理的分析和鍵盤工作原理的分析,我們設計的程序流程圖如下圖。
       
       
        4.程序設計
        
        本程序將會用到下面的條件跳轉指令:
        JZ REL;指令功能:A為0跳轉指令,既當累加器A=OOH時跳轉,否則順序執行。
        其中REL是跳轉的相對偏移量,可以是正,向后跳,也可以是負,向前跳,不過不能超過一個頁面。
        不過編程者經常不寫實際偏移量而用標號代替,編譯時,軟件自動算出當前位置到目標位置的偏移量。
        JB BIT.REL指令功能:指定位為1跳轉指令,即當BIT=1時跳轉,否則順序執行。
        其中BIT是一個位變量,如P1.1,PSW.5等。
        ORG OOOOH;隨后的指令代碼從OOOOH單元開始存放。
        LJMP START;轉到標號START處ORG 0030H;隨后的指令代碼從0030H單元開始存放。
        START:MOV P0,#OOH;關閉數碼管,不顯示任何內容。
        SAOMIAO:MOV P2,#OFFH;對P2口所有位寫1,也就是處于讀狀態,確保讀數正確。
        CLRA;對累加器A清零。
        MOV A,P2;第一次讀取P2口的數據,并送入累加器A中。
        CPL A;對A按位取反,如果沒有鍵按下,A為OOH,如果有鍵按下,相應的位為1。
        JZ SAOMIAO;如果A=OOH,說明沒有鍵按下,跳到標號SAOMIAO處繼續掃描。如果A不等于OOH,說明有鍵按下,應該調用10MS的延時去抖子程序。
        LCALL DELAY10MS;調用10MS的延時去抖子程序。
        MOVA,P2;第二次讀取P2口的數據,并送入累加器A中。
        CPL A;對A按位取反,如果沒有鍵按下,A為OOH,如果有鍵按下,相應的位為1。
        JZ SAOMIAO.;如果A=OOH,說明沒有鍵按下,跳到標號SAOMIAO處繼續掃描。如果A不等于OOH,說明確實有鍵按下,順序執行下面的程序,判斷是哪個鍵按下了。
        JB ACC.O,SZO;如果SO鍵按下,  則ACC.0=1,轉去執行顯示數字0,否則順序執行。
        JB ACC.1,SZ1;如果S1鍵按下,  則ACC.1=1,轉去執行顯示數字1,否則順序執行。
        JB ACC.2,SZ 2;如果S2鍵按下,  則ACC.2=1,轉去執行顯示數字2,否則順序執行。
        JB ACC.3,SZ 3;如果S3鍵按下,  則ACC.3=1,轉去執行顯示數字3,否則順序執行。
        JB ACC.4,SZ 4;如果S4鍵按下,  則ACC.4=1,轉去執行顯示數字4,否則順序執行。
        JB ACC.5,SZ 5;如果S5鍵按下,  則ACC.5=1,轉去執行顯示數字5,否則順序執行。
        JB ACC.6,SZ 6;如果S6鍵按下,  則ACC.6=1,轉去執行顯示數字6,否則順序執行。
        JB ACC.7,SZ 7;如果S7鍵按下,  則ACC.7=1,轉去執行顯示數字7,否則順序執行。
        LJMP SAOMJAO;跳轉到 SAOMJAO處繼續掃描。
        SZO:MOVPO,#3FH;顯示數字0。
        LJMPSAOMIAO;跳轉到SAOMIAO處繼續掃描按鍵。
        SZ1:MOVPO,#06H;顯示數字1。
        LJMPSAOMIAO;跳轉到SAOMIAO處繼續掃描按鍵。
        S22:MOVPO,#5BH;顯示數字2。
        LJMPSAOMIAO;跳轉到SAOMIAO處繼續掃描按鍵。
        S23:MOVPO,#4FH;顯示數字3。
        LJMPSAOMIAO:跳轉到SAOMIAO處繼續掃描按鍵。
        S24:MOVPO,#66H;顯示數字4。
        LJMPSAOMIAO:跳轉到SAOMIAO處繼續掃描按鍵。
        S25:MOVPO,#6DH;顯示數字5。
        LJMPSAOMIAO:跳轉到SAOMIAO處繼續掃描按鍵。
        S26:MOVPO,#7DH;顯示數字6。
        LJMPSAOMIAO;跳轉到SAOMIAO處繼續掃描按鍵。
        S27:MOVPO,#07H;顯示數字7。
        LJMPSAOMIAO:跳轉到SAOMIAO處繼續掃描按鍵。
      DELAY10MS:MOVR7,#20;從本行開始,到RET結束,為10MS延時去抖子程序。
      D1: MOV R6,#250
      D2: DJNZ R6,D2
      DJNZ R7,D1
      RET
      END
       
        四、制作步驟
        
        第一步:按照電路原理圖,列出器件清單,并購買相應的器件材料,正常的價格是20元以內。
        第二步:焊接成電路板,具體步驟可以參考前面幾期的文章。
        第三步:使用Keil C51 uVision2編輯源程序,編譯源代碼并生成目標程序代碼。再把目標程序代碼通過編程器寫入到單片機芯片中。
        第四步:把單片機芯片插到“八路鍵控數碼管電路”的緊鎖坐上,并通電、測試、觀察結果。按下SO到S7號按鍵時,數碼管顯示立刻顯示數字0到7。如果同時按下2個按鍵,只會顯示編號小的數字。例如:如同時按下S5和S6,只會顯示按鍵編號為S5對應的數字“5”,而不會顯示數字“6”。
        本功能的實現是為了以后我們制作八路搶答器,實踐當中不會出現同時按下多個按鍵的可能性,總會有時間差異的。
       

      Tags:單片機,PO口,P2口,八路鍵控數碼管  
      責任編輯:admin
    4. 上一篇文章:
    5. 下一篇文章: 沒有了
    6. 請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個字
      [ 查看全部 ] 網友評論
      關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 狠狠88综合久久久久综合网 | 狠狠色丁香久久婷婷综合五月| 天天综合色一区二区三区| 色综合久久98天天综合| 久久综合久久性久99毛片| 狠狠色综合色综合网络| 亚洲欧美日韩综合俺去了| 一本色道久久综合亚洲精品高清| 亚洲国产综合在线| 狠狠色丁香久久综合婷婷| 色综合久久88色综合天天| 国产亚洲综合一区柠檬导航| 色综合久久天天综合观看| 久久伊人久久亚洲综合| 伊人久久中文大香线蕉综合| 区二区三区激情综合| 色悠久久久久久久综合网伊人| 亚洲精品综合久久中文字幕| 91精品国产91久久综合| 国产成人综合精品一区| 一本大道AV伊人久久综合| 色婷婷99综合久久久精品 | 亚洲欧美日韩综合久久久久| 婷婷久久香蕉五月综合加勒比| 国产精品激情综合久久| 亚洲综合精品网站在线观看| 成人亚洲综合天堂| 伊伊人成亚洲综合人网7777| 国产激情电影综合在线看 | 久久久久AV综合网成人| 色噜噜狠狠成人中文综合| 狼狼综合久久久久综合网| 亚洲五月丁香综合视频| 亚洲色偷偷综合亚洲av78 | 久久狠狠色狠狠色综合| 亚洲五月激情综合图片区| 伊人久久综合热线大杳蕉下载| 亚洲国产精品综合久久网各| 久久久久久久综合狠狠综合 | 一本色道久久88亚洲精品综合| 久久桃花综合桃花七七网|