senddataled.c

来自「74HC595的c语言驱动程序」· C语言 代码 · 共 80 行

C
80
字号
#include	<pic.h>
#include	"radio.h"
#include	"delay.h"

//portd的0,1,2脚分别接3个74HC595的OE脚。
//CDisData是数据脚
//CDisClk是时钟脚
//CDisEn是锁定脚


void funcDataToLed(void)
{
	unsigned char i,LVLedNum,LVLedData;
	LVLedNum=VLedNumDis;
	
	switch(LVLedNum)		//disable the led selecting
	{
		case 0:
			funcBitSet(PORTD,1);
			funcBitSet(PORTD,2);
			funcBitSet(PORTD,0);				
			LVLedData=VLed1Data;
			break;
		case 1:
			funcBitSet(PORTD,0);
			funcBitSet(PORTD,2);
			funcBitSet(PORTD,1);				
			LVLedData=VLed2Data;
			break;		
		case 2:
			funcBitSet(PORTD,0);			
			funcBitSet(PORTD,1);
			funcBitSet(PORTD,2);
			LVLedData=VLed3Data;
			break;
		default:
			break;
	}
	funcBitClr(PORTD,CDisEn);
	funcBitClr(PORTD,CDisClk);
	for(i=0;i<8;i++)
	{
		if(LVLedData&0x01)
			funcBitSet(PORTD,CDisData);
		else
			funcBitClr(PORTD,CDisData);
		funcBitClr(PORTD,CDisClk);
		LVLedData>>=1;
		DelayUs(10);
		funcBitSet(PORTD,CDisClk);
		DelayUs(7);
			
	}		
	funcBitSet(PORTD,CDisEn);
	DelayUs(10);
	funcBitClr(PORTD,CDisClk);
	switch(LVLedNum)		//enable the led selecting
	{
		case 0:
			funcBitSet(PORTD,1);
			funcBitSet(PORTD,2);
			funcBitClr(PORTD,0);				
			break;
		case 1:
			funcBitSet(PORTD,0);
			funcBitSet(PORTD,2);
			funcBitClr(PORTD,1);				
			break;		
		case 2:
			funcBitSet(PORTD,0);
			funcBitSet(PORTD,1);
			funcBitClr(PORTD,2);
			break;
		default:
			break;
	}
	DelayUs(255);		
}

⌨️ 快捷键说明

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