新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機占空比設計

        51單片機占空比設計

        作者: 時間:2016-11-30 來源:網絡 收藏
        Proteus仿真

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

        本文引用地址:http://www.104case.com/article/201611/323615.htm



        使用定時器,避免了數碼管顯示和按鍵掃描延時,實現占空比實時輸出。避免因延時等待。 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;				   
        				
                    
                        
        			
        							
        上一頁 1 2 下一頁

        關鍵詞: 51單片機占空

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 尼勒克县| 牙克石市| 孟村| 都安| 正阳县| 佳木斯市| 桃源县| 霍林郭勒市| 承德市| 汤阴县| 宾川县| 射阳县| 会昌县| 望谟县| 兴义市| 古丈县| 罗定市| 衡南县| 桃源县| 营山县| 黎川县| 缙云县| 马公市| 米脂县| 河源市| 临江市| 拜城县| 新丰县| 舒兰市| 大邑县| 都昌县| 八宿县| 康平县| 堆龙德庆县| 祁连县| 泗水县| 周至县| 弥勒县| 乌恰县| 德令哈市| 黔东|