標題:
單片機校園打鈴系統(tǒng)源程序+Proteus仿真
[打印本頁]
作者:
YF12
時間:
2020-7-12 17:41
標題:
單片機校園打鈴系統(tǒng)源程序+Proteus仿真
主頻率 12M
功能:
1、使用DS1302獲得時鐘信號,能夠進行時間設置
2、能夠設置10組打鈴時間,并具有臨時打鈴功能,打鈴的時長為5S鐘
3、1602液晶屏幕顯示數(shù)據(jù)。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
12.png
(35.76 KB, 下載次數(shù): 69)
下載附件
2020-7-12 17:30 上傳
使用方法: 按鍵“÷”時間調整,多次按下調整位
按鍵“X”打鈴時間調整,多次按下調整位
按鍵“=”打鈴時間數(shù)組調整
按鍵“+”數(shù)據(jù)加
按鍵“-”數(shù)據(jù)減
按鍵“/C”退出
單片機主頻率 12M
單片機源程序如下:
/*
主頻率 12M
項目名稱: 校園打鈴系統(tǒng)
功能:
1、8位數(shù)碼管顯示當前時間。
2、使用DS1302獲得時鐘信號,能夠進行時鐘設置
3、能夠設置10組打鈴時間,并具有臨時打鈴功能,打鈴的時長為5S鐘
4、使用1602液晶屏幕顯示。
使用方法: 按鍵“÷”時間調整,多次按下調整位
按鍵“X”打鈴時間調整,多次按下調整位
按鍵“=”打鈴時間數(shù)組調整
按鍵“+”數(shù)據(jù)加
按鍵“-”數(shù)據(jù)減
按鍵“/C”退出
*/
#include "all.h"
u8 Mode=0; //模式標記
u8 Ring_Sign=0; //打鈴標記
void main(void)
{
u8 i=0,q=0,s;
lcd_start(); //屏幕初始化
lcd_CLS(); //清屏
Init_Ds1302(); //DS1302初始化
Timer0Init(); //定時器(鈴聲)初始化
P37=0;
TR0 = 1; //啟動定時器0
while(1)
{
Key4x4_2(); //4X4按鍵數(shù)據(jù)(松手后)讀取
Key_Mode(); //模式判斷
if(Mode>0) //非正常模式進入
{
if(LCD1602_Cursor_address==0)//非正常模式光標一定存在
LCD1602_Cursor_address=1;
if(Mode==1) //時間調整
{
Time_Settings(); //數(shù)據(jù)調整
lcd_position(16); //模式標記
lcd_write_data('N');
lcd_write_data('z');
}
else //鈴聲時間調整
{
Alarm_Clock(); //數(shù)據(jù)調整
lcd_position(0); //模式標記
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(); //光標閃爍
delay_ms(35); //閃爍頻率不能太高
}
else //正常模式進入
{
Read_Time_Ds1302(); //讀取時鐘信息
lcd_printf_Ds1302(); //時間數(shù)據(jù)刷新
i=10;
while(i--) //判斷是否打鈴時間
{
for(q=0;q<3;q++) //秒分時對比
{
if(Time[q]==Ring_Data[i][q])
Ring_Sign=1;
else //秒分時只要有一個不符合就不允許打鈴
{
Ring_Sign=0;
goto Goto; //無條件跳到Goto
}
}
Goto:
if(Ring_Sign)
{
s=(Time[0]+5); //打鈴時間調整
Time_Data=1; //打鈴
}
}
if(Time[0]>s) //時間到停止打鈴
{
Time_Data=0;
}
}
}
}
復制代碼
所有資料51hei提供下載:
電子時鐘.zip
(170.3 KB, 下載次數(shù): 101)
2020-7-12 17:36 上傳
點擊文件名下載附件
程序和仿真
下載積分: 黑幣 -5
作者:
YF12
時間:
2020-7-18 07:53
忘記加臨時打鈴功能了,只需要 Time_Data=1; 鈴聲就會響起來,可以自己判斷鍵盤上面哪一個按鍵被按下就馬上響。
作者:
楊國福
時間:
2021-5-23 16:34
請問頭文件all. h什么意思
作者:
YF12
時間:
2021-5-29 11:03
楊國福 發(fā)表于 2021-5-23 16:34
請問頭文件all. h什么意思
一個頭文件,all就是全部的意思,all.h里面我包含了全部的頭文件。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1