第十四届智能车培训 数码管

数码管显示原理:

第十四届智能车培训 数码管_第1张图片第十四届智能车培训 数码管_第2张图片

 

 TEC9607 数码管驱动芯片字符表

第十四届智能车培训 数码管_第3张图片

LED驱动器TEC9607引脚功能简介

第十四届智能车培训 数码管_第4张图片

 

数码管的控制端口及时序

第十四届智能车培训 数码管_第5张图片

 

数码管控制原理总结

单片机通过三个IO口来控制TEC9607 LED驱动器,从而来完成对5个数码管的控制。

传输数据方式:串行通信

三个IO口的作用: 1、SI: 串行输入数据,由微处理器程序给出

2、SCP: 串行移位脉冲,由微处理器控制。

3、LCP: 把5×8bit移位寄存器的数据锁存到段数据寄存器。高电平有效,LCP悬空为高电平“1”,数据自动进入段寄存器

 

示例代码

#include    
#include "derivative.h"
#define unsigned int uint
const byte LedData[23] = {0x38,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e,0xce,0x6e,0x1c,0xfc,0x7c,0x9e,0x02};
                           /*0  1     2    3    4    5    6    7    8    9    A    B    C    D    E    F    P    H   l     o    v    e   -*/

//******************延时0************************//
void delay(uint num)
{
uint i,j;
num*=100;
for(i=0;i<600;i++)
for(j=0;j);
}

//**************数码管段选输入***************//
void spiput(uint z  )
{
int i;
for(i=0;i<8;i++)
 { 
    PTP_PTP2=0;          //时钟(SCP )可用  为数码管驱动芯片提供时序脉冲信号
    if(z%2==1)
    PTP_PTP1=1;         //串行输入数据功能打开 通过SI 数据可以写入 点亮该段LED
     
    else 
    PTP_PTP1=0;        //串行输入数据功能关闭 通过SI 数据不可以写入 不点亮该段LED
    
    PTP_PTP2=1;        //时钟(SCP )关闭
    z=z/2;             //对数z进行右移(二进制)运算
 }
}

//************* 数码管位写入***********************//
void  bitput()
{
 spiput(LedData[22]);   //-
 spiput(LedData[21]);   //E
 spiput(LedData[20]);   //V
 spiput(LedData[19]);   //O
 spiput(LedData[18]);   //L
}

//****************数码管初始化*************************//
//****************数码管驱动器TEC9607芯片功能设置*************************//
 void spibegin(void)
 {
  DDRP_DDRP1=1;         //LEDSI串行输入数据功能 //P端口数据方向寄存器的DDRP_DDRP1引脚设为输出
  DDRP_DDRP2=1;         //段选输入打开 LEDSCP串行移位脉冲功能 //P端口数据方向寄存器的DDRP_DDRP2引脚设为输出
  DDRK_BIT1=1;          //LEDLCP锁存 K端口数据方向寄存器的DDRK_BIT1引脚设为输出
  
   PORTK_BIT1=1;        //片选(LCP) 锁存功能打开    // K端口数据寄存器的PORTK_BIT1设为高电平 
   PTP_PTP1=1;          //数据(SI)可写入
   PTP_PTP2=0;           //时钟(SCP )可用
 }
//*************************MC9S12D64***************//
 
void main(void) 
{  
   spibegin();       //数码管初始化
  
   bitput();          //数码管位写入
   delay(10);
    
}

 

你可能感兴趣的:(第十四届智能车培训 数码管)