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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2398|回復: 3
打印 上一主題 下一主題
收起左側

想添加開時慢到快暗到亮然后一直正常亮度,關時快到慢亮到暗關閉

[復制鏈接]
跳轉到指定樓層
樓主
ID:1002664 發(fā)表于 2022-1-22 10:25 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 菜鳥一個622 于 2022-1-22 10:26 編輯

想添加開時慢到快暗到亮然后一直正常亮度,關時快到慢亮到暗關閉,腦子有點寫蒙了。。。。一直運行不對,我知道bug肯定多,只是看教學視頻有些貫不通,麻煩大佬教下
#include  <reg51.h> // <reg51.h>程序電腦實驗  <STC8G.h>實際


sbit key1=P3^0;
sbit PWM_out_pin=P0;

unsigned char dat1[4]={0xf1,0xf2,0xf4,0xf8};
unsigned char dat2[4]={0xfc,0xf9,0xf3,0xf6};
unsigned char dat3[4]={0xfe,0xfd,0xfb,0xf7};
//unsigned char duty_cut;
        
unsigned char MODE;
unsigned int  count;
unsigned char slow;
unsigned int cnt;
unsigned char sec,min,hour,PWM_duty=50;
bit sign;

void delay (unsigned int x);
void mode1(void);
void mode2(void);
void mode3(void);
void keyscan(void);
void Init_T0(void);
void T0_IRQ(void);



void Init_T0(void)
{
        TMOD &=0Xf0;
        TMOD |=0x02;
        TR0=1;
        
        TL0=56;
        TH0=56;
        
        TF0=0;
        ET0=1;
        EA=1;
        PT0=1;
}

void T0_IRQ(void)  interrupt 1
{
        
        
        cnt++;
        if(cnt==0)
        {
                cnt=0;
//                P0=0xff;
        }
        if(cnt<PWM_duty)
        {
                PWM_out_pin=1;
        }
        else
        {
                PWM_out_pin=0;
        }
               
        
}


void main(void)
{
        while(1)
        {
                keyscan();
                switch(MODE)
                {
                        case 0: P0=0xff;break;
                        case 1: mode1();break;
                        case 2: mode2();break;
                        case 3: mode3();break;
                }
                delay(1);
        }

Init_T0();
PWM_duty=0;
P0=0xff;
                                     while(2)
        {
                                        for(PWM_duty=0;PWM_duty<100;PWM_duty++)//暗到亮
                                        {

                                        delay(100);
                                        }
                                       

                                 {
                                        for(PWM_duty=100;PWM_duty>0;PWM_duty--)//亮到暗
                                        {

                                        delay(100);
                                        }
                                       
       }
}

void delay(unsigned int x)
{
        unsigned int i,j;
        for(i=0;i<x;i++)
        {
              for(j=0;j<120;j++);//12T
           //     for(j=0;j<1200;j++);//1T STC8G
        }
}


void mode1(void)
{
        static unsigned char i;
        static unsigned int j;
        P0=dat1;
     for(j=500;j>50;j--)  //慢到快到快固定不知道對不對
       if(++j>=50)
        {
                j=0
                i=++i%4;
        }
}
void mode2(void)
{
        static unsigned char i;
        static unsigned int j;
        P0=dat2;
         for(j=500;j>50;j--)  //慢到快到快固定不知道對不對
       if(++j>=50)
        {
                j=0;
                i=++i%4;
        }
}

void mode3(void)
{
        static unsigned char i;
        static unsigned int j;
        P0=dat3;
         for(j=500;j>50;j--)  //慢到快到快固定不知道對不對
       if(++j>=50)
        {
                j=0;
                i=++i%4;
        }
}

void keyscan(void)
{
        if(key1==0)
        {
                if(count<501)count++;

                if(count==500)//??
                {
                        sign=~sign;
                        if(sign)
                        {
                                slow=MODE;
                                MODE=0;
                        }
                        else MODE=slow;
                }
        }   
        else
        {
                if(count>20 && count<500
                {
                        ++MODE;
                        if(MODE>3)
                                MODE=1;
                }
                count=0;
        }   
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:697723 發(fā)表于 2022-1-22 17:30 | 只看該作者
一個簡單思路占空比初始5然后累加百分之五直到100固定,關就是減去百分之五直到5就關閉。
回復

使用道具 舉報

板凳
ID:1002664 發(fā)表于 2022-1-23 00:23 來自手機 | 只看該作者
jiude 發(fā)表于 2022-1-22 17:30
一個簡單思路占空比初始5然后累加百分之五直到100固定,關就是減去百分之五直到5就關閉。

大佬我就是不知道該怎么寫。。。。占空比到100固定,和delay減少到某個值固定,怎么融入到開關和切換模式里面,我寫的程序都是B站看視頻學的,就是不知道對不對,怎么融入到程序里面。
回復

使用道具 舉報

地板
ID:766634 發(fā)表于 2022-1-24 13:56 | 只看該作者
菜鳥一個622 發(fā)表于 2022-1-23 00:23
大佬我就是不知道該怎么寫。。。。占空比到100固定,和delay減少到某個值固定,怎么融入到開關和切換模式 ...

加個標志位bit,漸亮時=1,漸暗時=0
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品一级 | 国产精品久久久久久久久久妇女 | 亚洲视频欧美视频 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 日韩成人免费视频 | 午夜精品影院 | 日韩精品在线看 | 男人天堂视频在线观看 | 91亚洲国产成人久久精品网站 | 欧美男人天堂 | 日韩精品一区二区三区视频播放 | 国产成人免费视频网站高清观看视频 | 特级黄色毛片 | 成人免费一区二区三区视频网站 | 九九久久精品视频 | 欧美一区2区三区4区公司二百 | 一区二区三区视频播放 | 久久久久99 | 色一情一乱一伦一区二区三区 | 亚洲婷婷六月天 | 国产精品久久久久久久粉嫩 | 免费超碰 | 国产色99| 亚州视频在线 | 欧美日韩亚洲视频 | 日韩一级免费看 | 成人二区 | 伊人网在线综合 | 日本成人免费网站 | 国产一区二区视频在线 | 一个色在线| 久久久做 | 国产成人一区二区三区 | 在线日韩中文字幕 | 国产真实乱对白精彩久久小说 | av片在线观看网站 | 国产一级在线观看 | 亚洲一区二区三区视频 | 成人av免费播放 | 黄色大片免费网站 | 中文字幕亚洲视频 |