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

PWM输出波形脉冲控制系统Proteus仿真及源码

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-12-4 09:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
PWM输出波形脉冲控制系统Proteus仿真及源码) k7 V, |  K0 P! P
( |2 D, c9 S9 p! w3 m
6 m  B3 s5 i, G0 y! E
这是关于PWM 输出波形脉冲的仿真proteus仿真,有仿真示波器,有程序,用数码管和流水灯表示输出结果0 k: Y% M) n7 b' c8 f2 n2 U( t, |- g
. K$ _* {- J. k6 P& _' v

& X0 R) G: C; k0 h
" \0 s- F3 c) g+ j9 G7 b0 G部分单片机源程序:

% X' f* p9 A6 n' W; d/ O+ I, b#define PWM_GLOBAL 1
( g' @0 M% F& p: X6 W4 s#include "pwm.h"
1 {* M' |8 e6 v( l/****************************************************** }1 S+ `5 v' W
*函数名称:pwm_init(void)5 Y  L# t. ^% Z& }# c7 V& l
*函数功能:PWM初始化,设置定时器2 s6 i/ Z6 |4 _" m  _. O$ b9 O
*函数入口:无- i7 Q% [' S1 [, ~4 W$ G
*函数出口:无! d: F% k( X& v( G/ Y# L
*****************************************************/: C9 C8 a6 N( B9 \! h
void pwm_init(void)         // 12M
  t) s: h6 E0 T* b) |/ \{                   1 V$ L. B5 K0 ]* H/ K
        TMOD=0x20;       // 定时器1 模式21 P; L3 ~, e8 Z& x' b3 z
        TL1 = 255-10;    // 1ms
3 y# }1 ^- d  ^! s        TH1 = 255-10;
- W/ o' I* ?% b+ ~4 W7 M        ET1 = 1;             //定时器1边沿触发4 k( F- i: b$ w, P
        TR1 = 1;             //开定时器1中断
7 }$ x3 c1 Q, e3 o  H        pwmPeriodCont =0x00;
' d- R: c7 i; J        pwmH=0x01;
. C0 t1 @3 ~7 [& @}, ~" a. t3 b% W' p) a8 O
/*****************************************************7 c- `9 W" H0 a7 x1 I
*函数名称:void pwm_set(const uchar NewPwmValue)* ]1 P) H7 e; r. o7 O/ o% W8 `+ l
*函数功能:PWM占空比设置" _4 v& E" K; ?, N
*函数入口:无. K/ V) _$ x/ n# e2 F2 ^7 g! ?
*函数出口:无
9 R9 Q4 a- B) I0 F$ l3 j! P( q*****************************************************/
- H/ q" I6 v$ Z$ P) _. M+ Hvoid pwm_set(uchar NewPwmValue)9 R' N$ m6 i2 M" F" ~9 I: G
{8 S7 |2 `- `/ y7 J6 @* X
        if ((NewPwmValue >= 1)&&(NewPwmValue <= 99))   //一个周期里
$ O& g4 c+ e0 A6 e8 O        {* R) I7 K9 ^, L2 R* }! T# M
          pwmH = NewPwmValue;7 F- _# l8 [/ ^; s8 z7 W, l
        }
9 A) B6 W& O" U8 x4 o        else                                                                                   //若占空比不在1...99范围内则输出一个尖脉冲) y/ U1 z; [( x
        {
7 n2 H. K, ~& J' a  B          pwmH =0x01;
$ y* G% C8 s/ @6 L3 w        }                                                                        
3 [6 f8 ?2 n  z" g0 K}9 z# @5 G" L! n8 f
/*****************************************************( @  Y$ g; @6 ^. u- m# R
*函数名称:pwmProduce(void); S1 r; {" `% X) W3 d3 A  |( h. ]
*函数功能:定时器1溢出中断设置" F. v2 _! ]# U7 p6 l
*函数入口:无
; T+ K) K5 T, L6 k*函数出口:无1 k; J9 [: C8 @# D
*****************************************************/
3 M2 r% C1 {  l# Q5 k+ L* ~void pwmProduce(void) interrupt 3# h- u; ~$ K; U
{& V2 m! }; A7 q: w$ P9 _
        pwmPeriodCont++;                         //PWM定时周期计数加1           ( W3 w3 y1 w4 t" y4 k! z
        if(pwmPeriodCont<=pwmH)$ ]0 J) u" F& A2 Z
          PWM_OUT =1;                     // 高电平从0 到...PWM_H
" g, x2 V* }. D% ]5 t! y% ?        else  // 剩下的为低电平时间
% |3 ?3 B  w* q1 c         {
; T" S. c# T( ~4 E$ g2 Q, z           PWM_OUT =0;6 f/ ~- F6 g( v- H# d& `- v
           if (pwmPeriodCont >= PWM_Period)// 一个频率周期结束
$ s' ?7 R. Q$ G6 x$ U           {   r# q! \5 t% m
                 pwmPeriodCont=0;, g/ O) j, G4 N. y& [. ?0 T
           }
/ M: q. ^: r4 |         }8 t) P6 o6 Z& U1 ]
}
6 [9 `2 z" q+ T6 ?6 ]
游客,如果您要查看本帖隐藏内容请回复

( ^- Q/ e, \8 }9 `5 w

8 _% q1 ^+ ]# v) H& ?1 i' _

该用户从未签到

3#
发表于 2018-12-4 10:21 | 只看该作者
不错 支持一下

该用户从未签到

4#
发表于 2019-2-28 18:07 | 只看该作者
看看楼主的代码

该用户从未签到

5#
发表于 2019-3-1 13:40 | 只看该作者
如果您要查看本帖隐藏内容请回复

该用户从未签到

6#
发表于 2019-3-1 16:56 | 只看该作者
看看楼主的代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-12 13:05 , Processed in 0.078125 second(s), 26 queries , Gzip On.

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

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

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