|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
小弟我遇到一个单片机问题,其实本可以忽略掉继续开开心心码程序的,但秉着想冲硬件工程师这个物以稀为贵的职业的念头,打算钻一钻牛角尖。 void Hc595SendByte(u8 dat){' Y5 N3 Z* o. \, I# a+ N
u8 a;
6 _* P) z/ r. L5 a# i8 M- U9 H1 P/ D0 t2 A+ m6 j! G0 a
SRCLK = 1;
+ ?; I. F( S' W( G8 } RCLK = 1;
# X: s4 g+ }& ?. S, O# q" g$ P* M. e
for(a=0;a<8;a++) //发送8位数. R5 o: l! \2 r. m4 o
{# |( {0 y6 y3 O7 B6 Q
SER = dat >> 7; //从最高位开始发送, N3 M c: p/ p/ \
dat <<= 1;
y( a0 L4 K% d$ `
/ u) y* J, S/ d4 g. @3 `" f SRCLK = 0; //发送时序
% s0 K0 [0 j2 E0 ]% H7 h/ s" D _nop_();
) j+ `) H+ |; h _nop_();
V! _ |% A* D! W c$ | SRCLK = 1;
" t* V; j: |3 {* v }$ f( w& l: O! p4 G! Q/ x
RCLK = 0;1 G' b. y; A2 W& e) o6 r r
_nop_();( T/ l v( J& p* E3 z
_nop_();0 j" ?) |, l, w: Y
RCLK = 1;# K: h. m7 C# c; c. V
}0 k1 h: K- J/ _. j7 a1 k" G9 C
这一个是例程中进行74HC595移位并输出的自定义函数,假设* a8 V; e3 k. C( t
|
|