|
/*************************************************************************************
* ds1302實(shí)現(xiàn)時(shí)間的顯示和調(diào)整
* 步驟及現(xiàn)象:程序下載前,stc-isp選擇IRC頻率:12MHz,程序下載后,數(shù)碼管顯示時(shí)間為
* “ 12-00-00 ”,按按鍵0,這時(shí)數(shù)碼管顯示“ 2019.01.01 ”,并且LED8亮。按按鍵1,
* LED8滅,表示退出設(shè)置年月日功能。這時(shí)按2或3,進(jìn)入時(shí)分秒界面。
* (1)若設(shè)置時(shí)分秒(按鍵1是位選,按鍵2是加,按鍵3是減),按按鍵1這時(shí)LED1燈亮
* (LED1燈亮表示進(jìn)入設(shè)置時(shí)分秒狀態(tài)),這時(shí)代表小時(shí)的兩位數(shù)碼管1s閃爍一次,這時(shí)
* 按按鍵2一次加1,長(zhǎng)按連續(xù)加。按按鍵3一次減1,長(zhǎng)按連續(xù)減。分、秒操作、現(xiàn)象一樣。
* (2)若設(shè)置年月日(按鍵0是位選,按鍵2是加,按鍵3是減),按按鍵0這時(shí)LED8燈亮
* (LED8燈亮表示進(jìn)入設(shè)置年月日狀態(tài)),這時(shí)代表年的前兩位的兩位數(shù)碼管1s閃爍一次
* 這時(shí)按按鍵2加1,長(zhǎng)按連續(xù)加。按按鍵3一次減1,長(zhǎng)按連續(xù)減。年的后兩位、月、日操作
* 和現(xiàn)象一樣。
*************************************************************************************/
#include <stc8.h>
#include "ds1302.h"
#include "key.h"
#include "HC595.H"
#include "TIM.h"
#include "showtime.h"
#include "settime.h"
char TIMED[7] = {0};
unsigned char num=0;
bit Flg = 0;
extern uchar code WRITE_RTC_ADDR[7];
void main()
{
unsigned char keys=16, bekey=16;
Ds1302Init();
Timer0Init();
while(1)
{
keys = key_scan();
if(16 != keys)
bekey = keys; // 最近一次按下的按鍵的鍵值
Ds1302ReadTime();
settime(keys); // 設(shè)置秒分時(shí),日月年函數(shù),keys的值決定是調(diào)整秒分時(shí)還是日月年。
ShowTime(bekey); // 工作狀態(tài)下,時(shí)間的顯示函數(shù)。
}
}
void TM0_Isr() interrupt 1 using 1
{
num++;
if(150 == num)
{
num = 0;
Flg = ~Flg; // 被選中的兩位數(shù)碼管,閃爍標(biāo)志位
}
}
5.jpg (199.25 KB, 下載次數(shù): 64)
下載附件
2019-7-1 12:57 上傳
本人初學(xué),僅供參考,存在錯(cuò)誤和不足之處,請(qǐng)大家回帖多多指教,切勿照搬,文件下載:
ds1302數(shù)碼管時(shí)間顯示及調(diào)整.rar
(84.77 KB, 下載次數(shù): 90)
2019-7-1 12:53 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|