发布网友 发布时间:2023-12-28 09:52
共2个回答
热心网友 时间:2024-08-21 07:23
你的这个题目范围太大了。限于篇幅无法在细节上一一讲明白。
主要的思路如下:
硬件设计:单片机需要能够检测键是否按下,就需要搭建电路。通常情况下按键有两种方式:一种是直接将键通过电阻电容连接到单片机IO引脚上,这种方式适用于按键数量不太多或单片机引脚数量足够多的情况。另外一种是将键纵横排列成按键网络,通过扫描的方法检测按下的是哪个键,这种适用于键数量较多,或IO引脚不足的情况,比如你的图上有4X4=16键,直接连接的方法需要16个IO口,网络的话,只需要4+4=8个IO口即可完成。具体哪种根据需要来,具体电路网上搜索。
另外就是通讯电路,这个网上有好多RS232的,不再细说
算法设计
由于是键盘,除了检测到哪个键按下外,还应该包含一定的消除抖动的能力,防止按下一个键却触发好多次同样的按下此键的情况。
另外需要在单片机内存中建立“键-键值”的对应关系表,因为你要求能够自定义键值。
通讯
你没有提到通讯是实时发送还是按下一个键,比如回车键后才发送。
由于键盘的速度比较低,为了简单,可以采用检测到一个键按下后就发送一个键的代码。
根据你所采用的单片机的不同,所用的对通讯的初始化、发送等代码也有所不同。具体不再细说。
热心网友 时间:2024-08-21 07:21
请问还有程序吗?热心网友 时间:2024-08-21 07:21
你的这个题目范围太大了。限于篇幅无法在细节上一一讲明白。
主要的思路如下:
硬件设计:单片机需要能够检测键是否按下,就需要搭建电路。通常情况下按键有两种方式:一种是直接将键通过电阻电容连接到单片机IO引脚上,这种方式适用于按键数量不太多或单片机引脚数量足够多的情况。另外一种是将键纵横排列成按键网络,通过扫描的方法检测按下的是哪个键,这种适用于键数量较多,或IO引脚不足的情况,比如你的图上有4X4=16键,直接连接的方法需要16个IO口,网络的话,只需要4+4=8个IO口即可完成。具体哪种根据需要来,具体电路网上搜索。
另外就是通讯电路,这个网上有好多RS232的,不再细说
算法设计
由于是键盘,除了检测到哪个键按下外,还应该包含一定的消除抖动的能力,防止按下一个键却触发好多次同样的按下此键的情况。
另外需要在单片机内存中建立“键-键值”的对应关系表,因为你要求能够自定义键值。
通讯
你没有提到通讯是实时发送还是按下一个键,比如回车键后才发送。
由于键盘的速度比较低,为了简单,可以采用检测到一个键按下后就发送一个键的代码。
根据你所采用的单片机的不同,所用的对通讯的初始化、发送等代码也有所不同。具体不再细说。
热心网友 时间:2024-08-21 07:23
请问还有程序吗?热心网友 时间:2024-08-21 07:28
你的这个题目范围太大了。限于篇幅无法在细节上一一讲明白。
主要的思路如下:
硬件设计:单片机需要能够检测键是否按下,就需要搭建电路。通常情况下按键有两种方式:一种是直接将键通过电阻电容连接到单片机IO引脚上,这种方式适用于按键数量不太多或单片机引脚数量足够多的情况。另外一种是将键纵横排列成按键网络,通过扫描的方法检测按下的是哪个键,这种适用于键数量较多,或IO引脚不足的情况,比如你的图上有4X4=16键,直接连接的方法需要16个IO口,网络的话,只需要4+4=8个IO口即可完成。具体哪种根据需要来,具体电路网上搜索。
另外就是通讯电路,这个网上有好多RS232的,不再细说
算法设计
由于是键盘,除了检测到哪个键按下外,还应该包含一定的消除抖动的能力,防止按下一个键却触发好多次同样的按下此键的情况。
另外需要在单片机内存中建立“键-键值”的对应关系表,因为你要求能够自定义键值。
通讯
你没有提到通讯是实时发送还是按下一个键,比如回车键后才发送。
由于键盘的速度比较低,为了简单,可以采用检测到一个键按下后就发送一个键的代码。
根据你所采用的单片机的不同,所用的对通讯的初始化、发送等代码也有所不同。具体不再细说。
热心网友 时间:2024-08-21 07:20
请问还有程序吗?