基于89C51單片機的秒表課程設計_第1頁
基于89C51單片機的秒表課程設計_第2頁
基于89C51單片機的秒表課程設計_第3頁
基于89C51單片機的秒表課程設計_第4頁
基于89C51單片機的秒表課程設計_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

MCS-51系列單片機是8位單片機產品,89C51是其中的典型代表,基本模塊包括以下幾個部分:(1)CPU:89C51的CPU是8位的,另外89C51內部有1個位處理器;(2)R0M:4KB的片內程序存儲器,存放開發調試完成的應用程序;(3)RAM:256B的片內數據存儲器,容量小,但作用大;(4)I/O口:P0-P3,共4個口32條雙向且可位尋址的I/O口線;(5)中斷系統:共5個中斷源,3個內部中斷,2個外部中斷;(6)定時器/計數器:2個16位的可編程定時器/計數器;(7)通用串行口:全雙工通用異步接收器/發送器;(8)振蕩器:89C51的外接晶振與內部時鐘振蕩器為CPU提供時鐘信號;(9)總線控制:89C51對外提供若干控制總線,便于系統擴展。89C51單片機內部的振蕩電路是一個高增益反相放大器,引線XTAL1和XTAL2分別為反相振蕩放大器的輸入及內部時鐘工作電路的輸入和來自反相振蕩器的輸出,該反相放大器可以配置為片內振蕩器。采用上電復位,上電后,由于電容充電,使RST持續一段時間的高電平,從而實現上電復位操作。采用3個LED數碼管,LED是七段顯示器,內部有7個條形發光二極管和1個小圓點發光二極管,根據各管的亮暗組成字符。用Proteus軟件畫出主電路圖見附錄一。ORG0000H;程序開始AJMPSTART;跳轉到主程序STARTORG000BH;定時器0中斷的地址入口AJMPTIME0;定時器0溢出,跳轉到中斷程序TIME0START:;主程序MOVP3,#0FFH;輸入端口P3全寫1MOVP0,#3FH;MOVP1,#3FH;MOVP2,#0BFH;數碼管初始化MOV30H,#00H;MOVR0,#00H;MOVR1,#0AH;MOVR2,#00H;工作寄存器初始化MOVTMOD,#01H;定時器0工作于方式1MOVTH0,#0D8H;MOVTL0,#0FEH;定時器0預置數(D8FEH=55550D)SETBEA;開總中斷允許SETBET0;開定時器0中斷允許READ:;讀鍵程序L1:JBP3.2,L2;LCALLDELAY;按鍵延時防抖JBP3.2,L1;AJMPRUN;確認計時鍵被按下,開始/繼續計時L2:JBP3.3,L3;LCALLDELAY;按鍵延時防抖JBP3.3,L2;AJMPPAUSE;確認暫停鍵被按下,暫停計時L3:JBP3.4,L1;LCALLDELAY;按鍵延時防抖JBP3.4,L3;AJMPSTOP;確認清零鍵被按下,秒表重置RUN:;計時鍵按下,跳轉至此SETBTR0;定時器0開始/繼續運行AJMPREAD;PAUSE:;暫停鍵按下,跳轉至此CLRTR0;AJMPREAD;TIME0:;定時器0溢出,中斷,跳轉至此INC30H;MOVA,30H;CJNEA,#0AH,TIME1;30H單元中的值到10了嗎?(計時到10毫秒了嗎,也就是說,該向毫秒位送數了嗎?)MOVDPTR,#TAB;30H中的值到10了,順序執行MOVA,R0;INCR0;CJNER0,#0AH,GET;R0中的值到10了嗎?(該向秒位進位了嗎?)MOVR0,#00H;LCALLSECOND;到了,R0清零,調用進位子程序SECOND,向秒位進位GET:;沒到,跳過進位子程序MOVCA,@A+DPTR;MOVP1,A;查表并向數碼管毫秒位送數MOV30H,#00H;重置30H單元TIME1:;MOVTH0,#0D8H;MOVTL0,#0FEH;給定時器0重新預置數RETI;中斷返回SECOND:;秒位進位子程序PUSHACC;PUSHPSW;將ACC和PSW推入堆棧保護MOVA,R1;INCR1;CJNER1,#14H,GET1;R1中的值到20了嗎,也就是說,該向十秒位進位了嗎?MOVR1,#0AH;LCALLSECOND1;到了。R1重置,調用進位子程序SECOND1,向十秒位進位GET1:;沒到,跳過進位子程序MOVCA,@A+DPTR;MOVP2,A;查表并向數碼管秒位送數POPPSW;POPACC;PSW,ACC出棧RET;子程序返回SECOND1:;十秒位進位子程序PUSHACC;PUSHPSW;將ACC和PSW推入堆棧保護MOVA,R2;INCR2;CJNER2,#0AH,GET2;R2中的值到10了嗎,也就是說,該將此位歸零了嗎?MOVR2,#00H;到了,R2清零GET2:;沒到,跳過清零程序MOVCA,@A+DPTR;MOVP0,A;查表并向數碼管十秒位送數POPPSW;POPACC;PSW,ACC出棧RET;子程序返回STOP:;清零鍵按下,跳轉至此MOVP3,#0FFH;MOVP0,#3FH;MOVP1,#3FH;MOVP2,#0BFH;數碼管清零MOV30H,#00H;MOVR0,#00H;MOVR1,#0AH;MOVR2,#00H;工作寄存器初始化CLRTR0;計時器0停止計時MOVTH0,#0D8H;MOVTL0,#0FEH;定時器0預置數AJMPREAD;DELAY:;延時10ms子程序MOVR3,#50D;D1:MOVR4,#100D;D2:DJNZR4,D2;DJNZR3,

溫馨提示

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

評論

0/150

提交評論