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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
PWM输出波形脉冲控制系统Proteus仿真及源码" \) ~5 L; i& Q  J% ]# D6 Q
) X. k3 w" z1 [4 Z5 J

3 o8 j, w. S! c8 z( ~这是关于PWM 输出波形脉冲的仿真proteus仿真,有仿真示波器,有程序,用数码管和流水灯表示输出结果* ]; Q7 R+ H: `! j

& f, ^' k' O" K! x6 G
# A0 W. _7 u* N+ @' K* \+ Y# Z7 F- z4 Y' X" P; D, p% L
部分单片机源程序:
" Q6 ]5 _1 \! N) \0 \
#define PWM_GLOBAL 1: P; X7 a- F& G% s
#include "pwm.h") B  ~1 c5 E, a4 h
/*****************************************************
6 @( f8 U; Z3 r9 }6 r6 r* {% r*函数名称:pwm_init(void)
1 q3 N- D; Y6 x5 D$ _9 k! \*函数功能:PWM初始化,设置定时器9 ]8 }, W4 e( g
*函数入口:无7 D5 k$ P1 d7 f4 B" Z4 C# n  r! l# ^
*函数出口:无) y' r! m; A! d  D2 }$ |' o
*****************************************************/
' @- }- ]& Y" [void pwm_init(void)         // 12M' w6 M, F3 z( j: R6 K
{                  
  @; y% W4 q0 o1 D9 L8 G) R; z        TMOD=0x20;       // 定时器1 模式2
6 |, J- N3 ?# v7 Y9 ~        TL1 = 255-10;    // 1ms
- {# @# K0 l& [& {! b        TH1 = 255-10;
9 B6 u3 S% p! |$ G/ I        ET1 = 1;             //定时器1边沿触发
; Q0 S) F) o# u: X# g6 Z        TR1 = 1;             //开定时器1中断
! B. @" A4 J) M5 U$ h3 v) k. X: ]        pwmPeriodCont =0x00;
& }7 W+ `1 ]" p        pwmH=0x01;, X, V! w! @3 I- t8 Z2 C2 J; j4 [
}. n3 r% o* @3 m$ B# y
/*****************************************************
8 S& Q; U& a" r2 V- W. L$ ~& _*函数名称:void pwm_set(const uchar NewPwmValue)
$ B1 e1 v9 F: _* b: v9 X$ y*函数功能:PWM占空比设置4 P! J5 j2 {( V
*函数入口:无3 A1 {$ r; D1 [1 m$ o$ b" X
*函数出口:无( Q- Q' P8 [6 O, h) c
*****************************************************/
3 D  u8 H6 o# }1 w, w, Nvoid pwm_set(uchar NewPwmValue)
8 F9 b/ {  v( C; j/ w+ f{
/ p- S! _" |6 O$ \6 \+ @5 W2 S0 y; P        if ((NewPwmValue >= 1)&&(NewPwmValue <= 99))   //一个周期里* o! U* o1 h9 z. `" a! Y& `0 R
        {+ E4 \# K7 k: j5 {7 }: B2 k* I
          pwmH = NewPwmValue;0 E7 I! J" g& h5 j/ C; J
        }
9 N/ f4 R2 E( q        else                                                                                   //若占空比不在1...99范围内则输出一个尖脉冲
4 X  S+ z, x% g; e        {
$ U2 q" Q' J# c          pwmH =0x01;/ G' g; ^9 ?% n
        }                                                                        
; {! Y2 u0 E( E7 F}' i' ?, J4 d0 L+ r& w7 t& H: f/ X
/*****************************************************
0 F6 o0 g4 A: g6 U*函数名称:pwmProduce(void)- q( d! w: s. b7 M% i
*函数功能:定时器1溢出中断设置- A; t2 w! ^" Z. u" n
*函数入口:无  c- _8 C6 T5 n4 E  o$ W  p
*函数出口:无( u6 V3 A( N1 W* ?, q. U
*****************************************************/
3 n" k0 b* ^9 W5 ]$ E. pvoid pwmProduce(void) interrupt 3
/ Y6 U0 L( K$ Y% P{, N; ]* q6 W8 N! R4 E, l
        pwmPeriodCont++;                         //PWM定时周期计数加1           7 j1 O& R/ ~( W. }) l
        if(pwmPeriodCont<=pwmH)
. M# d. t' `" U+ y  G8 S0 x  [          PWM_OUT =1;                     // 高电平从0 到...PWM_H0 Z0 ^2 z$ a$ N5 j
        else  // 剩下的为低电平时间- v/ W- W$ r" T+ s2 n8 _
         {
1 p* D3 N+ V3 U. E7 S           PWM_OUT =0;
, a# J; B. r; E5 _$ e           if (pwmPeriodCont >= PWM_Period)// 一个频率周期结束8 K: |" g0 ?$ r  ~. O
           {
* ]3 o& F8 p0 u7 Q7 T                 pwmPeriodCont=0;
' o3 T% E+ C: G* i2 P           }
( c: P" {7 f. I$ ?8 o9 ~* z' a7 h         }
/ G1 k' {* N( b! D* m; @}2 M; [# Y# [& i: W6 \0 _4 U! q
游客,如果您要查看本帖隐藏内容请回复

$ y" |+ y, G" r! r6 Y# G" s

9 b: f: M* x7 P# ~; n

该用户从未签到

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-8-1 16:09 , Processed in 0.109375 second(s), 26 queries , Gzip On.

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

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

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