當前位置:首頁 » 編程語言 » 鍵盤自檢c語言

鍵盤自檢c語言

發布時間: 2022-04-02 02:44:56

Ⅰ 單片機 c語言鍵盤檢測 的問題 謝謝

答:不行。你把原程序中這一句變了:
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
如果在執行完判斷後不給temp再次賦上P3的值(temp=P3)它永遠跳不出while(temp!=0xf0)這個循環。但如果已經不按鍵了,就該跳出這個函數了,可是你這樣一該,永遠也出不去。

Ⅱ [c語言]檢測 2種鍵盤輸入,這樣行不行呢

scanf返回的是你正確輸入變數的數目,如果你輸入hello 0 a 0
那麼word就得到了正確的值,row也得到了正確的,col得到了錯誤的,那麼後面的orientation就得不到值了,那麼scanf的返回值是2.
如果只有你所說的這兩種輸入,而沒有其他錯誤的輸入的話,你的程序的邏輯是可以的

Ⅲ C語言 如何在一段時間內檢測鍵盤是否按下

#include <bios.h>
#include <stdio.h>
main()
{
int key;
for(;;)
{
if (bioskey(1)) /*有鍵按下,讀取鍵值*/
key=bioskey(0);
else /*無鍵按下,返回0*/
key=0;
switch(key)
{case 0: ...../*無按鍵,執行該操作*/
case 0xXXXXH:..../*不同鍵值,做不同處理*/
。。。。。
}
}
}

該程序段功能:
判斷是否有鍵按下,若有進行不同操作,若無進行其他操作。

相關原理:
函數名: bioskey
功 能: 直接使用BIOS服務的鍵盤介面
函數原型:int bioskey (int cmd)
說明:bioskey()的函數原型在bios.h中
bioskey()完成直接鍵盤操作,cmd的值決定執行什麼操作。

cmd = 1:
當cmd是1,bioskey()查詢是否按下一個鍵,若按下一個鍵則返回非零值,否則返回0。

鍵盤有按鍵時,會把鍵值(掃描碼)存入緩沖區,當需要判斷是否有鍵按下時,掃描緩沖區,為空則無鍵按下,不為空則有鍵按下。注意:該功能並不清空緩沖區。

cmd = 0:
當cmd是0,bioskey()返回鍵盤鍵入的值。它返回一個16位的二進制數,包括兩個不同的值。當按下一個普通鍵時,它的低8位數存放該字元的ASCII碼,高8位存放該鍵的掃描碼;對於特殊鍵(如方向鍵、F1~F12等等),低8位為0,高8位位元組存放該鍵的掃描碼。

其操作步驟為:
1.檢測緩沖區是否有數據;
2.沒有則繼續第一步;
3.讀取緩沖區第一個單元中的鍵盤輸入
4.讀取的掃描碼
5.將已讀取的鍵盤輸入從緩沖區刪除

Ⅳ c語言鍵盤按鍵觸發怎麼表示

可以用FlexibleButton表示。

FlexibleButton 是一個基於標准 C 語言的小巧靈活的按鍵處理庫,支持單擊、連擊、短按、長按、自動消抖,可以自由設置組合按鍵,可用於中斷和低功耗場景。

該按鍵庫解耦了具體的按鍵硬體結構,理論上支持輕觸按鍵與自鎖按鍵,並可以無限擴展按鍵數量。另外,FlexibleButton 使用掃描的方式一次性讀取所有所有的按鍵狀態,然後通過事件回調機制上報按鍵事件。

核心的按鍵掃描代碼僅有三行,沒錯,就是經典的 三行按鍵掃描演算法。使用 C 語言標准庫 API 編寫,也使得該按鍵庫可以無縫兼容任意的處理器平台,並且支持任意 OS 和 non-OS(裸機編程)。

快速體驗:

FlexibleButton 庫中提供了一個測試常式 ./examples/demo_rtt_iotboard.c,該常式基於 RT-Thread OS 進行測試,硬體平台選擇了 RT-Thread IoT Board Pandora v2.51 開發板。

當然你可以選擇使用其他的 OS,或者使用裸機測試,只需要移除 OS 相關的特性即可。

如果你使用自己的硬體平台,只需要將 FlexibleButton 庫源碼和常式加入你既有的工程下即可。

DEMO 程序說明:

該示常式序可以直接在 RT-Thread stm32l475-atk-pandora BSP 中運行,可以在該 BSP 目錄下,使用 menuconfig 獲取本軟體包。

Ⅳ c語言檢測鍵盤具體按鍵

WIN程序中,是寫消息處理過程的。。。

如果不寫消息過程,可以調用 WINDOWS API 通過循環檢測(容易漏)

。。。。。。。。。。。

Ⅵ c語言怎麼實現按鍵的實時檢測

參照窗口程序的設計,檢測按鍵就是用個while來不斷檢測是不是按到了某個鍵,至於要做什麼就塞循環里

難道要搞機票預訂系統么寒……
C是面向過程的只能這樣,否則微軟早就改進窗口程序代碼了

Ⅶ C語言如何檢測是否按下功能鍵

有獨立鍵盤和距陣鍵盤的獨立鍵盤的很簡單我就不寫了距陣的我給你寫一個//鍵盤掃描ucharKeys_Scan(){ucharsCode,kCode,i,k;//低4位置0,放入4行P1=0xf0;//若高4位出現0,則有鍵按下if((P1&0xf0)!=0xf0){DelayMS(2);if((P1&0xf0)!=0xf0){sCode=0xfe;//行掃描碼初值for(k=0;k<4;k++)//對4行分別進行掃描{P1=sCode;if((P1&0xf0)!=0xf0){kCode=~P1;for(i=0;i<16;i++)//查表得到按鍵序號並返回if(kCode==KeyCodeTable[i])return(i);}elsesCode=_crol_(sCode,1);}}}return(-1);

Ⅷ c語言中如何隨時監測鍵盤是否有輸入

可以運行後指定要打開的文件,成功運行 如我D盤下有f1.txt,沒有f3.txt 兩次運行結果分別是 一: 請輸入要打開的文件名(含路徑): d:\f1.txt 成功打開文件d:\f1.txt! Press any key to continue 二: 請輸入要打開的文件名(含路徑): d:\f3.txt 打開文件失敗! Press any key to continue 程序如下: #include <stdio.h> #include <malloc.h> #define MAXSIZE 50 void main() { char* file=(char*)malloc(sizeof(char)*MAXSIZE); printf("請輸入要打開的文件名(含路徑):\n"); gets(file); FILE* fp; if(!(fp=fopen(file,"r"))) { puts("打開文件失敗!\n"); } else { printf("成功打開文件%s!\n",file); fclose(fp); } free(file); }

Ⅸ C語言如何檢測鍵盤動作不要用bios.h和windows.h。

在應用層實現應該用到windows.h;而在核心層可以不必用到bios.h和windows.h.單說記錄鍵盤動作在核心層實現的方法也是有許多種,講都講不完.你可以搜索:鍵盤驅動

Ⅹ 請幫看看這段單片機C語言程序,是鍵盤檢測,有關列檢測那裡看不懂,幫幫忙啊~~~

你條件都沒說清楚啊,那P1,P2接什麼,行是接P口的高四位還是低四位?等問題都須告知啊

熱點內容
鋁壓縮曲線 發布:2025-07-27 00:48:16 瀏覽:560
修改ftp主動模式 發布:2025-07-27 00:48:01 瀏覽:853
java查看環境變數 發布:2025-07-27 00:45:47 瀏覽:14
php文件結構 發布:2025-07-27 00:44:19 瀏覽:672
阿里雲伺服器資料庫收費 發布:2025-07-27 00:44:18 瀏覽:681
安卓引導模式怎麼取消 發布:2025-07-27 00:19:11 瀏覽:275
幸運9變色腳本 發布:2025-07-27 00:13:14 瀏覽:928
linuxdate修改 發布:2025-07-27 00:08:01 瀏覽:547
114la源碼 發布:2025-07-26 23:55:54 瀏覽:315
我的世界怎麼毀伺服器主城 發布:2025-07-26 23:54:48 瀏覽:212