|
主頻率 12M
功能:
1、使用DS1302獲得時(shí)鐘信號(hào),能夠進(jìn)行時(shí)間設(shè)置
2、能夠設(shè)置10組打鈴時(shí)間,并具有臨時(shí)打鈴功能,打鈴的時(shí)長(zhǎng)為5S鐘
3、1602液晶屏幕顯示數(shù)據(jù)。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
使用方法: 按鍵“÷”時(shí)間調(diào)整,多次按下調(diào)整位
按鍵“X”打鈴時(shí)間調(diào)整,多次按下調(diào)整位
按鍵“=”打鈴時(shí)間數(shù)組調(diào)整
按鍵“+”數(shù)據(jù)加
按鍵“-”數(shù)據(jù)減
按鍵“/C”退出
單片機(jī)主頻率 12M
單片機(jī)源程序如下:
- /*
- 主頻率 12M
- 項(xiàng)目名稱: 校園打鈴系統(tǒng)
- 功能:
- 1、8位數(shù)碼管顯示當(dāng)前時(shí)間。
- 2、使用DS1302獲得時(shí)鐘信號(hào),能夠進(jìn)行時(shí)鐘設(shè)置
- 3、能夠設(shè)置10組打鈴時(shí)間,并具有臨時(shí)打鈴功能,打鈴的時(shí)長(zhǎng)為5S鐘
- 4、使用1602液晶屏幕顯示。
- 使用方法: 按鍵“÷”時(shí)間調(diào)整,多次按下調(diào)整位
- 按鍵“X”打鈴時(shí)間調(diào)整,多次按下調(diào)整位
- 按鍵“=”打鈴時(shí)間數(shù)組調(diào)整
- 按鍵“+”數(shù)據(jù)加
- 按鍵“-”數(shù)據(jù)減
- 按鍵“/C”退出
- */
- #include "all.h"
- u8 Mode=0; //模式標(biāo)記
- u8 Ring_Sign=0; //打鈴標(biāo)記
- void main(void)
- {
- u8 i=0,q=0,s;
- lcd_start(); //屏幕初始化
- lcd_CLS(); //清屏
- Init_Ds1302(); //DS1302初始化
- Timer0Init(); //定時(shí)器(鈴聲)初始化
- P37=0;
- TR0 = 1; //啟動(dòng)定時(shí)器0
-
- while(1)
- {
- Key4x4_2(); //4X4按鍵數(shù)據(jù)(松手后)讀取
- Key_Mode(); //模式判斷
-
- if(Mode>0) //非正常模式進(jìn)入
- {
- if(LCD1602_Cursor_address==0)//非正常模式光標(biāo)一定存在
- LCD1602_Cursor_address=1;
-
- if(Mode==1) //時(shí)間調(diào)整
- {
- Time_Settings(); //數(shù)據(jù)調(diào)整
- lcd_position(16); //模式標(biāo)記
- lcd_write_data('N');
- lcd_write_data('z');
- }
- else //鈴聲時(shí)間調(diào)整
- {
- Alarm_Clock(); //數(shù)據(jù)調(diào)整
- lcd_position(0); //模式標(biāo)記
- lcd_write_data(Ring/10+'0');
- lcd_write_data(Ring%10+'0');
- lcd_position(16);
- lcd_write_data('S');
- lcd_write_data('j');
- }
- LCD_1602_Cursor_address(); //光標(biāo)閃爍
- delay_ms(35); //閃爍頻率不能太高
- }
- else //正常模式進(jìn)入
- {
- Read_Time_Ds1302(); //讀取時(shí)鐘信息
- lcd_printf_Ds1302(); //時(shí)間數(shù)據(jù)刷新
-
- i=10;
- while(i--) //判斷是否打鈴時(shí)間
- {
- for(q=0;q<3;q++) //秒分時(shí)對(duì)比
- {
- if(Time[q]==Ring_Data[i][q])
- Ring_Sign=1;
- else //秒分時(shí)只要有一個(gè)不符合就不允許打鈴
- {
- Ring_Sign=0;
- goto Goto; //無(wú)條件跳到Goto
- }
- }
- Goto:
- if(Ring_Sign)
- {
- s=(Time[0]+5); //打鈴時(shí)間調(diào)整
- Time_Data=1; //打鈴
- }
- }
-
- if(Time[0]>s) //時(shí)間到停止打鈴
- {
- Time_Data=0;
- }
- }
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
電子時(shí)鐘.zip
(170.3 KB, 下載次數(shù): 101)
2020-7-12 17:36 上傳
點(diǎn)擊文件名下載附件
程序和仿真
|
評(píng)分
-
查看全部評(píng)分
|