关闭

数码管显示

4243人阅读 评论(0) 收藏 举报

数码管显示

 

最近因为对突然对电子感兴趣,前几天在路过电子商城时买了一个数码管。因为以前总是纸上谈兵,根本没实验过,连数码见都没见过,所以开始觉得将这块数码管显示出来是非常具有挑战性的工作。

 

今天正好有空,拿来了我的数码管,并在网上看了一些资料,才发现并不是想象中的那么难,其实更准确的说是太简单了。不到半天就将完成了程序的编写。下面是这次编程的总结。

 

先来了解一下数码管的构造,数码管分共阳极和共阴极两种。所谓共阳极就是所有二极管的阳极是连在一起的,而阴极则不连;共阴极数码管正好相反:它的所有阴极相连。这两种数码管的原理图如下:

下面是个数码管的实物图,共阳极数的和共阴极的外表一样:

在背面上下两排各有五个脚,每排中间脚为共阳/阴脚。每个脚对应的二极管如下图:

 

 

因为我买的数码管是共阴极的,所有下面我以共阴极数码管来说说如何显示。我使用了并行端口的数据寄存器来控制各二极管。并行端口是一个25针端口(如下图)



它的第2~9针对应着数据寄存器的07位,数据寄存器的地址为:0X378。并口的针1825为接地信号。所以我将并口与我的数码管按下表连接起来:

并口针号

数码管管脚号

2

G

3

F

4

A

5

B

6

E

7

D

8

C

9

CP

18(接地)

共极

18(接地)

共极

 

基于这样的连接,我写了一个循环100次显示09的程序,该程序在MASM6.11下编译,在DOS下运行成功,源代码如下:

.386P

 

STACK SEGMENT USE16

      DB 256 DUP (0)

      STACKLEN = $

STACK ENDS

 

CODE SEGMENT USE16

     ASSUME SS:STACK, CS:CODE

START:

     MOV AX, STACK

     MOV SS, AX

     MOV SP, STACKLEN

 

     MOV BX, 100

 

NEXT:

     MOV DX, 378H

     MOV AL, 01111110B ;0

     OUT DX, AL

     CALL MYWAIT

 

     MOV DX, 378H

     MOV AL, 11001000B ;1

     OUT DX, AL

 

     CALL MYWAIT

 

     MOV DX, 378H

     MOV AL, 00111101B ;2

     OUT DX, AL

 

     CALL MYWAIT

 

     MOV DX, 378H

     MOV AL, 11101101B ;3

     OUT DX, AL

 

     CALL MYWAIT

 

     MOV DX, 378H

     MOV AL, 01001011B ;4

     OUT DX, AL

 

     CALL MYWAIT

 

     MOV DX, 378H

     MOV AL, 11100111B ;5

     OUT DX, AL

 

     CALL MYWAIT

 

     MOV DX, 378H

     MOV AL, 01110111B ;6

     OUT DX, AL

 

     CALL MYWAIT

 

     MOV DX, 378H

     MOV AL, 11001100B ;7

     OUT DX, AL

 

     CALL MYWAIT

 

     MOV DX, 378H

     MOV AL, 01111111B ;8

     OUT DX, AL

 

     CALL MYWAIT

 

     MOV DX, 378H

     MOV AL, 01101111B ;9

     OUT DX, AL

 

     CALL MYWAIT

 

     DEC BX

     JNZ NEXT

 

     MOV AH, 4CH

     INT 21H

 

MYWAIT PROC NEAR

     PUSH AX

     PUSH CX

 

     MOV AX, 1FFH

 

NEXTWAIT:

     MOV CX, 0FFFFH

     LOOP $

 

     DEC AX

     JNZ NEXTWAIT

 

     POP CX

     POP AX

     RET

MYWAIT ENDP

 

CODE ENDS

     END START

 

 

 

 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:524919次
    • 积分:6523
    • 等级:
    • 排名:第3916名
    • 原创:90篇
    • 转载:2篇
    • 译文:44篇
    • 评论:141条
    文章分类
    最新评论