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

📄 hd7279.c

📁 数码管显示和键盘接芯HD7279显示及驱动程序
💻 C
字号:
#include	<pic.h>	
#include    "main.h"
#include    "system.h"
unsigned char key_number;
unsigned char j, k;
unsigned int temp;
unsigned long t;
void long_delay(void)//delay 52us
{
  unsigned char i;
 for (i=0;i<10;i++);
}


void short_delay(void)//delay 6us
{
 unsigned char i;
 for (i=0;i<3;i++);
 
}
void send_byte(  unsigned char out_byte)//send a byte
{
  unsigned char i;
// cs=0;
 long_delay();
 for (i=0;i<8;i++)
 {
  if (out_byte&0x80)
  { 
   H7279_dat=1;
  }
  else
  {
   H7279_dat=0;
  }
  H7279_clk=1;
  short_delay();
  H7279_clk=0;
  short_delay();
  out_byte=out_byte*2;
 }
 H7279_dat=0;

} 


unsigned char receive_byte(void)//receive a byte
{
  unsigned char i;
  unsigned char dump=0;
  TRISD3=1;
  long_delay();
 for (i=0;i<8;i++)
 {
  H7279_clk=1;
 short_delay(); 
  dump=(dump<<1);
  dump|=H7279_dat;
  H7279_clk=0;
  short_delay();
 }
 TRISD3=0;
 return (dump);
}

void write7279(unsigned char cmd, unsigned char dta)//write HD7279
{
 H7279_cs=0;
 send_byte (cmd);
 send_byte (dta);
 H7279_cs=1;
} 


unsigned char read7279(unsigned char command)//read HD7279
{unsigned char temp;
 H7279_cs=0;
 send_byte(command);
 temp=receive_byte();
 H7279_cs=1;
 return(temp);

}




void key_int(void)
{
 if (!key)  
   {
   //  key_number=read7279(CMD_READ);   
    // write7279(DECODE0+7,key_number/16);  
    // write7279(0x90+6,key_number);  
         while (!key);  
   }
}


void display(void)
{
//write7279(0x80+7,0x0e);
//write7279(0x80+6,3);
write7279(DECODE0+7,key_number/16);  
write7279(DECODE0+6,key_number&0x0f); 
temp=(t%100000);
write7279(0x80+5,t/100000);
write7279(0x80+4,temp/10000);
write7279(0x80+3,((temp)%10000)/1000);
write7279(0x80+2,(((temp)%10000)%1000)/100);
write7279(0x80+1,((((temp)%10000)%1000)%100)/10);
write7279(0x80+0,((((temp)%10000)%1000)%100)%10);  }

⌨️ 快捷键说明

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