//2、利用定時/計(jì)數(shù)器T0產(chǎn)生定時時鐘,由P1口控制8個發(fā)光二極管,使8個指示燈依次一個一個閃動, //閃動頻率為10次/秒(8個燈依次亮一遍為一個周期),循環(huán)。 #include<reg52.h> #include<intrins.h> #define uint unsigned int #define uchar unsigned char //sbit d0=P1^0; uchar temp1,temp2; uint num,i; void main() { num=0; EA=1;//開總中斷// ET0=1;//定時器0中斷開關(guān)開// TR0=1;//定時器0運(yùn)行// TMOD=0x01;//定時器0用方式1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; //給定時器0賦初值產(chǎn)生50ms的定時中斷 temp1=0xfe; while(1) { temp2=0xff; i=0;//閃爍次數(shù)到之后,轉(zhuǎn)到下個燈的時候,計(jì)數(shù)值歸0,重新計(jì)數(shù) while(i<20) { if(num==2) { temp1=temp1^temp2; temp2=temp1^temp2; temp1=temp1^temp2;//兩數(shù)互傳 P1=temp1; i++; num=0; } } temp1=_crol_(temp1,1); } } void timer0() interrupt 1 //50ms中斷定時 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; //重新賦值,否則時間出錯 num++; }