找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2995|回復(fù): 9
收起左側(cè)

請問單片機C語言如何用鍵盤給變量賦值?

[復(fù)制鏈接]
ID:897410 發(fā)表于 2021-4-13 22:16 | 顯示全部樓層 |閱讀模式
舉個例子 我想用鍵盤 輸入 4個十進制數(shù) 80 ,5 ,70 ,4,這四個數(shù),應(yīng)該如何去考慮,看了好多關(guān)于鍵盤的資料,還是不知道這個程序該如何去寫
回復(fù)

使用道具 舉報

ID:716656 發(fā)表于 2021-4-14 01:32 來自手機 | 顯示全部樓層
檢測到第一個數(shù)字把數(shù)賦值給shu【1】,i++,這樣一直測就行。如果按下確定鍵或計時超過多少未操作,把之前測的數(shù),組合成1個幾位數(shù)字,不知道我說清了沒有

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:592807 發(fā)表于 2021-4-14 08:58 | 顯示全部樓層
壓著我頭發(fā)啦 發(fā)表于 2021-4-14 01:32
檢測到第一個數(shù)字把數(shù)賦值給shu【1】,i++,這樣一直測就行。如果按下確定鍵或計時超過多少未操作,把之前 ...

最簡單就是 080  005  070  004
再進一步 80+確認按鍵  5+確認按鍵  70+確認按鍵   4+確認按鍵
再再進一步  使用定時器,2秒內(nèi)無其他數(shù)字輸入則將數(shù)字合成輸入

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:429003 發(fā)表于 2021-4-14 15:00 | 顯示全部樓層
你首先的建立一條硬件鏈路,單片機與PC機串口相互連接,PC機端用串口工具發(fā)送格式化的數(shù)據(jù)串給單片機,單片機收到后按約定格式提取需要的數(shù)據(jù)后賦值給相關(guān)的變量!

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:844772 發(fā)表于 2021-4-14 15:14 | 顯示全部樓層
就四個數(shù),不如就用四個按鍵分別代表這四個數(shù),按哪個就是輸入哪個了。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:897410 發(fā)表于 2021-4-14 21:56 | 顯示全部樓層
xstong 發(fā)表于 2021-4-14 15:00
你首先的建立一條硬件鏈路,單片機與PC機串口相互連接,PC機端用串口工具發(fā)送格式化的數(shù)據(jù)串給單片機,單片 ...

只用仿真就行了,而且我不會太用虛擬串口。
回復(fù)

使用道具 舉報

ID:905961 發(fā)表于 2021-4-14 22:25 | 顯示全部樓層
#i nclude<reg52.h>#define uint unsigned int#define uchar unsigned char#define duank P1               //鍵盤到單片機的端口//DB 50H,1CH,39H,16H,38H,78H,70H,0FEH,0EFH,0FFH;A  B, C,    D,  E, ,F   ,P, -,  ,.  ,COLSE//DB 01H,0C7H,22H,82H,0C4H,88H,08H,0C3H,00H,80H;帶小數(shù)點的字形碼0.,1.,-----9.uchar code table[]={     //鍵盤編碼"1~F~0"0xD7,0x32,0x92,0xD4,0x98,0x18,0xD1,0x10,0x90,0x50,0x1C,0x39,0x16,0x38,0x78,0x11};uchar num,temp,num1;void delay(uint z)      //延時子程序 Zms  { uint x,y; for(x=z;x>0;x--)  for(y=110;y>0;y--);}uchar keyscan();       //鍵盤函數(shù)聲明void display(uchar aa);//顯示函數(shù)聲明void main()            //主函數(shù){  while(1)  {   display(keyscan());  }}void display(uchar aa)    //顯示子程序{   //dula=1;   //P0=table[aa-1];   //dula=0;            SBUF=table[aa-1];}uchar keyscan()   //鍵盤掃描程序,取回一個鍵盤號{   duank=0xfe;   temp=duank;   temp=temp&0xf0;   while(temp!=0xf0)    {     delay(5);     temp=duank;     temp=temp&0xf0;     while(temp!=0xf0)     {      temp=duank;     switch(temp)      {       case 0xee:num=1;        break;   
回復(fù)

使用道具 舉報

ID:905967 發(fā)表于 2021-4-14 22:51 | 顯示全部樓層
鍵盤編碼"1~F~0"0xD7,0x32,0x92,0xD4,0x98,0x18,0xD1,0x10,0x90,0x50,0x1C,0x39,0x16,0x38,0x78,0x11};

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:429003 發(fā)表于 2021-4-15 08:59 | 顯示全部樓層
YYC7491 發(fā)表于 2021-4-14 21:56
只用仿真就行了,而且我不會太用虛擬串口。

仿真調(diào)試,打開變量監(jiān)視窗口,可監(jiān)控、修改任何一個變量,有什么困哪? 沒太理解你的問題!
回復(fù)

使用道具 舉報

ID:897410 發(fā)表于 2021-4-15 18:10 | 顯示全部樓層
xstong 發(fā)表于 2021-4-15 08:59
仿真調(diào)試,打開變量監(jiān)視窗口,可監(jiān)控、修改任何一個變量,有什么困哪? 沒太理解你的問題!

Proteus仿真的時候 可以直接修改變量嗎? 對這些軟件 只會基本的功能,用的不是很熟練
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表