原创 简单的CD4094驱动程序!!!

2007-8-13 00:25 9261 11 20 分类: MCU/ 嵌入式

手上刚好有一片CD4094...刚好身边有个示波器...就用去EDN里面下了个CD4094的资料...


看了下,就用KEIL写了一个小程序...HE HE...用示波器看了二路波形...基本没问题...用硬件搭了一个LED电路...


试了一下...电路能正常工作...HEHE...CD4094用的比较广...可以用在静态显示...串口转并口...驱动数码管LED等...


下面发上来这次的程序...


#include<at89x52.h>
#include<intrins.h>


#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<a;b++);
}


 


HE HE...太晚了.睡觉了...

文章评论9条评论)

登录后参与讨论

用户369215 2011-7-6 20:19

"if(data1&0x01) //判断并发串行数据;" 请问此处是做何判断啊?望不吝赐教!

用户1399255 2010-2-5 13:33

我在用洗板水或酒精清洗电路板后,晾干后总是会在一些缝隙留下一些白色物质,不知道你有没有碰到这种情况?

用户1399561 2009-4-14 09:14

哪位朋友可否幫我這個電壓表的程式加進去這個4094的芯片,因為我的I/O不夠用了 我的郵件是jhguo2008@163.com skype:jhguo2008

wang1jin 2007-11-29 17:22

长时间没搞了.忘了.

用户43378 2007-11-29 16:55

应该先送高位吧

用户43378 2007-11-29 16:44

怎么不是左移??

wang1jin 2007-9-20 17:20

不是吧...

错了...我用硬件搭了下...实际上可以工作呀...

用户17735 2007-9-20 15:58

1、数据反向

2、4094子程序 最后STR="1";  错了,

 应该STR=0;

 

wang1jin 2007-8-16 15:16

好像二个IC差不多.HE HE.

用户388828 2007-8-16 14:49

74hc164好像和这个一样,串进并出
相关推荐阅读
wang1jin 2011-11-13 16:39
wang1jin单片机视频教程115盘下载地址!(迅雷下载)
  为了大家下载方便,我购买了一个115盘的空间,可以长期快速的为大家提供视频下载。   下载地址如下,如果下载上有什么问题,可以及时联系我,我给大家解决!       ...
wang1jin 2011-05-04 19:14
《51单片机C程序应用实例详解》随书代码下载
 最近有朋友向我反映《51单片机C程序应用实例详解》的DVD光盘中没有随书的代码,我去打开DVD光盘一看.确实是没有.可能是出版社当时没有放进去,为此我向广大的读者道歉.  当然道歉是不够的,代码也要...
wang1jin 2011-04-26 21:30
和朋友一起出的一本书《51单片机C程序应用实例详解》
本书是由sunhm、指挥和wang1jin三人合作完成。《51单片机C程序应用实例详解》在北京航空航天大学出版社的大力支持下,终于付印了,这是本人与另外两位朋友花费一年多心血完成的。  编写本书的初衷...
wang1jin 2010-11-26 15:29
请注意:PROTEL99SE视频被人刻成DVD来高价出售
最近在电子QQ群中,有一个QQ为1429474268人发了一条消息,(抱歉请允许我公开这个QQ)。他发了一条广告:实现PCB LAYOUT工程师梦想的同仁请进:http://item.taobao.c...
wang1jin 2010-06-21 13:40
wang1jin带您从零学单片机视频教程第一章下载地址
内容介绍:电子爱好者社区$Zk Q6^6L ~ _ I8h#zM0s5G(R一、单片机硬件讲解部分详细讲述了:电子爱好者社区4[7g Tt"Efff uH k.Q2aZ01、什么是单片机。电子爱好者社...
wang1jin 2010-06-17 22:34
无法下载视频教程的朋友可以购买最新刻的光盘!
最近网站上的视频教程因为服务器的问题,一直无法下载。很多网友也在问我怎么不能下载。因为我个人也没有能力去购买服务器,为大家提供这个视频的下载,为此我感觉到很抱歉。为了解决这个问题,我已经找到应对的方法...
我要评论
9
11
关闭 站长推荐上一条 /2 下一条