閑極無聊,做了個LED免限流電阻直接驅動實驗,效果不錯
/*************************************************
工程名:LED免限流電阻直接驅動實驗
作 者:老芹
定時器每0.5mS中斷一次,八位顯示耗時12mS,每位1.5mS
CPU:STC15F204EA
驗證通過
************************************************/
#include <STC15F2K60S2.H>
typedef unsigned char uint8;
typedef unsigned int uint16;
uint8 Timer_1,IO_control; //LED_control作為控制LED亮滅的控制變量
sbit LED = P2^5;
void Timer0_Init();
void IO_Model_Config(); //初始化IO口
void main()
{
Timer0_Init();
IO_Model_Config(); //IO工作模式配置(將LED的IO設置為推挽輸出模式)
while(1)
{
}
}
void Timer0() interrupt 1 //定時器中斷 ,16位自動重裝模式,無需重賦初值
{
Timer_1++;
LED = IO_control;
if (Timer_1<=3)
IO_control = 1;
else IO_control = 0;
if (Timer_1==12)
Timer_1 = 0;
}
void Timer0_Init() //定時器初始化
{
AUXR &= 0x7F; //定時器時鐘12T模式,0.5mS
TMOD &= 0xF0; //設置定時器模式
TL0 = 0x33; //設置定時初值
TH0 = 0xFE; //設置定時初值
TR0 = 1; //定時器0開始計時
ET0 =1;
EA = 1;
}
void IO_Model_Config()
{
P2M1 = 0x00;
P2M0 = 0xff;
}
|