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

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

QQ登錄

只需一步,快速開(kāi)始

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

STC8G1K08-SOP8單片機(jī)制作定時(shí)控制程序與PCB文件

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
制作出來(lái)的實(shí)物圖如下:


電路原理圖如下:


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

/*------------------------程序說(shuō)明----------------------------*/
/*---本程序運(yùn)行在STC8G1K08中----------------------------------*/
/*---時(shí)間設(shè)置步長(zhǎng)為一分鐘-------------------------------------*/
/*---可以根據(jù)需要更改變量K的判斷值修改時(shí)間步長(zhǎng)----------------*/
/*---上電后先循環(huán)點(diǎn)亮數(shù)碼管、發(fā)光管,檢測(cè)完成初始化-----------*/
/*---每按一下按鍵,則定時(shí)時(shí)間增加不同時(shí)間步長(zhǎng)-----------------*/
/*---充電過(guò)程中紅色指示燈閃爍表示正在充電---------------------*/
/*---充電完成關(guān)閉紅色指示燈表示充電完成-----------------------*/
/*---充電中或完成后可以重新通過(guò)按鍵設(shè)置定時(shí)時(shí)間-------------------*/
/*---延時(shí)上電和延時(shí)斷電選擇功能,按下Key1再通電實(shí)現(xiàn)延時(shí)上電功能設(shè)置---*/
//#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;                   //延時(shí)上電和延時(shí)斷電選擇位,開(kāi)機(jī)檢查Key1設(shè)置此位,0表示延時(shí)上電,1表示延時(shí)斷電。

uchar i;
uint t = 0;                   //按鍵計(jì)數(shù)變量
uint k = 0;                   //計(jì)時(shí)計(jì)數(shù)變量
uint m = 0;                   //閃爍計(jì)數(shù)變量

uint T0_flag = 0;                   //定時(shí)器運(yùn)行后不為0

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

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

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

        delay_OnOff=KEY1;  //延時(shí)斷電或延時(shí)上電選擇。0:延時(shí)上電,1:延時(shí)斷電。先長(zhǎng)按KEY1不松再通電有效
    JDQ = JDQ_OFF;        //關(guān)閉繼電器,等待開(kāi)始充電。        

    LED_Init();                 //狀態(tài)指示燈檢測(cè) 初始化

        Light_Level_Set(4);        //設(shè)置亮度等級(jí)1-8級(jí)
    for(i=0;i<10;i++)        //測(cè)試顯示屏
                {
                   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();           //定時(shí)器初始化

        TR0 = 0;           //關(guān)閉 定時(shí)器T0
        t=0;                     //上電默認(rèn)充電時(shí)間
        

        while(1)
        {
         
          key();                                //循環(huán)按鍵函數(shù)
          AiP650_DisPlayFourNum(t);         //顯示數(shù)字

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

       }
           Delay_ms(25);
        }   
}

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

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


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, 下載次數(shù): 94, 下載積分: 黑幣 -5

protel PCB文件.7z

26.94 KB, 下載次數(shù): 75, 下載積分: 黑幣 -5

評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:292518 發(fā)表于 2023-3-30 15:33 | 只看該作者
樓主你好,能不能改成用編碼器調(diào)節(jié),時(shí)間默認(rèn)定時(shí)8小時(shí)???像這個(gè)
回復(fù)

使用道具 舉報(bào)

板凳
ID:102702 發(fā)表于 2023-4-9 12:08 | 只看該作者
請(qǐng)問(wèn)樓主用的是共陰還是共陽(yáng)的數(shù)碼管?
回復(fù)

使用道具 舉報(bào)

地板
ID:235691 發(fā)表于 2023-5-4 14:10 | 只看該作者
1650驅(qū)動(dòng)共陰數(shù)碼管
回復(fù)

使用道具 舉報(bào)

5#
ID:72649 發(fā)表于 2023-11-22 09:44 來(lái)自手機(jī) | 只看該作者
把代碼發(fā)給我,我?guī)湍阈薷囊幌隆?/td>
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

7#
ID:1075398 發(fā)表于 2024-8-10 12:10 | 只看該作者
準(zhǔn)備做一個(gè),IC都買回來(lái)了
回復(fù)

使用道具 舉報(bào)

8#
ID:1075398 發(fā)表于 2025-2-19 09:08 | 只看該作者
Lthrwy 發(fā)表于 2024-8-10 12:10
準(zhǔn)備做一個(gè),IC都買回來(lái)了

照著做了一個(gè),,求教,如果改成2位數(shù)碼管顯示要怎么改呀
回復(fù)

使用道具 舉報(bào)

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

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

數(shù)碼管管.jpg
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美黑人一区 | 亚洲国产精品视频一区 | 欧美日韩精品中文字幕 | 在线看国产 | 亚洲理论在线观看电影 | 日韩精品在线网站 | 国产日韩欧美在线观看 | 国产精品有限公司 | 亚洲国产一区二区在线 | 免费在线观看一级毛片 | 日韩国产三区 | 中文字幕视频在线看 | 一区二区av | 欧产日产国产精品视频 | 日本在线网站 | 一区二区中文字幕 | 久草在线青青草 | 狠狠干天天干 | 99久久婷婷国产综合精品电影 | 日韩精品免费在线 | 99在线资源| 日韩av在线一区二区 | 天天草夜夜骑 | 亚洲品质自拍视频网站 | 成人av免费在线观看 | 欧美一级片中文字幕 | 99视频免费播放 | 四虎影院在线观看av | 最新av中文字幕 | 中文字幕人成乱码在线观看 | 欧美日韩三级在线观看 | 嫩草最新网址 | 亚洲精品成人 | 国产精品1区 | 一区二区三区视频在线观看 | 国产1区2区 | 亚洲美女视频 | 亚洲精品在线视频 | 国产在线二区 | 神马久久av | 一区二区高清不卡 |