51单片机+ds1302+DS18b20温度时钟

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

时钟电路图:

PCB板:

单片机程序:

/*========================================================= ===========

调试要求:

:AT89S52芯片或AT89C52

2.晶振:12MHz

功能:多功能时钟+温度计

===========================================================

=========*/

#include<>

#include<>

#define uchar unsigned char

#define uint unsigned int

sbit dis_bit1=P2^7;振:12MHz

功能:多功能时钟+温度计

=========================================================== =========*/

#include<>

#include<>

#define uchar unsigned char

#define uint unsigned int

sbit dis_bit1=P2^7;//定义数码管控制口

sbit dis_bit2=P2^6;//定义数码管控制口

sbit dis_bit3=P2^4;//定义数码管控制口

sbit dis_bit4=P2^3;//定义数码管控制口

sbit dis_bit5=P2^1;//定义数码管控制口

sbit dis_bit6=P2^0;//定义数码管控制口

sbit led1_bit=P2^2;//定时LED的控制口

sbit led2_bit=P2^5;//定时LED的控制口

sbit s1_bit=P1^0; //定义S1控制口

sbit s2_bit=P1^1; //定义S2控制口

sbit s3_bit=P1^2; //定义S3控制口

sbit dq_ds18b20=P3^3;//定义控制DS18B20

sbit speak=P3^7; //定义蜂鸣器控制口

sbit clk_ds1302=P3^6;//定义控制DS1302的时钟线sbit io_ds1302=P3^5;//定义控制DS1302的串行数据

sbit rest_ds1302=P3^4;

#define smg_data P0//定义数码管数据口

void delay_3us();//3US的延时程序

void delay_8us(uint t);//8US延时基准程序

void delay_50us(uint t);//延时50*T微妙函数的声明void display1(uchar dis_data);//数码管1显示子程序void display2(uchar dis_data);//数码管2显示子程序void display3(uchar dis_data);//数码管3显示子程序void display4(uchar dis_data);//数码管4显示子程序void display5(uchar dis_data);//数码管5显示子程序void display6(uchar dis_data);//数码管6显示子程序void init_t0();//定时器0初始化函数

void dis_led();//LED处理函数

void judge_s1();//S1按键处理函数

void judge_s2();//S2按键处理函数

void judge_s3();//S3按键处理函数

void dis(uchar s6,uchar s5,uchar s4,uchar s3,uchar s2,uchar s1);//显示子程序

void dis_san(uchar s6,uchar s5,uchar s4,uchar s3,uchar s2,uchar s1,uchar san);//闪烁显示子程序

void judge_dis();//显示处理函数

void judge_clock();//显示处理函数

void set_ds1302();//设置时间

void get_ds1302();//读取当前时间

void w_1byte_ds1302(uchar t);//向DS1302写一个字节的数据uchar r_1byte_ds1302();//从DS1302读一个字节的数据

//********************************************************* **************

//DS18B20测温函数定义

void w_1byte_ds18b20(uchar value);//向DS18B20写一个字节uchar r_1byte_ds18b20(void);//从DS18B20读取一个字节的数据

void rest_ds18b20(void);//DS18B20复位程序

void readtemp_ds18b20(void);//读取温度

void dis_temp();//温度显示函数

//共阳数码管断码表

const uchar tabl1[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,

// 0 1 2 3 4 5

0x82,0xf8,0x80,0x90,0x86,0x87,0xFF,

//6 7 8 9 E T B

0xc6,0xbf,0xff};

// C -

const uchar tabl3[]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06, 0x06,0x07,0x08,0x08,0x09,0x09};

uchar t0_crycle;

相关文档
最新文档