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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求大佬看一下單片機按鍵顯示代碼哪里有問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:1002906 發(fā)表于 2022-1-23 23:32 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
剛學單片機一周,,按下S2數(shù)碼管顯示6,按下S3顯示123456,按下S4從10顯示到0,我寫的不知道哪里出問題了,程序下載到單片機里還沒按按鍵就開始從10顯示到0了,并且重啟單片機也是立馬就從10顯示到0,求大佬幫忙看一下哪里的問題

單片機源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. sbit key1=P3^0;
  4. sbit key2=P3^1;
  5. sbit key3=P3^2;
  6. sbit DU=P2^6;
  7. sbit WE=P2^7;
  8. char W[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  9. char D[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  10. void delayxms(unsigned int x)
  11. {
  12.         unsigned char i, j;
  13.         while(x>0){
  14.                 _nop_();                                 
  15.                 i = 2;
  16.                 j = 199;
  17.                 do
  18.                 {
  19.                         while (--j);
  20.                 } while (--i);
  21.                 x--;
  22.         }
  23. }

  24. void main()
  25. {
  26.         int a,b;
  27.         while(1)
  28.         {
  29.                 if(key1==0)
  30.                 {
  31.                         delayxms(20);
  32.                         while(!key1);
  33.                         WE=1;
  34.                         P0=0X00;
  35.                         WE=0;

  36.                         DU=1;
  37.                         P0=0X7D;
  38.                         DU=0;
  39.                 }
  40.                 if(key2==0)
  41.                 {
  42.                         delayxms(20);
  43.                         while(!key2);
  44.                         while(1)
  45.                         {               
  46.                                 for(a=0;a<6;a++)
  47.                                 {        
  48.                                         DU=1;
  49.                                         P0=D[a+1];
  50.                                         DU=0;
  51.                                        
  52.                                         P0=0xff;
  53.                                         WE=1;
  54.                                         P0=W[a];
  55.                                         WE=0;
  56.                                         delayxms(1);                                       
  57.                                 }
  58.                         }        
  59.                 }
  60.                 if(key3==0)
  61.                 {
  62.                         delayxms(20);
  63.                         while(!key3);
  64.                         while(1)
  65.                         {        
  66.                                 b=100;
  67.                                 while(b)
  68.                                 {
  69.                                         P0=0xff;
  70.                                         WE=1;
  71.                                         P0=0x7f;
  72.                                         WE=0;
  73.         
  74.                                         DU=1;
  75.                                         P0=D[0];
  76.                                         DU=0;
  77.                                         delayxms(5);
  78.                                        
  79.                                         P0=0XFF;
  80.                                         WE=1;
  81.                                         P0=0xbf;
  82.                                         WE=0;               
  83.                                         DU=1;
  84.                                         P0=D[1];
  85.                                         DU=0;
  86.                                         delayxms(5);
  87.                                         b--;                                
  88.                                 }
  89.                                 P0=0XFF;
  90.                                 WE=1;
  91.                                 P0=0x7f;
  92.                                 WE=0;
  93.                                 DU=1;
  94.                                 for(a=9;a>=0;a--)
  95.                                 {                                
  96.                                         P0=D[a];
  97.                                         delayxms(1000);
  98.                                 }
  99.                         }
  100.                 }
  101.         }
  102. }
復制代碼

1.png (35.63 KB, 下載次數(shù): 40)

代碼

代碼

2.png (10.05 KB, 下載次數(shù): 44)

代碼

代碼

3.png (28.59 KB, 下載次數(shù): 35)

代碼

代碼

原理圖1.png (25.88 KB, 下載次數(shù): 28)

原理圖

原理圖

原理圖2.png (181.39 KB, 下載次數(shù): 25)

原理圖

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

使用道具 舉報

沙發(fā)
ID:824490 發(fā)表于 2022-1-24 10:14 | 只看該作者
沒細看你的代碼,但你的代碼是key1/2/3,原理圖有4個鍵,而你描述的卻是2、3、4鍵。估計你的代碼結構有問題:
你所說的:“按下S2數(shù)碼管顯示6,按下S3顯示123456,按下S4從10顯示到0”
其中按下S2、S3時,只是改變顯示內(nèi)容(刷顯模式),而按下S4是一個很長的過程:顯示內(nèi)容從10->9->8....->0
也就 說S4按下后,進入了計數(shù)+刷顯模式,代碼自然不能與S2/S3同等處理。。
回復

使用道具 舉報

板凳
ID:624769 發(fā)表于 2022-1-24 15:48 | 只看該作者
把 key3 改 key2 如果問題解決的話,說明按鍵有問題。
回復

使用道具 舉報

地板
ID:1003309 發(fā)表于 2022-1-24 16:54 | 只看該作者
沒有循環(huán)體吧,可能沒有考慮給開關一個變量
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美高清一级片 | 亚洲高清在线 | 欧美乱淫视频 | 欧美激情精品久久久久 | 国产黄色免费网站 | 丁香婷婷久久久综合精品国产 | 黑人巨大精品欧美一区二区免费 | 欧美一级片在线 | 欧美成人精品一区二区男人看 | 亚洲淫视频 | 女人精96xxx免费网站p | 久久99精品久久久97夜夜嗨 | 9191成人精品久久 | 超碰在线久 | 网址黄| 能看的av网站 | 人人看人人草 | www国产亚洲精品久久网站 | 久久宗合色 | 亚洲深夜福利 | 99精品久久久久久中文字幕 | 亚洲高清在线免费观看 | 日韩精品免费在线观看 | 日韩免费在线观看视频 | 日韩国产一区二区三区 | 精品久久久久久亚洲综合网 | 久久国产精品72免费观看 | 中文字幕第二区 | 亚洲 欧美 另类 综合 偷拍 | 久久亚洲国产 | 国产精品毛片一区二区三区 | 四虎影视在线 | 黄片毛片 | 国产欧美在线视频 | av高清毛片 | 欧美成ee人免费视频 | 日本一二三区在线观看 | 一区在线观看 | 精品国产伦一区二区三区观看说明 | 三极网站| 成人亚洲网 |