打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
51单片机 tm1620驱动3位数码管程序

      Easyeda,史上最强大的电路设计工具,在线pcb design

      TM1620 是天微公司生产的二极管驱动芯片,SOP20封装。芯片如下图所示:

      最多可以驱动6个8位数码管,如下图所示:

      程序如下:

/**************************************************  * 名称:STC51驱动TM1620 3位数码管显示  * MCU: STC12C5608AD  * 主频:12Mhz(外部接12MHz晶振)  * 作者:Ration  * 时间:2013年12月5日(整理)  * 版权:版权归《单片机学习网》所有,传播请保持完整性  *  * 更多程序请访问:http://www.rationmcu.com  *************************************************/ #include 'stc12c5608ad.h' #include #define uint  unsigned int     // 宏定义uint (0~65535) #define uchar unsigned char  // #define uint32 unsigned long sbit STB =P3^2;        // 定义片选通讯口 sbit CLK =P3^3;        // 定义时钟通讯口 sbit DIO =P3^4;        // 定义数据输入/输出通讯口 uchar bai_num,shi_num,ge_num; static uchar code LED_tab[11]={  // 定义数码管0~9数字码表 0x3f,    //0B00111111,       //0 0x30,    //0B00000110,       //1 0x6d,    //0B01011011,         //2 0x79,    //0B01001111,         //3 0x33,    //0B01100110,         //4 0x5b,    //0B01101101,         //5 0x5f,    //0B01111101,         //6 0x70,    //0B00000111,         //7 0x7f,    //0B01111111,         //8 0x7B,    //0B01101111,         //9 0x4f,                         //E                                                }; void delay_ms(uchar cyc) {     //当将=1的时候,延时1ms     uchar ii,jj;     for(jj=1;jj<=cyc;jj++)    ="" {=""        ="" for(ii=""><200;ii++)        ="" {=""   =""    =""    =""  _nop_();=""        ="" }=""    ="" }="" }="" void="" tm1620_write(uchar="" wr_data)="" {=""   =""  uchar="" i;=""   =""  for(i=""><8;i++)   =""  {=""   =""    =""  clk="0;"   =""    =""  if(wr_data&0x01)dio="1;"   =""    =""  else="" dio="0;"   =""    =""  clk="1;"   =""    =""  wr_data="">>=1;     }                  } void Write_COM(unsigned char cmd)        //发送命令字 {     STB = 0;     TM1620_Write(cmd);     STB = 1; } void init_TM1620(void) {     Write_COM(0x44);  // 01000000准备写数据到显示寄存器,普通模式,自动地址增加     STB=0;     TM1620_Write(0xc0);     // 11000000 设置显示地址从0开始     TM1620_Write(0x00);      // 所有显示为灭     STB=1;     STB=0;     TM1620_Write(0xc2);     TM1620_Write(0x00);     STB=1;     STB=0;     TM1620_Write(0xc4);     TM1620_Write(0x00);     STB=1;     Write_COM(0x8f);  // 最亮    10001111 设置消光脉冲14/16 显示开 } void led_show() { //    Write_COM(0x44);  // 01000000准备写数据到显示寄存器,普通模式,自动地址增加     STB=0;     TM1620_Write(0xc0);     // 11000000 设置显示地址从0开始     TM1620_Write(LED_tab[bai_num]);      // 所有显示为灭     STB=1;     STB=0;     TM1620_Write(0xc2);     // 11000000 设置显示地址从0开始     TM1620_Write(LED_tab[shi_num]);      // 所有显示为灭     STB=1;         STB=0;     TM1620_Write(0xc4);     // 11000000 设置显示地址从0开始     TM1620_Write(LED_tab[ge_num]);      // 所有显示为灭     STB=1; } void main() {     CLK = 1;            // 上拉TM1620通信时钟引脚     STB = 1;            // 上拉TM1620通信片选引脚     DIO = 1;            // 上拉TM1620通信数据引脚     init_TM1620();      // 初始化LED控制芯片     bai_num=0;     shi_num=0;     ge_num=0;     led_show();     while(1)     {         ;     } }

      完整keil工程文件,请按如下方法获取!

      填写您的qq邮箱地址,资料自动发送到邮箱!


      推荐:我的微信公众号(扫一扫关注)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
教你如何高效编程之头文件书写
单片机按键按下的先后顺序判断
51单片机之LCD1602液晶显示与4×4矩阵键盘
st7920
硕士论文:温湿度监测系统
lcd1602与单片机连接图,基于51单片机的lcd1602液晶显示屏连接电路图
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服