51單片機實現電子時鐘功能_第1頁
51單片機實現電子時鐘功能_第2頁
51單片機實現電子時鐘功能_第3頁
已閱讀5頁,還剩14頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第一章設計要求及系統組成一、基本操作時序 : 讀狀態:輸入:RS=L RW=H,E=H輸出:D0D7=狀態字寫指令:輸入:RS=L,RW=L,D0D7指令碼,E= 高脈沖 輸出:無讀數據:輸入:RS=H RW=H,E=S脈沖輸出:D0D7數據寫數據:輸入:RS=H,RW=LD0D7數據,E=高脈沖 輸出:無二、狀態字說明 :STA7 D7 STA6 D6 STA5 D5 STA4 D4 STA3 D3 STA2 D2 STA1 D1STA0-6:當前數據地址指針的數值STA7讀寫操作使能1表示禁止,0表示允許對控制器每次進行讀寫操作之前,都必須進行讀寫檢測,確保STA7為0;但是我們可以進行延

2、時進行實現。RAM地址映射:LCD 16字*2行00 01 02 03 04 05 06 07 08 08 09 0A 0B 0C 0D 0E 0F2740 41 424F 5067指令說明:1.初始化設置1.顯示模式設置 指令碼:00111000V0X38)功能:設置16*2顯示,5*7點陣,8位數據接口必須開顯示2.顯示開、關及光標設置指令碼:00001DCB功能:D=1開顯示;D=0關顯示;C=1顯示光標;B=1光標閃爍;B=0光標不顯示000001NS:功能:N=1當讀或寫一個字符后地址指 針加1,且光標加1; N=0相應的減1; S=1當寫一個字符,整屏顯 示左移n=1)或右移N=0

3、,以得到光標不移動而屏幕移動的效 果。S=0當寫一個字符,正屏顯示不移動。數據控制:控制器內部設有一個數據地址指針,用戶可通過它們來訪問內部的全部80字節RAM421數據指針設置:指令碼:80H+地址碼V0-27H,第二行開始:40H-67H) 4.22 讀數據,寫數據其它設置:01H:顯示清屏:1.數據指令清零 2 所有顯示清零 02H:顯示回車:1.數據清零如何進行連接 :實際操作中,液晶接到,第一管腳是D,第二管腳是 VCC 15和16是背光,D0-D7是數據口,接到單片 機的P0 口,P0 口接了兩個鎖存器,液晶,D/A,具有高阻狀態的都 可以隨便接,沒有影響,第六管腳是LCDEN相當

4、于E,使能信號,它接P3A4,R/W接地,表示低電平,因為我們只進行寫操作,RS接2實驗板上的P3八5。只需這兩端口便足以控制液晶,2和3是偏 壓信號,一端接地,接口信號說明:編號:1 VSS號表示)電源地 引腳說明)2VDD電源正極3VL液晶顯示偏壓信號 4RS數據/命令選擇端vH/L) 5R/W 讀寫選擇端 H/L) 6E 使能信號 7D0Data 1/0 8D1Data 1/0 9 D2Data 1/010 D3Data 1/011D4Data 1/012D5Data1/0 13D6Data1/0 14D7Data 1/0 15BLK背光源正極16 BLK背光源負極實際操作:先寫光標程序

5、;寫兩個子程序,一個寫數據,一個寫指令:先進性 兩個宏定義,再位申明LCDEN與RS為了電量充足。初始化時關斷 數碼管,定義數碼管的兩個鎖存端,dula與wela,P2A6與P2八7,先寫主函數 調用初始化函數,在調用數據子函數 ,接著寫命令子函數 writer -com始操作時序,寫指令,P0 口送的指令碼,接著需要延時一段 時間讓E變成高電平,在持續一段時間,E再變低),它由所用的 指令直接調用即可。再寫一個寫數據的子 函數writer_datalcdrs=1 ),需用延時子函數。Uchar code table= “”注意:為了使得黑托不出現,應該屏幕全部清零writer_com(0x0

6、1。? xdata :外部地址空間1.1設計要求利用單片機最小系統設計一個電子時鐘,顯示方式為*:*:*,并且可以任意修改時間。1.2系統組成原理框圖如圖1.1復位電路圖1.1系統原理框圖第二章系統設計方案2.1系統設計方案電路原理圖如圖2.1所示圖2.1電路原理圖2.2電路模塊組成及其工作原理2.2.1 時鐘電路系統時鐘源由內部時鐘方式產生,時鐘電路由12MH晶振和兩個30PF瓷片電容組成,構成自激振蕩,形成振蕩源提供給單片機。電容可在5PF到30PF之間選擇,電容的大小對振蕩頻率有微小影響,可起頻率微調作用。時鐘電路如圖2.2所示復位電路單片機復位有上電復位和手動復位兩種方式,上電復位是接

7、通電源后利用RC充電來實現復位。手動復位是通過人為干預,強制系統復位。復位電路如圖2.3所示,可以實現上電復位和手動復位功能223按鍵電路在單片機的P1.0、P1.1、P1.2三個I/O 口接三個簡易按鍵,通過不斷檢測 按鍵狀態,識別按鍵的按下順序和次數即可實現時間的任意修改。按鍵電路如圖2.4所示。224 1602 液晶顯示模塊電路本設計是通過對1602液晶顯示屏的控制來實現時間的顯示。1602液晶顯示模塊的驅動如下所述:16RT1602CU2U1二5w0B7|biiT?圖2.4 1602液晶屏實物圖1602采用標準的16腳接口,其中:第1腳:VSS為地電源第2腳:VDD接5V正電源第3腳:

8、V0為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產生“鬼影”,使用時可以通過一個10K的電位器調整對比度第4腳:RS為寄存器選擇,高電平時選擇數據寄存器、低電平時選 擇指令寄存器。第5腳:RW為讀寫信號線,高電平時進行讀操作,低電平時進行寫 操作。當RS和 RW共同為低電平時可以寫入指令或者顯示地址,當 RS為低電平RW為高電平時可以讀忙信號,當 RS為高電平RW為低 電平時可以寫入數據。第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模 塊執行命令。第714腳:D0- D7為8位雙向數據線第1516腳:空腳1602顯示屏的時序圖如圖2.5RSI

9、ntent I SrgnaiDB7飛 * /叭 /卅八 =器,門(口心 廠iiIIAAAA1!1Iliwbiojoni Bm旳 FtjCheck Busy Fiag Dhett Busv Fbg OhecfclitsIrcUoH圖2.5 1602時序圖1602液晶顯示屏與單片機的連線圖如圖2.6所示2345e7s13 cH2 Q)51431円9n nui* cPIQPQOPllei i *iPQ1P13rvJP03PMPO4PI 5P05Pl6Pv6PITP07INTIP20INTOP21Y22ATS92IfiPtNLLD 55 V匚CJ LJ LJ tf IJ t1 Lf qf|j RI.C

10、 D-fa J Avc圖2.6 1602與單片機連線圖第三章程序設計及其調試3.1程序設計程序設計如下:#include#define uchar unsigned char#define uint unsigned intsbit lcdrs=P2A0。sbit lcswr=P2A1 。sbit lcden=P2A2 。sbit s1=P1A0 。sbit s2=P1A1 。sbit s3=P1A2 。sbit rd=P3A7 。uchar count,s1num 。char miao,shi,fen 。uchar code table= 2018-6-14 TUNuchar code ta

11、ble1= 00:00:00void delay(uint zuint x,y 。for(x=z 。 x0。 x-for(y=110 。 y0。 y- 。void write_com(uchar comlcdrs=0 。lcswr=0 。P0=com。delay(5 。lcden=1 。delay(5 。lcden=0 。void write_date(uchar datelcdrs=1 。lcden=0 。P0=date。delay(5 。lcden=1 。delay(5 。 lcden=0 。void init(uchar num 。lcden=0 。write_com(0x38 。wri

12、te_com(0x0c 。write_com(0x06 。write_com(0x01 。write_com(0x80 。 for(num=0。 numwrite_date(tablenum delay(5 。write_com(0x80+0x40 。for(num=0 。 numwrite_date(table1num delay(5 。TMOD=0x0。TH0=(65536-50000/256。 TL0=(65536-50000%256。EA=1。ET0=1。TR0=1。void write_sfm(uchar add,uchar date uchar shi,ge 。 shi=date/

13、10 。 ge=date%10。 write_com(0x80+0x40+add 。 write_date(0x30+shi 。 write_date(0x30+ge 。void keyscan(rd=0。if(s1=0 delay(5 。if(s1=0s1num+。while(!s1 。 if(s1num=1 TR0=0。 write_com(0x80+0x40+10 。 write_com(0x0f 。if(s1num=2write_com(0x80+0x40+7 。if(s1num=3write_com(0x80+0x40+4 。if(s1num=4s1num=0。 write_com(

14、0x0c 。TR0=1。if(s1num!=0if(s2=0 delay(5 。if(s2=0while(!s2 。if(s1num=1miao+。if(miao=60miao=0。write_sfm(10,miao 。 write_com(0x80+0x40+10 。if(s1num=2fen+ 。if(fen=60fen=0 。write_sfm(7,fen 。 write_com(0x80+0x40+7 。if(s1num=3shi+ 。if(shi=24shi=0 。write_sfm(4,shi 。 write_com(0x80+0x40+4 。if(s3=0delay(5 。if(

15、s3=0while(!s3 。 if(s1num=1 miao- 。 if(miao=-1 miao=59。write_sfm(10,miao 。 write_com(0x80+0x40+10 。if(s1num=2fen- 。if(fen=-1 fen=59 。write_sfm(7,fen 。 write_com(0x80+0x40+7 。if(s1num=3shi- 。 if(shi=-1 shi=23 。write_sfm(4,shi 。 write_com(0x80+0x40+4 。void main(init( 。while(1keyscan( 。void timer0( inte

16、rrupt 1TH0=(65536-50000/256。TL0=(65536-50000%256。 count+ 。if(count=18count=0 。 miao+。if(miao=60miao=0。fen+ 。if(fen=60fen=0 。 shi+ 。if(shi=24shi=0 。write_sfm(4,shiwrite_sfm(7,fe n 。 write_sfm(10,miao 。3.2實驗調試實驗過程中出現了很多的問題,經過反復的程序修改和調試,最終完成了本 設計的要求,實現了電子時鐘功能。在電路焊接前,通過protues單片機仿真軟件多次調試和仿真,得出了正確的實驗結果。P

17、rotues仿真圖如圖3.1所示。工1:T.M L12T:=tl :W嗓.6W1 * 陀圧鵝PZ.VAB P2EAn F23W11 P2_4.C 陀環口P2jaAU P貂血音P0137FQZ3EPLUPQ*卩鳥羽PO5P 32PD771nrVAi 口工畑 SACS.7MV?1 LED 1602xrl 1 h- KEV?!F3.1fTaQ.iHQFl-iaWWwIT17圖3.1 protues 仿真圖結論經過兩周的課程設計,不斷的測試與分析,最終完成了電子時鐘的設計與制 作。在實驗的設計及仿真測試時,當沒有得出正確的實驗現象是,必須冷靜、 沉著的思考問題的來源,切勿太過緊張。在電路的焊接過程,須仔細再仔細, 案部分焊接導線,切勿亂了頭緒。這樣才能在電路制作過程中減少許多不必要 的錯誤。本次設計組要是程序設計部分,在程序設計過程中,出現了很多的問 題,經過和組員的多次討論與研究、,并參閱了一些電子資料,解決的很多難 題。此課程設計主要考察了對單片機技術原理及程序設計基礎等知識。理論結合 實踐,使

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論