汇编语言共阴极8位数码管计数 程序如下 ​

汇编语言共阴极8位数码管计数 程序如下 ​,第1张

你的仿真图中的两位数码的阴极同时接地槐纤了,就会同时显示11,22,33,44........

必须要采用两位动态扫描的方式来显示才行的。

所以,你的仿真图和程序铅含仿都要修改。

仿真图如下:

程序如下:

DAT0 EQU 30H30H地址命名为DAT0

ORG  0000H

LJMP MAIN 主程序入口

ORG  0003H

LJMP EXINT0 中断0子程序

MAIN:

MOV  SP,#6FH设定堆栈地址

SETB IT0T0采用负缘触发信号

SETB EX0开中断0

SETB EA开中断总开关

MOV  DAT0,#0DAT0地址老返赋初始值0

LOOP:

CALL SEG7

SJMP LOOP循环等待

EXINT0:

MOV A,DAT0

ADD A,#1按十进制数加1

DA  A

MOV DAT0,A

RETI

SEG7: 显示子程序

MOV  DPTR,#DISPLAYTAB

MOV  A,DAT0

ANL  A,#0F0H取十位数

SWAP A

MOVC A,@A+DPTR

MOV  P0,#0FEH

MOV  P2,A   显示十位

ACALL DELAY 显示一位要延时

MOV  A,DAT0

ANL  A,#0FH

MOVC A,@A+DPTR

MOV  P0,#0FDH

MOV  P2,A   显示个位

ACALL DELAY 显示一位要延时

RET

DELAY: 延时子程序

MOV R7,#50

DER7:

MOV R6,#100

DJNZ R6,$

DJNZ R7,DER7

RET

DISPLAYTAB:

DB 3FH0 共阴

DB 06H 1

DB 5BH 2

DB 4FH 3

DB 66H 4

DB 6DH 5

DB 7DH 6

DB 07H 7

DB 7FH 8

DB 6FH 9

END

本程序在MASMPlus 1.2集成环境下通过编译,经过调试,运行正确。

Code Segment

Assume CS:Code,DS:Code

Press_Key db7,13,10,10,'The complated. Press any key to exit...$'

------拿侍搏-------------------------------

Start: push cs

pop ds

push cs

pop es

xor cx,cx 计数器清零

Input: mov ah,1

int 21h

cmp al,'$'

jz Exit_Proc

cmp al,'0'

jb Input

cmp al,'9'

ja Input

inc cx 计数

jmp Input

-----------------------------消祥-------谈乱-

Exit_Proc: lea dx,Press_Key 提示 *** 作完成,按任意键结束程序

mov ah,9

int 21h

mov ah,1

int 21h

mov ah,4ch 结束程序

int 21h

Code ENDS

END Start 编译到此结束

1.以查询方式工作,每计满100个脉冲,则取反P1.0口线状态。

    ORG   0000H

    MOV   TMOD, #06H

    MOV  伍野 TH0, #156

    MOV   TL0, #156

    SETB  TR0

LP: JNB   TF0, LP

    CPL   P1.0

    SJMP  LP

    

END

2.以中断方式工作,每计腊橘耐满200个脉冲,则取反轮春P1.0口线状态。

    ORG   0000H

    SJMP  START

    ORG   000BH

    CPL   P1.0

    RETI

START:

    MOV   TMOD, #06H

    MOV   TH0, #56

    MOV   TL0, #56

    SETB  TR0

    MOV   IE, #82H

    SJMP  $

    

END


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

原文地址: http://outofmemory.cn/yw/12337329.html

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

发表评论

登录后才能评论

评论列表(0条)

保存