找回密码
 注册
关于网站域名变更的通知
查看: 640|回复: 1
打印 上一主题 下一主题

51单片机PWM直流电机测速proteus仿真加源代码

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-1-16 10:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
51单片机PWM直流电机测速proteus仿真加源代码* z" s8 f3 b( q+ |  `) ]- j+ {) @1 {
) H/ j. l# D, H2 ^  m- F
7 w) F5 ]8 v" n
单片机源代码:
) a! v1 C2 G9 e8 \$ K8 G# {) v  t( @" F#include <reg51.h>
6 h- [& h+ L1 G4 [#include <math.h>7 d7 u, u2 A. p5 b+ H  \! j. z  c
#define uchar unsigned char0 |: A. X" `% ~; V9 b4 G
#define uint unsigned int! O  p8 z  R0 S, Y! i+ v
#define ON 0
% x9 a: M; n- ^) d+ `: f#define OFF 15 B' S& z' V: t% H% ]* i1 m
sbit PWM=P3^5;1 M2 l& [6 ]9 W1 H- `
sbit MP=P3^4;
; R0 @. F5 e2 @* G$ f5 m+ N2 v+ pbit FLAG=0;
% e" q- V. H- A: d9 N, Q: i" j  kuchar code dispbit[6]=/ k: I2 V9 ]: v0 H4 D" A, L
{
! U; \) a( o1 g0 N    0x20,0x10,0x08,0x04,0x02,0x01 $ {5 U9 K/ {7 @4 J8 T
}
( c+ ?& I6 K. }2 N;$ i6 V! J- ?9 l" Y
- z! I. T& B3 G0 }

3 `$ n) i4 F3 B( f9 U7 D! |uchar code seg[]=
, O- L/ l+ q9 t2 E, V' I8 `1 k2 e8 T{- |# K/ S* R! g1 T7 N0 M0 l% W  x
    0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 # ^8 M( d4 h; M
}! S8 s; b) S8 k) z2 G
;! V% ~5 v3 A! M- }- O# Q
//0,1,2,3,4,5,6,7,8,9
1 Y# h3 E4 |, j) ]3 D, euchar disbuf[6]=9 ~" U3 \, C, I+ n4 Z+ J9 [
{/ `4 c5 M) d! S  e
    0,0,0,0,10,10 * W: u7 g1 V) x! X+ ]) `: m$ T
}* S! ^& O2 r/ g, s2 v5 f
;. f5 T/ ?. x" a  g: H
uint temp[6];1 g( [) g* H' C8 m8 v
uint discount=0;# E  G3 a% k' }2 ^6 F
uint timecount=0;
# L: J: ]8 r- z, Y//定时的次数8 N7 E0 [7 U& Z: b0 q$ t3 {2 \. o
uint T0count=0;
' _3 K: k0 D! |; C" I9 Luint hus=0;
- b5 G7 O( N' Q+ A! h( j+ y& ?& Euint k=60;
, \0 {7 x- t- I0 B- Puint Vc;
" V1 `: g7 V( D/ G/ P+ e1 s0 huint Vs;
) A6 ?) x2 y3 r( i4 P. F$ Kuint tm=3000;
8 n; ], K( u$ A% D+ F6 i% O) xuint x;
  A% Q# q: `* w* Qvoid t0_serv()interrupt 1 1 o/ m8 C1 V- R; L! i$ K
{
; P8 H' n( u2 ~  T2 ?" ~& ]    T0count++;$ w- J  U  `+ U: r" W7 g+ b9 Q
}
8 `2 p8 S, N! Z5 r1 M! {* N' Mvoid t1_serv()interrupt 3
  A* i- v: O' R. g3 i% j  W( E{
$ {+ A5 T& @2 G4 N/ ]* `    PWM=1;9 i" D% J$ S. p6 V+ w# S
    TH1=(65536-tm)/256;
4 P  T( {5 [4 p) U  J4 j    TL1=(65536-tm)%256;
; A3 d6 L; E5 b) E4 u    hus++;
9 c2 Z# H% A- X    if(hus==tm)
# \% y  v& H4 M; Q# x/ A    {
$ K9 j& ^" @3 c5 k! t1 Q9 ]        PWM=0;
7 d9 A8 ~% m1 Z& B6 i. y/ I5 v        TH1=(25536+tm)/256;
; M7 R5 V. A( Z  @5 p        TL1=(25536+tm)%256;
; k! u. m* v4 i2 d        
" ?4 ?1 \. T" E- e    }
- p* p' k* {- l3 k  X    timecount++;! @, R) E7 d# [
    if(timecount==250)! [$ E+ J) @& Z4 L% R9 Z3 W
    {6 E8 \+ K* }9 J, K3 ^% j3 P$ N
        //FLAG=1;
* V. m# F: u. K) A5 @% M2 I" w        TR0=0;7 M% R" @* Z- c
        hus=0;
% l! s7 l# l5 x. z3 M        timecount=0;
* R# q8 D  n) ]        Vc=T0count*65536+TH0*256+TL0;/ ?3 j6 [; F1 Z) p8 F
        Vs=144;7 U5 O  D# q9 R' |9 V* A
        if(abs(Vc-Vs)>5)0 F7 h3 K3 m! G+ M) S1 ?, a3 A  ~
        {* y* l/ Z/ G# i9 J3 }
            tm=abs(k*(Vc-Vs));
. X; j8 Z4 j* Q; `5 M, P) M            T0count=0;
; {, Y# w. c. `8 Q& v: W; r            TR0=1;
! N& m/ j* C  Z: a+ y6 P3 U: w            TR1=1;
6 P! X& ~0 s9 T; J# g            ET0=1;
# [  b8 L9 W0 d# f" f; c+ s( _+ r            ET1=1;9 N/ _2 v1 f1 G
            EA=1;
: @# x: F) D$ ]% p: F# p        }
% I, u6 {0 S- U; ?        FLAG=1;% W  L5 y: v7 K6 U7 U
        TR0=0;6 f$ e$ \. H5 O0 C2 T& E% c! W9 A8 ]
        timecount=0;/ U7 J% l2 {0 H" j
    }
. E, ^/ _6 C; Z, h" c7 \# y( B    P0=dispbit[discount];
1 m  r9 ^! G% I3 ?  e    P1=seg[disbuf[discount]];1 t' I6 o+ q: d
    discount++;
) s* r- n5 D& Q$ b! o    if(discount==6)
  E* u1 D; e4 d: A- x& F7 x% B    {: K: \3 u4 `9 ]# ^0 V! n* e! M( ]
        discount=0;. v' \4 M3 H! g) P1 A: c0 O/ t; r+ c0 i
    }  o- k! z( J1 r
}
! s1 @) c8 Q( v, y% X: }void main()6 x/ X1 l4 X  K( a7 f8 t# s
{
, N4 v6 S# G( [0 z; G4 M& R+ t/ e    uint i;4 S( R5 L7 {" ^6 p& o8 ^  w0 n  T
    TMOD=0x15;
) G; w$ \. u. m, o1 [3 a- n    TH0=0;
/ H6 h) a% f0 ^' [2 V    TL0=0;; [' ^3 B- \& e+ i. p
    TH1=(65536-tm)/256;
8 H$ C8 |# w3 j8 I2 f4 v- q    TL1=(65536-tm)%256;
" u' @# J  i' B- g    TR0=1;6 c/ j: I5 B! j) _" v
    TR1=1;: C. F6 }1 b2 ?9 l3 \
    ET0=1;0 Z1 n, U0 s& K- K5 d5 W
    ET1=1;
0 D4 a2 s1 q8 w( U# |$ E    EA=1;/ A3 ?1 L8 }  m4 q. I# b* V6 _
    while(1)
6 ]7 w( [  ^, d    {' r; V$ d6 I2 |2 w  S& A; ?
        if(FLAG==1)  h/ G% m. G1 H/ ]0 Y' ~+ w- k; F
        {; ^/ r( p+ H0 V3 t
            FLAG=0;3 C" W8 r+ X( s& L' l
            x=T0count*65536+TH0*256+TL0;0 _# A* `: U5 n$ ?+ ^) |
            for(i=0;i<6;i++)
7 m5 F7 ]. A5 _            {/ w2 E! i- G7 h* ~* N
                temp=0;. L" |3 l2 h9 V1 o7 V$ P
            }9 ~3 J  q$ x3 |/ |
            i=0;
7 W* \% Z* p% P' l! [: g/ ]            while(x/10)
9 w) N6 c* ]$ u/ |( o            {
9 g( y5 K' L) D' u/ V0 Z+ C" m5 r                temp=x%10;
: J) J+ K0 r& b                x=x/10;; i2 F7 v  u; `  Y, f7 C
                i++;* _! x. h: o/ I/ p- m9 P+ J0 O
            }
% W7 m/ v% m% k+ \. X            temp=x;
. Z4 \8 r! q5 |7 ?            for(i=0;i<6;i++)7 E. |& l4 [2 H
            {
- c+ \, d3 ]% g3 M/ z( I* C2 [/ _                disbuf=temp;1 Z: K5 X, R+ y* B. s1 U3 C
            }
) K# |4 @+ e/ Q6 h8 X            
; j. \! I0 v9 k8 S8 m+ }. a1 Y* Q$ B            timecount=0;
* I& D1 b. j( |. ?( o            T0count=0;
. ?4 i- q0 u5 l1 e            TH0=0;
1 H9 H" |/ @$ q! n5 I            TL0=0;
6 R; Y; a; o3 A" d' y' G  D/ U  i            T0count=0;4 `( {2 Q8 `# `5 p* K7 O; _
            TR0=1;
; C( n) i. ]+ c) k/ q# P8 ^            + b7 ]3 J1 [! b. o- Y% ?. C4 t  y
        }
( n" _, y6 b3 X3 C/ N6 m: M    }7 C" {5 e) W/ m/ C* O0 i. E5 B/ ?
   
; X& i0 m  v  ~) e. m1 N, e}
, x5 F. i; h) I! z/ k% S( G% X2 G/ p' H* |3 A
下载:
1 g3 e/ F! u6 z1 ?
游客,如果您要查看本帖隐藏内容请回复
* H" [& W0 b  {" C8 H
2 r1 F, n# t: m* J* C
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-3 15:15 , Processed in 0.125000 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表