LED七段显示器实验
一、实验目的
1. 了解七段显示器的显示原理。
2. 段码决定显示内容。
3. 位码决定哪个显示器亮。
二、实验内容
1. 循环显示012,并且不断的向右循环移动数字,如012…-2…01-12…0,在实验台上点亮的三个七段显示器需位置相阾,剩余的三个七段显示器均不显示任何内容。
2. 了解程序的循环结构,并且能在理解的基础上,自己设计新的循环显示程序。
三、实验提示
在实验台上有6个LED七段显示器,所有的线路已经连接完备。对应的端口地址为220H到227H,其中,220H端口为位码锁存器,决定哪个显示器亮,bit[0]~bit[5]依次对应与实验台上从左到右的6个七段显示器,即若bit[0]=1,则左1号七段显示器亮,若bit[0]=0,则左一号七段显示器灭;若bit[5]=1,则实验台上最右边一个七段显示器亮,若bit[5]=0,则实验台上最右边一个七段显示器灭。
例:MOV AL, 位码;决定哪一个或哪几个显示器亮
MOV DX, 220H
OUT DX, AL
这三句代码决定某一个或某几个显示器亮。
位码表如表3-1所示:
位码 |
01H |
02H |
04H |
08H |
10H |
20H |
显示 (从左到右) |
第一个 |
第二个 |
第三个 |
第四个 |
第五个 |
第六个 |
表3-1 七段显示器位码表
MOV AL, 段码;决定显示器要显示的内容
MOV DX, 221H
OUT DX, AL
这三句代码决定了左边第一个显示器的显示内容。
七段显示器的段编号如图3-1所示:
图3-1七段显示器段编号
段码的bit[0]~bit[6]分别对应与七段显示器的a, b, c, d, e, f, g段,即若bit[0]=1,则七段显示器中的a段亮;若bit[0]=0,则七段显示器中的a段不亮。段码表如表3-2所示:
代码 |
3FH |
06H |
5BH |
4FH |
66H |
6DH |
7DH |
07H |
显示内容 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
代码 |
7FH |
6FH |
77H |
7CH |
39H |
5EH |
79H |
71H |
显示内容 |
8 |
9 |
a |
b |
c |
d |
e |
f |
表3-2 七段显示器段码表
四、程序流程图
五、参考程序
DATA SEGMENT
NUM DB 3FH, 06H, 5BH, 0H, 0H, 0H
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
START: MOV AX, DATA
MOV DS, AX
MOV AL, 3FH
MOV DX, 208H
OUT DX, AL
LEA BX, NUM
LOOP1:
MOV CX, 200H
LOOP4: LOOP LOOP4 ;延时显示
MOV AL, 0
MOV AH, 0
INC DX
CMP DX, 20FH
JZ LOOP2
JMP LOOP3
LOOP2: MOV DX, 209H
CMP AL, 6H
JZ LOOP1
LOOP3: XLAT
OUT DX, AL
INC DX
INC AH
MOV AL, AH
CMP DX, 20FH
JZ LOOP2
CMP AL, 6H
JZ LOOP1
JMP LOOP3
CODE ENDS
END START
六、实验结果
在七段显示器中循环显示012,并且不断的向右循环移动数字: