版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
.z..--可修編-目錄摘要……………1緒論……………11.設(shè)計(jì)要求及功能分析………………………11.1設(shè)計(jì)要求………………11.2根本功能………………22.設(shè)計(jì)方案……………………22.1硬件局部設(shè)計(jì)方案……………………2單片機(jī)局部…………2按鍵局部……………2顯示局部……………22.2軟件局部設(shè)計(jì)方案……………………23.系統(tǒng)的硬件總體設(shè)計(jì)………………………43.1系統(tǒng)的總體硬件設(shè)計(jì)…………………43.2鍵盤連接電路…………43.3顯示屏連接電路………………………53.4單片機(jī)芯片AT89C51…………………63.5外接電路………………74.系統(tǒng)的軟件總體設(shè)計(jì)………………………84.1鍵盤識別程序設(shè)計(jì)……………………84.2顯示程序………………114.3運(yùn)算程序………………115.元器件清單及程序清單……………………125.1元器件清單……………125.2程序清單………………126.軟件仿真……………………186.1仿真驗(yàn)證………………186.2性能分析………………206.3出現(xiàn)故障及其原因……………………206.4解決方法………………20結(jié)論……………20參考文獻(xiàn)………………………21致……………21附錄PCB圖……………………22簡易計(jì)算器的設(shè)計(jì)學(xué)生:飛馬鵬超舒宏超指導(dǎo)教師:王孝儉摘要:單片機(jī)是指一個集成在一塊芯片上的完整計(jì)算機(jī)系統(tǒng)。盡管他的大局部功能集成在一塊小芯片上,但是它具有一個完整計(jì)算機(jī)所需要的大局部部件:CPU、存、部和外部總線系統(tǒng),目前大局部還會具有外存。同時集成諸如通訊接口、定時器,實(shí)時時鐘等外圍設(shè)備。而現(xiàn)在最強(qiáng)大的單片機(jī)系統(tǒng)甚至可以將聲音、圖像、網(wǎng)絡(luò)、復(fù)雜的輸入輸出系統(tǒng)集成在一塊芯片上。單片機(jī)部也用和電腦功能類似的模塊,比方CPU,存,并行總線,還有和硬盤作用一樣的存儲器件,不同的是它的這些部件性能都相對我們的家用電腦弱很多,不過價(jià)錢也是低的,一般不超過10元即可,用它來做一些控制電器一類不是很復(fù)雜的工作足矣了。我們現(xiàn)在用的全自動滾筒洗衣機(jī)、排煙罩、VCD等等的家電里面都可以看到它的身影!它主要是作為控制局部的核心部件。它是一種在線式實(shí)時控制計(jì)算機(jī),在線式就是現(xiàn)場控制,需要的是有較強(qiáng)的抗干擾能力,較低的本錢,這也是和離線式計(jì)算機(jī)的〔比方家用PC〕的主要區(qū)別。單片機(jī)比專用處理器最適合應(yīng)用于嵌入式系統(tǒng),因此它得到了最多的應(yīng)用。事實(shí)上單片機(jī)是世界上數(shù)量最多的計(jì)算機(jī)?,F(xiàn)代人類生活中所用的幾乎每件電子和機(jī)械產(chǎn)品中都會集成有單片機(jī)。手機(jī)、、計(jì)算器、家用電器、電子玩具、掌上電腦以及鼠標(biāo)等電腦配件中都配有1-2部單片機(jī)。而個人電腦中也會有為數(shù)不少的單片機(jī)在工作。汽車上一般配備40多部單片機(jī),復(fù)雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百臺單片機(jī)在同時工作!單片機(jī)的數(shù)量不僅遠(yuǎn)超過PC機(jī)和其他計(jì)算的綜合,甚至比人類的數(shù)量還要多。關(guān)鍵詞:單片機(jī)、計(jì)算器、控制電路、仿真。緒論設(shè)計(jì)要求掌握數(shù)碼管移位動態(tài)掃描顯示的編程方法,掌握矩陣掃描的編程方法,掌握數(shù)據(jù)在部運(yùn)算的編程方法。設(shè)計(jì)任務(wù)實(shí)現(xiàn)最大8位正整數(shù)加、減、乘、除,具備清零、等于功能,16個按鍵功能依次為:數(shù)字0、數(shù)字1、數(shù)字2、數(shù)字3、數(shù)字4、數(shù)字5、數(shù)字6、數(shù)字7、數(shù)字8、數(shù)字9、清零、等于、加、減、乘、除。1.設(shè)計(jì)要求及功能分析1.1設(shè)計(jì)要求:本次單片微型計(jì)算機(jī)與接口技術(shù)課程設(shè)計(jì)做的是利用C51單片機(jī)為主體的計(jì)算器,實(shí)現(xiàn)了簡單的加、減、乘、除功能。采取的是鍵盤輸入和液晶顯示屏的輸出結(jié)果顯示。主要硬件構(gòu)成局部由四個,一個AT89C51單片機(jī)芯片,一個液晶顯示屏,一個4*4鍵盤和一個排阻〔10K〕做P0口的上拉電阻,可以實(shí)現(xiàn)16位的數(shù)值操作計(jì)算。1.2根本功能:首先,計(jì)算器可現(xiàn)實(shí)8位數(shù)字,開機(jī)運(yùn)行時,只有數(shù)碼管最低位顯示為“0〞,其他位全部不顯示;其次,可以對計(jì)算結(jié)果在16位以的;兩個無符號數(shù)進(jìn)展加、減、乘、除運(yùn)算,并顯示計(jì)算結(jié)果,如果輸入操作數(shù)和輸出結(jié)果超過16位,則會顯示“error〞,以提示使用者輸入錯誤,應(yīng)清零后重新輸入。最后,運(yùn)算時,如果按錯了可以使用清零鍵直接清零,重新輸入數(shù)據(jù),運(yùn)算過程中,如果運(yùn)算表達(dá)式是加、減、乘、除混合運(yùn)算,可以進(jìn)展連續(xù)運(yùn)算,不需要按等號鍵,運(yùn)算規(guī)則則是從左到右,不區(qū)分運(yùn)算等級。即認(rèn)為加減乘除是同等級的運(yùn)算。2.設(shè)計(jì)方案2.1硬件局部設(shè)計(jì)方案單片機(jī)局部單片機(jī)以AT89C51來作為核心元器件。按鍵局部方案一:采用4*4行列式鍵盤,分別設(shè)定數(shù)字鍵和功能鍵,采用查詢方式,每次有鍵按下時,先判斷是實(shí)數(shù)字鍵還是功能鍵,但是這種方式采用了大量的I/O口線。方案二:采用獨(dú)立式按鍵,獨(dú)立式按鍵借口電路配置靈活,軟件構(gòu)造簡單。雖然采用獨(dú)立式按鍵時每個按鍵必須占用一根I/O口線,但是在本實(shí)驗(yàn)中根據(jù)實(shí)際的需要采用通過四個按鍵即只占用四個I/O口線,而如果采用4*4行列式鍵盤時占用8個I/O口線,所以我們采用一方案。顯示局部在單片機(jī)應(yīng)用系統(tǒng)中,使用的顯示器主要有LED〔發(fā)光二極管顯示器〕、LCD液晶顯示親以及CRT接口。方案一:使用8位LED數(shù)碼管來顯示,LED顯示器是由發(fā)光二極管顯示字段組成的顯示器件,在單片機(jī)應(yīng)用系統(tǒng)常使用的是七段LED,這種顯示器有共陰極和共陽極兩種,它具有本錢低廉、配置靈活和單片機(jī)接口方便等特點(diǎn)。方案二:使用液晶顯示器來顯示。液晶是介于固態(tài)和液態(tài)間的有機(jī)化合物,將其加熱會變成透明液態(tài),冷卻后變成結(jié)晶的渾濁固態(tài)。在電機(jī)的作用下,產(chǎn)生冷熱變化,從而影響它的透光性,來到達(dá)顯示的目的。LCD還具有以下優(yōu)點(diǎn):〔1〕低壓、微功耗;〔2〕顯示信息量大;〔3〕長壽命;〔4〕無輻射、無污染。2.2軟件局部設(shè)計(jì)方案軟件局部的設(shè)計(jì)思路時將整個程序劃分為鍵盤掃描局部、顯示局部、運(yùn)算程序局部、清屏顯示局部。對于其中的鍵盤掃描局部在編寫時又分為動態(tài)掃描和靜態(tài)掃描;運(yùn)算程序局部包括加、減、乘、除四個子程序。軟件流程大致如下:開場,然后是系統(tǒng)的初始化,進(jìn)展鍵盤掃描,對掃描的鍵值進(jìn)展判斷〔分為數(shù)字鍵和功能鍵〕,如果是數(shù)字鍵,執(zhí)行數(shù)字處理子程序,即顯示數(shù)字并將數(shù)值存儲;如果是命令鍵,即先判斷是否為清屏,如為清屏鍵,則執(zhí)行清屏子程序,假設(shè)為加減乘除運(yùn)算鍵則顯示相應(yīng)的符號并存儲結(jié)果,假設(shè)都不是則為=鍵,即要先判斷上個符號位,然后調(diào)用對應(yīng)的運(yùn)算子程序運(yùn)算,就可以得到需要的結(jié)果。8位LCD顯示8位LCD顯示局部51系列單片機(jī)時鐘電路和復(fù)位控制電路4*4鍵盤圖1系統(tǒng)原理框圖3.系統(tǒng)的硬件總體設(shè)計(jì)3.1系統(tǒng)的總體硬件設(shè)計(jì)硬件系統(tǒng)是指構(gòu)成微機(jī)系統(tǒng)的實(shí)際裝置,通常是由運(yùn)算器、控制器、存儲器、輸入接口電路和輸入設(shè)備、輸出接口電路和輸出設(shè)備等組成。單片機(jī)實(shí)質(zhì)上是一個硬件的芯片,在實(shí)際應(yīng)用中,通常很難直接和被控對象進(jìn)展電氣連接,必須外加各種拓展接口電路、外部設(shè)備等才能構(gòu)成一個單片機(jī)應(yīng)用系統(tǒng)。單片機(jī)芯片選擇AT89C51,顯示區(qū)域使用顯示屏,鍵盤是4*4普通矩陣鍵盤,P0口接上拉電阻,芯片的P0口和P3口的前5腳接入數(shù)字顯示屏,鍵盤橫行A~D接入單片機(jī)芯片AT89C51的后四個接口,鍵盤的豎行1~4則分別接入單片機(jī)芯片AT89C51的P2口的前四個接口。另外12MHz晶振接入單片機(jī)芯片AT89C51的*TAL1接口。系統(tǒng)總接線圖如下:圖2系統(tǒng)硬件總接線圖3.2鍵盤連接電路本設(shè)計(jì)之中使用的是4*4的普通鍵盤,我們可以使用其行列號來識別被按下的按鍵以此來獲知被按鍵的信息,因此將行輸出信號和列輸出信號分別接入單片機(jī)芯片C51的P2口,通過循環(huán)掃描,讀取行列的數(shù)據(jù)來判斷是否有按鍵被按下,如果有則調(diào)用按鍵識別程序來識別具體按鍵,并執(zhí)行相應(yīng)的操作,按鍵識別是根據(jù)按鍵時得到的列代碼與行代碼的結(jié)合,在匯編語言中進(jìn)展查表來判斷是哪個鍵。鍵盤如圖:圖3數(shù)字輸入鍵盤3.3顯示屏連接電路如上所述,當(dāng)數(shù)字輸入鍵盤有鍵按下的時候,經(jīng)過程序識別,則會有相應(yīng)結(jié)果被送入顯示屏得到顯示。如果是數(shù)字鍵則直接放入液晶顯示緩沖區(qū),如果再次有數(shù)字鍵按下,則應(yīng)將緩沖區(qū)的數(shù)字向高位移動一位,以構(gòu)成兩位數(shù),之前輸入的置之高位,并記錄按鍵次數(shù),每輸入一個鍵值都調(diào)用顯示程序出來;如果是運(yùn)算符,則執(zhí)行相應(yīng)的運(yùn)算,送入單片機(jī)芯片C51進(jìn)展計(jì)算后將結(jié)果調(diào)用顯示程序顯示結(jié)果。該設(shè)計(jì)中選取的是LM0202型號液晶顯示屏,如下列圖:圖4液晶顯示屏3.4單片機(jī)芯片AT89C51應(yīng)本次課程設(shè)計(jì)的要求,此設(shè)計(jì)之中選取的是C51芯片,取代了之前設(shè)計(jì)之中的pic芯片。芯片包含有一個8位CPU;一個片振蕩器及時鐘電路;4KBROM程序存儲器;128BRAM數(shù)據(jù)存儲器;可尋址64KB外部數(shù)據(jù)存儲器和64KB外部程序存儲空間的控制電路;32條可編程的I/O線〔4個8位并行I/O端口〕;兩個16位的定時/計(jì)數(shù)器;一個可編程全雙工串行口;5個中斷源、兩個優(yōu)先級嵌套終端構(gòu)造。芯片如下列圖:圖5單片機(jī)芯片AT89C513.5外接電路為了進(jìn)一步強(qiáng)化該設(shè)計(jì)的功能,所以在單片機(jī)芯片C51外圍添加了時鐘脈沖芯片和復(fù)位電路,這樣就可以對其電路頻率進(jìn)展調(diào)節(jié)。這個電路當(dāng)中,是選取的是12M的晶振,對其兩頭電容接地,并一端接入芯片*ALT1端口輸入,調(diào)節(jié)芯片部頻率。另外一端,高電平通過按鈕接入單片機(jī)芯片RST端口,并接一個電容和一個電阻,降低電流沖擊對芯片的影響。時鐘脈沖電路和復(fù)位電路如下列圖:圖6時鐘脈沖電路和復(fù)位電路由此,就是由以上的鍵盤連接電路、顯示屏連接電路、外部電路和芯片共同構(gòu)成了整個設(shè)計(jì)的硬件構(gòu)造局部。4.系統(tǒng)的軟件總體設(shè)計(jì)編程語言當(dāng)中,匯編語言比擬接近底層,編程效率高;C語言則語言靈活,在編寫算法中會比擬方便。但是我們在學(xué)習(xí)中是學(xué)習(xí)的匯編語言,我們還是對于單片機(jī)的編程更加熟悉,盡管匯編語言在計(jì)算器中涉及到算法之中會比擬繁瑣,但是我們還是選擇匯編語言。4.1鍵盤識別程序設(shè)計(jì)首先將P2口送0E0H,將P1口弦送1在讀P1口的數(shù)據(jù)當(dāng)P1口低四位全1時說明沒有鍵按下;再掃描下一行,如果P1口不是全1,則說明有鍵按下,將P2口高四位和低四位組合成一個字節(jié),放入R5存放器中,通過延遲技術(shù)來進(jìn)展按鍵去抖,判斷按鍵是否松開,如松開則將得到的鍵值進(jìn)展判斷是哪一個鍵。如果是數(shù)字鍵則首先將其對應(yīng)的數(shù)字放入緩沖區(qū)30H,同時將鍵值放入結(jié)果緩沖區(qū),并調(diào)用顯示程序,顯示鍵值。在調(diào)用掃描鍵盤程序,如果再有鍵值輸入則將原來的數(shù)值在顯示屏高位依次移一位,將剛鍵入的數(shù)值放入最低位,并將原來的數(shù)值乘十加上剛鍵入的鍵值的數(shù)放入結(jié)果緩沖區(qū),然后調(diào)用顯示程序;如果是運(yùn)算符,則記錄運(yùn)算符標(biāo)志,加法用01H表示,劍法使用02H表示,乘法使用03H表示,除法使用04H表示,并將結(jié)果緩沖區(qū)的數(shù)轉(zhuǎn)移到中間結(jié)果紅區(qū),將結(jié)果緩沖區(qū)清零,等待輸入運(yùn)算數(shù)據(jù),當(dāng)按下等號時,根據(jù)記錄的運(yùn)算符標(biāo)志,判斷運(yùn)算類型,執(zhí)行運(yùn)算將結(jié)果依次除以10取余數(shù)放入結(jié)果顯示緩沖區(qū),調(diào)用顯示程序。依次循環(huán)執(zhí)行。鍵盤識別程序流程圖如下:開場開場掃描鍵盤是否有鍵按下是否為等號計(jì)算并顯示最終結(jié)果完畢是否為計(jì)算符讀進(jìn)內(nèi)存之前是否有計(jì)算符先計(jì)算顯示暫時的結(jié)果讀進(jìn)內(nèi)存并調(diào)用顯示程序YYYYNNNN圖7鍵盤識別程序流程圖掃描第一行掃描第一行是否有鍵按下掃描第四行掃描第三行掃描第二行是否有鍵按下是否有鍵按下是否有鍵按下開場完畢圖8鍵盤掃描程序流程圖4.2顯示程序顯示程序是將30H~37H單元設(shè)置成液晶顯示屏顯示緩沖區(qū),分別存放各個位置的數(shù)據(jù),40H單元作為輸入數(shù)據(jù)的計(jì)數(shù)單元。因?yàn)檫\(yùn)算結(jié)果超出圍時應(yīng)采取報(bào)錯,使之顯示“error〞即可,將數(shù)字0~9和“error〞存入列表中,當(dāng)調(diào)用顯示程序時,顯示程序根據(jù)40H單元記錄的個數(shù)決定顯示位數(shù)。如果輸入錯誤將在數(shù)碼管上顯示“error〞。這樣就得到了顯示程序的入口:30H~37H,依次存放各位到千萬位;40H,存放輸出的數(shù)字位數(shù)。出口:數(shù)碼管,P0輸出字段碼P2輸出位選碼。開場開場初始化R0緩沖區(qū)指針,R1位控制,RS循環(huán)控制次數(shù),R0=30H,R1=*80H,R5=40H數(shù)碼管顯示判斷顯示是否完畢?完成YN圖9顯示程序流程圖4.3運(yùn)算程序運(yùn)算程序分四個模塊,即加減乘除。分別采用兩字節(jié)運(yùn)算,因此運(yùn)算結(jié)果不能超出亮字節(jié),否則會溢出。溢出時顯示“error〞。加法程序:入口是R0被加數(shù)低位字節(jié)地址指針,R1加數(shù)低位字節(jié)地址指針,R3字節(jié)數(shù)。出口R0和值地址指針,R3和值字節(jié)數(shù)。運(yùn)算時用R0、R1間接尋址,從低字節(jié)算起,高字節(jié)采用帶進(jìn)位加〔ADDC〕,計(jì)算結(jié)果回送到R0所指的單元中,并將和字節(jié)數(shù)放入R3單元中,如果R3大于3說明溢出。減法程序同加法類似,入口R0被減數(shù)低位字節(jié)地址指針,R1減數(shù)低位字節(jié)地址指針,R3字節(jié)數(shù)。出口R0差值低位字節(jié)地址指針,R3差值字節(jié)數(shù)。只是判斷溢出時通過CY位,如果運(yùn)算后CY位有借位,則將07H位置1,否則置0.乘法程序入口R3被乘數(shù)低位地址字節(jié),R2被乘數(shù)高位地址字節(jié),R7乘數(shù)低位地址字節(jié),R6乘數(shù)高位地址字節(jié)。出口R3,R5,R6,R7結(jié)果字節(jié)由高到低。通過判斷R5是否為零就可以知道運(yùn)算結(jié)果是否溢出,如果溢出就顯示“error〞。除法程序入口被除數(shù)放在R4R5R6R7,R4R5容為0,R4高R5低,除數(shù)放在R2R3,R2高R3低。出口商放在R6R7,R6高R7低,余數(shù)放在R4R5,R4高R5低。5.元器件清單及程序清單5.1元器件清單序號名稱型號數(shù)量1滑動變阻器3214G-1-100E1251系列單片機(jī)AT89C5113按鈕BUTTON14電容CAP22pF25電容CAP-ELEC20uF16晶振CRYSTAL12MHz174*4鍵盤KEYPAD-SMALLCALC18液晶顯示器LM020L19電阻RES1k110上拉電阻RESPACK-81-.z.5.2程序清單rsequp1.5 ;確定具體硬件的連接方式rwequp1.6 ;確定具體硬件的連接方式eequp1.7 ;lcd1602引腳 org0hmain: acallstart movp0,*8fh ;寫入顯示起始地址〔第一行第一個位置〕acallenable ;調(diào)用寫入命令子程序 mov r0,*2fh mov2fh,*30h movr6,*1acallwrite1 mov55h,*0 ;運(yùn)算方式標(biāo)志main1: movr0,*20hd:movr0,*0 incr0cjner0,*50h,d;清理系統(tǒng)存 mov 50h,*0 ;被操作數(shù)的位數(shù) mov 51h,*0 ;操作數(shù)的位數(shù) mov52h,*0;結(jié)果的位數(shù) mov53h,*0 ; mov58h,*0 ;符號標(biāo)志位d0: mov56h,*0 movr1,*50h mov54h,*2fh sjmptest ;接收被操作數(shù)d1: mova,50h cjnea,*0,d2 mov50h,*1 acallstart movp0,*8fhacallenable mov r0,*2fh mov2fh,*30h movr6,*1acallwrite1d2: movr1,*51h mov54h,*3fh sjmptesttest:movp2,*0f0hmova,p2 anla,*0f0h;anl:與 cjnea,*0f0h,have;a!=f0,sjmphave sjmptesthave: mova,*0fehne*t: movb,amovp2,aread: mova,p2anla,*0f0h;a=f0 cjnea,*0f0h,yes mova,b rla cjnea,*0efh,ne*tyes:acallday mova,p2 anla,*0f0h cjnea,*0f0h,yes1 sjmptestyes1: movr2,a mova,b anla,*0fh orla,r2;orl或y0:cjnea,*0e7h,y1ajmpmainy1:cjnea,*0d7h,y2movb,*31hajmpchay2:cjnea,*0b7h,y3movb,*34hajmpchay3:cjnea,*77h,y4movb,*37hajmpchay4:cjnea,*0ebh,y5 movb,*30hajmpchay5:cjnea,*0dbh,y6movb,*32hajmpchay6:cjnea,*0bbh,y7movb,*35hajmpchay7:cjnea,*7bh,y8movb,*38hajmpchay8:cjnea,*0edh,y9 cjner1,*50h,y81 cjner1,*0,y81 ajmpd0y81:mova,55h cjnea,*0,y82 ajmpd0y82:mova,5ah cjnea,*0,y87 mova,51h cjnea,*0,y88 mov51h,50h movr0,*2fh movr1,*3fh movr2,*10hy83:mova,r0 movr1,a decr0 decr1 djnzr2,y83 mova,55h cjnea,*1,y84 mova,58h cjnea,*0ffh,y87 mov55h,*2 sjmpy87y84:cjnea,*2,y88 mova,58h cjnea,*0ffh,y87 mov55h,*1 sjmpy87y88:mova,55h cjnea,*3,y89 sjmpy85y89:cjnea,*4,y87y85:mova,58h cjnea,*0ffh,y86 mov59h,*0ffhy86:*rla,59h mov58h,ay87:acallsuan ajmpd0y9:cjnea,*0ddh,yamovb,*33hajmpchaya:cjnea,*0bdh,ybmovb,*36hajmpchayb:cjnea,*7dh,ycmovb,*39hajmpchayc:cjnea,*0eeh,yd mova,*1 mov59h,*0 pushacc acallf sjmpygyd:cjnea,*0deh,ye mova,*2 mov59h,*0 pushacc acallf sjmpygye:cjnea,*0beh,yf mova,*3 mov59h,*0 pushacc acallf sjmpygyf:mova,*4 mov59h,*0 pushacc acallfyg: pop55h mov51h,*0 movr0,*30hyg0:movr0,*0 incr0 cjner0,*40h,yg0 ajmpd1cha:mova,56h cjnea,*0,cha6 sjmpcha0cha6: cjner1,*10,cha0 ajmptestcha0: mov59h,*0 ;乘法和除法中用 cjner1,*50h,cha2 mov55h,*0 mov58h,*0 mova,56h cjnea,*0,cha2 mov56h,*1 mov50h,*0 movr0,*20hcha1: movr0,*0 incr0 cjner0,*30h,cha1cha2: cjner1,*1,cha3 movr0,54h cjner0,*30h,cha3 movr0,*0 movr1,*0cha3: cjner1,*51h,cha4 mov5ah,*2cha4: movr2,*8 ;重要語句cha5: mova,54h subba,r2 movr0,a mova,r0 decr0 movr0,a decr2 incr0 mova,r0 cjnea,54h,cha5 movr0,54h movr0,b acallshow ajmptest;f: mov5ah,*0 cjner1,*50h,f3 mov51h,*0 movr0,*30hff: movr0,*0 incr0 cjner0,*40h,fff2: popdpl popdpl movdptr,*ygpushdplpushdph retf3: mova,51h cjnea,*0,f4 sjmpf2f4: acallsuan retshow: acallstart mova,*8fh subba,r1 movp0,a ;寫入顯示起始地址〔第一行第一個位置〕acallenable ;調(diào)用寫入命令子程序 mova,54h subba,r1 movr0,a inc r1 mov a,r1 movr6,aacallwrite1 ret;lcd1602局部start: mov p0,*1h ;清屏并光標(biāo)復(fù)位 acallenable ;調(diào)用寫入命令子程序 mov p0,*8h ;設(shè)置顯示模式:8位2行5*7點(diǎn)陣 acallenable ;調(diào)用寫入命令子程序mov p0,*0ch ;顯示器開、光標(biāo)關(guān) acallenable ;調(diào)用寫入命令子程序 mov p0,*6h ;文字不動,光標(biāo)自動右移 acallenable ;調(diào)用寫入命令子程序 retenable: clrrs ;寫入控制命令的子程序 clrrw clre acalldelay setbe retwrite1: mova,r0 lcallwrite2 ;調(diào)用寫入數(shù)據(jù)存放器子程序 incr0 ;取碼指針加1 djnzr6,write1 retwrite2: movp0,a setbrs ;rs=1 clrrw ;rw=0準(zhǔn)備寫入數(shù)據(jù) clre ;e=0執(zhí)行顯示命令 acalldelay ;判斷液晶模塊是否忙"(用延時代替)setbe ;e=1 retdelay:movr2,*2fhdl1:movr3,*0fh djnzr3,$ djnzr2,dl1 retday:movr2,*100 ;按鍵延時0.1sdl3:movr3,*250dl2:nop nop djnzr3,dl2 djnzr2,dl3 ret;計(jì)算局部suan: mova,55h cjnea,*1,su0 mova,58h cjnea,*0,su acalljiafa sjmpsuan0su: acalljianfa sjmpsuan0su0:cjnea,*2,su4 mova,58h cjnea,*0,su1 acalljianfa sjmpsuan0su1:acalljiafa sjmpsuan0su4:cjnea,*3,su5 acallchengfa sjmpsuan0su5:acallchufasuan0: movr0,50h cjner0,*16,suan1suan1: jcsuan2su6:movr0,*20hsu7:movr0,*0 incr0 cjner0,*30h,su7 mov2ah,*'E' mov2bh,*'r' mov2ch,*'r' mov2dh,*'o' mov2eh,*'r' mov2fh,*'!' acallstart movp0,*80h movr0,*20h movr6,*10hacallwrite1 popdpl popdpl movdptr,*main1 pushdpl pushdph retsuan2: mov53h,*1 mova,50h cjnea,*1,suan3 mova,2fh cjnea,*30h,suan3 sjmpsuan4suan3: mova,58h cjnea,*0ffh,suan4 mova,*2fh subba,50h movr1,a movr1,*'-'suan4: acallstart movp0,*80h movr0,*20h movr6,*16acallwrite1 movr1,*0 ret;加法局部jiafa: mova,50h cjnea,51h,jia1jia1: jcjia2 movr2,50h mov52h,50h sjmpjia3jia2: movr2,51h mov52h,51hjia3: mov54h,*2fh mov57h,*3fh movr1,*4fhjia4: movr0,54h mova,r0 anla,*0fh pushacc movr0,57h mova,r0 anla,*0fh popb adda,b pushacc mova,r1 popb adda,b acallbcd movr1,b decr1 movr1,a dec54h dec57h djnzr2,jia4 mova,*4fh subba,52h movr0,a cjner0,*0,jia5 sjmpjia6jia5:inc52hjia6: acalljieguo retjianfa: mova,50h cjnea,51h,j3j0: movr2,50h mova,*2fh subba,50h inca movr0,a adda,*10h movr1,aj1:mova,r0 subba,r1 cjnea,*0,j2 incr0 incr1 djnzr2,j1 movr0,*20hj5:movr0,*0 incr0cjner0,*2fh,j5 mov58h,*0 mov2fh,*30h mov50h,*1 retj2: mova,r0 subba,r1j3: jncj4 mov54h,*3fh mov57h,*2fh movr1,*4fh movr2,51h mov52h,51h mova,58h cpla mov58h,a sjmpjianj4:mov54h,*2fh mov57h,*3fh movr1,*4fh movr2,50h mov52h,50hjian: movr0,57h mova,r0 anla,*0fh pushacc popb movr0,54h mova,r0 anla,*0fh clrc pushacc pushb subba,b pushacc jncjian3 popb popb popacc adda,*10 subba,b movr1,a mova,r2 movr3,a decr3 movr0,54h decr0jian1: clrc mova,r0 anla,*0fh pushacc subba,*1 pushacc jncjian2 clrc popb popacc adda,*10 subba,*1 orla,*30h movr0,a decr0 djnzr3,jian1jian2: popacc orla,*30h movr0,a popb sjmpjian4jian3: popacc movr1,a popb popbjian4: dec54h dec57h decr1 djnzr2,jian lcalljieguo mova,*2fh subba,50h inca movr0,ajian5: cjner0,*30h,jian6 movr0,*0 dec50h incr0 cjner0,*30h,jian5jian6: ret;乘法局部chengfa: mova,50h cjnea,*1,cheng4 mova,2fh cjnea,*30h,cheng4 retcheng4: mova,51h cjnea,*1,cheng5 mova,3fh cjnea,*30h,cheng5 mov52h,*1 sjmpchengcheng5: mov57h,*3fh movr2,*0 mova,50h adda,51h mov52h,a movr3,51h cjnea,*17,cheng3cheng3: jccheng mov50h,*16 retcheng: mov54h,*2fh movr1,*4fh mova,r1 clrc subba,r2 movr1,a movr4,50hcheng0: movr0,54h mova,r0 anla,*0fh pushacc movr0,57h mova,r0 anla,*0fh popb mulab pushacc mova,r1 popb adda,b lcallbcd movr1,b decr1 pushacc mova,r1 popb adda,b movr1,a dec54hdjnzr4,cheng0 dec57h incr2 djnzr3,chengdec52h mova,*4fh subba,52h movr0,a cjner0,*0,cheng1 sjmpcheng2cheng1:inc52hcheng2: lcalljieguo ret;除法局部chufa: mova,51h cjnea,*1,chuf mova,3fh cjnea,*30h,chuf mov50h,*16 retchuf: mova,50h cjnea,*1,chu mova,2fh cjnea,*30h,chu mov2fh,*30h mov58h,*0 sjmpchu2chu:mova,50h cjnea,51h,chu5 mova,*2fh subba,50h inca movr0,a adda,*10h movr1,a movr2,50hchu0: mova,r0 mov5bh,r1 cjnea,5bh,chu5 incr0 incr1 djnzr2,chu0 mov2fh,*31hchu2: movr0,*20hchu3: movr0,*0 incr0cjner0,*2fh,chu3 mov50h,*1 retchu5: jncchu6 mov2fh,*30h mov58h,*0 sjmpchu2chu6: mova,50h subba,51h inca movr4,a mov5ch,achu7: mova,r4 deca movr5,a cjner5,*0,chu9 sjmpchu11chu9: movr0,*31hchu10: mova,r0 decr0 movr0,a incr0 incr0 cjner0,*40h,chu10 mov3fh,*30h djnzr5,chu9 sjmpchu11chu19: movr0,*3fhchu20: decr0 mova,r0 incr0 movr0,a decr0 cjner0,*2fh,chu20 mov30h,*0chu11: movr0,*21h movr1,*31hchu12: mova,r0 mov5bh,r1 cjnea,5bh,chu13 incr0 incr1 cjner0,*30h,chu12 mova,*70h subba,r4 movr0,a incr0 sjmpchu15chu13: jcchu14 mova,*70h subba,r4 movr0,a incr0 lcallj4 sjmpchu11chu14: djnzr4,chu19chu15: movr0,*4fh movr1,*6fhchu16: mova,r1 movr0,a movr1,*0 decr0 decr1 cjner0,*40h,chu16 mov52h,5ch dec52h mova,*4fh subba,52h movr0,a cjner0,*0,chu17 sjmpchu18chu17:inc52hchu18: movr0,*2fhchu21: movr0,*0 decr0 cjner0,*1fh,chu21 acalljieguo ret;16進(jìn)制數(shù)轉(zhuǎn)換為BCD碼bcd:movb,*10 divab ret;保存結(jié)果到被操作數(shù)中jieguo: mov50h,52h movr0,*2fh movr1,*4fh movr2,52hjie1: mova,r1 orla,*30h movr0,a movr1,*0 decr0 decr1 djnzr2
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 送別 作文課件
- 第11課《短文二篇·記承天寺夜游》八年級語文上冊精講同步課堂(統(tǒng)編版)
- 西南林業(yè)大學(xué)《材料科學(xué)基礎(chǔ)》2021-2022學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《文案創(chuàng)意與寫作》2022-2023學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《模式識別技術(shù)》2021-2022學(xué)年期末試卷
- 西京學(xué)院《結(jié)構(gòu)力學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- 西華師范大學(xué)《舞臺實(shí)踐與服務(wù)》2022-2023學(xué)年第一學(xué)期期末試卷
- 2024-2025學(xué)年高中物理舉一反三系列專題4.5 氫原子光譜和玻爾的原子模型(含答案)
- 西華師范大學(xué)《教師禮儀》2021-2022學(xué)年第一學(xué)期期末試卷
- 西華師范大學(xué)《當(dāng)代中國政治制度》2022-2023學(xué)年第一學(xué)期期末試卷
- 2024市場營銷學(xué)教師資格證試講授課教案
- 《高熱驚厥的急救》課件
- 語文教學(xué)之學(xué)理
- 醫(yī)療衛(wèi)生行業(yè)醫(yī)療服務(wù)規(guī)范培訓(xùn)
- 青少年脊柱側(cè)彎護(hù)理查房課件
- 渠道下沉活動方案
- 初中科學(xué)備考套路知識講座
- 小學(xué)足球課題結(jié)題報(bào)告
- 高效數(shù)據(jù)標(biāo)注流程
- 幼兒園中的學(xué)習(xí)和成長
- 重癥監(jiān)護(hù)室護(hù)理員培訓(xùn)總結(jié)
評論
0/150
提交評論