📄 lignt1.c
字号:
//LIGHT1.c
//Body: HT48R05A-1
//Mask option
//SysFreq: 2000KHz
//the others use the default value
#include <ht48R05A-1.h>
#define _tmrc4 _0e_4 //timer4 enable bit
//#define num1 _pb2
#define num1 _pa7
#define num2 _pc1
#define num3 _pb2
#define num4 _pa6
#define LED_ON_OFF _pa0
#define Single _pa1
#define key1 _pb0
#define key2 _pb1
bit On_Off_Flag;
bit OnFlag;
unsigned char brightness;
unsigned int count;
unsigned char half_second,time_delay,time2_delay;
unsigned char min;
#pragma vector isr_4 @ 0x4
#pragma vector isr_8 @ 0x8
//ISR for safequard
void isr_4(){} // external ISR
void isr_8() // timer/event
{
if(count >= 250) //0.5sec //250
{
half_second ++;
time_delay --;
time2_delay --;
count = 0;
}
else
count ++;
}
void safeguard_init(){
_intc = 0;
_tmrc = 0;
_tmr = 0;
_pac = 0xff;
_pbc = 0x03;
_pcc = 0x03;
}
main()
{
unsigned char i;
safeguard_init();
_pbc = 0x07;
_pac = 0x7e;
_pcc = 0x00;
_pa = 0xff;
/*
_pa = 0x00;
_pa = 0xff;
_pa = 0x00;
_pa = 0xff;
_pa = 0x00;
_pa = 0xff;
_pa = 0x00;
_pa = 0xff;
_pa = 0x00;
*/
_pb = 0x07;
_pc = 0x03;
OnFlag = 0;
LED_ON_OFF = 1;
_delay(2000);
brightness = 1;
On_Off_Flag = 1;
min = 0;
_intc = 0x5; //enable timer
_tmrc = 0x87; //timer mode (internal clock)
_tmrc4 = 0;
_tmr = 0xa0;
_tmrc4 = 1; //start timer1
while(1)
{
/***********key**********************/
if(!key1)
{
_delay(2000);
if(!key1)
{
while(!key1){}
if(brightness < 4)
brightness ++;
}
}
if(!key2)
{
_delay(2000);
if(!key2)
{
while(!key2){}
if(brightness >1)
brightness --;
}
}
/***************************************/
/**********adjust*************************/
switch(brightness)
{
case 1:
_pbc = 0x07;
num1 = 1;
num2 = 1;
num3 = 0;
num4 = 1;
break;
case 2:
_pbc = 0x07;
num1 = 0;
num2 = 1;
num3 = 0;
num4 = 1;
break;
case 3:
_pbc = 0x07;
num1 = 1;
num2 = 0;
num3 = 0;
num4 = 1;
break;
case 4:
_pbc = 0x03;
num1 = 0;
num2 = 0;
num3 = 1;
num4 = 0;
break;
default:
num1 = 1;
num2 = 1;
num3 = 0;
num4 = 1;
break;
}
/***************************************/
/**********single*************************/
// if(On_Off_Flag)
{
_tmrc4 = 1;
// if((!Single)&&(!On_Off_Flag))
for(i = 0; i < 10; i ++)
{
if(!Single)
{
time_delay = 20;
while(time_delay){}
time_delay = 10;
while(time_delay)
{
if(!Single)
{
if(_pa0)
_pa0 = 0;
else
_pa0 = 1;
min = 1;
brightness = 1;
_pbc = 0x07;
num1 = 1;
num2 = 1;
num3 = 0;
num4 = 1;
time2_delay = 40;
while(time2_delay){}
// while(1){}
break;
}
}
}
}
}
if(!min)
{
_tmrc4 = 0;
half_second =0;
}
else
_tmrc4 = 1;
// else
// if(On_Off_Flag)
{
if (half_second >= 200)
{
half_second =0;
min ++;
if (min == 1)
{
On_Off_Flag = 0;
brightness = 1;
}
if (min == 2)
{
On_Off_Flag = 0;
brightness = 2;
}
if (min == 3)
{
On_Off_Flag = 0;
brightness = 3;
}
if (min == 4)
{
brightness = 4;
min = 0;
On_Off_Flag = 1;
_tmrc4 = 0;
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -