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

📄 led.c

📁 stc-isp开发板驱动程序
💻 C
字号:
#include <config.h>

#define IN_LED2

#define LED_NOP() {_nop_();_nop_();_nop_();_nop_();}	 //定义空指令 
/*共阳极数码管低电平有效*/
#define LED_A 0xf7
#define LED_B 0xfb
#define LED_C 0xfd
#define LED_D 0xef
#define LED_E 0xdf
#define LED_F 0xfe
#define LED_G 0xbf
#define LED_0 LED_A&LED_B&LED_C&LED_D&LED_E&LED_F
#define LED_1 LED_B&LED_C
#define LED_2 LED_A&LED_B&LED_D&LED_E&LED_G
#define LED_3 LED_A&LED_B&LED_C&LED_D&LED_G
#define LED_4 LED_B&LED_C&LED_F&LED_G
#define LED_5 LED_A&LED_C&LED_D&LED_F&LED_G
#define LED_6 LED_A&LED_C&LED_D&LED_E&LED_F&LED_G
#define LED_7 LED_A&LED_B&LED_C
#define LED_8 LED_A&LED_B&LED_C&LED_D&LED_E&LED_F&LED_G
#define LED_9 LED_A&LED_B&LED_C&LED_D&LED_F&LED_G

unsigned char xdata LED_BUFFER[10]={LED_0,LED_1,LED_2,LED_3,LED_4,LED_5,LED_6,LED_7,LED_8,LED_9};//LED数字0-9对应的16进制数 
unsigned char xdata g_display_state=0x00;

void  LEDdisplay_process(void)
{
  if(g_timer0_100ms==0x00)  //每个一定的时间才显示一次,当然紧急显示除外
      return;
   g_timer0_100ms=0x00;
  
  switch(g_display_state)
        {case 0x00: 
		             LED_displaynumber(authorize_number);//LED显示剩下的数目
		      break;
		 case 0x01:
		  			 LED_displaynumber(exhaust_number);	//LED显示已烧写数目	
		      break;
		 default:
              break; 
		}	   
  }


void LED_displaynumber(unsigned int DISPLAY_NUM)
{
 unsigned char idata ONE=0x00,TEN=0x00,HUN=0x00,THOU=0x00;

 ONE=DISPLAY_NUM%10;
 TEN=(DISPLAY_NUM%100)/10;
 HUN=(DISPLAY_NUM%1000)/100;
 THOU=DISPLAY_NUM/1000;

 LED_display_drive(LED_BUFFER[ONE]);
 LED_display_drive(LED_BUFFER[TEN]);
 LED_display_drive(LED_BUFFER[HUN]);
 LED_display_drive(LED_BUFFER[THOU]);
 }


void LED_display_drive(unsigned char NUM)
{unsigned char idata i=0x00;
 LED_CLR=1;  //禁止复位
 for(i=0x00;i<0x08;i++)
    {LED_CLK=0;
	 if(NUM&0x80) LED_CLD=1;
	 else  	LED_CLD=0;
	 NUM<<=1;
	 LED_CLK=1;
	 LED_NOP();
	 LED_CLK=0;
	 LED_NOP();
	 }
 }


















⌨️ 快捷键说明

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