社区
单片机/工控
帖子详情
定时中断键盘扫描
heavenxyf
2002-11-20 10:20:15
那位大虾有16键的定时中断扫描键盘程序(C程序),可否给小弟一个程序!谢谢!我现在有急用!当然8279的外部中断程序也可以,也是C程序,我想做一个参考!
我是新手!
...全文
302
9
打赏
收藏
定时中断键盘扫描
那位大虾有16键的定时中断扫描键盘程序(C程序),可否给小弟一个程序!谢谢!我现在有急用!当然8279的外部中断程序也可以,也是C程序,我想做一个参考! 我是新手!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
heavenxyf
2002-12-03
打赏
举报
回复
谢谢上面的兄弟!感激涕零!
wyabc
2002-12-02
打赏
举报
回复
4*6键盘!
在t2中进行键盘扫描.可判断是否为连击按健.t2终端周期:1.5625ms
sbit KH0=P0^0;
sbit KH1=P0^1;
sbit KH2=P0^2;
sbit KH3=P0^3;
unsigned char KEY(void) //获得key值
{
static unsigned char KEY_i=0x40; //key扫描指针
unsigned char data ka;
if (KEY_i!=0x40) { KEY_i=_crol_(KEY_i,1);} //左移一位
else KEY_i=1;
OUTKEY=KEY_i;
ka=0;
if (KH0==1) ka=ka+1;
if (KH1==1) ka=ka+2;
if (KH2==1) ka=ka+4;
if (KH3==1) ka=ka+8;
if (ka==0x0f) return(0); //无按键按下
return(KEY_i*10+15-ka); //扫描到按键,返回键值
}
void KKEY(unsigned char key)
{
static unsigned char nk=0, //没有扫描到按键计数器
mk=0, //本次按键和前次按键不同计数器
yk=60, //单击到连击的延时计数器
pk; //前次键值
if (key==0) //若没有扫描到按键
{
if ((++nk)==15)
{ pk=0;nk=0;mk=0;yk=60;CSK=0;ECK=0;} //若连续15次(23ms)没有扫描到按键,初始化。
return; // 15次*1.5625ms
}
nk=0; //初始化没有扫描到按键计数器
if (CSK==0)
{
pk=key; //若是首次按键,保存键值到前次键值,作为下次按键的比较依据
CSK=1; //设为非首次按键
return;
}
if (pk!=key) //若扫描的键值和前次不同,
{ pk=0;nk=0;yk=60;CSK=0;ECK=0; //干扰抖动处理
return;
}
if (ECK==0) //确认为单击
{
// BEEP=0; //单击时,响铃
F_key(key); //按键处理
ECK=1; //连击标志
return;
}
if ((--yk)==0) //已经扫描到按键,开始计数连击按键计数器
{
yk=20; //修正连击按键时的延时计数器
F_key(key);
}
}
void F_key(unsigned char key) //确认按键后的处理
{
switch(key)
{
case 18: F_QIDONG();return; //Start按键,开始启动
}
}
你试试看!
heavenxyf
2002-12-01
打赏
举报
回复
哦!能给小弟一份资料吗?万分感谢!heavenwj@hotmail.com
已经没有好名字
2002-11-29
打赏
举报
回复
我有,但是用的是东芝单片机,不知要否?C程序,4X4键盘,定时扫描.
Hermit
2002-11-29
打赏
举报
回复
单片机的话就有很多C了,AVRGCC,keilyC,AVRICC,IAR...
winskeeter
2002-11-29
打赏
举报
回复
是。keily c 吧
猛禽
2002-11-28
打赏
举报
回复
还是汇编好.^_^
heavenxyf
2002-11-24
打赏
举报
回复
当然是c语言了!汇编的很多,只是不太会改,所以想要点现成的东西作参考!
Hermit
2002-11-22
打赏
举报
回复
用什么C
基于状态机的
定时
中断
扫描
矩阵
键盘
程序
相比于连续轮询,
定时
中断
扫描
可以降低CPU的负载,因为它只在
中断
服务例程中执行
键盘
扫描
,其他时间CPU可以执行其他更重要的任务。 矩阵
键盘
是由行线和列线交叉组成的,每个交叉点对应一个按键。通过逐行或逐列
扫描
...
单片机课程设计——
定时
器
中断
控制的独立式
键盘
扫描
实验.zip
在这个“单片机课程设计——
定时
器
中断
控制的独立式
键盘
扫描
实验”中,我们将深入探讨如何使用AT89S52单片机通过C语言实现一个基于
定时
器
中断
的
键盘
扫描
系统。这个实验旨在帮助学习者理解单片机硬件接口、
中断
系统...
双机通信程序
键盘
扫描
程序,
定时
和串口
中断
程序.
在本项目中,我们主要探讨的是基于89C52微控制器的双机通信程序,以及其中的关键组件:
键盘
扫描
程序、
定时
器
中断
程序和串口
中断
程序。89C52是MCS-51系列单片机的一种,广泛应用于嵌入式系统设计,特别是在需要高效能...
单片机C51-
键盘
定时
扫描
总结来说,单片机C51中的
键盘
定时
扫描
技术是通过
定时
器
中断
实现的,它定期检查按键状态,避免因长时间轮询而导致CPU效率降低。同时,通过有效处理按键抖动和合理设计
键盘
布局,可以提高系统的可靠性和资源利用率。...
4x4矩阵
键盘
扫描
程序(高效、快速)
程序效率很高(
扫描
一次最长只需26个机器周期,整个程序只有92个字节),节省了CPU的时间,为了避免按键按下后频繁执行该程序,本
键盘
扫描
程序的前面后面都可以加入少量代码既可以达到消抖动效果,如采用
定时
中断
来决定...
单片机/工控
27,509
社区成员
28,797
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章