标题: TM1640数码管显示芯片 单片机程序 最多可显示16段数码管 [打印本页]

作者: 335218864    时间: 2017-8-17 09:02
标题: TM1640数码管显示芯片 单片机程序 最多可显示16段数码管
TM1640数码管显示芯片 显示程序 最多可显示16段数码管

单片机源程序如下:

  1. /*******************显示处理模块****************/
  2. #include "STC15F2Kx.h"
  3. #include "main.h"

  4. sbit PDIO1 = P1^1;      //TM1640数据
  5. sbit PCLK1 = P1^0;      //TM1640时钟
  6. /*---------TM1640数码管驱动程序-----------------*/
  7. void Start1(void)          //1640开始
  8. {
  9.     PCLK1=0;
  10.     PDIO1=1;
  11.     PCLK1=1;   
  12.     NOP();
  13.     NOP();
  14.     PDIO1=0;
  15.     NOP();
  16.     NOP();
  17.     PCLK1=0;
  18.     NOP();
  19.     NOP();
  20. }
  21. /**********************************************/
  22. void Stop1(void)             //1640结束
  23. {
  24.     PCLK1=0;
  25.     PDIO1=0;
  26.     PCLK1=1;
  27.     NOP();
  28.     NOP();
  29.     PDIO1=1;
  30.     NOP();
  31.     NOP();
  32. }
  33. /*---------写数据给T1640----------*/
  34. void Write1(uchar vdata1)
  35. {
  36.     uchar i;
  37.    
  38.     PDIO1=0;
  39.     PCLK1=0;
  40.     NOP();
  41.     NOP();
  42.     for(i=0;i<8;i++)  //开始传送8位数据,每循环一次传送一位数据
  43.     {
  44.          PCLK1=0;
  45.          NOP();
  46.          NOP();
  47.          PDIO1 = (vdata1 & 0x01)? 1:0;
  48.          NOP();
  49.          PCLK1=1;
  50.          NOP();
  51.          NOP();
  52.          vdata1>>=1;
  53.     }
  54.     PDIO1=0;
  55.     PCLK1=0;
  56. }
  57. /*----------固定地址发送----------*/
  58. void send1(uchar address,uchar date)
  59. {
  60.     Start1();
  61.     Write1(address);    //传显示数据对应的地址
  62.     Write1(date);    //传显示数据
  63.     Stop1();
  64. }
复制代码




作者: ywzlq    时间: 2017-8-22 08:49
感谢楼主分享!
作者: ubuntu321    时间: 2017-12-7 01:47
感谢分享
作者: zhkrid    时间: 2018-5-9 09:54
谢谢分享,想用stc8脚单片机做个数码管时钟
作者: bengbai4    时间: 2020-4-7 15:53
根本不能用
作者: xdl    时间: 2022-8-14 20:49
现在正在找这种资料,谢谢老师




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