• 歡迎光臨東莞市飛江電子科技有限公司官網!
    全國咨詢熱線

    13926563901

    18925580829

    飛江淘寶店鋪

    首頁>技術資料>51單片機

    51單片機“呼吸燈”程序

    發布時間:2018-03-26   瀏覽量:

    剛看了一份關于光立方的視頻里片面提到“呼吸燈”一詞,忙草草寫了一個帶數碼管顯示亮度變化的呼吸燈程序,其中整型frequency為調節呼吸頻率的參數,附圖為臨時做的gif文件,需等會兒才見效果/*12Mhz??§????*/
    #include
    #define uchar unsigned char
    #define uint unsigned int
    uint f=100; /*????????f????????????1~10khz*/
    uint H=6;/*????????·§????????0~10000/f????H>L*/
    uint L=0;/*????????·§????????0~10000/f????H>L*/
    uchar code wela[]={0xfe,0xfd,0xfb,0xf7};
    uchar code dula[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xD8,0x80,0x90};
    uint m=0,t;
    uchar amp=0,frequency=100;
    sbit pwm=P1^7;
    sbit pwm_=P1^6;
    sbit hkey=P3^5;
    sbit lkey=P3^3;
    void diskey();
    void delay(uint z);
    void display();
    void xunhuan();
    void main()
    {
    EA=1;
    ET0=1;
    TMOD=0x02;
    TH0=146;
    t=10000/f;
    TR0=1;
    while(1)
    {
    if(hkey==0)diskey();
    if(lkey==0)diskey();
    display();
    xunhuan();
    }
    }
    void TRT0() interrupt 1
    {
    m++;
    if(m>=t)m=0;
    if(m==L){pwm=0;}
    if(m==H){pwm=1;pwm_=0;}
    }
    void diskey()
    {
    display();
    if(hkey==0&&H<100)H++;
    delay(10);
    if(lkey==0&&H>0)H--;
    display();
    }
    void xunhuan()
    {
    if(amp==1)H++;
    if(H>99)amp=0;
    if(amp==0)H--;
    if(H<1)amp=1;
    delay(frequency);
    }
    void delay(uint z)
    {
    uint x,y;
    for(y=z;y>0;y--)
    for(x=12;x>0;x--);
    }
    void display()
    {
    delay(2);
    P2=dula[H/1000];
    P0=wela[0];
    delay(5);
    P0=0xff;
    P2=dula[H00/100];
    P0=wela[1];
    delay(5);
    P0=0xff;
    P2=dula[H0/10];
    P0=wela[2];
    delay(5);
    P0=0xff;
    P2=dula[H];
    P0=wela[3];
    delay(5);
    P0=0xff;
    }

    黑人粗大无码AV人妻一区