找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1307|回复: 7
收起左侧

TM1650汇编语言测试成功

  [复制链接]
ID:72088 发表于 2025-9-27 18:14 | 显示全部楼层 |阅读模式
以前用TM1637很顺利,以为用TM1650也是一样简单,毕竟都是一个公司的产品,前者共阳数码管,后者是共阴数码管。
谁知道区别还是很大的,TM1650不能连续写4字节,每字节都要:”地址+字节“的方式写,
现在程序通过了测试,发出来共同学习。


        CLK         EQU P0.2   ;TM1650的CLK
        DIO         EQU P0.1   ;TM1650的DIO


        ORG  00H
        AJMP  MAIN        ORG  100H
;===========================================
MAIN:
        MOV        SP,        #60h
        LCALL Srt
    MOV A,#48H      ;设置48H
    LCALL Writebyte
    MOV A,#00110001B;设置亮度
    LCALL Writebyte
        LCALL Stop


        MOV 30H,#0
        MOV 31H,#1
        MOV 32H,#2
        MOV 33H,#3


WAIT:
        LCALL DISP                ;显示程序
        JMP  WAIT
;=================TM1650显示======================
DISP:
        MOV DPTR,#TAB
        LCALL  Srt
        MOV A,#68H   
        LCALL Writebyte
        MOV A,33H
        LCALL QUBIAO
        LCALL Stop


        LCALL  Srt
        MOV A,#6AH   
        LCALL Writebyte
        MOV A,32H
        LCALL QUBIAO
        LCALL Stop


        LCALL  Srt
        MOV A,#6CH  ;地址
        LCALL Writebyte
        MOV A,31H
        LCALL QUBIAO
        LCALL Stop


        LCALL  Srt
        MOV A,#6EH  
        LCALL Writebyte               
        MOV A,30H               
        LCALL QUBIAO
        LCALL Stop       
        RET


QUBIAO:       
        MOVC A,@A+DPTR                               
        LCALL Writebyte
        RET       
;--------发送一字节数据-------------
Writebyte:
        MOV R6,#8
WB1:CLR CLK
        RLC A       
        MOV DIO,C                                
        SETB CLK  
        DJNZ R6,WB1;
        CLR CLK     
        MOV R6,#03  
ACK:DEC R6      ;
        MOV A,R6   
        JZ WB2     ;如果A为0就转移,说明无ACK
        JB DIO,ACK ;位为1转移
WB2:SETB CLK      
        RET         


;--------开始信号------------
Srt:SETB DIO
        SETB CLK                                                            
        CLR DIO                                             
        CLR CLK
        RET         
;--------结束信号------------
Stop:CLR CLK                                      
        CLR DIO                                                       
        SETB CLK                                                       
        SETB DIO            
        RET
                  
;================TM1650字形表=================
TAB:
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
DB 00H,40H,41H,42H        ;不显示,负号
;=============================================
;=============================================
END


评分

参与人数 1黑币 +30 收起 理由
wpppmlah + 30

查看全部评分

回复

使用道具 举报

ID:88256 发表于 2025-9-27 19:21 | 显示全部楼层
虽然用不上,还是得赞一下。
回复

使用道具 举报

ID:76044 发表于 2025-9-29 09:22 | 显示全部楼层
汇编我的最爱,回头试试,感谢共享
回复

使用道具 举报

ID:468878 发表于 2025-9-29 14:34 | 显示全部楼层
还在坚守汇编,不容易!十几年也是用汇编。扭转了很久,还是换成了C。换C的时候非常别扭,后来慢慢习惯了。何况C主要是靠抄代码,哈哈。
回复

使用道具 举报

ID:16255 发表于 2025-9-29 15:51 | 显示全部楼层
rsx9583 发表于 2025-9-29 14:34
还在坚守汇编,不容易!十几年也是用汇编。扭转了很久,还是换成了C。换C的时候非常别扭,后来慢慢习惯了。 ...

刚开始学51单片机时,就是用的汇编,那时还像模像样地写过几个程序。
后来,接触了一下C语言,相比汇编语言,更通俗易懂,后面就一直用C语言写了。
不知过了多少年,重新打开当时自己写过的汇编程序,居然看不懂了……
回复

使用道具 举报

ID:342822 发表于 2025-9-29 21:35 | 显示全部楼层
AJMP  MAIN        ORG  100H?????
回复

使用道具 举报

ID:164988 发表于 2026-3-10 12:16 | 显示全部楼层
taotie 发表于 2025-9-29 21:35
AJMP  MAIN        ORG  100H?????

AJMP MAIN  ORG  100H   是一条无条件转移指令,单片机上电复位后是从00H地址单元开始读取并执行第一条程序的,而本程序的主程序是存放在100H起始的地址单元,也就是上电复位后首先执行AJMP MAIN  ORG  100H系统跳转到100H开始运行主程序。   
回复

使用道具 举报

ID:140644 发表于 2026-4-8 13:05 | 显示全部楼层
DJNZ LJMP AJMP
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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