📄 main.c.130215224020
字号:
#define MAIN_C
#include "includes.h"
/*void change(float num)
{ num
float a=0.0048;
ge=a*num%5;//2
table3[1]='.';
table3[2]=10*(a*num-table3[0])%5;//5
table3[3]=100*(10*(a*num-table3[0])-table3[2]);
} */
void main(void)
{ unsigned int i=0;
unsigned char key_press_num;
unsigned int num=0;
//unsigned char table1[]=" vol=_____";
unsigned char table2[]=" designed by ZHM!";
unsigned char table3[4];
Init_LCD();
LCD_Clear();
//LCD_DisplayString(1,1,table1);
LCD_DisplayString(2,1,table2);
delay_nms(2000);
DDRB=0XFF;
spi_init();
spi_io_init();
DDRA&=~BIT(PA2);//PA2输入
PORTA|=BIT(PA2);//PA2上拉电阻
DDRA&=~BIT(PA3);//PA3输入
PORTA|=BIT(PA3);//PA3上拉电阻
/*
while(1)
{
if( (PIND&0x04)==0)
{
delay_nms(20);
if( (PINA&0x04)==0 )
{
spi_tlc5615(num);
num=num+3;
delay_nms(200);
}
}
}
}
*/
// for(i;i<1024;i=i+24)
// {spi_tlc5615(i);}
while (1) //主循环
{
if( (PINA&0x04)==0 ) //检测到加
{
delay_nms(10); //延时去抖,一般10-20ms
if( (PINA&0x04)==0 ) //再次确认按键是否按下,没有按下则退出
{
while((PINA&0x04)==0)
{
key_press_num++;
delay_nms(10); //10x200=2000ms=2s
//****************************长按键模式开始*****************************************
if(key_press_num==100) //大约2s,进入长按键模式
{
key_press_num=0;
while((PINA&0x04)==0) //这里用于识别是否按键还在按下,如果按下执行相关动作,否则退出
{
if(num<1020) //是否达到最大值
num=num+24; //未到达最大值则加操作
//即时把显示数据处理,如果去掉下面2
table3[2]=(unsigned char)num%100;//百 512-5
table3[1]=(unsigned char)num%10/10;//十
table3[0]=(unsigned char)num%10;//个
LCD_DisplayString(1,4,table3); //句处理信息,实际上看不到渐变效果,
//而是看到跳变效果
//用户可以自行屏蔽测试
//分解显示信息,如要显示68,则68/10=6 68%10=8
spi_tlc5615(num);
delay_nms(30); //用于调节长按循环操作的速度,可以自行调整此值以便达到最佳效果
}
}
}
key_press_num=0;//防止累加造成错误识别
//****************************长按键模式结束*****************************************
if(num<1020)
num=num+24;
spi_tlc5615(num);
table3[0]=num%100;//百
table3[1]=num%10/10;//十
table3[2]=num%10;//个
LCD_DisplayString(1,4,table3);
}
}
//****************************长按键模式结束*****************************************
if( (PINA&0x08)==0 ) //检测到加
{
delay_nms(10); //延时去抖,一般10-20ms
if( (PINA&0x08)==0 ) //再次确认按键是否按下,没有按下则退出
{
while((PINA&0x08)==0)
{
key_press_num++;
delay_nms(10); //10x200=2000ms=2s
//****************************长按键模式开始*****************************************
if(key_press_num==100) //大约2s,进入长按键模式
{
key_press_num=0;
while((PINA&0x08)==0) //这里用于识别是否按键还在按下,如果按下执行相关动作,否则退出
{
if(num>0) //是否达到最大值
num=num-24; //未到达最大值则加操作
//即时把显示数据处理,如果去掉下面2
//句处理信息,实际上看不到渐变效果,
//而是看到跳变效果
//用户可以自行屏蔽测试
//分解显示信息,如要显示68,则68/10=6 68%10=8
spi_tlc5615(num);
delay_nms(30); //用于调节长按循环操作的速度,可以自行调整此值以便达到最佳效果
}
}
}
key_press_num=0;//防止累加造成错误识别
//****************************长按键模式结束*****************************************
if(num>0)
num=num-24;
spi_tlc5615(num);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -