版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1 課題設計任務、功能要求及總體方案1.1 課題設計任務本課程設計選題目為:數字電子鐘。設計一個具有特定功能的電子鐘。1.2 功能要求設計的數字電子鐘上電或按鍵復位后能自動顯示系統(tǒng)提示符“p.”, 進入時鐘準備狀態(tài);第一次按數字電子鐘啟動/調整鍵,數字電子鐘從0時0分0秒開始運行,進入時鐘運行狀態(tài);再次按數字電子鐘啟動/調整鍵,則數字電子鐘進入時鐘調整狀態(tài),并且時間停止不動,此時可分別利用各調整鍵調整時、分、秒,調整結束后可按啟動/調整鍵再次進入時鐘運行狀態(tài)。1.3 設計總體方案介紹及工作原理說明本課程設計采用at89s52單片機設計一個數字電子鐘,通過兩個4位led數碼管顯示時、分、秒,并設
2、有9個按鍵。其中一個用于單片機的復位;一個為啟動/調整鍵;兩個分別為加,減鍵;其他鍵本課題暫不用。電路分為5部分,分別為復位電路、鍵盤電路、時鐘電路、顯示電路和控制電路。復位電路采用按鍵復位方式。鍵盤電路采用獨立式鍵盤。時鐘電路用12mhz的晶振產生時鐘信號。顯示電路采用8個三極管驅動兩個4位led顯示。控制電路采用8位的at89s52單片機作為cpu;原理是:時鐘用t0為時鐘秒加1中斷,時間常數位50ms,每20次加1s,t0用為時間加1中斷,時間常數為50ms,中斷20次時間加1。其設計框圖如圖1.1所示:圖1.1 設計方案框圖2 數字電子鐘硬件系統(tǒng)的設計2.1 硬件系統(tǒng)各模塊功能簡要介紹
3、2.1.1 復位電路復位是單片機的硬件初始化操作。經復位操作后,單片機系統(tǒng)才能開始正常工作。單片機上有復位引腳rst,用于外接復位電路,這里復位電路采用按鍵電平復位。2.1.2 時鐘電路單片機工作所需的同步時鐘信號由以下兩種方法獲得:由單片機片內時鐘電路結合外部晶振、電容產生和直接從單片機外部引入脈沖信號。這里用第一種方法產生時鐘信號。電路用12mhz的石英晶體和二個微調電容(為33pf)連接起來接到單片機的xtal1和xtal2引腳上。2.1.3 鍵盤電路由于按鍵較少,所以此處使用獨立式鍵盤,鍵盤接到單片機的p1口上,當鍵按下時,在其相應的口線上產生低電平信號,鍵松開時仍為高電平信號。 2.
4、1.4 顯示電路本顯示電路采用三極管驅動兩個4位數碼管段位控端;用單片機的p2口控制位控;用單片機的p0口線作段控口,位、段控線上都串入470的限流電阻。 2.2 數字電子鐘原理圖、pcb圖和元器件布局圖2.2.1 原理圖原理圖見附錄a。2.2.2 pcb圖 pcb圖見附錄b。2.2.3 元器件布局圖 元器件布局圖見附錄c。2.3 數字電子鐘元器件清單 本課程設計元器件清單如表2.1所示:表2.1 數字電子鐘元器件清單名稱型號數量備注單片機at89s521塊含插座,雙列直插式三極管90129個電阻47024個電阻1k 3個電阻4.7k 1個上拉排阻10k2片數碼管4位一體2塊含兩個插座電容33
5、pf2個電解電容22f1個下載線接口1個雙列10針電源線接口1個開關1二極管9個溫度傳感器18b201個蜂鳴器1個插針38個電阻2001個晶振12mhz1個按鍵9個3 數字電子鐘軟件系統(tǒng)的設計3.1 數字電子鐘使用單片機資源情況在電子鐘的編程過程中,單片機資源使用情況如下:寄存器:通用寄存器的r0r7;位地址:23h(用于保存啟動/調整鍵盤當前的狀態(tài));io口線:p0口(作數碼管的段控口),p2口(作數碼管的位控口),p1口(作鍵盤接口);堆棧棧底單元地址:60h;定時器:定時器0;顯示緩沖單元:78h7fh;秒分時對應儲存單元:72h77h生成鍵碼出口地址:20h。3.2 數字電子鐘軟件系統(tǒng)
6、各模塊功能簡要介紹3.2.1 顯示模塊此處將顯示程序編成一個子程序,要顯示時調用顯示子程序即可,顯示程序中顯示的是緩沖區(qū)中的內容再調數據表格中顯示代碼,程序中只要將要顯示的內容在數據表中的位置送往顯示緩沖區(qū)即可,就可以顯示你所需要顯示的內容。3.2.2 中斷服務程序模塊本程序中用了一個定時器中斷,所以有中斷服務程序,是為了使秒自加而使用定時器中斷,定時50ms循環(huán)20次到一秒以后,向cpu申請中斷,使秒自加1。3.2.3 鍵盤模塊運用直接判斷io口線的方法編成鍵盤掃描程序,來完成用鍵盤監(jiān)控程序的功能,總共用了四個鍵,其具體的功能上面已經敘述過,這里不再贅述,使用鍵盤能夠很準確的、快速的監(jiān)控系統(tǒng)
7、。3.3 數字電子鐘軟件系統(tǒng)程序流程框圖3.3.1 主程序流程框圖 主程序員流程框圖如圖3.1所示:圖3.1 主程序流程圖3.3.2 中斷服務程序流程框圖中斷服務程序流程圖如圖3.2所示:圖3.2 中斷服務程序流程圖3.3.3 加1子程序流程框圖加1子程序流程框圖如圖3.3所示:圖3.3 加1子程序流程圖3.3.4 減1子程序流程框圖加1子程序流程框圖如圖3.4所示: 圖3.4 減1子程序流程圖3.3.5 鍵掃子程序流程圖框圖鍵掃子程序流程圖框圖如圖3.5 圖3.5 鍵掃子程序流程圖3.3.6 顯示子程序流程圖框圖顯示子程序流程圖框圖如圖3.6圖3.6 顯示子程序流程圖3.4 數字電子鐘軟件系
8、統(tǒng)程序清單程序清單詳見附錄d4 仿真與誤差分析4.1 數字電子鐘的設計結論及使用說明本課程設計的目的是設計一個電子鐘,通過原理圖的繪制,pcb板的制作,最終做出的實物是成功的,能夠達到預期的目的,以下本次所作電子鐘的具體的使用說明:電子鐘上電后,最高位顯示p.,按下啟動/調整鍵,電子鐘從0時0分0秒開始自動運行,再次按下啟動/調整鍵,電子鐘運行停止,處于調整狀態(tài),按下加減鍵,可以實現時、分、秒加鍵1,這樣可以實現時、分、秒的累加調整,再次按下啟動/調整鍵,電子鐘自動運行起來,處于運行狀態(tài),調整結束。4.2 設計課題的仿真結果如圖4.1、4.2所示:圖4.1 顯示p.仿真結果圖4.2 運行仿真結
9、果4.3 設計課題的誤差分析本課程設計存在一定誤差,引起誤差原因主要是程序中定時后很多指令引起的時間誤差。經過測試10小時,時鐘慢25秒,則每秒鐘慢2.5/3600=0.6944ms,50ms中斷一次,20次中斷為1秒,因此每次中斷比標準慢0.6944/20=0.03472ms.th0tl0=65536-(50-0.03472)*1000/1=15570=3cd2h。將原來中斷初值th0tl0=3cb0h改為th0tl0=3cd2h。4.4 數字電子鐘設計體會本次做課程設計,從硬件方面說,我認為本次設計的重點在于單片機的最小系統(tǒng),若單片機的最小系統(tǒng)不能正常工作,那后面一切都免談;從軟件方面說,
10、我編程的思路就是從簡單到難,一步一步實現各個功能。這個電子鐘的程序重點在于調整鍵功能程序和中斷服務程序的編寫,這兩個小模塊編好了,就很容易了。在做課程設計的過程中,學到很多東西,比如說做pcb板的技術有了很大的提高,再比如說,自己通過編電子鐘的程序,使自己對匯編指令的應用越來越熟練,編程的能力也有了較大提高。在制作電子鐘的過程中,遇到的問題都能嘗試去自己解決,比如說調試程序,檢查線路等等,使自己發(fā)現問題、解決問題的能力大大提高。4.5 教學建議 通過一個學期的單片機課,我生生的體會到了什么叫名師;誠然,王老師總說自己不是名師,但我們真的得尊稱你為名師。 在這里我只是覺得我們的動手能力還是太差了
11、,還得增加實踐的動手!讓我們多做幾塊板子,即使我們心有不情愿,還需老師一如既往的加壓!參考文獻 1 李廣第,朱月秀,冷祖祁.單片機基礎m.第三版.北京:航空航天大學出版社,2007.18-152 li guangdi,zhu yuexiu,leng zuqi.scmcbasism.the third edition.beijing: aerospace university press,2007.18-152 2 邱麗芳,彭志剛,胡漢輝.單片機原理與應用 .第二版.北京:人民郵電出版社,2009.7-259 qiu lifang,peng zhigang,hu hanhui.single-ch
12、ip microcomputer principle and application. the second edition. beijing: beijing peoples telephone and postal press ,2009.7-259致 謝在本課程設計進行過程中得到王韌老師的悉心指導,還有很多同學的幫助。王老師嚴謹求實的治學態(tài)度,踏實堅韌的工作精神,將使我終生受益。在此,謹向老師和幫助我的同學致以誠摯的謝意和崇高的敬意。 附 錄 a原理圖附 錄 bpcb頂層圖pcb底層圖 附 錄 c 元器件布局圖附 錄 d程序清單:;*;項目名稱:數字電子鐘;設計者:譚育奇;設計日期:20
13、10年12月29日;*;堆棧棧底60h;*;led數碼管顯示器設定;p0.7-p0.0段控線,接led的顯示段dp,g,f,e,d,c,b,a;p2.7-p2.0位控線,從左至右(led7,led6,led5,led4,led3,led2,led1,led0);顯示緩沖區(qū)設定從左至右依次為7fh,7eh,7dh,7ch,7bh,7ah,79h,78h(led4,led5,led6,led7,led0,led1,led2,led3);時十位,時個位,分十位,分個位,秒十位,秒個位對應的儲存單元是(77h,76h,75h,74h,73h,72h);鍵值放在20h單元;*;獨立式鍵盤設定;8個按鍵s
14、2至s9分別依次接在p1.0至p1.7口線;s2鍵為啟動/調整;s4、s5為加、減鍵 ;* ;子程序;disp(數碼管顯示子程序);key(鍵掃子程序);dl(1毫秒延時子程序,晶振頻率12mhz);take(更新緩沖區(qū)子程序);*;常數表格;tab(共陽數碼管字型代碼表);tab1(位控序號表);disbh(系統(tǒng)提示符p.字型代碼序號表);*;時分秒的十位和個位分別偽定義 secge equ 72h secshi equ 73h fenge equ 74h fenshi equ 75h shige equ 76h shishi equ 77h;*;鍵值偽定義 s2b bit 20h.0 s3
15、b bit 20h.1 s4b bit 20h.2 s5b bit 20h.3 s6b bit 20h.4 s7b bit 20h.5 s8b bit 20h.6 s9b bit 20h.7;*;主程序org 0000h start: ljmp main ;主程序入口地址 org 000bh ljmp tc0 org 0030h main: mov sp, #60h ;堆棧初始化;*;定時器初始化 mov tmod ,#11h mov th0 ,#3ch mov tl0 ,#0b0h mov ie ,#8ah ;允許定時器0中斷;* mov psw ,#00h ;psw初始化 mov r0 ,
16、#20h ;ram區(qū)首地址 mov r7 ,#5fh ;ram區(qū)單元個數 ml: mov r0 ,#00h ;ram初始化 inc r0 djnz r7 ,ml clr 23h.0 ;停止是否按下判斷位 clr 23h.1 clr 23h.2 ;調整鍵按下判斷位 clr 23h.3 ;啟動停止判斷位 push psw ;改變當期寄存器為2組 setb rs1 clr rs0 mov r1 ,#200 mov r5 ,#20 ;設定中斷服務程序循環(huán)次數 mov r6 ,#0 ;判調整鍵按下的次數 mov r7 ,#25 ;按鍵是若不松開調顯示的次數 pop psw tsf: mov dptr ,
17、#disbh ;系統(tǒng)初始化后提示符“p.”字符代碼表首地址 mov r1 ,#00h mov r5 ,#08h mov r0 ,#78hdisptsf: mov a ,r1 movc a ,a+dptr mov r0 ,a inc r0 inc r1 djnz r5 ,disptsf ;調顯示子程序顯示提示符“p.” tt: lcall disp lcall key mov a ,20h jz tt;*;鍵判斷程序 jb s2b ,s22 jb s4b ,s44 jb s5b ,s55 jb s3b ,s3 jb s6b ,s6 jb s7b ,s7 jb s8b ,s8 jb s9b ,s9
18、 ljmp tt;*;鍵功能程序s22: ljmp s2s44: ljmp s4 s55: ljmp s5 s3: nop ljmp tt s6: nop ljmp tt s7: nop ljmp tt s8: nop ljmp tt s9: nop ljmp tt;啟動停止鍵功能程序 s2: push psw ;改變通用寄存器組為2組 setb rs1 clr rs0 jb 23h.0 ,szt jb 23h.4 ,s2tz ;23h.4為0執(zhí)行啟動程序,否則轉向停止程序 setb 23h.4 setb tr0 clr 23h.2 jb 23h.1 ,s2d1 ;23h.1為1轉向啟動程序結
19、束 setb 23h.1 ;第一次啟動電子鐘,標志位置1 mov secshi ,#0 mov secge ,#0 mov fenshi ,#0 mov fenge ,#0 mov shishi ,#0 mov shige ,#0 s2d1: lcall key ;判鍵是否松開 jb s2b ,s2d1 ljmp ss2 s2tz: clr tr0 ;停止程序 setb 23h.0 clr 23h.4 s2d2: lcall key ;判鍵是否松開 jb s2b ,s2d2 ljmp ss2 szt: jnb 23h.0 ,ss2 ;判停止鍵是否按下,沒有按下轉向結束程序 lcall dl s
20、etb 23h.2 ;調整鍵按下,置1 cjne r6 ,#00h ,s2s ;是第一次按下調整鍵嗎 inc r6 ;調整鍵的次數加1 s2s1: lcall key jb s2b ,s2s1 ljmp ss2 s2s: cjne r6 ,#01h ,s2f ;是第二次按下調整鍵嗎 inc r6 ;調整鍵次數加1 s2s2: lcall key jb s2b ,s2s2 ljmp ss2 s2f: mov r6 ,#00h ;第三次按下調整鍵,把按下調整鍵的次數置0 s2s3: lcall key jb s2b ,s2s3 ss2: lcall take pop psw ljmp tt;*;加
21、1鍵功能程序 s4: push psw ;改變通用寄存器為2組 setb rs1 clr rs0 jnb 23h.2 ,s3g ;判調整鍵是否按下 cjne r6 ,#01h ,s3f ;停止鍵按下的次數是1次嗎? lcall take3 ;時加1 cjne r2 ,#24h ,s3d1 ;24小時到了嗎 mov shishi ,#00h mov shige ,#00h s3d1: lcall disp ;延時0.2秒 djnz r7 ,s3d1 mov r7 ,#25 ljmp s3g s3f: cjne r6 ,#02h ,s3m ;停止鍵按下的次數是2次嗎? lcall take2 ;分
22、加1 cjne r3 ,#60h ,s3d2 ;60分到了嗎 mov fenshi ,#00h mov fenge ,#00h s3d2: lcall disp ;延時0.2秒 djnz r7 ,s3d2 mov r7 ,#25 ljmp s3g s3m: lcall take1 ;秒加1 cjne r4 ,#60h ,s3d3 ;60秒到了嗎 mov secshi ,#00h mov secge ,#00h s3d3: lcall disp ;延時0.2秒 djnz r7 ,s3d3 mov r7 ,#25 s3g: lcall take pop psw ljmp tt;*;減1鍵功能程序
23、s5: push psw setb rs1 clr rs0 jnb 23h.2 ,s4g cjne r6 ,#01h ,s4f ;停止鍵按下的次數是1次嗎 s4dy: lcall take7 ;時減1 s4d1: lcall disp ;延時0.2秒 djnz r7 ,s4d1 mov r7 ,#25 ljmp s4g s4f: cjne r6 ,#02h ,s4m ;停止鍵按下的次數是2次嗎 lcall take6 ;分減1 s4d2: lcall disp djnz r7 ,s4d2 mov r7 ,#25 ljmp s4g s4m: cjne r6 ,#00h ,s4g ;停止鍵按下的次
24、數是3次嗎 lcall take5 ;秒減1 s4d3: lcall disp djnz r7 ,s4d3 mov r7 ,#25 s4g: lcall take pop psw ljmp tt ;*;常數表格區(qū);系統(tǒng)初始化后提示符“p.”字符代碼表 disbh: db 11h,10h,10h,10h,10h,10h,10h,10h ;顯示字符段選碼表(共陽極代碼) tab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h db 90h, 0ffh,0ch,0bfh tab1: db 0efh,0dfh,0bfh,07fh,0feh,0fdh,0fbh,
25、0f7h;*;延時1毫秒子程序 dl: mov r7 ,#02h dl1: mov r6 ,#0ffh dl2: djnz r6 ,dl2 djnz r7 ,dl1 ret;*;顯示子程序;入口:78h,79h,7ah,7bh,7ch,7dh,7eh,7fh disp: push dph push dpl push acc push psw clr rs1 ;改變當前寄存器組為組1 setb rs0 mov r7 ,#08h mov r1 ,#78h ;顯示緩沖存儲單元首地址 mov r0 ,#00h ;從左至右顯示 disp1: mov a ,r1 mov dptr ,#tab movc a
26、 ,a+dptr mov p0 ,a ;送段控 mov a ,r0 mov dptr ,#tab1 movc a ,a+dptr mov p2 ,a ;送位控 lcall dl ;延時1毫秒 djnz r7 ,disp2 inc r1 inc r0 ljmp disp1 disp2: pop psw ;恢復當前寄存器組的組號 pop acc pop dpl pop dph ret;*;8個按鍵s2至s9分別依次接在p1.0至p1.7口線;鍵掃子程序key;出口:b,20h key: lcall keychuli ;調鍵處理子程序 jz exit lcall disp ;去抖動 lcall di
27、sp lcall keychuli ;調鍵處理子程序 jz exit ; mov b ,20h ;保存鍵值 keysf: lcall keychuli ;調鍵處理子程序 jz key1 ;按鍵釋放,準備退出key子程序 lcall disp key1: mov 20h ,b ;恢復鍵值 exit: ret;鍵處理子程序keychuli;出口:a,20hkeychuli: mov p1 ,#0ffh ;先向p1口寫1 mov a ,p1 cpl a anl a ,#04h mov 20h ,a ;保存取反后的鍵值 ret;*;更新緩沖區(qū)子程序 take: mov 78h ,shishi mov
28、79h ,shige mov 7ah ,#12h mov 7bh ,fenshi mov 7ch ,fenge mov 7dh ,#12h mov 7eh ,secshi mov 7fh ,secge ret;*;數字處理子程序 take1: push psw ;秒加1子程序 setb rs1 ;改變當期寄存器為2組 clr rs0 mov a ,secshi swap a mov r4 ,a mov a ,secge orl a ,r4 add a ,#01h da a mov r4 ,a swap a anl a ,#0fh mov secshi ,a mov a ,r4 anl a ,#
29、0fh mov secge ,a pop psw ret take2: push psw ;分加1子程序 setb rs1 clr rs0 mov a ,fenshi swap a mov r3 ,a mov a ,fenge orl a ,r3 add a ,#01h da a mov r3 ,a swap a anl a ,#0fh mov fenshi ,a mov a , r3 anl a ,#0fh mov fenge ,a pop psw ret take3: push psw ;時加1子程序 setb rs1 clr rs0 mov a ,shishi swap a mov r2 ,a mov a ,shige orl a ,r2 add a ,#01h da a mov r2 ,a swap a anl a ,#0fh mov shishi ,a mov a ,r2 anl a ,#0fh mov shige ,a pop psw ret take5: push psw ;秒減1程序 setb rs1 clr rs1 mov a ,secshi swap a mov r4
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)學院大學課件--心電圖檢查
- 服裝生產管理與成本核算的關系(企業(yè)培訓課件)
- 高檔會所裝修承攬合同三篇
- 美術作品創(chuàng)作競賽安排計劃
- 醫(yī)學統(tǒng)計學的基本內容課件
- 高新技術創(chuàng)業(yè)貸款協議三篇
- 函數與方程課件
- 【培訓課件】綠城奢侈品培訓-香水
- 銀行理財借款合同三篇
- 外出活動班主任的戶外拓展計劃
- 部編版(2024版)七年級地理上冊第六章《跨學科主題學習-探索外來食料作物傳播史》教學課件
- 【供應鏈管理相關理論和文獻綜述6200字】
- 分子生物學習題答案
- 中國人民解放軍空成立紀念日課件模板
- 2024年醫(yī)院會計制度崗位職責(二篇)
- 吉林市2024-2025學年度高三第一次模擬測試 (一模)英語試卷(含答案解析)
- 2024-2030年中國美妝工具市場應用趨勢分析與前景銷售格局研究報告
- 天津市一中2024-2025學年高三第二次模擬生物試題含解析
- 2024年個人家庭房屋裝修合同標準版本(四篇)
- 工商企業(yè)管理畢業(yè)論文范文(4篇)
- 2024年短劇出海白皮書-meta-202409
評論
0/150
提交評論