在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于AT89C2051串口的LED數碼管顯示電路,AT89C2051 LED DISPLAYER

454398 ? 2018-09-20 19:43 ? 次閱讀

基于AT89C2051串口的LED數碼管顯示電路,AT89C2051 LED DISPLAYER

關鍵字:AT89C2051數碼管電路

AT89C2051單片機內有一個串行I/O端口,通過引腳RXD[P3.0]和TXD[P3.1]可與外部電路進行全雙工的串行異步通信,發送數據時由TXD端送出,接收時數據由RXD端輸入。串口有四種工作方式,通過編程設置,可以使其工作在任一方式以滿足不同的場合。其中,方式0是8位移位寄存器輸入/輸出方式,多用與外接移位寄存器以擴展I/O端口。串口的工作方式可以參看相關的書籍,此處不做詳細介紹。方式 0的輸出是8位串行數據,通過移位寄存器可將8位串行數據變成8位并行數據輸出,也可以將外部的8位并行數據變成8位串行數據輸入。因此外接一個移位寄存器就可擴展一個8位的并行輸入/輸出接口,如果想多擴展幾個并口就需要在外部級連幾個移位寄存器。但是這種擴展也不是無限的,因為串口的數據是一位一位串行輸入/輸出的。如果外接的移位寄存器比較多的話那么是必影響數據輸入/輸出的速度。
串口外接的移位寄存器有兩種,一種是“串行輸入/并行輸出移位寄存器”(如:741一S164),另一種是“并行輸入/串行輸出”移位寄存器(如: 74LS165)。通過寄存器的名稱就可以看出“串行輸入/并行輸出移位寄存器”是用于串口擴展并行輸出接口,“并行輸入/串行輸出”是用于串口擴展并行輸入接口。
圖1(a)是串行輸入/并行輸出移位寄存器74LS164的管腳排列圖。其功能表見表1所示。74LS164有兩個串行數據A、B輸入端,使用時一般把它們連在一起;麗為清零輸入端,低電平有效,當該端加入低電平時,寄存器輸出Q0~Q7全為低電平。在正常情況下,清零輸入端接高電平,當CP信號上升沿到來時,數據從A、B端輸入并右移一位; Q0~Q7為并行數據輸出端,同時Q7端也是串行數據輸出端,對于串行輸入的數據,最先輸入的從Q7輸出,最后進入的從Q0輸出。CP為移位脈沖。
圖1(b)是另一種常用的“并行(串行)輸入/串行輸出”移位寄存器74LS165的管腳排列圖。該器件的功能表見表2。該器件能在一個信號的控制下并行置入一個8位數據,然后在時鐘脈沖的作用下逐位移出,也能使數據從另外一個引腳串行輸入。在圖1(b)中,DO~D7是并行數據輸入端。S/L端是控制信號輸入端,當為高電平時,具有移位功能;當為低電平時,將DO~D7端的數據置入到內部的移位寄存器保存。CP端為時鐘(即移位脈沖)輸入端,當S/L= 1時,CP端的每一次正跳變,都會使已存入內部的數據DO~D7從Q7端移出一位,移位的順序是D7最先從Q7端移出,Q0最后從Q7端移出。CI端為時鐘脈沖禁止端,當該端為低電平時,時鐘信號(移位脈沖)不能進入,正常工作時必須接高電平。S1為串行數據輸入端,在S/L=1時,SI端的數據在CP脈沖上升沿作用下置入Q0,因此,當CP脈沖上升沿到來時內部的數據DO~D7從Q7端移出一位同時外部數據通過SI移入一位,當經過8次CP上升沿后 DO~D7這8個數據就全部通過Q7輸出,而內部的DO~D7全部更新為通過SI的輸入的信號。例如:如果SI外接電源電壓,那么當CP上升沿到來時,Q7會移出一位數據,而S1會移入一個“1”,當經過8個上升沿后,原先置入的DO~D7全被移出,內部的Q0~Q7全被更新為 “1”。如果CP上升沿再次到來時,輸出的就是“1”。因此當8個輸入數據都通過Q7輸出后,如果還想輸入就再次必須置入新的數據
通過對兩種移位寄存器的分析可以得出。通過串口擴展單片機的I/O口的具體電路如圖2所示:
圖2(a)是通過串口擴展的并行輸出接口。RXD作為數據輸出線,TXD作為移位時鐘脈沖。每一個時鐘信號的上升沿加到74LS164的CP端時,移位寄存器將串口輸出的數據移入一位,8個時鐘脈沖過后串口輸出的8位二進制數全部移入74LS164,通過Q0-Q7并行輸出。
圖2(b)是通過串口擴展的并行輸入接口。同樣RXD作為數據輸入線,TXD作為移位時鐘脈沖。每一個時鐘信號的上升沿加到74LS165的CP端時,移位寄存器就將內部的數據向外移一位,通過Q7輸出。8個時鐘脈沖過后,并行輸入的8位二進制數全部移出,通過Q7串行輸入。
基于串口的LED數碼管靜態顯示電路
在串口擴展中最常用的就是基于串口的LED數碼管顯示電路。在單片機應用系統中,LED數碼管的顯示常用兩種方法:靜態顯示和動態掃描顯示。所謂靜態顯示,就是每一個顯示器都要占用單獨的具有鎖存功能的I/O接口用于筆劃段字形代碼。這樣單片機只要把要顯示的字形代碼發送到接口電路,就不用管它了,直到要顯示新的數據時,再發送新的字形碼,因此,使用這種方法單片機中CPU的開銷小。可以提供單獨鎖存的I/O接口電路很多,常用的就是通過串口外接串并轉換器74LS164,擴展并行的I/O口。需要幾個數碼管就擴展幾個并行接口,數碼管直接接在74LS164的輸出腳上,單片機通過串口將要顯示數據的字形碼逐一的串行移出至74LS164的輸出腳上數碼管就可以顯示相應的數字。
1. 硬件設計
單片機AT89C2051的串口外接1片74LS164作為LED顯示器的靜態顯示接口,把AT89C2051的RXD作為數據輸出線,TXD作為移位時鐘脈沖。Q0-Q7(第3—6和10—13引腳)并行輸出端分別接LED顯示器的DP---A各段對應的引腳上。圖中采用的是共陰極數碼管,因而各數碼管的公共極接電源GND,要顯示某字段則相應的移位寄存器74LS164的輸出線必須是高電平。P1口接8個按鍵,分別編號為KEY1--KEY8。當某個按鍵按下時。某個數就顯示在數碼管上。
2. 軟件設計
軟件設計流程圖如圖4所示。圖(a)為主程序流程圖,圖(b)為顯示子程序流程圖。
開機時,初始化數碼管,通過串口將“0”的字形碼輸出使數碼管顯示“O”。然后判斷P1口是否有鍵按下,如果沒鍵按下繼續判斷。
當確認有鍵按下后單片機將P1口的值賦給累加器A,由于按鍵沒被按下時是低電平,被按下后為高電平因此判斷A中哪一位為高電平就能得出哪個按鍵被按下。將此按鍵的編號讀入顯示緩沖區65H中,然后調用顯示子程序將按鍵編碼顯示在數碼管上。這樣程序就完成了一次的執行過程。
顯示子程序首先初始化串口,使串口工作在方式0,再讀取顯示緩沖區內的數據(顯示緩沖區主要是用來存放即將要顯示的數據),然后通過查表的方式找到對應的字形碼,最后把字形碼寫入串口寄存器SBUF通過串口方式0發送出去。當8個時鐘脈沖后,字形碼都移至74Ls164的Q0-Q7,數碼管就顯示相應按鍵的編碼。
顯示子程序是怎么將顯示緩沖區中的數據變成相應的字形碼呢?具體的方法是將每個數字的字形碼以16進制數從小到大的次序依次存放在存儲器中的固定區域中,構成顯示代碼表。當要顯示某字符時,把表格的起始地址送入數據指針寄存器DPTR中作為基址,將顯示緩沖區內的數據作為偏移量送入變址寄存器A,執行查表指令“MOVCA,@A+DPTR”,則累加器A中得到的結果即表格中取出的對應數字的字形碼。
注意:MOVC指令是將程序存儲器內相應地址的值賦給累加器A。MOVC指令只有兩種,一種是:MOVCA,@A+DPTR,將程序存儲器中地址為A+ DPTR內的數據賦給A,例如:累加器A內的數據為01H,而DPTR內的數據為2000H,程序存儲器中地址2001H內的數據為50H,那么執行 MOVCA,@A+DPTR指令后,累加器A內的數據變為50H。另一種是MOVCA,@A+PC。將程序存儲器中地址為A+PC內的數據賦給A。兩種指令的功能基本是一樣。只是第一種中的地址是存放在DPTR中,而第二種是直接使用PC指針的地址。
對于電路中的74LS164共陰極數碼管數據位和字形的對應關系如下表。
由于單片機在以方式0串行發送數據的時候數據從RXD引腳從低位到高位依次輸出,而最先輸出的數據經過74LS164串轉并后到達Q7,也就是說單片機內的DO通過串口發送并經過74LS164后到達74LS164的Q7腳即數碼管的A腳,因此在單片機內字型碼與74LS164所對應的字型碼正好相反,所以在單片機內O-8所對應的字型碼分別是:
3FH,06H,5BH,4FH,66H,6DH,7DH,07H.7FH。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關推薦

    求解答!用STC89C51系列數字秒表

    實驗室學51單片機,用STC89C51系列,作業太難了,求佬給源代碼幫助一下謝謝 1.通過定時器,8位數碼管,8個獨立按鍵完成1000秒以內的數字秒表,最小分辨0.1秒,設置啟動計秒鍵,暫停計秒鍵
    發表于 12-08 16:48

    89C52單片機控制直流24V電機輸出,數碼管顯示亂碼?

    一電子板,89C52單片機控制直流24V電機輸出,帶93C86讀取用戶數據,能正常運行,但起動10-20秒內不能控制,數碼管顯示亂碼?
    發表于 11-10 19:06

    簡述led數碼管的類型和顯示原理

    LED數碼管是一種常見的顯示設備,廣泛應用于各種電子設備和系統中。本文將介紹LED數碼管的類型和顯示
    的頭像 發表于 08-29 09:11 ?1385次閱讀

    led數碼管的特性參數有哪些

    LED數碼管是一種常用的顯示器件,廣泛應用于各種電子設備中,用于顯示數字、文字和符號。 顯示方式 :LE
    的頭像 發表于 08-29 09:10 ?1141次閱讀

    LED數碼管的連接方式有哪些

    LED數碼管,又稱為LED顯示器或LED顯示屏,是一種由發光二極
    的頭像 發表于 08-29 09:08 ?1518次閱讀

    led數碼管顯示器的顯示方式有幾種,各有什么特點

    LED數碼管顯示器是一種廣泛應用于各種場合的顯示設備,具有顯示效果好、壽命長、能耗低等特點。 靜態顯示
    的頭像 發表于 08-28 18:17 ?2582次閱讀

    led數碼管顯示器分哪兩種結構類型

    LED數碼管顯示器是一種廣泛應用于各種領域的顯示設備,具有高亮度、低功耗、長壽命等優點。根據其結構類型,LED
    的頭像 發表于 08-28 17:55 ?1411次閱讀

    led數碼管顯示器靜態顯示接口是什么樣的

    LED數碼管顯示器是一種廣泛應用于各種電子設備中的顯示設備,其具有亮度高、壽命長、功耗低等優點。在設計LED
    的頭像 發表于 08-28 17:37 ?823次閱讀

    數碼管顯示屏的靜態顯示編程是什么

    數碼管顯示屏的靜態顯示編程是一種簡單的顯示方式,它指的是在任意時刻,數碼管上的所有段(a, b, c
    的頭像 發表于 08-28 17:14 ?682次閱讀

    數碼管顯示屏的作用和功能是什么

    數碼管顯示屏是一種廣泛應用于各種電子設備中的顯示技術,它具有多種作用和功能。 一、數碼管顯示屏的基本概念 1.1
    的頭像 發表于 08-28 17:11 ?1349次閱讀

    7段數碼管共陰共陽如何顯示數字

    7段數碼管是一種常見的顯示設備,用于顯示數字和部分字母。它由7個LED發光二極組成,每個LED
    的頭像 發表于 08-28 16:19 ?2834次閱讀

    七段數碼管怎么判斷共陰共陽

    七段數碼管是一種常見的顯示設備,用于顯示數字和字母。它由七個發光二極LED)組成,每個LED
    的頭像 發表于 08-28 16:17 ?2065次閱讀

    什么是共陽極數碼管怎么判斷

    共陽極數碼管是一種常見的七段顯示器,用于顯示數字和字母。它由七個發光二極LED)組成,分別代表數字0-9的每個段。共陽極
    的頭像 發表于 08-28 16:10 ?1263次閱讀

    LED數碼管顯示方式和驅動方式

    LED數碼管,作為現代電子顯示技術中的重要組成部分,以其高亮度、長壽命和低功耗等特點,廣泛應用于各種數字顯示設備中。本文將詳細闡述LED
    的頭像 發表于 05-30 17:37 ?3187次閱讀

    硬件模塊---數碼管基本原理與實現方法

    如果陽極連在一起,就是共陽極數碼管,陰極連在一起,就是共陰極數碼管。 如上圖,是一個共陰極數碼管,要使數碼管顯示不同的數字,只需點亮對應
    的頭像 發表于 05-11 09:20 ?4671次閱讀
    硬件模塊---<b class='flag-5'>數碼管</b>基本原理與實現方法
    主站蜘蛛池模板: 免费一级黄色录像 | 亚洲人的天堂男人爽爽爽 | 四虎影院网址大全 | 国产一级特黄aaaa大片野外 | 日韩三级中文字幕 | 国产一级特黄在线播放 | 日本三级理论 | 国产理论最新国产精品视频 | 国产在线高清精品二区色五郎 | 午夜视频免费看 | 亚洲午夜视频在线观看 | 国产chinesehd精品酒店 | 黄视频网站入口 | 欧美人与动性视频在线观 | 天天做天天爽天天谢 | 国产aaaaa一级毛片 | 黄色网免费观看 | 操你啦在线播放 | 国产尤物在线视频 | 天天干天天噜 | 免费色片网站 | 日本免费a级片 | 亚洲综合激情六月婷婷在线观看 | 日本特级黄色录像 | 欧美一级免费观看 | 国产真实偷乱视频在线观看 | 国产在线五月综合婷婷 | 深夜偷偷看视频在线观看 | 黄色字幕网| 日处女穴| 欧美有码视频 | 精品视频一区在线观看 | 91福利网winktv| 日本精品三级 | 日韩有色| 免费看黄色的网站 | 成人精品视频一区二区三区 | 人人福利 | 国模精品 | 这里只有精品视频 | 狠狠操狠狠干 |