⑴ 8051單片機的串列口擴展並行IO介面,控制16個發光二極體,2片CD4094並聯,...
/*寫數據到串入並出移位寄存器函數*/
void WR(unsigned char data num2 )
{
unsigned char data count1;
for(count1=0;count1<=7;count1++)
{
if((num2&0x80)==0x80) /*最高位為1,則向SDATA發送1*/
SDATA=1;/*發出數據的最高位*/
else
SDATA=0;
num2<<=1; /*右移位*/
SCLK=0;
_nop_();
_nop_();
SCLK=1; /*產生上生沿*/
}
}
⑵ 鍗曠墖鏈4094鑺鐗囬┍鍔ㄦ暟鐮佺¢樋
鍙浠ヤ嬌鐢ㄤ綅鎿嶄綔鎸囦護錛屼嬌鐢ㄥ苟琛屽彛鏉ユā鎷熶覆琛屽彛錛岃揪鍒板悜鈥滀覆鍏ュ苟鍑哄瘎瀛樺櫒鈥濊緭鍏ユ暟鎹鐨勭洰鐨勩
鍙戦丄CC鍒4094鐨勫瓙紼嬪簭濡備笅錛
SEND_ACC:
MOV R2, #8
S_LOOP:
RRC A ;A涓鐨勬渶浣庝綅縐誨姩鍒癈
MOV P3.3, C ;縐誨姩鍒癉鍙
NOP
CLR P3.4 ;P3.4杈撳嚭涓涓鑴夊啿
NOP
NOP
SETB P3.4
DJNZ R2, S_LOOP
RET
;瀹
⑶ 8051單片機問題 如果用兩個cd4094串列擴展並行IO介面控制16個發光二極體依次亮滅,那麼
具體亮幾個燈,你可以通過編程去控制的,它2片可以控制64路LED的,看你的程序怎麼寫了。
⑷ 誰能幫我寫下用8051單片機的串列口外接串入並出的晶元CD4094的程序的注釋
#include<reg51.h>
sbit p1_0=p1^o;//管腳定義,可能是光耦三極體,錯把字母o當成數字0
void main()
{
unsigned char i,j;
SCON=0x00;//串口工作方式0,允許接收
j=0x01;//要從串口發送的數據
for(; ;)//死循環,相當於while(1)
{
p1_0=0;
SBUF=j;//j送到SBUF,從串口發送
while(!TI) { ;}//等待發送完成
p1_0=0;TI=0;//TI軟體清0
for ( i=0;i<=254;i++) { ;}//延時
j=j*2;//左移一位,即led燈往左輪流亮
if (j= =0x00) j=0x01;//一輪左移完成,從頭再次左移,循環左移
}
}
⑸ 鍏充簬鍗曠墖鏈篊D4094寮曡剼鐨勯棶棰
閭d笉鏄鏅舵尟鑴氥侰D4094鏄鐢ㄦ潵鎵╁睍I/O鎺у埗鍙g殑鑺鐗囧強8浣嶇Щ浣嶅瘎瀛樺櫒錛屾病鏈夋櫠鎸銆備笉鏄鍗曠墖鏈猴紝鍏跺悇涓寮曡剼鐨勫姛鑳戒綘鍙瀹冪殑sheet data 鏁版嵁鍐屼腑鏌ュ埌璇存槑鍜岀敤娉曘
⑹ 單片機多個cd4094連用的問題
QS端就是最後一位Q7,罩灶在時鍾上升沿改變,qs非在時鍾下降沿改變,也是最後一位Q7,它們都是旁悶帶用於運蘆級聯的,具體的參考datasheet