单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8353|回复: 18
收起左侧

TM1650模块单片机源程序(子函数)

  [复制链接]
zkele 发表于 2018-3-25 08:08 | 显示全部楼层 |阅读模式
TM1650模块子函数,欢迎下载测试应用. 取之于网络,分享给大家

单片机源程序如下:
  1. #include<STC12C5A.h>
  2. #include"tm1650.h"
  3. void Delay_us(uint i) //us延时
  4. {
  5.         for(;i>0;i--)
  6.         {
  7.         _nop_();
  8. //        _nop_();
  9. //        _nop_();
  10.         }
  11. }
  12. void I2CStart(void)        //开始信号
  13. {
  14.         CLK_H;
  15.         DIO_H;
  16.         Delay_us(5);
  17.         DIO_L;
  18.         
  19. }

  20. void I2Cask(void) //ACK信号
  21. {
  22.         uchar timeout = 1;
  23.         CLK_H;
  24.         Delay_us(5);
  25.         CLK_L;
  26.         while((DIO)&&(timeout<=100))
  27.         {
  28.           timeout++;        
  29.         }
  30.         Delay_us(5);
  31.         CLK_L;
  32. }

  33. void I2CStop(void) //停止信号
  34. {
  35.         CLK_H;
  36.         DIO_L;
  37.         Delay_us(5);
  38.         DIO_H;
  39. }

  40. void I2CWrByte(uchar oneByte) //写一个字节高位在前,低位在后
  41. {
  42.         uchar i;
  43.         CLK_L;
  44.         Delay_us(1);
  45.         for(i=0;i<8;i++)
  46.         {        
  47.                 oneByte = oneByte<<1;
  48.                 DIO = CY;
  49.                 CLK_L;
  50.                 Delay_us(5);
  51.                 CLK_H;
  52.                 Delay_us(5);
  53.                 CLK_L;
  54.         }
  55. }

  56. uchar Scan_Key(void)          // 按键扫描
  57. {
  58.         uchar i;
  59.         uchar rekey;
  60.         I2CStart();
  61.         I2CWrByte(0x49);//读按键命令
  62.         I2Cask();
  63.         //DIO_H;
  64.         for(i=0;i<8;i++)
  65.         {
  66.            CLK_H;
  67.            rekey = rekey<<1;
  68.            if(DIO)
  69.            {
  70.                    rekey++;
  71.            }
  72.            Delay_us(5);
  73.            CLK_L;        
  74.         }
  75.         I2Cask();
  76.         I2CStop();
  77.         return(rekey);
  78. }


  79. void TM1650_Set(uchar add,uchar dat) //数码管显示
  80. {
  81.         //写显存必须从高地址开始写
  82.         I2CStart();
  83.         I2CWrByte(add); //第一个显存地址
  84.         I2Cask();
  85.         I2CWrByte(dat);
  86.         I2Cask();
  87.         I2CStop();
  88. }
复制代码
0.jpg
所有资料51hei提供下载:
TM1650.rar (1.01 KB, 下载次数: 281)

评分

参与人数 2黑币 +55 收起 理由
supermcu8 + 5 共享资料的黑币奖励!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

fox1357 发表于 2020-8-1 16:42 | 显示全部楼层
正在看规格书写1650的程序,还没有拿到板子上面测试。看了样例程序,对于有的师兄说按键扫描没有反应,可能是有的单片机的端口输入和输出状态要单独设定,而样例里面的单片机可能是不用设定的。
我这边看规格书的时候也有个疑问,按键读取的时候,只有一个字节,又不区分地址,怎么能读取28个按键呢?
问了代理,说是晚上回复。
回复

使用道具 举报

liuminjun163 发表于 2018-9-17 20:12 | 显示全部楼层
这个程序不错,找了好久总算找到合适的方案了
回复

使用道具 举报

liuzhengduo16 发表于 2018-10-22 15:02 | 显示全部楼层
我想问一下,我用赛元的MCU驱动的这个芯片,为什么按键扫描的时候按键没有任何反应呢
回复

使用道具 举报

shaoyoujing 发表于 2018-11-28 16:35 | 显示全部楼层
谢谢了
回复

使用道具 举报

tyghbn 发表于 2018-12-21 21:17 | 显示全部楼层
下来看看是否适合
回复

使用道具 举报

安静的麻瓜 发表于 2019-1-4 14:50 | 显示全部楼层
请问,这个是pic的还是51的,我是个新手  求指教呀
回复

使用道具 举报

zhp8363 发表于 2019-4-25 20:22 | 显示全部楼层
谢了!
回复

使用道具 举报

11111114pl 发表于 2019-4-30 13:06 | 显示全部楼层
主函数部分没有吗     主要是按键扫描判断       有点搞不懂
回复

使用道具 举报

11111114pl 发表于 2019-4-30 13:06 | 显示全部楼层
安静的麻瓜 发表于 2019-1-4 14:50
请问,这个是pic的还是51的,我是个新手  求指教呀

51的升级版   也属于51
回复

使用道具 举报

xyqkos 发表于 2019-5-17 16:55 | 显示全部楼层
谢谢了
回复

使用道具 举报

Villain334 发表于 2019-5-27 14:53 | 显示全部楼层
很好,但是没有黑币了、、、
回复

使用道具 举报

yueqi 发表于 2019-7-3 13:12 | 显示全部楼层
!好东西
回复

使用道具 举报

302976867 发表于 2019-7-26 16:05 | 显示全部楼层
谢楼主分享了。学习学习
回复

使用道具 举报

Erigo 发表于 2019-11-6 08:31 | 显示全部楼层
谢谢了
回复

使用道具 举报

张宝宝 发表于 2020-1-11 20:40 | 显示全部楼层
liuzhengduo16 发表于 2018-10-22 15:02
我想问一下,我用赛元的MCU驱动的这个芯片,为什么按键扫描的时候按键没有任何反应呢

你的问题解决了吗,我也要碰上SC的单片机,不能读按键
回复

使用道具 举报

wzyin51_hei 发表于 2020-5-18 10:31 | 显示全部楼层
请问这款蕊片需要用户主动扫描吗?还是写入数据后,蕊片自动刷新?
回复

使用道具 举报

xdb2724678 发表于 2020-6-27 22:30 | 显示全部楼层
正在找这个内容,多谢楼主;
回复

使用道具 举报

fox1357 发表于 2020-8-1 17:53 | 显示全部楼层
fox1357 发表于 2020-8-1 16:42
正在看规格书写1650的程序,还没有拿到板子上面测试。看了样例程序,对于有的师兄说按键扫描没有反应,可能 ...

我大概明白了,这个芯片无法判断两个按键,0-255只需要返回一个值,就代表某一个具体按键。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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