原创 cd4094 子程序

2009-4-22 12:04 4793 2 2 分类: MCU/ 嵌入式

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


}
b4aa0ff7-c9fb-44f2-a3a5-2e5b083f1126.jpg


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


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

文章评论0条评论)

登录后参与讨论
相关推荐阅读
esad0 2020-10-13 13:41
stm32f407移植cJSON 归纳
测试很顺利,主要感谢以下三位前行者的无私开源。参考下列三位大神文章汇总:在STM32F407上简单移植Cjson  https://blog.csdn.net/qq_4176464...
esad0 2020-05-14 13:58
关于读写ic卡的程序注释
         IC卡,RFID卡,M1卡。E:\eDiary\2020\4\PIC18F97J60_SPI.cE:\eDiary\202...
esad0 2020-02-10 19:32
NTP 不好用
[2020-02-10 19:29:09.704]: [I]-[testNtp.printTime] 2012/06/01,11:17:12[2020-02-10 19:29:10.701]: [I]...
esad0 2020-02-09 15:27
用AIR202 在ONENET 上位置定位
onenet 有位置的增值服务。是收费的。 但是ONENET 还是很厚道的, 每天300万以下的定位服务是不收费的。 鉴于我的设备是固定安装的, 因此只使用应用管理中的  地图 ...
esad0 2020-02-06 10:44
python 做智力题
和儿子一块学PYTHON .   感觉和C 语言基础的没有什么不同。感觉还不如C语言灵活。编程语言,一通百通。题目见下图。结题思路:   这是一个最简单的密码加...
广告
我要评论
0
2
1
2
3
4
5
6
7
8
9
0
广告
关闭 热点推荐上一条 /2 下一条