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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索

單片機(jī)秒表程序到了指定時(shí)間不會(huì)停下來(lái)

查看數(shù): 3620 | 評(píng)論數(shù): 4 | 收藏 1
關(guān)燈 | 提示:支持鍵盤翻頁(yè)<-左 右->
    組圖打開(kāi)中,請(qǐng)稍候......
發(fā)布時(shí)間: 2020-6-11 21:01

正文摘要:

程序下載單片機(jī)上運(yùn)行0~99.99s計(jì)時(shí)時(shí),單片機(jī)在到99.99s后突然跳到90.00,然后加到99.99后又跳到80.00,以此類推; 而在運(yùn)60s倒計(jì)時(shí)功能時(shí),到了00.00后不停止計(jì)時(shí),qian位顯示的字符為沒(méi)有在段碼數(shù)組中定義的字符, ...

回復(fù)

ID:778766 發(fā)表于 2020-6-14 10:34
wulin 發(fā)表于 2020-6-12 13:56
qian++;沒(méi)有限制最大9。千位數(shù)大于9顯示亂碼。給你換一個(gè)思路寫這個(gè)程序,你試試。

一位共陰極數(shù)碼管顯示0~9秒,9秒后自動(dòng)回零;3個(gè)按鈕開(kāi)關(guān)控制,一個(gè)開(kāi)關(guān)控制計(jì)時(shí)開(kāi)始,一個(gè)開(kāi)關(guān)控制暫停,一個(gè)開(kāi)關(guān)控制回零
ID:213173 發(fā)表于 2020-6-12 13:56
qian++;沒(méi)有限制最大9。千位數(shù)大于9顯示亂碼。給你換一個(gè)思路寫這個(gè)程序,你試試。

  1. #include<reg51.h>
  2. #include<stdio.h>
  3. //sbit P20=P2^0;          //四位數(shù)碼管位選
  4. //sbit P21=P2^1;
  5. //sbit P22=P2^2;
  6. //sbit P23=P2^3;

  7. sbit s1=P2^4;           //開(kāi)始/暫停
  8. sbit s2=P2^5;           //模式/復(fù)位
  9. //sbit s3=P2^6;                //記錄
  10. //sbit s4=P2^7;                //讀取
  11. sbit BUZZER=P3^6;        //蜂鳴器

  12. unsigned char code led[]={//共陽(yáng)數(shù)碼管段碼"0~f-."
  13.                 0xc0,0xf9,0xa4,0xb0,
  14.                 0x99,0x92,0x82,0xf8,
  15.                 0x80,0x90,0x88,0x83,
  16.                 0xc6,0xa1,0x86,0x8e,0xbf,0x7f};
  17. unsigned char shu[4];
  18. unsigned char sec=0;
  19. char num=0;
  20. bit flag=0;
  21. bit pause=0;

  22. void T0_init()        //定時(shí)器T0初始化              
  23. {
  24.         TMOD=0x21;
  25.         TH0=0xDC;       //10ms定時(shí)  
  26.         TL0=0x00;
  27.         TH1=0x38;       //200us定時(shí) 用于無(wú)源蜂鳴器驅(qū)動(dòng)
  28.         TL1=0x38;
  29.         EA=1;
  30.         ET0=1;
  31.         ET1=1;
  32.         TR0=1;
  33. }

  34. void keyscan()                                        //按鍵掃描程序
  35. {
  36.         static bit sign=0;        //按鍵自鎖標(biāo)志
  37.         static unsigned char count=0;                //消抖計(jì)數(shù)變量                       
  38.         if(!s1||!s2)                                        //檢測(cè)按鍵如果為0
  39.         {
  40.                 if(++count>=10 && sign==0)
  41.                 {                       
  42.                         sign=1;                        //按鍵自鎖標(biāo)志置1
  43.                         if(!s1) //開(kāi)始/暫停
  44.                         {
  45.                                 if(pause==0&&flag==0)
  46.                                 {
  47.                                         if(num==99 && sec==99)
  48.                                         {
  49.                                                 sec=0;
  50.                                                 num=0;
  51.                                         }
  52.                                 }
  53.                                 if(pause==0&&flag==1)
  54.                                 {
  55.                                         if(num==0 && sec==0)
  56.                                         {
  57.                                                 sec=59;
  58.                                                 num=100;
  59.                                         }
  60.                                 }
  61.                                 pause=~pause;
  62.                         }
  63.                         if(!s2)//模式/復(fù)位鍵   99s正計(jì)時(shí)/60s倒計(jì)時(shí)
  64.                         {
  65.                                 pause=0;
  66.                                 flag=~flag;
  67.                                 if(flag)
  68.                                 {
  69.                                         sec=60;
  70.                                         num=00;
  71.                                 }
  72.                                 else
  73.                                 {
  74.                                         sec=0;
  75.                                         num= 0;
  76.                                 }
  77.                         }
  78.                         TR1=1;//開(kāi)蜂鳴器
  79.                 }
  80.         }
  81.         else                                                        //按鍵抬起
  82.         {
  83.                 sign=0;                                //按鍵自鎖標(biāo)志清0
  84.                 count=0;                                        //消抖計(jì)數(shù)清0
  85.         }
  86. }

  87. void display( )
  88. {
  89.         static unsigned char i=0;
  90.         shu[0]=led[sec/10];
  91.         shu[1]=led[sec%10];
  92.         shu[2]=led[num/10%10];
  93.         shu[3]=led[num%10];
  94.         P0 =0xff;
  95.         P2&=0xf0;
  96.         if(i==1) P0=shu[i]&0x7f;//加小數(shù)點(diǎn)
  97.         else P0=shu[i];
  98.         P2|=(0x01<<i);
  99.         i++;
  100.         i%=4;
  101. }

  102. void main()
  103. {         
  104.         T0_init();
  105.         while(1)
  106.         {         
  107.                 keyscan();
  108.                 display();               
  109.         }
  110. }

  111. void T0int() interrupt 1 //定時(shí)器T0中斷 方式1        
  112. {
  113.         TH0=0xDC;
  114.         TL0=0x00;
  115.         if(pause)
  116.         {
  117.                 if(!flag)//正計(jì)數(shù)99.99s
  118.                 {
  119.                         num++;
  120.                         if(num==99 && sec==99)
  121.                         {
  122.                                 pause=0;
  123.                                 TR1=1;
  124.                         }
  125.                         if(num>99)
  126.                         {
  127.                                 num=0;
  128.                                 sec++;
  129.                         }
  130.                 }
  131.                 else        //倒計(jì)時(shí)60.00s
  132.                 {
  133.                         num--;
  134.                         if(num==0&&sec==0)
  135.                         {
  136.                                 pause=0;
  137.                                 TR1=1;
  138.                         }
  139.                         if(num<0)
  140.                         {
  141.                                 num=99;
  142.                                 sec--;
  143.                         }
  144.                 }
  145.         }
  146. }

  147. void T1int() interrupt 3
  148. {
  149.         static unsigned int count=0;
  150.         BUZZER=~BUZZER;
  151.         count++;
  152.         if(count>=250)
  153.         {
  154.                 count=0;
  155.                 BUZZER=1;
  156.                 TR1=0;
  157.         }
  158. }
復(fù)制代碼




ID:332444 發(fā)表于 2020-6-12 08:24
三極管用法若得禍
ID:436885 發(fā)表于 2020-6-12 01:22
第一顯示刷新頻率要改一下,第二 狀態(tài)寄存超字節(jié)范圍,

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 羞羞视频网页 | 国产在线精品一区二区 | 亚洲综合热 | 天堂视频一区 | 五月激情六月婷婷 | avtt国产 | 国产日韩欧美一区二区 | 天天综合网91 | 日韩精品成人在线 | 91一区二区三区在线观看 | 在线免费观看视频你懂的 | 久久久婷 | 一区二区三区视频在线观看 | av中文字幕在线 | 九九精品在线 | 亚洲精品播放 | 精产国产伦理一二三区 | 中文字幕国产 | 亚洲精品视频在线 | 免费观看毛片 | 在线观看黄免费 | 亚洲福利在线观看 | 亚洲免费毛片 | 亚洲成av人片在线观看 | 成人午夜 | av黄色片在线观看 | 在线观看免费av片 | 日本不卡一区二区三区 | 亚洲另类春色偷拍在线观看 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 欧美精品久久久 | 草久久久| 亚洲精品一区国产精品 | 98久久| 中文字幕视频在线观看 | 国内精品免费久久久久软件老师 | 亚洲精精品 | 精品福利一区二区三区 | 国产精品免费视频一区 | 岛国精品 | 色在线免费视频 |