自己假期制作的多功能电子钟仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include <reg52.h>
- #include "DS1302.h"
- #include "key.h"
- #include "DS18B20.h"
- #include "delay.h"
- #include "display.h"
- void T0init();
- sbit LED=P1^0;
- uchar t0;
- void main()
- {
- DS1302init();
- T0init();
- State_Flag=0;
- sflag =0;
- while(1)
- {
- //正常模式下面的正常显示
- if(State_Flag==0)
- Ds1302ReadTime();
- switch(sflag)
- {
- case 0:display_sfm();flag=0;break;//时分秒功能
- case 1:display_nyr();flag=1;break;//年月日功能
- case 2:tmpchange();displayTmp(tmp());break;//温度传感器功能
- }
- }
- }
- void T0init()
- {
- TMOD=0x01;
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- EA=1;
- ET0=1;
- TR0=1;
- }
- void ISR_T0() interrupt 1
- {
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- t0++;
- KeyRead();//每过50毫秒,检测一次按键
- LED=0;
- if(t0==10)
- {
- t0=0;
- LED=~LED;
- }
- }
复制代码
所有资料51hei提供下载:
时钟DS1302带闹钟数码管显示.rar
(141.39 KB, 下载次数: 36)
|