日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

8255A控制八位七段LED数码管

發(fā)布時間:2024/3/12 84 豆豆
生活随笔 收集整理的這篇文章主要介紹了 8255A控制八位七段LED数码管 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

微機實驗六

文章目錄

  • 微機實驗六
  • 前言
  • 八位七段LED數(shù)碼管
    • 驅(qū)動方式
      • 靜態(tài)顯示
      • 動態(tài)顯示
    • 實驗所用七段數(shù)碼管
      • 相關(guān)參數(shù)
      • 字形代碼表
      • 實驗連線步驟:
    • 匯編程序(.ASM)
      • 程序初始化
      • 數(shù)據(jù)段定義
      • 代碼段定義
    • 實驗流程圖:
  • 總結(jié)


前言

本博客僅做學習筆記,如有侵權(quán),聯(lián)系后即刻更改

科普:八位七段數(shù)碼管


八位七段LED數(shù)碼管

驅(qū)動方式

LED數(shù)碼管要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字
動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。

靜態(tài)顯示

靜態(tài)驅(qū)動也稱直流驅(qū)動。

靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機的I/O端口進行驅(qū)動,或者使用如BCD碼二-十進制譯碼器譯碼進行驅(qū)動。

靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多

如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅(qū)動,要知道一個89S51單片機可用的I/O端口才32個,實際應用時必須增加譯碼驅(qū)動器進行驅(qū)動,增加了硬件電路的復雜性。

動態(tài)顯示

LED數(shù)碼管動態(tài)顯示接口是單片機中應用最為廣泛的一種顯示方式之一

動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,
另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,單片機對位選通COM端電路的控制,
所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。
通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。

在輪流顯示過程中,每位數(shù)碼管的點亮時間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,

實驗所用七段數(shù)碼管

相關(guān)參數(shù)

七段數(shù)碼管為共陰型

段碼采用同相驅(qū)動

輸入端加高電平,選中的數(shù)碼管亮

位碼加反相驅(qū)動器,位碼輸入端高電平選中。

字形代碼表

實驗連線步驟:

(1): 關(guān)閉實驗箱電源,按照下面原理圖連線;
(2): 將8255的A0,A1,RST 接至 擴展總線區(qū)A0,A1,RESET;
(3): 將8255的/RD,/WR 接至 擴展總線區(qū)/IOR,/IOW;
(4): 將8255的/CS 接至 I/O地址區(qū)/220H—22FH;
(5): 將8255的PA7~PA0 接至 七段數(shù)碼管顯示區(qū)DP~A;
(6): 將8255的PB7~PB0 接至 七段數(shù)碼管顯示區(qū)S7~S0;

匯編程序(.ASM)

程序初始化

;使用8255連接7段數(shù)碼管顯示器 8255A口連接段碼,h-a插孔連接PA7-PA0;B口連接位碼,s7-s0插孔連接PB7-PB0。 .model small .486

數(shù)據(jù)段定義

DATA SEGMENT io_address EQU 220H LEDCODE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH BUF DW ? DATA ENDS

代碼段定義

code segment assume cs:code,ds:DATA start: cli ;全稱為Clear Interupt,該指令的作用是禁止中斷發(fā)生mov ax, data mov ds,ax

設 置 8255工作方式 0

mov al, 80hmov dx, 223hout dx, al

設置顯示緩沖區(qū)首址

TTT: mov ch,10lea si, LEDCODE ;lea指令獲取偏移地址

設置顯示初始位置

tt1: mov bl,[si]and bl, 7fhMOV cl,01H

調(diào)用顯示子程序

lll: CALL DISP ;call是調(diào)用子程序指令。;顯示到最左邊嗎?jnc lll ;jnc指令用于對進位位進行判斷從而決定程序走向;JNZ LLL ;條件轉(zhuǎn)移指令,結(jié)果不為零(或不相等)則轉(zhuǎn)移。;指針增 1inc si;全部顯示完畢嗎?dec ch ;DEC是減1指令jnz tt1 ;條件轉(zhuǎn)移指令,結(jié)果不為零(或不相等)則轉(zhuǎn)移。JMP TTT ;jmp為無條件轉(zhuǎn)移,可以只修改IP,也可以同時修改CS和IP

proc是定義子程序的偽指令,位置在子程序的開始處,它和endp分別表示子程序定義的開始和結(jié)束兩者必須成對出現(xiàn)。

DISP PROCpush dx push ax mov al,bl lp1: mov dx,IO_ADDRESS out dx,al mov al,cl E: mov dx,IO_ADDRESSinc dx out dx,al ;將AL的值寫入dx端口call delaysal cl,1 ;SAL(算術(shù)左移)和SAR(算術(shù)右移)pop ax POP DXRET ;ret指令的內(nèi)部操作是:棧頂字單元出棧,其值賦給IP寄存器。即實現(xiàn)了一個程序的轉(zhuǎn)移,將棧頂字單元保存的偏移地址作為下一條指令的偏移地址。DISP ENDPDELAY PROCPUSH CXPUSH DX kk2: MOV DX,50 kk1: MOV CX,800Hkk: LOOP KKdec dxjnz kk1 ;;條件轉(zhuǎn)移指令,結(jié)果不為零(或不相等)則轉(zhuǎn)移。pop dxPOP CXRET DELAY ENDPCODE ends end start

實驗流程圖:

總結(jié)

小小勵志

有些事你現(xiàn)在不做,一輩子都不會做了。
如果你想做一件事,全世界都會為你讓路。
《搭車去柏林》

總結(jié)

以上是生活随笔為你收集整理的8255A控制八位七段LED数码管的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。