• 大小: 49KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-09
  • 语言: 其他
  • 标签:

资源简介

89C2051+DS1302+74HC595+8位LED数码管的电子钟程序

资源截图

代码片段和文件信息

#include 
#define uchar unsigned char
#define uint unsigned int

//DS1302内部寄存器定义
#define sec 0x80
#define min 0x82
#define hou 0x84
#define dat 0x86
#define mou 0x88
#define wek 0x8a
#define yer 0x8c
#define read 0x01

//DS1302引脚定义
sbit T_CLK=P1^4;
sbit T_IO =P1^3;
sbit T_RST=P1^2;

//DS1302暂存定义
sbit ACC0=ACC^0;
sbit ACC7=ACC^7;

//74HC595 引脚定义
sbit CLK=P1^5;              //595 11脚 时钟
sbit STR=P1^6;              //595 12脚 锁存
sbit RData=P1^7; //595 14脚 数据 

//设置键引脚定义
sbit SET=P3^4;
sbit UP=P3^2;
sbit dw=P3^3;

//DS18B20接口定义(接4K7上拉电阻)
sbit DQ = P3^7;


//**************函数声明*****************
void delays(uchar);
void display(void);
void Scan_Key(void);
void id_case1_key();
void Set_id(uchar uchar);

//*************变量定义******************
uchar tflagid=0timecountre_disp=0ahour=0aminute=0asecond=0adate=0amouth=0aweek=0ayear=0;

bit yearmouthdateweekhourminutesecondflagtlamp;
uchar code tab[]={0xc00xf90xa40xb00x990x920x820xf80x800x900xff0xbf};       /*个位0~9的数码管段码*/

uchar code tab2[]={0x400x790x240x300x190x120x020x780x000x10};  /*个位0~9的数码管段码带小数点*/

//********DS1302读写程序***************
//往DS1302写入1Byte数据 (内部函数)
void RTInputByte(uchar d) 

    uchar i;
    ACC = d;
    for(i=8; i>0; i--)
    {
        T_IO = ACC0;           //相当于汇编中的 RRC
        T_CLK = 1;
        T_CLK = 0;
        ACC = ACC >> 1; 
    } 
}
//从DS1302读取1Byte数据 (内部函数)
uchar RTOutputByte(void) 

    uchar i;
    for(i=8; i>0; i--)
    {
        ACC = ACC >>1;         //相当于汇编中的 RRC
        ACC7 = T_IO;
        T_CLK = 1;
        T_CLK = 0;
    } 
    return(ACC); 
}
//往DS1302写入数据
void Write1302(uchar ucAddr uchar ucDa)
{
    T_RST = 0;
    T_CLK = 0;
    T_RST = 1;
    RTInputByte(ucAddr);       // 地址,命令 
    RTInputByte(ucDa);         // 写1Byte数据
    T_CLK = 1;
    T_RST = 0;
}

// 读取DS1302某地址的数据
uchar Read1302(uchar ucAddr)
{
    uchar ucData;
    T_RST = 0;
    T_CLK = 0;
    T_RST = 1;
    RTInputByte(ucAddr);             // 地址,命令 
    ucData = RTOutputByte();         // 读1Byte数据
    T_CLK = 1;
    T_RST = 0;
    return(ucData);
}

//74HC595 发送数据函数
void sendbyte(uchar bbyte1)
{
uchar f;
for(f=0;f<8;f++)
{
RData=bbyte1&0x80;   
CLK=0;  CLK=1;
bbyte1<<=1; 

}

void delay_18b20(uchar sum) //短暂延时
{
while(sum--);
}

void wr18b20(uint dat2)
{
uchar m=8;
for(;m>0;m--)
{
DQ=0;
DQ=dat2&0x01;
delay_18b20(5);
DQ=1;
dat2>>=1;
}
}

//DS18B20相关
void rst_18b20(void)                 //18B20复位

DQ=1;
delay_18b20(13);
DQ=0;
delay_18b20(122);
DQ=1;
delay_18b20(20);
}

uint rd18b20()   //读一个字节的内容
{
uchar dat1n=8;
for(;n>0;n--)
{
   DQ=0;
   dat1>>=1;
   DQ=1;
   if(DQ)
   dat1|=0x80;
   delay_18b20(4);
}
return(dat1);
}

uint rd_temperature()   //读取温度值

uint x=0y=0t=0tt=0;
rst_18b20();   //复位
wr18b20(0xcc);  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      26917  2008-11-17 20:48  89c2051 ds18b20 74hc595 8LED\89c2051

     文件       5383  2008-11-17 20:48  89c2051 ds18b20 74hc595 8LED\89c2051.hex

     文件         33  2008-11-17 20:48  89c2051 ds18b20 74hc595 8LED\89c2051.lnp

     文件      26235  2008-11-17 14:47  89c2051 ds18b20 74hc595 8LED\89c2051.LST

     文件      33033  2008-11-17 20:48  89c2051 ds18b20 74hc595 8LED\89c2051.M51

     文件      30646  2008-11-17 14:47  89c2051 ds18b20 74hc595 8LED\89c2051.OBJ

     文件       1160  2008-11-17 20:48  89c2051 ds18b20 74hc595 8LED\89c2051.Opt

     文件       3260  2008-11-17 20:48  89c2051 ds18b20 74hc595 8LED\89c2051.plg

     文件       1692  2008-11-17 20:48  89c2051 ds18b20 74hc595 8LED\89c2051.Uv2

     文件       9850  2008-11-17 20:48  89c2051 ds18b20 74hc595 8LED\89c2051OK.c

     文件      24285  2008-11-17 20:48  89c2051 ds18b20 74hc595 8LED\89c2051OK.LST

     文件      30894  2008-11-17 20:48  89c2051 ds18b20 74hc595 8LED\89c2051OK.OBJ

    .......         0  2008-11-17 14:22  89c2051 ds18b20 74hc595 8LED\89c2051_Uv2.Bak

     目录          0  2008-11-17 20:48  89c2051 ds18b20 74hc595 8LED

----------- ---------  ---------- -----  ----

               193388                    14


评论

共有 条评论

相关资源