当前位置:首页 > 单片机 > 单片机
[导读] #include\"../Inc/MyCommon.h\"#include#include#include\"../Inc/MyDelay.h\"#include\"../Inc/CH451.h\"#definePS2SDA(1

#include"../Inc/MyCommon.h"
#include
#include
#include"../Inc/MyDelay.h"
#include"../Inc/CH451.h"
#definePS2SDA(1<<;PA0)

#definePS2SCL(1<<;PE6)
ucharDisplayData[8]={0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10};//数码管各位要显示的数据
ucharIntNum=0;//中断次数
ucharKeyUP=0;//键松开标识
//键盘编码表
ucharPS2KeyCode[16]={
69,//0
22,//1
30,//2
38,//3
37,//4
46,//5
54,//6
61,//7
62,//8
70,//9
28,//a
50,//b
33,//c
35,//d
36,//e
43,//f
};
//键盘解码函数
voidDecode(){
if(!KeyUP){//当键盘不是松开时
switch(KeyValue){
case0xF0://便是断码开始
KeyUP=1;
break;
default:{
for(uchari=0;i<16;i++){//查找键值对应的数字
if(KeyValue==PS2KeyCode){
for(ucharj=0;j<7;j++)DisplayData[j]=DisplayData[j+1];//前移一位
DisplayData[7]=i;//最后一位显示刚输入的数字
}
}
break;
}
}
}else{
KeyUP=0;
}
}
//INT6中断处理程序
ISR(SIG_INTERRUPT6){
//PS2键盘中断
if((IntNum>0)&&(IntNum<9)){
KeyValue>>=1;//因键盘数据是低>>高,结合上一句所以右移一位
if(PINA&PS2SDA)KeyValue|=0x80;//当键盘数据线为1时到最高位
}
IntNum++;
while(!(PINE&PS2SCL));//等待CLK拉高
if(IntNum>10){//接收完一个数据
IntNum=0;
Decode();
}
}
//主函数
intmain(){
uchari;
DDRA=0xA8;//PA3PA5PA7设置为输出
DDRA&=~PS2SDA;//PA0设置为输入
DDRE&=~PS2SCL;//PE6设置为输入
EICRB&=~(1<EIMSK|=(1<CH451_Init();//初始化CH451
sei();//开总中断
while(1){
for(i=0;i<8;i++)CH451_DisplayDig(7-i,DisplayData,0);//显示新的数据
}
return0;
}


MyCommon.h公共头文件

#ifndef _MYCOMMON_H
#define _MYCOMMON_H
//全局宏定义
#define F_CPU 7.3728E6//晶振频率
#defineuint unsigned int
#defineuchar unsigned char
#defineulong unsigned long
#endif

MyDelay.h延时函数头文件

#ifndef _MYDELAY_H
#define _MYDELAY_H
#include "MyCommon.h"
#include
void DelayMS(uint ms);//毫秒级延时函数
void Delay10US(uint us);//10微秒级延时函数
//ms级延时程序
void DelayMS(uint ms){
while(ms--){
_delay_ms(1);
}
}
//10us级延时程序
void Delay10US(uint us){
while(us--){
_delay_us(10);
}
}
#endif


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

随着电脑科技的飞速发展,作为电脑输入设备的重要组成部分,键盘的种类和功能也在不断演变。其中,机械键盘以其出色的手感、长久的使用寿命和高度个性化的特点,深受众多电脑用户的喜爱。而机械键盘的核心——键盘轴,更是决定键盘使用体...

关键字: 电脑 键盘 机械

键盘包括编码键盘和非编码键盘两种。编码键盘带有能够自动识别按键的硬件电路,当按键被按下闭合时,硬件可以提供按键的编号(也被称“键值”),这种键盘使用方便,但是硬件复杂,价格相对较高。非编码键盘不附带按键识别电路,需要利用...

关键字: 键盘 人机交互 编码键盘 非编码键盘

自俄乌冲突爆发之后,以苹果、戴尔、三星等为代表的科技企业,纷纷暂停了自己在俄罗斯当地的相关业务。在被这些企业断供之后,俄罗斯当地遇到了“以键盘为代表的PC外设出现缺货”的困扰。

关键字: PC 键盘

英国里士满2022年7月11日 /美通社/ -- 2022年7月11日,高性能电子产品压力传感触控用户界面的领先创新者Peratech公司宣布,其全系列压力传感技术将应用于最新的联想Legion 7i和7(16...

关键字: 联想 键盘 TE IO

上海2022年6月9日 /美通社/ -- 近期,雪碧视觉形象更新换代,以更加简洁清爽的白绿配色酷爽再出发,旋即发起了一场具有里程碑意义的全球营销活动"Heat Happens"(燥不可挡 酷爽以对)。...

关键字: BSP APP 大屏 键盘

摘要:为了实现智能仪表的人机交互功能,提出了一种采用具有串行接口的键盘显示驱动芯片TML638来对LED数码管及键盘进行管理的设计方案,给出了TM1638与单片机STC11F02进行接口的具体硬件设计方案和软件设计思想。

关键字: TM1638 数码管 键盘 智能仪表 显示电路

在这篇文章中,小编将为大家带来小米米物智能语音键盘的相关报道。

关键字: 米物智能语音键盘 键盘 智能

树莓派400(Raspberry Pi 400)将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对它的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 树莓派400 树莓派 键盘

8 月 20 日雷蛇发布了 Razer Productivity Suite 生产力套装。这是一套次世代、适用于办公环境的生产力工具,其中包含 Razer Pro Click 无线鼠标、Razer P

关键字: 雷蛇 鼠标 键盘

前言 键盘可以说是我们最常使用的输入硬件设备了,但身为程序员的你,你知道「键盘敲入 A 字母时,操作系统期间发生了什么吗」? 那要想知道这个发生的过程,我们得先了解了解「操作系统是如何管理多种多样的的输入输出设备」的,等...

关键字: 操作系统 键盘
关闭
关闭