| 
 
| 本帖最后由 yy温控 于 2009-12-16 13:08 编辑 
 我用了两片cd4094级联,下面的是我写的程序。
 不知道问什么不能实现级联,望大家指教!
 #include <reg52.h>
 #include <intrins.h>
 #define uchar unsigned char
 #define uint  unsigned int
 sbit STR=P1^2;
 sbit CLK=P1^1;
 sbit DATA=P1^0;
 sbit key=P2^7;
 void Out_4094(uchar data1);//CD4094写数据子函数;
 void Out_40941(uchar data1);//CD4094写数据子函数;
 void main()
 {
 
 while(1)
 {
 if(key==0)
 {
 
 Out_40941(0x02);
 Out_4094(0x40);
 }
 else if (key==1)
 {
 Out_40941(0x08);
 Out_4094(0x01);
 }
 
 }
 }
 void Out_4094(uchar data1) //写CD4094子函数;
 {
 uchar i;
 STR=0;
 for(i=0;i<8;i++)
 {
 if(data1&0x01)
 {
 DATA=1;
 
 }
 else
 {
 DATA=0;
 }
 CLK=0;
 _nop_();
 _nop_();
 _nop_();      //延时;
 CLK=1;
 data1>>=1;
 
 }//数据送完;更新显示;
 STR=1;
 }
 void Out_40941(uchar data1) //写CD4094子函数;
 {
 uchar i;
 STR=0 ;
 for(i=0;i<16;i++)
 {
 if(data1&0x01)
 {
 DATA=1;
 
 }
 else
 {
 DATA=0;
 }
 CLK=0;
 _nop_();
 _nop_();
 _nop_();      //延时;
 CLK=1;
 data1>>=1;
 
 }//数据送完;更新显示;
 STR=1;
 }
 | 
 
×本帖子中包含更多资源您需要 登录 才可以下载或查看,没有账号?注册 
  |