⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led.c

📁 tea5767_102模块,i2c总线控制方式
💻 C
字号:

#include "led.h"
#include <reg52.h>
#include <intrins.h>

//总共4个LED,频率显示,小数点后一位小数
//段P1口,位P22,P23,P24,P25

#define LED_DATA P1

#define LED1 0x04
#define LED2 0x08
#define LED3 0x10
#define LED4 0x20
#define LED_0 0x0

#define LED_SET P2

unsigned char LED_Code[]={/*0,1,2,3,4,5,6,7,8,9,' '(不显示)*/
//0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};
  0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF};

//#define LED0 PORTB3
//str格式"P100.5"/"F 88.8"
void Display_LED(unsigned char * str)		
{
  
//LED从左向右
  //写第1个数 P22 00000100  
  LED_DATA = LED_Code[*str];
  LED_SET |= LED1;  
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  LED_SET &= ~LED1;
  
  //写第2个数  P23 0000 1000
  _nop_();
  _nop_();
 
  LED_DATA = LED_Code[*(str+1)];
  LED_SET |= LED2;  
  _nop_();
  _nop_();
  _nop_();
  _nop_();

  LED_SET &= ~LED2;  

  //写第3个数  P24 0001 0000
  _nop_();
  _nop_();

  LED_DATA = LED_Code[*(str+2)]&0x7F;//小数点;
  LED_SET |= LED3;
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  LED_SET &= ~LED3;
  //写第4个数  P25 0010 0000
  _nop_();
  _nop_();

  if (*(str+4))
     LED_DATA = LED_Code[*(str+3)]&0x7F;
  else LED_DATA = LED_Code[*(str+3)];
  LED_SET |= LED4;
  _nop_();
  _nop_();
  _nop_();
  _nop_();

  LED_SET &= ~LED4;
  LED_SET = LED_0; 

 
}

void Freq_2_Buffer(unsigned long Freq,unsigned char * disbuffer)
{
// 0  显示最左一位,百位;1 十位;2 个位; 3 小数点后一位  
	unsigned int tmp;
	tmp = Freq/100;
	disbuffer[0] = tmp / 1000 ;

//	  disbuffer[0] = 10;              //不显示
//	else disbuffer[0] = 1;
	
	disbuffer[1] = (tmp / 100)%10 ;
	disbuffer[2] = (tmp / 10)%10 ;
	disbuffer[3] = tmp %10 ;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -