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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
51单片机PWM直流电机测速proteus仿真加源代码
# p$ _! L( O& t& i! d+ Q' d. b
% Y" K  g& T2 T( `4 J6 s* y
* b3 R. w1 W% X6 r  \0 ]: `
单片机源代码:6 Z. k" f3 P* g; @- G0 K
#include <reg51.h>4 Z  a1 `: ]$ \9 B2 ^6 S9 S, c
#include <math.h>+ z& R/ }& h) p; k( ]
#define uchar unsigned char- `' u  v1 Z7 c6 v7 {! K: p5 O% H; _
#define uint unsigned int/ K) _4 J* b7 ]5 W3 w/ J& B
#define ON 0
) O8 ~& G# s1 P, V. @#define OFF 15 T' i1 t3 d/ d2 f( ?  l
sbit PWM=P3^5;; r# t- V+ _' H& J
sbit MP=P3^4;
5 S4 e' c. ]& Z- F% Nbit FLAG=0;
+ M  a3 d: d! ^- e) z1 `uchar code dispbit[6]=6 M- Q0 e8 H; }# |' U
{% v; C+ J2 Z$ w. D3 ]
    0x20,0x10,0x08,0x04,0x02,0x01 . s1 L$ D- v1 r0 \  v. o
}" m( Z! c" Q2 m+ Z8 @. Q% K/ C
;0 k3 m7 U/ t: M7 G5 O

; y' X2 i+ @1 P/ k
4 j. C0 g+ g- v/ L) h8 M: C( u
uchar code seg[]=
" y: n2 s4 j# H) ~& j{
% V, U$ S" H" j% i* V    0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 + l+ X! |8 j8 n/ b4 f
}
: o7 h' D# K% b4 y! d- S;
3 v7 W7 R9 _$ e, T; J' Y//0,1,2,3,4,5,6,7,8,9  {3 ?! I: e1 J6 }4 T; m
uchar disbuf[6]=
0 R! T' m0 v+ A; P! S; k- V* j4 u7 ^{' o6 q1 I8 [9 C6 h
    0,0,0,0,10,10 * V- m' l# R% f# w- g
}
) y7 F" M1 k5 f4 c' e;
* l- R0 `! ]/ }. B5 U0 Iuint temp[6];+ p. n0 s5 f! e# M
uint discount=0;
. u5 E2 O+ f1 guint timecount=0;8 W0 ]$ e/ [) ^" j
//定时的次数
& D( k, J3 K- m; Yuint T0count=0;
( Y& |- {, ?3 n  }! }5 m8 f% guint hus=0;
2 r! }* L6 S; c3 W! zuint k=60;4 C' b9 a8 K  L: R& s9 y
uint Vc;( ~9 q+ n0 Y  v& l* p. z3 Q
uint Vs;
, \6 ?8 q. v; q) i8 M5 tuint tm=3000;. f& k: v# V8 x) w) r( Q* _
uint x;7 {  t8 j7 }4 H1 {; s4 i# U! e
void t0_serv()interrupt 1 6 o, |& y' }5 ~# @6 \' x% j* Q
{
. K8 g. w1 t3 Z1 R& `, x    T0count++;
" p, D; E, J7 Q; }$ e* }% r# S}5 L3 y  {* X% c4 F
void t1_serv()interrupt 3 & U- w/ N7 G, \8 @3 L0 T2 `1 u
{
: W- A# x: k! t9 V. ^' ]    PWM=1;
) X9 D: W; ^2 Z1 t2 |    TH1=(65536-tm)/256;) m( n+ |& r" }/ f
    TL1=(65536-tm)%256;) l, H( f) n7 D9 B8 ^
    hus++;! @4 A7 A. c5 ?) z! q
    if(hus==tm)
2 C+ w: u  u) O. P    {& S9 u+ B7 [0 Q( n  D
        PWM=0;" @% D( K9 a+ s* u% g1 m
        TH1=(25536+tm)/256;3 b: R) T: x- Y% ^$ j. m' u* [
        TL1=(25536+tm)%256;3 ~( W$ F" I8 U9 `+ Z; {$ V
        
1 M& T4 h# T1 J. [2 ^    }
' k# M6 ~* k! j6 f: u8 A6 F  ?2 {    timecount++;
; `2 E- d" d( ~8 b& t    if(timecount==250)
4 G6 ^0 R, i& R, O    {, I) l& Q2 N+ O, d& e3 D
        //FLAG=1;
) i# }, m: J  H6 j4 g2 U# n+ _        TR0=0;
! P6 L  k1 \6 v! V' ]        hus=0;' n( N" A3 w' h1 X5 Z: K
        timecount=0;
, S  V5 }3 `1 e, D% d        Vc=T0count*65536+TH0*256+TL0;
6 {; ?$ G# F3 O! Y- m        Vs=144;2 `2 I8 G/ g/ V& l- U3 z4 x
        if(abs(Vc-Vs)>5)
* a+ }" }* A% H$ d) e        {
( M$ Y2 M' R& B% P3 [9 @- O            tm=abs(k*(Vc-Vs));
* c: \' o" ^* @7 K( R; u9 d5 e            T0count=0;
1 [9 R# g2 Y8 ]( O. O- G0 a            TR0=1;4 Z8 ^: h6 d, [' x
            TR1=1;2 b& G) Z# c7 q* B- J+ N
            ET0=1;% q+ x$ y* b- |1 {& l# A
            ET1=1;
$ I6 E8 Q4 f" Q            EA=1;
+ q' G- K+ h" _* H, j$ W6 X        }
: ^2 H% }9 R) }$ W, K& ~; Z7 n        FLAG=1;
# O( {. |9 g4 [) M* g        TR0=0;( _) ?+ o( d- y. B& W
        timecount=0;
: p/ ], m( y# i; D7 S    }
2 x* M+ N9 O) b0 }! x* q' q1 B    P0=dispbit[discount];4 R6 @2 I" Y$ s7 d1 }! ^# f
    P1=seg[disbuf[discount]];
2 e% o' |& O2 h    discount++;
6 ~5 F' n# k6 W0 m+ y" A    if(discount==6)
$ p  X+ T+ x- f. G& O" K! C+ G( a    {
0 @: u. t9 b! O! r, e        discount=0;& D# x( L# ^0 |& i8 u
    }2 L: D5 l5 y5 n$ ]6 l6 M
}3 o5 E: I, T% S- H. ~
void main()) N2 P) l* R/ T0 s. C# G" T! `
{1 t8 }7 }0 X9 w: S( G, ^- }
    uint i;
# d1 m+ H% c5 i& }9 y    TMOD=0x15;- I+ H0 z) C4 @9 \8 C% l
    TH0=0;
6 R5 b3 a1 G/ {; H# [    TL0=0;  I4 c2 u. ?, M  `" ]% [& U/ b, y
    TH1=(65536-tm)/256;
" v1 a: H, m, y6 @# g+ r+ G    TL1=(65536-tm)%256;' H+ N1 |% m9 h4 ], U
    TR0=1;8 ?% ^/ m8 x) y
    TR1=1;
1 p% Z4 g0 Z- W" v& n1 @    ET0=1;- y1 x! `6 Z- @. @
    ET1=1;2 x( T$ v( X9 L6 c
    EA=1;$ E' o5 H% O- I! L  X/ m9 t
    while(1)
. w4 O8 O! F7 B2 z+ T% E% g$ }7 M& l    {. M, I+ @) k8 b
        if(FLAG==1)" y2 S! k5 E+ e( e- D  P$ ~
        {
$ \: X) D8 t! n0 E            FLAG=0;7 t, T3 l4 C# X" Z4 J1 U7 p
            x=T0count*65536+TH0*256+TL0;
( ]: f# h0 N9 @, }* \            for(i=0;i<6;i++)9 V& Y" U+ m+ E1 q
            {
8 I9 R) N, y: K$ `9 [1 N* O                temp=0;% ]$ e1 f0 A7 _: t% Y7 W
            }3 h; J  m; J! p# ~
            i=0;8 K* I  E8 x) P2 N/ ^/ h1 Z8 h
            while(x/10)
3 i) j5 X: }6 l& O+ i            {+ O- J# `  o; Z4 j) `
                temp=x%10;
& l- f7 [6 P; \" R5 O& O7 Z* F                x=x/10;$ i: C, i  \# ^" w
                i++;. {, z9 C0 A$ r1 h% v4 N
            }
4 h$ [8 C2 X8 I/ v/ S* _) u1 }            temp=x;
; D/ @8 i3 I: D/ Z7 T, j            for(i=0;i<6;i++)6 Q2 w/ R% }% d7 t
            {+ O0 n; ^$ C  ]0 g
                disbuf=temp;  C8 ^& C4 E: W  m  H
            }4 n" l' s8 u* f" Z/ g0 W
            1 S  g5 d' U" A' q% r8 B8 z
            timecount=0;0 d8 w; x/ u& ?/ @6 @7 @: b4 r
            T0count=0;
  c7 U2 \& v3 ]            TH0=0;5 @( K& O1 t: ~2 l
            TL0=0;
, k( ]% f0 z. f& P5 |            T0count=0;
2 N, U( x/ c5 t4 h            TR0=1;# Q/ }8 a& O4 Z6 _/ w
            , C/ x  U( p5 k" F+ n
        }
6 g2 a0 k6 i  A1 x    }
0 _7 k4 O# ?  t- K   
( U" k( C, }% l5 ~# |}* t5 ]& _' }$ m4 f/ n8 U: ~7 G/ H

0 [  d( W4 ~* P# I下载:
. v0 K. _) y1 [+ C
游客,如果您要查看本帖隐藏内容请回复
3 O7 y; T' Q/ \- c

6 a; O' W/ f8 a6 {! a5 D
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-9 02:03 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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