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

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

51單片機占空比設計

作者:佚名   來源:本站原創(chuàng)   點擊數:  更新時間: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();
        }
}
關閉窗口

相關文章

主站蜘蛛池模板: 国产成人在线一区 | 久久一区二区视频 | 日韩成人在线观看 | 另类亚洲视频 | 久久日本| 国产羞羞视频在线观看 | 欧美成人h版在线观看 | 毛片久久久 | 天天躁日日躁狠狠很躁 | 国产精品视频综合 | 欧美日韩在线免费观看 | 成人免费小视频 | 日韩欧美精品在线 | h片在线播放 | 日日日视频 | 欧美日韩久久 | 一区二区三区四区不卡 | 国产成人免费视频网站高清观看视频 | 亚洲精品区 | 91久久精品国产免费一区 | 欧美在线一区二区三区 | 久久99精品久久久久久噜噜 | 日日操天天射 | 伊人看片 | 荷兰欧美一级毛片 | 久久久久久成人网 | 免费大黄视频 | 午夜免费网站 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 亚洲成人毛片 | 黄色片免费看 | 国产视频一视频二 | 成年人黄色免费视频 | 国产精品精品视频一区二区三区 | www.yw193.com | 久久精品国产99国产精品 | 久久男人 | 可以看黄的视频 | 久热久热 | 成人国产精品久久 | 一级大黄 |