找回密码
 注册会员
搜索附件  

热门下载

附件中心&附件聚合2.0
For Discuz! X2.5 © hgcad.com

tm1616.c

 

TM1616程序源代码附TM1616中文PDF与原理图:
TM1616程序源代码附TM1616中文PDF与原理图

TM1616驱动共阴数码管接线电路图

T1616驱动共阴数码管源代码
TM1616.H
  1. #include <STC12C56.H>
  2. #include <intrins.h>
  3. #define clk P10                                        //定义时钟管脚
  4. #define dio        P11                                        //定义数据管脚
  5. #define stb P37                                        //定义片选管脚
  6. #define nop _nop_();
  7. #define uchar unsigned char
  8. #define uint  unsigned int
复制代码
TM1616.C
  1. #include <STC12C56.H>
  2. #include <intrins.h>
  3. #include <tm1616.h>
  4. //---------------------TM1616发送1字节数据子程序------------------------------------------
  5. void tm1616write(uchar wr_date)
  6. {
  7.         uchar i;
  8.         stb =0;
  9.         nop;
  10.         nop;
  11.         for(i=0;i<8;i++)
  12.         {
  13.                 clk=0;
  14.                 nop;
  15.                 nop;
  16.                 if(wr_date&0x01!=0)
  17.                 {
  18.                         dio=1;
  19.                 }
  20.                 else
  21.                 {
  22.                         dio=0;
  23.                 }
  24.                 nop;
  25.                 nop;
  26.                 clk=1;
  27.                 nop;
  28.                 wr_date=wr_date>>1;
  29.         }       
  30. }
  31. //-------------------------TM1616采用固定地址显示数据子程序--------------------------------------------
  32. void tm1616show(uchar data1,uchar data2,uchar data3,uchar data4)
  33. {
  34.         uchar j;
  35.         stb = 1;
  36.         clk = 1;
  37.         dio = 1;
  38.         tm1616write(0x00);                          //显示模式设置,设置为4个GRID,7个SEG
  39.         stb=1;                                                        //显示模式设置完毕,STB置1
  40.         tm1616write(0x44);                          //数据命令设置,设置普通模式、固定地址、写数据到显示寄存器
  41.         stb=1;                                                        //数据命令设置完毕,STB置1
  42.         for(j=0;j<4;j++)                            //4位数码管要发送4次数据
  43.         {
  44.                 tm1616write(0xC0);                        //设置显示地址1
  45.                 tm1616write(data1);                 //传输显示数据1
  46.                 stb=1;                                                //显示数据1发送完毕STB置1
  47.                 tm1616write(0xC2);                        //设置显示地址1
  48.                 tm1616write(data2);                 //传输显示数据1
  49.                 stb=1;                                                //显示数据1发送完毕STB置1
  50.                 tm1616write(0xC4);                        //设置显示地址1
  51.                 tm1616write(data3);                 //传输显示数据1
  52.                 stb=1;                                                //显示数据1发送完毕STB置1
  53.                 tm1616write(0xC6);                        //设置显示地址2
  54.                 tm1616write(data4);                 //传输显示数据1
  55.                 stb=1;                                                //显示数据1发送完毕STB置1
  56.         }
  57.         tm1616write(0x8F);                                //控制命令设置,设置显示开、显示最亮
  58.         stb=1;                                                        //显示数据发送完毕STB置1
  59. }
复制代码
TM1616主函数
  1. #include <STC12C56.H>
  2. #include <intrins.h>
  3. #include <tm1616.c>

  4. #define uchar unsigned char
  5. #define uint  unsigned int

  6. void ioinit(void)
  7. {
  8.         P0M0 = 0x00;
  9.         P0M1 = 0x00;
  10.         P1M0 = 0x00;
  11.         P1M1 = 0x00;
  12.         P2M0 = 0x00;
  13.         P2M1 = 0x00;
  14.         P3M0 = 0x00;
  15.         P3M1 = 0xE0;
  16. }

  17. void main(void)
  18. {
  19.         ioinit();
  20.         while(1)
  21.         {
  22.                 tm1616show(0x5B,0x66,0x4F,0xFF);                       
  23.         }

  24. }
复制代码
TM1616中文PDF及原理图源代码下载




本程序基于stc12c5628单片机  如KEIL中没有STC头文件请自行添加,添加教程可以在本论坛搜索
帮忙顶一个。。。。。。。。。
08.void ioinit(void)

09.{

10.        P0M0 = 0x00;

11.        P0M1 = 0x00;

12.        P1M0 = 0x00;

13.        P1M1 = 0x00;

14.        P2M0 = 0x00;

15.        P2M1 = 0x00;

16.        P3M0 = 0x00;

17.        P3M1 = 0xE0;

18.}
请问 这个 初始化 是什么意思?希望  能回答下
谢谢楼主提供的资料,解决很大问题
disguise2012 发表于 2013-10-3 10:41
**** 作者被禁止或删除 内容自动屏蔽 ****

这个是对端口进行设置,根据需要可以设置成准双向,推挽输出,输入,开漏输出,建议看一下STC的手册

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-27 08:30 , Processed in 0.022831 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

返回顶部