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

📄 led.c

📁 Tea5767的3线控制程序
💻 C
字号:

#include "led.h"
#include <iom8.h>
//总共5个LED,一个为功能
//其余4个为频率显示,小数点后一位小数
//段PD口,位PB3,PB4,PB5,PC4,PC5

//#define LED_DATA PORTD


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};


//#define LED0 PORTB3
//str格式"P100.5"/"F 88.8"
void Display_LED(unsigned char * str)		
{
  
//LED从左向右
  //写第0个数 PB2 00000100  
  PORTD = LED_Code[*str];
  PORTB &= 0xFB;  
  asm("nop");
  asm("nop");
  asm("nop");
  asm("nop");
  asm("nop");
  asm("nop");
  PORTB |= 0x04;
  PORTD = 0;  
  //写第1个数  PB3 0000 1000
  asm("nop");
  asm("nop");
  PORTD = LED_Code[*(str+1)];
  PORTB &= 0xF7;  
  asm("nop");
  asm("nop");
  asm("nop");
  asm("nop");
  asm("nop");
  asm("nop");
  PORTB |= 0x08;  

  //写第2个数  PB4 0001 0000
  asm("nop");
  asm("nop");
  PORTD = LED_Code[*(str+2)]|0x80;//小数点;
  PORTB &= 0xEF;
  asm("nop");
  asm("nop");
  asm("nop");
  asm("nop");
  asm("nop");
  asm("nop");
  PORTB |= 0x10;
  
  //写第3个数  PB5 0010 0000
  asm("nop");

  PORTD = LED_Code[*(str+3)];
  PORTB &= 0xDF;
  asm("nop");
  asm("nop");
  asm("nop");
  asm("nop");
  asm("nop");
  asm("nop");
  PORTB |= 0x20;
  PORTB = 0xFF; 

//  if (LED_Code[*(str+4)] )
//    PORTC &= 0xFE;
//  else   PORTC |= 0x01;
  
}

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 + -