標(biāo)題: HEF4094兩片級(jí)聯(lián),控制16個(gè)繼電器,單片機(jī)發(fā)送數(shù)據(jù)時(shí),最后一位數(shù)據(jù)丟失! [打印本頁(yè)]
作者: lvjie1225 時(shí)間: 2018-9-4 15:10
標(biāo)題: HEF4094兩片級(jí)聯(lián),控制16個(gè)繼電器,單片機(jī)發(fā)送數(shù)據(jù)時(shí),最后一位數(shù)據(jù)丟失!
原理圖如下:
1.png (58.1 KB, 下載次數(shù): 68)
下載附件
2018-9-4 15:09 上傳
ST_VAV,DIN_VAV,CLK_VAV,OE_VAV接單片機(jī),ST_1,DIN_1,CLK_1,OE_1反邏輯輸出。
問(wèn)題:分兩次發(fā)送8位數(shù)據(jù),最后發(fā)送的那一位數(shù)據(jù)丟失。
例如:(1)發(fā)送高8位0xFF,低8位0時(shí),HEF4094輸出0x007F。
(2)發(fā)送高8位0,低8位0xFF時(shí),HEF4094輸出0x7F00。
單片機(jī)代碼如下:
#define ST_4094_1 PCout(12) //PC12
#define OE_4094_1 PDout(2) //PD2
#define DIN_4094_1 PCout(11) //PC11
#define CLK_4094_1 PCout(10) //PC10
void vavle_init(void) //初始化
{
//初始化IO口
RCC->APB2ENR|=1<<4; //使能PORTC時(shí)鐘 控制端口PC10-12
RCC->APB2ENR|=1<<5; //使能PORTD時(shí)鐘 控制端口PD2
GPIOD->CRL&=0XFFFFF0FF;//
GPIOD->CRL|=0X00000300;//PD2 推挽輸出
GPIOD->ODR|=1<<2; //PD2 輸出高
GPIOC->CRH&=0XFFF000FF;//
GPIOC->CRH|=0X00033300;//PC10-12 推挽輸出
GPIOC->ODR|=7<<2; //PC10-12 輸出高
OE_4094_1=0; //反邏輯
}
void TransByteTo4094_ElecExpValve1(u8 dat16_09,u8 dat08_01) //2個(gè)HEF4094鎖存16位數(shù)據(jù) 并行輸出,dat16_09高8位, dat08_01低8位。
{
u8 j;
u8 i,tt;
CLK_4094_1=1;
ST_4094_1 =1;
tt=dat16_09; //先送高8位
for(i=0;i<8;i++)
{
j= tt &(0x01);
if(j==1)
{ DIN_4094_1=0;}
else
{ DIN_4094_1=1;}
CLK_4094_1=1; //CLK引腳的上升沿把數(shù)據(jù)送入寄存器
delay_us(10);
CLK_4094_1=0;
delay_us(10);
tt=tt>>1;
}
tt= dat08_01; //再送低8位
for(i=0;i<8;i++)
{
j= tt &(0x01);
if(j==1)
{ DIN_4094_1=0;}
else
{ DIN_4094_1=1;}
CLK_4094_1=1; //CLK引腳的上升沿把數(shù)據(jù)送入寄存器
delay_us(10);
CLK_4094_1=0;
delay_us(10);
tt=tt>>1;
}
ST_4094_1 =1; //ST引腳把兩個(gè)寄存器的數(shù)據(jù)更新輸出到HEF4094的輸出引腳上并且鎖存起來(lái)
delay_us(10);
ST_4094_1 =0;
delay_us(10);
CLK_4094_1=1; //CLK拉低,抗干擾就增強(qiáng)
ST_4094_1 =1;
DIN_4094_1=1;
}
作者: 1582588653 時(shí)間: 2018-12-14 11:25
CLK_4094_1=0; //CLK引腳的上升沿把數(shù)據(jù)送入寄存器,先低后高才能形成上升沿
delay_us(10);
CLK_4094_1=1;
delay_us(10);
作者: 1582588653 時(shí)間: 2018-12-14 11:26
CLK_4094_1=0; //CLK引腳的上升沿(先低后高)把數(shù)據(jù)送入寄存器
delay_us(10);
CLK_4094_1=1;
delay_us(10);
作者: zl2168 時(shí)間: 2018-12-15 18:50
本帖最后由 zl2168 于 2018-12-15 20:33 編輯
實(shí)例43 CC4094串入并出控制8/16循環(huán)燈
先Proteus仿真一下,確認(rèn)有效。
實(shí)例43 CC4094串行輸出控制8-16循環(huán)燈.rar
(67.45 KB, 下載次數(shù): 85)
2018-12-15 20:32 上傳
點(diǎn)擊文件名下載附件
4094-2.jpg (129.57 KB, 下載次數(shù): 70)
下載附件
2018-12-15 20:33 上傳
以上摘自張志良編著《80C51單片機(jī)仿真設(shè)計(jì)實(shí)例教程——基于Keil C和Proteus》清華大學(xué)出版社ISBN 978-7-302-41682-1,內(nèi)有常用的單片機(jī)應(yīng)用100案例,用于仿真實(shí)驗(yàn)操作,電路與程序真實(shí)可靠可信可行。
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |