找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 543|回复: 0
收起左侧

网上找的1637C H文件做的模块化 TM1637 4LED模块 0--f

[复制链接]
ID:366464 发表于 2021-10-17 20:19 | 显示全部楼层 |阅读模式
网上找的1637C  H文件做的模块化  4LED模块 0--f  STC15W408AS测试

单片机源程序如下:
  1. #include"1637.h"

  2. void delay_6us()
  3. {
  4.         _nop_();
  5. }                                                  

  6. //常规I2C时序
  7. void IIC_start(void)
  8. {
  9.          CLK = 1;
  10.          _nop_();
  11.          SDA = 1;
  12.          delay_6us();
  13.          SDA = 0;
  14.          _nop_();
  15.          CLK = 0;
  16. }

  17. void IIC_stop(void)
  18. {
  19.         CLK = 0;
  20.         _nop_();
  21.         SDA = 0;
  22.         _nop_();
  23.         CLK = 1;
  24.         delay_6us();
  25.         SDA = 1;

  26. }
  27. void IIC_ack(void)
  28. {

  29.         CLK = 0;
  30.         delay_6us();
  31.         while(SDA);
  32.         CLK = 1;
  33.         _nop_();
  34. }

  35. void IIC_Write_cmd(Byte cmd)  //写一个字节
  36. {
  37.         Byte n;
  38.         IIC_start();
  39.         for(n=0;n<8;n++)
  40.         {
  41.                 CLK = 0;
  42.                 delay_6us();
  43.                 SDA = cmd&0x01;
  44.         /*        if(cmd&0x01)
  45.                 {
  46.                         SDA = 1;        
  47.                 }
  48.                 else
  49.                 {
  50.                         SDA = 0;
  51.                 }        */
  52.                 cmd>>=1;
  53.                 CLK = 1;
  54.                 delay_6us();               
  55.         }
  56. }

  57. Byte Keysacn()        //键盘扫描函数
  58. {
  59.         Byte n,key_value;
  60.         IIC_start();
  61.         IIC_Write_cmd(0x42);
  62.         IIC_ack();
  63.         SDA = 1;
  64.         for(n=0;n<8;n++)
  65.         {
  66.                 CLK = 0;
  67.                 delay_6us();
  68.                 key_value = key_value>>1;
  69.         //  key_value>>=1;
  70.                 CLK = 1;
  71.                 if(SDA)
  72.                 {
  73.                         key_value = key_value|0x80;
  74.                 }
  75.                 else
  76.                 {
  77.                         key_value = key_value|0x00;
  78.                 }
  79.                 delay_6us();
  80.                 delay_6us();
  81.                 delay_6us();
  82.                         
  83.         }
  84.         IIC_ack();
  85.         IIC_stop();         
  86.         return (key_value);
  87. }

  88. void Display(Byte dat)        //显示函数
  89. {
  90.         Byte n;
  91.         IIC_start();
  92.         IIC_Write_cmd(0x40);
  93.         IIC_ack();
  94.         IIC_stop();
  95.         IIC_start();
  96.         IIC_Write_cmd(0xc1);
  97.         IIC_ack();
  98.         for(n=0;n<6;n++)
  99.         {
  100.                 IIC_Write_cmd(dat);
  101.                 IIC_ack();        
  102.         }
  103.         IIC_stop();
  104.         IIC_start();
  105.         IIC_Write_cmd(0x8f);
  106.         IIC_ack();
  107.         IIC_stop();        
  108. }

  109. void TM1637_Init()        //初始化函数
  110. {
  111.         IIC_start();
  112.         IIC_Write_cmd(0x8f);
  113.         IIC_ack();
  114.         //IIC_stop;
  115. }

复制代码

代码:
1637 0-f显示 模块化OK.rar (223.22 KB, 下载次数: 10)

评分

参与人数 1黑币 +20 收起 理由
admin + 20 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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