新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 用51單片機做的小旋磁美容儀

        用51單片機做的小旋磁美容儀

        作者: 時間:2012-12-01 來源:網絡 收藏
        給大家發一個用單片機做的小的c語言代碼。99分鐘可調倒計顯示控制關機設置,同時,有蜂鳴器倒數十秒蜂叫及按鍵時鳴叫,時間里有小數點按一秒周期閃爍的程序控制,按鍵為P1端中的P1。0及P1。1做為行線,P1。2~P1。5為列線,按鍵分別為開關機,時間加減,占空比調節加減鍵兩組共四個按鍵,有兩路實際輸出占空比端口,標號為:hotout 和 xuanout 兩個引腳,為數碼管顯示檔位狀態,控制時以外部硬件低電平時間長使輸出功率大的基準而進行調節,0檔時輸出為高電平,8檔(最高檔)時輸出為低電平低,其它從1~7檔時,以占空比為準。且每一檔的增量不是線性的,只為配合外部硬件的啟動電平要求,低幾檔導通量較大些。本程序為單片機網http://www.51hei.com會員“狼圖騰”嘔心瀝血的的原創作品,所有的c語言代碼都已經測試通過,并且做成了成品投入到了實際的使用中,希望能對大家有所幫助有問題可聯系作者幫忙處理的。
        #include reg51.H>
        #define uint unsigned int
        #define uchar unsigned char
        #define duan P0
        #define ton 2
        #define t 20
        uchar code tab[]={0x09,0x5f,0x2a,0x1a,0x5c,0x98,0x88,0x1f,0x08,0x18};
        sbit xsd_display=P0^3;//小數點的位顯示,根據實際情況決定
        sbit shila=P2^4;
        sbit gela=P2^5;
        sbit hotla=P2^6;
        sbit xuanla=P2^7;
        sbit hotout=P2^0;
        sbit xuanout=P2^1;
        sbit fmqbit=P2^2;
        bit openbit,xsd;//開關機、小數點、加熱、旋轉標志位
        uchar time; //分鐘值
        uint d; //計分鐘變量
        bit fmq;
        uchar hot,hot1,hotoff,hotoff1,hotled; //加熱波形處理相關變量
        uchar xuan,xuan1,xuanoff,xuanoff1,xuanled; //旋轉相關變量
        bit biaobit0,biaobit1,biaobit2,biaobit3;// 控制波形占空時的循環條件標志位//以下為延時子程序
        void delay(uint a)
        {
        uchar c,d;
        for(c=a;c>0;c--)
        for(d=80;d>0;d--);
        }
        //以下為顯示函數
        void display(uchar x,uchar y,uchar k)
        {
        uchar ge,shi; //對傳遞時間函數進行分解
        shi=x/10;
        ge=x%10; duan=tab[shi];
        shila=0;
        delay(2);
        shila=1; duan=tab[ge];
        gela=0;
        xsd_display=xsd;
        delay(2);
        gela=1; duan=tab[y];
        hotla=0;
        delay(2);
        hotla=1; duan=tab[k];
        xuanla=0;
        delay(2);
        xuanla=1;// duan_display=0xff;
        }//以下為變量改變處理程序
        void bianlian(uchar xy)
        {
        switch(xy)
        {
        case 2: d=0; //有按鍵按動時即使計數值初始為0
        if(time!=99)
        {
        time++;
        }
        break; case 3: d=0; //有按鍵按動時即使計數值初始為0
        if(time!=0)
        {
        time--;
        }
        break; case 4: if(hotled!=8)
        {
        hotled++;
        if(hotled==8)
        biaobit0=1;
        else
        biaobit0=0;
        if(hotled==0)
        biaobit1=1;
        else
        biaobit1=0;
        if(hotled5)
        {
        hot=hot+3;
        }
        else
        {
        hot=hot+ton;
        } hot1=hot;
        hotoff=t-hot;
        hotoff1=hotoff;
        }
        break; case 5:if(hotled!=0)
        {
        hotled--; if(hotled==8)
        biaobit0=1;
        else
        biaobit0=0; if(hotled==0)
        biaobit1=1;
        else
        biaobit1=0; if(hotled4)
        {
        hot=hot-3;
        }
        else
        {
        hot=hot-ton;
        } hot1=hot;
        hotoff=t-hot;
        hotoff1=hotoff;
        }
        break;
        case 6:
        if(xuanled!=8)
        {
        xuanled++; if(xuanled==8)
        biaobit2=1;
        else
        biaobit2=0;
        if(xuanled==0)
        biaobit3=1;
        else
        biaobit3=0; if(xuanled==1)
        xuan=xuan+6;
        else
        xuan=xuan+ton; xuan1=xuan;
        xuanoff=t-xuan;
        xuanoff1=xuanoff;
        }
        break;
        case 7:
        if(xuanled!=0)
        { if(xuanled==1)
        xuan=xuan-6;
        else
        xuan=xuan-ton; xuan1=xuan;
        xuanoff=t-xuan;
        xuanoff1=xuanoff;
        xuanled--; if(xuanled==8)
        biaobit2=1;
        else
        biaobit2=0;
        if(xuanled==0)
        biaobit3=1;
        else
        biaobit3=0; }
        default:break;
        }
        }
        蜂鳴器相關文章:蜂鳴器原理

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 托克逊县| 天津市| 岳阳县| 基隆市| 隆昌县| 东海县| 阿尔山市| 温宿县| 潜山县| 云阳县| 西城区| 柳林县| 桂阳县| 临桂县| 修文县| 阳山县| 广元市| 平顺县| 威宁| 温宿县| 林芝县| 保康县| 扎兰屯市| 宜兰市| 陆川县| 正镶白旗| 镇安县| 泗水县| 边坝县| 旌德县| 城口县| 武安市| 富宁县| 呼伦贝尔市| 莱州市| 新津县| 六枝特区| 五家渠市| 新绛县| 澜沧| 澎湖县|