打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
cd4094 子程序

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 <p18f248.h>
#include <delays.h>


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;
***********************/

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
使用单片机制作的数字电压表
ST7920液晶---DS1302时钟程序
51单片机读写SD卡程序
CAN通信方式的一个参考程序
xpt2046的简易驱动
请教各位达人..16*64点阵滚屏程序怎样写? - 新手园地 - 21IC电子工程师社区
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服