第1章 設計任務書
1.1目的與目標在學校生活中,每一天和下一堂課都離不開打鈴器的使用。鈴聲可以為在校學生和老師提供提醒,同時也可以作為提醒學生日程安排,讓我們有時間感,形成一個規律的時鐘,對自己的健康也有很大的好處。對于那些上課拖堂現象,廣大教師知識的發展也給一個班的時間提醒學生,以免耽誤下一節課的上課時間。
隨著現代科學技術的發展,提高管理水平,已使鐘裝置自動提示節省人力資源,降低成本,對實現綜合管理有很大幫助。而自動打鈴系統繼續影響著我們的生活和學習,它已廣泛應用于各個學校,它可以實現學校的辦公自動化,為學校管理服務。自動打鈴器配有微電腦,充分發揮了體積小、價格便宜、功耗低、可靠性好等優點,而且還可以修改為學校課表,方便廣大師生。自動打鈴系統的研究和應用已經非常普及,選擇這一課題的原因是看其成熟性和通用性。
在第二十世紀和第二十一世紀的半導體和集成電路技術的電子技術的發展,電子技術已滲透到各行各業,具有更快的林格電子表格為自然主要依據時間和更新提供參考,現在各種功能,層出不窮的貝爾更先進使用智能設備的使用,離不開供應鏈管理。單片機只是一個微型計算機,包括中央處理器杯、隨機存取存儲器ram、只讀存儲器ROM、I/O口、串口等部件,可作為系統的主控制器,其他部分電路將集成在一起構成一個智能控制系統。
基于以上原因,本課題設計了一款基于單片機的自動打鈴系統,使用簡單方便、功能齊全。
1.2軟硬件環境1.硬件清單:
2、軟件
Proteus7.5sp3
記事本
第2章 設計、制作2.1 總體設計系統設計框圖如下:(見附件)
系統軟件設計流程圖如圖所示。

程序設計過程:首先要定義單片機的引腳,然后初始化器件,再利用DS1307的讀寫時序讀取時間數據。再利用按鍵進入時間設定狀態,設定完時間后單片機通過比較時間是否到達設定的時間來確定是否到打鈴時間,如果達到打鈴時間,則控制蜂鳴器響LED燈亮。
2.2各部分的電路設計2.2.1時鐘電路設計
時鐘芯片的SCL引腳和SDA引腳分別由單片機的P3.1和P3.2引腳控制,單片機只需按照DS1302的工作時序來控制即可實現時間的寫入和讀取,其中DS1302的時鐘端與數據端需外接上拉電阻,本設計選用5針排阻來充當上拉電阻。

2.2.2按鍵電路
由單片機的P1口控制按鍵電路。本設計中按鍵用于設定定時時間、打鈴時間間隔,所以只需4路按鍵即可實現所需功能,采用獨立式按鍵即可。由于按鍵是機械式觸點,所以在斷開或閉合時,一般都有抖動產生,雖然這個抖動時間在我們看來非常短,但是單片機執行指令的速度為微秒級別,很容易會讀取這個時間而將其判斷為真正的工作狀態,從而引起誤判。因此,在設計中必須考慮到按鍵抖動的影響。常用的去抖動的方法有兩種:硬件方法和軟件方法。硬件方法一般是加電容或者RS觸發器;軟件方法是在單片機在檢測引腳所連接的按鍵的工作狀態時加一個延時程序再次確認,通過2次的確認就可以確保按鍵的工作狀態不受機械抖動的影響了。

2.2.3單片機電路
晶振電路用于產生單片機工作時所需要的時鐘信號,單片機的指令必須在時鐘信號下按照時序執行。晶振電路通常用兩種設計方式:內部振蕩方式和外部振蕩方式。內部振蕩方式是在單片機的XTAL1和XTAL2引腳外接一個晶體振蕩器,與單片機內部的振蕩器組成時鐘信號;外部振蕩方式是在外部將已有的脈沖信號引入單片機內,一般用于使單片機的時鐘與外部信號保持同步。本設計選用內部振蕩方式,在XTAL1和XTAL2引腳之間連接一個12MHz的晶振,再分別外接30p的對地電容。
單片機在啟動時需要復位,使系統各器件處于初始狀態。復位引腳為RST,當系統上電后晶振電路穩定后,RST引腳有一個高電平且持續2個機器周期以上,單片機系統就可以實現復位功能。復位一般有手動復位和上電復位功能。手動復位是在RST引腳設置按鍵,當按鍵按下時,RST引腳會有高電平,即可實現復位功能;上電復位是在RST引腳連接一個電解電容接至電源,再接一個電阻接地,系統上電時,電容充電,只要電源的上升時間不超過1ms,就可以實現復位功能。本設計選用按鍵復位。

2.2.4顯示電路
單片機的P2口作為LCD1602的數據線端口,P3口控制LCD1602的使能端。單片機讀取數據后,通過控制LCD1602的讀寫端、復位端和使能端將其設置為寫入數據狀態,再將數據通過P2口送入LCD1602實現顯示功能。

2.2.5打鈴電路
打鈴電路一般用聲音或音樂作為提醒,本設計選用蜂鳴器和LED燈實現聲光雙重打鈴功能,電路如圖3-7所示。打鈴時間到時,單片機P3.3引腳置高,三極管9013導通,繼而蜂鳴器和LED燈導通,實現蜂鳴和燈亮打鈴功能。
系統蜂鳴器的工作原理如下:當單片機端口輸出高電平時,三極管B極(三極管的各個參數如3.6節所示)處于高電平,三極管不導通,蜂鳴器不響。當單片機端口輸出低電平時,三極管B極處于低電平,三極管導通,蜂鳴器鳴響。在本系統中如果要運用到實際中的話本來是要把單片機端口P3.4口接上繼電器再控制220V電源的電鈴的,但由于各種原因,在這次設計中我是用蜂鳴器來顯示出打鈴的效果的,蜂鳴器與單片機的連接圖如圖所示。

2.3 硬件連接
2.4 程序設計(見附件)第3章 調試3.1源程序的編輯一、使用的工具:記事本
二、編輯的具體操作步驟
1、ds1302 內部RAM RAM0 1100 000R/W 1讀 0寫
RAM1 1100 001R/W
.......
RAM30 1111 110R/W
定義ds1302時鐘線、數據線和復位線。
2、寫一個數據到對應的地址里
3、從對應的地址讀一個數據出來
4、把要的時間 年月日 都讀出來
5、把要寫的時間 年月日 都寫入ds1302里
6、把數據保存到ds1302 RAM中**0-31
7、設置ds1302時間函數
8、把數據從ds1302 RAM讀出來**0-31
9、初始化ds1302時間
10、AT89C51扇區分布
第一扇區:1000H--11FF
第二扇區:1200H--13FF
第三扇區:1400H--15FF
第四扇區:1600H--17FF
第五扇區:1800H--19FF
第六扇區:1A00H--1BFF
第七扇區:1C00H--1DFF
第八扇區:1E00H--1FFF
11、AT89C52扇區分布
第一扇區:2000H--21FF
第二扇區:2200H--23FF
第三扇區:2400H--25FF
第四扇區:2600H--27FF
第五扇區:2800H--29FF
第六扇區:2A00H--2BFF
第七扇區:2C00H--2DFF
第八扇區:2E00H--2FFF
12、打開 ISP,IAP 功能
13、關閉 ISP,IAP 功能
14、觸發代碼
15、字節讀
16、扇區擦除
17、字節寫
18、延時函數
19、lcd1602寫命令函數
20、lcd1602寫數據函數
21、lcd1602初始化設置
22、lcd1602上顯示兩位十進制數
23、lcd1602上顯示兩位十進制數
24、lcd1602上顯示這字符函數
25、控制光標函數
26、開機液晶顯示函數 初始化液晶的內容
三、編輯時注意的問題
1、寫一個數據到對應的地址里時要低位在前
2、從對應的地址讀一個數據出來時要注意最后返回讀出來的數據
3、把要寫的時間 年月日 都寫入ds1302里要記得開始時打開寫保護,結束時關閉寫保護
4、把數據保存到ds1302 RAM中**0-31時地址是從第二位開始的
5、初始化ds1302時間第一次讀寫數據時要把IO品拿低
四、給出過程中的截圖。




























3.2 編譯一、使用的工具Proteus7.5sp3
二、編譯的過程(主要步驟,要有截圖)
三、編譯后的結果
3.3 燒寫燒寫工具的名稱
燒寫的過程(主要步驟,要有截圖)
3.4 調試調試的主要過程(或調試的主要內容)
出現問題的原因是什么,如何解決?
最終的調試結果
第4章 總結本設計是一種為上課時間設計的自動打鈴系統,可在工廠、工廠車間、學生等場所使用,能起到很好的時鐘功能,方便人們的日常生活。在硬件設計部分,LCD對LCD進行監控,具有功耗低、工作電壓低的特點,顯示質量高、可視面積大,能很好地實現設計要求,減少了軟件編程的難度。
自動打鈴系統還存在不足和缺點,主要表現在這些方面:雖然系統能夠很好的實現打鈴的要求,但是能夠設定的打鈴時間只有六個,這是因為想降低編程時的難度,在不影響其功能的前提下,降低了要求;還有就是其擴展性不強,后續的發展比較困難,制約了系統的升級,在商品競爭中沒什么優勢,需要進一步的研究和開發。
通過此次期末設計,我對所學專業的知識有了很好的回顧和實踐,提高了自己的動手和思考能力,這對我自身的發展有很大的幫助,同時在此期間我查閱了很多的書籍和資料,從中學到了很多課本上沒有的知識,拓展了自己的知識面,如果沒有前期的準備工作是沒法很好的完成此次設計的,所以想了解更多,看到更多更想做的,是學習知識的必備素質,這對我未來的發展和進步有著至關重要的作用。