找回密码
 立即注册
查看: 127|回复: 0

使用AI8051U单片机(擎天柱AI8051核心板)串口TxD轻松驱动TM1652

[复制链接]
已绑定手机

11

主题

484

回帖

1362

积分

金牌会员

积分
1362
发表于 2026-10-16 21:06:09 | 显示全部楼层 |阅读模式
TM1652是天微公司LED驱动控制专用芯片。通讯方式采用异步串口通信(UART)协议,因芯片只接收单片机发来的数据,仅需要单片机的一个TxD端口发送数据给芯片即可。它是TM系列中唯一单接口芯片。两种显示模式(7段×6位,8段×5位)本例采用8段×5位模式,实际用的4位共阴数码管,如果单片机P3.1被占用,还可以用软件将串口切换到其它管脚。此代码适用于STC绝大多数1T芯片。

  1. //TM1652驱动示例
  2. //芯片型号AI8051U 使用指令模式8-Bit
  3. //串口TxD 9位数据 奇校验驱动
  4. //频率为11.0592MHz 波特率19200
  5. #include <STC8051U.H>
  6. #include "intrins.h"
  7. #define uint unsigned int
  8. #define uchar unsigned char
  9. #define S1_S0 0x40              //P_SW1.6 串口1切换控制位   
  10. #define S1_S1 0x80              //P_SW1.7
  11. uchar code table[]={//共阴数码管段码
  12.         0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  13.         0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  14. //TM1652显示地址:0x08 0x88 0x48 0xc8 0x28 0xa8
  15. //驱动码缓存:显示首地址0x08,5位显示数据,控制命令0x18,调节命令0x14(占空比8/16,段电流3/8,模式8段5位)
  16. uchar data dis_buf[8]={0x08,0,0,0,0,0,0x18,0x14};
  17. uint num=0;
  18. void delay_ms(uint ms);
  19. void Uart1_Init(void);
  20. void SendData(uchar dat);
  21. void TM1652_Write(uint dat);
  22. void main()
  23. {
  24.         P0M0 = 0x00;P0M1 = 0x00;
  25.         P1M0 = 0x00;P1M1 = 0x00;
  26.         P2M0 = 0x00;P2M1 = 0x00;
  27.         P3M0 = 0x00;P3M1 = 0x00;
  28.         P4M0 = 0x00;P4M1 = 0x00;
  29.         P5M0 = 0x00;P5M1 = 0x00;
  30.         P6M0 = 0x00;P6M1 = 0x00;
  31.         P7M0 = 0x00;P7M1 = 0x00;
  32.         Uart1_Init();
  33.         TM1652_Write(0);//初始化显示0
  34.         TM1652_Write(0);//再次初始化确保不显示寄存器残余
  35.         delay_ms(500);
  36.         while(1)
  37.         {
  38.                 if(++num>9999)num=0;
  39.                 TM1652_Write(num);
  40.                 delay_ms(500);
  41.         }
  42. }
复制代码
完整程序在附件
main.rar (1.41 KB, 下载次数: 46)
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-11-7 11:25 , Processed in 0.064296 second(s), 41 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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