七段数码管00到60显示输出程序汇编语言

七段数码管00到60显示输出程序汇编语言,第1张

ORG   0000H

     JMP   BEGIN

  ORG 000BH

  LJMP T0INT

  ORG 001BH

  LJMP T1INT

LEDD EQU 30H

LEDC EQU 36H

SECC EQU 37H

TCNT EQU 3AH

     ORG 0030H

;---------------------------------------

TABLE:      ; 共阴极数码管显示代码表

  DB 0FCH ;"0" 00H

  DB 60H ;"1" 01H

  DB 0DAH ;"2" 02H

  DB 0F2H ;"3" 03H

  DB 66H ;"4" 04H

  DB 0B6H ;"5" 05H

  DB 0BEH ;"6" 06H

  DB 0E0H ;"7" 07H

  DB 0FEH ;"8" 08H

  DB 0F6H ;"9" 09H

  DB 0EEH ;"A" 0AH

  DB 3EH ;"B" 0BH

  DB 9CH ;"C" 0CH

  DB 7AH ;"D" 0DH

  DB 9EH ;"E" 0EH

  DB 8EH ;"F" 0FH

  DB 00H ;" " 10H

;          DB    3FH,06H,5BH,4FH,66H ;12345

;          DB    6DH,7DH,07H,7FH,     ;6789

;---------------------------------------

DELAY: 

  MOV   R6,#25

DLY01: 

  MOV   R7,#100

        DJNZ  R7,$

        DJNZ  R6,DLY01

        RET

;---------------------------------------

BEGIN: 

  MOV SP,#5FH

  MOV TMOD,#11H

  MOV TH0,#3CH

  MOV TL0,#0B0H

  MOV TH1,#0F4H

  MOV TL1,#48H

  MOV LEDC,#6

  MOV R0,#LEDD

  CLR A

INIT:

  MOV @R0,A

  INC R0

  DJNZ LEDC,INIT

  SETB ET1

  SETB TR1

  MOV P2,#0

  MOV TCNT,#0

  MOV SECC,#0

  SETB ET0

  SETB EA

  MOV SECC,#00

  LCALL DISSEC

  SETB TR0

  SETB TR1

LOOP:

  SJMP $

;---------------------------------------

T1INT:

  PUSH ACC

  CLR TR1

  MOV TH1,#0F4H

  MOV TL1,#48H

  SETB TR1

  MOV DPTR,#TABLE

  MOV R0,#LEDD

  MOV A,LEDC

T1INT0:

  JNZ T1INT1

  MOV P2,#01H

  MOV A,@R0

  MOVC A,@A+DPTR

  CPL A

  MOV P0,A

  SJMP T1INTD

T1INT1:

  MOV P2,#02H

  INC R0

  MOV A,@R0

  MOVC A,@A+DPTR

  CPL A

  MOV P0,A

T1INTD:

  INC LEDC

  MOV A,LEDC

  CJNE A,#2,T1INT6

T1INT6:

  JC T1INTE

  MOV LEDC,#0

T1INTE:

  POP ACC

  RETI

;---------------------------------------

HBCD:

  MOV B,#10

  DIV AB

  SWAP A

  ORL A,B

  RET

;---------------------------------------

T0INT:

  PUSH ACC

  CLR TR0

  MOV TH0,#3CH

  MOV TL0,#0B0H

  SETB TR0

  INC TCNT

  MOV A,TCNT

  CJNE A,#20,T0INT1

T0INT1:

  JC T0INTE

  MOV TCNT,#0

  MOV A,SECC

  INC A

  MOV SECC,A

  CJNE A,#61, T0INT2

  MOV SECC,#00

T0INT2:

  LCALL DISSEC

T0INTE:

  POP ACC

  RETI

;---------------------------------------

DISSEC:

  MOV A,SECC

  LCALL HBCD

  PUSH ACC

  ANL A,#0FH

  MOV 30H,A

  POP ACC

  SWAP A

  ANL A,#0FH

  MOV 31H,A

  RET

;---------------------------------------

        END

C语言写LED数码管显示程序与汇编是一致的,将显示的基本内容定义在一个数组中就可以了,比如:

#include<reg51h>

#define uchar unsigned char

uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};

sbit rstkey=P2^2;

sbit speaker=P2^0;

void delay()//延时约400毫秒

{

uchar i,j;

for(i=0;i<200;i++)

for(j=0;j<250;j++);

}

main()

{

uchar i,key;

P2=0xff;

while(1)

{

i=0;

P1=table[i];

while(1)

{

key=P3;

if(key!=0)break;

}

switch(key)

{

case 0x01:i=1;break;

case 0x02:i=2;break;

case 0x04:i=3;break;

case 0x08:i=4;break;

case 0x10:i=5;break;

case 0x20:i=6;break;

case 0x40:i=7;break;

case 0x80:i=8;break;

default:break;

}

P1=table[i];//显示按下抢答器的号

P0=key;//显示按下键号的LED

while(1)

{

if(rstkey==0)break;//主持人按下复位键则重新开始

speaker=~speaker;//否则蜂鸣器报警

delay();

}

}

}

1

int main()

{

    char i;                 // 改为有符号i,否则下面循环出错

    while(1)

        for(i = 9; i >= 0; i--) // 显示9-0,共10次 

        {

            SEG=TAB[i];

            delay(500);

        }

}

2

int main()

{

    char i;                 // 改为有符号i

    while(1)

    {

        for(i = 0; i < 10; i++) // 显示0-9,共10次 

        {

            SEG=TAB[i];

            delay(500);

        }

        for(i = 9; i >= 0; i--) // 显示9-0,共10次这种写法,9和0的显示时间是其他数字的2倍要显示时间也一样可以改为for(i = 8; i > 0; i--),循环8次 

        {

            SEG=TAB[i];

            delay(500);

        }

    }

}

希望能看出细节差别,望采纳!

数码管每一段相当于二极管,连接PLC输出点,要显示数字几,就将对应段点亮,几输入端有就输入。

plc七段数码管显示梯形图是由人为规定的,都是这个规定。然后就好弄了,如果想显示零这个数那么就点亮A,B,C,D,E,F这几个灯管,灭掉G这个灯管,如果想显示1这个数那就点亮B和C这两个灯管其余的灭掉,别的数以此类推。

对应图如下

扩展资料:

七段数码管的控制

七段数码管分为共阳极及共阴极,共阳极的七段数码管的正极(或阳极)为八个发光二极管的共有正极,其他接点为独立发光二极管的负极(或阴极),使用者只需把正极接电,不同的负极接地就能控制七段数码管显示不同的数字。共阴极的七段数码管与共阳极的只是接驳方法相反而已。

七段数码管已可以特定的集成电路控制,只要向集成电路输入4-bit的二进制数字讯号就能控制七段数码管显示;市面上更有8421-BCD代码直接转为七划管控制电平的IC,方便配合单片机使用。

参考资料:

百度百科-七段数码管

以上就是关于七段数码管00到60显示输出程序汇编语言全部的内容,包括:七段数码管00到60显示输出程序汇编语言、用C语言怎么编写7段LED的显示程序、求程序猿!!!七段led数码管从9开始显示减到0等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9307633.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存