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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

自制PCB曝光定時器 附51單片機(jī)源程序+電路

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:325624 發(fā)表于 2020-3-9 11:50 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
因為DIY感光PCB老是失敗,所以模仿大佬制作一個定時器。功能鍵用于開始/停止計時,加/減按鍵只能在非計時模式下才能調(diào)時間。調(diào)節(jié)范圍是0~999秒。采用中斷計時應(yīng)該沒問題,關(guān)于延時函數(shù)老是BUG,所以使用的下載器生成的延時代碼。版主是新手,程序問題多多包涵哈。當(dāng)然也可以我詢問我,盡量回復(fù),

電路原理圖如下:


單片機(jī)源程序如下:
顯影曝光定時器工程.rar (46.69 KB, 下載次數(shù): 37)

評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:325624 發(fā)表于 2020-3-9 11:51 | 只看該作者
#include <REG52.H>
#include<intrins.h>


#define uint unsigned char
   
uint time = 100; //定時時間
uint time1;
uint num = 0;    //計時達(dá)1s標(biāo)志位
bit state = 0;  //工作狀態(tài)標(biāo)志位


unsigned char LED7Code[]={
        0x3F,                // 0
        0x06,                // 1
        0x5B,                // 2
        0x4F,                // 3
        0x66,                // 4
        0x6D,                // 5
        0x7D,                // 6
        0x07,                // 7
        0x7F,                // 8
        0x6F,                // 9
        0x77,                // A
        0x7C,                // B
        0x39,                // C
        0x5E,                // D
        0x79,                // E
        0x71                // F
};



sbit RELAY = P3^6;   //繼電器,高電平有效
sbit BUZY   = P3^6; //蜂鳴器,高電平有效

//按鍵聲明
sbit KeyFunction = P3^2;       //功能按鍵,開始/暫停
sbit KeyAdd      = P3^3;      //按鍵加
sbit KeyMinus    = P3^4;     //按鍵減

//數(shù)碼管位聲明 ----段選為P2口
sbit duan1 = P1^0;     //從左往右,第一位
sbit duan2 = P1^1;    //從左往右,第二位
sbit duan3 = P1^2;   //從左往右,第三位
sbit duan4 = P1^3;  //從左往右,第四位

//子函數(shù)聲明
void display(void);         //數(shù)碼管掃描函數(shù)
void Delay2ms(void);       //@12.000MHz,延時5ms
void Delay10ms(void);     //@12.000MHz,延時10ms
void Delay150ms(void);   //@12.000MHz,延時150ms
void Delay200ms(void);  //@12.000MHz,延時200ms
void testKey();        //按鍵檢測



void main()
{

   
    //中斷寄存器操作
    TMOD = 0x01;   //設(shè)置定時器0工作方式(M1,M0為0,1)
    TH0 = (65536-45872)/256;     //裝初值
    TL0 = (65536-45872)%256;   //裝初值
    EA = 1;     //開總中斷
    ET0 = 1;   //開定時器0中斷
        
    //開機(jī)音效
    BUZY = 1;
    Delay200ms();        ;
    BUZY = 0;
    Delay200ms();       
    BUZY = 1;
    Delay200ms();       
    BUZY = 0;
   
        while(1)
        {
        
        time1 = time;
        display();//數(shù)碼管顯示
        testKey(); //按鍵檢測
      
           //進(jìn)入計時模式
          if(state)
          {   
              time1 = time;           
              TR0 = 1;     //開啟定時器0
              RELAY = 1;  //打開繼電器   
            
              while(state)
              {                  
                testKey();
                display();
                  //判斷計時是否完成
              if(time1 == 0)
              {
                  TR0 = 0;  //關(guān)閉定時器                  
                  state = 0;
                  //蜂鳴器響三聲,表示計時結(jié)束
                  BUZY = 1;
                  Delay200ms();Delay200ms();
                  BUZY = 0;
                  Delay200ms();Delay200ms();
                  BUZY = 1;
                  Delay200ms();Delay200ms();
                  BUZY = 0;
                  Delay200ms();Delay200ms();
                  BUZY = 1;
                  Delay200ms();Delay200ms();
                  BUZY = 0;
                  
              }
            
              }  
                    RELAY = 0;   
        }
    }
}


void display(void)
{
   uint j, ge, shi, bai;
//       個位  十位  百位
        ge = time1%10;
        shi = time1%100/10;
        bai = time1/100;
   
        
    //數(shù)碼管動態(tài)掃描
    for(j=0;j<4;j++)
    {

        switch(j)
        {
            //個位顯示
            case 0:
                    duan1 = 0;
                    duan2 = 0;
                    duan3 = 0;
                    duan4 = 1;
                    P2 = LED7Code[ge];
                    break;
            //十位顯示
            case 1:
                    duan1 = 0;
                    duan2 = 0;
                    duan3 = 1;
                    duan4 = 0;
                    P2 = LED7Code[shi];
                    break;
            //百位顯示
            case 2:
                    duan1 = 0;
                    duan2 = 1;
                    duan3 = 0;
                    duan4 = 0;
                    P2 = LED7Code[bai];
                    break;
            //第四位顯示
            case 3:
            //設(shè)置模式顯示C
                if(state)
                    {
                        duan1 = 1;
                        duan2 = 0;
                        duan3 = 0;
                        duan4 = 0;
                        P2 = LED7Code[14];
                    }
            //計時模式顯示E        
                    else
                    {
                        duan1 = 1;
                        duan2 = 0;
                        duan3 = 0;
                        duan4 = 0;
                        P2 = LED7Code[12];
                    }
                    
                    break;
                    
        }   
                        Delay2ms();                //@12.000MHz  ,延時5ms
                        P2 = 0x00;
                        duan1 = 0;
                        duan2 = 0;
                        duan3 = 0;
                        duan4 = 0;
    }            
}   


//按鍵檢測函數(shù)
void testKey()
{
    //功能鍵檢測
    if(~KeyFunction)
    {
        Delay10ms();       
        
         if(~KeyFunction)
         {
            state = ~state;
             BUZY = 0;
         }
        while(~KeyFunction);
    }
//按鍵加檢測
    if(~KeyAdd)
    {
        Delay10ms();               
        
         if(~KeyAdd)
         {
            if(~state && time<999)
            {                              
                    time++;
               
            }
            Delay10ms();
                if(~KeyAdd)
                   Delay150ms();
         }
        
    }
//按鍵減檢測
      if(~KeyMinus)
    {
        Delay2ms();       
        
         if(~KeyMinus)
         {
             if(~state && time>0)
             {
                 
                   time--;
                 
             }
             Delay10ms();
              if(~KeyMinus)            
                 Delay150ms();                           
         }
        
    }         
}




void Delay2ms()                //@12.000MHz
{
        unsigned char i, j;

        _nop_();
        i = 32;
        j = 40;
        do
        {
                while (--j);
        } while (--i);
}

void Delay10ms()                //@12.000MHz
{
        unsigned char i, j;

        _nop_();
        _nop_();
        i = 156;
        j = 213;
        do
        {
                while (--j);
        } while (--i);
}

void Delay150ms()                //@12.000MHz
{
        unsigned char i, j, k;

        i = 10;
        j = 34;
        k = 160;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}


void Delay200ms()                //@12.000MHz
{
        unsigned char i, j, k;

        _nop_();
        _nop_();
        i = 13;
        j = 45;
        k = 214;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}








//中斷函數(shù)
void T0time() interrupt 1
{
    TH0 = (65536-45872)/256;     //裝初值
    TL0 = (65536-45872)%256;   //裝初值
   
    //5毫秒一次中斷,滿20次表示1秒已到
    num++;
    if(num == 20)
    {
        num = 0;
        time1--;
    }
   
   
   
}
回復(fù)

使用道具 舉報

板凳
ID:295154 發(fā)表于 2020-6-12 14:30 | 只看該作者
好,學(xué)習(xí)了
回復(fù)

使用道具 舉報

地板
ID:774631 發(fā)表于 2020-6-13 07:41 來自手機(jī) | 只看該作者
謝謝分享,下載來學(xué)習(xí)下
回復(fù)

使用道具 舉報

5#
ID:385830 發(fā)表于 2021-12-5 12:31 | 只看該作者
樓主你是用立創(chuàng)EDA畫的原理圖吧。看著像。。。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品视频一二区 | 亚洲a视频 | 亚洲免费精品 | 中文字幕 亚洲一区 | 天天躁日日躁狠狠很躁 | 亚洲成人精品在线 | 欧美aⅴ在线观看 | 中文字幕成人av | 欧美久久久久久久久中文字幕 | 浮生影院免费观看中文版 | 欧美一区二区三区四区五区无卡码 | 天天综合国产 | 日韩成人精品一区 | 福利网址 | 午夜影院网站 | 成人依人 | 亚洲高清在线 | 国产综合久久 | 日韩欧美高清dvd碟片 | 久久精品国产一区二区电影 | 欧美日韩久久 | 亚洲一区影院 | 亚洲视频在线一区 | 国产乱码一二三区精品 | 亚洲视频在线看 | 四虎影视一区二区 | 亚洲精品专区 | 777zyz色资源站在线观看 | av一区二区三区四区 | 中文字幕1区2区3区 亚洲国产成人精品女人久久久 | 午夜理伦三级理论三级在线观看 | 一区二区三区电影在线观看 | 亚洲一区 中文字幕 | 日韩av一区二区在线观看 | 日韩在线视频网址 | 偷拍自拍网址 | 一级视频在线免费观看 | 亚洲视频不卡 | 中文字幕不卡在线88 | 日皮视频免费 | 精品欧美一区二区三区久久久 |