久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

51單片機占空比設計

作者:佚名   來源:本站原創   點擊數:  更新時間:2013年01月17日   【字體:

Proteus仿真        
P3.0輸出占空比    
T+、T-設置占空比時間,每按一次加或減100ms   
R+、R-設置占空比加減1%      初始為100ms 占空比50%       
數碼管前兩位顯示時間單位s,后兩位顯示占空比單位%      
示波器顯示



使用定時器,避免了數碼管顯示和按鍵掃描延時,實現占空比實時輸出。避免因延時等待。 12MHz晶振程序如下



#include <reg52.h>                                         
#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 0x2a
sbit 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;
void diaplay(void)
{
   static unsigned char status=0;
   if(!Tmr_10ms_Fg)return;
   P0=0xff; 
   P2=0x01<<status;
   switch(status)
   {
            case 0:
           P0=Num[T/10]&0x7f;
           status++;
           break; 
            case 1:
           P0=Num[T%10];
           status=4;
           break;  
            case 4:
           P0=Num[R/10];
           status++;
           break;
            case 5:
           P0=Num[R%10];
           status=0;
           break;
   }
}
void key(void)
{                 
        static unsigned char dat,statue=0;
        if(!Tmr_10ms_Fg)return;
        dat=P3&MASK;
        if(dat==MASK)return;
        statue++;
        if(statue<16)return;
        statue=0;
        switch(dat)
        {
          case AddT:
            T++;
                if(T>30)T=1;
            break; 
          case CutT:
            T--;
                if(T<1)T=30;
            break; 
          case AddR:
            R++;
                if(R>99)R=1;
            break; 
          case CutR:
            R--;
                if(R<1)R=99;
            break;
        }
}
bit Duty_fg=1;
void duty(void)
{
   static unsigned int r=50;
   if(!Tmr_1ms_Fg)return;
   if(--r)return;
   OUT=Duty_fg;
   if(Duty_fg)r=R*T;
   else r=(100-R)*T;
   Duty_fg=~Duty_fg; 
}
void main(void)
{ 
   TMR0_Init();
   EA=1;
        while(1)
        {
          timer();
          diaplay();
          duty();
          key();
        }
}
關閉窗口

相關文章

主站蜘蛛池模板: 亚州综合一区 | 国产精品中文字幕在线 | 免费成人在线网站 | 国产精品久久久久影院色老大 | 亚洲国产免费 | 国产探花在线精品一区二区 | 久久久久免费精品国产小说色大师 | 中文成人在线 | 91资源在线观看 | 狠狠伊人 | 国产午夜高清 | 青青草av网站 | 国产成人福利在线 | 日韩欧美第一页 | 欧美午夜视频 | 国产精品99久久久久 | 在线日韩中文字幕 | 国产精品久久久久久久久久久久久 | 国产欧美一区二区三区久久手机版 | 久久国产精品99久久久大便 | 久久久www成人免费精品张筱雨 | 国产一级黄色网 | 中文字幕不卡一区 | 久久国产精品视频 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 在线一区视频 | 午夜视频在线免费观看 | 嫩草视频在线 | 中文字幕成人在线 | 在线日韩在线 | 欧美福利 | 中文字幕一区二区三区精彩视频 | 国产成人精品一区二区三区在线 | 国产精品高潮呻吟久久av野狼 | 国产乱码一二三区精品 | 全部免费毛片在线播放网站 | 国产一区二区三区久久久久久久久 | 三级视频网站 | 美女人人操| 日韩一级欧美一级 | 欧美一极视频 |