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

QQ登錄

只需一步,快速開始

搜索
查看: 1249|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)代碼尋求注釋,新學(xué)看不懂,求指教

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1051883 發(fā)表于 2022-11-18 15:42 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. #include<reg51.h>
  2. unsigned charnum[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  3. //定義一個(gè)數(shù)組,來表示數(shù)碼管對(duì)應(yīng)的數(shù)字
  4. unsigned charhour=12,minute=0,second=0;a=0;
  5. int time=8000;   //定義定時(shí)時(shí)間
  6. void clockl()interrupt 1   //中斷處理程序
  7. {
  8.       static unsigned  char i=0;
  9.       TH0=(65536-time)/256;     //重新載入T0的初值
  10.       TL0=(65536-time)%256;       //重新載入T0的初值
  11.       a++;
  12.       if(a==125)    //如果進(jìn)行了125次中斷
  13.       {
  14.              a=0;
  15.              second++;
  16.              if(second==60)
  17.                {
  18.                        second=0;
  19.                        minute++;
  20.                       if(minute==60)
  21.                             {
  22.                                    minute=0;
  23.                                    hour++;
  24.                                    if(hour==24)
  25.                                           hour=0;
  26.                             }
  27.                      }
  28.               }
  29.        switch(i)
  30.        {
  31.     case 0:P2=0x08;P0=num[hour/10];i++;break;
  32.     case 1:P2=0x09;P0=num[hour%10];i++;break;
  33.     case 2:P2=0x0a;P0=num[minute/10];i++;break;
  34.     case 3:P2=0x0b;P0=num[minute%10];i++;break;
  35.     case 4:P2=0x0c;P0=num[second/10];i++;break;
  36.     case 5:P2=0x0d;P0=num[second%10];i=0;break;
  37.                             }
  38.                      }
  39.       void main()
  40.       {
  41.                  TMOD=0X01;   //工作方式寄存器T1不工作處于模式0的狀態(tài)下T0工作處于模式1的狀態(tài)下
  42.                  TH0=(65536-time)/256; //高八位的值  載入初值
  43.                  TL0=(65536-time)%256; //低八位的值
  44.                  TR0=1;               //打開定時(shí)器的管腳
  45.                  EA=1;  // 把總開關(guān)閉合
  46.                  ET0=1;   //允許中斷發(fā)生  打開中斷T0
  47.                  while(1);  //兩個(gè)都打開允許輸出信號(hào)  等待中斷
  48.        }
復(fù)制代碼


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

使用道具 舉報(bào)

沙發(fā)
ID:648281 發(fā)表于 2022-11-18 20:12 | 只看該作者
定時(shí)器時(shí)鐘,先弄明白原理,然后逐句的去理解吧
回復(fù)

使用道具 舉報(bào)

板凳
ID:230742 發(fā)表于 2022-11-20 01:04 | 只看該作者
void clockl()interrupt 1   //中斷處理程序
{
      static unsigned  char i=0;    創(chuàng)建一個(gè)靜態(tài)變量i
      TH0=(65536-time)/256;     //重新載入T0的初值     中斷的初始值
      TL0=(65536-time)%256;       //重新載入T0的初值
      a++;    a+1
      if(a==125)    //如果進(jìn)行了125次中斷         如果a=125
      {                                                           那么
             a=0;                  
             second++;                                  秒加1
             if(second==60)                         如果秒=60
               {                            那么
                       second=0;            秒=0
                       minute++;           分+1
                      if(minute==60)      如果分=60
                            {                       那么
                                   minute=0;    分=0
                                   hour++;          小時(shí)+1
                                   if(hour==24)     如果小時(shí)=24
                                          hour=0;    那么小時(shí)=0
                            }
                     }
              }
       switch(i)                下面是刷新數(shù)碼管的6位。
       {
    case 0:P2=0x08;P0=num[hour/10];i++;break;        開始i=0運(yùn)行這行給數(shù)碼管的斷碼引腳和位碼引腳送數(shù)據(jù),送完了i+1
    case 1:P2=0x09;P0=num[hour%10];i++;break;         第二次運(yùn)行到選擇的時(shí)候,i=1了,就運(yùn)行這行
    case 2:P2=0x0a;P0=num[minute/10];i++;break;       以下類推
    case 3:P2=0x0b;P0=num[minute%10];i++;break;
    case 4:P2=0x0c;P0=num[second/10];i++;break;
    case 5:P2=0x0d;P0=num[second%10];i=0;break;
                            }
                     }

也不知道準(zhǔn)確不準(zhǔn)確,反正我是這么理解的。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表