標題: 用STC15F2K60S2單片機和DS1302+DS18B20制作的萬年歷 [打印本頁]

作者: csmyldl    時間: 2020-7-9 01:54
標題: 用STC15F2K60S2單片機和DS1302+DS18B20制作的萬年歷
/* 液晶演示程序DV12864G-COG,串行接口!
   驅動IC是:UC1701X或兼容的IC,比如ST7565R
*/
#include <stc15f2k60s2.H>
#include "common.h"
#include "JLX12864.h"           //液晶顯示
#include "delay.h"              //延時函數(shù)
#include <intrins.h>
#include <Ctype.h>
#include "nongli.h"             //農歷轉換
#include "zk.c"                 //字庫文件
#include "zk1.c"                //字庫文件
#include "xianshi.h"            //顯示處理
#include "ds18B20.h"            //溫度讀取
#include "key.h"                //按鍵處理
#include "ds1302.h"             //時鐘芯片

sbit cs1=P2^0;        
sbit reset=P2^1;
sbit rs=P2^2;
sbit sclk=P2^4;
sbit sid=P2^3;

extern char sec,min,hour,day,month,year,week;    //定義全局變量,秒,分,時,日,月,年和星期
extern bit century;                              //定義世紀位:0為20世紀,1為19世紀。
extern uchar setflag;                                  //時鐘設置狀態(tài)

bit timeset=0;                                     //1302時間設置標志

uint tvalue;   //溫度值
bit tflag;     //負溫度標志

void waitkey()
{
repeat:        
        if(key==1) goto repeat;
        else delay(1000);
}

void main(void)
{
        initial_lcd();                               //初始化JLX2864
        if (timeset)
        init1302();                                  //時間初始化
        clear_screen();                                                                         //清屏
        century=0;
        
        while(1)
        {
                tvalue=Ds18b20_Temp();                       //讀取溫度
    sec=read1302(0x81);                          //讀秒
          min=read1302(0x83);                          //讀分
          hour=read1302(0x85);                         //讀時
          day=read1302(0x87);                          //讀日期
          month=read1302(0x89);                        //讀月
          week=read1302(0x8b);                         //讀星期
          year=read1302(0x8d);                         //讀年
//需把以上數(shù)據(jù)轉換為十進制存儲
    sec=(sec>>4)*10+sec%16;
    min=(min>>4)*10+min%16;
    hour=(hour>>4)*10+hour%16;
                day=(day>>4)*10+day%16;
                month=(month>>4)*10+month%16;
                year=(year>>4)*10+year%16;
          Conversion(century,year,month,day);          //轉換為陰歷數(shù)據(jù)

//    read_temp();                               //讀出溫度值
               
          ds1820disp();                               //溫度值顯示
          key();                                      //掃描按鍵
          if(setflag==0)
    disp_time();                                //調用顯示時間程序
  }
}

4.jpg (80.45 KB, 下載次數(shù): 194)

農歷溫度萬年歷

農歷溫度萬年歷

3.jpg (47.61 KB, 下載次數(shù): 173)

JLX12864液晶屏

JLX12864液晶屏

帶農歷萬年歷JLX DS302 DS18B20-3.7z

29.3 KB, 下載次數(shù): 292, 下載積分: 黑幣 -5

全部程序


作者: lhpmain    時間: 2020-9-21 16:29
下載了,學習下編程!
作者: zhenzhong    時間: 2020-10-18 22:46
壓縮文件有問題,下載多次都是解壓出錯。提醒完善。
作者: 我選擇綠了他    時間: 2021-4-25 16:25
頂一下,手里正好有12864的屏幕
作者: 民盛    時間: 2021-6-3 20:21
挺好,研究一下。十分感謝。
作者: 泰極張山豐    時間: 2021-6-24 22:59
壓縮文件有問題
作者: 51hei團團    時間: 2021-6-24 23:56
泰極張山豐 發(fā)表于 2021-6-24 22:59
壓縮文件

用winrar才能解壓,解壓后,需要添加stc的頭文件:http://www.torrancerestoration.com/bbs/dpj-36960-1.html
否則無法編譯

51hei.png (58.1 KB, 下載次數(shù): 186)

51hei.png

作者: 依戀曉    時間: 2021-6-28 21:50
程序沒寫完全
作者: _阿坤    時間: 2022-5-7 15:09
感謝分享有沒有原理圖啊。
作者: xxx1027    時間: 2022-6-2 09:54
感謝分享,可惜沒有仿真,誰能根據(jù)樓主的程序畫一個仿真圖嗎?
作者: wokuaisile    時間: 2023-5-12 17:57
感謝分享,可是我裝載在開發(fā)板上沒有效果啊
作者: joyb    時間: 2023-7-18 17:39
界面設計很漂亮
作者: leezll    時間: 2023-9-15 21:46
ZK1.C(1): error C129: missing ';' before 'code'
XIANSHI.C(36): warning C280: 'fb': unreferenced local variable
XIANSHI.C(47): warning C280: 'fb': unreferenced local variable
編譯出錯。怎么解決
作者: leezll    時間: 2023-9-22 04:17
很多警告是怎么回事
作者: leezll    時間: 2023-11-24 02:18
XIANSHI.C(36): warning C280: 'fb': unreferenced local variable
XIANSHI.C(47): warning C280: 'fb': unreferenced local variable
ZK1.C(1): error C129: missing ';' before 'code'
求大神解惑,是什么問題




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1