模块: LED 中断系统 (CD107D开发平台)
功能:LED1 亮0.5秒灭0.5秒 LED 8 亮5秒灭5秒
#include "STC15F2K60S2.H"
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar num,flag;
sbit led1 = P0^0;
sbit led8 = P0^7;
void HC138init (uchar n)
{
switch (n)
{
case 4:
P2 = (P2&0x1f)|0x80;
break;
case 5:
P2 = (P2&0x1f)|0xa0;
break;
case 6:
P2 = (P2&0x1f)|0xc0;
break;
case 7:
P2 = (P2&0x1f)|0xe0;
break;
}
}
void cl_init () // 关闭蜂鸣器 继电器 流水灯
{
HC138init (5);
P0 = 0x00;
HC138init (4);
P0 = 0xff;
}
void init () // 定时器0 初始化函数
{
EA = 1;
ET0 = 1;
TMOD = 0X01;
TH0 = (65535 - 46080) / 256; // 定义初始值 定时50ms @晶振11.0592MHZ
TL0 = (65535 - 46080) % 256;
TR0 = 1;
}
void initer () interrupt 1
{
TH0 = (65535 - 46080) / 256;
TL0 = (65535 - 46080) % 256;
num++;
flag++;
if(num == 10)
{
num = 0;
led1 = ~led1;
}
if(flag == 100)
{
flag = 0;
led8 = ~led8;
}
}
void main ()
{
cl_init ();
HC138init (4);
init ();
while(1);
}