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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
51单片机PWM直流电机测速proteus仿真加源代码$ L& A* c/ m* A8 E! k9 X
& y1 W; D$ C/ V# e7 i" H% q4 f

2 l- ?! ?; m4 i$ d9 e: x% F单片机源代码:* A( F. A: J3 k- y- e; N
#include <reg51.h>
  Z8 W8 X0 a; j* P) N" |1 H+ y#include <math.h>5 A5 f( a4 V) Q
#define uchar unsigned char
' N' f9 o! x' w) i6 C' O#define uint unsigned int
4 k! [) d7 |8 I* }#define ON 0
3 W  K- f3 C% ?9 n. b: x#define OFF 1+ o' ]8 E, s& k& B% ~
sbit PWM=P3^5;
/ V- g, E- G. v0 d1 p! ~" Gsbit MP=P3^4;, y$ ?, ]3 q* x! j) u( Z
bit FLAG=0;
" O. @( J! y6 duchar code dispbit[6]=6 {) \$ x' @- G
{# J% |2 G2 t0 I# N0 `6 @( Z+ \$ N
    0x20,0x10,0x08,0x04,0x02,0x01 # A2 n' t6 d$ L. d/ B
}% t* n7 m+ G: i- X( D8 m
;# A0 N/ \' C2 H

  s+ e% h% {7 z( h

$ D, g- [9 H0 |. O, _! F2 r! |uchar code seg[]=- E5 W$ y* o( L+ v
{
; Z, @9 ^$ h4 c0 a    0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 9 z# D+ O5 }; w1 P' H
}
1 V% D+ `2 ?+ g% K8 h$ o& T;
2 Q- e- ~5 H3 e" Q//0,1,2,3,4,5,6,7,8,9
( [( S) a$ ?3 Z! M$ }  @uchar disbuf[6]=
" i+ |2 S! w7 y) h$ ^{
7 x  \5 c" `* O& v' N    0,0,0,0,10,10
7 R6 R) I+ x! C+ N! u" O3 X}
9 h) O- a# k( H% w5 T;% i6 a6 p! `% @# _/ r  f# q
uint temp[6];
+ ?$ U3 B. j" Yuint discount=0;! H. H; ^+ c& t" ^2 h# v  l( h/ O
uint timecount=0;
( w! u( P1 M. d. G: b//定时的次数4 _# S# z$ c, g* ]
uint T0count=0;
+ E& ]9 F1 a( \; G& H. N8 Luint hus=0;! O$ J& x+ E$ ~% v. ~2 M3 v
uint k=60;
+ e/ J0 F" T" q* |3 i6 Muint Vc;( F! p2 p" x5 a: x$ Y! P: u
uint Vs;
/ }+ [' ]8 }: G& i  Yuint tm=3000;/ F+ I0 G4 w& s. d9 R- R
uint x;; T; z  ?! m1 ~& Q( r" {1 b
void t0_serv()interrupt 1 3 t1 g+ w' A- G5 c
{. d, Y5 x5 o% J. M4 m6 X
    T0count++;
) m( a6 ~- ?6 D$ ]}
3 G0 Q: d6 ]9 L) I, Kvoid t1_serv()interrupt 3 ! X# J6 ?" `3 Q) `% {% A
{* ]4 a1 S- W# {
    PWM=1;/ u: `5 h8 k; T* W
    TH1=(65536-tm)/256;
: J, c# S" k# i% y3 v: |    TL1=(65536-tm)%256;/ e8 ]* `' B2 Z9 u
    hus++;: ]" s1 o$ g5 N9 t: e
    if(hus==tm); T0 z( Q4 W+ k; }( L: m3 Z& v  m
    {
3 w& X+ f* E* m- v        PWM=0;% p: ?: e  ?- ~3 w0 b
        TH1=(25536+tm)/256;
, X7 \4 z( H: z- |6 w' q" S8 r( M        TL1=(25536+tm)%256;$ Z, ~7 E+ p) }4 k% v. ]$ @
        
& K4 r; t5 z* M% [* G' l1 i    }
$ `' S, o2 j3 {, q4 `5 H    timecount++;
4 {7 }" ]) ?2 P1 C9 _' S* I    if(timecount==250)
4 ^7 d8 D) C# J" I    {
& r/ o# y+ s% b6 n% Q7 c5 W8 r3 @/ N        //FLAG=1;0 }* M# f) I! C, x2 n. b
        TR0=0;
2 S# I% u/ k1 C, T7 r        hus=0;
' B' X7 ~; h1 Z3 b7 d  M        timecount=0;
* w7 E5 X% A: E, q: V* e0 a8 Q2 g+ u( a        Vc=T0count*65536+TH0*256+TL0;
7 C* ?; H( X  n2 U) X) b+ Q) u# V        Vs=144;8 ]4 B" b; D0 J
        if(abs(Vc-Vs)>5)& R- U/ t& w7 B3 x  Q9 @
        {; f" L) Y9 X. F: Q1 g' k0 {
            tm=abs(k*(Vc-Vs));
) R$ X! W; E! @! {6 U5 w- y) h1 b            T0count=0;. K2 [: m9 d3 D- ~4 e
            TR0=1;# [; d9 ~2 l$ R4 r; |& y- e4 y# D
            TR1=1;4 I+ l7 B( [9 @6 k; ]- E! _3 l* Y8 ?9 R
            ET0=1;. M# m2 K8 @  R8 k  O- B' L2 F& U; E
            ET1=1;8 C8 c, s; |! c# X# M; L3 U: y6 e
            EA=1;8 W, F# {7 R3 k6 L0 C& y; _1 \
        }
# z4 Y& A8 r9 F* F) f& k& p        FLAG=1;- j  G% T* [4 d1 E% B
        TR0=0;
& F7 T. N' J! `& k9 j1 a        timecount=0;
* D8 n6 b- v- [% c& l" P, |! o' @    }
$ m; u( H. [% R- Y' f6 I    P0=dispbit[discount];
& ]) I7 |& |, j& S    P1=seg[disbuf[discount]];9 `! F2 V  G" M
    discount++;5 _( v. c2 [% v- ?; O4 {
    if(discount==6)0 i; p4 R, p: U0 F
    {" g! h- S# x: |  n! B$ W# D, t6 x
        discount=0;
0 s# y0 ?6 f" J% W& y. g    }
! V+ `8 M( A0 B* u. G; g}7 |/ q$ f  N! L( @) D# b/ q$ o3 l
void main()/ ?. U( \( y, c! y/ F: s
{, [/ `7 q1 a+ V1 V4 v/ F8 ^
    uint i;
- U5 D( t, H% K) d$ A. q    TMOD=0x15;3 s/ h8 C& W$ H4 H& h1 X
    TH0=0;
. O: Y3 S( y. m. z2 R: \    TL0=0;
" P' `3 E5 v; y! M% e" q    TH1=(65536-tm)/256;! ~  d  d! o; ]1 S5 K
    TL1=(65536-tm)%256;  v" V+ E7 ^. T
    TR0=1;
1 ~& X9 f5 J0 I! Y    TR1=1;- Q6 \( m7 p, M6 s' x/ S4 I
    ET0=1;
" B- y3 _+ J( ^  N1 X( _! J6 W    ET1=1;6 s' C# [: D/ \& g  D: X
    EA=1;
' O$ E7 J2 b: g9 P0 w* ^    while(1)$ T) o4 s! T0 v( G* l) {
    {
; d. h& g+ [; w3 _. [7 E2 c7 Y, y        if(FLAG==1). M3 N8 p" f. ^. u
        {
+ U# Y2 c# X1 {2 [            FLAG=0;" ^# S8 z; |- z0 i* Z( b9 p
            x=T0count*65536+TH0*256+TL0;. t+ l: r$ I0 n. p1 G8 f6 U% P
            for(i=0;i<6;i++)
* U* B# B6 v# {            {
4 ^! k9 ~9 v& Y$ {5 s                temp=0;, \& n. k+ N  T; A3 |
            }5 P+ s% |4 k1 _
            i=0;
9 p+ f& Q$ h) n3 T  I            while(x/10)
! ^/ ]$ i2 O8 G8 ]' c! b            {
" z4 T& D3 o) c! \$ O2 ~+ y( e( @                temp=x%10;% D9 n# S( m6 s* X  z
                x=x/10;
# Y( Z0 }9 U; R; a- S. c4 L. \' r, P4 X                i++;& \0 K8 s5 |+ O, ?: u# |& K+ w' j
            }& ?5 i/ ^* K0 s' Y. `( V0 ?
            temp=x;$ x# _- ~/ ]0 y5 b0 i5 L1 b3 e
            for(i=0;i<6;i++); J& h5 x% `. v) R, e4 x7 x9 Z& J
            {7 n8 m% q! Y3 B
                disbuf=temp;/ ]( c. B6 ^9 n0 N# f
            }4 \; C( P( w. }) B/ N  R* x8 W. ~
            
' G8 K. `. z7 s% w% s$ s            timecount=0;6 X$ A7 G5 K% A# |" ]
            T0count=0;
5 ]  ]- r7 W# V6 l            TH0=0;, I3 W* c8 G  x5 d* T8 i
            TL0=0;
, R0 }5 J8 |( Z) n" S8 E( M6 G            T0count=0;
+ h+ I( g$ v5 H' y, Z            TR0=1;
7 ~+ ~- p" a) w: M' @7 A- A3 L            4 v8 }( Y. r) w; c6 D
        }1 \3 c+ n6 ?& w0 F' R5 F" d% `
    }+ i5 J! \7 W6 p% N: {
    7 g/ R9 s2 U* H9 J  S
}" v0 m! `  ]% Y7 R+ X3 u3 e( H

( U* W3 i7 T: ]  R) u( ~% ~, t下载:/ E% n& r% i: j) ~; t
游客,如果您要查看本帖隐藏内容请回复

5 G& b) R2 v) G7 V' J' _
0 `" D, j* b* ]3 w. Y, Q% m5 a8 D* x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-30 03:17 , Processed in 0.093750 second(s), 26 queries , Gzip On.

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

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

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