6596|9

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

51单片机60秒倒计时报警 [复制链接]

紧急求助 各路大神求帮忙啊 刚学单片机 不会弄 老师要用C++源程序的  要求是 按下开关后 显示器进入60秒倒计时 计时完后蜂鸣器响  无其他有求   大神们 帮一下哈
此帖出自51单片机论坛

最新回复

如果你还觉得复杂,就一个IO不停地翻也行啊  详情 回复 发表于 2016-2-16 12:23
点赞 关注
 

回复
举报

4008

帖子

0

TA的资源

版主

沙发
 
51能用C++?用什么软件啊,没搞过呢学习一下
此帖出自51单片机论坛
 
 
 

回复

98

帖子

2

TA的资源

一粒金砂(中级)

板凳
 
 

回复

3471

帖子

13

TA的资源

五彩晶圆(高级)

4
 
建议还是用C语言实现吧。单片机点亮两个数码管,仿真嘛,直接用单片机io口串电阻连数码管。写个定时器程序。蜂鸣器也好弄。
此帖出自51单片机论坛
 
 
 

回复

927

帖子

0

TA的资源

纯净的硅(中级)

5
 
/*------------------------------------------------------------------*/
/* --- STC MCU Limited ---------------------------------------------*/
/* --- STC89-90xx Series 16-bit Timer Demo -------------------------*/
/* --- Mobile: (86)13922805190 -------------------------------------*/
/* --- Fax: 86-0513-55012956,55012947,55012969 ---------------------*/
/* --- Tel: 86-0513-55012928,55012929,55012966----------------------*/
/* --- Web: www.STCMCU.com -----------------------------------------*/
/* --- Web: www.GXWMCU.com -----------------------------------------*/
/* If you want to use the program or the program referenced in the  */
/* article, please specify in which data and procedures from STC    */
/*------------------------------------------------------------------*/

#include "reg51.h"

typedef unsigned char BYTE;
typedef unsigned int WORD;

//-----------------------------------------------

/* define constants */
#define FOSC 11059200L

#define T1MS (65536-FOSC/12/1000)   //1ms timer calculation method in 12T mode

/* define SFR */
sbit TEST_LED = P1^0;               //work LED, flash once per second

/* define variables */
WORD count;                         //1000 times counter

//-----------------------------------------------

/* Timer0 interrupt routine */
void tm0_isr() interrupt 1 using 1
{
    TL0 = T1MS;                     //reload timer0 low byte
    TH0 = T1MS >> 8;                //reload timer0 high byte
    if (count-- == 0)               //1ms * 1000 -> 1s
    {
        count = 1000;               //reset counter
        TEST_LED = ! TEST_LED;      //work LED flash
    }
}

//-----------------------------------------------

/* main program */
void main()
{
    TMOD = 0x01;                    //set timer0 as mode1 (16-bit)
    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
    count = 0;                      //initial counter

    while (1);                      //loop
}


这是stc官网上的例程,里面有一秒了,至于怎么倒计时,你自己应该可以搞定吧。
此帖出自51单片机论坛
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

6
 
你们老师是考验你啊
此帖出自51单片机论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(中级)

7
 
Keil C51是不支持C++的,MDK支持但是针对Arm单片机编程不是C51单片机。如果用C编程,如果精度要求不高,用软延时即可实现。
#include
unsigned char n = 60;
sbit bell = P1^0;
sbit button = P1^1;
void Delay1000ms()                //@11.0592MHz
{
        unsigned char i, j, k;

        _nop_();
        _nop_();
        i = 43;
        j = 6;
        k = 203;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}

void main()
{
   
  while(1)
{

     if(n !=0)
    {
      lCD1602DsplayInt(1,0,n);//显示整数函数。
       Delay1000ms();
      n--;
     }
}
}
此帖出自51单片机论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(中级)

8
 
按错键没写完就发表了
#include
unsigned char n = 60;
sbit bell = P1^0;
sbit button = P1^1;
void Delay1000ms()                //@11.0592MHz
{
        unsigned char i, j, k;

        _nop_();
        _nop_();
        i = 43;
        j = 6;
        k = 203;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}

void main()
{
   
  while(1)
{
    if(button==0)
    {
       if(n !=0)
      {
         lCD1602DisplayInt(1,0,n);//显示整数函数没写出来
         Delay1000ms();
         n--;
     }
     else
     bell =0;
   }
}
}
此帖出自51单片机论坛
 
 
 

回复

613

帖子

2

TA的资源

纯净的硅(初级)

9
 
如果最简单就一个DELAY,然后一个PWM波就可以了,再复杂一点就开一个定时器,定时到了开一个PWM。
此帖出自51单片机论坛
 
个人签名我是一头搞电子的猪,猪是一种好色的动物,猪八戒就是代表.       
 
 

回复

613

帖子

2

TA的资源

纯净的硅(初级)

10
 
如果你还觉得复杂,就一个IO不停地翻也行啊
此帖出自51单片机论坛
 
个人签名我是一头搞电子的猪,猪是一种好色的动物,猪八戒就是代表.       
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表