单片机学习小组
登录
直播中
辛太励
7年用户
1140经验值
擅长:20153
私信
关注
编写矩阵键盘模块有哪些注意事项
开启该帖子的消息推送
矩阵键盘
串口
模块
编写矩阵键盘模块有哪些注意事项?
怎样去设置串口数据格式的?
回帖
(1)
周志光
2022-2-23 10:05:50
1.由于涉及到串口, 编写矩阵键盘模块时切忌给P36,P37赋值。
#define set(x) P32=(x&0x04)>>2;P33=(x&0x08)>>3;P34=(x&0x10)>>4;P35=(x&0x20)>>5
#define get() (P3&0x3c)
void keyscan()
{
set(0x0c);
dat=get();
set(0x30);
dat=(dat|get())^0xff;
Trg=(dat&(dat^Cont));
Cont=dat;
}
我这里用的是三行式,当然用经典那种delay行(列)扫描肯定也能实现,不过千万别有P36,P37
2.题目已经表明串口数据格式,最后一位必须是’n’!!!(我当时就没注意,把问题复杂化了,如果在发送窗口输了很长一串数据会怎么样,如果只输了一字节会怎么样…这涉及到你存放接收数据数组要设置多大,何时清0,还有何时error,相当复杂,当时脑子就想这**能写?!)
3.关于长按键,我的思路是设置一个标志位,按键按下阶段该标志位一直为1,当它置1超过一定时间便会执行长按键。`
case 0xdb: //S13
key13=1;
while(P35==0);
key13=0;
if(key13)
{
tt++;
if(tt==1000)
{
longkey=1;
qidong=!qidong;
}
}
1.由于涉及到串口, 编写矩阵键盘模块时切忌给P36,P37赋值。
#define set(x) P32=(x&0x04)>>2;P33=(x&0x08)>>3;P34=(x&0x10)>>4;P35=(x&0x20)>>5
#define get() (P3&0x3c)
void keyscan()
{
set(0x0c);
dat=get();
set(0x30);
dat=(dat|get())^0xff;
Trg=(dat&(dat^Cont));
Cont=dat;
}
我这里用的是三行式,当然用经典那种delay行(列)扫描肯定也能实现,不过千万别有P36,P37
2.题目已经表明串口数据格式,最后一位必须是’n’!!!(我当时就没注意,把问题复杂化了,如果在发送窗口输了很长一串数据会怎么样,如果只输了一字节会怎么样…这涉及到你存放接收数据数组要设置多大,何时清0,还有何时error,相当复杂,当时脑子就想这**能写?!)
3.关于长按键,我的思路是设置一个标志位,按键按下阶段该标志位一直为1,当它置1超过一定时间便会执行长按键。`
case 0xdb: //S13
key13=1;
while(P35==0);
key13=0;
if(key13)
{
tt++;
if(tt==1000)
{
longkey=1;
qidong=!qidong;
}
}
举报
更多回帖
rotate(-90deg);
回复
相关问答
矩阵键盘
串口
模块
编写
C语言时常见的
注意事项
有
哪些
2022-02-25
681
变频串联谐振耐压试验装置操作
注意事项
及接线
注意事项
有
哪些?
2021-10-26
2712
Stm32的bootloader和App的
编写
注意事项
有
哪些?
2021-10-29
2076
NX1P2
编写
功能块
有
哪些
注意事项
2021-09-29
1516
如何选择车载GPS
模块
?
有
哪些
注意事项
?
2021-05-18
1163
电调驱动原理是什么?
有
哪些
注意事项
?
2021-09-24
4251
如何安装keil5?
有
哪些
注意事项
?
2022-01-17
1467
绘制PCB效果器原理图中的POWER
模块
有
哪些
注意事项
2021-10-26
3292
请问GPIO使用
注意事项
有
哪些?
2023-06-21
734
请问fastadmin接口开发有哪些
注意事项
?
2020-11-05
3325
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分