教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 学前教育 >

基于STC89C52的电子时钟设计(5)

来源:网络收集 时间:2026-07-24
导读: } } /****************秒表函数********************/ void watch_start(void) { if(!key_1) { while(!key_1); { TR1=1; } } } void watch_pause(void) { if(!key_2) { while(!key_2); { TR1=0; } } } void watch_c

}

}

/****************秒表函数********************/

void watch_start(void)

{

if(!key_1) { while(!key_1); { TR1=1;

}

}

}

void watch_pause(void) {

if(!key_2) { while(!key_2); { TR1=0; }

}

}

void watch_clear(void) {

if(!key_3) { while(!key_3); TR1=0; watch_sec=0;

watch_msec=0;

}

}

void watch_back(void)

16

{

if(!key_4) { }

/****************DS18B20********************/ void Init_DS18B20(void) {

unsigned char x=0; DQ = 1; //DQ复位 delay_us(8); //稍做延时 DQ = 0; //单片机将DQ拉低 delay_us(80); //精确延时 大于 480us DQ = 1; //拉高总线 delay_us(10);

x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay_us(5); }

unsigned char ReadOneChar(void) {

unsigned char i=0; unsigned char dat = 0; for (i=8;i>0;i--) {

while(!key_4);

{ TR1=0; watch_sec=0;

watch_msec=0; finish=1; enter=0; TR0=1; model=0;

}

}

17

DQ = 0; // 给脉冲信号 dat>>=1;

DQ = 1; // 给脉冲信号 if(DQ) dat|=0x80; delay_us(5); }

return(dat); }

void WriteOneChar(unsigned char dat) {

unsigned char i=0; for (i=8; i>0; i--) { DQ = 0; DQ = dat&0x01; delay_us(5); DQ = 1; dat>>=1; }

delay_us(5); }

unsigned int ReadTemperature(void) {

unsigned char a=0; unsigned int b=0; unsigned int t=0; Init_DS18B20();

WriteOneChar(0xCC); // 跳过读序号列号的操作 WriteOneChar(0x44); // 启动温度转换 delay_us(800); Init_DS18B20();

WriteOneChar(0xCC); //跳过读序号列号的操作

WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器)度

18

前两个就是温

a=ReadOneChar(); //低位 b=ReadOneChar(); //高位 Init_DS18B20(); b<<=8; t=a+b; t=t*0.625;

return(t); }

void DS18B20_back(void) {

if(!key_4) { }

/****************主函数********************/ void main(void) {

uint temp; uchar z; init_T0(); init_T1(); TR0=1; P3=0xff;

while(1) {

if(!model) display();

while(!key_4);

enter=0; TR0=1; model=0;

finish=1;

}

19

function_choose(); function_entry(); alarming(); baoshi(); if(enter) {

if (function==1) {

while(!finish) {

time_set();

time_add(); time_dec(); time_finish(); display();

}

}

if (function==2) {

while(!finish)

{

alarm_set();

alarm_add(); alarm_dec(); alarm_finish(); alarm_display();

}

} {

if (function==3)

while(!finish)

{

watch_start();

watch_pause(); watch_clear();

20

…… 此处隐藏:7字,全部文档内容请下载后查看。喜欢就下载吧 ……
基于STC89C52的电子时钟设计(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/592740.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)