蓝桥杯单片机11届题目代码和注释
//题目:红外遥控投影仪控制。
//代码:
#include "reg52.h"。
#include "intrins.h"。
unsigned char code time0_table[]={0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};。
unsigned char code time1_table[]={0x00,0xC0,0xF0,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};。
unsigned char table_num;。
void time0_init(void);。
void time2_init(void);。
void Delay(unsigned int t);。
void main()。
//初始化定时器0。
time0_init();。
//初始化定时器2。
time2_init();。
while(1);。
}。
//初始化定时器0。
void time0_init()。
TMOD&=0xF0;//清除T0的控制位。
TMOD|=0x02;//设置定时器模式2。
TH0 = time0_table[table_num];。
TL0 = time0_table[table_num+1];。
ET0=1;//打开T0中断。
TR0=1;//定时器开始计时。
}。
//初始化定时器2。
void time2_init()。
T2MOD&=0x7F;。
T2MOD|=0x02;。tabletime
T2CON|=0x04;。
TH2 = time1_table[table_num];。
TL2 = time1_table[table_num+1];。
RCAP2H = time1_table[table_num];。
RCAP2L = time1_table[table_num+1];。
ET2=1;。
TR2=1;。
}。
//中断服务子程序。
void timer0() interrupt 1。
table_num++;。
if(table_num>15) table_num=2;。
TH1 = time1_table[table_num];。
TL1 = time1_table[table_num+1];。
RCAP2H = time1_table[table_num];。
RCAP2L = time1_table[table_num+1];。
TH0 = time0_table[table_num];。
TL0 = time0_table[table_num+1];。
Delay(5);//延时5ms。
P2_2=1;//让红外发射。
Delay(5);。
P2_2=0;//关闭红外发射。
Delay(5);。
}。
//延时函数。
void Delay(unsigned int t)。
while(t--);。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。