51單片機(jī)電子萬(wàn)年歷課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  目 錄</b></p><p>  1設(shè)計(jì)要求與方案論證2</p><p>  1.1 設(shè)計(jì)要求3</p><p> ?、倌軌蝻@示年、月、日、時(shí)、分。3</p><p>  ②可以人為校正年、月、日、時(shí)、分。3</p><p>  ③地一次開(kāi)機(jī)顯示:200

2、0 01 01 12.00。3</p><p>  ④掉電信息不丟失。3</p><p>  1.2 系統(tǒng)基本方案選擇和論證3</p><p>  1.2.1單片機(jī)芯片的選擇方案和論證3</p><p>  1.2.3時(shí)鐘芯片的選擇方案和論證:4</p><p>  1.3 電路設(shè)計(jì)最終方案決定4</

3、p><p>  2系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn)4</p><p>  2.1 電路設(shè)計(jì)框圖4</p><p>  2.2 系統(tǒng)硬件概述5</p><p>  2.3 主要單元電路的設(shè)計(jì)5</p><p>  2.3.1單片機(jī)主控制模塊的設(shè)計(jì)5</p><p>  2.3.2時(shí)鐘電路模塊的設(shè)計(jì)6&

4、lt;/p><p>  2.3.3顯示模塊電路7</p><p>  2.3.4串口下載電路8</p><p>  2.3.5復(fù)位電路8</p><p>  2.3.6穩(wěn)壓電路9</p><p>  3系統(tǒng)的軟件設(shè)計(jì)10</p><p>  3.1程序流程框圖10</p>

5、<p>  3.2子程序的設(shè)計(jì)10</p><p>  3.2.1讀寫(xiě)DS1302子程序10</p><p>  3.2.1讀寫(xiě)LCD1602子程序11</p><p>  4軟件測(cè)試及分析13</p><p>  4.2分析與結(jié)論13</p><p>  4.2.1 調(diào)試分析13</p&g

6、t;<p>  4.2.2調(diào)試和結(jié)論14</p><p><b>  5總結(jié)14</b></p><p><b>  一.實(shí)驗(yàn)?zāi)康?lt;/b></p><p>  通過(guò)本次課程設(shè)計(jì)達(dá)到如下目的:</p><p>  1、熟悉MCS-51定時(shí)/計(jì)數(shù)器、中斷的應(yīng)用。</p>

7、<p>  2、熟悉時(shí)鐘時(shí)、分、秒計(jì)時(shí)方法,掌握編程技巧。</p><p>  3、掌握鍵盤(pán)的基本工作原理,鍵的識(shí)別,鍵抖動(dòng)和重鍵問(wèn)題的解決,鍵盤(pán)工作方式和鍵盤(pán)程序的編程。</p><p>  4、掌握七段碼LED顯示器的結(jié)構(gòu),七段碼LED顯示器的工作方式和顯示程序的編程。</p><p><b>  1設(shè)計(jì)要求與方案</b><

8、/p><p><b>  1.1 設(shè)計(jì)要求</b></p><p>  ①能夠顯示年、月、日、時(shí)、分。 </p><p> ?、诳梢匀藶樾U?、月、日、時(shí)、分。

9、 </p><p> ?、鄣匾淮伍_(kāi)機(jī)顯示:2000 01 01 12.00。 </p><p><b> ?、艿綦娦畔⒉粊G失。</b></p><p>  1.2 系統(tǒng)基本方案選擇和論證</p><p>  系統(tǒng)方案包括

10、單片機(jī)的選型、時(shí)鐘芯片的選擇和顯示模塊的確定等。</p><p>  1.2.1單片機(jī)芯片的選擇方案和論證</p><p>  方案:采用89C51芯片作為硬件核心,采用Flash ROM,內(nèi)部具有4KB ROM 存儲(chǔ)空間,能于3V的超低壓工作,而且與MCS-51系列單片機(jī)完全兼容,但是運(yùn)用于電路設(shè)計(jì)中時(shí)由于不具備ISP在線編程技術(shù), 當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略?/p>

11、功能需要燒入程序時(shí),對(duì)芯片的多次拔插會(huì)對(duì)芯片造成一定的損壞。</p><p>  1.2.2 顯示模塊選擇方案和論證</p><p>  方案:采用數(shù)碼管顯示,數(shù)碼管是由八個(gè)發(fā)光二極管組成,對(duì)于顯示數(shù)字字符比較適合,但對(duì)于電子萬(wàn)年歷需要的數(shù)碼管位數(shù)多,編程麻煩,且不穩(wěn)定,存在抖動(dòng)現(xiàn)象,需要通過(guò)軟件延時(shí)進(jìn)行消抖。</p><p><b>  。</b&

12、gt;</p><p>  1.2.3時(shí)鐘芯片的選擇方案和論證:</p><p>  方案;采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號(hào),使用程序?qū)崿F(xiàn)年、月、日、時(shí)、分計(jì)數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實(shí)現(xiàn)的時(shí)間誤差較大。所以不采用此方案。</p><p>  本課程設(shè)計(jì)采用DS1302作為時(shí)鐘的芯片。</p><p>  1.3 電路

13、設(shè)計(jì)最終方案決定</p><p>  綜上各方案所述,對(duì)此次設(shè)計(jì)的方案選定: 采用AT89C52作為主控制系統(tǒng); DS1302提供時(shí)鐘;LCD1602作為顯示。</p><p>  2系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn)</p><p>  2.1 電路設(shè)計(jì)框圖</p><p>  2.2 系統(tǒng)硬件概述</p><p>  本電路是由

14、AT89C52單片機(jī)為控制核心,具有在線編程功能,低功耗,能在3V超低壓工作;時(shí)鐘電路由DS1302提供,它是一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、時(shí)、分和秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線接口(SPI總線)與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31*8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。可產(chǎn)生年、月、日、時(shí)、分,具

15、有使用壽命長(zhǎng),精度高和低功耗等特點(diǎn),同時(shí)具有掉電自動(dòng)保存功能;顯示部分由LCD1602顯示,精度高,顯示穩(wěn)定。</p><p>  2.3 主要單元電路的設(shè)計(jì)</p><p>  單元電路的設(shè)計(jì)包括主控制系統(tǒng)、時(shí)鐘電路模塊、顯示模塊、串口下載模塊、復(fù)位電路和穩(wěn)壓電路的設(shè)計(jì)。</p><p>  2.3.1單片機(jī)主控制模塊的設(shè)計(jì)</p><p>

16、;  圖2-1 主控制系統(tǒng)</p><p>  2.3.2時(shí)鐘電路模塊的設(shè)計(jì)</p><p>  圖2-2示出DS1302的引腳排列,其中Vcc1為后備電源,Vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。

17、X1和X2是振蕩源,外接32.7、68KHz晶振。RST是復(fù)位/片選線,通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。I/O為串行數(shù)據(jù)輸入端(雙向)。SCLK始終是輸入端。如圖2-2所示。</p><p>  圖2-2 DS1302的引腳圖</p><p>  2.3.3顯示模塊電路</p><p>  如圖2-3所示,采用液晶1602數(shù)據(jù)端由P0提供實(shí)現(xiàn)8位并

18、行通信,其數(shù)據(jù)交換的速率比較快VL是調(diào)整液晶顯示的亮度,E是使能端口,RW是讀寫(xiě)控制端口,高電平讀信號(hào),低電平寫(xiě)信號(hào);RS是讀寫(xiě)命令與數(shù)據(jù)控制端口,高電平寫(xiě)數(shù)據(jù),低電平寫(xiě)命令。</p><p>  圖2-3 LCD 1062的電路圖</p><p>  2.3.4串口下載電路</p><p>  經(jīng)過(guò)KEIL C51編譯的匯編程序必須下載到單片機(jī)內(nèi)部運(yùn)行,才能實(shí)現(xiàn)所

19、需要的功能。然而單片機(jī)得1、0是用5V、和0V表示的,而電腦中的1、0用的電壓并不是5V、和0V,因此,必須用MAX232進(jìn)行電壓轉(zhuǎn)化,于是設(shè)計(jì)的串口下載電路。如圖2-4所示。</p><p>  圖2-4 串口下載電路</p><p><b>  2.3.5復(fù)位電路</b></p><p>  在單片機(jī)中運(yùn)行程序時(shí),如果程序跑飛,即程序運(yùn)行的

20、地址出現(xiàn)混亂時(shí),可以用復(fù)位電路,在低電平時(shí)程序從零地址從新開(kāi)始運(yùn)行。同時(shí)也可以使用看門(mén)狗,定時(shí)的喂狗,使程序每次從零地址開(kāi)始運(yùn)行。防止程序跑飛。如圖2-5所示。</p><p><b>  圖2-5 復(fù)位電路</b></p><p><b>  2.3.6穩(wěn)壓電路</b></p><p>  當(dāng)輸入的電壓高于或者低于51v

21、時(shí),可以用L7805CV穩(wěn)壓到5V,保證單片機(jī)穩(wěn)定的性能和可靠的穩(wěn)定性,其中的二極管是利用了單片機(jī)的單向?qū)щ娦?,?dǎo)致單片機(jī)被燒毀或者系統(tǒng)不能正常工作。如圖2-6所示。</p><p>  圖2-6 穩(wěn)壓電路3系統(tǒng)的軟件設(shè)計(jì)</p><p><b>  3.1程序流程框圖</b></p><p><b>  3.2子程序的設(shè)計(jì)</

22、b></p><p>  子程序設(shè)計(jì)包括兩部分:DS1302底層代碼的設(shè)計(jì)和LCD1602底層代碼的設(shè)計(jì),同時(shí)又是DS1302和LCD1602的驅(qū)動(dòng)程序。</p><p>  3.2.1讀寫(xiě)DS1302子程序</p><p>  DS1302_WRB: </p><p>  MOV40

23、H,#8</p><p><b>  MOVA,B</b></p><p>  RRCA </p><p><b>  MOVB,A</b></p><p>  MOVDS1302_IO,C</p><p> 

24、 SETB DS1302_CLK</p><p>  CLRDS1302_CLK</p><p>  DJNZ40H,LPW</p><p><b>  RET</b></p><p>  DS1302_RDB: </p><p>  MO

25、V40H,#8</p><p><b>  LPR:</b></p><p>  MOVC,DS1302_IO</p><p><b>  RRC A</b></p><p>  SETB DS1302_CLK</p><p>  CLRD

26、S1302_CLK</p><p>  DJNZ40H,LPR</p><p>  RET </p><p>  DS1302_READSEC: </p><p>  CLRDS1302_RST</p><p>  CLRDS1302_CLK<

27、/p><p>  SETBDS1302_RST</p><p>  MOVB,#81H </p><p>  CALLDS1302_WRB</p><p>  CALL DS1302_RDB</p><p>  MOV 30H,A &l

28、t;/p><p>  SETBDS1302_CLK</p><p>  CLRDS1302_RST</p><p><b>  RET</b></p><p>  3.2.1讀寫(xiě)LCD1602子程序</p><p>  LCD1602_WRC: </p>&l

29、t;p>  CLR LCD1602_RW</p><p>  CLR LCD1602_RS</p><p>  CLR LCD1602_RW</p><p><b>  MOV P0,A</b></p><p>  CALL DELAY</p><p>  SETB LCD160

30、2_E</p><p>  CALL DELAY</p><p>  CLR LCD1602_E</p><p>  CALL DELAY</p><p><b>  RET</b></p><p>  LCD1602_INIT: </p&

31、gt;<p>  MOV A,#01H </p><p>  CALL LCD1602_WRC</p><p>  MOV A,#38H</p><p>  CALL LCD1602_WRC</p><p>  MOV A,#08H</p><p>  CALL LCD1602_W

32、RC</p><p>  MOV A,#06H</p><p>  CALL LCD1602_WRC</p><p>  MOV A,#0cH</p><p>  CALL LCD1602_WRC</p><p><b>  RET</b></p><p> 

33、 LCD1602_WRD: </p><p>  SETB LCD1602_RS</p><p>  CLR LCD1602_RW</p><p>  CLR LCD1602_E</p><p><b>  MOV P0,A</b></p><p>  CAL

34、L DELAY</p><p>  SETBLCD1602_E</p><p>  CALL DELAY</p><p>  CLR LCD1602_E</p><p><b>  RET</b></p><p><b>  4軟件測(cè)試及分析</b></p&g

35、t;<p><b>  4.1軟件測(cè)試</b></p><p>  電子萬(wàn)年歷是多功能的數(shù)字顯示儀器。由于功能很多,所以對(duì)于它的程序也較為復(fù)雜,因此本次設(shè)計(jì)采用簡(jiǎn)化模型,即只顯示年月日,時(shí)分秒。但在程序調(diào)試時(shí)出現(xiàn)了相對(duì)較多的錯(cuò)誤。最后經(jīng)過(guò)多次的模塊子程序的修改,一步一步的完成,最終解決了軟件。在軟件的調(diào)試過(guò)程中主要遇到的問(wèn)題如下:</p><p><

36、;b>  4.2分析與結(jié)論</b></p><p>  4.2.1 調(diào)試分析</p><p>  (1)顯示的數(shù)據(jù)秒并沒(méi)有變化,原因是沒(méi)有啟動(dòng)定時(shí)器,我有不斷的讀取DS1302時(shí)鐘芯片寄存器中的數(shù)據(jù),并顯示才能實(shí)現(xiàn)所需要的功能,實(shí)時(shí)顯示年、月、日、星期、分鐘、小時(shí)、秒等基本功能來(lái)滿足系統(tǒng)的需求。</p><p> ?。?)調(diào)整時(shí)間后應(yīng)該先去掉寫(xiě)保護(hù)

37、,如果存在寫(xiě)保護(hù),那么在初始化寫(xiě)入初始時(shí)間時(shí),是寫(xiě)不進(jìn)去初始化的時(shí)間的。因而會(huì)看見(jiàn)顯示的時(shí)間并不隨著設(shè)置的初始化的值變化而變化,甚至我們看見(jiàn)的時(shí)間并不按著一秒一秒的增加。</p><p><b> ?。?lt;/b></p><p>  4.2.2調(diào)試和結(jié)論</p><p>  經(jīng)過(guò)多次反復(fù)修改程序,對(duì)電路各模塊的原理及功能更加熟悉,同時(shí)提高了設(shè)計(jì)能

38、力與及對(duì)電路的分析能力.同時(shí)在軟件的編程方面得到更到的提高,對(duì)所學(xué)的知識(shí)得到很大的提高與鞏固.</p><p><b>  5總結(jié)</b></p><p>  本次實(shí)驗(yàn)主要涉及了單片機(jī)I/O的使用、七段碼LED顯示、按鍵識(shí)別以及雙機(jī)串行通信方面的知識(shí)。</p><p>  首先設(shè)計(jì)實(shí)現(xiàn)電子萬(wàn)年歷并不困難,之前有過(guò)類似的實(shí)驗(yàn)。實(shí)現(xiàn)串行通信是這次的

39、難點(diǎn),我們?cè)趯?shí)驗(yàn)中首先實(shí)驗(yàn)了單工通信,解決了這方面的困難后在進(jìn)一步進(jìn)行雙工的實(shí)現(xiàn),最終完成了實(shí)驗(yàn)。</p><p><b>  附錄一:系統(tǒng)電路圖</b></p><p>  附錄二:系統(tǒng)程序清單</p><p><b>  org 0000h</b></p><p><b>  ljmp

40、 main</b></p><p><b>  org 000bh</b></p><p>  ljmp time</p><p><b>  org 0023h</b></p><p>  ljmp chuanxing</p><p><b>  o

41、rg 0030h</b></p><p><b>  main:</b></p><p>  setb p3.2</p><p>  setb p3.3</p><p>  setb p3.7</p><p>  setb p3.5</p><p>  

42、mov pcon,#00h</p><p>  mov scon,#01010000b</p><p>  mov tmod,#21h</p><p>  mov tl0,#0b0h</p><p>  mov th0,#3ch</p><p>  mov th1,#0cch ;產(chǎn)生600波特率</p

43、><p>  mov tl1,#0cch</p><p>  mov r5, #20 ;20次以達(dá)到1S的計(jì)時(shí)</p><p>  mov r4,#3 ;切換標(biāo)志位</p><p>  mov r6,#0ffh ;恢復(fù)暫停標(biāo)志</p><p>  mov r7,#1

44、 </p><p>  mov r3,#0ffh ;暫停標(biāo)志</p><p>  mov 50h,#0 ;存放時(shí)分秒的數(shù)據(jù)空間地址</p><p>  mov 51h,#0</p><p>  mov 52h,#0</p><p>  mov 53h,#0</p><p

45、>  mov 54h,#0</p><p>  mov 55h,#0</p><p>  mov 60h,#0ffh;串性發(fā)送標(biāo)志</p><p>  mov 61h,#0ffh</p><p>  mov 62h,#0ffh</p><p>  mov 70h,#0 ;存放串行接受的

46、數(shù) </p><p>  mov 71h,#0 ;接受從機(jī)發(fā)送的切換標(biāo)志</p><p><b>  setb ea</b></p><p><b>  setb es</b></p><p><b>  setb et0</b><

47、;/p><p><b>  setb tr0</b></p><p><b>  setb tr1</b></p><p><b>  start:</b></p><p><b>  call key</b></p><p>  mo

48、v a,70h </p><p>  cjne a,#0f1h,qiehuan;是否為串性標(biāo)接受到的切換志</p><p>  mov 70h,#0</p><p>  mov 71h,#1</p><p>  ljmp xianshi</p><p><b>  qiehua

49、n:</b></p><p>  cjne a,#0f2h,qiehuan1</p><p>  mov 70h,#0</p><p>  mov 71h,#2</p><p>  ljmp xianshi</p><p><b>  qiehuan1:</b></p>

50、<p>  cjne a,#0f3h,qiehuan2</p><p>  mov 70h,#0</p><p>  mov 71h,#3</p><p>  ljmp xianshi</p><p><b>  qiehuan2:</b></p><p><b>  mov

51、a,r0</b></p><p>  jnz xianshi</p><p><b>  mov a,70h</b></p><p>  cjne a,#0f6h,qiehuan3;是否為串性接受到的恢復(fù)暫停標(biāo)志</p><p><b>  mov r6,#0</b></p

52、><p><b>  ljmp stop</b></p><p><b>  qiehuan3:</b></p><p><b>  mov a,r3</b></p><p><b>  jz stop1</b></p><p><

53、;b>  mov a,70h</b></p><p>  cjne a,#0f7h,xianshi</p><p>  mov 70h,#0</p><p>  mov r6,#0ffh</p><p>  sjmp xianshi</p><p><b>  stop1:</b>

54、;</p><p><b>  ljmp stop</b></p><p>  ;51h, 50h miao</p><p>  ;53h,52h fen </p><p>  ;55h,54h shi</p><p>  xianshi: ;顯示子程序

55、</p><p>  mov dptr,#segtab ;顯示秒</p><p><b>  mov a,71h</b></p><p>  cjne a,#1,bingxing1</p><p>  sjmp bingxing2</p><p>  bingxin

56、g1:</p><p>  cjne r4,#3 ,fen</p><p>  bingxing2:</p><p>  mov a,51h</p><p>  movc a,@a+dptr</p><p><b>  mov p0,a</b></p><p><

57、;b>  mov a,50h</b></p><p>  movc a,@a+dptr</p><p><b>  mov p2,a</b></p><p>  mov a,60h ;串行發(fā)送秒</p><p>  jnz biaozhi</p>&l

58、t;p><b>  clr ti</b></p><p><b>  mov a,50h</b></p><p>  mov sbuf,a</p><p>  call t10ms</p><p><b>  jb ti ,$</b></p><p&g

59、t;<b>  mov a,51h</b></p><p>  mov sbuf,a</p><p><b>  jb ti,$</b></p><p>  mov 60h,#0ffh</p><p>  ;call t10ms</p><p><b>  biao

60、zhi:</b></p><p>  ljmp start</p><p>  fen: ;顯示分</p><p><b>  mov a,71h</b></p><p>  cjne a,#2,bingxing3</p><p>

61、  sjmp bingxing4</p><p>  bingxing3:</p><p>  cjne r4,#2 ,shi</p><p>  bingxing4:</p><p><b>  mov a,53h</b></p><p>  movc a,@a+dptr</p>

62、<p><b>  mov p0,a</b></p><p>  mov a,52h</p><p>  movc a,@a+dptr</p><p><b>  mov p2,a</b></p><p>  mov a,61h ;串行發(fā)送分&l

63、t;/p><p>  jnz biaozhi1</p><p><b>  clr ti</b></p><p><b>  mov a,52h</b></p><p>  mov sbuf,a</p><p><b>  jb ti ,$</b></

64、p><p>  call t10ms</p><p><b>  mov a,53h</b></p><p>  mov sbuf,a</p><p><b>  jb ti,$</b></p><p>  mov 60h,#0ffh</p><p>  

65、;call t10ms</p><p><b>  biaozhi1:</b></p><p>  ;call t10ms</p><p>  ljmp start</p><p>  shi: ;顯示時(shí)</p><p><b>

66、;  mov a,71h</b></p><p>  cjne a,#3,bingxing5</p><p>  sjmp bingxing6</p><p>  bingxing5:</p><p>  cjne r4,#1,shi1</p><p>  bingxing6:</p>&

67、lt;p><b>  mov a,55h</b></p><p>  movc a,@a+dptr</p><p><b>  mov p0,a</b></p><p>  mov a,54h</p><p>  movc a,@a+dptr</p><p><

68、b>  mov p2,a</b></p><p>  mov a,62h ;串行發(fā)送時(shí)?</p><p>  jnz biaozhi2</p><p><b>  clr ti</b></p><p><b>  mov a,54h</b

69、></p><p>  mov sbuf,a</p><p><b>  jb ti ,$</b></p><p>  call t10ms</p><p><b>  mov a,55h</b></p><p>  mov sbuf,a</p><

70、p><b>  jb ti,$</b></p><p>  mov 60h,#0ffh</p><p>  ;call t10ms</p><p><b>  biaozhi2:</b></p><p>  ;call t10ms</p><p><b>  

71、shi1:</b></p><p>  ljmp start</p><p>  stop: ;暫停子程序</p><p><b>  mov a,r6</b></p><p>  jz xianshi1</p><p>  ljmp start</p>

72、<p><b>  xianshi1:</b></p><p><b>  mov a,70h</b></p><p>  cjne a,#0f4h,aa </p><p>  mov 70h,#0</p><p>  ljmp num1</p><

73、p><b>  aa:</b></p><p><b>  mov a,r1</b></p><p><b>  jnz num1</b></p><p><b>  mov a,70h</b></p><p>  cjne a,#0f5h,bb&l

74、t;/p><p>  mov 70h,#0</p><p><b>  ljmp num2</b></p><p><b>  bb:</b></p><p><b>  mov a,r2</b></p><p><b>  jnz num2<

75、;/b></p><p>  ljmp start</p><p>  num1: ;高位累加</p><p>  cjne r4,#3,fen1 ;秒</p><p><b>  inc 51h</b></p><p><b>  mov a,5

76、1h</b></p><p>  cjne a,#6 ,qingling0</p><p>  mov 51h,#0</p><p>  qingling0:</p><p>  ljmp xianshi</p><p>  fen1: ;分</p><p>

77、;  cjne r4,#2,shi11</p><p><b>  inc 53h</b></p><p><b>  mov a,53h</b></p><p>  cjne a,#6 ,qingling1</p><p>  mov 53h,#0</p><p>  q

78、ingling1:</p><p>  ljmp xianshi </p><p><b>  ;時(shí)</b></p><p><b>  shi11:</b></p><p>  cjne r4,#1,qingling2</p><p><b>  inc 55h

79、</b></p><p><b>  mov a,55h</b></p><p>  cjne a,#6 ,qingling2</p><p>  mov 55h,#0</p><p>  qingling2:</p><p>  ljmp xianshi </p>&l

80、t;p>  num2: ;低位累加</p><p>  cjne r4,#3,fen2 ;秒</p><p><b>  inc 50h</b></p><p><b>  mov a,50h</b></p><p>  cjne a,#10,qingling

81、3</p><p>  mov 50h,#0</p><p>  qingling3:</p><p>  ljmp xianshi</p><p><b>  fen2:</b></p><p>  cjne r4,#2,shil2 ;分</p><

82、;p><b>  inc 52h</b></p><p><b>  mov a,52h</b></p><p>  cjne a,#10 ,qingling4</p><p>  mov 52h,#0</p><p>  qingling4:</p><p>  lj

83、mp xianshi </p><p><b>  ;時(shí)</b></p><p><b>  shil2:</b></p><p>  cjne r4,#1,qingling5</p><p><b>  inc 54h</b></p><p><

84、;b>  mov a,54h</b></p><p>  cjne a,#10 ,qingling5</p><p>  mov 54h,#0</p><p>  qingling5:</p><p>  ljmp xianshi </p><p>  time:

85、 ;中斷子程序</p><p><b>  mov a,r6</b></p><p>  jnz fanhui11</p><p><b>  reti</b></p><p><b>  fanhui11:</b></p><p&

86、gt;  djnz r5,next</p><p>  mov r5,#20</p><p><b>  inc 50h</b></p><p>  mov a,60h</p><p><b>  cpl a</b></p><p><b>  mov 60h,

87、a</b></p><p><b>  mov a,50h</b></p><p>  cjne a,#10,next</p><p><b>  inc 51h</b></p><p>  mov 50h,#0</p><p><b>  mov a,

88、51h</b></p><p>  cjne a,#6,next</p><p><b>  inc 52h</b></p><p>  mov a,61h</p><p><b>  cpl a</b></p><p><b>  mov 61h,a

89、</b></p><p>  mov 51h,#0</p><p><b>  mov a,52h</b></p><p>  cjne a,#10,next</p><p><b>  inc 53h</b></p><p>  mov 52h,#0</p

90、><p><b>  mov a,53h</b></p><p>  cjne a,#6,next</p><p><b>  inc 54h</b></p><p>  mov a,62h</p><p><b>  cpl a</b></p>

91、;<p><b>  mov 62h,a</b></p><p>  mov 53h,#0</p><p><b>  mov a,54h</b></p><p>  cjne a,#10,next</p><p><b>  inc 55h</b></p&

92、gt;<p>  mov 54h,#0</p><p><b>  mov a,55h</b></p><p>  cjne a,#6,next</p><p>  mov 55h,#0 ;重裝初值</p><p><b>  next:</b></p>&l

93、t;p>  ljmp fanhui1</p><p>  key ;鍵盤(pán)掃描子程序 p3.2切換 p3.3十位加</p><p>  p3.5暫停 p3.7個(gè)位加</p><p>  mov r0,#0</p><p>  mov r1,#0</p><p

94、>  mov r2,#0</p><p>  jb p3.2, rel1</p><p>  call t10ms</p><p>  jnb p3.2,fanhui ;第一個(gè)鍵按下子程序</p><p>  mov r0,#1</p><p>  mov p1,#0feh</p>

95、<p><b>  dec r4</b></p><p><b>  mov a,r4</b></p><p><b>  jnz rel5</b></p><p><b>  mov r4,#3</b></p><p><b> 

96、 rel5:</b></p><p>  ljmp t10ms</p><p>  rel1: ;第二個(gè)鍵按下子程序</p><p>  jb p3.3,rel2</p><p>  call t10ms</p><p>  jnb p3.3 ,fanhui</p><

97、;p><b>  mov r1,#1</b></p><p>  ljmp fanhui ;第三個(gè)鍵按下子程序</p><p><b>  rel2:</b></p><p>  jb p3.7,rel3</p><p>  call t10ms</p>&l

98、t;p>  jnb p3.7 ,fanhui</p><p><b>  mov r2,#1</b></p><p>  ljmp fanhui ;第四個(gè)鍵按下子程序</p><p><b>  rel3:</b></p><p>  jb p3.5,fanhui</p&g

99、t;<p>  call t10ms</p><p>  jnb p3.5 ,fanhui</p><p><b>  mov a,r3</b></p><p><b>  cpl a</b></p><p><b>  mov r3,a</b></p>

100、;<p><b>  mov a,r6</b></p><p><b>  cpl a</b></p><p><b>  mov r6,a</b></p><p>  ljmp fanhui</p><p>  t10ms: ;十毫秒延時(shí)程序&l

101、t;/p><p><b>  push 50h</b></p><p><b>  push 51h</b></p><p>  mov 50h,#0ffh</p><p><b>  loop1:</b></p><p>  mov 51h,#0ff

102、h</p><p><b>  nop</b></p><p><b>  loop2:</b></p><p><b>  nop</b></p><p>  djnz 51h,loop2</p><p>  djnz 50h,loop1</p&

103、gt;<p><b>  pop 51h</b></p><p><b>  pop 50h</b></p><p><b>  fanhui:</b></p><p>  ret</p><p><b>  fanhui1:&l

104、t;/b></p><p>  mov tl0,#0b0h</p><p>  mov th0,#3ch</p><p>  reti ;查表段</p><p><b>  segtab:</b></p><p>  db 0c0h,0f9h,0a4h,0b0h,99h,9

105、2h,82h,0f8h,80h,90h</p><p>  chuanxing:;串性中斷子程序</p><p>  jb ri,loop </p><p><b>  clr ti</b></p><p><b>  ajmp endt</b></p&g

106、t;<p><b>  loop:</b></p><p>  mov a,sbuf</p><p><b>  mov 70h,a</b></p><p><b>  clr ri</b></p><p><b>  endt: </b>&

107、lt;/p><p><b>  reti</b></p><p>  t1ms:;一豪秒的延時(shí)?</p><p><b>  push 50h</b></p><p><b>  push 51h</b></p><p>  mov 50h,

108、#0ffh</p><p><b>  loop11:</b></p><p>  mov 51h,#0ffh</p><p><b>  nop</b></p><p><b>  loop22:</b></p><p><b>  n

109、op</b></p><p>  djnz 51h,loop22</p><p>  djnz 50h,loop11</p><p><b>  pop 51h</b></p><p><b>  pop 50h</b></p><p><b>  re

110、t</b></p><p><b>  end</b></p><p>  (二):從機(jī)中的程序:</p><p><b>  org 0000h</b></p><p>  ljmp mainr</p><p><b>  org 0023h</

111、b></p><p>  ljmp intse2</p><p><b>  org 0030h</b></p><p><b>  mainr:</b></p><p><b>  ;51h,50h </b></p><p>  mov 50h,

112、#0</p><p>  mov 51h,#0</p><p>  mov 70h,#0</p><p><b>  mov r0,#0</b></p><p>  mov pcon,#00h</p><p>  mov scon,#01010000b</p><p>  

113、mov tmod,#20h</p><p>  mov th1,#0cch</p><p>  mov tl1,#0cch</p><p><b>  setb ea</b></p><p><b>  setb es</b></p><p><b>  setb

114、tr1</b></p><p>  mov r3,#0ffh</p><p><b>  mov r5,#0</b></p><p><b>  mov r7,#1</b></p><p><b>  mov r4,#3</b></p><p&g

115、t;  mov r6,#0ffh</p><p>  start: ;鍵盤(pán)調(diào)用子程序</p><p>  cjne r7,#0,xianshi1</p><p>  call xianshi</p><p><b>  mov r7,#1</b></p>

116、<p><b>  xianshi1:</b></p><p><b>  call key</b></p><p><b>  mov a,r0</b></p><p>  jnz fasong1</p><p><b>  mov a,r1</

117、b></p><p>  jnz fasong2</p><p><b>  mov a,r2</b></p><p>  jnz fasong3</p><p><b>  mov a,70h</b></p><p>  cjne a,#0f8h,abcc1</

118、p><p>  mov r3,#0ffh</p><p>  sjmp fasong5</p><p><b>  abcc1:</b></p><p><b>  mov a,r3</b></p><p>  jz fasong4</p><p>  s

119、jmp start</p><p><b>  fasong1:</b></p><p>  cjne r4,#3,bbc1</p><p>  mov a,#0f1h</p><p><b>  clr ti</b></p><p>  mov sbuf,a</p&g

120、t;<p><b>  jb ti,$</b></p><p><b>  bbc1:</b></p><p>  cjne r4,#2,bbc2</p><p>  mov a,#0f2h</p><p><b>  clr ti</b></p>

121、<p>  mov sbuf,a</p><p><b>  jb ti,$</b></p><p><b>  bbc2:</b></p><p>  cjne r4,#1,bbc3</p><p>  mov a,#0f3h</p><p><b> 

122、 clr ti</b></p><p>  mov sbuf,a</p><p><b>  jb ti,$</b></p><p><b>  bbc3:</b></p><p>  ljmp start</p><p><b>  fasong2:&

123、lt;/b></p><p>  mov a,#0f4h</p><p><b>  clr ti</b></p><p><b>  ;clr ri</b></p><p>  mov sbuf,a</p><p><b>  jb ti,$</b&g

124、t;</p><p>  ljmp start</p><p><b>  fasong3:</b></p><p>  mov a,#0f5h</p><p><b>  clr ti</b></p><p>  mov sbuf,a</p><p>

125、;<b>  jb ti,$</b></p><p>  ljmp start</p><p><b>  fasong4:</b></p><p>  mov a,#0f6h</p><p><b>  clr ti</b></p><p>  mov

126、 sbuf,a</p><p><b>  jb ti,$</b></p><p>  ljmp start</p><p><b>  fasong5:</b></p><p>  mov a,#0f7h</p><p><b>  clr ti</b>

127、;</p><p>  mov sbuf,a</p><p><b>  jb ti,$</b></p><p>  ljmp start</p><p>  intse2: ;串行中斷子程序</p><p>  jb ri,loop</p>

128、<p><b>  clr ti</b></p><p><b>  sjmp endt</b></p><p><b>  loop:</b></p><p>  mov a,sbuf</p><p>  cjne r5,#0,zhuanyi</p>

129、<p><b>  mov 50h,a</b></p><p>  ajmp zhuanyi1</p><p><b>  zhuanyi:</b></p><p><b>  mov 51h,a</b></p><p><b>  zhuanyi1:<

130、;/b></p><p><b>  clr ri</b></p><p><b>  inc r5</b></p><p>  cjne r5,#2,endt</p><p><b>  mov r5,0</b></p><p><b>

131、;  mov r7,#0</b></p><p>  endt: reti</p><p><b>  xianshi:</b></p><p>  mov dptr,#segtab</p><p><b>  ;顯示子程序</b></p><p><b&g

132、t;  mov a,50h</b></p><p>  movc a,@a+dptr</p><p><b>  mov p2,a</b></p><p><b>  mov a,51h</b></p><p>  movc a,@a+dptr</p><p>&

133、lt;b>  mov p0,a</b></p><p><b>  ret</b></p><p>  key:;鍵盤(pán)掃描子程序 p3.2切換 p3.3十位加 p3.5暫停 p3.7個(gè)位加</p><p>  mov r0,#0</p><p>  mov r1,#0</p>

134、<p>  mov r2,#0</p><p>  jb p3.2, rel1</p><p>  call t10ms</p><p>  jnb p3.2,fanhui ;第一個(gè)鍵按下子程序</p><p>  mov r0,#1</p><p><b>  

135、dec r4</b></p><p><b>  mov a,r4</b></p><p><b>  jnz rel5</b></p><p><b>  mov r4,#3</b></p><p><b>  rel5:</b></p

136、><p>  ljmp fanhui</p><p>  rel1: ;第二個(gè)鍵按下子程序</p><p>  jb p3.3,rel2</p><p>  call t10ms</p><p>  jnb p3.3 ,fanhui</p><p><b>  m

137、ov r1,#2</b></p><p>  ljmp fanhui ;第三個(gè)鍵按下子程序</p><p><b>  rel2:</b></p><p>  jb p3.7,rel3</p><p>  call t10ms</p><p>  jnb p3.7

138、,fanhui</p><p><b>  mov r2,#3</b></p><p>  ljmp fanhui ;第四個(gè)鍵按下子程序</p><p><b>  rel3:</b></p><p>  jb p3.5,fanhui</p><p>  call t

139、10ms</p><p>  jnb p3.5 ,fanhui </p><p><b>  inc r6</b></p><p>  cjne r6,#1,abc13</p><p><b>  mov r3,#0</b></p><p><b>  abc13:

140、</b></p><p>  cjne r6,#0,abc14</p><p><b>  mov r6,#2</b></p><p>  mov 70h,#0f8h</p><p><b>  abc14:</b></p><p>  ljmp fanhui&l

141、t;/p><p>  t10ms: ;十毫秒延時(shí)程序</p><p><b>  push 50h</b></p><p><b>  push 51h</b></p><p>  mov 50h,#0afh</p><p><b>  loop11:&l

142、t;/b></p><p>  mov 51h,#0ffh</p><p><b>  nop</b></p><p><b>  loop22:</b></p><p><b>  nop</b></p><p>  djnz 51h,lo

143、op22</p><p>  djnz 50h,loop11</p><p><b>  pop 51h</b></p><p><b>  pop 50h</b></p><p><b>  fanhui:</b></p><p><b>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論