|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单路舵机控制单片机源程序7 ~- A5 c* h9 k' M% B; l
* M( |* U3 X0 k& a; ]
, |9 D; R- C. e* S' N4 S" R+ o
单片机源程序:8 m8 x6 w8 w+ y" z
#include "reg52.h" D$ X) p0 ]% t5 F: Z
unsigned char count; # T5 y3 N! ~. E
sbit pwm =P3^0;
4 p2 `& e1 ~, D1 k7 l0 [; d% T; A/ Bsbit jia =P1^4;
& L9 V0 ^$ [$ Y: isbit jan =P1^5; * Z+ A0 {* y. o9 T. _/ r4 _5 Z
unsigned char jd;
! M! s2 |% m/ e! K4 nvoid delay(unsigned char i)//延时2 n' o0 c E% Y( Y3 J6 U# _* N
{; [0 y. q% l* F0 e
unsigned char j,k;
1 M& j$ g+ d7 `& z, I, t* R' q/ v for(j=i;j>0;j--)- e2 y4 M' U. N( V' \
for(k=125;k>0;k--);2 Y4 z& W% h( e2 j& ?8 t+ G8 x
}
4 Y' v' A& K9 p# [" Z5 @void Time0_Init()
7 O# z+ d( \# I0 |; I9 Q{4 N. K0 m$ J* O; T
TMOD = 0x01; 1 B3 K# T5 v9 L" s" v9 e5 I
IE = 0x82;: B: c' A9 ]+ }+ l7 N! m
TH0 = 0xfe;
* _/ X3 q' a) u( z& C" C( OTL0 = 0xeb;
0 i. [! H9 O* [) W5 Y, i' j TR0=1;
% U0 L' b( g$ ` f8 a- \7 W6 T}+ C) D: U ~. V- l" q8 j
void Time0_Int() interrupt 1
/ }2 r+ s) q9 y. _9 W" u{$ ^0 l( L2 f9 ?, X
TH0 = 0xfe;
/ x; Q2 F6 z9 i4 YTL0 = 0xeb;
" q& Q2 n" W! e7 A! W* u3 s9 J* U: E% z1 O% L: r- g _" m
9 ^' _1 G% ^0 z) ]/ S C if(count<jd) 7 H1 f# F; B# x0 @* A9 e
{pwm=1; ) |) j7 Q5 {, I
pwm1=1; }
& I9 Y6 J }6 B3 t2 q( H' L( n else; B5 r, F4 p3 |+ I' U
{ pwm=0;2 b' I' \/ H# L" S
pwm1=0; }
% S( K' L) b6 L count=(count+1); % x H6 f4 e5 g" l: S
0 q. Q! E: I6 X6 _, s% ~; T+ o; K, H
}
! v+ |8 L1 l( ]& X, \. l& v void keyscan() ' P, v$ {+ H1 Q. E# \3 K
{ ' U# t* _2 |. h/ I# w2 P7 N
if(jia==0)
! E* N* F S d' P- \ {$ P8 {6 k5 ]. K$ s) @
delay(10);
: O: T& G/ x1 e6 A) N9 J6 \ if(jia==0) ! s" A& C+ u3 W# |% K
{ & y4 N# W! b" n" f+ T
. r& Z9 I J: E& F" b' Z1 ^
jd++;
( F/ G7 n& i: \ count=0;
8 v* `' ]3 x. J1 g if(jd==6): B$ b W @7 {
jd=5; % N) i9 u5 Y$ @# T5 j
while(jia==0);
( d% {, \. y: P% G) N }, {2 f, }6 z: @ r
}
* |) o; G) e- g @4 T if(jan==0) [: d! t8 m4 s F" C( |7 P
{
( ?; }8 \ _" C) u; O3 {) y! x& Z1 u delay(10);
- E+ V* M* @ D& ]: q. ]3 ` if(jan==0)$ q2 ^! I2 ]6 d3 h3 L7 Q
{
& l( b- l& b9 e( s: m( @8 {$ D jd--;
5 F, k5 G5 C* ^7 n count=0;+ `) K9 k0 i3 w& k! p2 g0 T
if(jd==0)
0 I. s& K+ e8 t: ]' | jd=1;
. m( p$ S- r$ T E while(jan==0);
8 m W+ c! S5 S0 I) I, c }/ m5 T' a4 L0 J2 z
}
5 E1 s' g7 u: H P& I V* T} r w( Y c" R/ s
void main()
3 R6 c9 F5 Z% b{
9 m6 e* @/ l: V& b3 Q9 G7 K y jd=1;
. L3 C9 X: @* e, x. W count=0; $ x% T# ^' `! J
pwm=0;. D; S3 H9 w# [; E% L; B
Time0_Init(); ; @( S$ ?7 m. s
while(1)
# t7 P# ]9 ^0 t# Q {
/ r$ l' ~& J9 ?4 ]5 W( E keyscan(); 1 C8 q7 X9 ^/ s+ ]& [5 q ]1 p
}6 ^6 U# z6 U2 V( u0 f
}
9 Y/ u7 a: Q# T" {- A9 U- d/ z! s8 K# M4 v! Z; ^
7 \0 s N3 @: ^
|
|