c语言键盘中断,C语言矩阵键盘输入控制使用行列逐级扫描中断方式

/ * --------------------------------------------- -名称:使用行和列逐行扫描中断模式内容的矩阵键盘输入控件,如果计算器输入数据格式相同,则从右到左使用行和列扫描方法中断模式可以有效地提高cpu的工作效率是关键操作通常不执行扫描工作---------------------------------------- ----- --- * / #include //包含头文件通常,不需要更改包含特殊功能寄存器定义的头文件#define DataPort P0 //如果在数据端口中遇到DataPort程序,用P0代替#define KeyPort P1 sbit LATCH1 = P2 ^ 2; //定义锁存器使能端口段锁存器sbit LATCH2 = P2 ^ 3; //位锁存器位KeyPressFlag; //定义按钮标志未签名dofly_DuanMa [] = {0x3f ,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //显示段代码值0〜F无符号字符代码dofly_WeiMa [] = {0xfe ,0xfd,0xfb, 0xf7,0xef,0xdf,0xbf,0x7f); //分别对应对应的数码管灯,即无符号char TempData [8] //存储显示值的全局变量void DelayUs2x(unsigned char t); // us级别延迟函数声明void DelayMs(unsigned char t); // ms级延迟void Display(unsigned char FirstBit,unsigned char Num); //数字管显示功能unsigned char KeyScan(void); //键盘扫描unsigned char KeyPro(void); void Init_Timer0(void); //计时器初始化void Init_INT0(void); //外部中断0初始化和/ * ------------------- ---------------------- - - - -主功能 - - - - - - - - - - - - - - - - - - - - - ------- * / void main(void){unsigned char num,i,j; unsigned char temp [8]; Init_Timer0(); Init_INT0(); while(1)//主循环字符代码{KeyPort = 0xf0; //使用分配进行中断检测if(KeyPressFlag == 1){KeyPressFlag = 0; //清除下一个检测的键标志num = KeyPro( ); if(num!= 0xff){if(i

628cbc347e2741cda60e48ce92a6b834.gif

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/bofangqi/article-349608-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值