您的位置 首页 动态

51单片机占空比规划

Proteus仿真P30输出占空比T+、T-设置占空比时间,每按一次加或减100msR+、R-设置占空比加减1%初始为100ms占空比50%数码管前两

Proteus仿真

P3.0输出占空比
T+、T-设置占空比时刻,每按一次加或减100ms
R+、R-设置占空比加减1% 初始为100ms 占空比50%
数码管前两位显现时刻单位s,后两位显现占空比单位%
示波器显现

运用定时器,防止了数码管显现和按键扫描延时,完成占空比实时输出。防止因延时等候。 12MHz晶振程序如下

#include                                          #define        CLOCK        12000L#define        Fosc        12000000L#define        TMR        1#define        TMR_BASE        (unsigned int)(65536-(Fosc*TMR/CLOCK))#define        TMR_BASEH        TMR_BASE/0x100#define MASK 0xaa#define AddT 0xa8 #define CutT 0xa2#define AddR 0x8a#define CutR 0x2asbit OUT=P3^0;code unsigned char Num[10]={0xc0,0xf9,0xa4,0x30,0x99,0x92,0x82,0xf8,0x80,0x90};bit        T1ms_Fg;void Timer0_interrupt(void)  interrupt 1{TR0=0;TH0=TMR_BASEH;TL0+=TMR_BASE;TR0=1;T1ms_Fg=1;}void TMR0_Init(void){TMOD=0x01;TH0=TMR_BASEH;TL0=TMR_BASE;TR0=1;ET0=1;}        bit        Tmr_1ms_Fg,        Tmr_10ms_Fg,        Tmr_100ms_Fg;unsigned char        T100ms_count=10;         void timer(void){Tmr_1ms_Fg=0;Tmr_10ms_Fg=0;        Tmr_100ms_Fg=0;        if (T1ms_Fg){T1ms_Fg=0;        Tmr_1ms_Fg=1;--T100ms_count;        if (T100ms_count%10==0){Tmr_10ms_Fg=1;         }if (T100ms_count==0){T100ms_count=10;Tmr_100ms_Fg=1;         }}}        unsigned char T=1,R=50;				   

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/dongtai/317920.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部