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

標題: STC8G1K08-SOP8單片機制作定時控制程序與PCB文件 [打印本頁]

作者: gpdt3209    時間: 2023-2-23 17:10
標題: 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


作者: long2018    時間: 2023-3-30 15:33
樓主你好,能不能改成用編碼器調節,時間默認定時8小時???像這個
作者: raymondau    時間: 2023-4-9 12:08
請問樓主用的是共陰還是共陽的數碼管?
作者: gpdt3209    時間: 2023-5-4 14:10
1650驅動共陰數碼管
作者: hjx5548    時間: 2023-11-22 09:44
把代碼發給我,我幫你修改一下。
作者: raymondau    時間: 2024-3-20 17:11
請問一下樓主電路圖上J2和J3有什么用的?分別是接什么的?
作者: Lthrwy    時間: 2024-8-10 12:10
準備做一個,IC都買回來了
作者: Lthrwy    時間: 2025-2-19 09:08
Lthrwy 發表于 2024-8-10 12:10
準備做一個,IC都買回來了

照著做了一個,,求教,如果改成2位數碼管顯示要怎么改呀
作者: Lthrwy    時間: 2025-2-19 09:12
@gpdt3209 大佬,照著做了一個,想改成2位顯示的要怎么樣改一下

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

數碼管管.jpg

作者: cooleaf    時間: 2025-2-19 20:38
SOP8封裝也算是腳盡其用了呀!!




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 超碰97免费 | 黄色毛片黄色毛片 | 色www精品视频在线观看 | 午夜丰满寂寞少妇精品 | 亚洲高清免费视频 | 热re99久久精品国产99热 | 亚洲高清在线视频 | 性国产丰满麻豆videosex | 欧美精品综合在线 | 欧美性受xxx | 日韩a视频 | 国产亚洲精品精品国产亚洲综合 | 成人美女免费网站视频 | 中文字幕在线精品 | 天天色综 | 一区二区欧美在线 | 欧美视频免费在线 | 久久精品亚洲精品国产欧美 | 欧产日产国产精品99 | 国产网站在线免费观看 | 国产日韩欧美中文字幕 | 欧美1区 | 亚洲欧美日韩网站 | 99re视频这里只有精品 | 色一级片| 天堂中文在线播放 | 99reav| 久久r精品 | 欧美爱爱视频网站 | 日韩av美女电影 | 国产福利91精品 | 中文字幕一区二区三 | 国产偷自视频区视频 | 污视频在线免费观看 | 欧美综合自拍 | 成人欧美一区二区三区色青冈 | 欧美一级在线 | 国产影音先锋 | 精品视频一区二区三区在线观看 | 伊人久久成人 | 一级做a爰片久久毛片免费看 |