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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

獨立鍵盤的程序 加快掃描的話,第三個數碼管就顯示不清 求大佬解答

[復制鏈接]
跳轉到指定樓層
樓主
ID:370913 發表于 2018-7-13 15:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這是個獨立鍵盤的程序
用的是普中科技開發板
加快掃描的話,第三個數碼管就顯示不清,掃描變慢的話就會抖,求大神給個好法子

單片機源碼:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uintunsigned int
  4. #define ucharunsigned char
  5. sbit led1=P2^2;
  6. sbit led2=P2^3;
  7. sbit led3=P2^4;
  8. sbit key1=P3^1;
  9. uinttemp=000,t0,ge,shi,bai,aa;
  10. uchar codetable[]={0x3f,0x06,0x5b,0x4f,
  11. 0x66,0x6d,0x7d,0x07,
  12. 0x7f,0x6f,0x77,0x7c,
  13. 0x39,0x5e,0x79,0x71};
  14. void SMG(int ge,int shi,int bai);
  15. void delay(uintz);
  16. void keyscan1();
  17. void main()
  18. {
  19.      EA=1;
  20.        TMOD=1;
  21.        TR0=1;
  22.      ET0=1;
  23.               while(1) /
  24.        {      
  25.         SMG(ge,shi,bai);
  26.         if(t0==1)//0.01s速度運行 每0.01s個位數加一
  27.        {
  28.        temp++;
  29.        t0=0;
  30.        if(aa==1000)
  31.        {
  32.        temp=000;
  33.        aa=0;
  34.        }
  35.        }
  36. P3=0xff;
  37.   if(key1==0)
  38. {
  39.    delay(10);
  40.    if(key1==0)//倆次判斷防止第一次按下去是誤按
  41.   {
  42.      TR0=0;
  43.         SMG(ge,shi,bai);
  44.   }
  45.    while(!key1);
  46.    delay(10); //消抖
  47.    while(!key1);//檢測按鍵是否釋放
  48.     TR0=1;
  49. }
  50. }
  51.   }
  52. void time0()interrupt 1 using 1
  53. {
  54.        TH0=(65536-10000)/256;
  55.        TL0=(65536-10000)%256;
  56.        t0++;
  57.        aa++;
  58. }
  59. void delay(uint z)
  60. {
  61.        uint x,y;
  62.        for(x=z;x>0;x--)
  63.               for(y=50;y>0;y--);//因此程序速度較快 為防止delay中包含中斷點t0==1
  64. }
  65. void SMG(intge,int shi,int bai)
  66. {
  67.        bai=temp/100;
  68.          P0=table[bai];
  69.          led1=1;led2=1;led3=1;
  70.          delay(5);
  71.          shi=temp%100/10;
  72.          P0=table[shi];
  73.          led1=0;led2=1;led3=1;
  74.          delay(5);//更改延時時間的長短可以看到不同效果,例如改為1000看到的是先出現1,再出現2,而delay(5)是一下子出現數字12
  75.          ge=temp%10;
  76.          P0=table[ge];
  77.          led1=1;led2=0;led3=1;
  78.          delay(5);   
  79. }
復制代碼






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

使用道具 舉報

沙發
ID:123289 發表于 2018-7-14 04:41 | 只看該作者
你的程序構思差!
所有掃描的延時沒不能用硬延時,要用中斷做處理。這樣CPU就不“累了”。
參考一下我回的這個帖子“在線等請問獨立鍵盤的掃描去抖怎么寫啊 haohaoxue51 發表于 2018-7-11 19:49”
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品二区亚洲w码 | 久久精品| 久久久99国产精品免费 | 国产成人久久久 | 在线观看视频你懂得 | 国产精品久久久久久久久久久免费看 | 天天干夜夜操视频 | 天天天天操 | 中文字幕中文字幕 | 国产高潮好爽受不了了夜色 | 国产精品乱码一区二三区小蝌蚪 | 欧美女优在线观看 | 天天操天天干天天曰 | 日韩精品一区二区三区中文在线 | 国产精品久久av | 99久久婷婷国产亚洲终合精品 | 丝袜美腿一区 | 91久久夜色精品国产网站 | 国产欧美一区二区三区久久人妖 | 97国产在线观看 | 99久久精品国产一区二区三区 | 暖暖日本在线视频 | av国产精品毛片一区二区小说 | 国内av在线 | 亚洲日韩中文字幕一区 | 在线看av网址 | 免费成人高清在线视频 | 99色播| 精品二三区 | 久久1区| 天天视频成人 | 日韩精品一区二区三区免费视频 | 亚洲一区二区三区免费观看 | 精品一区二区三区在线视频 | 国产精品久久九九 | 国产欧美在线 | 精品国产乱码久久久久久a丨 | 欧美日韩国产一区二区三区 | 亚洲精品一 | 久久伊| 久久久久久亚洲 |