内容介绍
内容介绍
实现功能:
通过按键时长控制LED,同时实现电位信息的输出的功能
任务思路:
通过delay函数进行计时.按下按键,三盏灯熄灭,松手后若0<t<1s,Led_1亮起;若1<t<5s,Led_2亮起;若t>5s,Led_3亮起,同时外界串口模块输出按键及电位信息。
MCC 配置
主要程序:
void main(void)
{
SYSTEM_Initialize();
TMR0_Initialize();
int Time;
while (1)
{
if (!Key_GetValue())
{
Led_1_SetLow();
Led_2_SetLow();
Led_3_SetLow(); //三盏灯熄灭
__delay_ms(10); //消抖
if (!Key_GetValue())
{
Time++; //计时
}
}
else
{
__delay_ms(10);
if (Key_GetValue())
{
if( Time > 0 && Time < 100)
{
Led_1_SetHigh(); //灯一点亮
printf(" Puss the botton for %d ms. \n ADC Result: %d\n\n",Time*10, ADCC_GetSingleConversion(channel)); //输出按压时长及电位信息
}
else if (Time >= 100 && Time < 500)
{
Led_2_SetHigh();
printf(" Puss the botton for %d ms. \n ADC Result: %d\n\n",Time*10, ADCC_GetSingleConversion(channel));
}
else if(Time >= 500)
{
Led_3_SetHigh();
printf(" Puss the botton for %d ms. \n ADC Result: %d\n\n",Time*10, ADCC_GetSingleConversion(channel));
}
Time = 0; //变量置零
}
}
}
}
心得体会:
很高兴在老师的推荐下有机会参加这次活动。这是我第一次接触单片机,pic16f18446芯片很适合初学者上手,MCC插件也使编程更为简易。
完成任务期间遇到不少问题,感谢期间同学们和老师给予我的帮助。
附件下载
DEMO send.X.zip
团队介绍
中矿(北京)大二学生
团队成员
CCCyan
评论
0 / 100
查看更多
猜你喜欢
Funpack第七期 基于DM164137的按键控制LED灯及电位计显示采用Funpack 第七期的开发板,通过调用芯片内部的计时器timer1来完成对按键被按下时间的计时,从而实现对4位LED灯的控制。借助串口传输模块展示按键信息及电位计信息。
mu_hly_pur_la
1058
Funpack第七期 DM164137 实现按键控制板卡LED显示及电位信息打印通过MPLAB X IDE编写程序,完成在不同按键情况下的LED显示,并通过外接串口和串口调试器打印出电位信息
zsx
835
Funpack第七期 基于DM164137的按键控制LED灯及电位计显示参加这次活动完成了任务一,学习到了很多有关单片机以及编程的知识,还学习到了如何利用串口打印信息。
是狒狒呀
953