久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1005|回復: 6
打印 上一主題 下一主題
收起左側

這段單片機代碼按第一個按鍵時顯示在第1位,按第2個按鍵時顯示在了第2位,如何一起顯示

[復制鏈接]
跳轉到指定樓層
樓主
希望實現按下一個按鍵時,數碼管顯示一位數字,當按下第二個按鍵后,數碼管能夠將兩個數字一起顯示這樣子。應該怎么更改這代碼

2F16A7BD9E1FA024FDAA1B3BFEAB7F07.png (313.8 KB, 下載次數: 0)

2F16A7BD9E1FA024FDAA1B3BFEAB7F07.png

42DD3175A3995B30DBB8ECA9AF02FF6E.png (420.57 KB, 下載次數: 0)

42DD3175A3995B30DBB8ECA9AF02FF6E.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:59202 發表于 2024-11-2 21:15 | 只看該作者
是這個意思嗎:先按下1,數碼管顯示1,然后再按下2,數碼管顯示12
回復

使用道具 舉報

板凳
ID:1134495 發表于 2024-11-2 21:41 | 只看該作者
xxxevery 發表于 2024-11-2 21:15
是這個意思嗎:先按下1,數碼管顯示1,然后再按下2,數碼管顯示12

對的,就是像你說這樣,顯示6位就好了
回復

使用道具 舉報

地板
ID:1109793 發表于 2024-11-3 08:40 | 只看該作者
如果是數字就比較簡單,就int num;
然后每次按鍵就num = num*10+按鍵
回復

使用道具 舉報

5#
ID:1135366 發表于 2024-11-3 12:02 | 只看該作者
按下按鍵,高位數字乘10,加上低位數字,再依次顯示?
回復

使用道具 舉報

6#
ID:1133081 發表于 2024-11-3 13:25 | 只看該作者
陶小陶 發表于 2024-11-2 21:41
對的,就是像你說這樣,顯示6位就好了

用矩陣鍵盤1~6輸入6個數并按位同時顯示在6個數碼管上。這種功能的程序只能用于練練手,沒有什么實用價值。
  1. #include <reg51.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uchar  code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
  5. uchar key=0;//鍵值變量


  6. void delayms(uint k)
  7. {
  8.         uint i,j;
  9.         for(i=k;i>0;i--)
  10.                 for(j=115;j>0;j--);
  11. }
  12. void key_scan()                                        //按鍵掃描程序
  13. {
  14.         static bit sign=0;                        //按鍵自鎖標志
  15.         static uint count=0;                //消抖計數變量                        
  16.         uchar num=0;                                //臨時變量
  17.         P3=0xf0;                                        //賦值P3 1111 0000
  18.         if(P3!=0xf0)                                //檢測有按鍵按下
  19.         {
  20.                 count++;                                //消抖計數
  21.                 if((count>=20)&&(sign==0))        //100~1000,根據主循環周期調整約10~20ms
  22.                 {                        
  23.                         sign=1;                                //按鍵自鎖標志置1
  24.                         num=P3;                                //保存P3值xxxx 0000,x為0或1
  25.                         num|=0x0f;                        //保存num按位或0x0f值xxxx 1111
  26.                         P3=num;                                //賦值P3 xxxx 1111
  27.                         num=P3;                                //保存P3值xxxx xxxx
  28.                         switch(num)
  29.                         {
  30.                                 case 0xee: key= 1; break;
  31.                                 case 0xde: key= 2; break;
  32.                                 case 0xbe: key= 3; break;
  33.                                 case 0x7e: key= 4; break;
  34.                                 case 0xed: key= 5; break;
  35.                                 case 0xdd: key= 6; break;
  36.                                 case 0xbd: key= 7; break;
  37.                                 case 0x7d: key= 8; break;
  38.                                 case 0xeb: key= 9; break;
  39.                                 case 0xdb: key=10; break;
  40.                                 case 0xbb: key=11; break;
  41.                                 case 0x7b: key=12; break;
  42.                                 case 0xe7: key=13; break;
  43.                                 case 0xd7: key=14; break;
  44.                                 case 0xb7: key=15; break;
  45.                                 case 0x77: key=16; break;
  46.                         }
  47.                 }
  48.         }
  49.         else                                                //鍵抬起
  50.         {
  51.                 sign=0;                                        //按鍵自鎖標志清0
  52.                 count=0;                                //消抖計數清0
  53.         }
  54. }
  55. void display()                                        //數碼管顯示程序
  56. {
  57.         static uchar a[6]={10,10,10,10,10,10};
  58.         static uchar i,j;

  59.         if     (key==1)a[0]=key;
  60.         else if(key==2)a[1]=key;
  61.         else if(key==3)a[2]=key;
  62.         else if(key==4)a[3]=key;
  63.         else if(key==5)a[4]=key;
  64.         else if(key==6)a[5]=key;
  65.         else if(key==7)//清除
  66.         {
  67.                 for(j=0;j<6;j++)
  68.                         a[j]=10;
  69.         }
  70.         P0=0x00;
  71.         P2=~(0x01<<i);
  72.         P0=table[a[i]];
  73.         i=++i%6;
  74. }

  75. void main()                                                //主函數
  76. {
  77.         while(1)
  78.         {
  79.                 key_scan();                                //按鍵掃描程序
  80.                 display();                                //數碼管顯示鍵值1~16
  81.                 delayms(1);                                //延時控制主循環周期約1ms
  82.         }
  83. }
復制代碼
回復

使用道具 舉報

7#
ID:1109793 發表于 2024-11-3 19:51 | 只看該作者
WL0123 發表于 2024-11-3 13:25
用矩陣鍵盤1~6輸入6個數并按位同時顯示在6個數碼管上。這種功能的程序只能用于練練手,沒有什么實用價值 ...

還能這樣操作啊?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线精品亚洲欧美日韩国产 | 爱爱视频在线观看 | 亚洲男人的天堂网站 | 国产精品精品久久久 | 99久热| 午夜精品久久久久久久99黑人 | 国产精品一区二区久久 | 国产精品视频一区二区三区四蜜臂 | 秋霞a级毛片在线看 | 日韩电影免费在线观看中文字幕 | 在线观看日韩精品视频 | 亚洲 欧美 另类 综合 偷拍 | 国产日韩欧美在线观看 | 久久这里只有精品首页 | 中文字幕在线视频网站 | 国产三级网站 | 日韩一二三区视频 | 久久久久久久久国产 | 亚洲一区二区中文字幕 | 中文字幕 亚洲一区 | 日韩一区二区三区视频在线播放 | 成人性生交大片免费看r链接 | 九九天堂网 | 亚洲精品www| 成人精品毛片国产亚洲av十九禁 | 国产高清精品一区二区三区 | 成人在线小视频 | 欧美在线观看一区二区 | 欧美日韩一区二区三区四区五区 | 亚洲一区中文字幕在线观看 | 国产在线不卡 | 亚洲精品不卡 | 日韩不卡一区二区 | 国产精品成人国产乱 | 国产午夜视频 | av免费电影在线 | 五月花丁香婷婷 | 国产一级一级毛片 | 国产精品久久久久久久久久久免费看 | 一区二区在线免费观看 | www成年人视频 |