您的当前位置:首页正文

CD4094驱动程序

2021-08-30 来源:步旅网


CD4094与hc164有相同的功能.在不希望输出端抖动的情况下,

用cd4094更适合,因为它有个输出使能端.

//此子程序在holtek mcu中验证过.

//----------------------------------------------

//;把一个字节发送到cd4094,串行,然后打开使能。

//;要发送的字节在i中,无出口参数.

//;如果只是发送一个字节,则在此子程序尾关死使能.

//;如果4094 级联多个,则必须连续调用4094后关死使能.

//;-------------------------------------------------------------

void TransByteForCD4094(unsigned char i)

{

unsigned char tem_data,count;

count = 8;

tem_data = i;

do

{

OE_4094 = 0; // enble 4094;

if (tem_data &0x80)

DATA_4094 = 1;

else

DATA_4094 = 0;

CLK_4094 = 1;

_delay(500);

CLK_4094 = 0;

tem_data = tem_data<<1;

count --;

}while(count !=0);

//OE_4094 = 1; // disenble 4094

}

//*****************************************************************

#include

#include

void TransByteForCd4904(unsigned char data);

//****************************************

#define CLK_4094 PORTAbits.RA3

#define DATA_4094 PORTAbits.RA4

#define OE_4094 PORTAbits.RA2

/*****************************************

** 函数名: TransByteForCd4094

** 输 入:data 要发送到CD4094的数据

** 输 出: 无

** 功能描述:把一个字节发送到cd4094,串行,然后打开使能。

必须把要用到的3个口线全部设置成输出状态。

原始程序用在pic18f4550中

** 全局变量:无

** 调用模块:无

** 作 者: leejun@qingdaonews.com

** 日 期:2007/02/10

** 版本 1.0

******************************************/

void TransByteForCd4904(unsigned char data)

{

unsigned char count,i;

count = 8;

OE_4094 = 0;

do

{

i = data &(0x80);

if (i==0)

DATA_4094 = 0;

else

DATA_4094 = 1;

data = data <<1;

CLK_4094 = 1; //时钟,再上升沿移出;

Nop();

Delay10TCYx(100);

CLK_4094 = 0;

Delay10TCYx(100);

count--;

}while(count != 0);

}

/**********************

//////////OE_4094 = 1;

***********************/

因篇幅问题不能全部显示,请点此查看更多更全内容