




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上單片機原理課程設計報告題目:LCD時鐘設計班級:自動111學號:1104010307姓名:紀尚峰成績: 指導教師: 蘇維均 北京工商大學信息工程學院20146一、設計任務要求分析本設計要實現(xiàn)的功能是:實時顯示當前的時鐘,并且可以設定鬧鈴,以蜂鳴器鳴響5秒的方式作為鬧鈴。1.1設計總體方案及其方案論證 按照系統(tǒng)的設計功能所要求的,液晶顯示電子時鐘原理圖如圖所示。 液晶顯示電子時鐘原理圖 本系統(tǒng)以AT89C51單片機為核心,該單片機可把數(shù)據(jù)進行處理,從而把數(shù)據(jù)傳輸?shù)斤@示模塊LCD1602液晶顯示器,實現(xiàn)時間及日期的顯示。以LCD液晶顯示器為顯示模塊,把單片機傳來的數(shù)據(jù)顯示
2、出來,并且顯示多樣化,還可以對時間和日期進行設置,主要靠按鍵來實現(xiàn)。三、組成電路介紹 1) 復位電路:復位電路復位電路有兩種方式:上電復位和按鈕復位,我們主要用按鈕復位方式。如圖所示:2) 晶振電路:晶振電路如圖所示:晶振模塊原理圖選取原則:電容選取22pF,晶振為12MHz。3) 電源:AT89S51單片機的供電電源是5V的直流電。4) EA非/Vpp腳:我們沒有用外部擴展ROM,因此EA非/Vpp為高電平,即接+5V電源。3.2、鍵盤控制系統(tǒng)設計:按鍵需要4個,分別實現(xiàn)為時間調整、時間的加、時間的減、鬧鐘調整四個功能。用單片機的4個I/O口接收控制信號,其電路如圖所示:按鍵調時電路通過控制
3、鍵來控制所要調節(jié)的是時、分、還是秒。在控制鍵按下后LCD中會在相應的位置出現(xiàn)光標,這時在通過加數(shù)鍵或減數(shù)鍵來控制時分秒的加或減。在調鬧鐘鍵按下后LCD中也會在相應的位置出現(xiàn)光標,這時也通過加數(shù)鍵或減數(shù)鍵來設置鬧鐘。3.3、鬧鐘部分:鬧鐘部分主要由蜂鳴器,三極管,電阻組成。其電路圖如圖所示:鬧鐘電路當單片機的P15接口輸出為高電平時,蜂鳴器響,當輸出為低電平時,蜂鳴器停止。3.4顯示電路設計3.4.1 LCD1602簡介LCD1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊,它有若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符。
4、每位之間有一個點距的間隔,每行之間也有也有間隔,起到了字符間距和行間距的作用,正因為如此,所以他不能顯示圖形(用自定義CGRAM,顯示效果也不好)。1602LCD是指顯示的內容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。目前市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應用于市面上大部分的字符型液晶。 (1)LCD1602的主要技術參數(shù)顯示容量:16×2個字符;芯片工作電壓:4.55.5V;工作電流:2.0mA(5.0V);模塊最佳工作電壓:5.0V;字符尺寸:2.95×4
5、.35(W×H)mm。(2)LCD1602引腳功能說明 1602LCD采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如下: 第1腳:VSS為地電源; 第2腳:VDD接5V正電源; 第3腳:VL為液晶顯示器對比度調整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調整對比度; 第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器; 第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號
6、,當RS為高電平R/W為低電平時可以寫入數(shù)據(jù); 第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令; 第714腳:D0D7,為8位雙向數(shù)據(jù)線; 第15腳:背光源正極; 第16腳:背光源負極。 1602液晶模塊的讀寫操作,屏幕和光標的操作都是通過指令編程來實現(xiàn)的。本顯示電路將單片機的P0口作為液晶的數(shù)據(jù)口,由于P0口沒有上拉電阻,所以需額外加一個排阻作為上拉電阻,利用P1口作為其讀寫控制端,具體電路如圖。 顯示電路 四、軟件設計軟件設計是本次設計中不可缺少的環(huán)節(jié),是本次設計能夠完成的最重要的環(huán)節(jié)之一。在完成了硬件電路的設計之后,依據(jù)系統(tǒng)設計要求和硬件電路開始系統(tǒng)軟件部分的設計。
7、本系統(tǒng)軟件設計包括:主程序、系統(tǒng)初始化子程序、延時中斷子程序、時間設置子程序。首先進行模塊設計,最后進行各模塊的整合以完成整個軟件系統(tǒng)。4.1程序主流程圖 主流程圖4.2初始化流程圖系統(tǒng)初始化模塊的主要功能是完成系統(tǒng)的初始化以及設定系統(tǒng)的工作狀態(tài),初始化部分包括以下方面的內容: (1)單片機定時器0初始化以及各種I/O口定義; (2)1602液晶初始化清屏及設定工作方式; (3)系統(tǒng)進入正常工作狀態(tài)。初始化流程圖4.3延時中斷子程序延時中斷子程序4.4時間設置子程序這里僅畫出了秒設置流程圖,其他時間及日期設置類似。秒設置流程圖五、系統(tǒng)測試5.1 測試方法系統(tǒng)單片機代碼采用C語言編寫,prote
8、us進行原理圖的設計,keil軟件進行代碼的編譯,通過keil與proteus軟件的充分利用,將編譯好的執(zhí)行代碼加載到原理圖中的單片機里面進行原理圖仿真,通過仿真對系統(tǒng)的代碼程序和原理圖進行測試,看是否達到系統(tǒng)的設計要求。5.2 測試結果(1) 通過按調時健、加減鍵的調節(jié),我們可以設定出具體的時間1:00:00,觀察LCD液晶屏如圖所示精確顯示出我們所設定的時間時間。 (2)通過按鍵調節(jié)調鬧鐘健,我們可以五秒聽到清晰的蜂鳴聲。5.3 結果分析通過對系統(tǒng)原理圖和程序的仿真與調試基本實現(xiàn)了系統(tǒng)的功能要求??梢酝ㄟ^按鍵(mode)來設定具體時間、鬧鐘。LCD液晶顯示屏能夠準確而且清晰地顯示出時間。源
9、程序#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit beep=P15; /定義蜂鳴器的io口sbit rw=P21; /定義讀寫的io口sbit rs=P20;/定義接收與發(fā)送指令的io口sbit lcden=P22;/定義使能端的io口sbit k1=P30; /定義調時鍵的io口sbit k2=P31; /定義加數(shù)鍵的io口sbit k3=P32; /定義減數(shù)鍵的io口sbit k4=P33; /定義調鬧鐘鍵的io口uchar c
10、ount,count1,num,num1,num2;char h,min,sec,h1,min1,sec1;uchar table=" 23:59:57"uchar table1=" 00:00:00"void delay(uint ms)/延時程序 int i;while(ms-) for(i = 0; i< 250; i+) _nop_(); _nop_(); _nop_(); _nop_(); delay1(uchar z) /延時程序 uint x,y; for(x=z;x>0;x-) for(y=110;y>0;y-); re
11、turn 0;bit write_busy() /判斷是否為繁忙狀態(tài) bit result; rs = 0; rw = 1; lcden = 1; _nop_(); _nop_(); _nop_(); _nop_(); result = (bit)(P0&0x80); lcden= 0; return result; void write_com(uchar com) /寫指令函數(shù) while(write_busy(); rs=0; rw=0; lcden=0; P0=com; _nop_(); _nop_(); _nop_(); _nop_(); lcden=1; _nop_();
12、_nop_(); _nop_(); _nop_(); lcden=0;void write_data(uchar date) /寫數(shù)據(jù)函數(shù) while(write_busy(); rs=1; rw=0; lcden=0; P0=date; _nop_(); _nop_(); _nop_(); _nop_(); lcden=1; _nop_(); _nop_(); _nop_(); _nop_(); lcden=0;void write_pos(uchar pos) /設定地址write_com(pos | 0x80); /數(shù)據(jù)指針=80+地址變量void write_sfm(uchar add
13、,uchar date) /設定時分秒及其顯示與地址uint shi,ge; shi=date/10;ge=date%10;write_com(0x80+0x40+add); write_data(0x30+shi); write_data(0x30+ge);void write_sfm1(uchar add,uchar date) /設置鬧鐘時分秒及其顯示與地址uint shi,ge; shi=date/10;ge=date%10;write_com(0x80+add); write_data(0x30+shi); write_data(0x30+ge);void keyscan() /鍵盤
14、掃描 if(k1=0) delay1(5); if(k1=0) while(!k1); num+; if(num=1) TR0=0; write_com(0x80+0x40+11); write_com(0x0f); if(num=2) write_com(0x80+0x40+8); if(num=3) write_com(0x80+0x40+5); if(num=4) num=0; write_com(0x0c); TR0=1; if(num!=0) if(k2=0) delay1(5); if(k2=0) while(!k2) if(num=1) sec+; if(sec=60) sec=
15、0; write_sfm(10,sec); write_com(0x80+0x40+0x10); if(num=2)min+;if(min=60)min=0;write_sfm(7,min);write_com(0x80+0x40+8); if(num=3)h+;if(h=24)h=0;write_sfm(4,h);write_com(0x80+0x40+5); if(k3=0) delay1(5); if(k3=0) while(!k3); if(num=1) sec-; if(sec=-1) sec=59; write_sfm(10,sec); write_com(0x80+0x40+0x
16、10); if(num=2) min-; if(min=-1)min=59; write_sfm(7,min); write_com(0x80+0x40+8); if(num=3) h-; if(h=-1) h=23; write_sfm(4,h); write_com(0x80+0x40+5); if(k4=0) delay1(5); if(k4=0) while(!k4); num1+; if(num1=1) write_sfm1(10,sec1); write_sfm1(7,min1); write_sfm1(4,h1); if(num1=2) write_com(0x80+11); w
17、rite_com(0x0f); if(num1=3) write_com(0x80+8); if(num1=4) write_com(0x80+5); if(num1=5) num1=0; write_com(0x0c); write_sfm(10,sec); write_sfm(7,min); write_sfm(4,h); if(num1!=0) if(k2=0) delay1(5); if(k2=0) while(!k2) if(num1=2) sec1+; if(sec1=60) sec1=0; write_sfm1(10,sec1); write_com(0x80+0x10); if
18、(num1=3)min1+;if(min1=60)min1=0;write_sfm1(7,min1);write_com(0x80+8); if(num1=4)h1+;if(h1=24)h1=0;write_sfm1(4,h1);write_com(0x80+5); if(k3=0) delay1(5); if(k3=0) while(!k3); if(num1=2) sec1-; if(sec1=-1) sec1=59; write_sfm1(10,sec1); write_com(0x80+0x10); if(num1=3) min1-; if(min1=-1)min=59; write_
19、sfm1(7,min1); write_com(0x80+8); if(num1=4) h1-; if(h1=-1) h1=23; write_sfm1(4,h1); write_com(0x80+5); void init() /程序初始化函數(shù) uint i; h=23; min=59; sec=57; h1=00; min1=00; sec1=00; num=0; lcden=0; write_com(0x38); delay(1); write_com(0x0c); /顯示開,關光標 delay(1); write_com(0x06); /移動光標 delay(1); write_com(0x01); /清除LC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年制冷設備行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030年中國高頻交易行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030年中國青貯袋行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030年中國鉛筆盒行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030年中國鋼帶分揀機行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030年中國運動休閑行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030年中國裝飾柜行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 數(shù)學迷宮算式題目及答案
- 符號化學習方法在化學概念教學中的有效性分析
- 饅頭單位食堂配送企業(yè)制定與實施新質生產(chǎn)力項目商業(yè)計劃書
- 2024年河北省中考數(shù)學真題試卷及答案
- 2024屆新疆維吾爾阿克蘇地區(qū)小升初語文檢測卷含答案
- MOOC 工科數(shù)學分析(一)-北京航空航天大學 中國大學慕課答案
- 汽車零部件生產(chǎn)過程大數(shù)據(jù)分析與管理
- 部編版《道德與法治》五年級下冊第11課《屹立在世界的東方》教學設計
- 2023年新疆維吾爾自治區(qū)石河子市小升初數(shù)學試卷(內含答案解析)
- 初中地理七下8.3.2《撒哈拉以南非洲》教學設計
- 鋁錠應用行業(yè)分析
- 湖北煙草公司招聘考試真題
- 心衰的中西醫(yī)結合治療
- 1000道100以內進位退位加減法題
評論
0/150
提交評論