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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC8G1K08-SOP8單片機制作定時控制程序與PCB文件

  [復制鏈接]
跳轉到指定樓層
樓主
制作出來的實物圖如下:


電路原理圖如下:


protel99畫的PCB圖如下:(51hei附件中可下載工程文件)

/*------------------------程序說明----------------------------*/
/*---本程序運行在STC8G1K08中----------------------------------*/
/*---時間設置步長為一分鐘-------------------------------------*/
/*---可以根據需要更改變量K的判斷值修改時間步長----------------*/
/*---上電后先循環點亮數碼管、發光管,檢測完成初始化-----------*/
/*---每按一下按鍵,則定時時間增加不同時間步長-----------------*/
/*---充電過程中紅色指示燈閃爍表示正在充電---------------------*/
/*---充電完成關閉紅色指示燈表示充電完成-----------------------*/
/*---充電中或完成后可以重新通過按鍵設置定時時間-------------------*/
/*---延時上電和延時斷電選擇功能,按下Key1再通電實現延時上電功能設置---*/
//#include "STC8xxxx.H"//<STC8G.h>
#include "Config.H"
#define uchar unsigned char
#define uint unsigned int

sbit JDQ=P5^4;           //繼電器(高電平充電,低電平不充電)

sbit KEY1 = P3^0;        
sbit KEY2 = P3^1;

sbit RED_flash=P5^5;          //充電中指示燈閃爍

enum {OFF = 1, ON = 0};
enum {JDQ_OFF = 0, JDQ_ON = 1};

void key();

bit delay_OnOff=1;                   //延時上電和延時斷電選擇位,開機檢查Key1設置此位,0表示延時上電,1表示延時斷電。

uchar i;
uint t = 0;                   //按鍵計數變量
uint k = 0;                   //計時計數變量
uint m = 0;                   //閃爍計數變量

uint T0_flag = 0;                   //定時器運行后不為0

void LED_Init()    //狀態指示燈檢測 初始化
{   
   RED_flash=ON;
   Delay_ms(300);
   RED_flash=OFF;   
}

/******定時器0初始化,12T自動重裝模式,定時60毫秒******/
void InitTimer0()                   //60ms定時器
{
    TMOD = 0x01;
    TH0=(65536-60000)/256;
        TL0=(65536-60000)%256;
    EA = 1;                   //開 總中斷
    ET0 = 1;           //開 定時器T0中斷
//    TR0 = 1;           //開啟 定時器T0
}   

/*--------------------------主函數------------------------------*/
void main()
{         
        P3M0 = 0x00;
    P3M1 = 0x00;
        P5M0 = 0x00;
    P5M1 = 0x00;

        delay_OnOff=KEY1;  //延時斷電或延時上電選擇。0:延時上電,1:延時斷電。先長按KEY1不松再通電有效
    JDQ = JDQ_OFF;        //關閉繼電器,等待開始充電。        

    LED_Init();                 //狀態指示燈檢測 初始化

        Light_Level_Set(4);        //設置亮度等級1-8級
    for(i=0;i<10;i++)        //測試顯示屏
                {
                   AiP650_DisPlay(1,i);
                   AiP650_DisPlay(2,i);
                   AiP650_DisPlay(3,i);
                   AiP650_DisPlay(4,i);
                   Delay_ms(400);
                }        
//        i=0;
        AiP650_CLR();
        Delay_ms(500);

        InitTimer0();           //定時器初始化

        TR0 = 0;           //關閉 定時器T0
        t=0;                     //上電默認充電時間
        

        while(1)
        {
         
          key();                                //循環按鍵函數
          AiP650_DisPlayFourNum(t);         //顯示數字

      if(delay_OnOff==1)                //延時斷電模式,定時充電未啟動
                   {                  
                         if(t==0)
                           {
                             JDQ = JDQ_OFF;          //斷開繼電器,停止充電
                         TR0 = 0;            //停止定時器
                             RED_flash=OFF;        
                           }                           
                 else
                              {
                                 TR0 = 1;        //啟動定時器
                                 JDQ = JDQ_ON;                          
                           }
                  }
          if(delay_OnOff==0)                //延時通電模式,定時充電未啟動
                   {        
                     if(t==0&&T0_flag==0)
                             {  
                                 JDQ = JDQ_OFF;          //
                             TR0 = 0;                //停止定時器
                                 RED_flash=ON;                                   
                  }
                 else if(t!=0)
                      {
                                  TR0 = 1;        //啟動定時器
                              JDQ = JDQ_OFF;                          
                          }
                         else
                          {
                                  TR0 = 0;        //停止定時器
                                    JDQ = JDQ_ON;
                          }
                   }
          if(k>=1000)                        //按鍵設定時間增量   30000半小時時間   60000一小時           1000一分鐘
       {
           k = 0;
                   t-=1;                        //減去一分鐘
                                    

       }
           Delay_ms(25);
        }   
}

/*---定時器T0中斷函數---*/
void Timer0() interrupt 1
{
        
        TH0=(65536-60000)/256;        //賦初值
        TL0=(65536-60000)%256;
        k++;                                        //
        m++;                                        //
        T0_flag++;

         if(T0_flag > 1000)                //
          {                                
                  T0_flag = 1;
          }
        /*---充電過程中指示燈閃爍---*/
          if(m > 8)                //每480ms充電指示燈閃爍一次
          {                                
                  m = 0;
                  RED_flash = ~RED_flash;        //取反實現閃爍
          }
}


void key()        //按鍵操作
{         
          if(KEY1==0)                        //有鍵按下
          {  
                Delay_ms(150);                  
            t+=30;                        
                if(t>600)               
                t = 0;        
          }               

        if(KEY2==0)                        //按下按鍵加一        
        {
                Delay_ms(150);        
                t+=1;        
                if(t>600)                        
                t = 1;
        }        
}                 


Keil5程序.7z

46.36 KB, 下載次數: 94, 下載積分: 黑幣 -5

protel PCB文件.7z

26.94 KB, 下載次數: 75, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:292518 發表于 2023-3-30 15:33 | 只看該作者
樓主你好,能不能改成用編碼器調節,時間默認定時8小時???像這個
回復

使用道具 舉報

板凳
ID:102702 發表于 2023-4-9 12:08 | 只看該作者
請問樓主用的是共陰還是共陽的數碼管?
回復

使用道具 舉報

地板
ID:235691 發表于 2023-5-4 14:10 | 只看該作者
1650驅動共陰數碼管
回復

使用道具 舉報

5#
ID:72649 發表于 2023-11-22 09:44 來自手機 | 只看該作者
把代碼發給我,我幫你修改一下。
回復

使用道具 舉報

6#
ID:102702 發表于 2024-3-20 17:11 | 只看該作者
請問一下樓主電路圖上J2和J3有什么用的?分別是接什么的?
回復

使用道具 舉報

7#
ID:1075398 發表于 2024-8-10 12:10 | 只看該作者
準備做一個,IC都買回來了
回復

使用道具 舉報

8#
ID:1075398 發表于 2025-2-19 09:08 | 只看該作者
Lthrwy 發表于 2024-8-10 12:10
準備做一個,IC都買回來了

照著做了一個,,求教,如果改成2位數碼管顯示要怎么改呀
回復

使用道具 舉報

9#
ID:1075398 發表于 2025-2-19 09:12 | 只看該作者
@gpdt3209 大佬,照著做了一個,想改成2位顯示的要怎么樣改一下

數碼管管.jpg (798.08 KB, 下載次數: 0)

數碼管管.jpg
回復

使用道具 舉報

10#
ID:430492 發表于 2025-2-19 20:38 | 只看該作者
SOP8封裝也算是腳盡其用了呀!!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人欧美一区二区 | 天天视频成人 | 草逼网站| 成人在线视频免费观看 | 精品国产乱码久久久久久影片 | 欧美精品一区二区三区在线播放 | 成人午夜免费网站 | 国产高清精品网站 | 免费人成在线观看网站 | 天堂久久久久久久 | 亚洲三区视频 | 亚洲日本中文 | 在线欧美a | 欧美一级www片免费观看 | 亚洲第一av | 成人在线国产 | 亚av在线 | 日本欧美国产在线观看 | 欧美专区在线视频 | 国产色| 国产一区欧美 | 亚洲综合免费 | 精品久久久久久久 | 女人av| 午夜激情免费 | 国产精品久久久久久吹潮日韩动画 | 国产农村一级国产农村 | 一区二区影视 | 三级黄色大片网站 | 蜜桃日韩| 日日摸夜夜爽人人添av | 黑人精品欧美一区二区蜜桃 | com.国产 | www.99热| 亚洲网址在线观看 | 欧美日韩国产在线观看 | 精品九九| 男女精品网站 | 亚洲欧美日韩激情 | 精品久久久久久久久久久久久 | 国产三级一区二区三区 |