我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 284|回复: 31

[技术文章] STC90C516RD+驱动IIC接口的TM1650四位显示0、1、2、3

  [复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:99
  • 打卡月天数:0
  • 打卡总奖励:320
  • 最近打卡:2026-06-10 14:36:35

12

主题

582

回帖

1002

积分

二级逆天

积分
1002

终身成就奖特殊贡献奖原创先锋奖

发表于 2026-8-24 23:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
数码管来源链接:https://item.taobao.com/item.htm ... le.1.23962e8d7ndYSi
image.png
//////////汇编代码//////////

;定义引脚:TM1650时钟线CLK接P3.7,数据线DIO接P3.6

;定义引脚:TM1650时钟线CLK接P3.7,数据线DIO接P3.6
CLK         EQU P3.7   ;TM1650的CLK时钟引脚,文本替换全局生效
DIO         EQU P3.6   ;TM1650的DIO数据引脚,文本替换全局生效

        ORG 0000H        ;告诉编译器,后续代码从0000H地址开始存放
        LJMP  MAIN       ;执行这段代码后跳转到MAIN处执行
        
      
;===========================================
        ORG  30H         ;MAIN起始地址0030H,避开工作组0-3(00H-1FH)、可位寻址区(20H-2FH)
MAIN:
        MOV        SP,        #60h  ;设置堆栈指针SP=60H,堆栈从61H向上生长最,默认是07H(08H开始)且不能超过7FH(00H-7FH是片内RAM)
        LCALL TM1650_Start          ;1:调用Srt子程序,发送TM1650通信起始信号
        MOV A,#48H                      ;2:TM1650系统设置命令0x48送入累加器A
    LCALL TM1650_Writebyte          ;3:调用Writebyte,向TM1650发送0x48命令
    MOV A,#00010001B                ;4:亮度设置参数,bit0?bit2控制亮度
    LCALL TM1650_Writebyte          ;4:调用Writebyte,发送亮度配置参数
        LCALL TM1650_Stop               ;5:调用Stop子程序,发送通信停止信号,结束初始化命令
        MOV 30H,#0                  ;片内RAM30H单元赋值0,存放第4位显示数字
        MOV 31H,#1                  ;片内RAM31H单元赋值1,存放第3位显示数字
        MOV 32H,#2                  ;片内RAM32H单元赋值2,存放第2位显示数字
        MOV 33H,#3                  ;片内RAM33H单元赋值3,存放第1位显示数字
WAIT:                                                                ;5:调用DISP显示子程序,刷新4位数码管
                LCALL DISP                  
        SJMP  WAIT                ;相对跳转,原地循环,不停刷新显示
;=================TM1650显示子程序======================
DISP:
        MOV DPTR,#TAB             ;数据指针DPTR指向七段段码表TAB首地址
        LCALL  TM1650_Start                ;发送通信起始信号,准备写第1位显存
        MOV A,#68H                ;TM1650第1位数码管显存地址0x68送入A
        LCALL TM1650_Writebyte           ;发送显存地址0x68
        MOV A,33H                 ;取出33H单元待显示数字(数字3)送入A
        LCALL QUBIAO              ;调用QUBIAO查表,取出段码并发送给TM1650
        LCALL TM1650_Stop               ;发送停止信号,结束第1位写入

        LCALL  TM1650_Start                ;发送通信起始信号,准备写第2位显存
        MOV A,#6AH                ;TM1650第2位数码管显存地址0x6AH送入A
        LCALL TM1650_Writebyte          ;发送显存地址0x6A
        MOV A,32H                 ;取出32H单元待显示数字(数字2)送入A
        LCALL QUBIAO              ;查表取出段码并发送
        LCALL TM1650_Stop               ;发送停止信号,结束第2位写入

        LCALL  TM1650_Start               ;发送通信起始信号,准备写第3位显存
        MOV A,#6CH                ;TM1650第3位数码管显存地址0x6CH送入A
        LCALL TM1650_Writebyte          ;发送显存地址0x6C
        MOV A,31H                 ;取出31H单元待显示数字(数字1)送入A
        LCALL QUBIAO              ;查表取出段码并发送
        LCALL TM1650_Stop               ;发送停止信号,结束第3位写入

        LCALL  TM1650_Start               ;发送通信起始信号,准备写第4位显存
        MOV A,#6EH                ;TM1650第4位数码管显存地址0x6EH送入A
        LCALL TM1650_Writebyte           ;发送显存地址0x6E
        MOV A,30H                 ;取出30H单元待显示数字(数字0)送入A
        LCALL QUBIAO              ;查表取出段码并发送
        LCALL TM1650_Stop                ;发送停止信号,结束第4位写入

        RET                       ;子程序返回,回到WAIT循环

QUBIAO:                           ;查表取七段段码子程序
        MOVC A,@A+DPTR          ;ROM查表:A为偏移,DPTR为表基址,取出对应七段段码到A
        LCALL TM1650_Writebyte         ;把查表得到的段码发送给TM1650
        RET                     ;子程序返回

;--------发送一字节数据子程序-------------
TM1650_Writebyte:
        MOV R6,#8               ;R6=8,一个字节共8bit,循环发送8次
WB1:
        CLR CLK                 ;CLK时钟拉低,准备输出bit
        RLC A                   ;累加器A带进位左移1位,最高位移入进位标志C
        MOV DIO,C               ;把进位C的数据输出到DIO数据引脚
        SETB CLK                ;CLK拉高,TM1650在上升沿采样DIO电平
        DJNZ R6,WB1             ;R6自减1,不为0则跳回WB1,继续发送下一位
        CLR CLK                 ;8bit发送完成,拉低时钟
        MOV R6,#03              ;R6赋值3,模拟I2C应答等待(TM1650无应答,此段无效)
ACK:
        DEC R6                  ;R6减1
        MOV A,R6                ;R6送入A,判断是否计数到0
        JZ WB2                  ;如果R6=0,跳转到WB2,退出应答等待
        JB DIO,ACK              ;如果DIO为高电平,继续循环等待应答(TM1650不会拉低DIO)
WB2:
        SETB CLK                ;拉高时钟
        RET                     ;字节发送完成,子程序返回

;--------起始信号Srt子程序------------
TM1650_Start:
SETB DIO                      ;DIO数据线置1,总线空闲状态
SETB CLK                      ;CLK时钟线置1,总线空闲状态
CLR DIO                       ;CLK高电平时,DIO拉低,产生下降沿,TM1650通信起始条件
CLR CLK                       ;拉低CLK时钟,准备后续bit传输
RET                           ;子程序返回

;--------停止信号Stop子程序------------
TM1650_Stop:
CLR CLK                       ;CLK时钟拉低
CLR DIO                       ;DIO数据线拉低
SETB CLK                      ;CLK时钟拉高
SETB DIO                      ;CLK为高,DIO拉高,产生上升沿,TM1650通信停止条件
RET                           ;子程序返回
                  
;================TM1650共阴极七段数码管字形表=================
TAB:
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H  ;0~F的段码
;=============================================
END                         ;汇编程序结束标记




回复

使用道具 举报

  • 打卡等级:以坛为家III
  • 打卡总天数:643
  • 打卡月天数:23
  • 打卡总奖励:2709
  • 最近打卡:2026-09-24 19:19:54

74

主题

1万

回帖

1万

积分

三级逆天

积分
10265

终身成就奖特殊贡献奖原创先锋奖社区居民灌水天才奖优秀斑竹奖宣传大使奖忠实会员最爱沙发社区劳模

QQ
发表于 2026-8-25 06:42 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:以坛为家III
  • 打卡总天数:545
  • 打卡月天数:24
  • 打卡总奖励:3529
  • 最近打卡:2026-09-24 09:00:00

44

主题

2179

回帖

4601

积分

1元学习Allegro(230718)

积分
4601

终身成就奖

发表于 2026-8-25 07:19 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:以坛为家III
  • 打卡总天数:602
  • 打卡月天数:20
  • 打卡总奖励:1943
  • 最近打卡:2026-09-24 09:44:12

1

主题

1277

回帖

3584

积分

二级逆天

积分
3584

终身成就奖特殊贡献奖

发表于 2026-8-25 08:08 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:以坛为家III
  • 打卡总天数:534
  • 打卡月天数:19
  • 打卡总奖励:1801
  • 最近打卡:2026-09-24 09:31:00

0

主题

660

回帖

4102

积分

二级逆天

积分
4102

社区居民终身成就奖特殊贡献奖

QQ
发表于 2026-8-25 08:13 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:以坛为家III
  • 打卡总天数:612
  • 打卡月天数:20
  • 打卡总奖励:2190
  • 最近打卡:2026-09-24 09:02:09

122

主题

3201

回帖

1万

积分

三级逆天

积分
16522

终身成就奖特殊贡献奖社区居民忠实会员

QQ
发表于 2026-8-25 08:14 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:以坛为家III
  • 打卡总天数:472
  • 打卡月天数:17
  • 打卡总奖励:1610
  • 最近打卡:2026-09-24 09:13:12

13

主题

1083

回帖

2777

积分

二级逆天

积分
2777

终身成就奖特殊贡献奖

QQ
发表于 2026-8-25 08:37 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:以坛为家III
  • 打卡总天数:551
  • 打卡月天数:10
  • 打卡总奖励:1799
  • 最近打卡:2026-09-16 10:29:55

73

主题

1236

回帖

7633

积分

PADS-170802高级班

积分
7633

社区居民终身成就奖特殊贡献奖

QQ
发表于 2026-8-25 08:42 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:以坛为家III
  • 打卡总天数:784
  • 打卡月天数:24
  • 打卡总奖励:3771
  • 最近打卡:2026-09-24 09:00:00

34

主题

5584

回帖

1万

积分

PADS20220105初级班

积分
14926

终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

发表于 2026-8-25 08:51 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:以坛为家III
  • 打卡总天数:577
  • 打卡月天数:13
  • 打卡总奖励:2590
  • 最近打卡:2026-09-16 09:00:21

34

主题

2161

回帖

6945

积分

1元学习Allegro(230718)

积分
6945

终身成就奖特殊贡献奖原创先锋奖

发表于 2026-8-25 08:53 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请举报投诉

本站所有资料仅限参考学习交流,PCB原理图源码等所有资料不保证准确没问题,请不要用作生产。否则后果自负。

闽公网安备35062302000276号 | 闽ICP备2024076463号-1 | 论坛技术支持QQ群171867948 | 论坛问题,充值问题请联系QQ1308068381

平平安安
TOP
快速回复 返回顶部 返回列表