用STC15F104E单片机制作闪灯

发布者:boyhxz最新更新时间:2015-07-08 来源: 51hei关键字:STC15F104E  单片机  闪灯 手机看文章 扫描二维码
随时随地手机看文章
用STC15F104E单片机,就是一个定时器,上电开始计时,LED每秒闪一次,9小时后继电器吸合3秒,然后释放,计时器重新计时。如此循环。
#include "reg51.h"
typedef unsigned char BYTE;
typedef unsigned int WORD;
#define SYSclk 6000000L
 
#define MODE1T        //Timer clock mode, commendt this line is 12T mode, uncomment is 1T mode
#ifdef MODE1T
#define T1MS (65536-SYSclk/1000)        //1ms timer calculation method in 1T mode, 1000=1000Hz
#else
#define T1MS (65526-SYSclk/12/1000)        //1ms timer calculation method in 12T mode
#endif
 
sfr AUXR=0x8e;                    //Auxiliary register
sbit TEST_LED=P3^3;
sbit relay = P3^4;
 
WORD count;                        //1000 times counter
BYTE sec;
BYTE min;
BYTE hour;
BYTE S3cnt;
BYTE S3cnt_Stat;
void clock_cnt();
 
/*Timer0 interrupt routine */
void tm0_isr() interrupt 1 using 1
{
    if (count--==0)
    {
         count=500;            //500ms 
        TEST_LED=!TEST_LED;
        if (TEST_LED) clock_cnt();
    }
}
 
void main()
{
#ifdef MODE1T
    AUXR=0x80;         //timer0 work in 1T mode
#endif
    TMOD=0x00;        //set timer0 as mode0 (16-bit auto-reload)
    TL0=T1MS;        //initial timer0 low byte
    TH0=T1MS>>8;    //initial timer0 high byte
    TR0=1;            //timer0 start running
    ET0=1;            //enable timer0 interrupt
    EA=1;            //open global interrupt switch
 
    sec  = 0;
    min  = 0; 
    hour = 0;
    S3cnt_Stat = 0;
 
    while(1);
}
 
void clock_cnt()
{
    if (S3cnt_Stat)
    {
        S3cnt--;
        if (S3cnt==0) 
        {
            S3cnt_Stat = 0;
            relay = 0;      //继电器释放
        }
    }
    else
    {
      sec++;
     if (sec>=60)
     {
         sec=0;
        min++;
        if (min>=60);
        {
            min=0;
            hour++;
            if (hour>=9)         //到了9小时
            {
                relay = 1;        //继电器吸合
                sec = 0;
                min = 0;
                hour = 0;
                S3cnt_Stat = 1;
                S3cnt = 3;        //计数3秒
            }
        }
     }
    }
关键字:STC15F104E  单片机  闪灯 引用地址:用STC15F104E单片机制作闪灯

上一篇:HMC741和AD9914的调试总结
下一篇:花样流水灯的设计4(单片机-汇编)

推荐阅读最新更新时间:2024-03-16 14:24

PIC中档单片机的中断总结
与51或者其他系列的单片机相比,PIC 单片机的中断机制有其特殊之处,针对我们一些初学者存在的一些问题和疑惑,我在此做一个个人总结,不当的地方,请站友们指正。 先摘引三个对PIC中断理解的回帖,然后我再对中断活动的过程、应该注意的事项、及一个疑惑进行较详细的总结和解释。 --------------- john frank :关于pic中断有些不明白的地方 借用大虾的程序; ;******************** 中断服务代码 btfss INTCON,T0IE ; 判断是否为T0中断 goto other_int btfss INTCON,T0IF ; it ’s the t
[单片机]
PIC单片机和Dallas的iButtON通讯时的CRC校验子程序
用PIC单片机和Dallas的iButtON通讯时,编了段产生和校验CRC的子程序。 #include ;------------------------------- cblock 0x20 datBuff:8 ;assign 8 byte data buffer bit_cnt ;bit counting CRC_COUNT ;number of bytes for CRC CRC_RESULT ;CRC resulr crc_temp ;temporary data buffer during CRC endc ;------------------------------- #define skp0
[单片机]
基于P89LPC936微控制器和Q2406B模块实现远程IAP功能系统的设计
引 言 针对地下水资源已经严重透支,水资源受到严重破坏的问题设计本系统,目的就是为了监控农用机井的用水情况。农用机井分布站点广,站点之间距离几十m到一两百km,采用人工抄表监控会浪费大量的人力和物力,而且实时性差。以前采用GSM方式也存在实时性差、控制困难的问题。 目前,对此类问题可靠的、现实的解决方案就是,将现场设备接入Internet上的服务器,在上层实现实时监控、管理;但是现场没有专门Internet接入点和设备。采用GPRS接入Internet进行远程数据传输,是近两年企业、研究所等科研机构的热门课题。随着GPRS技术的日益成熟,GPRS已经成功地应用在远程抄表、夜灯照明、油田监测、自动测量、智能仪表等不方便甚至根本不
[单片机]
基于P89LPC936<font color='red'>微控制器</font>和Q2406B模块实现远程IAP功能系统的设计
AVR单片机定点运算及数制转换子程序
  AVR单片机问世以来,获得广泛关注。它是一种采用精简指令集、以时钟周期为机器周期的高速单片机。它采用快速寄存器文件(共有32个寄存器 R0~R31,其中R16~R31具有较强通用功能)、快速单周期指令。另外在存储器技术(Flash存储器、EEPROM)、低功耗、系统可靠性、定时 /计数器功能多样化等方面也都具特色。但由于采用精简指令集,它没有一般8位机的DAA指令。因BCD码加减法运算及定点数制转换都要用到DAA功能,故给使用汇编语言研发带来不便。本文重点介绍用软件实现DAA的方法。   计算机采用的十进制操作数一般都为压缩型8421 BCD码,每个BCD码表示1位十进制数。每2位BCD码共存于同一字节单元中,故BCD运算涉及状
[单片机]
适应实时多任务的微控制器高效指令支持
摘要:开发高效的实时多任务微控制器系统,除了采用高速器件之外,适当的指令支持能简化控制结构,减少程序代码,增强实时响应能力。本文提出了一些适应实时多任务的微控制器高效指令功能设计。 关键词:微控制器 实时多任务 指令 微控制器系统即国内通常所称的单片机系统,主要用于物理设备的接口和直接控制。虽然控制逻辑相对微处理机系统而言比较简单,但由于多数情况下需要实时响应,而且经常要同时处理多个对象的协同工作,因此,不仅对程序的运行效率有较高的要求,还要求微控制器具备较强的多任务处理能力。另一方面,由于量大面广,以及具体应用条件的限制,希望微控制器的成本要低;而这又只有在微控制器的硬件结构相对简单的前提下才能实现,这就限制了微控制器的指令、程序
[嵌入式]
单片机技术在数据采集及监测过程中的应用
0 引言 软件方面,指令周期短,同时还具有乘除法指令,多种形式的位操作类指令,逻辑运算类指令也独具特色。通过信号调制电路,将输出电流、电压及电位信号转换成0到5V的标准信号,再通过串行A/D转换芯片ADC0834转换成数字信号供存储,以显示和打印。硬件抗干扰方面用到MAX707,对电源起到监控作用,在上电和掉电时自动复位。实时时钟方面用到DS12887新型时钟芯片,断电情况下运行十年以上不丢失数据,计秒、分、时、天、星期、日、月、年,并有闰年补偿功能,可以用二进制数码或BCD码表示时间日历和警报。软件结构设计中采用模块化程序设计,包含数字滤波,软件看门狗等软件抗干扰子程序,为恒电位仪增添了外围的智能系统,方便用户分析、处理数据,
[单片机]
<font color='red'>单片机</font>技术在数据采集及监测过程中的应用
EM78系列单片机--查表程序设计
在一个沒有規则性的内容转换中,查表程序是相当有用的,用户可以使用查表程序很快速的得到相关内容的转换。 例:设计一个程序,將如下图所示中的PORT5读到的一个数值,将输入内容做转换,然后输出到PORT6的7段显示器上。 上图中开关关闭,I/O引脚可以得到一个低电位,若是开关开启则I/O引脚可以得到一个高电位。 图 5.2 数码管 八段说明 7段显示器的接线图如上,我們要編一个表做为读入内容以及输出内容的对映。 7段显示器各脚位电位状态 PORT6输出 PORT5输入 H G F E D C B A 16进位数值 10进位数值 0 0 1 1 1 1 1 1 0X3F 0 0 0 0 0 0 1 1 0 0X0
[单片机]
EM78系列<font color='red'>单片机</font>--查表程序设计
理清单片机中的各种周期
单片机 时钟周期 时钟周期: 时钟周期也叫振荡周期或晶振周期,即晶振的单位时间发出的脉冲数,一般有外部的振晶产生,比如12MHZ=12×10的6次方,即每秒发出12000000个脉冲信号,那么发出一个脉冲的时间就是时钟周期,也就是1/12微秒。通常也叫做系统时钟周期。是计算机中最基本的、最小的时间单位。 在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。 机器周期: 在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,
[单片机]
理清<font color='red'>单片机</font>中的各种周期
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved