新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于89C52單片機(jī)的紅外遙控雙模式交通燈控制系統(tǒng)

基于89C52單片機(jī)的紅外遙控雙模式交通燈控制系統(tǒng)

作者: 時(shí)間:2012-08-31 來(lái)源:網(wǎng)絡(luò) 收藏

#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) // 延時(shí)函數(shù)

{ uchar x,y;

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

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

void init()

{ TMOD=0x01; // 選擇方式一,16 位計(jì)數(shù)器

TH0=15536/256;

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

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

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

TR0=1; // 定時(shí)器0 運(yùn)行控制位

aa=0;

gtime=60;

rtime=40;

num=1;

numa=1;

MODEL1=1;

HMODE1=0;}

定時(shí)的函數(shù)及原理:

當(dāng)工作于定時(shí)狀態(tài)時(shí),定時(shí)/計(jì)數(shù)器對(duì)機(jī)器周期進(jìn)行計(jì)數(shù),每個(gè)機(jī)器周期包括12個(gè)振蕩周期,以晶振頻率為12MHZ 為例,則:

1 個(gè)機(jī)器周期=12/晶振頻率=12/12000000=0.001ms定時(shí)時(shí)間為:TC=XTP。其中,TP 為機(jī)器周期,TC 為定時(shí)時(shí)間。

則應(yīng)裝入計(jì)數(shù)/定時(shí)器的初值為:

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

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

顯示子函數(shù):

通過(guò)對(duì)鎖存器進(jìn)行位選,段選的控制,使數(shù)碼管顯示需要的數(shù)字。

紅外遙控器相關(guān)文章:紅外遙控器原理


評(píng)論


相關(guān)推薦

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

關(guān)閉