找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6772|回复: 9
收起左侧

STC11F02单片机做的紫外曝光灯定时器程序+PCB+电路原理图

  [复制链接]
ID:468878 发表于 2019-6-7 21:01 | 显示全部楼层 |阅读模式
经常自己做板子,每次曝光用手机计时,这次闲着没事做了个定时器,技术含量不高,可以供大家玩玩。

制作出来的实物图如下:
工作状态

工作状态

工作状态


装配好的样子

装配好的样子

装配好的样子


自己感光法做的双面PCB

自己感光法做的双面PCB

自己感光法做的双面PCB



外观,还没用螺丝固定

外观,还没用螺丝固定

外观,还没用螺丝固定


protel画的原理图和PCB图如下:(51hei附件中可下载工程文件)

原理图

原理图

PCB

PCB

压缩包文件内容

压缩包文件内容

/*曝光机定时器单片机源程序*/
/**********************************

** 程序名称:曝光机定时器程序 **

  

** 支持芯片: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)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:516571 发表于 2019-6-8 09:03 | 显示全部楼层
很不错的想法,值得学习研究
回复

使用道具 举报

ID:557425 发表于 2019-6-8 11:23 | 显示全部楼层
感觉很新颖
回复

使用道具 举报

ID:35873 发表于 2019-6-24 18:40 | 显示全部楼层
非常好 多谢分享  有空做个曝光机玩电路板
回复

使用道具 举报

ID:60458 发表于 2019-8-25 16:36 | 显示全部楼层
先下载,抽时间做一个。谢谢楼主!
回复

使用道具 举报

ID:599401 发表于 2019-9-20 16:09 来自手机 | 显示全部楼层
谢谢楼主分享学习学习
回复

使用道具 举报

ID:46999 发表于 2019-12-19 18:04 | 显示全部楼层
不错,值得学习研究
回复

使用道具 举报

ID:574338 发表于 2021-2-28 11:56 | 显示全部楼层
学习了,功能非常强大
回复

使用道具 举报

ID:282074 发表于 2021-3-3 07:48 来自手机 | 显示全部楼层
线路板上绿油,以前我也自己做,最细能做到0.2
回复

使用道具 举报

ID:84600 发表于 2022-11-18 10:32 | 显示全部楼层
很好的资料,值得学习,对做PCB板曝光很有用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表