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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
PWM输出波形脉冲控制系统Proteus仿真及源码0 y$ w; k! K' i) y% `
; n% a7 w; |) U2 m  L

' g$ C, m1 `* `1 j% W9 Y这是关于PWM 输出波形脉冲的仿真proteus仿真,有仿真示波器,有程序,用数码管和流水灯表示输出结果
5 g& g8 J, {# d' g
8 c, p* v/ E/ J' m0 V 8 {) \) P# r! Y8 A- p/ H
7 X$ [# x" W1 @( W* P( m
部分单片机源程序:
; E+ h9 k8 `0 P+ V# H/ h7 r5 L
#define PWM_GLOBAL 1
+ D2 g, |8 c; Z8 r! H& w#include "pwm.h"
1 I! h: q  i- v+ S) g7 ]/*****************************************************
8 o! @+ E) \* X0 A*函数名称:pwm_init(void)& y: b9 J9 S3 {0 y# u
*函数功能:PWM初始化,设置定时器6 p( N/ e& F3 w( r# b
*函数入口:无
* @# X0 T& A' b9 s$ ^) Q$ |8 W( j*函数出口:无% Q) d7 M6 T. Q4 c. o
*****************************************************/, a! U$ M& `* Y% l3 f
void pwm_init(void)         // 12M
3 r& u( J6 @# R8 _  B{                   2 R( p% x1 o) ^& i2 f$ n
        TMOD=0x20;       // 定时器1 模式2
7 H% b+ p4 \7 s% b0 D1 |8 {( V        TL1 = 255-10;    // 1ms# S7 `+ p/ B7 [- T( E
        TH1 = 255-10;
* A3 ?8 k5 Q" q' d1 T) ~        ET1 = 1;             //定时器1边沿触发  X# d3 }# E& ]3 \  P( ~, V
        TR1 = 1;             //开定时器1中断
9 q, y) E. l, A# a( {" f) q& H        pwmPeriodCont =0x00;8 h% e8 ?5 q4 a5 V' `' @7 ^+ C
        pwmH=0x01;3 U; S$ R% C* H2 i
}5 L, J0 C1 ]5 X2 d
/*****************************************************
/ l& ~0 a8 _2 {% O. E4 d*函数名称:void pwm_set(const uchar NewPwmValue)
4 q4 E, ~& f: Y8 D9 a+ ~*函数功能:PWM占空比设置
7 x7 c; P% j/ w7 L*函数入口:无
( z/ H! u. J4 R4 ]" k1 d& ^*函数出口:无8 W0 R; I% L* T
*****************************************************/
6 l# w. C6 W. lvoid pwm_set(uchar NewPwmValue)' X  S, v( h1 z5 z7 u: e' N
{4 o# z5 g- W' d2 i9 [9 v3 s  T, L
        if ((NewPwmValue >= 1)&&(NewPwmValue <= 99))   //一个周期里
  V7 V, a7 y* V3 R) a3 g5 A& Z4 r0 y        {
4 p+ u. V' n- x/ y# T6 |          pwmH = NewPwmValue;- P. M" Y9 B# y; g- E& u
        }
4 O5 `9 N( n# R/ _9 C        else                                                                                   //若占空比不在1...99范围内则输出一个尖脉冲/ N  q$ v9 u& j5 s8 V! n/ b. g
        {% Y. |1 J9 @! C1 u& y
          pwmH =0x01;1 V3 ]6 h. e$ P% H
        }                                                                        
+ u7 f4 y4 i6 I6 g/ O" x- a! B}
) ^' }7 n  K6 \* h/ n& ^/*****************************************************
0 g. P, H# B- [6 I*函数名称:pwmProduce(void)
* l% U  n- w( N* `# a; D*函数功能:定时器1溢出中断设置
: v, \) ?6 v' B3 L) l2 @1 H*函数入口:无
) h/ i1 Y, P$ u*函数出口:无
  k# S+ |  D! d; ]  K) R. s*****************************************************/
. V# X1 M% M$ h7 ~  fvoid pwmProduce(void) interrupt 39 r3 T2 H! z3 `% y8 X
{
) @9 S5 I8 G$ l( v9 r8 d        pwmPeriodCont++;                         //PWM定时周期计数加1           
" m) z" y$ `0 a$ o9 S        if(pwmPeriodCont<=pwmH)4 {9 W6 T7 G' [3 n9 m/ u& C
          PWM_OUT =1;                     // 高电平从0 到...PWM_H
9 U0 f, y2 }$ X* n$ _7 |        else  // 剩下的为低电平时间$ [9 C) h% C+ h, s1 [
         { 2 w. T3 x# u: J
           PWM_OUT =0;
# h) `! ^% o* B" V+ ]' T           if (pwmPeriodCont >= PWM_Period)// 一个频率周期结束
6 w5 i$ |" k! W; b' x( G2 f  o           { # c. u$ R+ I% N3 |+ O/ c
                 pwmPeriodCont=0;
2 |- Z% l& j* s) q4 k, s2 Y           }
, H2 A8 w) v: R, K& y) K9 Y0 N         }6 a1 w# p2 G- j; Q) v
}
/ W" w) G9 |# i+ b  H1 D: A) ~
游客,如果您要查看本帖隐藏内容请回复

: w$ ?+ ~6 I4 p! D3 n
. d( m* _1 G) i/ p

该用户从未签到

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-10-31 07:17 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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