|
/* 液晶演示程序DV12864G-COG,串行接口!
驅動IC是:UC1701X或兼容的IC,比如ST7565R
*/
#include <stc15f2k60s2.H>
#include "common.h"
#include "JLX12864.h" //液晶顯示
#include "delay.h" //延時函數
#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; //時鐘設置狀態
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); //讀年
//需把以上數據轉換為十進制存儲
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); //轉換為陰歷數據
// read_temp(); //讀出溫度值
ds1820disp(); //溫度值顯示
key(); //掃描按鍵
if(setflag==0)
disp_time(); //調用顯示時間程序
}
}
|
評分
-
查看全部評分
|