芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

单片机解密单片机TM1637驱动数码管程序

单片机解密TM1637.h程序文件:

  1. #ifndef __TM1637_H__
  2. #define __TM1637_H__
  3. #include <STC8H.H>

  4. //定义端口
  5. sbit clk = P1^0;
  6. sbit dio = P3^7;
  7. extern unsigned char xdata smg_hc[4];                                  //数码管缓存
  8. extern  unsigned char shu;

  9. void SmgDisplay(unsigned char *p,char L);                                //指定数组显示。*p:数码管段码 L:0-9亮度
  10. void Smg_ctrl_dot(bit dot);                                                                //控制小数点亮灭。0:小数点熄灭,1:小数点亮起
  11. void Smg_ctrl_bit(unsigned char i,unsigned char dat);        //控制单独数码管。i:要控制的数码管位 dat:要写入的数据:0~9; 10为熄灭该数码管
  12. void Smg_ctrl_lum(unsigned char R);                                                //亮度控制。亮度等级:1~8;0为熄灭
  13. void Smg_ctrl_all(unsigned char a,unsigned char b,unsigned char c,unsigned char d,bit t,char R);
  14. //数码管,a,b,c,d为4位显示数字,t:小数点0|1,R亮度:0~8                                                                                               
  15. void Fnshu(unsigned int a);                                                                //指定4位数拆份并显示
  16. void ZUDisplay(unsigned char *p);

  17. #endif
复制代码


TM1637.c程序:

  1. #include <TM1637.H>
  2. #include <intrins.h>

  3. static unsigned char data t_display[]={                       //标准字库
  4. //   0    1    2    3    4    5    6    7    8    9   black
  5.     0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};
  6. unsigned char xdata smg_hc[4];                                  //数码管缓存
  7. unsigned char luminance=0;                                      //亮度存储
  8. unsigned char shu;
  9. bit dot_f=0;                                                    //小数点标志位

  10. void Delay1us()                //@24.000MHz
  11. {
  12.         unsigned long  i;

  13.         _nop_();
  14.         _nop_();
  15.         _nop_();
  16.         i = 4UL;
  17.         while (i) i--;
  18. }

  19. /*******************************************************************************
  20. * 函 数 名: Delay_us
  21. * 函数功能: 延时接口
  22. * 输    入: 微秒延时
  23. * 输    出: 无
  24. *******************************************************************************/
  25. void Delay_us(unsigned int i)
  26. {
  27.         for(;i>0;i--)
  28.         {            //延时接口
  29.         Delay1us();
  30.         }
  31. }
  32. /*******************************************************************************
  33. * 函 数 名: TM1637_Start
  34. * 函数功能: 1637起始信号
  35. * 输    入: 无
  36. * 输    出: 无
  37. *******************************************************************************/
  38. void TM1637_Start(void)
  39. {
  40.         clk = 1;
  41.         dio = 1;
  42.         Delay_us(2);
  43.         dio = 0;
  44. }
  45. /*******************************************************************************
  46. * 函 数 名: TM1637_ask
  47. * 函数功能: 1637 应答信号
  48. * 输    入: 无
  49. * 输    出: 无
  50. *******************************************************************************/
  51. void TM1637_ask(void)
  52. {
  53.   clk = 0;
  54.   Delay_us(5); //在第八个时钟下降沿之后延时 5us,开始判断 ACK 信号
  55.   while(dio);
  56.   clk = 1;
  57.   Delay_us(2);
  58.   clk=0;
  59. }
  60. /*******************************************************************************
  61. * 函 数 名: TM1637_Stop
  62. * 函数功能: 1637 停止信号
  63. * 输    入: 无
  64. * 输    出: 无
  65. *******************************************************************************/
  66. void TM1637_Stop(void)



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信