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

📄 led_display.c

📁 数码管显示
💻 C
字号:



  

#include <STC12C5412.H>
#include <intrins.h>
#include <port.h>

//共阳段码表,按顺序接A-QA,B-QB
//字节的高位对应数码管的H段,依次类推 
static unsigned char code Duan_Tab[19]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90//0-9共阳段码表 
                                                    ,0x88,0x82,0xc6,0xa1,0x84,0x8e      //a-f共阳段码表 
                                                    ,0x89,0xc7,0xB7};                   //H L = 共阳段码表*/
						   
//共阴数码管段码表
/* static unsigned char code Duan_Tab[19] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,//同上0-9
                                          0x77,0x7c,0x39,0x5e,0x79,0x71,                    //字母
                                          0x00,0xf3,0x76,0x80,0x40                           //特殊的  
   
   
} */
/* //小数点
static unsigned char code Dian_Tab[]={ 0x80,0x7f} //前面共阴小数点,后面共阳的 小数 点 */
//共阳位控
static unsigned char code Wei_Tab[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};    
 /*  //共阴位控
 static unsigned char code Wei_Tab[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};  */
  
void delay ()
{
   unsigned char i=0xff;
   while(i--);
}
 
/*-------------------------------------------------------------------------------
                           向74595输出一字节数据子程序
---------------------------------------------------------------------------------*/
 void  WR_595(unsigned char data num2 ) 
 {
   unsigned char data count1;
   
   for(count1=0;count1<=7;count1++){
       if((num2&0x80)==0x80)    //最高位为1,则向SDATA_595发送1
	       SDATA_595=1;         //发出数据的最高位
	   else  
	       SDATA_595=0;
	 
	   num2<<=1;               //右移位
	   SCLK_595=0;	           //产生上生沿
	   _nop_();
	   _nop_();
	   SCLK_595=1;
    
   }  

 }
/*-------------------------------------------------------------------------------
                     打开锁存,更新74595输出子程序
---------------------------------------------------------------------------------*/
 void Out_595(void)
 {
   RCK_595=0;
   _nop_();
   _nop_();
   RCK_595=1;  /*上升沿锁存数据*/

 }
/*--------------------------------------------------------------------------------------
                                       显示函数                              
----------------------------------------------------------------------------------------*/
void Led_Display(void)
{    unsigned char i;
    for(i=0;i<8;i++)//以显示12345678为例子
    {
      WR_595(Wei_Tab[i]) ;
      WR_595(Duan_Tab[i]) ;
      Out_595();
      delay();
   }
	
}

⌨️ 快捷键说明

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