新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 用STC15F104E單片機制作閃燈

        用STC15F104E單片機制作閃燈

        作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
        STC15F104E單片機,就是一個定時器,上電開始計時,LED每秒閃一次,9小時后繼電器吸合3秒,然后釋放,計時器重新計時。如此循環(huán)。
        #include "reg51.h"
        typedef unsigned char BYTE;
        typedef unsigned int WORD;
        #define SYSclk 6000000L
        #define MODE1T //Timer clock mode, commendt this line is 12T mode, uncomment is 1T mode
        #ifdef MODE1T
        #define T1MS (65536-SYSclk/1000) //1ms timer calculation method in 1T mode, 1000=1000Hz
        #else
        #define T1MS (65526-SYSclk/12/1000) //1ms timer calculation method in 12T mode
        #endif
        sfr AUXR=0x8e; //Auxiliary register
        sbit TEST_LED=P3^3;
        sbit relay = P3^4;
        WORD count; //1000 times counter
        BYTE sec;
        BYTE min;
        BYTE hour;
        BYTE S3cnt;
        BYTE S3cnt_Stat;
        void clock_cnt();
        /*Timer0 interrupt routine */
        void tm0_isr() interrupt 1 using 1
        {
        if (count--==0)
        {
        count=500; //500ms
        TEST_LED=!TEST_LED;
        if (TEST_LED) clock_cnt();
        }
        }
        void main()
        {
        #ifdef MODE1T
        AUXR=0x80; //timer0 work in 1T mode
        #endif
        TMOD=0x00; //set timer0 as mode0 (16-bit auto-reload)
        TL0=T1MS; //initial timer0 low byte
        TH0=T1MS>>8; //initial timer0 high byte
        TR0=1; //timer0 start running
        ET0=1; //enable timer0 interrupt
        EA=1; //open global interrupt switch
        sec = 0;
        min = 0;
        hour = 0;
        S3cnt_Stat = 0;
        while(1);
        }
        void clock_cnt()
        {
        if (S3cnt_Stat)
        {
        S3cnt--;
        if (S3cnt==0)
        {
        S3cnt_Stat = 0;
        relay = 0; //繼電器釋放
        }
        }
        else
        {
        sec++;
        if (sec>=60)
        {
        sec=0;
        min++;
        if (min>=60);
        {
        min=0;
        hour++;
        if (hour>=9) //到了9小時
        {
        relay = 1; //繼電器吸合
        sec = 0;
        min = 0;
        hour = 0;
        S3cnt_Stat = 1;
        S3cnt = 3; //計數(shù)3秒
        }
        }
        }
        }
        }


        關(guān)鍵詞: STC15F104E單片機閃

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 虞城县| 读书| 建昌县| 左贡县| 崇州市| 柳河县| 宁夏| 织金县| 伊宁市| 沽源县| 松阳县| 潮安县| 永仁县| 嘉禾县| 浦北县| 隆回县| 广水市| 新蔡县| 余江县| 九江县| 东乌珠穆沁旗| 金塔县| 开平市| 宁波市| 石河子市| 莱芜市| 临汾市| 昭平县| 北京市| 浦县| 庄浪县| 丰台区| 新建县| 儋州市| 西宁市| 邮箱| 武安市| 长治市| 哈尔滨市| 高要市| 即墨市|