|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单路舵机控制单片机源程序
) n8 F( C% D9 `4 \4 Q+ N2 A8 {3 b2 O4 w0 h; r
" W4 x2 q4 C# P1 d) r( C$ k
单片机源程序:
: a7 @2 Z( Y4 R#include "reg52.h"
5 V! d4 y: {5 q* U( L; C1 p) {unsigned char count;
0 d9 o' c6 F$ `% r' z' O, Isbit pwm =P3^0;: g6 T5 w& g2 v
sbit jia =P1^4;
1 I; U$ d& |7 W% p+ ysbit jan =P1^5;
' h3 M, {' h) M- k, Tunsigned char jd; $ N2 M0 S3 v2 Q& Y3 F
void delay(unsigned char i)//延时" ~. Z; [- ~0 G& J$ i
{& Q, f( v- {7 c" m9 _5 K, J' q
unsigned char j,k;
, K' i$ P9 d" l3 n for(j=i;j>0;j--)
1 l# ?. b9 L8 z) T% _* T# V2 ~0 f' G for(k=125;k>0;k--);% {8 B; W" E) q9 ~4 a. t4 ?. q
}! ^, R2 q c b# G9 T& A
void Time0_Init() $ a# W; y V7 D% e' g7 s) z
{/ ^; r! n8 w: J# C
TMOD = 0x01; ; D; J$ j3 H8 O9 w; ^5 i% Y
IE = 0x82;
k( Q$ x% q2 f) {) R4 Q$ G+ sTH0 = 0xfe;" R% t+ h: k1 ~8 y( S+ a
TL0 = 0xeb; ( [6 b/ C% }4 u/ |6 u3 v
TR0=1;
+ a; ?6 }; E/ M. _' m}* C% e7 |' |! n% f+ [# P2 A7 [
void Time0_Int() interrupt 1
0 k) W: e* _: W( Z) n, X1 F' Q2 n{
1 f" _" w# i$ U5 M& {8 aTH0 = 0xfe;! y- t8 O- ` B. l& ^. x$ w. T
TL0 = 0xeb;' T" x0 E8 v1 L; U% W2 Q
' v6 ]6 o1 y! v2 {: A& n1 P- c4 T
F5 K& j, {0 O+ U
if(count<jd) . Q5 s, X1 R/ ]0 U$ w! Y/ C" J
{pwm=1; 7 [1 F# Z, G( h4 v+ s' B9 M2 \" o8 p4 d
pwm1=1; }6 s# F* [6 s( J# j
else
* ]! z% u. W ?) \2 d# j# e4 V5 O# ? { pwm=0;. s7 K! n/ T* N' ?
pwm1=0; }- q, X |% D( s' H: U. L1 \# c: y6 l. [
count=(count+1);
' S! ?/ u. c t* o$ G" W
+ o0 S, k' X6 f0 O
: s& u' l3 g- J% E; U } * z* b# D# ]+ x" I, Q
void keyscan() - }3 K @0 F! ]* Z
{
( n4 Y o0 m3 \. r/ S; T7 u if(jia==0)
& j$ h7 `) W6 p: N {7 s+ t- _9 |) W: x6 }3 N
delay(10);
2 z" g; x5 `9 \ if(jia==0) " U! @2 E7 \% o- g% D0 b. k
{
6 x" B+ m# a& L, g$ Q * y0 P; w8 M8 p1 l
jd++; 0 `5 p- q6 U, v7 ^2 [
count=0;
- n/ I, u( k5 u; _ if(jd==6)
/ L% T3 X) O" A1 b jd=5;
6 d" s8 D0 g1 h" M# ^1 g while(jia==0);
' R) X$ |* N3 R0 N }
- D+ R% B2 g( _ }
, S) g. P7 F! R7 \+ M* C3 y) m& m if(jan==0)
6 A N6 J* R& q/ y( v" o8 m# r! P {$ ^. l% h0 S- b! R; Z. @
delay(10);
9 x1 }& C, m$ X7 F0 l if(jan==0)+ L) D0 p% l9 W
{ ' \/ T& J" v& H- d& [
jd--; 6 N0 P/ U1 S/ h+ ?) g
count=0;
2 |3 E4 p5 I d0 ^! v) Q if(jd==0)
3 s7 M B: p0 X: Z jd=1;
5 S9 _! {3 ~. J2 a/ F. w while(jan==0);( z: e2 F* s' h5 _/ ]
}
- o4 @/ B. I. v2 I } {& b" @" C9 b" z! }& s" x" }
}
. q2 {! I9 P1 `! |; u) v; wvoid main()
% E' v& |: y" [3 \5 z/ g* t& U4 ]{: M+ P! O) P- d; k, ~3 r
jd=1;! G0 j2 T0 w5 f4 u8 p5 O
count=0; 2 u; X& A7 H- K$ A8 h
pwm=0;
+ q! _: Z2 A$ S+ \5 v2 E- i6 P& I Time0_Init();
' A# w3 h- f) y2 m while(1)( }, |1 P6 C' T0 N9 M7 _9 t
{
7 q# V& ?( D3 g3 C, |& G. i& M2 | keyscan();
. ^$ t- [& h8 _ E/ v1 Q+ R/ D }
! C7 i0 k3 u' t3 ~; { y( j}7 k0 b$ Y7 o5 }$ s; \* w- z
% V4 S) W3 B% t, o
6 ~) F7 Z3 i2 _5 m$ @) K
|
|