内容介绍
内容介绍
本期Funpack活动选用的板卡:
Microchip的8位PIC MCU开发板DM164137,其芯片为PIC16F18446。
本期任务:
通过按键扩展功能,分为按键点击(快速点击),短按(大于1秒),长按(大于3秒)用来控制板上LED显示。同时外接串口模块打印信息(包括按键信息,电位计信息)
设计思路:通过利用__delay_ms()函数来实现对按键时间的计算,再通过if条件语句对时间进行判断并控制LED灯执行相应的功能。通过arduino软件和arduinoUno开发板来实现对串口信息的打印。
实现的功能:
按键点击(快速点击):D5、D6、D7全灯亮一下后熄灭。
短按(1~3秒):D5、D6、D7流水灯三次后熄灭。
长按(大于3秒):D5、D6、D7间隔一秒闪烁两次熄灭。
MCC配置:
引脚分配:
System module配置:
TMR2配置:
Pin Module配置
MPLAB主要代码:
#include "mcc_generated_files/mcc.h"
void all_high(void)
{
LED_D5_SetHigh();
LED_D6_SetHigh();
LED_D7_SetHigh();
}
void all_low(void)
{
LED_D5_SetLow();
LED_D6_SetLow();
LED_D7_SetLow();
}
void D5_blink(void)
{
LED_D5_SetHigh();
__delay_ms(500);
LED_D5_SetLow();
__delay_ms(500);
}
void D6_blink(void)
{
LED_D6_SetHigh();
__delay_ms(500);
LED_D6_SetLow();
__delay_ms(500);
}
void D7_blink(void)
{
LED_D7_SetHigh();
__delay_ms(500);
LED_D7_SetLow();
__delay_ms(500);
}
void run_water_lamp(void)
{
D5_blink();
D6_blink();
D7_blink();
}
int t=0,k,Value;
void main(void)
{
SYSTEM_Initialize();
while (1)
{
if(!Key_S1_GetValue())
{ __delay_ms(10);
while(!Key_S1_GetValue())
{
__delay_ms(100);
t++;
}
}
else
{
if(t>0&&t<=10)
{
all_high();
__delay_ms(500);
all_low();
t=0;
}
else if(t>10&&t<=30)
{
for(k=1;k<=3;k++)
{ run_water_lamp(); }
all_low();
t=0;
}
else if (t>30)
{
all_high();
__delay_ms(1000);
all_low();
__delay_ms(1000);
all_high();
__delay_ms(1000);
all_low();
t=0;
}
else
{ all_low(); }
}
}
}
arduino代码:
void setup() {
pinMode(A0,INPUT);//RC0
pinMode(A2,INPUT);//LED2 RA1
pinMode(A3,INPUT);//LED3 RA2
pinMode(A4,INPUT);//LED4 RC5
Serial.begin(9600);
}
void loop()
{
Serial.print("Volt=");
Serial.println(analogRead(A1));
Serial.print("LED_D5=");
Serial.println(analogRead(A2));
Serial.print("LED_D6=");
Serial.println(analogRead(A3));
Serial.print("LED_D7=");
Serial.println(analogRead(A4));
delay(500);
}
串口使用的开发板(arduinoUno开发板):
心得体会:万事开头难,第一次接触单片机感觉还是挺难的,从什么也不懂到渐渐了解单片机和学习相应的编程软件编程,再到设计功能和编写程序并不断调试,到最后实现功能是一个很有意义的过程。这次活动不仅让我学习到了更多的知识,还让我对单片机产生了浓厚的兴趣。最后真诚感谢硬禾学堂以及得捷电子提供了这次学习活动。
附件下载
Lamp.X.zip
包括MCC生成的所有代码
团队介绍
团队成员
单片机爱好者
评论
0 / 100
查看更多