迅维网

查看: 6817|回复: 8
打印 上一主题 下一主题

关于30分钟定时器---单片机

  [复制链接]
跳转到指定楼层
1#
发表于 2010-6-17 22:56:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 山西临汾 来自 山西临汾

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 烟雨阑珊 于 2010-6-17 23:46 编辑

    今天刚成为会员,,在此发我的第一个正式帖子。。(以前都不让说话,憋屈呀)
看到yzz163管理员以前有个用M8做的定时器,所以自己也就以那个主题写个帖子吧,,,,只是自己写个简单的程序吧。。。呵呵,,,感兴趣的朋友以后要多多交流啊,,,呵呵,,,程序已亲自调试,,,感兴趣的朋友可以自己下载到板子里玩玩,,呵呵,,此程序到了30分钟,,蜂鸣器自动报警,实现30分钟报警功能。。。。(自己第一次弄的,有权利申请个精么?小小的奢望下,呵呵。。。)

单片机型号:AT89C52RC
C程序:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uint sec=0,min=0,aa;
uchar ss,sg,ms,mg;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
sbit feng=P2^3;
sbit dula=P2^6;
sbit wela=P2^7;
void delay(uint z);
void init();
void displays(uchar ,uchar );
void displaym(uchar ,uchar );
void main()
{

init();
while(1)
{
   ss=sec/10;
   sg=sec%10;
   ms=min/10;
   mg=min%10;
   displays( ss,sg);
   displaym( ms,mg);
   
  }
}
void init()      //初始化程序
{
TMOD=0x01;      
    TH0=(65535-50000)/256;
    TL0=(65535-50000)%256;
EA=1;
ET0=1;
    TR0=1;
}

void timer0() interrupt 1  
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
    aa++;
if (aa==20)
{
  aa=0;
  sec++;

  if (sec==60)
     {
       sec=0;
       min++;
     if (min==30)
      {
       min=0;
       feng=1;
       delay(500);
       feng=~feng;
      }
      }


}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
void displays(uchar ss,uchar sg)
{
dula=1;
P0=table[sg];
dula=0;
P0=0xff;    //消隐
wela=1;
P0=0xdf;
wela=0;
delay(1);
dula=1;
P0=table[ss];
dula=0;
P0=0xff;
wela=1;
P0=0xef;
wela=0;
delay(1);
}
void displaym(uchar ms,uchar mg)
{
dula=1;
P0=table[mg];
dula=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
delay(1);
dula=1;
P0=table[ms];
dula=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delay(1);
}


                               
登录/注册后看高清大图

   



2#
发表于 2010-6-24 21:44:31 | 只看该作者 来自: 山东 来自 山东
这是个时钟呀,感觉象个整点报时,只是这个整点是30分,定时1秒钟中断初值没有说清楚,晶振是12M吧

回复 支持 反对

使用道具 举报

3#
发表于 2010-6-25 18:04:32 | 只看该作者 来自: 山西太原 来自 山西太原
回复 2# wenjun262 的帖子
1、就是30分钟定时器啊,,,,呵呵,到了30分钟蜂鸣器开始响了,,呵呵。
2、晶振理论是用的12M的,,那样计算下来正好是1,但是,我板子用的是用的11.0592的晶振,为板子提供机器周期,这样是为了正好和串口通信的周期协调。
3、中断1秒有啊,,我不是设定的50毫秒么,,,而aa每20次加一次么,,,所以正好是一秒,,,也就是定时器的跑秒,呵呵,,
  你也玩这啊????以后多多交流啊,,,,,以后如果有什么不足之处,还望指正啊,,呵呵,,,

   

回复 支持 反对

使用道具 举报

4#
发表于 2010-7-1 11:04:53 | 只看该作者 来自: 河北石家庄 来自 河北石家庄
正想做一个30分钟的计时器,好几年没看单片机了,忘光了,补习中

回复 支持 反对

使用道具 举报

5#
发表于 2010-7-1 11:24:27 | 只看该作者 来自: 浙江温州 来自 浙江温州
本坛子里好象没几个人玩单片机的吧,楼主是不是找错地方了?

回复 支持 反对

使用道具 举报

6#
发表于 2010-7-1 17:50:55 | 只看该作者 来自: 山西太原 来自 山西太原
回复 浴火之冰 的帖子

恩,,,我也刚弄不久,,,一起学习哈,,呵呵
   

回复 支持 反对

使用道具 举报

7#
发表于 2010-7-1 17:52:30 | 只看该作者 来自: 山西太原 来自 山西太原
回复 海参 的帖子

哦,,是么?我这不是给你提供一点点微薄的单片机学习小平台么,,,学习还分时间空间和地点???
   

回复 支持 反对

使用道具 举报

8#
发表于 2010-7-2 11:26:53 | 只看该作者 来自: 浙江温州 来自 浙江温州
呵呵,没说不准。

只是这里是电脑相关的硬件维修的论坛,单片机不是和电脑非常直接相关吧?

回复 支持 反对

使用道具 举报

9#
发表于 2010-7-2 14:55:11 | 只看该作者 来自: 山西临汾 来自 山西临汾
回复 海参 的帖子

1、这个板块不是单片机电子板块么。。。所以也正常啊,,,
2、你不是电脑硬件维修么,,,不觉得很多地方都能用到单片机么?你测跑码用测试卡吧?那个就是个单片机啊,,而且,如果你单片机学的很好的话,,你也可以用单片机做一些工具,可以让你维修事半功倍,,这怎么说,,单片机和电脑还是连接很密切的啊,,,其实单片机很多地方都能用到,,只是你不善于发现而已,,,,呵呵
   

回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图


芯片搜索

快速回复