找回密码
 立即注册

QQ登录

只需一步,快速开始

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

倒计时99s(original)程序

[复制链接]
跳转到指定楼层
楼主
ID:72519 发表于 2015-1-22 01:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//这一次脱离教程,看看自己还行不行
//编完这个程序就可以继续往下进行了
//依然是倒计时99s
//这一次我想利用重装载定时器
//让他自己赋值
#include<reg52.h>
#define duan P0
//void Timer1init();
void Timer0Cofig(void) ;
sbit shi=P1^1;
sbit ge=P1^0;
unsigned char code dig[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned int j,k;
char Time,Second;
//int num;
unsigned char ch[2];

void main()
{
//Timer1init();//最关键的函数没有初始化
Timer0Cofig();
//i=0;
Second=19;
        while(1)
        {
        if(Second<0)
        {
             Second=19;
        }
                        if(Second>=0)
                        {
                           ch[0]=dig[Second%10];  //个位
                           ch[1]=dig[Second/10];        // 十位
                           for(j=0;j<2;j++)
                                   {
                                                   if(j==0)
                                                   {
                                                   
                                                    shi=1;
                                                   ge=0;
                                                   }
                                                   if(j==1)
                                                   {
                                                          shi=0;
                                                   ge=1;
                                           }
                                                   duan=ch[j];
                                                   k=10;
                                                   while(k--);
                                                   duan=0x00;//消隐
               
                               }

                  }
        }
}
/*void Timer1init()
{
  TMOD=0X20;//定时器1工作方式为2
  TH1=0x06;                                                //初始值我想设置为250微秒
  TL1=0x06;                                        //注意到hl的值是一样的,因为装载的内容一样
  EA=1;                   //打开总中断
  ET1=1; //打开定时器1中断
  TR1=1;//定时器1运行
}
//中断的编写参考help
void Timer1() interrupt 1
{
  i++;
  if(i==4000)
  {
  num--;
  i=0;
  }

}  */
void Timer0Cofig(void)
{
        TMOD = 0x01;     //定时器0选择工作方式1
    TH0  = 0x3C;        //设置初始值,定时50MS
    TL0  = 0xB0;
    EA   = 1;             //打开总中断
    ET0  = 1;                //打开定时器0中断
    TR0  = 1;                //启动定时器0       
}



void Timer0() interrupt 1
{
        TH0 = 0x3C;        //设置初始值
        TL0 = 0xB0;
        Time++;
        if(Time == 20)
        {
                Second --;
                Time = 0;
        }
}

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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