CD4094驱动程序
CD4094用的比较广...可以用在静态显示...串口转并口...驱动数码管LED等...
程序...
#include
#include
#define uint unsigned int
#define uchar unsigned char
/*
sbit K1 = P3^4;
sbit K2 = P3^5;
sbit K3 = P2^4;
sbit K4 = P2^5;
*/
sbit STR = P2^0;//定义CD4094各端口;
sbit DATA = P2^1;
sbit CLK = P2^2;
//code unsigned char C51BOX2[3] _at_ 0x43;
void Out_4094(uchar data1);//CD4094写数据子函数;
void Delay(uint a); //延时子函数;
//主程序开始;
void main()
{
uchar i; //无限循环;
while(1)
{
for(i=0;i<255;i++) //让CD4094端口的LED不断从0-255显示;
{
Delay(10000); //延时;
Out_4094(i); //调用显示子函数;
Delay(10000); //延时;
}
}
//while(1);
}
void Out_4094(uchar data1) //写CD4094子函数;
{
uchar i; //定义子函数;
STR="0"; //保持然来的状态不变;
for(i=0;i<8;i++) //写八位数据进CD4094;
{
if(data1&0x01) //判断并发串行数据;
{
DATA="1"; //发高电平;
}
else
{
DATA="0"; //发低电平;
}
CLK="0"; //形成上升延脉冲;
_nop_();
_nop_(); //延时;
_nop_();
CLK=1;
data1>>=1; //数据移位,送下一位数据;
}
STR="1"; //数据送完;更新显示;
}
void Delay(uint a) //延时子函数;
{
uint b;
for(b=0;b}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)