版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 一、任務(wù)與要求:</b></p><p><b> 1、設(shè)計(jì)目的:</b></p><p> 利用MCS-51單片機(jī)及相關(guān)芯片構(gòu)成收銀機(jī)。</p><p><b> 2、設(shè)計(jì)要求:</b></p><p><b> 系統(tǒng)實(shí)現(xiàn)如下功
2、能:</b></p><p> ?、?具有可擴(kuò)展鍵盤(pán)用以實(shí)現(xiàn)數(shù)字和“+”、“×”、“=”的輸入。</p><p> ?、?可循環(huán)實(shí)現(xiàn)單個(gè)用戶(hù)消費(fèi)總金額的計(jì)算。</p><p> ?、?具有復(fù)位、清零、找零和小數(shù)點(diǎn)顯示等擴(kuò)展的功能。</p><p><b> 二、設(shè)計(jì)過(guò)程:</b></p>
3、;<p><b> (A)工作流程:</b></p><p> ①通電后收銀機(jī)數(shù)碼管的初始顯示狀態(tài)為:最右邊的數(shù)碼管顯示“0”,其他數(shù)碼管不亮。</p><p> ?、诎磾?shù)字鍵鍵入商品單價(jià)和數(shù)量,鍵入數(shù)字時(shí)先高位后低位,單價(jià)按元的十位、個(gè)位、1/10位、1/100位依次鍵入,數(shù)量按件的十位、個(gè)位依次鍵入。計(jì)算商品的金額時(shí),先鍵入商品單價(jià),再鍵入商品的
4、數(shù)量。鍵入單價(jià)第一個(gè)數(shù)字時(shí),最右邊的數(shù)碼管由原來(lái)的“0”變?yōu)檫@個(gè)數(shù)字,以后鍵入新的數(shù)字時(shí),老的數(shù)字依次逐位左移,最后一位是新鍵入的數(shù)字。</p><p> ?、郯础?#215;”鍵再鍵入商品的數(shù)量,此時(shí),原商品的單價(jià)顯示不變,等待商品數(shù)量鍵入。當(dāng)鍵入商品的數(shù)量時(shí),數(shù)碼管單價(jià)顯示立即消失,轉(zhuǎn)為逐位顯示商品的數(shù)量。</p><p> ?、馨础埃辨I后將計(jì)算出最近一筆商品的金額。如有“乘數(shù)量”標(biāo)
5、志,便進(jìn)行這筆商品單價(jià)乘以數(shù)量的運(yùn)算,運(yùn)算的乘積金額累加到此前各筆商品累計(jì)的總金額中去,數(shù)碼管顯示最新累計(jì)的總金額。如無(wú)“乘數(shù)量”標(biāo)志位,就直接把這筆商品的單價(jià)累加到以前的總金額中去,得出最新累計(jì)的總金額。</p><p> ?、莅催^(guò)“+”鍵后,再鍵入下一筆商品的單價(jià)時(shí),剛才數(shù)碼管顯示的總金額消失,轉(zhuǎn)為逐位顯示鍵入商品的單價(jià)。</p><p> ?、拮詈蟮牟僮鲿r(shí)按“=”鍵。“=”鍵與“+”
6、鍵的作用相似,差別在于當(dāng)前“最新累計(jì)的總金額”已是最終“累計(jì)的總金額”了,至此,一位顧客的累計(jì)結(jié)束,不再等待下一筆商品單價(jià)的鍵入。</p><p> ?、咴阪I入單價(jià)或數(shù)量時(shí),如按錯(cuò)數(shù)字可以按清零鍵重新輸入,初始化時(shí)小數(shù)點(diǎn)為亮的,在輸入數(shù)字鍵時(shí),小數(shù)點(diǎn)消失。最終結(jié)果小數(shù)點(diǎn)是為亮的。 </p><p> ?、嗍浙y機(jī)一位顧客的累計(jì)結(jié)束,可按復(fù)位鍵,回到初始顯示狀態(tài),也是準(zhǔn)備接待下一位顧客。<
7、;/p><p> (B)硬件系統(tǒng)說(shuō)明與電路原理圖:</p><p> 根據(jù)收銀機(jī)的工作流程可知只需運(yùn)用“單片機(jī)試驗(yàn)系統(tǒng)”教學(xué)試驗(yàn)箱上的8279、鍵盤(pán)及LED顯示電路即可實(shí)現(xiàn)所有的功能。其原理圖如圖1所示。</p><p> 其中8279可按其功能分為:鍵盤(pán)功能塊、顯示功能塊、控制功能塊、與CPU接口功能塊??刂乒δ軌K包括控制和定時(shí)寄存器、定時(shí)和控制、掃描計(jì)數(shù)器三部
8、分,它主要用來(lái)控制鍵盤(pán)和顯示功能塊工作。</p><p> 顯示地址寄存器保存當(dāng)前CPU讀或?qū)懙哪莻€(gè)RAM地址,以及正顯示著的那兩個(gè)4位半字節(jié)的地址,讀寫(xiě)地址由CPU命令編程,也可置為每次讀寫(xiě)后地址自動(dòng)加1的工作方式,在設(shè)置了正確的工作方式后,顯示RAM可直接由CPU讀出,半字節(jié)A和半字節(jié)B地址自動(dòng)由8279更新,以適應(yīng)由CPU送入的數(shù)據(jù),A和B半字節(jié)可獨(dú)立送入,也可作為一個(gè)字送入,隨CPU所設(shè)置的工作方式而定
9、。</p><p> 當(dāng)鍵盤(pán)上出現(xiàn)有效的輸入時(shí),鍵輸入數(shù)據(jù)講自動(dòng)進(jìn)入8279的鍵盤(pán)RAM存儲(chǔ)器,并向MCS-51單片機(jī)請(qǐng)求中斷,單片機(jī)響應(yīng)中斷讀取鍵盤(pán)RAM中的鍵輸入數(shù)據(jù),并進(jìn)入中斷服務(wù)程序進(jìn)行相應(yīng)的處理,最后將數(shù)據(jù)返送到8279的顯示RAM中,通過(guò)74LS138選通與六個(gè)存儲(chǔ)字節(jié)相對(duì)應(yīng)的LED并顯示。若要更新顯示器輸出,僅需改變8279中顯示RAM中的內(nèi)容。</p><p><b
10、> 2、設(shè)計(jì)原理:</b></p><p> ?、旁趩纹瑱C(jī)內(nèi)部RAM分配的6個(gè)單元顯示緩沖區(qū)為39H~3EH,數(shù)碼管自右至左分別顯示39H~3EH單元內(nèi)容;商品單價(jià)輸入后自高到低存放在30H和33H單元中,商品數(shù)量輸入后存放在34H~35H單元中;還要為總金額存放分配50H~55H,稱(chēng)為和緩沖區(qū),總金額自高到低存放在里面。</p><p> ?、圃阪I盤(pán)的中斷服務(wù)程序中將
11、“單片機(jī)試驗(yàn)系統(tǒng)”教學(xué)試驗(yàn)箱鍵盤(pán)中的“A”、“B”、“C”、“D”、“E”、“F”分別擴(kuò)展為“*”、“+”、“清零”、“找零”、“=”和“復(fù)位”鍵。</p><p> ?、鞘浙y機(jī)的顯示器上要顯示單價(jià)、數(shù)量、金額等數(shù)字,實(shí)驗(yàn)裝置LED顯示器有6個(gè)數(shù)碼管,如將最右邊兩位分別認(rèn)作角、分,則六位可以表示的總金額不大于9999.99元,與此對(duì)應(yīng),每件商品的單價(jià)和數(shù)量也要有一定限制;故規(guī)定單價(jià)只可為0.01元-99.99元,
12、數(shù)量只可為1件-99件。</p><p> ?、仍趩纹瑱C(jī)內(nèi)RAM的位單元中分配5個(gè)標(biāo)志位,01H標(biāo)志位代表是否輸入符號(hào)鍵,即輸入“+”、“*”、“找零”鍵時(shí),01H置1;02H代表是否指向數(shù)量位,即當(dāng)02H為0時(shí),代表指向單價(jià)位,為1時(shí)代表指向數(shù)量位;03H代表是否按完乘號(hào)鍵;04H代表按完乘號(hào)鍵的第一次輸入,若為非零則置1;05H代表是否按過(guò)“=”,按過(guò)則置1。</p><p> 3、
13、 MCS-51單片機(jī)系統(tǒng)簡(jiǎn)介:</p><p> 40個(gè)引腳按引腳功能大致可分為4個(gè)種類(lèi):電源、時(shí)鐘、控制和I/O引腳。</p><p><b> ?、?電源: </b></p><p> ⑴ VCC - 芯片電源,接+5V;</p><p> ⑵ VSS - 接地端;</p><p>
14、注:用萬(wàn)用表測(cè)試單片機(jī)引腳電壓一般為0v或者5v,這是標(biāo)準(zhǔn)的TTL電平。但有時(shí)候在單片機(jī)程序正在工作時(shí)候測(cè)試結(jié)果并不是這個(gè)值而是介于0v-5v之間,其實(shí)這是萬(wàn)用表的響應(yīng)速度沒(méi)這么快而已,在某一個(gè)瞬間單片機(jī)引腳電壓仍保持在0v或者5v。</p><p> ⒉ 時(shí)鐘:XTAL1、XTAL2 - 晶體振蕩電路反相輸入端和輸出端。 </p><p> ?、?控制線:控制線共有4根,</p&
15、gt;<p> ?、?ALE/PROG:地址鎖存允許/片內(nèi)EPROM編程脈沖</p><p> ?、?ALE功能:用來(lái)鎖存P0口送出的低8位地址</p><p> ?、?PROG功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。</p><p> ?、?PSEN:外ROM讀選通信號(hào)。</p><p> ?、?/p>
16、 RST/VPD:復(fù)位/備用電源。</p><p> ?、?RST(Reset)功能:復(fù)位信號(hào)輸入端。</p><p> ② VPD功能:在Vcc掉電情況下,接備用電源。</p><p> ?、?EA/Vpp:內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。</p><p> ?、?EA功能:內(nèi)外ROM選擇端。</p><p&g
17、t; ?、?Vpp功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,施加編程電源Vpp。</p><p><b> ⒋ I/O線</b></p><p> 8051共有4個(gè)8位并行I/O端口:P0、P1、P2、P3口,共32個(gè)引腳。</p><p> P3口還具有第二功能,用于特殊信號(hào)輸入輸出和控制信號(hào)(屬控制總線) </p&g
18、t;<p> 圖1 收銀機(jī)電路原理圖</p><p> 三、軟件主要模塊流程圖、源程序及注釋</p><p><b> 2、程序思想: </b></p><p> (1)首先進(jìn)行8279的初始化,內(nèi)存清零,使最右邊顯示為0,其他不顯示;</p><p> (2)等待鍵值,看是否鍵入“復(fù)位”,若鍵
19、入“復(fù)位”,則調(diào)用復(fù)位功能;若沒(méi)鍵入“復(fù)位”鍵,則看是否鍵入“+”鍵,若鍵入“+”,則調(diào)用加號(hào)功能,然后等待鍵入數(shù)字;若沒(méi)鍵入“+”鍵,則看是否鍵入“*”鍵。若鍵入“*”鍵,則調(diào)用乘號(hào)功能,然后等待鍵入數(shù)字;若沒(méi)鍵入“*”鍵,看是否鍵入“清零”鍵。若鍵入“清零”鍵,則調(diào)用“清零”功能,然后等待鍵入數(shù)字;若沒(méi)鍵入“清零”鍵,則看是否鍵入“=”鍵。若按過(guò)“=”鍵,則調(diào)用等號(hào)功能,然后等待鍵入數(shù)字;若沒(méi)鍵入“=”鍵,則看是否鍵入“找零鍵”。若
20、按過(guò)“找零”鍵,則調(diào)用找零功能,然后等待鍵入數(shù)字;若沒(méi)鍵入“找零”鍵,則將顯示緩沖區(qū)39H~3EH的內(nèi)容顯示出來(lái)。 </p><p><b> 3、源程序:</b></p><p><b> ORG 0000H</b></p><p><b> LJMP MAIN</b></p>
21、<p><b> ORG 0013H</b></p><p> LJMP INT1P</p><p> MAIN: MOV SP,#60H</p><p><b> SETB EX1</b></p><p><b> NOP</b></p>
22、<p> MOV DPTR,#5FFFH</p><p> MOV A,#0DCH</p><p> MOVX @DPTR,A</p><p> LP: MOVX A,@DPTR</p><p> JB ACC.7,LP;等待清屏</p><p> MOV A,#00H</p>
23、;<p> MOVX @DPTR,A</p><p> MOV A,#34H;時(shí)鐘編程</p><p> MOVX @DPTR,A</p><p> CLR IT1;觸發(fā)方式設(shè)定</p><p><b> NOP</b></p><p><b> SETB EA
24、</b></p><p><b> NOP</b></p><p><b> LCALL CLC</b></p><p> QC10: LCALL DISY</p><p><b> LJMP QC10</b></p><p>
25、 CLC: MOV 59H,#1;復(fù)位59H置1,使能判斷是否要將待機(jī)時(shí)的0重寫(xiě),而不是左移</p><p> MOV R0,#3AH;使顯示RAM中只有一</p><p> MOV R7,#05H</p><p> MOV 39H,#0H </p><p> LAP2: MOV @R0,#23</p>&l
26、t;p><b> INC R0</b></p><p> DJNZ R7,LAP2</p><p> MOV R0,#50H;清空結(jié)果存放空間</p><p><b> MOV R7,#6</b></p><p> LAP3:MOV @R0,#0</p><p&
27、gt;<b> INC R0</b></p><p> DJNZ R7,LAP3</p><p> MOV R0,#30H;清空單價(jià)地址存放空間</p><p><b> MOV R7,#5</b></p><p> LAP4:MOV @R0,#0</p><p>
28、;<b> INC R0</b></p><p> DJNZ R7,LAP4</p><p> MOV 35H,#1;乘數(shù)空間初始值至少為1,因?yàn)橘I(mǎi)東西至少買(mǎi)1件</p><p> CLR 01H;01h是按完"+"號(hào)或“*”號(hào)的標(biāo)志位,按下其中之一便置1</p><p> CLR 02H;
29、02h用于判斷是否指向乘數(shù)地址單元,02h為1時(shí)36h指向乘數(shù)地址 ,為0是指向單</p><p> CLR 03H;判斷是否按完乘號(hào)</p><p><b> CLR 04H;</b></p><p> CLR 05H;判斷是否按下了“=”</p><p><b> RET</b><
30、/p><p> INT1P: PUSH ACC</p><p><b> PUSH DPH</b></p><p><b> PUSH DPL</b></p><p> MOV DPTR,#5EFFH</p><p> MOVX A,@DPTR</p>
31、<p> CJNE A,#0FH,NF;如按F,則復(fù)位</p><p><b> LCALL CLC</b></p><p> LJMP EXIT;復(fù)位完畢</p><p> NF: CJNE A,#0BH,NPLUS1;如按B,則代表“+”</p><p> LJMP JIAN1</p
32、><p> NPLUS1: LJMP NPLUS</p><p> JIAN1: SETB 01H;按下符號(hào)鍵了</p><p> CLR 02H;指向單價(jià)地址</p><p> M4: CLR 03H</p><p><b> CLR 04H</b></p><p
33、> MOV R0,#39H; 將數(shù)碼管全部熄滅等待目前總金額的出現(xiàn)</p><p> MOV R7,#06H</p><p> LLPA: MOV @R0,#23</p><p><b> INC R0</b></p><p> DJNZ R7,LLPA</p><p> MO
34、V A, 34H;將十位數(shù)提出了運(yùn)算</p><p><b> RL A</b></p><p><b> RL A</b></p><p><b> RL A</b></p><p><b> ADD A,34H</b></p>&
35、lt;p> ADD A,34H;將第一次這個(gè)數(shù)左移3次,相當(dāng)于乘以8,再加上自身2次,效果等同于此數(shù)于10相乘;(個(gè)位數(shù)乘以10不會(huì)溢出—)</p><p> ADD A,35H;將個(gè)位數(shù)加入</p><p> MOV 34H,A </p><p> MOV R2,34H;乘法采用多次加法的辦法,因此乘數(shù)初始值應(yīng)當(dāng)為1</p><p
36、> M2: MOV R4,#4</p><p> MOV R0,#55H</p><p> MOV R1,#33H</p><p><b> CLR C</b></p><p> M1: MOV A,@R0</p><p> ADDC A,@R1</p>
37、;<p><b> DA A</b></p><p> MOV C,ACC.4 ;調(diào)整后,A如果有進(jìn)位,一定是ACC.4為1(兩個(gè)個(gè)位數(shù)相加不可能超過(guò)19),沒(méi)進(jìn)位則ACC.4為0</p><p> ANL A,#0FH ;6位結(jié)果存儲(chǔ)字節(jié)存放的都是非壓縮的BCD碼,高四位應(yīng)該始終為0</p><p><b>
38、MOV @R0,A</b></p><p><b> DEC R0</b></p><p><b> DEC R1</b></p><p> DJNZ R4,M1</p><p><b> MOV A,@R0</b></p><p>
39、<b> ADDC A,#0</b></p><p><b> DA A</b></p><p> MOV C,ACC.4</p><p> ANL A,#0FH</p><p><b> MOV @R0,A</b></p><p><b
40、> DEC R0</b></p><p><b> MOV A,@R0</b></p><p><b> ADDC A,#0</b></p><p><b> DA A</b></p><p> ANL A,#0FH</p><p
41、><b> MOV @R0,A</b></p><p> DJNZ R2,M2;循環(huán)乘數(shù)次</p><p> MOV 40H,50H</p><p> MOV 41H,51H</p><p> MOV 42H,52H</p><p> MOV 43H,53H</p>
42、<p> MOV 44H,54H</p><p> MOV 45H,55H</p><p> MOV R0,#40H;若遇到最高位為零,則是它?</p><p> MOV R5,#03H</p><p> WW: CJNE @R0,#0,QQ</p><p> MOV @R0,#23&l
43、t;/p><p><b> INC R0</b></p><p> DJNZ R5,WW</p><p> QQ: MOV 3EH,40H;將計(jì)算的結(jié)果存入顯示RAM,從而顯示出來(lái)</p><p> MOV 3DH,41H</p><p> MOV 3CH,42H</p>
44、;<p> MOV 3BH,43H</p><p> MOV 3AH,44H</p><p> MOV 39H,45H</p><p> MOV R0,#30H;清空單價(jià)和乘數(shù)地址存放空間</p><p><b> MOV R7,#5</b></p><p> LLP5:
45、 MOV @R0,#0</p><p><b> INC R0</b></p><p> DJNZ R7,LLP5</p><p> MOV 35H,#1;加法運(yùn)算以后各位默認(rèn)為一,因?yàn)橘I(mǎi)東西不輸入數(shù)量默認(rèn)為1件</p><p> LJMP EXIT;加法內(nèi)容完畢</p><p>
46、 NPLUS: CJNE A,#0AH,NMUL;如按A,則代表“*”</p><p><b> SETB 01H</b></p><p> SETB 02H;指向乘數(shù)地址</p><p><b> SETB 03H</b></p><p> MOV 35H,#0;如要進(jìn)行乘法,必須
47、先將成數(shù)空間清零</p><p> MOV 34H,#0</p><p> LJMP EXIT;乘法內(nèi)容完畢</p><p> NMUL: CJNE A,#0CH,NDT;按C后可以清除本次輸</p><p> MOV 59H,#1</p><p> MOV R0,#3AH;使顯示RAM中只有一個(gè)0亮
48、</p><p> MOV R7,#05H</p><p> MOV 39H,#0H </p><p> LZP2: MOV @R0,#23</p><p><b> INC R0</b></p><p> DJNZ R7,LZP2</p><p>
49、JB 05H,APIN;判斷是否是清除輸入金額</p><p> JB 02H,CMUL</p><p> MOV R0,#30H;清空單價(jià)地址存放空間</p><p><b> MOV R7,#4</b></p><p> LQP4:MOV @R0,#0</p><p><b&g
50、t; INC R0</b></p><p> DJNZ R7,LQP4</p><p><b> LJMP L3</b></p><p> APIN: MOV R0,#29H;清空輸入金額地址存放空間</p><p><b> MOV R7,#6</b></p>
51、<p> LQP8: MOV @R0,#0</p><p><b> INC R0</b></p><p> DJNZ R7,LQP8</p><p> L3: LJMP EXIT</p><p> CMUL: MOV 34H,#0</p><p> MOV 3
52、5H,#0</p><p><b> LJMP EXIT</b></p><p> MOV R0,#3AH;使顯示RAM中只有一個(gè)0亮</p><p> MOV R7,#05H</p><p> MOV 39H,#0H </p><p> LBP2: MOV @R0,#23<
53、/p><p><b> INC R0</b></p><p> DJNZ R7,LBP2</p><p> NDT: CJNE A,#0EH,NEQ;如按E,則代表“=”</p><p><b> SETB 01H</b></p><p><b>
54、 SETB 05H</b></p><p> MOV R0,#29H;清空輸入金額地址存放空間</p><p><b> MOV R7,#6</b></p><p> LQP9: MOV @R0,#0</p><p><b> INC R0</b></p>
55、<p> DJNZ R7,LQP9</p><p><b> LJMP M4</b></p><p> NEQ: CJNE A,#0DH,NCR;如按D,則代表“找零鍵”</p><p> MOV R0,#39H;使顯示RAM中全滅</p><p> MOV R7,#06H <
56、;/p><p> LLAP2:MOV @R0,#23</p><p><b> INC R0</b></p><p> DJNZ R7,LLAP2</p><p><b> MOV R7,#6</b></p><p><b> CLR C</b>&
57、lt;/p><p> MOV R0,#29H</p><p> MOV R1,#55H</p><p> TXT:MOV A,@R0</p><p> SUBB A,@R1</p><p><b> JC CII</b></p><p><b> AJM
58、P TOT</b></p><p> CII: SUBB A,#05H;因?yàn)榇藭r(shí)Cy一定為1,所以調(diào)整時(shí)只需減5</p><p> ANL A,#0FH</p><p><b> SETB C</b></p><p> TOT: MOV @R1,A</p><p><
59、;b> INC R0</b></p><p><b> DEC R1</b></p><p> DJNZ R7,TXT</p><p> MOV R0,#50H;若遇到最高位為零,則是它?</p><p> MOV R5,#03H</p><p> WW1: CJ
60、NE @R0,#0,QQ1</p><p> MOV @R0,#23</p><p><b> INC R0</b></p><p> DJNZ R5,WW1</p><p> QQ1:MOV 3EH,50H;將計(jì)算的結(jié)果存入顯示RAM,從而顯示出來(lái)</p><p> MOV 3DH,
61、51H</p><p> MOV 3CH,52H</p><p> MOV 3BH,53H</p><p> MOV 3AH,54H</p><p> MOV 39H,55H</p><p><b> LJMP EXIT</b></p><p> NCR: J
62、B 05H,QINQIN</p><p> JB 02H,CC0</p><p> MOV 30H,31H</p><p> MOV 31H,32H</p><p> MOV 32H,33H</p><p><b> MOV 33H,A</b></p><p>&
63、lt;b> LJMP CC1</b></p><p> CC0: MOV 34H,35H</p><p><b> MOV 35H,A</b></p><p><b> LJMP CC1</b></p><p> QINQIN: MOV 2EH,2DH</p>
64、;<p> MOV 2DH,2CH</p><p> MOV 2CH,2BH</p><p> MOV 2BH,2AH</p><p> MOV 2AH,29H</p><p> MOV 29H,A </p><p> CC1: JB 01H,AFTER</p><p
65、> DJNZ 59H,L1</p><p><b> LJMP L2</b></p><p> L1: MOV 3EH,3DH</p><p> MOV 3DH,3CH</p><p> MOV 3CH,3BH</p><p> MOV 3BH,3AH</p>
66、<p> MOV 3AH,39H</p><p> L2: MOV 39H,A</p><p><b> LJMP EXIT</b></p><p><b> AFTER: </b></p><p><b> JB 03H,AM</b><
67、/p><p><b> LJMP NM</b></p><p> AM: SETB 04H</p><p> NM: MOV R0,#3AH</p><p> MOV R7,#05H</p><p><b> MOV 39H,A</b></p>
68、;<p> LJMP LLP6 </p><p> LLP6: MOV @R0,#23</p><p><b> INC R0</b></p><p> DJNZ R7,LLP6</p><p><b> CLR 01H</b></p><p>
69、 EXIT: LCALL DISY</p><p><b> POP DPL</b></p><p><b> POP DPH</b></p><p><b> POP ACC</b></p><p><b> RETI</b></p&
70、gt;<p> DISY: MOV R2,#06H</p><p> MOV A,#92H</p><p> MOV DPTR,#5FFFH</p><p> MOVX @DPTR,A</p><p> MOV R0,#39H</p><p> TY11: MOV A,@R0</
71、p><p> MOV DPTR,#TABL</p><p> MOVC A,@A+DPTR</p><p> MOV DPTR,#5EFFH</p><p> CJNE R2,#4,Q1</p><p><b> JB 04H,Q1</b></p><p> ANL
72、 A,#7FH</p><p> Q1: MOVX @DPTR,A</p><p><b> INC R0</b></p><p> DJNZ R2,TY11</p><p><b> RET</b></p><p> TABL: DB 0C0H,0F
73、9H,0A4H,0B0H,99H</p><p> DB 92H,82H,0F8H,80H,90H,88H</p><p> DB 83H,0C6H,0A1H,86H,8EH,8CH</p><p> DB 0C1H,89H,0C7H,0BFH,91H</p><p> DB 00H,0FFH</p><p>
74、<b> END </b></p><p><b> 四、課程設(shè)計(jì)總結(jié):</b></p><p> 1.在實(shí)現(xiàn)收銀機(jī)基本功能的基礎(chǔ)上,為了完善系統(tǒng),我又增加了一些擴(kuò)展功能:清零功能、找零功能、復(fù)位功能。</p><p> 2.數(shù)字鍵入錯(cuò)誤的問(wèn)題。解決方案:設(shè)置了一個(gè)清零鍵,可以恢復(fù)未輸入錯(cuò)誤數(shù)據(jù)時(shí)的單價(jià)或數(shù)量緩沖
75、單元的數(shù)值。</p><p> 3.單價(jià)和數(shù)量最大輸入長(zhǎng)度問(wèn)題。解決方案:給單價(jià)分配4個(gè)存儲(chǔ)單元(30H—33H),因?yàn)閱蝺r(jià)只能是0.01-99.99元,給數(shù)量分配2個(gè)單元(34H—35H),只能是1-99件。</p><p> 4.通過(guò)這次課程設(shè)計(jì)的學(xué)習(xí),我在剛開(kāi)始的時(shí)候完全不曉得怎樣下手,后來(lái)通過(guò)上網(wǎng)查詢(xún)資料,查詢(xún)相關(guān)的書(shū)籍,詢(xún)問(wèn)同學(xué),慢慢的對(duì)單片機(jī)程序的了解,最后成功的將本次的單
76、片機(jī)實(shí)驗(yàn)報(bào)告完成了,通過(guò)這次單片機(jī)設(shè)計(jì)的學(xué)習(xí),讓我了解到一件事只要認(rèn)真的去完成,總是會(huì)有解決的辦法的,還有必須珍惜同學(xué)關(guān)系這一資源,這會(huì)給你很多幫助</p><p><b> 五、參考資料:</b></p><p> 丁元杰 吳大偉 沈晉源 編單片微機(jī)習(xí)題集與實(shí)驗(yàn)指導(dǎo)書(shū)(第三版)</p><p> 丁元杰主編 單片微機(jī)原理及應(yīng)用(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- mcs-51系列單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于mcs-51單片機(jī)的溫度采集系統(tǒng)
- 基于_mcs-51單片機(jī)的洗衣機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于mcs-51單片機(jī)的頻率計(jì)的設(shè)計(jì)
- mcs-51單片機(jī)結(jié)構(gòu)介紹
- mcs-51單片機(jī)串行接口
- 課程設(shè)計(jì)---mcs-51單片機(jī)溫度控制系統(tǒng)
- mcs-51單片機(jī)結(jié)構(gòu)和原理
- mcs-51單片機(jī)結(jié)構(gòu)及原理題解
- 單片機(jī)相關(guān)外文翻譯--mcs-51系列單片機(jī)的功能和結(jié)構(gòu)
- mcs-51單片機(jī)的串行通信口
- mcs-51單片機(jī)存儲(chǔ)器結(jié)構(gòu)
- mcs-51單片機(jī)匯編指令集
- mcs-51單片機(jī)溫度控制系統(tǒng)
- 51單片機(jī)畢業(yè)論文--基于mcs-51單片機(jī)的步進(jìn)電機(jī)系統(tǒng)
- 51單片機(jī)課程設(shè)計(jì)
- MCS-51單片機(jī)溫度控制系統(tǒng).doc
- MCS-51單片機(jī)溫度控制系統(tǒng).doc
- 單片機(jī)課程設(shè)計(jì)--基于51單片機(jī)的定時(shí)鬧鐘設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---mcs-51單片機(jī)測(cè)溫系統(tǒng)的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論