Microchip
直播中

杨春林

8年用户 983经验值
私信 关注
[问答]

旋转编码器来增加和减少数值怎么编程

朋友们,在我的项目中,我需要旋转编码器来增加和减少数值……我不知道怎么编程……我累了这么多次,但是我不能纠正输出……请帮我对编码器进行增减操作。

回帖(6)

石双厚

2020-4-22 10:32:50
您不需要对编码器进行编程,它是一个哑设备。您可以通过查看引脚的状态来对输出进行解码,稍等,再次查看,重复。编码器的数据表将指导您预期什么以及更改意味着什么。如果显示如何连接编码器到PIC,你尝试了什么,为什么它不工作。结果如何?
举报

邹先莹

2020-4-22 10:42:10
定义_LEGACY_HEADERS定义XTAL_FREQ 20MHZ定义XTAL_FREQ 20MHZ包括<_pic16f88666666H>包括pic1616f886.h&包括“延迟.h”包括“延迟.h”\包括“延迟.h”包括“延迟.h”\\包括“LCd_显示器lcd_显示.h”\\\#定义incrRCR RC0 RCR RC0/RC0/定义LCD_RC0//定义LCD_BL LCD_===================================================/配置Bits//==================================================================================================================================================================================================振荡器选择位lator:RA6/OSC2/CLKOUT和RA7/OSC1/CLKIN上的高速晶体/谐振器)pragma配置WDTE=OFF//看门狗定时器启用位(WDT禁用并且可以由WDTCON寄存器的SWDTEN位启用)pragma配置PWRTE=OFF//上电定时器启用位(禁用PWRT)\pragma配置MCLRE=ON//RE3/MCLR管脚功能选择位(RE3/MCLR管脚功能是MCLR)#pragma配置CP=OFF//代码保护位(程序内存代码保护被禁用)#pragma配置CPD=OFF//数据代码保护位(数据内存代码保护被禁用)#pragma配置BOREN=OFF//Brown Out Reset Sele操作位(启用BOR)#pragma config IESO=OFF//内部外部切换位(禁用内部/外部切换模式)#pragma config FCMEN=OFF//Fail-Safe Clock Monitor Enabled bit(禁用故障安全时钟监视器)#pragma config LVP=OFF//低压编程启用位(RB3引脚具有数字I/O,MCLR上的HV必须用于编程)//CONFIG2#pragma配置BOR4V=BOR40V//Brown out复位选择位(Brown out Reset设置为4.0V)#pragma配置WRT=OFF//Flash程序内存自写允许位(写保护)/****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/int sec,tim;int f,k;void main(void){System_init();DelayMs(100);lcd_init();lcd_goto(1,4);lcd_put(“欢迎加入”);sec=9;而1){.:if(incr)!= 1){(1){if(DCR)!= 1){SSE+++;}同时(DCR)!= 1);GOTO循环;}如果(DCR)!= 1){(1){if(in CR)!= 1){SSE--;GTO循环;}(in CR)!}f=sec/10;k=sec%10;lcd_goto(2,1);lcd_putch(f);lcd_goto(2,2);lcd_goto(k);}这是我的代码....如果我旋转编码器,值不会以适当的方式增加或减少...
举报

李兆峰

2020-4-22 10:53:16
你必须轮询每行1MSEC,并对这些行进行一些分析:在论坛上应该有一些代码…
举报

石双厚

2020-4-22 11:25:30
我不准备尝试和分析其他人的未注释代码。再一次,显示编码器如何连接到PIC的示意图。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分