内容介绍
内容介绍
任务目的:通过按键扩展功能,分为按键点击(快速点击),短按(大于1秒),长按(大于5秒)用来控制板上LED显示。同时外接串口模块打印信息(包括按键信息,电位计信息)。
PIC16F18446提供了一个非常方便的配置芯片初始化的方式,IDE提供了一个MCC插件通过图像界面配置初始化。
这里我将芯片的主频配置为最大的32MHz
配置串口1波特率为115200
设置定时器0为1ms中断一次,用于记录按键按下的时间。
总体IO配置如下图:
程序流程:当按键按下时开启定时器,当计时到1s时记为短按,计时到5s时记为长按,当按键抬起时关闭定时器。
主要代码如下:
if (PORTCbits.RC4 == LOW) //按键按下
{
if(press_time == 0 && key_model == 0)
{
key_model++;
TMR0_StartTimer();
LED0_ON;
potentiometer = ADCC_GetSingleConversion(channel_ANC0);
printf("Press the key ADC Result: %u\r\n", potentiometer);
}
else if(press_time == 1000 && key_model == 1)
{
key_model++;
LED1_ON;
potentiometer = ADCC_GetSingleConversion(channel_ANC0);
printf("Press the key 1S ADC Result: %u\r\n", potentiometer);
}
else if(press_time == 5000 && key_model == 2)
{
key_model++;
LED2_ON;
potentiometer = ADCC_GetSingleConversion(channel_ANC0);
printf("Press the key 5S ADC Result: %u\r\n", potentiometer);
}
}
else if (PORTCbits.RC4 == HIGH)
{
LED0_OFF;
LED1_OFF;
LED2_OFF;
press_time = 0;
key_model = 0;
TMR0_StopTimer();
}
心得体会:第一次使用PIC系列的芯片,感觉整体产品线还是比较完善的。IDE使用体验也是不错的,如果价格合适的话可以考虑量产使用。
附件下载
MPLABXProjects.zip
程序工程
团队介绍
电子爱好者
团队成员
冷月烟
评论
0 / 100
查看更多
猜你喜欢
Funpack第七期——基于DM164137的按键实验通过按键扩展功能,分为按键点击(快速点击),短按(大于1秒),长按(大于5秒)用来控制板上LED显示。同时外接串口模块打印信息(包括按键信息,电位计信息)
cardry
1212
Funpack第七期DM164137按键扩展功能通过按键扩展功能,分为按键点击(快速点击),短按(大于1秒),长按(大于5秒)用来控制板上LED显示。同时用usb虚拟转串口链接电脑和板子串口模块打印信息(包括按键信息,电位计信息)
李青山
1023
Funpack第七期——基于DM164137的按键实验通过按键扩展功能,分为按键点击(快速点击),短按(大于1秒),长按(大于5秒)用来控制板上LED显示。同时外接串口模块打印信息(包括按键信息,电位计信息)。
星辰i
1065