經常自己做板子,每次曝光用手機計時,這次閑著沒事做了個定時器,技術含量不高,可以供大家玩玩。
制作出來的實物圖如下:
工作狀態
1.jpg (288.5 KB, 下載次數: 111)
下載附件
工作狀態
2019-6-7 20:58 上傳
裝配好的樣子
4.jpg (190.46 KB, 下載次數: 114)
下載附件
裝配好的樣子
2019-6-7 20:58 上傳
自己感光法做的雙面PCB
3.jpg (136.17 KB, 下載次數: 113)
下載附件
自己感光法做的雙面PCB
2019-6-7 20:58 上傳
外觀,還沒用螺絲固定
2.jpg (141.53 KB, 下載次數: 110)
下載附件
外觀,還沒用螺絲固定
2019-6-7 20:58 上傳
protel畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
gg11.jpg (93.15 KB, 下載次數: 113)
下載附件
原理圖
2019-6-7 20:57 上傳
gg22.jpg (46.93 KB, 下載次數: 112)
下載附件
PCB
2019-6-7 20:57 上傳
gg33.jpg (17.35 KB, 下載次數: 102)
下載附件
壓縮包文件內容
2019-6-7 20:58 上傳
/*曝光機定時器單片機源程序*/
/**********************************
** 程序名稱:曝光機定時器程序 **
** 支持芯片:STC11F02E **
** 芯片主頻:12M **
** 編寫日期:2019年 **
** 編寫人員 **
** 聯系方式: **
** 著 作 權: CXDZ **
** 版 本: V1.0 **
** 備注說明: **
**********************************/
#include"reg51.h"
#include"intrins.h" //包含_nop_()函數
typedef unsigned int u16; //對數據類型進行聲明定義
typedef unsigned char u8;
sbit JQX=P3^7;//繼電器
sbit ALAM=P3^0; //蜂鳴器
u8 ALAM_FLG;
u8 SEC_FLG;
sbit LSA=P3^5;
sbit LSB=P3^4;
sbit LSC=P3^3;
sbit LSD=P3^2;
u8 code smgduan[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xC7,0xFF};//顯示0~F的值
u8 n=0;
u16 s_val;
u16 a,b,c,t;
void delayms(u16 xms) // xms代表需要延時的毫秒數(可能不準)
{
unsigned int x,y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}
void disp(void)
{
LSA=1;LSB=0;LSC=0;LSD=0; //顯示第0位
P1=smgduan[a%10/1];
delayms(5);
LSA=0;
P1=0xFF;
delayms(5);
LSA=0;
LSA=0;LSB=1;LSC=0;LSD=0; //顯示第1位
P1=smgduan[(a%100/10)];
delayms(5);
LSB=0;
P1=0xFF;
delayms(5);
LSB=0;
LSA=0;LSB=0;LSC=1;LSD=0; //顯示第2位
P1=smgduan[a%1000/100];
delayms(5);
LSC=0;
P1=0xFF;
delayms(5);
LSC=0;
LSA=0;LSB=0;LSC=0;LSD=1; //顯示第3位
P1=smgduan[a%10000/1000];
delayms(5);
LSD=0;
P1=0xFF;
delayms(5);
LSD=0;
}
//**********************
void be_be()
{u8 d;
ALAM=1;
for(d=70;d>0;d--)
{ disp();}
ALAM=0;
for(d=70;d>0;d--)
{ disp();}
ALAM=1;
for(d=70;d>0;d--)
{ disp();}
ALAM=0;}
/*******************************************************************************
* 函 數 名 :
* 函數功能 :
* 輸 入 :
* 輸 出 :
*******************************************************************************/
void InitTimer0(void)
{
TMOD=0x01;
TH0=0xFC;
TL0=0xBD;
EA=1;
ET0=1;
TR0=1;
}
void Timer0Interrupt(void) interrupt 1
{
TH0=0xFC; /**慢慢試出來的數據,基本準確,可以自己修改,提高計時精度*/
TL0=0xBD;
s_val++;
if(s_val>=500)
{
SEC_FLG=0xFF;
s_val=0;
}
if(t==0) {TR0=0;
JQX=0;
ALAM_FLG=0xFF;
}
}
/*******************************************************************************
* 函 數 名 : main
* 函數功能 : 主函數
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void main()
{
ALAM_FLG=0x00;
SEC_FLG=0x00;
s_val=0x00;
ALAM=0;
JQX=1; //繼電器初始狀態為開
t=150; //定時150秒,改變t值,可以改變顯示,最大四位,小于四位前幾位為0顯示。
InitTimer0();
while(1)
{
if(SEC_FLG==0xFF)
{SEC_FLG=0x00;
t--;}
a=t;
disp();
if(ALAM_FLG==0xFF)
{be_be();
be_be();
be_be();
be_be();
be_be();
ALAM_FLG=0;
}
}
}
全部資料51hei下載地址:
感光板曝光機定時器.rar
(274.46 KB, 下載次數: 108)
2019-6-7 21:03 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|