找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于51单片机的1602时钟的proteus仿真

[复制链接]
跳转到指定楼层
楼主
电路原理图如下,非常简单。


源代码如下,通俗

#include<reg52.h>
sbit rs=P3^0;
sbit  e=P3^1;
int num,num1,num2=34,num3=9,num4=27,num5=9,num6=2016;
char table[]={'0','1','2','3','4','5','6','7','8','9'};
void delay(int z)
{
    int x;
    int y;
    for(x=z;x>0;x--)
    for(y=110;y>0;y--);
}
void com(char com)
{
    rs=0;
    P0=com;
    delay(5);
    e=1;
    delay(5);
    e=0;
}
void date(char date)
{
    rs=1;
    P0=date;
    delay(5);
    e=1;
    delay(5);
    e=0;
}
void init()
{
    e=0;
    com(0x38);
    com(0x0c);
    com(0x06);
    com(0x01);
}
void display(int a,int b,int c,int d,int e,int f)
{
    int miao1=a%10;
    int miao2=a/10;
    int fen1=b%10;
    int fen2=b/10;
    int shi1=c%10;
    int shi2=c/10;
    int ri1=d%10;
    int ri2=d/10;
    int m1=e%10;
    int m2=e/10;
    int n1=f%10;
    int n2=f%100/10;
    int n3=f%1000/100;
    int n4=f/1000;
    com(0x80+0x04);
    date(table[shi2]);
    date(table[shi1]);
    date(':');
    date(table[fen2]);
    date(table[fen1]);
    date(':');
    date(table[miao2]);
    date(table[miao1]);
    com(0x80+0x43);
    date(table[n4]);
    date(table[n3]);
    date(table[n2]);
    date(table[n1]);
    date('/');
    date(table[m2]);
    date(table[m1]);
    date('/');
    date(table[ri2]);
    date(table[ri1]);
}
void main()
{
    TMOD=0X01;
    TH0=(65536-45872)/256;
    TL0=(65536-45872)%256;
    EA=1;
    ET0=1;
    TR0=1;
    init();
    while(1)
    {
        display(num1,num2,num3,num4,num5,num6);
    }
}
void tm() interrupt 1
{
    TH0=(65536-45872)/256;
    TL0=(65536-45872)%256;
    num++;
    if(num==20)
    {
        num1++;
        num=0;
    }
    if(num1==60)
    {
        num2++;
        num1=0;
    }
    if(num2==60)
    {
        num3++;
        num2=0;
    }
    if(num3==24)
    {
        num4++;
        num3=0;
    }
    if((num5==1)||(num5==3)||(num5==5)||(num5==7)||(num5==8)||(num5==10)||(num5==12))
    {
        if(num4==32)
        {
            num5++;
            num4=1;
        }
    }
    if((num5==4)||(num5==6)||(num5==9)||(num5==11))
    {
        if(num4==31)
        {
            num5++;
            num4=1;
        }
    }
    if(num5==2)
    {
        if(num4==29)
        {
            num5++;
            num4=1;
        }
    }
    if(num5==13)
    {
        num6++;
        num5=1;
    }
}



放大.jpg (88.94 KB, 下载次数: 43)

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

使用道具 举报

沙发
ID:151879 发表于 2016-12-3 14:31 来自触屏版 | 只看该作者
请问哪段语句是设定时间的?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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