标题: 51单片机TM1637驱动程序 [打印本页]

作者: liulu_qq    时间: 2025-1-19 09:55
标题: 51单片机TM1637驱动程序
8位单片机驱动程序

  1. #include"TM1637.h"
  2. #define CLK P12 //时钟
  3. #define DIO P13 //数据
  4. static u8 code SHUZU[]=      
  5. {
  6.   0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
  7.         0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,
  8.         0x00,0x76,0x80
  9. };
  10. static void i2C(bit T)
  11. {                                                
  12.         if(T)
  13.         CLK=0,DIO=0,CLK=1;
  14.   else        
  15.         CLK=1,DIO=1,DIO=0;
  16. }
  17. static void ACK(u8 T)
  18. {                                                         
  19.         u8 i;
  20.         for(i=0;i<8;i++)
  21. {
  22.   CLK=0;
  23.         if(T&(1<<i))
  24.         DIO=1;
  25.   else
  26.   DIO=0;
  27.         CLK=1;
  28. }
  29.         i2C(1);
  30. }
复制代码


上图代码下载: TM1637.zip (6.17 KB, 下载次数: 0)

作者: jhczy    时间: 2025-1-21 09:13
static void i2C(bit T)
{                                               
        if(T)
       CLK=0,DIO=0,CLK=1;
  else      
        CLK=1,DIO=1,DIO=0;
}
这里不对的
作者: joyb    时间: 2025-7-30 16:38
在C语言中,static关键字主要用于三种场景:修饰局部变量以延长生命周期、修饰全局变量/函数以限制作用域、定义静态数组参数(C99+)。

‌static关键字的三种核心作用‌

‌1、修饰局部变量‌。

‌存储方式‌:从栈区改为静态存储区,内存分配在程序启动时完成,程序结束时释放。‌‌
‌生命周期‌:从函数调用期间延长至整个程序运行周期,保留函数多次调用间的值。‌‌
‌初始化‌:仅首次执行时初始化(默认值为0),后续调用沿用上一次的值。‌‌
‌典型用例‌:记录函数调用次数、保持状态连续性(如计数器)。‌‌

‌2、修饰全局变量‌。

‌作用域‌:将原本全局可见的变量限制为仅当前文件内可访问,避免多文件项目的命名冲突。‌‌
‌链接属性‌:禁止其他文件通过extern引用,实现模块化封装。‌‌
‌内存分配‌:与普通全局变量相同,仍存储在静态区。‌‌

‌3、修饰函数‌。

‌作用域限制‌:静态函数仅能在声明它的文件内部调用,增强代码的封装性和安全性。‌‌
‌典型用例‌:辅助函数或工具函数的内部隔离,避免被外部误用。
‌‌
‌扩展:静态数组参数(C99标准)‌

在函数参数中声明void func(int arr[static 10])时,static表示arr指针至少指向含10个元素的数组,辅助编译器进行边界检查和优化。‌‌





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1