切换到宽版
  • 668阅读
  • 9回复

[C51]最简单的时钟,坐在6伏电瓶上 [复制链接]

上一主题 下一主题
离线widjrerpfnvd
 

发帖
988
M币
1643
专家
5
粉丝
26
12C887 , STC89C52RC , 29302低压差同步降压芯片 , 微波炉控制板的数码管

使用洞洞板,按照网上最传统的接线法,预留了下载口,电流有70mA。

最简单的程序:
1,第一次下载程序要写入预设时间;
2,第二次下载程序要屏蔽掉预设时间再写入。要不,一断电启动,程序就默认写一次进去。








attachment=15081532]





程序,大神勿笑话,太简单了。。。
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uint i,j,X,p;
uchar X1,X2,X3,X4;
uchar shi=0,fen=0;
sbit we1 = P2 ^ 3;    //小时 十位
sbit we2 = P2 ^ 4;    //小时 个位
sbit we3 = P2 ^ 6;    //分钟 十位
sbit we4 = P2 ^ 7;    //分钟 个位
//P3为887数据口
sbit we5 = P2 ^ 5;    //小数点
sbit dp = P0 ^ 5;    //
sbit cs=P1^7;
sbit as=P1^6;
sbit rw=P1^5;
sbit ds=P1^4;
uchar code table1[]={0x40,
0xF9,0x84,0xA0,0x29,0x22,
0x02,0xF8,0x00,0x20,
};//共阳管
void delay(uint x)
{
for(p=x;p>0;p--)
for(j=110;j>0;j--);
}
void write_ds(uchar add,uchar da_ta) //写一个字节到DS12C887
{
cs=0;ds=1; as=1;rw=1;
P3=add;
as=0;rw=0;
P3=da_ta;
rw=1;as=1;cs=1;
}

uchar read_ds(uchar add) //从DS12C887读取一个字节
{
uchar read_data;
as=1;ds=1; rw=1;cs=0;
P3=add;
as=0;ds=0;
P3=0xff;
read_data=P3;
ds=1;as=1;cs=1;
return read_data;
}

void display(uchar qian,uchar bai,uchar shi,uchar ge)
{
we1 = we2 = we3 = we4 = 0;
we1 = 1; P0=table1[qian]; delay(1);
we1 = 0; P0 = 0xff;
we2=1;      P0=table1[bai]; delay(1);
we2 = 0;  P0=0xff;
we3=1;    P0=table1[shi];     delay(1);
we3 = 0;P0=0xff;
we4=1;P0=table1[ge];delay(1);
we4 = 0;  P0=0xff;
we5=1;P0=0xF9;delay(1);
we5 = 0;  P0=0xff;
}
void main()
{
      P2=0x00;       //位,0为关
      P0=0xff;       //段,0为亮  
        write_ds(0x0b,0x86);//0x84 12小时模式  0x86) 24小时模式    允许对ds12c887写
          write_ds(0x0A,0x20);//打开晶振,开始计时,SQW不使用        
      // write_ds(4,18);    //第一次默认写入 18:43
        //    write_ds(2,43);    //第一次默认写入 18:43                                
      write_ds(0x0B,0x06); //禁止对ds12c887写 ,24小时模式
        
    while(1)    
    
    {              
                shi=read_ds(4);    
                fen=read_ds(2);
                X1=shi/10;   X3=fen/10;
                  X2=shi%10;    X4=fen%10;
                  display(X1,X2,X3,X4);    
    }                      
}

内容来自Android手机客户端

本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共3条打赏M币+34
suhaiyuan M币 +13 認真發帖 09-16
哈哈猫驴 M币 +13 该用锂电的 09-14
houbw M币 +8 我用arduino的图形编程,比你这还简单,哈哈 09-14
离线houbw

发帖
2290
M币
9941
专家
6
粉丝
38
只看该作者 1楼 发表于: 09-14
我用arduino的图形编程,比你这还简单,哈哈
本帖最近打赏记录:共1条打赏M币+3
widjrerpfnvd M币 +3 精彩回帖 09-14
离线widjrerpfnvd

发帖
988
M币
1643
专家
5
粉丝
26
只看该作者 2楼 发表于: 09-14
回 houbw 的帖子
houbw:我用arduino的图形编程,比你这还简单,哈哈 (2018-09-14 20:32) 回 houbw 的帖子

只是用来编程吗?  接触过一段时间arduino,也不简单
离线哈哈猫驴

发帖
19110
M币
56
专家
714
粉丝
737
只看该作者 3楼 发表于: 09-14
该用锂电的
本帖最近打赏记录:共1条打赏M币+3
widjrerpfnvd M币 +3 精彩回帖 09-15
离线widjrerpfnvd

发帖
988
M币
1643
专家
5
粉丝
26
只看该作者 4楼 发表于: 09-14
华为mata8退下来的电池,行不?明天测试一下看,估计得升压

内容来自Android手机客户端

离线2545889167

发帖
12383
M币
14196
专家
286
粉丝
4656
只看该作者 5楼 发表于: 09-15
70ma太大了吧,想办法省省
离线ztrdiy

发帖
3430
M币
372
专家
3
粉丝
57
只看该作者 6楼 发表于: 09-17
电流确实有点大。。。
离线widjrerpfnvd

发帖
988
M币
1643
专家
5
粉丝
26
只看该作者 7楼 发表于: 09-17
2545889167:70ma太大了吧,想办法省省 (2018-09-15 01:14) 

设置了关闭显示时间!能休息六个小时。

内容来自Android手机客户端

离线chenghelin

发帖
633
M币
1174
专家
2
粉丝
14
只看该作者 8楼 发表于: 09-19
这是我见过醉醉醉接地气的DIY,应该充分利用四周的灯做个跑马灯,那才吊
离线lhuijiang

发帖
340
M币
144
专家
1
粉丝
9
只看该作者 9楼 发表于: 09-21
这续航,估计能扛得住几年吧。