找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2461|回复: 3
打印 上一主题 下一主题
收起左侧

我想在单片机开发板上做一个倒计时 求助

[复制链接]
跳转到指定楼层
楼主
ID:69589 发表于 2014-11-28 18:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg52.h>  
   #define uchar unsigned char  
   sbit p11=P1^1;
   code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
   uchar shiwei;
  uchar gewei;
  void delay(unsigned int cnt)
  {
  while(--cnt);
  }
void main()
  {
  TMOD|=0x01;  
TH0=0xd8;
  TL0=0xf0;
  IE=0x82;    //这里是中断优先级控制EA=1(开总中断),ET0=1(定时器0允许中断),这里用定时器0来定时
  TR0=1;    //开定时器0
while(1)
  {
  P0=shiwei;        //99的十位
  P2=0;              //99的个位,
  delay(300);    //动态扫描数码管延时
  P0=gewei;
  P2=1;
  delay(300);
  }
  }
void tim(void) interrupt 1 using 1    //定时器0中断
   {
   
  static uchar second=99,count;    //99只是一个数,可以任意改,因为这里只学习怎样实现倒计时
  TH0=0xd8;   //定时10毫秒
  TL0=0xf0;
  count++;
  if(count==100)             //10毫秒定时,10*100=1000(毫秒)=1秒
  {
  count=0;
  second--;
  if(second==0)
  {
      p11=0;               //这里让继电器动作,当然动作之后,要复位才能等下次倒定时再动作。
  second=99;       //回到99再循环来,当然,可以做其他的控制,
  }
  shiwei=tab[second/10];            //数码管10位
  gewei=tab[second%10];        //数码管个位
  }
  }


大神们  我想在开发板上做一个倒计时  网上找的这个程序 运行也没问题  可是连线不会。。。开发板用的是东方蓝芯   程序其实看的的也不懂  真心希望有大神能够给给我讲讲



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2014-11-28 23:05 来自手机 | 只看该作者
你的电路图呢  ,不然不知道硬件连接根本无法下手的
回复

使用道具 举报

板凳
ID:67992 发表于 2014-11-29 08:11 来自手机 | 只看该作者
P0和P2口各自单独接一个数码管,等于一个口驱动一个数码管。P11脚接个三极管,三极管驱动继电器。
回复

使用道具 举报

地板
ID:69639 发表于 2014-11-29 14:35 | 只看该作者
这个地方你首先要看电路原理图。弄明白这个是共阴极数码管还是共阳极数码管。没有电路图光看程序是没用的。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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