|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
小弟我遇到一个单片机问题,其实本可以忽略掉继续开开心心码程序的,但秉着想冲硬件工程师这个物以稀为贵的职业的念头,打算钻一钻牛角尖。 void Hc595SendByte(u8 dat){ `8 h: f6 l5 o* z7 t* v
u8 a;! `$ D! {, D$ F+ |
/ Z" Y! _' f2 I1 s: J8 o SRCLK = 1;0 B O* B+ Z5 Z G& u7 N$ l
RCLK = 1;
+ f3 }5 C" R, C0 |8 I9 s" F
: ~5 w# |* r" w: p" p" a$ d: B( | for(a=0;a<8;a++) //发送8位数
9 [0 [) V& F4 Y# X7 R) l/ | {3 M, b4 H e, q3 l
SER = dat >> 7; //从最高位开始发送& m( Y7 K9 n! H! h# f+ Q
dat <<= 1;
7 \' r+ ]/ ~( ^
+ C/ M @0 m% M( V: m SRCLK = 0; //发送时序/ [6 z! b% L4 ?0 q2 Z; L
_nop_();
1 h! B1 e) s! ]: H U& h _nop_();
p3 |, ^$ k; c% c! R3 L% I SRCLK = 1;
* @: S& N: p5 `+ i }
# R$ m$ U; t6 ^ RCLK = 0;
" {; B" s0 N# e* E8 a$ m) m* N _nop_();+ }5 h% P1 E$ e/ @
_nop_();5 O* h6 o6 s' Y: O5 f+ Y3 |: H1 z
RCLK = 1;8 i1 i" |# R" |+ u! z# ~
}
" I$ B& O7 y# Z! Z+ M/ { 这一个是例程中进行74HC595移位并输出的自定义函数,假设
- I, K. T7 r$ }, ^" ]& y |
|