單片機課程設(shè)計心得_第1頁
單片機課程設(shè)計心得_第2頁
單片機課程設(shè)計心得_第3頁
單片機課程設(shè)計心得_第4頁
單片機課程設(shè)計心得_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

單片機最小系統(tǒng)ORG0000HAJMPMAINORG0030HMAIN:MOVR0,#0FFHMOVR1,#00HLOOP:MOVP2,R1LCALLDELAYINCR1DJNZR0,LOOPSJMPMAINDELAY:MOVR3,#04HLOOP2:MOVR4,#0FFHLOOP1:MOVR5,#0FFHDJNZR5,$DJNZR4,LOOP1DJNZR3,LOOP2RETEND單片機最小系統(tǒng)2、255計數(shù):ORG0000HLJMPMAINORG0030HMAIN:MOVTMOD,#50H;設(shè)置T1工作于工作方式1SETB TR1MOVA,TL1LCALL LOOP;調(diào)用除法程序MOVR1,#60HMOVR6,#00H;顯示子程序PALY:MOVA,R6MOVP2,AMOVA,@R1MOVDPTR,#TABMOVCA,@A+DPTRMOVP0,ALCALLDELAYMOVP0,#0FFH;消除殘影INCR1INCR6CJNER6,#03H,PALYLJMPMAINDELAY:MOVR2,#02H;延時子程序LOOP2:MOVR3,#0FFHDJNZR3,$DJNZR2,LOOP2RETLOOP:MOVB,#64H DIVABMOV60H,AXCHA,BMOVB,#0AHDIVABMOV61H,AMOV62H,BRETTAB:DB0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H255計數(shù)3、50000計數(shù):FIRSTEQU71H;定義個位SECONDEQU72H;定義十位THIRDEQU73H;定義百位FOURTHEQU74H;定義千位FIFTHEQU75H;定義萬位ORG0000H;程序從0地址開始LJMPSTART;跳到STRAT處執(zhí)行ORG0013H;INT1中斷向量LJMPINT_1;跳至INT_1處執(zhí)行ORG0030HSTART:SETBEA;開中斷SETBIT1;負跳變觸發(fā)SETBEX1;外部中斷1允許中斷CLEAR:;初始化顯示0000MOVFIRST,#00HMOVSECOND,#00HMOVTHIRD,#00HMOVFOURTH,#00HMOVFIFTH,#00HSHOW:;顯示子程序;萬位顯示MOVDPTR,#TAB;DPTR指向編碼表位置MOVA,FIFTH;將FIFTH的內(nèi)容復(fù)制到ACCMOVCA,@A+DPTR;根據(jù)ACC的值取出編碼表中的編碼MOVP0,A;由P0口輸出ACC的內(nèi)容MOVA,#00H;選擇第一個數(shù)碼管顯示MOVP2,A;置位P2LCALLDELAY;調(diào)用延時子程序MOVP0,#0FFH;消除殘影;千位顯示MOVDPTR,#TAB;DPTR指向編碼表位置MOVA,FOURTH;將FOURTH的內(nèi)容復(fù)制到ACCMOVCA,@A+DPTR;根據(jù)ACC的值取出編碼表中的編碼MOVP0,A;由P0口輸出ACC的內(nèi)容MOVA,#01H;選擇第二個數(shù)碼管顯示MOVP2,A;置位P2LCALLDELAY;調(diào)用延時子程序MOVP0,#0FFH;消除殘影;百位顯示MOVDPTR,#TAB;DPTR指向編碼表位置MOVA,THIRD;將THIRD的內(nèi)容復(fù)制到ACCMOVCA,@A+DPTR;根據(jù)ACC的值取出編碼表中的編碼MOVP0,A;由P0口輸出ACC的內(nèi)容MOVA,#02H;選擇第三個數(shù)碼管顯示MOVP2,A;置位P2LCALLDELAY;調(diào)用延時子程序MOVP0,#0FFH;消除殘影;十位顯示MOVDPTR,#TAB;DPTR指向編碼表位置MOVA,SECOND;將SECOND的內(nèi)容復(fù)制到ACCMOVCA,@A+DPTR;根據(jù)ACC的值取出編碼表中的編碼MOVP0,A;由P0口輸出ACC的內(nèi)容MOVA,#03H;選擇第四個數(shù)碼管顯示MOVP2,A;置位P2LCALLDELAY;調(diào)用延時子程序MOVP0,#0FFH;消除殘影;個位顯示MOVDPTR,#TAB;DPTR指向編碼表位置MOVA,FIRST;將FIRST的內(nèi)容復(fù)制到ACCMOVCA,@A+DPTR;根據(jù)ACC的值取出編碼表中的編碼MOVP0,A;由P0口輸出ACC的內(nèi)容MOVA,#04H;選擇第五個數(shù)碼管顯示MOVP2,A;置位P2LCALLDELAY;調(diào)用延時子程序MOVP0,#0FFH;消除殘影LJMPSHOW;調(diào)用顯示子程序INT_1:;中斷子程序INCFIRST;FIRST的內(nèi)容加1MOVA,FIRST;將FIRST的內(nèi)容復(fù)制到ACCCJNEA,#0AH,EXIT;如果A不等于10,則跳至EXIT處執(zhí)行MOVFIRST,#00H;將0復(fù)制到FIRSTINCSECOND;將SECOND的內(nèi)容加1MOVA,SECOND;將SECOND的內(nèi)容復(fù)制到ACCCJNEA,#0AH,EXIT;如果A不等于10,則跳至EXIT處執(zhí)行MOVSECOND,#00H;將0復(fù)制到SECONDINCTHIRD;將THIRD的內(nèi)容加1MOVA,THIRD;將THIRD的內(nèi)容復(fù)制到ACCCJNEA,#0AH,EXIT;如果A不等于10,則跳至EXIT處執(zhí)行MOVTHIRD,#00H;將0復(fù)制到THIRDINCFOURTH;將FOURTH的內(nèi)容加1MOVA,FOURTH;將FOURTH的內(nèi)容復(fù)制到ACCCJNEA,#0AH,EXIT;如果A不等于10,則跳至EXIT處執(zhí)行MOVFOURTH,#00H;將0復(fù)制到FOURTHINCFIFTHMOVA,FIFTH;將FIFTH的內(nèi)容復(fù)制到ACCCJNEA,#05H,EXIT;如果A不等于10,則跳至EXIT處執(zhí)行MOVFIFTH,#00H;將0復(fù)制到FIFTHEXIT:;跳出中斷子程序RETI;返回主程序DELAY:;延時子程序MOVR2,#02HLOOP2:MOVR3,#0FFHDJNZR3,$DJNZR2,LOOP2RETTAB:;編碼表DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;編碼50000計數(shù).4、出租車收費系統(tǒng):FIRSTEQU71H;定義個位SECONDEQU72H;定義十位THIRDEQU73H;定義百位FOURTHEQU74H;定義千位FIFTHEQU75H;定義萬位SIXTHEQU76H;定義十萬位ORG0000H;程序從0地址開始LJMPSTART;跳到STRAT處執(zhí)行ORG0013H;INT1中斷向量LJMPINT_1;跳至INT_1處執(zhí)行ORG0030HSTART:SETBEA;開中斷SETBIT1;負跳變觸發(fā)SETBEX1;外部中斷1允許中斷CLEAR:;初始化顯示0000MOVR0,#05H;給R0賦值MOVFIRST,#00HMOVSECOND,#00HMOVTHIRD,#00HMOVFOURTH,#00HMOVFIFTH,#05HMOVSIXTH,#00HSHOW:;顯示子程序;十萬位顯示MOVDPTR,#TAB;DPTR指向編碼表位置MOVA,SIXTH;將SIXTH的內(nèi)容復(fù)制到ACCMOVCA,@A+DPTR;根據(jù)ACC的值取出編碼表中的編碼MOVP0,A;由P0口輸出ACC的內(nèi)容MOVA,#00H;選擇第一個數(shù)碼管顯示MOVP2,A;置位P2LCALLDELAY;調(diào)用延時子程序MOVP0,#0FFH;消除殘影;萬位顯示MOVDPTR,#TAB;DPTR指向編碼表位置MOVA,FIFTH;將FIFTH的內(nèi)容復(fù)制到ACCMOVCA,@A+DPTR;根據(jù)ACC的值取出編碼表中的編碼MOVP0,A;由P0口輸出ACC的內(nèi)容CLRP0.7;使P0.7位為零,讓小數(shù)點位顯示MOVA,#01H;選擇第二個數(shù)碼管顯示MOVP2,A;置位P2LCALLDELAY;調(diào)用延時子程序MOVP0,#0FFH;消除殘影;千位顯示MOVDPTR,#TAB;DPTR指向編碼表位置MOVA,FOURTH;將FOURTH的內(nèi)容復(fù)制到ACCMOVCA,@A+DPTR;根據(jù)ACC的值取出編碼表中的編碼MOVP0,A;由P0口輸出ACC的內(nèi)容MOVA,#02H;選擇第三個數(shù)碼管顯示MOVP2,A;置位P2LCALLDELAY;調(diào)用延時子程序MOVP0,#0FFH;消除殘影;百位顯示MOVDPTR,#TAB;DPTR指向編碼表位置MOVA,THIRD;將THIRD的內(nèi)容復(fù)制到ACCMOVCA,@A+DPTR;根據(jù)ACC的值取出編碼表中的編碼MOVP0,A;由P0口輸出ACC的內(nèi)容MOVA,#03H;選擇第四個數(shù)碼管顯示MOVP2,A;置位P2LCALLDELAY;調(diào)用延時子程序MOVP0,#0FFH;消除殘影;十位顯示MOVDPTR,#TAB;DPTR指向編碼表位置MOVA,SECOND;將SECOND的內(nèi)容復(fù)制到ACCMOVCA,@A+DPTR;根據(jù)ACC的值取出編碼表中的編碼MOVP0,A;由P0口輸出ACC的內(nèi)容CLRP0.7;使P0.7位為零,讓小數(shù)點位顯示MOVA,#04H;選擇第五個數(shù)碼管顯示MOVP2,A;置位P2LCALLDELAY;調(diào)用延時子程序MOVP0,#0FFH;消除殘影;個位顯示MOVDPTR,#TAB;DPTR指向編碼表位置MOVA,FIRST;將FIRST的內(nèi)容復(fù)制到ACCMOVCA,@A+DPTR;根據(jù)ACC的值取出編碼表中的編碼MOVP0,A;由P0口輸出ACC的內(nèi)容MOVA,#05H;選擇第六個數(shù)碼管顯示MOVP2,A;置位P2LCALLDELAY;調(diào)用延時子程序MOVP0,#0FFH;消除殘影LJMPSHOW;調(diào)用顯示子程序INT_1:;中斷子程序DECR0MOVA,R0JZLOOP;判斷中斷次數(shù)是否達到4次LOOP1:MOVA,FIRST;將FIRST的內(nèi)容復(fù)制到ACCADDA,#05H;將ACC的內(nèi)容FIRST和5相加MOVFIRST,A;將ACC的內(nèi)容復(fù)制到FIRSTCJNEA,#0AH,EXIT;如果A不等于10,則跳至EXIT處執(zhí)行MOVFIRST,#00H;將0復(fù)制到FIRSTINCSECOND;將SECOND的內(nèi)容加1MOVA,SECOND;將SECOND的內(nèi)容復(fù)制到ACCCJNEA,#0AH,EXIT;如果A不等于10,則跳至EXIT處執(zhí)行MOVSECOND,#00H;將0復(fù)制到SECONDINCTHIRD;將THIRD的內(nèi)容加1MOVA,THIRD;將THIRD的內(nèi)容復(fù)制到ACCCJNEA,#0AH,EXIT;如果A不等于10,則跳至EXIT處執(zhí)行MOVTHIRD,#00H;將0復(fù)制到THIRDLOOP:MOVR0,#01HMOVA,FOURTH;將FOURTH的內(nèi)容復(fù)制到ACCADDA,#08H;將ACC中的FOURTH和8相加MOVB,#0AHDIVABMOVFOURTH,B;將除法后的余數(shù)B賦給FOURTHCJNEA,#01H,LOOP1;如果A不等于1,則跳至LOOP1處執(zhí)行INCFIFTH;將FIFTH的內(nèi)容加1MOVA,FIFTH;將FOURTH的內(nèi)容復(fù)制到ACCCJNEA,#0AH,LOOP1;如果A不等于10,則跳至LOOP1處執(zhí)行MOVFIFTH,#00H;將0復(fù)制到FIFTHINCSIXTH;將SIXTH的內(nèi)容加1MOVA,SIXTH;將FOURTH的內(nèi)容復(fù)制到ACCCJNEA,#0AH,LOOP1;如果A不等于10,則跳至LOOP1處執(zhí)行MOVSIXTH,#00H;將0復(fù)制到SIXTHEXIT:;跳出中斷子程序RETI;返回主程序DELAY:;延時子程序MOVR2,#02HLOOP2:MOVR3,#0FFHDJNZR3,$DJNZR2,LOOP2RETTAB:;編碼表DB0C0H,0F9H,0A4H,0B

溫馨提示

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

最新文檔

評論

0/150

提交評論