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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2130|回復: 3
收起左側

用51單片機設計一個2位的LED數碼顯示00-99的秒表程序求助

[復制鏈接]
ID:1020093 發表于 2022-5-9 20:04 | 顯示全部樓層 |閱讀模式
各位前輩們,你們好!我是一個初學單片機的新手,我需要完成一個項目,但是遇到了一些問題,所以想請教一下前輩們。

如下:
用AT89C51單片機設計一個2位的 LED 數碼顯示作為“秒表”:顯示時間為00-99秒,每秒自動加1,另設計一個“開始”鍵和一個“復位”鍵,一個“設置”按鍵,一個蜂鳴器。
要求:
(1)具備計時功能,每秒自動加一,實現00-99秒顯示。
(2)按下復位鍵后,時間清零。
(3)按下設置按鍵后,可以通過開始鍵和復位鍵對定時時間的十位和個位進行加減設置,當到達定時時間時,蜂鳴器滴答報警。
我想請教的問題是:要求中的第(3)小問,要怎么樣才能實現呢?希望能得到前輩們的幫助,謝謝!
1.png
代碼如下:
  1. #include "reg51.h"
  2. #define uchar unsigned char
  3. #define uint unsingned int
  4. #define LED P0
  5. uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  6. uchar num,t,shi,ge;
  7. void init();
  8. void timer0();
  9. void display();
  10. void delay(uchar);

  11. sbit KEY1 = P3^6;//開始
  12. sbit KEY2 = P3^7;//復位

  13. void delay(uchar x)          //延時子程序
  14. {
  15.    int i,j;
  16.    for(i=x;i>0l;i--)
  17.    for(j=255;j>0;j--);
  18. }

  19. void display()        //顯示
  20. {
  21.         if(num >= 99)
  22.         {
  23.                 //num = 0;  // 數據顯示限制  最大為99
  24.                 if(TR0)
  25.                 TR0 = 0;
  26.         }
  27.         shi=num/10;   //顯示拆分  
  28.         ge=num%10;
  29.         P2=0X00;          //顯示消影
  30.         P0=0XFF;
  31.         P2=0x01;     //顯示第一位
  32.         LED=tab[shi];
  33.         delay(5);//延時
  34.         P2=0X00; //顯示消影
  35.         P0=0XFF;
  36.         P2=0x02;   //顯示第二位
  37.         LED=tab[ge];
  38.         delay(5);//延時
  39. }

  40. void init()//定時器初始化部分
  41. {
  42.         num=t=0;         //清楚數據
  43.         TMOD=0x01;        //定時器初始化
  44.         TH0=(65536-15536)/256;//定時器賦初值 定時50ms
  45.         TL0=(65536-15536)%256;
  46.         EA=1;
  47.         ET0=1;
  48. }

  49. void timer0()
  50. {
  51.         if(TF0==1)    //查詢溢出的時間
  52.         {
  53.         TF0=0;        //清楚溢出標志
  54.         t++;
  55.    if(t==20) //累計時間到1S
  56.    {
  57.     t=0;
  58.     num++;
  59.    }
  60.         }
  61. }

  62. void main()
  63. {
  64.         init();
  65.         while(1)
  66.         {
  67.                 timer0();
  68.                 display();
  69.          if(KEY1 == 0)//開始
  70.          {
  71.                  if(TR0 == 0)
  72.                  {
  73.                     t = 0;
  74.         num = 0;
  75.         TR0=1;   
  76.                   }
  77.           }
  78.          else  if(KEY2 == 0)//復位
  79.          {
  80.         TR0 = 0;   
  81.             TF0 = 0;
  82.             t = 0;
  83.             num = 0;
  84.             TR0=1;
  85.           }
  86.                  
  87.   }

  88. }

復制代碼

回復

使用道具 舉報

ID:1025219 發表于 2022-5-9 22:11 | 顯示全部樓層
建議開始,復位,蜂鳴器采用中斷
回復

使用道具 舉報

ID:161164 發表于 2022-5-10 14:46 | 顯示全部樓層
本帖最后由 lkc8210 于 2022-5-10 14:48 編輯

你少了設置鍵
第一次按:進入個位設置模式,開始鍵為加,復位鍵為減
第二次按:進入十位設置模式,開始鍵為加,復位鍵為減
第三次按:退出設置模式,按開始鍵開始倒計時
回復

使用道具 舉報

ID:1020093 發表于 2022-5-11 20:05 | 顯示全部樓層
lkc8210 發表于 2022-5-10 14:46
你少了設置鍵
第一次按:進入個位設置模式,開始鍵為加,復位鍵為減
第二次按:進入十位設置模式,開始鍵 ...

好的謝謝啦!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美视频一区二区三区 | 在线国产一区二区 | 成人在线精品视频 | 亚洲精品自在在线观看 | 一级毛片免费完整视频 | 日本亚洲一区二区 | 五月婷婷丁香婷婷 | 日韩久久精品视频 | 成人在线免费av | 日韩精品在线一区 | 免费在线观看黄网站 | 日韩欧美视频免费在线观看 | 国产精品国产精品国产专区不片 | www.亚洲 | 国产精品免费高清 | 国产精品中文字幕在线观看 | 中文字幕久久精品 | 亚洲欧美中文日韩在线v日本 | 日韩二区三区 | 日韩久久精品视频 | 色精品视频 | 91福利电影在线观看 | 天天操天天射天天舔 | xxx国产精品视频 | 国产精品美女久久久久aⅴ国产馆 | zzzwww在线看片免费 | 国产精品夜夜春夜夜爽久久电影 | 雨宫琴音一区二区在线 | 亚洲精选一区二区 | 久久国产综合 | 亚洲精品日本 | 激情一区| 成人精品视频99在线观看免费 | 久久久久久精 | 天天射网站 | www.9191.com | 亚洲一区二区视频 | 一区二区三区免费在线观看 | 欧美一区二区三区在线观看视频 | 婷婷色在线播放 | 久久国产精品久久国产精品 |