|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
74HC595驱动控制LED 原理图和单片机代码
$ m) P9 b& h* j8 {0 f: y' I8 \' L. D$ L/ p
* L7 z$ H, I: b5 [. c. |
51单片机做的74HC595驱动控制LED
/ T8 C& z. |# n/ J: {1 V6 c 3 a& \# i: ]2 ~
. z x& c6 q3 n# H$ F2 K
单片机代码如下:
: ~; N; D' S; X; {) J9 G0 I#include
2 g1 _7 U) D8 ^* E3 a, A9 }#include
3 L d v7 u4 u' f+ Q! m% u2 l/ v! z$ r$ }$ l' A
& n/ V( E2 H/ k C5 [7 N9 N
sbit SRCLK=P3^6;. d1 e. k- \/ }3 g
sbit RCLK=P3^5;
4 c: T F7 x! \! ^* tsbit SER=P3^4;
) v1 l- o" U- K& [, w$ G" Nvoid Hc595SendByte(unsigned char dat);+ K. h- H( E. U9 S* E! W% R
void Delay10ms(unsigned int ) ;
# E/ Q* q Z" w; R2 {% H% G8 B9 pvoid main()
' o6 Y6 x& h9 q/ S0 G$ s% |{
8 A" n, {' M& [! }1 r- R unsigned char ledNum;+ a! G. b6 ]) T# z/ a t
ledNum=0xfe;
) g6 i$ Z1 g) o C6 {# Q/ p while(1)) ^* r6 }- `' X, q }! K
{
) h$ S0 G; t0 M9 F5 C. D3 T Hc595SendByte(ledNum);
2 S) V e+ }. }& S p ledNum=_cror_(ledNum,1);
9 [4 i3 W0 H' b2 k( \( D% ]+ j7 l) d Delay10ms(50);! r K. A. G0 O* i9 V/ I! U
} ! [( a; Z B8 D1 X/ a' N3 V
}! Z) p" V" f5 e, b9 N5 U( @
/*******************************************************************************5 o4 I2 U4 |# A; _6 l
* 函数名 : Hc595SendByte(unsigned char dat)
- y7 s7 P. P, a, y0 m. }# I$ h8 d* 函数功能 : 想74H595发送一个字节的数据
, N5 F9 k5 W& k9 G2 p& ~$ I7 `* 输入 : 无$ i, m$ j# Z2 ~- `! L
* 输出 : 无$ N% x3 H* l8 Z/ e+ V' ?8 O8 l
*******************************************************************************/) H+ h( H1 @9 h4 J
void Hc595SendByte(unsigned char dat)4 J$ X! x) ]& P5 M
{8 F- I& B/ Q( ]) T( g( L! R5 x
unsigned char a;
& n( ?% b/ E$ [ _ SRCLK=0;
! [" S, D& `) I/ G2 Z/ j RCLK=0;
' `: E: @2 R& S, |: X8 x for(a=0;a<8;a++)) W4 \- o8 l9 B5 ? P1 i
{* k& q3 I& z5 m9 L6 @4 R
SER=dat>>7;' v4 w; l7 M& L- X
dat<<=1;, ^$ O# L8 ]/ Z4 O4 Y
& T; G. ]" J4 ~% G- h
9 Y+ M/ P% n+ V3 X% I SRCLK=1;
8 p% a8 U* ?8 w2 x _nop_();
. M$ R4 C& r# |0 L _nop_();' j# A8 ?' B8 |* M
SRCLK=0; ! I1 E9 q6 a- c' E; y5 i# I: `
}
( p3 a! ?7 A+ {# k* r4 b; B$ ]; @/ p! D$ y4 G. M( w
# g5 }5 ~1 v; ~1 {! o( P% N RCLK=1;
2 A# E& T7 S: \3 U _nop_();& \! ]% \4 k7 W$ y
_nop_();2 Y/ ~% u# G4 _8 m3 z9 T9 m
RCLK=0;
# f$ B& O2 F' G |6 S9 z" o- C}
6 S9 Z2 K' s7 p1 V# p/*******************************************************************************) |" }( ^: f) a, u% @
* 函数名 : Delay10ms
. _2 H- Z n' T: x8 [( ]* 函数功能 : 延时函数,延时10ms5 e7 t$ j% M3 N4 K# h
* 输入 : c: o1 w5 N9 x7 p* M
* 输出 : 无: Q& J/ d8 [6 L1 u! P& f% V! P
*******************************************************************************/
+ g2 _6 I4 ~1 K; ]# s$ Fvoid Delay10ms(unsigned int c) //误差 0us, X( n+ B4 u+ V* C4 a
{
; p- I# `* m: r7 }& T% m unsigned char a,b;; t# D% |: P+ W( g+ e6 U- s
for(;c>0;c--)
% E: p$ c% U8 Q8 Y: v% K) M for(b=38;b>0;b--)# s3 K- ?+ g/ Q% ?- s
for(a=130;a>0;a--);
$ u- A) |; f/ n2 k9 `' M8 I4 n3 c/ H}
0 V* S! H" W0 [% f& a) d C8 r: I% e
9 s; |) [9 L; K. C# `
下载:
: w' J1 y2 B; O( X+ @( d" t
! e4 {. i. J8 f/ @7 R$ U$ p
% b0 R) \- Y4 W1 p, I7 i |
|