矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 2432|回复: 5

STC11F02做的定时器

[复制链接]
     
发表于 2019-6-7 21:08:16 | 显示全部楼层 |阅读模式
本帖最后由 rsx9583 于 2019-6-7 21:10 编辑

发不了图片,哎——————————————————————

/*曝光机定时器程序*/
/**********************************

** 程序名称:曝光机定时器程序 **
** 支持芯片:STC11F02E        **
** 芯片主频:12M              **
** 编写日期:2019年3月26日    **
** 编写人员:
** 联系方式:                 **
** 著 作 权:        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;
                 }


}
}
     
 楼主| 发表于 2019-6-10 21:44:27 | 显示全部楼层
JuncoJet 发表于 2019-6-10 16:26
用了字模的吧,这个通用性不强,主要看开发板的GPIO和数显管的接法
建议楼主放出开发板的电路图

就是一个简单的定时器,搞复杂了就本末倒置了。

不是我不传啊,是论坛不让我传图片和附件。为了这个论坛还专门安个浏览器没必要,主要是每天看除了生活聊天和收音机,也没别的什么好看的。
回复 支持 1 反对 0

使用道具 举报

     
发表于 2019-6-10 16:02:25 | 显示全部楼层
用 chrome 浏览器可以上传图片

所以这是用于延时曝光?
回复 支持 反对

使用道具 举报

     
发表于 2019-6-10 16:26:37 | 显示全部楼层
用了字模的吧,这个通用性不强,主要看开发板的GPIO和数显管的接法
建议楼主放出开发板的电路图
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-6-10 21:40:31 | 显示全部楼层
leniter 发表于 2019-6-10 16:02
用 chrome 浏览器可以上传图片

所以这是用于延时曝光?

是的,就是做PCB时候,曝光紫外灯的定时器。
回复 支持 反对

使用道具 举报

     
发表于 2019-6-15 09:43:07 | 显示全部楼层
输送带也想做一个延时器,参考一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-29 21:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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