久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
我的12864超級時鐘制作資料 帶紅外遙控 鬧鈴 按鍵 完整源碼
[打印本頁]
作者:
51黑電子迷
時間:
2017-5-28 17:33
標題:
我的12864超級時鐘制作資料 帶紅外遙控 鬧鈴 按鍵 完整源碼
12864時鐘資料包:
0.png
(55.64 KB, 下載次數: 45)
下載附件
2017-5-28 17:26 上傳
單片機源程序如下:
/*********************************************************
項目名稱: 萬年歷的制作
項目目的: 通過制作萬年歷熟悉并掌握51系列的單片機
項目制作時間: 10月12日到10月25日
項目制作人: 柳振
項目實現功能:1,通過 12864顯示DS1302的當前時間
2,可以通過按鍵調節DS1302的時間并保存調節的時間
到芯片里面去
3,調節DS1302時間是屏幕的時間時有友情提示
4,實現鬧鐘功能并且能設定鬧鐘,設定鬧鐘時屏幕上有
友情提示
5,設定的鬧鐘時間能在掉電的時候儲存當再次開啟時
鬧鐘的時間仍然是上次的鬧鐘時間
按s4鬧鈴停止
6,紅外按下 1 鍵并且在走動時間時切換屏幕 再按一下時
返回走動時間的界面 或者按s2鍵返回原來的界面
7,按下 s4鍵之后單片機進入串口通訊 并調整 DS1302
的時分秒的時間 通訊完之后單片機自動返回原來的界面
在通訊時仍然可以走動時間并每隔5 s把時間發送費電腦
通過按s4鍵退出
**********************************************************/
#include "Initial.h" //主要用于初始化
#include "Alarm.h" //主要用于按鍵掃描于紅外掃描
void main(void) //主函數
{
Initial(); //初始化
while(1) //按鍵掃描主要在alarm.c文件里面
{
Key_Scan();
}
}
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
alarm文件:
/************************************************************
本文件主要用于寫按鍵處理 與鬧鈴處理
************************************************************/
#include "HongWai.h"//主要用于調用紅外的函數
#include "Alarm.h"
#include "Delay.h"
#include "control.h"
#include "12864.h"
#include "ds1302.h"
#include "Uart.h"
//g_Flag1看鬧鈴 g_Flag2 設鬧鈴
bit g_Alarm_Flag1,g_Alarm_Flag2;
bit g_Uart_Work_Flag;
bit g_Turn_Poem_Flag;
uchar g_Alarm_hour,g_Alarm_min;
uchar g_Set_Alarm_Num; //鬧鈴設定功能的變量
uchar g_Set_DS1302_Num; //DS1302的工能設置時間
/****************************************************
函數名稱: 設置1302的時間
函數功能: 調整DS1302的時間數值
入口參數: 無
出口參數: 無
備 注: 按s1進入設定時間 再次按下其他的按鍵開始調節
s1設定的項目增加 s2設定的項目減小
s3增加相應的數值 s4減小相應的數值
*****************************************************/
void Set_DS1302()
{
if(s1 == 0) //功能增加位置鍵
{
DelayMs(15); //消抖
if(s1 == 0)
{
while(!s1); //等待按鍵釋放
Di(); //響
g_Set_DS1302_Num++; //功能鍵按下次數
if(g_Set_DS1302_Num >= 9) //第八次按下
{
g_Set_DS1302_Num = 0;
g_Alarm_Flag1 = 0;
g_Alarm_Flag2 = 0;
}
if(g_Set_DS1302_Num > 0)
{
Locate_DS1302(); //一直定位
}
}
}
if(s2 == 0) //功能位置返回按鍵
{
DelayMs(15); //消抖
if(s2 == 0)
{
while(!s2); //等待按鍵釋放
Di(); //響
g_Set_DS1302_Num--; //功能鍵按下次數
if(g_Set_DS1302_Num <= 0) //清零
{
Write_1302_Date(); //寫入 存儲數據
g_Set_DS1302_Num = 0;
Initial_12864();
Write_12864_DS1302_Constant();
}
if(g_Set_DS1302_Num > 0)
{
Locate_DS1302(); //一直定位
}
}
}
if(g_Set_DS1302_Num > 0) //否則進行調整
{
if(s3 == 0) //增大鍵調節
{
DelayMs(5); //消抖
if(s3== 0)
{
Di(); //響
while(!s3); //等待按鍵釋放
Increase_DS1302(); //增大DS1302數值函數
}
}
if(s4 == 0) //減小調節
{
DelayMs(5); //消抖
if(s4== 0)
{
while(!s4); //等待按鍵釋放
Di(); //響
Decrease_DS1302();//減小數值的函數
}
}
}
}
/**************************************************
函數名: Set_A()
函數功能: 設定鬧鈴的時間
入口參數: 無
出口參數: 無
備 注: s1設定的項目增加 s2設定的項目減小
s3增加相應的數值 s4減小相應的數值
***************************************************/
void Set_A() //設定鬧鈴的時間
{
if(s1 == 0) //鬧鈴設定的項目增加
{
DelayMs(15);
if(s1 == 0)
{
Di();
while(!s1);
g_Set_Alarm_Num ++; //鬧鈴的功能變量加
Initial_12864();
if(g_Set_Alarm_Num >= 3) //退出鬧鈴設定的功能
{
g_Set_Alarm_Num = 0;
g_Set_DS1302_Num = 0; //讓時間走起來
Write_12864_DS1302_Constant();
g_Alarm_Flag2 = 0;
g_Alarm_Flag1 = 0;
}
Locate_A(); //定位改變的鬧鐘數值
}
}
if(s2 == 0) //鬧鈴設定的項目減小
{
DelayMs(15);
if(s2 == 0)
{
Di();
while(!s2);
g_Set_Alarm_Num --;
Initial_12864();
if(g_Set_Alarm_Num <= 0) //退出鬧鈴設置
{
g_Set_Alarm_Num = 0;
g_Set_DS1302_Num = 0; //讓時間走起來
Initial_12864();
Write_12864_DS1302_Constant();
g_Alarm_Flag2 = 0;
g_Alarm_Flag1 = 0;
}
Locate_A(); //定位改變的鬧鐘數值
}
}
if(g_Set_Alarm_Num != 0) //進入鬧鈴時分秒的增大減小
{
if(s3 == 0) //對鬧鈴時分秒的數值進行增大
{
DelayMs(15);
if(s3 == 0)
{
Di();
while(!s3);
A_Increase();
}
}
if(s4 == 0) //對鬧鈴的數值進行減小
{
DelayMs(15);
if(s4 == 0)
{
Di();
while(!s4);
A_Decrease();
}
}
}
}
/***********************************************
函數名: 沒有中斷處理的標志位掃描
函數功能: 用于沒有串口中斷的各種各的標志位掃描
與按鍵掃描 包括鬧鈴 ,DS1302 ,紅外
入口參數: 無
出口參數: 無
備 注: 友情提示在液晶上有顯示
按下s1進入 DS1302的時間修訂
按下s3進入 鬧鈴的的查看與修正
按下s4進入 串口中斷的處理
***********************************************/
void Without_Uart()
{
static bit Stop_A_Flag = 0; //停止鬧鈴的標志位
if(g_Alarm_Flag1 == 0 && g_Alarm_Flag2 == 0 && g_HongWai_Work_Flag == 0) //DS1302的有關函數 主要看行走的時間與DS1302的時間修改
{
Set_DS1302(); //設置DS1302時間
if(g_Set_DS1302_Num == 0) //當功能鍵的數值為零時進行讀取DS1302的所有數據
{
Read_All_DS1302_Date();
}
Display_DS1302_Time();
}
if(g_Alarm_Flag1 == 0 && g_Alarm_Flag2 == 0 && g_HongWai_Work_Flag == 0 && g_Set_DS1302_Num == 0)//s3鬧鈴查看與修正
{
if(s3 == 0)
{
DelayMs(15);
if(s3 == 0)
{
Di();
while(!s3);
g_Alarm_Flag1 = 1;
Initial_12864();
Remind_Whether_Set_Alarm();
}
}
}
if(g_Alarm_Flag1 == 1 && g_Alarm_Flag2 == 0 && g_HongWai_Work_Flag == 0) //判斷是否進入鬧鈴
{
if(s1 == 0) //退出鬧鈴設定
{
DelayMs(15);
if(s1 == 0)
{
Di();
while(!s1);
g_Alarm_Flag2 = 0;
g_Alarm_Flag1 = 0;
g_Set_DS1302_Num = 0;
Write_12864_DS1302_Constant(); //寫12864固定的部分
}
}
if(s2 == 0) //進入鬧鈴的設定
{
DelayMs(15);
if(s2 == 0)
{
Di();
while(!s2);
g_Alarm_Flag2 = 1;
g_Set_Alarm_Num ++; //開始調節分鐘
Locate_A();
}
}
}
if(g_Alarm_Flag2 == 1 && g_HongWai_Work_Flag == 0)//設定鬧鈴的時間
{
Set_A();
Stop_A_Flag = 0; //設置好后讓鬧鈴繼續響
}
if(g_HongWai_Work_Flag == 1)
{
if(g_Turn_Poem_Flag == 0)
{
Turn_Page_Poem();
}
}
if(g_Alarm_hour == g_hour && g_Alarm_min == g_min && Stop_A_Flag == 0
&& g_Alarm_Flag1 == 0 && g_Alarm_Flag2 == 0 && g_Set_DS1302_Num == 0) //進入鬧鐘報響
{
Di();
Locate_pos (0,0);
Write_String ("鬧鈴來了 現在是",0,16);
Locate_pos (3,0); //友情提示
Write_String ("按s4退出退出鬧鈴",0,16);
if(g_sec >= 59)
{
Write_12864_DS1302_Constant();
}
if(s4 == 0) //退出鬧鈴
{
DelayMs(15);
if(s4 == 0)
{
Di();
while(!s4);
Stop_A_Flag = 1;//鬧鈴標志位置一 停止鬧鈴 如果想再次進入鬧鈴重新設定
Write_12864_DS1302_Constant();
}
}
}
IRR_Work(); //紅外工作
}
/**************************************************
函數名: Key_Scan()
函數功能: 各種各樣的標志位掃描與按鍵掃描
入口參數: 無
出口參數: 無
備 注: 主要被主函數調用以便讓整個工程工作
主要用于各種各樣的按鍵掃描于標志位掃描
***************************************************/
void Key_Scan()
{
if(g_Uart_Work_Flag == 0) //判斷是否進入串口中斷
{
if(g_Set_DS1302_Num == 0 && g_Alarm_Flag1 == 0 && g_Alarm_Flag2 == 0)
{
if(s4 == 0)
{
DelayMs(15);
if(s4 == 0)
{
Di();
while(!s4);
g_Uart_Work_Flag = 1;
Initial_Uart (); //初始化串口
Remind_Uart_process(); //提示進行串口處理
}
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載地址:
http://www.zg4o1577.cn/bbs/dpj-86188-1.html
作者:
348652560
時間:
2017-6-15 17:50
非常好
作者:
wjwjwjwj
時間:
2017-6-16 08:05
看了下,感覺非常好
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧美日韩久久精品
|
欧美成人h版在线观看
|
成人午夜精品一区二区三区
|
日韩欧美精品在线
|
爱爱免费视频
|
国产乱码精品一区二区三区中文
|
国产成人一区二区
|
亚洲欧美一区二区三区情侣bbw
|
毛片网站在线观看
|
亚洲国产高清高潮精品美女
|
97色在线观看免费视频
|
成人精品在线观看
|
精品伊人久久
|
乱一性一乱一交一视频a∨ 色爱av
|
亚洲啪啪一区
|
米奇狠狠鲁
|
国产精品一区二区日韩
|
欧美精品成人
|
国产毛片视频
|
www亚洲成人
|
婷婷福利视频导航
|
黄色免费看
|
欧美综合久久久
|
91porn成人精品
|
亚洲超碰在线观看
|
中文字幕乱码一区二区三区
|
在线观看免费av网站
|
欧美涩涩网
|
欧美色性
|
欧美成人a∨高清免费观看 老司机午夜性大片
|
日本精品在线观看
|
婷婷福利
|
最新中文字幕在线播放
|
激情欧美一区二区三区中文字幕
|
亚洲欧美日韩精品久久亚洲区
|
色综合久
|
夜夜骚视频
|
av色站
|
九色av
|
九九免费观看视频
|
视频一区欧美
|