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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
51单片机PWM直流电机测速proteus仿真加源代码
! a/ ~( a" F& |6 [* Y0 h* r  V, i- _1 T" |" O, B! `4 G; {

. D6 |0 }/ W: l  J$ W& }! q单片机源代码:
8 a# S/ ]; h6 Z#include <reg51.h>  \# T& [; `9 n
#include <math.h>
, O& o) Z% p( l8 l7 Q- E#define uchar unsigned char. o. H- Z# N9 ?: r* w! Q
#define uint unsigned int6 X% K& Q! r) |4 c! R5 y/ d& Z9 j
#define ON 0% A- O3 [/ \5 c
#define OFF 1% E) ^2 S$ n, F
sbit PWM=P3^5;
1 O' n% u0 i8 isbit MP=P3^4;9 @- o: _' K. Q( z( h1 I
bit FLAG=0;# [/ J  ]9 {  a
uchar code dispbit[6]=
, k) W) V- |2 W{  Y" ^; i2 ~7 e
    0x20,0x10,0x08,0x04,0x02,0x01
' I( O* ?/ z, Q, M# V9 K}
6 Z4 U) g$ M. G$ M" U;. i" J, M, `0 Q' A
5 |2 \/ t% X2 P; S  y3 f
. n; p) _8 l) @. M
uchar code seg[]=% k& p' v# ~2 m& K% ?; \2 [0 i
{: X8 D# y: K% W8 E$ v
    0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90
9 u' h) j1 S& y" P! m+ l: m}
3 G3 U% J' r, J0 I;: ^# o7 b. F  n( C
//0,1,2,3,4,5,6,7,8,92 }/ w! C9 i( W
uchar disbuf[6]=. _1 P9 g' f* H9 y! \- s3 D6 C3 T
{9 W1 C5 X; Z% h% M6 d% v
    0,0,0,0,10,10
% x* _* _9 ^- ]3 d+ T$ Q}
$ r0 e' J: t, A9 D;
$ [! i  G# H% ?' x* ?3 Ruint temp[6];8 y+ w' g. w! ]& k) \
uint discount=0;6 H6 S. r4 ?4 |1 i# S# b
uint timecount=0;
$ @/ t8 [2 t% u* R% r" P//定时的次数
/ R4 N, a" h$ \. \2 x; i! D1 auint T0count=0;
1 m% S- k7 s7 ]! b; }uint hus=0;! {) E6 C; y" ^4 y7 ~+ q8 S
uint k=60;
, }# i4 r/ S! }7 Vuint Vc;$ r( i* H) f' v( Z0 i  e0 C* `
uint Vs;5 ]8 s2 F4 m+ V2 K, F
uint tm=3000;
; f% n2 ?( s' r  G0 b5 ?uint x;" T. O7 x7 A1 f8 l
void t0_serv()interrupt 1 - f8 N+ X1 U4 v1 l8 q" s
{3 b' W) S- O/ _. V# a
    T0count++;" r- Z% P8 _9 ^. \
}
) m$ a6 L; u/ B" D$ e& E8 ~void t1_serv()interrupt 3
9 j2 k  c3 w  ]" s{* o3 K% R& D9 o" S! b0 q
    PWM=1;
' t( A: [" a& T6 u0 d% I    TH1=(65536-tm)/256;# y9 a: b/ P: }
    TL1=(65536-tm)%256;% ?' K6 p1 m% G- n* J  q$ ?; u* c: y
    hus++;
& ^6 ~5 C3 |+ `    if(hus==tm)) [. t) I) n7 P# ~/ H, W. h8 ?
    {$ p1 Q- \) Y% m1 @9 @' o. a  a
        PWM=0;
2 j3 [; G/ a- K/ q7 c6 r        TH1=(25536+tm)/256;2 F" U+ D  T1 R8 y+ T
        TL1=(25536+tm)%256;6 q) y% u- E" W
        . }/ c0 T; R/ l* D4 C6 _* Q( \
    }8 y& I0 t. f/ x- x' T( n& N! T2 \- A0 j2 S
    timecount++;% c4 H; T3 |, i  ^9 }
    if(timecount==250)
8 B' c/ \$ X/ _: S/ {- K    {
( u/ q  Y: A+ |        //FLAG=1;3 ]! T! O2 D( z
        TR0=0;
. N0 ^2 H/ e; J# t/ t6 q/ p* H        hus=0;- h  l# R( |; l% A# B+ s
        timecount=0;+ w9 _1 X2 S0 G- M" l
        Vc=T0count*65536+TH0*256+TL0;
' L2 \6 O1 U! J9 Z7 J        Vs=144;2 O1 I  `+ x6 r' k# p
        if(abs(Vc-Vs)>5), j  k2 X4 t; X2 u( r8 e
        {
' }, T4 A& y2 F# I# X            tm=abs(k*(Vc-Vs));' x* q, E* Z. i) K) b$ p
            T0count=0;$ Q, I  h+ z# C: g# h
            TR0=1;
+ N9 s' S, o' U& y: v            TR1=1;* H8 ]: ^  d" c! Z) C+ L
            ET0=1;! F; e7 E# j/ h
            ET1=1;7 }7 l0 x+ ^, @2 e) w
            EA=1;
2 r  Z! [! b+ C4 @% \) e& ~        }
) t1 l9 P6 [3 ?  K% _        FLAG=1;
" M" b, r9 \# k5 S4 o        TR0=0;
  \. f0 ^8 T2 x# V; K* h7 t. }! z        timecount=0;
' U( w) z! g+ f& {    }
) z& [6 p: _$ u: X% W7 H/ p  q    P0=dispbit[discount];/ h) \) q+ U  r4 G6 c4 h
    P1=seg[disbuf[discount]];( j+ R5 A1 ]# h4 a2 f: I
    discount++;$ j; v* V% ?# [0 K: d. |
    if(discount==6)
) C, N# H# A$ `2 L3 A    {
, l5 s( q4 `" H6 S        discount=0;% N" x  j. w4 B4 s$ H; s9 P
    }0 w3 l- `/ O5 e2 L1 Y* C, a- U! [
}! s+ K; F1 B4 t( d5 y; }5 E- W
void main()
; r. N1 l$ v$ v5 i3 ?{
( n( g' i- p& Q  Z6 a$ Z3 t" q    uint i;$ d4 R, z  h" @$ N* S5 H5 |
    TMOD=0x15;
3 s* v% }7 g* c" r  E: {    TH0=0;
1 b3 |- {1 G5 c, d3 \    TL0=0;4 G! N7 n' n, l( M+ [# e
    TH1=(65536-tm)/256;
; d2 V6 h% n% a# I0 ^- r: d    TL1=(65536-tm)%256;) H( Y& |- ?9 E4 j. G7 J( f" s: Q
    TR0=1;+ E5 t& [. f# O7 X
    TR1=1;
% m0 D) m: |6 U3 z" `7 A4 r    ET0=1;
+ R7 l2 n& F1 w* {    ET1=1;% P! v# L( q- V- k' m5 g" s
    EA=1;$ F& s: ]  k* S, c+ Z# E4 O2 l
    while(1)
% D$ c- Q/ Q% d8 y9 V    {
  d8 A) B7 A; @; G        if(FLAG==1)
: r0 Q( Z6 {% d, S+ z5 `        {) M" M: n, u3 E
            FLAG=0;
$ _" B0 v3 X) R- U( j7 H+ R2 R            x=T0count*65536+TH0*256+TL0;
; O: l  \/ L6 l1 S            for(i=0;i<6;i++)/ X6 |4 u: Q0 z
            {
" ^8 G, n6 x1 h) l1 j                temp=0;9 h( n/ _, D8 x
            }
& \4 B5 c$ R: @9 g* I9 G3 h" |3 U' {            i=0;, ], }1 z, B( w4 H) b+ K* n# @
            while(x/10)
' Y4 X) d3 M' c" [2 `            {
& \  X: g% ^& h9 a                temp=x%10;! N! y, Q' l$ H% a
                x=x/10;3 E3 U* V( w* [, X
                i++;6 D# r0 `2 o& x
            }
0 O7 b, t$ x8 }            temp=x;$ l4 B9 ]" m* p! r9 Q+ T
            for(i=0;i<6;i++)
4 |! s8 y# q0 h4 B            {0 W9 }6 X! }" L2 T" ~$ W* N% B4 V
                disbuf=temp;& I( C7 p# h7 P& C8 C8 |
            }( B# K: T, J) l7 k
            / `9 @5 u  w* ]/ {
            timecount=0;, P* R$ H3 F2 w2 j7 Z
            T0count=0;) _- x% o8 b  i
            TH0=0;# O. g, F$ F5 m1 i; m4 [# [) H$ x
            TL0=0;+ W( Z( y; Q9 Q
            T0count=0;
' @$ I1 J0 X3 j! d, s$ b            TR0=1;1 G  V* Z9 n. \" k. @
            6 Q" P, u. F4 x% q* j
        }
$ F* V  H: c9 e4 X' m    }' j5 X+ V% a' d: k# N
    ' J3 l0 E+ ~) Y4 \$ w: b
}" l- {4 o; F+ U( h; p. ^; ^/ ~
, w: |1 {1 h9 O+ J- e) q3 h
下载:
6 _- Q3 o& e% ^5 l& U- U
游客,如果您要查看本帖隐藏内容请回复

  n8 j/ @" P% F4 D" @/ n
9 j% }* Y* r, v5 g/ D- S
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-19 21:02 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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