新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于89C52單片機的紅外遙控雙模式交通燈控制系統

        基于89C52單片機的紅外遙控雙模式交通燈控制系統

        作者: 時間:2012-08-31 來源:網絡 收藏

        #includereg52.h>

        #define uint unsigned int

        #define uchar unsigned char

        uint aa,num,MODEL1,numa,HMODE1;

        uchar shi,ge,gtime,rtime;

        … …

        sbit dula=P1^0; // 段選

        sbit wela=P1^1; // 位選

        sbit LED1=P1^2; // 東西(紅燈)

        sbit LED2=P1^5; // 南北(紅燈)

        sbit LED3=P1^6; // 南北(黃燈)

        sbit LED4=P1^3; // 東西(黃燈)

        sbit LED5=P1^7; // 南北(綠燈)

        sbit LED6=P1^4; // 東西(綠燈)

        sbit KEY1=P3^5;

        uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

        uchar table1[]={0xbf,0x7f};

        void delay(uchar z) // 延時函數

        { uchar x,y;

        for(x=z;x>0;x--)

        for(y=110;y>0;y--); }

        void init()

        { TMOD=0x01; // 選擇方式一,16 位計數器

        TH0=15536/256;

        TL0=15536%256; // 定時器高、低位,置入初值

        EA=1; // 中斷允許總控制位

        ET0=1; // 定時器0 中斷允許控制位

        TR0=1; // 定時器0 運行控制位

        aa=0;

        gtime=60;

        rtime=40;

        num=1;

        numa=1;

        MODEL1=1;

        HMODE1=0;}

        定時的函數及原理:

        工作于定時狀態時,定時/計數器對機器周期進行計數,每個機器周期包括12個振蕩周期,以晶振頻率為12MHZ 為例,則:

        1 個機器周期=12/晶振頻率=12/12000000=0.001ms定時時間為:TC=XTP。其中,TP 為機器周期,TC 為定時時間。

        則應裝入計數/定時器的初值為:

        (注:M=2n , TP 為機器周期,TC 為定時時間)

        對于方式1,一次最大的定時時間為:T=(216-0)×0.001=65.536ms ,為了便于計算,設定每次最大定時時間為50ms,計算應裝入的初值:N = 65536 ? 50000 = 15536

        顯示子函數:

        通過對鎖存器進行位選,段選的控制,使數碼管顯示需要的數字。

        紅外遙控器相關文章:紅外遙控器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 西峡县| 奉贤区| 贡嘎县| 巴塘县| 通化县| 扶沟县| 祥云县| 宜章县| 新宁县| 万载县| 沁阳市| 阳曲县| 长阳| 醴陵市| 屏南县| 车致| 隆子县| 勃利县| 沙田区| 平遥县| 博白县| 凌源市| 靖安县| 德格县| 贵德县| 南开区| 稷山县| 阜南县| 浦城县| 雅安市| 宾阳县| 百色市| 望谟县| 永胜县| 榆林市| 伊川县| 石楼县| 高陵县| 虞城县| 辽中县| 黎平县|