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

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

QQ登錄

只需一步,快速開始

搜索
查看: 2293|回復(fù): 3
收起左側(cè)

撿了一個(gè)倒計(jì)時(shí)單片機(jī)板子沒事仿了一下他的程序

[復(fù)制鏈接]
ID:288865 發(fā)表于 2019-5-12 22:35 來自觸屏版 | 顯示全部樓層 |閱讀模式
撿了一個(gè)單片機(jī)電路板,雙倒計(jì)時(shí)可設(shè)置的,帶存儲(chǔ),一看stc的單片機(jī),沒事仿一個(gè),不是很專業(yè),具體功能是有了,按鍵這一塊處理感覺有點(diǎn)難,感覺挺復(fù)雜的,掛上給初學(xué)者看看。高手可以略過了。或者指點(diǎn)一下也行
#include "STC8fxx.H"                         //此文件中定義了單片機(jī)的一些特殊功能寄存器
#include "intrins.H"
#include "delay.H"
#include "DigDisplay.H"
#include "EEPROM.H"
#include "key.H"
#include "Timer0.H"

#define uint unsigned int               //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
#define uchar unsigned char           //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義

/*****************************************
* 定義全局變量
**************************************/

uchar code smgduan[12]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,0x7f,0x6f,0x77,0x7c};
uchar temp1,temp2,temp3,temp4;
uchar DisplayData[4];
uchar a,b;
uint hs;
bit s=0,k=0;        

/*******************************************************************************
* 函 數(shù) 名       : main
* 函數(shù)功能                 : 主函數(shù)
* 輸    入       : 無
* 輸    出             : 無
*******************************************************************************/
void main()
{
uchar q;
out=1;

Delay_ms(500);
temp1=IapRead(0x0400);//讀取eeprom數(shù)據(jù)
Delay_ms(5);
temp2=IapRead(0x0401);
Delay_ms(5);
temp3=IapRead(0x0500);
Delay_ms(5);                           
temp4=IapRead(0x0501);
Delay_ms(5);                           

while(k5==0&&k==0)        //模式1
  {
   a=temp1;          //將讀取的數(shù)據(jù)賦值
   b=temp2;
   s=1;
   Timer0();

   while(s)
   {
    DigDisplay();
    datapros();

    if(k1==0)
      {
           DigDisplay();
           DigDisplay();
           if(k1==0)
            {
             k=1;
             TR0=0;
             break;
            }
      }
          if(k5==1)break;
    }
  }
while(k5==1&&k==0)
  {
   a=temp3;
   b=temp4;
   s=1;
   Timer0();

   while(s)
   {
    DigDisplay();
    datapros();

    if(k1==0)
     {
      Delay_ms(2000);
          if(k1==0)
           {
            k=1;
            TR0=0;
            break;
           }
     }
         if(k5==0)break;
    }
  }
  
while(k==1)
  {
    uchar keya=KeyScan();
        out=1;

        DigDisplay();

    if(k1==0)
         {
          Delay_ms(20);
          if(k1==0)
           {
           while(!k1)DigDisplay();
                q=q+1;
                if(q>4)q=0;
           }
         }
   switch(q)
          {                        
            case 0:    break;
            case 1:
                                           DisplayData[0]=0x77;
                       DisplayData[1]=smgduan[1];
                           DisplayData[2]=smgduan[temp1/10];
                           DisplayData[3]=smgduan[temp1%10];
                      switch(keya)
                      {         
                           //case 1:  keynum++;if(keynum==100)keynum=0; break;
                             case 2:  if(temp1>0)temp1--; break;
                             case 3:  if(temp1<99)temp1++;else if(temp1>=99)temp1=99; break;
                            // case 0:   break;
                      }        
                                       break;
            case 2:
                                           DisplayData[0]=0x77;
                       DisplayData[1]=smgduan[2];
                           DisplayData[2]=smgduan[temp2/10];
                           DisplayData[3]=smgduan[temp2%10];
                      switch(keya)
                      {
                           //case 1:  keynum++;if(keynum==100)keynum=0; break;
                             case 2:  if(temp2>0)temp2--; break;
                             case 3:  if(temp2<99)temp2++;else if(temp2>=99)temp2=99; break;
                           //case 4:   break;
                      }        
                                   break;

            case 3:
                                           DisplayData[0]=0x7c;
                       DisplayData[1]=smgduan[1];
                           DisplayData[2]=smgduan[temp3/10];
                           DisplayData[3]=smgduan[temp3%10];
                      switch(keya)
                      {
                           //case 1:  keynum++;if(keynum==100)keynum=0; break;
                             case 2:  if(temp3>0)temp3--; break;
                             case 3:  if(temp3<99)temp3++;else if(temp3>=99)temp3=99; break;
                           //case 4:   break;
                      }
                                           break;
            case 4:
                                           DisplayData[0]=0x7c;
                       DisplayData[1]=smgduan[2];
                           DisplayData[2]=smgduan[temp4/10];
                           DisplayData[3]=smgduan[temp4%10];
                      switch(keya)
                      {
                           //case 1:  keynum++;if(keynum==100)keynum=0; break;
                             case 2:  if(temp4>0)temp4--; break;
                             case 3:  if(temp4<99)temp4++;else if(temp4>=99)temp4=99; break;
                           //case 4:   break;
                      }        
                                           break;
                 }
                if(k4==0)
                {
                Delay_ms(20);
                 if(k4==0)
                 {
                  while(!k4);
                  IapErase(0x400);
                  Delay_ms(50);
                  IapErase(0x500);
                  Delay_ms(50);
                  IapProgram(0x400, temp1);
                  Delay_ms(50);
                  IapProgram(0x401, temp2);
                  Delay_ms(50);
                  IapProgram(0x500, temp3);
                  Delay_ms(50);
                  IapProgram(0x501, temp4);
                  Delay_ms(50);
                  k=0;

                 }
                 }

  }
  }
/*******************************************************************************
* 函 數(shù) 名         : 定時(shí)器0中斷函數(shù)
* 函數(shù)功能                   :
***********************************************************************************************************
* 函 數(shù) 名         : 定時(shí)器0中斷函數(shù)
* 函數(shù)功能                   :
*******************************************************************************/
void Timer0Init() interrupt 1
{        
        TH0=0X0FE;        //給定時(shí)器賦初值,定時(shí)1ms
        TL0=0X0C;
        hs++;
    if(hs==1000)
          {
           if(out==1)
                 {
              a--;
                  hs=0;
                  if(a==0)out=0;
                 }
                else if(out==0)
                  {
                   b--;
                   hs=0;
               if(b==0)
                 {
                  out=1;
                  s=0;
                  TR0=0;
                 }
                   }
      }
}

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:66287 發(fā)表于 2019-5-16 14:57 | 顯示全部樓層
挺好的,希望程序適當(dāng)?shù)膶扅c(diǎn)注釋!
回復(fù)

使用道具 舉報(bào)

ID:328014 發(fā)表于 2019-5-15 01:58 | 顯示全部樓層
點(diǎn)高級(jí)模式里面有個(gè)附件上傳的圖標(biāo)
回復(fù)

使用道具 舉報(bào)

ID:288865 發(fā)表于 2019-5-12 22:36 來自觸屏版 | 顯示全部樓層
不會(huì)發(fā)附件啊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩第一页 | av看片| 成人一区av | 国产美女视频黄a视频免费 国产精品福利视频 | 日韩三| 精品视频一区二区三区在线观看 | 手机在线观看 | 国产精品久久久久久久免费大片 | 四虎影院在线观看av | h小视频 | 在线观看成人精品 | 精品欧美一区二区精品久久久 | 狠狠干天天干 | 久久这里有精品 | 成人免费视频观看视频 | 日韩精品一区二区三区在线播放 | 欧美电影免费观看 | 伊人春色在线观看 | 亚洲视频免费在线观看 | 精品久久久久久久久久久久久久 | 久久av一区二区三区 | 国产一区影院 | 亚洲国产情侣 | 成人精品久久日伦片大全免费 | 国产精品一码二码三码在线 | 欧美精品欧美精品系列 | 日韩1区 | 亚洲精品视频在线 | 国产视频日韩 | 黄色国产在线视频 | 亚洲成人一区 | 国产激情视频 | 国产精品久久久爽爽爽麻豆色哟哟 | 久草免费视 | 亚洲国产精品久久久久婷婷老年 | 在线观看黄色 | 伊人成人免费视频 | 精品国产第一区二区三区 | 精品国产一区二区国模嫣然 | 日本涩涩网 | 亚洲精品国产成人 |