找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2568|回复: 5
收起左侧

求大佬告知怎么把共阳极数码管秒表汇编语言程序改成共阴极汇编语言,改哪些地方,...

[复制链接]
ID:535873 发表于 2019-5-14 23:58 | 显示全部楼层 |阅读模式
300黑币
本帖最后由 yulexuan2019 于 2019-5-15 00:42 编辑

求大佬帮忙改下程序,把2个一位共阳极数码管秒表程序改成共阴极汇编语言程序,求教,实在不知道改哪里,改了半天也不对,求详细更改地方!程序功能是00-99秒表,怎么改成共阴极的。图上上面第一个按键控制开始暂停,第二个按键控制清零!
仿真图和程序如下:

ORG  0000H
        AJMP MAIN
        ORG  0003H
        AJMP X0_INT
        ORG  000BH
        AJMP T0_INT
        ORG  0013H
        AJMP X1_INT
MAIN:
        MOV  TMOD,#01H            ;T0定时方式1
        MOV  TH0, #(65536-50000) / 256    ;50ms@12MHz
        MOV  TL0, #(65536-50000) MOD 256;
        SETB TR0
        SETB ET0                 ;开启定时中断
        SETB EX0
        SETB EX1
        SETB EA                  ;定时器初始化结束,下面循环显示即可
        MOV  R1, #99H            ;0~99计数.
        MOV  R7, #1              ;50ms计数.
        MOV  P0, #0C0H
        MOV  P2, #0C0H
LOOP:
        SJMP LOOP
;-----------------------------------------------------------
DELAY:                           ;延时子程序.
AA4:    MOV  R4,  #0
        DJNZ R4,  $
        DJNZ R4,  $
        RET
;-----------------------------------------------------------
X0_INT:                          ;启动/停止
        CPL  F0
        RETI
;-----------------------------------------------------------
X1_INT:                          ;清零
        MOV  R1, #0
        MOV  P0, #0C0H
        MOV  P2, #0C0H
        RETI
;-----------------------------------------------------------
T0_INT:                          ;50ms中断执行一次.
        MOV TL0, #(65536-50000) MOD 256;
        MOV TH0, #(65536-50000) / 256    ;50ms@12MHz
        DJNZ R7, T0_END          ;中断不到20次.
        MOV  R7, #20
        JNB  F0, T0_END
        MOV  A,  R1
        ADD  A,  #1
        DA   A
        MOV  R1, A
        ANL  A,  #0FH
        MOV  DPTR, #TAB
        MOVC A, @A+DPTR          ;查出段码
        MOV  P2, A
        MOV  A,  R1
        SWAP A
        ANL  A,  #0FH
        MOVC A, @A+DPTR          ;查出段码
        MOV  P0, A               ;显示十位数.
T0_END:
        RETI
;-----------------------------------------------------------
TAB:
        DB   0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H,80H, 90H
        END




WH`_G0G_~VC6M7T9SE$VFWR.png
回复

使用道具 举报

ID:535873 发表于 2019-5-15 11:05 | 显示全部楼层
STM32指下有亁坤 发表于 2019-5-15 00:39
@A+DPTR    ;查出段码 这里能不能将取的值取反,如果是C语言编的,就是在这个地方取一下反就好了,另外位码 ...

能给出具体更改吗?
回复

使用道具 举报

ID:537018 发表于 2019-5-16 18:18 | 显示全部楼层
把段码取反就可以
回复

使用道具 举报

ID:149144 发表于 2019-5-16 22:14 | 显示全部楼层
数码管先换成共阴的,当然公共端要接地。其次是程序,改一下这个就行啦
TAB:
        //DB   0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H,80H, 90H
                DB 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
        END

看附件吧

51.rar

21.61 KB, 下载次数: 20

回复

使用道具 举报

ID:155507 发表于 2019-5-16 23:14 | 显示全部楼层


       MOV  DPTR, #TAB
        MOVC A, @A+DPTR          ;查出段码
        CPL A  ;段码取反
        MOV  P2, A


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表