|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
74HC595驱动控制LED 原理图和单片机代码
$ s3 }9 H; F- f5 C6 \
! s7 I/ l5 c e8 Z* u, a# y' W; r
7 A" ?+ U; N* o& E& b8 b& U9 x51单片机做的74HC595驱动控制LED$ o2 ?( i% r6 S+ u- k
/ h8 Y$ }6 ` M+ N: [7 X
. B" v5 C6 }% D0 i+ D3 C4 N
单片机代码如下:
- T( H! b, C4 d# G1 M#include
. g. C% q- \, X- O( Y& m; `#include
" q f" i9 m* U2 I A. r9 e0 G, v) \
8 |& E( K$ G$ {7 W" }6 j( D
1 a! }/ P$ C c# T6 dsbit SRCLK=P3^6;
& T7 J+ w. `; tsbit RCLK=P3^5;
3 c- ]% S7 ^: G) Vsbit SER=P3^4;
. ^0 w5 e' E7 a& w/ Fvoid Hc595SendByte(unsigned char dat);8 e2 q( m' X: M! }5 Q) t
void Delay10ms(unsigned int ) ;" T6 Y, `$ N3 K% V4 y4 p' w
void main()4 e8 ^, a& ~$ `' M2 w
{
2 A: [3 ?0 U. c* b: {; \ unsigned char ledNum;5 Y% A0 h- T8 U% z
ledNum=0xfe;+ D* h* b2 q2 j4 x; D8 ^
while(1)1 V! B: L+ A, z; y! ^
{* b* w& ?4 ], O! ~3 Z2 u
Hc595SendByte(ledNum);
/ F! B6 w0 Y# f/ o8 p" t ledNum=_cror_(ledNum,1);
2 s4 k# s: a1 X. G4 m Delay10ms(50);
* d5 \; ^1 q6 N, ]& k$ W }
! H% q3 D5 T9 w0 z" M2 t}
( F7 p% z' z/ u/ b( W- H. A5 U/*******************************************************************************5 S( }$ J! s! I3 A$ ?4 U! f1 K) |
* 函数名 : Hc595SendByte(unsigned char dat)5 e5 e6 {1 r+ r( W- j5 e
* 函数功能 : 想74H595发送一个字节的数据
; g* n- [2 x/ N2 d* 输入 : 无' ]4 _' l1 H8 I# u3 e! n$ y& Z
* 输出 : 无! Z7 h* B4 S: c0 g# x
*******************************************************************************/1 d4 y1 a3 ~; G b( w* C1 E
void Hc595SendByte(unsigned char dat)
6 F9 N& y. O9 a8 T{
3 l1 U. |7 F4 `- a3 L$ n4 n unsigned char a;3 p' \1 V; f8 c; y
SRCLK=0;: p, b1 z6 i4 k2 A* z" i) S
RCLK=0;
2 i: _* g) \( u2 b! B7 u for(a=0;a<8;a++) q+ W5 {* E* [ M6 i- _: l H
{- k0 a8 C2 z, p6 l
SER=dat>>7;# |& r; I' u, c# U9 w- w9 \& p
dat<<=1;! A5 z- _& ` X& Z+ P/ }
0 v# c: I u# ^. x& y( Q; D! _
# s9 M& n* [8 G+ Z3 p
SRCLK=1;
7 U$ w- _; P1 I( { h/ k _nop_();2 a! `! K. ^" o0 W" E
_nop_();6 g) r; h, J7 C" g- @; \' |6 p
SRCLK=0;
: v& |9 g& S( `0 f9 F) N; X }
6 l e' l7 w9 e) x/ A# J2 K% T( Q/ j- E; d0 X$ W- R6 H" o3 P4 Z
! z' Z. R5 O1 `+ R# t RCLK=1;" m' c f) g5 Y8 Z8 u
_nop_();
( b7 r" Q& ^: A! n) \$ D/ D _nop_(); Z) H4 S$ l- o8 b* p; K
RCLK=0;# s5 K% @7 L$ T/ c* V
}
0 c7 g2 \- ?0 {& A2 q. q3 N( z5 u/*******************************************************************************
4 ]: ~ h! x1 r0 [; m* 函数名 : Delay10ms/ y4 Y! j) v1 J5 p- e9 p4 D
* 函数功能 : 延时函数,延时10ms1 C! m5 n$ j5 w. E6 |0 _2 x
* 输入 : c
4 K' y+ U, E: B0 e8 w7 n6 \, i& R2 ~* 输出 : 无
: d7 v1 r& `8 K& J*******************************************************************************/' i( U$ o- W. h5 L: x4 p6 B
void Delay10ms(unsigned int c) //误差 0us
7 W. ]6 r9 r$ w: `, Y{, P4 t! ]* T4 R
unsigned char a,b;9 M7 u |( }, s- k1 A- G% a7 F
for(;c>0;c--)
0 T$ u: m( r# C0 k9 x for(b=38;b>0;b--)# k! n- n7 B. \" M7 z+ n
for(a=130;a>0;a--);. B5 @* w* w2 q, j* l
}) ?. @0 Q8 ~# }9 o" E" Z
! y) D" W+ c4 K, `/ O. Z1 y0 I4 x9 O' S# x% K; ~+ Z2 P
下载:
/ ]7 q' x8 Y) r1 @/ R! c+ o/ P- N/ l3 G* _$ l+ s
7 R. o1 q/ ?" g |
|