單片機計算器課程設計報告_第1頁
單片機計算器課程設計報告_第2頁
單片機計算器課程設計報告_第3頁
單片機計算器課程設計報告_第4頁
單片機計算器課程設計報告_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機課程設計課題名稱:單片機簡易計算器課程設計姓名:XXXX學號:XXXXXX年級專業(yè)班級:XXXXXXX學院:XXXX設計時間:XXXXXXX設計地點:XXXXXX指導老師:目錄TOC\o"1-5"\h\z\o"CurrentDocument"一、單片機課程設計實習目的21、增進對單片機的感性認識,加深對單片機理論方面的理解;22、掌握單片機的內部功能模塊的應用,如定時器/計數(shù)器、中斷、存貯器、I/O口等;23、了解和掌握單片機應用系統(tǒng)的軟硬件設計過程及實現(xiàn)方法。2\o"CurrentDocument"二、實習課題任務21、課題:簡易計算器的設計22、設計基本要求:2利用單片機試驗箱的鍵盤模塊以及顯示模塊實現(xiàn)百位以內加減乘除。2任選一種顯示方式:即中文液晶顯示屏、LED數(shù)碼管可任選一種。2\o"CurrentDocument"3、功能實現(xiàn):2\o"CurrentDocument"4、設計任務2\o"CurrentDocument"5、設計思路2\o"CurrentDocument"三、系統(tǒng)分析4\o"CurrentDocument"四、硬件系統(tǒng)設計5\o"CurrentDocument"1、鍵盤接口電路5\o"CurrentDocument"2、數(shù)碼管顯示電路6\o"CurrentDocument"五、軟件系統(tǒng)設計6\o"CurrentDocument"六、調試結果710以內計算器7100以內計算器7\o"CurrentDocument"七、結論8\o"CurrentDocument"八、體會與收獲8九、附件(程序):91、程序一:只能進行兩位數(shù)與兩位數(shù)格式的四則運算9\o"CurrentDocument"2、程序二:能進行百位以內的四則運算,但一位與兩位數(shù)運算結果調試不對18一、單片機課程設計實習目的1、增進對單片機的感性認識,加深對單片機理論方面的理解;2、掌握單片機的內部功能模塊的應用,如定時器/計數(shù)器、中斷、存貯器、I/O口等;3、了解和掌握單片機應用系統(tǒng)的軟硬件設計過程及實現(xiàn)方法。二、實習課題任務1、課題:簡易計算器的設計2、設計基本要求:利用單片機試驗箱的鍵盤模塊以及顯示模塊實現(xiàn)百位以內加減乘除。任選一種顯示方式:即中文液晶顯示屏、LED數(shù)碼管可任選一種。3、功能實現(xiàn):計算器將完成的功能有兩位數(shù)以內加、減、乘、除功能,并通過LED數(shù)碼管顯示輸入值及結果。4、設計任務擴展4*4鍵盤,其中10個數(shù)字,5個功能鍵,1個清零使用五位數(shù)碼管接口電路完成十進制的四則運算(加、減、乘、除);實現(xiàn)低于三位小于255數(shù)字的連續(xù)運算;使用keilC軟件編寫程序;最后用ptoteus仿真;具有較強的抗干擾能力;體積小、功耗低,便于嵌入其他系統(tǒng)。2/295、設計思路1)、了解鍵盤、顯示電路的編程方法2)、了解鍵盤電路工作原理及編程方法3)、調試鍵盤掃描顯示程序,進一步熟悉鍵盤工作原理利用EL-8051-III型單片機實驗箱上提供的8279,鍵盤電路,數(shù)碼顯示電路,組成一個鍵盤分析電路,編寫程序,要求在鍵盤上按動一個鍵,就將8279對此鍵掃描的掃描碼顯示在數(shù)碼管上。4)、設計總體流程圖,分模塊編寫程序5)鍵盤掃描流程圖:三、系統(tǒng)分析按照系統(tǒng)設計的功能的要求,初步確定設計系統(tǒng)由主控模塊、顯示模塊、鍵掃描接口電路共三個模塊組成,電路系統(tǒng)構成框圖如圖1.1所示。主控芯片使用89S51/52單片機,比80C51速度更快,功能更強,由先進工藝制造,并帶有非

易失性Flash程序存儲器。它是一種高性能、低功耗的8位COMS微處理芯片,市場應用最多。鍵盤電路采用4*4矩陣鍵盤電路。顯示模塊采用4枚共陽極數(shù)碼管和74ls273鎖存芯片構成等器件構成。四、硬件系統(tǒng)設計單片機最小系統(tǒng)就是支持主芯片正常工作的最小電路部分,包括主控芯片、復位電路和晶振電路。主控芯片選取74LS164芯片,因其具有良好的性能及穩(wěn)定性,價格便宜應用方便。晶振選取11.0592MHz,晶振旁電容選取22pF。采用按鍵復位電路,電阻分別選取560Q和10K,電容選取10UF。1、鍵盤接口電路計算器所需按鍵有:數(shù)字鍵:“0”“1”“2”“3”“4”“5”“6”“7”“8”“9”功能鍵:“A(+)”“B(一)”“C(*)”“D(/)”“E(=)”鍵盤共計15個按鍵,其中15個按鍵采用到,采用4*4矩陣鍵盤,鍵盤的行和列之間都有公共端相連,四行和四列的8個公共端分別接P1.0?P1.7,這樣掃描P1口就可以完成對矩陣鍵盤的掃描,通過對16個按鍵進行編碼,從而得到鍵盤的口地址,對比P1口的掃描結果和各按鍵的地址,我們就可以得到是哪個鍵按下,從而完成鍵盤掃描的功能。

2、數(shù)碼管顯示電路采用6位數(shù)碼管對計算數(shù)據(jù)和結果的顯示,這里選取共陽數(shù)碼管,利用NPN三極管對數(shù)碼管進行驅動,為了節(jié)省I/O資源,采取動態(tài)顯示的方法來顯示計算數(shù)據(jù)及結果,動態(tài)掃描。為了實現(xiàn)數(shù)碼管的動態(tài)顯示,P2口輸出顯示值,通過P2口的二進制代碼送到數(shù)碼管進行顯示。P3.0?P3.5用來作為位選端,控制哪幾位數(shù)碼管進行顯示。比如當P3.2為高電平時,其他位全給0,具體的在軟件中會有說明。此時就將掃描的數(shù)據(jù)送給指定數(shù)碼管顯示。五、軟件系統(tǒng)設計1、判斷第三輸入(R3)的運算符號。2、計算R1*10+R2,并儲存在R2中。3、計算R4*10+R5,并存儲在R4中。4、根據(jù)R3的運算符號,計算R2與R4之間的加、減、乘或除運

算。5、運算結果通過數(shù)碼管前三位顯示出來。(具體程序于附件中)六、調試結果1)10以內計算器加法:實現(xiàn)10以內任意兩數(shù)相加,例如02+03=5,結果顯示在顯示器后三位。減法:實現(xiàn)10以內任意兩數(shù)相減,如:06-03=3,結果顯示在顯示器后三位。乘法:實現(xiàn)10以內任意兩數(shù)相乘,例如:03*05=15,結果顯示在顯示器后三位。除法:實現(xiàn)10以內任意兩數(shù)相除,例如:06/02=3,結果顯示在顯示器后三位。2)100以內計算器加法:實現(xiàn)100以內任意兩數(shù)相加,如口:11+34=45,結果顯示在顯示器后三位。減法:實現(xiàn)100以內任意兩數(shù)相減,如:50-25=25,結果顯示在顯示器后三位。乘法:實現(xiàn)100以內任意兩數(shù)相乘,如:20*10=200,結果顯示在顯示器后三位。(結果小于256)。

除法:實現(xiàn)100以內任意兩數(shù)相除,如:50/25=2,結果顯示在顯示器后三位。七、結論完成硬件和軟件的設計和制作后,進行系統(tǒng)的調試,并處理不斷出現(xiàn)的問題。對于計算器的性能,主要的衡量指標就在于計算的精度,本次制作的計算器性能情況如下:10以內計數(shù)器可以實現(xiàn)10以內任意兩個數(shù)的加法、減法、乘法、除法運算。100以內計數(shù)器可以實現(xiàn)100以內任意兩個數(shù)的加法、減法、乘法、除法運算八、體會與收獲通過這次課程設計,我們最大的一點體會是單片機學的不夠扎實,不會的很多,當然這次的課程設計做計算器程序用的是匯編語言,不是上學期學過的c語言,所以很難適應。一開始真的很著急,毫無頭緒,后來找了很多資料,也參考了同學的程序,其中每一個子程序

模塊都認真去讀,去分析,化為己用,最重要的按鍵掃描和顯示程序,還有包括加減乘除的運算程序。盡管大家都知道匯編編這個程序也很困難,但還是互相學習,到處找資料看,問同學,所以我們組的軟件主程序才能編譯成功,系統(tǒng)才能調試出結果。很感謝那些熱心教導我們的同學和指導我們的老師。老師的專心教導,是我們值得一生典藏的記憶。這次課程設計讓我們互相分工、協(xié)調工作的能力得到了提高,更加重要的是我們增進了對單片機的了解,也更深入地運用了匯編語言,學到了很多課本上學不到的知識,大大提高了使用單片機的能力!九、附件(程序):總共按兩種思路編寫了兩種程序,盡管最終都沒達到較好的要求,但總的來說,通過編程,的確學到了很多知識,熟悉了匯編語言,從一開始不知如何下手,到逐漸領會到編寫要領1、程序一:只能進行兩位數(shù)與兩位數(shù)格式的四則運算CSEGAT0000HLJMPSTARTCSEGAT4100HSTART:MOVDPTR,#00CFE9H;8279命令字MOVA,#0D1H;清顯示MOVX@DPTR,ALOOP1:MOVXA,@DPTRMOVA,#0A0HMOVX@DPTR,AMOVA,#40HMOVX@DPTR,AMOVDPTR,#0CFE8HMOVXA,@DPTRMOVR1,AMOVDPTR,#0CFE9H

;顯示'消隱命令;讀FIFO命令;讀鍵值;保存鍵值加個F;寫顯示RAM命令MOVA,#80H;選中LED1MOVX@DPTR,AMOVA,R1ANLA,#0FH;取后半字節(jié)MOVDPTR,#TABMOVCA,@A+DPTR;取段顯碼MOVDPTR,#0CFE8H;寫顯示RAMMOVX@DPTR,AMOVDPTR,#0CFE9H;寫顯示RAM命令LOOP2:MOVXA,@DPTRANLA,#0FHJZLOOP2MOVA,#0A0HMOVX@DPTR,AMOVA,#40HMOVX@DPTR,A

;輸入顯示符號;有鍵按下?沒有則循環(huán)等待;顯示'消隱命令;讀FIFO命令MOVDPTR,#0CFE8H;讀鍵值MOVXA,@DPTRMOVR2,A;保存鍵值MOVDPTR,#0CFE9H;寫顯示RAM命令LOOP3:LOOP4:MOVA,R2ANLA,#0FHMOVDPTR,#TABMOVCA,@A+DPTRMOVDPTR,#0CFE8HMOVX@DPTR,AMOVDPTR,#0CFE9HMOVXA,@DPTRANLA,#0FHJZLOOP3MOVA,#0A0HMOVX@DPTR,AMOVA,#40HMOVX@DPTR,AMOVDPTR,#0CFE8HMOVXA,@DPTRMOVR3,AMOVDPTR,#0CFE9HMOVA,#82HMOVX@DPTR,AMOVA,R3ANLA,#0FHMOVDPTR,#TABMOVCA,@A+DPTRMOVDPTR,#0CFE8HMOVX@DPTR,AMOVDPTR,#0CFE9HMOVXA,@DPTR;取后半字節(jié);取段顯碼;寫顯示RAM;寫顯示RAM命令;第二個數(shù);有鍵按下?沒有則循環(huán)等待;顯示'消隱命令;讀FIFO命令;讀鍵值;保存鍵值;寫顯示RAM命令;選中LED3;取后半字節(jié);取段顯碼;寫顯示RAM;寫顯示RAM命令MOVA,#0A0HMOVX@DPTR,AMOVA,#40HMOVX@DPTR,AMOVDPTR,#0CFE8HMOVXA,@DPTRMOVR4,AMOVDPTR,#0CFE9H;顯示'消隱命令;讀FIFO命令;讀鍵值;保存鍵值;寫顯示RAM命令;選中LED4;取后半字節(jié);取段顯碼;寫顯示RAM;寫顯示RAM命令;第二個數(shù);有鍵按下?沒有則循環(huán)等待;;選中LED4;取后半字節(jié);取段顯碼;寫顯示RAM;寫顯示RAM命令;第二個數(shù);有鍵按下?沒有則循環(huán)等待;顯示'消隱命令;讀FIFO命令;讀鍵值;保存鍵值;寫顯示RAM命令LOOP5:MOVXA,@DPTRANLA,#0FHJZLOOP5MOVA,#0A0HMOVX@DPTR,AMOVA,#40HMOVX@DPTR,AMOVDPTR,#0CFE8HMOVXA,@DPTRMOVR5,AMOVDPTR,#0CFE9H

MOVA,R5ANLA,#0FH;取后半字節(jié)MOVDPTR,#TABMOVCA,@A+DPTR;取段顯碼MOVDPTR,#0CFE8H;寫顯示RAMMOVX@DPTR,AMOVDPTR,#0CFE9H;寫顯示RAM命令LOOP6:MOVXA,@DPTR;====ANLA,#0FHJZLOOP6;有鍵按下?沒有則循環(huán)等待MOVA,#0A0H;顯示'消隱命令MOVX@DPTR,AMOVA,#40H;讀FIFO命令MOVX@DPTR,AMOVDPTR,#0CFE8H;讀鍵值MOVXA,@DPTRMOVR6,A;保存鍵值MOVDPTR,#0CFE9H;寫顯示RAM命令MOVA,#85H;選中LED6MOVX@DPTR,AMOVA,R6ANLA,#0FH;取后半字節(jié)MOVDPTR,#TABMOVCA,@A+DPTR;取段顯碼MOVDPTR,#0CFE8H;寫顯示RAMMOVX@DPTR,AMOVDPTR,#0CFE9H;寫顯示RAM命令

MOVA,R2ANLA,#0FHMOVR2,AMOVA,R4ANLA,#0FHMOVR4,AMOVA,R5ANLA,#0FHMOVR5,AMOVB,#0AHMOVA,R1MULABADDA,R2MOVR7,A;把12放到R7MOVB,#0AHMOVA,R4MULABADDA,R5MOVR1,A;把45放到R1CJNER3,#0CAH,JIAN1MOVA,R7ADDCA,R1LJMPXIANSHIJIAN1:CJNER3,#0CBH,CHENG1MOVA,R7SUBBA,R1LJMPXIANSHICHENG1:CJNER3,#0CCH,CHU1LOOP5:MOVB,R1MULABLJMPXIANSHICHU1:MOVA,R7MOVB,R1DIVABLJMPXIANSHIXIANSHI:;MOVR1,A;MOVDPTR,#00CFE9H;8279命令字;MOVA,#0D1H;清顯示;MOVX@DPTR,A;MOVA,R1MOVR0,A;把結果賦給R0SUBBA,#64H;判斷要顯示數(shù)的個數(shù)JCXTWO;判斷是否小于100MOVA,R0MOVB,#64H;百位數(shù)DIVABMOVR4,A;百位數(shù)R4MOVA,BMOVB,#0AHDIVAB;十位數(shù)MOVR5,A;十位數(shù)放R5MOVR6,B;個位數(shù)放R6MOVX@DPTR,AMOVA,R4ANLA,#0FH;取后半字節(jié)MOVDPTR,#TABMOVCA,@A+DPTR;取段顯碼MOVDPTR,#0CFE8H;寫顯示RAMMOVX@DPTR,AMOVDPTR,#0CFE9H;寫顯示RAM命令顯示十位MOVA,#84H;選中LED5MOVX@DPTR,AMOVA,R5ANLA,#0FH;取后半字節(jié)MOVDPTR,#TABMOVCA,@A+DPTR;取段顯碼MOVDPTR,#0CFE8H;寫顯示RAMMOVX@DPTR,AMOVDPTR,#0CFE9H;寫顯示RAM命令顯示個位MOVA,#86H;選中LED6MOVX@DPTR,AMOVA,R6ANLA,#0FH;取后半字節(jié)MOVDPTR,#TABMOVCA,@A+DPTR;取段顯碼MOVDPTR,#0CFE8H;寫顯示RAMMOVX@DPTR,AMOVR7,#00HMOVDPTR,#0CFE9H;寫顯示RAM命令MOVA,#80H選中LED1

ANLA,#0FHMOVDPTR,#TABMOVCA,@A+DPTR;取段顯碼MOVDPTR,#0CFE8H;寫顯示RAMMOVX@DPTR,AMOVDPTR,#0CFE9H;寫顯示RAM命令LJMPLOOP1XTWO:MOVA,R0CLRC;上面借位清CLRCSUBBA,#0AHJCXONEMOVA,R0MOVB,#0AHDIVABMOVR4,A;SHIWEIGEIR4MOVR5,B;GEWEIGEIR5顯示十位顯示十位MOVDPTR,#0CFE9H;寫顯示RAM命令MOVA,#84H;選中LED5MOVX@DPTR,AMOVA,R4ANLA,#0FH;取后半字節(jié)MOVDPTR,#TABMOVCA,@A+DPTR;取段顯碼MOVDPTR,#0CFE8H;寫顯示RAMMOVX@DPTR,AMOVDPTR,#0CFE9H;寫顯示RAM命令;MOVDPTR,#0CFE9H;寫顯示RAM命令顯示個位ieMOVA,#85H;選中LED6ANLA,#0FH;取后半字節(jié)MOVDPTR,#TABMOVCA,@A+DPTR;取段顯碼MOVDPTR,#0CFE8H;寫顯示RAMMOVX@DPTR,AMOVDPTR,#0CFE9H;寫顯示RAM命令;LJMPLOOP1XONE:MOVA,R0MOVDPTR,#0CFE9H;寫顯示RAM命令MOVA,#85H;選中LED6MOVX@DPTR,AMOVA,R0ANLA,#0FH;取后半字節(jié)MOVDPTR,#TABMOVCA,@A+DPTR;取段顯碼MOVDPTR,#0CFE8H;寫顯示RAMMOVX@DPTR,AMOVDPTR,#0CFE9H;寫顯示RAM命令;LJMPLOOP1TAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;段顯碼表db7fh,6fh,77h,7ch,39h,5eh,79h,71hEND2、程序二:能進行百位以內的四則運算,但一位與兩位數(shù)運算結果調試不對NAMET11;8279鍵盤實驗二;將鍵盤的KA10?KA12接8259的KA0?KA2;RL10?RL17接8255A的RL0?RL7;T118279鍵盤顯示接口實驗二CSEGAT0000HLJMPSTARTCSEGAT4100HSTART:MOVR7,#10;8279命令字MOVDPTR,#00CFE9H;8279命令字LOOP1:LOOP2:LOOP3:MOVA,#0D1HMOVX@DPTR,AMOVXA,@DPTRANLA,#0FHJZLOOP1MOVA,#0A0HMOVX@DPTR,AMOVA,#40HMOVX@DPTR,AMOVDPTR,#0CFE8HMOVXA,@DPTRMOVR1,AMOVDPTR,#0CFE9HMOVA,#80HMOVX@DPTR,AMOVA,R1ANLA,#0FHMOVDPTR,#TABMOVCA,@A+DPTRMOVDPTR,#0CFE8HMOVX@DPTR,AMOVDPTR,#0CFE9HMOVXA,@DPTRANLA,#0FHJZLOOP2MOVA,#0A0HMOVX@DPTR,AMOVA,#40HMOVX@DPTR,AMOVDPTR,#0CFE8HMOVXA,@DPTRMOVR2,AMOVDPTR,#0CFE9HMOVA,#81HMOVX@DPTR,AMOVA,R2ANLA,#0FHMOVDPTR,#TABMOVCA,@A+DPTRMOVDPTR,#0CFE8HMOVX@DPTR,AMOVDPTR,#0CFE9HMOVXA,@DPTRANLA,#0FH;有鍵按下?沒有則循環(huán)等待;顯示'消隱命令;讀FIFO命令;讀鍵值;保存鍵值加個F;寫顯示RAM命令;選中LED1;取后半字節(jié);取段顯碼;寫顯示RAM;寫顯示RAM命令;輸入顯示符號;有鍵按下?沒有則循環(huán)等待;顯示'消隱命令;讀FIFO命令;讀鍵值;保存鍵值;寫顯示RAM命令;選中LED2;取后半字節(jié);取段顯碼;寫顯示RAM;寫顯示RAM命令;第二個數(shù)JZLOOP3;有鍵按下?沒有則循環(huán)等待MOVA,#0A0H;顯示'消隱命令MOVX@DPTR,AMOVA,#40H;讀FIFO命令MOVX@DPTR,AMOVDPTR,#0CFE8H;讀鍵值MOVXA,@DPTRMOVR3,A;保存鍵值MOVDPTR,#0CFE9H;寫顯示RAM命令MOVA,#82H;選中LED3MOVX@DPTR,AMOVA,R3ANLA,#0FH;取后半字節(jié)MOVDPTR,#TABMOVCA,@A+DPTR;取段顯碼MOVDPTR,#0CFE8H;寫顯示RAMMOVX@DPTR,AMOVDPTR,#0CFE9H;寫顯示RAM命令LOOP4:MOVXA,@DPTR;====ANLA,#0FHJZLOOP4;有鍵按下?沒有則循環(huán)等待MOVA,#0A0H;顯示'消隱命令MOVX@DPTR,AMOVA,#40H;讀FIFO命令MOVX@DPTR,AMOVDPTR,#0CFE8H;讀鍵值MOVXA,@DPTRMOVR4,A;保存鍵值MOVDPTR,#0CFE9H;寫顯示RAM命令MOVA,#83H;選中LED4MOVX@DPTR,AMOVA,R4ANLA,#0FH;取后半字節(jié)MOVDPTR,#TABMOVCA,@A+DPTR;取段顯碼MOVDPTR,#0CFE8H;寫顯示RAMMOVX@DPTR,AMOVDPTR,#0CFE9H;寫顯示RAM命令LOOP5:MOVXA,@DPTR;====ANLA,#0FHJZLOOP5;有鍵按下?沒有則循環(huán)等待MOVA,#0A0H;顯示'消隱命令MOVX@DPTR,A

MOVA,#40H;讀FIFO命令MOVX@DPTR,AMOVDPTR,#0CFE8H;讀鍵值MOVXA,@DPTRMOVR5,A;保存鍵值MOVDPTR,#0CFE9H;寫顯示RAM命令MOVA,#84H;選中LED5MOVX@DPTR,AMOVA,R5ANLA,#0FH;取后半字節(jié)MOVDPTR,#TABMOVCA,@A+DPTR;取段顯碼MOVDPTR,#0CFE8H;寫顯示RAMMOVX@DPTR,AMOVDPTR,#0CFE9H;寫顯示RAM命令LOOP6:MOVXA,@DPTR;====ANLA,#0FHJZLOOP5;有鍵按下?沒有則循環(huán)等待MOVA,#0A0H;顯示'消隱命令MOVX@DPTR,AMOVA,#40H;讀FIFO命令MOVX@DPTR,AMOVDPTR,#0CFE8H;讀鍵值MOVXA,@DPTRMOVR5,AMOVA,#40H;讀FIFO命令MOVDPTR,#0CFE9H;寫顯示RAM命令MOVA,#85HMOVX@DPTR,AMOVA,R5ANLA,#0FHMOVDPTR,#TABMOVCA,@A+DPTRMOVDPTR,#0CFE8HMOVX@DPTR,AMOVDPTR,#0CFE9H;選中LED6;取后半字節(jié);取段顯碼;寫顯示RAM;寫顯示RAM命令CJNER4,#0EH,L1;判斷R4是否為“=”,進一步判斷R2符號LJMPjialLl:CJNER5,#OEH,L2;判斷R5是否為“=”CJNER2,#OAH,jian3MOVA,R1ANLA,#0FHMOVR1,AMOVA,R3ANLA,#0FH

MOVB,R7MULAB;計算R3*10MOVR3,AMOVA,R4ANLA,#0FHMOVR4,AMOVA,R3ADDA,R4;計算R3*10+R4MOVR3,A;R3*10+R4的結果放在R3中jia3:MOVA,R3ANLA,#0FHMOVR3,AMOVA,R1ANLA,#0FHADDA,R3LJMPXIANSHIjian3:CJNER2,#0BH,chen3MOVA,R3ANLA,#0FHMOVR3,AMOVA,R1ANLA,#0FHSUBBA,R3LJMPXIANSHIchen3:CJNER2,#0CH,chu3MOVA,R3ANLA,#0FHMOVR3,AMOVB,R3MOVA,R1ANLA,#0FHMOVR1,AMULABLJMPXIANSHIchu3:CJNER2,#0DH,PAN3MOVA,R3ANLA,#0FHMOVR3,AMOVB,R3MOVA,R1ANLA,#0FHMOVR1,ADIVABLJMPXIANSHI

PAN3:CJNER3,#0AH,jian4MOVA,R4ANLA,#0FHMOVR4,AMOVA,R1ANLA,#0FHMOVB,R7MULAB;計算R1*10MOVR1,AMOVA,R2ANLA,#0FHMOVR2,AMOVA,R1ADDA,R2;計算R1*10+R2MOVR1,A;R1*10+R2的結果放在R3中jia3:MOVA,R4ANLA,#0FHMOVR4,AMOVA,R1ANLA,#0FHADDA,R4LJMPXIANSHIjian3:CJNER2,#0BH,chen3MOVA,R4ANLA,#0FHMOVR4,AMOVA,R1ANLA,#0FHSUBBA,R4LJMPXIANSHIchen3:CJNER2,#0CH,chu3MOVA,R4ANLA,#0FHMOVR4,AMOVB,R4MOVA,R1ANLA,#0FHMOVR1,AMULABLJMPXIANSHIchu3:MOVA,R4ANLA,#0FHMOVR4,AMOVB,R4

MOVA,R1ANLA,#0FHMOVR1,ADIVABLJMPXIANSHIL2:MOVA,R1;分別計算R1*10+R2和R4*10+R5ANLA,#0FHMOVB,R7MULABMOVR1,A;計算R1=R1*10MOVA,R2ANLA,#0FHMOVR2,AMOVA,R1ADDA,R2;計算R1*10+R2MOVR1,A;R1存放R1*10+R2MOVA,R4ANLA,#0FHMOVB,R7MULABMOVR4,A;計算R4=R4*10MOVA,R5ANLA,#0FHMOVR5,AMOVA,R4ADDA,R5;計算R4*10+R5MOVR4,A;R1存放R4*10+R5CJNER3,#0AH,jian2jia2:MOVA,R1;兩位數(shù)的計算ANLA,#0FHMOVR1,AMOVMOVA,#85HMOVX@DPTR,AMOVA,R5ANLA,#0FHMOVDPTR,#TABMOVCA,@A+DPTRMOVDPTR,#0CFE8HMOVX@DPTR,AMOVDPTR,#0CFE9H;選中LED6;取后半字節(jié);取段顯碼;寫顯示RAM;寫顯示RAM命令MOVR4,AMOVA,R1SUBBA,R4LJMPXIANSHIchen2:CJNER3,#0CH,chu2MOVA,R1ANLA,#0FHMOVR1,AMOVA,R4ANLA,#0FHMOVR4,AMOVA,R1MOVB,R4MULABLJMPXIANSHIchu2:MOVA,R1ANLA,#0FHMOVR1,AMOVA,R4ANLA,#0FHMOVR4,AMOVA,R1MOVB,R4DIVABLJMPXIANSHIjia1:CJNER2,#0cAH,jian1;一位加一位的計算MOVA,R1ANLA,#0FHMOVR1,AMOVA,R3ANLA,#0FHMOVR3,AMOVA,R1ADDA,R3LJMPXIANSHIjian1:CJNER2,#0cBH,cheng1MOVA,R1ANLA,#0FHMOVR1,AMOVA,R3ANLA,#0FHMOVR3,AMOVA,R1SUBBA,R3LJMPXIANSHIcheng1:CJNER2,#0CcH,chu1MOVA,R1ANLA,#0FHMOVR1,AMOVA,R3ANLA,#0FHMOVR3,AMOVA,R1MOVB,R3MULABLJMPXIANSHIchu1:MOVA,R1ANLA,#0FHMOVR1,AMOVA,R3ANLA,#0FHMOVR3,AMOVA,R1MOVB,R3DIVABLJMPXIANSHIXIANSHI:MOVR1,AMOVDPTR,#00CFE9HMOVA,#0D1HMOVX@DPTR,AMOVA,R1MOVR0,ATHREE:SUBBA,#64HJCTWOMOVA,R0MOVB,#64HDIVABMOVR4,AMOVA,BMOVB,#0AHDIVABMOVR5,AMOVR6,B;8279命令字;判斷A的位數(shù);小于100繼續(xù)判斷;給B賦值100;百位放R4;余

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論