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

📄 595.c

📁 595发送数据,移位发送.可以同过修软件发送具体内容.
💻 C
字号:
#include<p18f452.h>

//-------------------------------------------------------------
//---定义PIC单片机与74HC595芯片接口连接关系;
#define HC595_sER     LATCbits.LATC0
#define HC595_RCLK    LATCbits.LATC1
#define HC595_sRCLK   LATCbits.LATC2
#define HC595_sRCLR   LATCbits.LATC3
#define HC595_OE      LATCbits.LATC4

void sendDataToLED(unsigned char *LedData,unsigned char DataLength);


const unsigned char LEDCODE[]=
{

0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,

};
//---定义LED数码管显示缓冲区
unsigned char LEDBuffer[6];


void main(void)
{
 unsigned char i,j,temp,ledData=6;
  TRISC=0X00;
  HC595_OE=1;//并行输出为高阻状态
  HC595_sRCLR=0;//清空移位寄存器
  HC595_sER=0;//清零
  HC595_RCLK=0;//移位时钟初始为低
  HC595_sRCLK=0;//存储器时钟初始为低
  HC595_OE=0;//允许并行输出
  HC595_sRCLR=1;//结束复位状态


LEDBuffer[0]=4;
LEDBuffer[1]=3;
LEDBuffer[4]=1;

sendDataToLED(LEDBuffer,sizeof(LEDBuffer));
while(1);

}

void sendDataToLED(unsigned char *LedData,unsigned char DataLength)
{
  unsigned char i,j,temp;
  
  for(j=0;j<DataLength;j++)
    {
	  temp=LEDCODE[*LedData];//取出LED显示的代码表送入变量中
	  for(i=0;i<8;i++)
	    {
		  if(0x80==(temp & 0x80))HC595_sER=1;//将字节按位移出
		    else HC595_sER=0;
		  HC595_RCLK=1;//将数据送入移位寄存器中
		  HC595_RCLK=0;
		  temp<<=1;//当前指针的内容左移一位
		}
	  LedData++;//指针指向下一个数据
	}
  HC595_sRCLK=1;//将移位寄存器中的内容送到并行输出口
  HC595_sRCLK=0;
}

⌨️ 快捷键说明

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