課程設(shè)計---4位數(shù)碼塊動態(tài)顯示驅(qū)動電路設(shè)計_第1頁
已閱讀1頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  單片機原理及應(yīng)用課程設(shè)計報告</p><p>  ---基于Proteus和Keil C</p><p>  設(shè)計題目:4位數(shù)碼塊動態(tài)顯示驅(qū)動電路設(shè)計</p><p>  專業(yè)班級: 10級通信技術(shù)(1)班 </p><p>  參與人員: </p&g

2、t;<p>  指導(dǎo)老師: </p><p>  完成日期: 2012年5月21日至27日 </p><p><b>  摘要</b></p><p>  本電路應(yīng)用了AT89C51芯片作為譯碼器實現(xiàn)了LED動靜態(tài)顯示的基本原理,電路原理簡單,價格低廉,可用于多位LED

3、顯示。</p><p>  四段LED顯示器也叫數(shù)碼管,它是由發(fā)光二極管組成的一個陣列,常用的LED顯示器用共陽極和共陰極兩種結(jié)構(gòu)。為了使顯示器能發(fā)光,并且顯示數(shù)碼,需要加譯碼驅(qū)動電路,常用的譯碼驅(qū)動電路有靜態(tài)譯碼顯示和動態(tài)譯碼顯示。靜態(tài)譯碼顯示是指一個譯碼驅(qū)動電路驅(qū)動一個四段顯示器進(jìn)行數(shù)碼顯示。動態(tài)譯碼顯示是指多個七段顯示器共用一個譯碼驅(qū)動電路,由掃描電路控制每個顯示器分時進(jìn)行顯示,每個顯示器按不同的時間輪流使

4、用譯碼驅(qū)動電路。從而使顯示電路更加簡單。</p><p>  數(shù)碼管的顯示分為動態(tài)顯示和靜態(tài)顯示兩種工作方式。在靜態(tài)顯示控制中,只要驅(qū)動器的設(shè)計能力與顯示器的工作電流想匹配就可以。而且,只需考慮段驅(qū)動,位驅(qū)動按照所選用的數(shù)碼塊,共陰則將公共端接地,共陽則將公共端接電源即可。在動態(tài)顯示驅(qū)動設(shè)計中,由于數(shù)碼管的實現(xiàn)是由段和位選信號共同配合完成的,因此,必須同時考慮和位的驅(qū)動能力。段驅(qū)動電流以脈沖形式輸出,其峰值電流并

5、不一定反映二極管的顯示亮度,一般需要提高驅(qū)動電流,才能達(dá)到要求,并且采用獨立運行的實時時鐘,就可避免不少麻煩,同時配合相關(guān)軟件就可以有效地完成所要達(dá)到的目的。</p><p><b>  目錄</b></p><p>  1.主要器件簡介..................................................................

6、......................5</p><p>  1.1 AT89C51.........................................................................................5</p><p>  1.2 DS1302........................................

7、....................................................6</p><p>  2.系統(tǒng)方案選擇和論證7</p><p>  2.1 設(shè)計要求7</p><p>  2.2 各模塊方案選擇和論證7</p><p>  2.2.1 主控模塊的選擇和說明....................

8、...................................7</p><p>  2.2.2 時鐘芯片的選擇和說明.......................................................8</p><p>  2.2.3 顯示模塊的選擇和說明..................................................

9、.....8</p><p>  2.3 最終選擇方案...............................................................................9</p><p>  3.系統(tǒng)硬件設(shè)計9</p><p><b>  3.1工作原理9</b></p><p

10、>  3.2 硬件電路10</p><p>  3.3 程序設(shè)計11</p><p>  4.系統(tǒng)硬件設(shè)計調(diào)試與分析15</p><p>  4.1 調(diào)試步驟15</p><p>  4.1.1 軟件調(diào)試...............................................................

11、..............15</p><p>  4.1.2 硬件調(diào)試..............................................................................16</p><p>  4.2 性能分析16</p><p><b>  5.設(shè)計心得18</b></p

12、><p><b>  參考文獻(xiàn)20</b></p><p>  附錄.......................................................................................................21</p><p>  附錄1 系統(tǒng)硬件電路圖21</p>

13、<p>  附錄 2 電路板實物圖......................................................................22</p><p>  附錄3 程序PCB圖..........................................................................23</p><

14、;p>  附錄4 程序清單23</p><p><b>  1主要器件簡介</b></p><p>  1 AT89C51</p><p>  AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMO

15、S8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉

16、的方案。</p><p>  外形及引腳排列如圖所示:</p><p>  1.2 DS1302</p><p>  DS1302是美國DALLAS公司推出的一種高性能、低功耗的實時時鐘日歷芯片,附加31字節(jié)靜態(tài)RAM,采用SPI三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號和RAM數(shù)據(jù)。實時時鐘可提供秒、分、時、日、星期、月和年,一個月

17、小于31天時可以自動調(diào)整,且具有閏年補償功能。工作電壓寬達(dá)2.5~5.5V。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對后備電源進(jìn)行涓細(xì)電流充電的能力。有主電源和備份電源雙引腳,而且備份電源可由大容量電容(>1F)來替代。需要強調(diào)的是,DS1302需要使用32.768KHz的晶振。</p><p>  DS1302芯片引腳圖</p><p>  DS1302引腳功能

18、說明 </p><p>  2 系統(tǒng)方案選擇和論證</p><p><b>  2.1 設(shè)計要求</b></p><p>  電子時鐘主要是利用電子技術(shù)將時鐘電子化、數(shù)字化,擁有時間精確、體積小、界面友好、可擴展性能強等特點,被廣泛應(yīng)用于生活和工作當(dāng)中。當(dāng)今市場上的電子時鐘品類繁多,外形小巧別致。也有體型較大的,諸如公共場所的大型電子報時器等。

19、電子時鐘首先是數(shù)字化了的時間顯示或報時器,在此基礎(chǔ)上,人們可以根據(jù)不同場合的要求,在時鐘上加置其他功能,比如定時鬧鈴,萬年歷,環(huán)境溫度、濕度檢測,環(huán)境空氣質(zhì)量檢測,USB擴展口功能等。</p><p>  2.2 各模塊方案選擇和論證</p><p>  2.2.1 主控模塊的選擇和說明</p><p>  目前在單片機系統(tǒng)中,應(yīng)用比較廣泛的微處理器芯片主要為8XC

20、5X系列單片機。該系列單片機均采用標(biāo)準(zhǔn)MCS-51內(nèi)核,硬件資源相互兼容,品類齊全,功能完善,性能穩(wěn)定,體積小,價格低廉,貨源充足,調(diào)試和編程方便,所以應(yīng)用極為廣泛。</p><p>  AT89C2051單片機,帶有2KB Flash可編程、可擦除只讀存儲器(E2PROM)的低壓、高性能8位CMOS微型計算機。擁有15條可編程I/O引腳,2個16位定時器/計數(shù)器,6個中斷源,可編程串行UART通道,并能直接驅(qū)動

21、LED輸出。</p><p>  為了完成時鐘設(shè)計,應(yīng)用AT89C2051單片機完全可以實現(xiàn)。</p><p>  2.2.2 時鐘芯片的選擇和說明</p><p>  在電子時鐘設(shè)計中,常用的實時時鐘芯片有DS12887、DS1216、DS1643、DS1302。每種芯片的主要時鐘功能基本相同,只是在引腳數(shù)量、備用電池的安裝方式、計時精度和擴展功能等方面略有不同。

22、DS12887與DS1216芯片都有內(nèi)嵌式鋰電池作為備用電池; X1203引腳少,沒有嵌入式鋰電池,跟DS1302芯片功能相似,只是相比較之下,X1203與STC89C52搭配使用時占用I/O口較多。DS1643為帶有全功能實時時鐘的8K×8非易失性SRAM,集成了非易失性SRAM、實時時鐘、晶振、電源掉電控制電路和鋰電池電源,BCD碼表示的年、月、日、星期、時、分、秒,帶閏年補償。同樣,DS1643擁有28只管腳,硬件連接起

23、來占用微處理器I/O口較多,不方便系統(tǒng)功能拓展和維護。故而從性價比和貨源上考慮,本設(shè)計采用實時時鐘日歷芯片DS1302。</p><p>  2.2.3 顯示模塊的選擇和說明</p><p>  本實驗中要顯示的信息比較多,選擇數(shù)碼管顯示的話需要的數(shù)碼管數(shù)量將會很多,將是線路復(fù)雜,PCB布線混亂,因此選擇7SE-MPX4-CA作為顯示模塊。</p><p>  2.

24、3 最終選擇方案</p><p>  經(jīng)過方案比較和論證,選擇STC89C51作為主控芯片,時鐘芯片選擇DS1302,顯示模塊用7SEG-MPX4-CA,用四個獨立式鍵盤。</p><p><b>  3 系統(tǒng)軟件設(shè)計</b></p><p><b>  3.1 工作原理</b></p><p>&

25、lt;b>  數(shù)碼管的驅(qū)動方式:</b></p><p>  數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。 ① 靜態(tài)顯示驅(qū)動:靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機的I/O端口進(jìn)行驅(qū)動,或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度

26、高,缺點是占用I/O端口多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅(qū)動,要知道一個89S51單片機可用的I/O端口才32個呢:),實際應(yīng)用時必須增加譯碼驅(qū)動器進(jìn)行驅(qū)動,增加了硬件電路的復(fù)雜性。 ② 動態(tài)顯示驅(qū)動:數(shù)碼管動態(tài)顯示接口是單片機中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極CO

27、M增加位選通控制電路,位選通由各自獨立的I/O線控制,當(dāng)單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的</p><p><b>  3.2 硬件電路</b></p><p>  單片機電子鐘仿真電路</p>

28、<p><b>  3.3 程序設(shè)計</b></p><p><b>  ORG 0000H</b></p><p>  START:LJMP MAIN</p><p><b>  ORG 0030H</b></p><p>  MAIN:MOV SP,#5FH&

29、lt;/p><p>  MOV R0,#30H</p><p>  MOV R2,#30H</p><p>  MOV A,#00H</p><p>  LP0:MOV @R0,A</p><p><b>  INC R0</b></p><p>  DJNZ R2,LP0&l

30、t;/p><p>  LCALL DISPLAY</p><p>  ;SJMP MAIN</p><p>  MOV 41H,#00H </p><p>  LCALL START1302</p><p>  MOV 42H,#46H </p><p>  MOV 43H,#1

31、3H </p><p>  MOV 44H,#01H </p><p>  MOV 45H,#06H </p><p>  MOV 46H,#05H </p><p>  MOV 47H,#12H </p><p>  MOV 52H,#00H</p><

32、;p>  MOV 53H,#00H</p><p><b>  CLR 30H</b></p><p><b>  SETB 31H</b></p><p>  ; LCALL Set1302</p><p>  LCALL DISPLAY</p><p>  LP1:

33、 LCALL Get1302</p><p>  MOV 40H,41H</p><p>  LP11: LCALL DISPLAY</p><p>  LCALL GET1302</p><p><b>  MOV A,41H</b></p><p>  CJNE A,40H,LP2</

34、p><p><b>  LJMP LP21</b></p><p>  LP2: CPL 30H</p><p>  MOV 40H,41H</p><p>  ; LJMP LP11</p><p>  LP21: JB 31H,LP22 </p><p> 

35、 LCALL DSBJ</p><p>  LCALL DISPLAY</p><p>  LP22: LCALL KEYSCAN</p><p>  MOV DPTR,#TAB</p><p><b>  MOV A,30H</b></p><p><b>  RL A</b&g

36、t;</p><p><b>  ADD A,30H</b></p><p>  JMP @A+DPTR</p><p>  TAB: LJMP LP11 </p><p>  LJMP TSSZ </p><p>  LJMP SJY </p><p>  

37、LJMP FJY </p><p>  LJMP RQXS </p><p>  TSSZ: CPL 31H</p><p>  TSSZ0: JB P1.4,TSSZ1</p><p>  LCALL TSDISPLAY</p><p>  SJMP TSSZ0</p><p>  T

38、SSZ1: JNB 31H,TSSZ00 </p><p>  LCALL DISPLAY</p><p><b>  LJMP LP11</b></p><p>  TSSZ00:MOV 51,#20H</p><p>  TSSZ10:MOV 50H,#00H</p><p>  TSSZ1

39、1:JB P1.5,TSSZ3 </p><p><b>  MOV A,53H</b></p><p>  ADD A,#01H</p><p><b>  DA A</b></p><p>  CJNE A,#24H,TSSZ2</p><p>  MOV A,#

40、00H</p><p>  TSSZ2: MOV 53H,A</p><p>  TSS1: LCALL TSDISPLAY</p><p>  JNB P1.5,TSS1</p><p>  TSSZ3: LCALL TSDISPLAY </p><p>  JB P1.4,TSSZ11</p>

41、<p>  JNB P1.4,$</p><p>  MOV 51H,#20H</p><p>  TSSZF0:MOV 50H,#00H</p><p>  TSSZF1:JB P1.6,TSSZF3 </p><p><b>  MOV A,52H</b></p><p> 

42、 ADD A,#01H</p><p><b>  DA A</b></p><p>  CJNE A,#60H,TSSZF2</p><p>  MOV A,#00H</p><p>  TSSZF2: MOV 52H,A</p><p>  TSF1: LCALL TSDISPLAY<

43、;/p><p>  JNB P1.6,TSF1</p><p>  TSSZF3: LCALL TSDISPLAY</p><p>  JB P1.4,TSSZF1</p><p>  JNB P1.4,$</p><p>  LCALL TSDISPLAY</p><p><b>  L

44、JMP LP11</b></p><p>  DSBJ: MOV A,53H</p><p>  CJNE A,43H,DSBJ1</p><p><b>  MOV A,52H</b></p><p>  CJNE A, 42H,DSBJ1</p><p>  MOV 50H,#0

45、6H</p><p>  DSBJ0: CLR P1.3</p><p>  LCALL DISPLAY</p><p><b>  SETB P1.3</b></p><p>  LCALL D2MS</p><p>  DJNZ 50H,DSBJ0</p><p>  

46、; SETB 31H</p><p>  DSBJ1: RET</p><p>  SJY: MOV A,43H </p><p>  ADD A,#01H</p><p><b>  DA A</b></p><p>  CJNE A,#24H,SJY0</p>

47、<p>  MOV A,#00H</p><p>  SJY0: MOV 43H,A</p><p>  LCALL SET1302</p><p>  SJY1: JB P1.5,SJY2</p><p>  LCALL DISPLAY</p><p><b>  SJMP SJY1</b&

48、gt;</p><p>  SJY2: LJMP LP11</p><p>  FJY: MOV A,42H </p><p>  ADD A,#01H</p><p><b>  DA A</b></p><p>  CJNE A,#60H,FJY0</p><

49、;p>  MOV A,#00H</p><p>  FJY0: MOV 42H,A</p><p>  LCALL SET1302</p><p>  FJY1:JB P1.6,FJY2</p><p>  LCALL DISPLAY</p><p><b>  SJMP FJY1</b>&

50、lt;/p><p>  FJY2:LJMP LP11</p><p>  RQXS:LCALL RQDISPLAY</p><p>  RQXS1:JB P1.7,RQXS2</p><p>  LCALL RQDISPLAY</p><p>  SJMP RQXS1</p><p>  RQXS2

51、:MOV R3,#00H</p><p>  RQXS3:LCALL RQDISPLAY</p><p>  LCALL RQDISPLAY</p><p>  DJNZ R3,RQXS3</p><p>  LCALL DISPLAY</p><p><b>  LJMP LP11</b><

52、;/p><p>  KEYSCAN:PUSH ACC</p><p>  MOV 30H,#00H</p><p>  ORL P1,#0F0H</p><p><b>  MOV A,P1</b></p><p><b>  SWAP A</b></p><

53、p>  ANL A,#0FH</p><p>  JB ACC.0,K1</p><p>  MOV 30H,#01H</p><p>  SJMP KEYEND</p><p>  K1: JB ACC.1,K2</p><p>  MOV 30H,#02H</p><p>  SJMP

54、 KEYEND</p><p>  K2: JB ACC.2,K3</p><p>  MOV 30H,#03H</p><p>  SJMP KEYEND</p><p>  K3: JB ACC.3,KEYEND</p><p>  MOV 30H,#04H</p><p>  KEYEND

55、: POP ACC</p><p><b>  RET</b></p><p>  KEYPLAY:MOV R5,#04H</p><p>  MOV R0,#52H </p><p>  MOV R3,#08H</p><p>  DIS2:MOV DPTR,#TABLE</p>

56、;<p><b>  MOV A,@R0</b></p><p>  ANL A,#0FH</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p><b>  MOV A,R3</b></p&g

57、t;<p><b>  MOV P2,A</b></p><p>  LCALL D2MS</p><p><b>  MOV A,@R0</b></p><p>  ANL A,#0F0H</p><p><b>  SWAP A</b></p>

58、<p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p><b>  MOV A,R3</b></p><p><b>  RR A</b></p><p><b>  MOV R3,A</b>

59、;</p><p><b>  MOV P2,A</b></p><p><b>  INC R0</b></p><p><b>  MOV A,R3</b></p><p><b>  RR A</b></p><p><

60、b>  MOV R3,A</b></p><p>  LCALL D2MS</p><p>  DJNZ R5,DIS2</p><p><b>  CLR P2.0</b></p><p><b>  RET</b></p><p>  DISPLAY:P

61、USH ACC</p><p><b>  PUSH PSW</b></p><p>  MOV DPTR,#TABLE</p><p>  MOV R1,#42H</p><p><b>  MOV A,@R1</b></p><p>  ANL A,#0FH</p&

62、gt;<p>  MOVC A,@A+DPTR</p><p>  MOV C,31H </p><p>  MOV ACC.7,C</p><p><b>  MOV P0,A</b></p><p>  MOV P2,#0FEH </p><p>  ;MOV

63、 P2,#08H </p><p>  LCALL D2MS</p><p>  MOV P2,#00H</p><p><b>  MOV A,@R1</b></p><p><b>  SWAP A</b></p><p>  ANL A,#0FH</p&g

64、t;<p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p>  MOV P2,#0FDH</p><p>  ;MOV P2,#04H</p><p>  LCALL D2MS</p><p>  MOV P2,#00H<

65、/p><p>  MOV R1,#43H</p><p><b>  MOV A,@R1</b></p><p>  ANL A,#0FH</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV C,30H</b></p><p&

66、gt;  MOV ACC.7,C</p><p><b>  MOV P0,A</b></p><p>  MOV P2,#0FBH</p><p>  ; MOV P2,#02H</p><p>  LCALL D2MS</p><p>  MOV P2,#00H</p><

67、p><b>  MOV A,@R1</b></p><p><b>  SWAP A</b></p><p>  ANL A,#0FH</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p

68、>  MOV P2,#0F7H</p><p>  ; MOV P2,#01H</p><p>  LCALL D2MS</p><p>  MOV P2,#00H</p><p><b>  POP PSW</b></p><p><b>  POP ACC</b>&

69、lt;/p><p><b>  RET</b></p><p>  RQDISPLAY:PUSH ACC </p><p><b>  PUSH PSW</b></p><p>  MOV DPTR,#TABLE</p><p>  MOV R1,#44H<

70、;/p><p><b>  MOV A,@R1</b></p><p>  ANL A,#0FH</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p>  MOV P2,#0FEH </p>&l

71、t;p>  ;MOV P2,#08H </p><p>  LCALL D2MS</p><p>  MOV P2,#00H</p><p><b>  MOV A,@R1</b></p><p><b>  SWAP A</b></p><p>  ANL A

72、,#0FH</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p>  MOV P2,#0FDH</p><p>  ;MOV P2,#04H</p><p>  LCALL D2MS</p><p>  MO

73、V P2,#00H</p><p>  MOV R1,#45H</p><p><b>  MOV A,@R1</b></p><p>  ANL A,#0FH</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p

74、><p>  MOV P2,#0FBH</p><p>  ; MOV P2,#02H</p><p>  LCALL D2MS</p><p>  MOV P2,#00H</p><p><b>  MOV A,@R1</b></p><p><b>  SWAP

75、A</b></p><p>  ANL A,#0FH</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p>  MOV P2,#0F7H</p><p>  ; MOV P2,#01H</p><p&

76、gt;  LCALL D2MS</p><p>  MOV P2,#00H</p><p><b>  POP PSW</b></p><p><b>  POP ACC</b></p><p><b>  RET</b></p><p>  TSDIS

77、PLAY:PUSH ACC </p><p><b>  PUSH PSW</b></p><p>  MOV DPTR,#TABLE</p><p>  MOV R1,#52H</p><p><b>  MOV A,@R1</b></p><p>  ANL

78、 A,#0FH</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p>  MOV P2,#0FEH </p><p>  ;MOV P2,#08H </p><p>  LCALL D2MS</p><

79、;p>  MOV P2,#00H</p><p><b>  MOV A,@R1</b></p><p><b>  SWAP A</b></p><p>  ANL A,#0FH</p><p>  MOVC A,@A+DPTR</p><p><b>  

80、MOV P0,A</b></p><p>  MOV P2,#0FDH</p><p>  ;MOV P2,#04H</p><p>  LCALL D2MS</p><p>  MOV P2,#00H</p><p>  MOV R1,#53H</p><p><b> 

81、 MOV A,@R1</b></p><p>  ANL A,#0FH</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p>  MOV P2,#0FBH</p><p>  ; MOV P2,#02H</p>

82、;<p>  LCALL D2MS</p><p>  MOV P2,#00H</p><p><b>  MOV A,@R1</b></p><p><b>  SWAP A</b></p><p>  ANL A,#0FH</p><p>  MOVC A,

83、@A+DPTR</p><p><b>  MOV P0,A</b></p><p>  MOV P2,#0F7H</p><p>  ; MOV P2,#01H</p><p>  LCALL D2MS</p><p>  MOV P2,#00H</p><p><

84、b>  POP PSW</b></p><p><b>  POP ACC</b></p><p><b>  RET</b></p><p>  D2MS: MOV R6,#02H</p><p>  DL1: MOV R5,#249</p><p>&l

85、t;b>  DL2: NOP</b></p><p><b>  NOP</b></p><p>  DJNZ R5,DL2</p><p><b>  NOP</b></p><p>  DJNZ R6,DL1</p><p><b>  RET

86、</b></p><p>  TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH</p><p>  T_CLK Bit P1.0 </p><p>  T_IO Bit P1.1

87、 </p><p>  T_RST Bit P1.2 </p><p>  Second data 41H</p><p>  Set1302: CLR T_RST</p><p>  CLR T_CLK</p><

88、p>  SETB T_RST</p><p>  MOV B, #8EH </p><p>  LCALL RTInputByte</p><p>  MOV B, #00H </p><p>  LCALL RTInputByte</p><p>  

89、SETB T_CLK</p><p>  CLR T_RST</p><p>  MOV R0, #Second </p><p>  MOV R7, #7 </p><p>  MOV R2, #80H </p><p>  Set1302

90、1: CLR T_RST</p><p>  CLR T_CLK</p><p>  SETB T_RST</p><p>  MOV B, R2 </p><p>  LCALL RTInputByte</p><p>  MOV A, @R0

91、 </p><p>  MOV B, A</p><p>  LCALL RTInputByte</p><p><b>  INC R0</b></p><p><b>  INC R2</b></p><p><b>  INC

92、 R2</b></p><p>  SETB T_CLK</p><p>  CLR T_RST</p><p>  DJNZ R7, Set13021</p><p>  CLR T_RST</p><p>  CLR T_CLK</p><p> 

93、 SETB T_RST</p><p>  MOV B, #8EH </p><p>  LCALL RTInputByte</p><p>  MOV B, #80H </p><p>  LCALL RTInputByte</p><p>  SETB

94、 T_CLK</p><p>  CLR T_RST</p><p><b>  RET</b></p><p>  Get1302: PUSH ACC</p><p><b>  PUSH PSW</b></p><p>  ; SETB PSW.4</p&g

95、t;<p>  ; SETB PSW.3</p><p>  MOV R0, #Second</p><p>  MOV R7, #3</p><p>  MOV R2, #81H </p><p>  Get1: CLR T_RST</p><p>  CLR

96、T_CLK</p><p>  SETB T_RST</p><p>  MOV B, R2 </p><p>  LCALL RTInputByte</p><p><b>  NOP</b></p><p>  LCALL RTOutputByte</p>

97、;<p>  MOV @R0,A </p><p><b>  INC R0</b></p><p><b>  INC R2</b></p><p><b>  INC R2</b></p><p>  SETB T_

98、CLK</p><p>  CLR T_RST</p><p>  LCALL DISPLAY</p><p>  DJNZ R7,Get1</p><p>  ; CLR PSW.3</p><p>  ; CLR PSW.4</p><p><b>  POP PSW&

99、lt;/b></p><p><b>  POP ACC</b></p><p><b>  RET</b></p><p>  Get13021: PUSH ACC</p><p><b>  PUSH PSW</b></p><p>  ;

100、SETB PSW.4</p><p>  ; SETB PSW.3</p><p>  MOV R0, #51H;</p><p>  MOV R7, #01</p><p>  MOV R2, #81H </p><p>  Get2: CLR T_RST</p>&

101、lt;p>  CLR T_CLK</p><p>  SETB T_RST</p><p>  MOV B, R2 </p><p>  LCALL RTInputByte</p><p><b>  NOP</b></p><p>  LCALL RTOu

102、tputByte</p><p>  MOV @R0,A </p><p><b>  INC R0</b></p><p><b>  INC R2</b></p><p><b>  INC R2</b></p><

103、;p>  SETB T_CLK</p><p>  CLR T_RST</p><p>  LCALL DISPLAY</p><p>  DJNZ R7,Get2</p><p>  ; CLR PSW.3</p><p>  ; CLR PSW.4</p><p>&l

104、t;b>  POP PSW</b></p><p><b>  POP ACC</b></p><p><b>  RET</b></p><p>  START1302:</p><p>  CLR T_RST</p><p>  CLR T_

105、CLK</p><p>  SETB T_RST</p><p>  MOV B, #8EH </p><p>  LCALL RTInputByte</p><p>  MOV B, #00H </p><p>  LCALL RTInputByte</

106、p><p>  SETB T_CLK</p><p>  CLR T_RST</p><p>  MOV R0, #Second </p><p>  MOV R7, #01H </p><p>  MOV R2, #80H </p>

107、<p>  START13021: CLR T_RST</p><p>  CLR T_CLK</p><p>  SETB T_RST</p><p>  MOV B, R2 </p><p>  LCALL RTInputByte</p><p>  MOV

108、 A, @R0 </p><p>  MOV B, A</p><p>  LCALL RTInputByte</p><p><b>  INC R0</b></p><p><b>  INC R2</b></p><p&

109、gt;<b>  INC R2</b></p><p>  SETB T_CLK</p><p>  CLR T_RST</p><p>  DJNZ R7, START13021</p><p>  CLR T_RST</p><p>  CLR T_CLK<

110、;/p><p>  SETB T_RST</p><p>  MOV B,#8EH ;控制寄存器</p><p>  LCALL RTInputByte</p><p>  MOV B,#80H ;控制,WP=1,寫保護</p><p>  LCALL RTInputByte

111、</p><p>  SETB T_CLK</p><p>  CLR T_RST</p><p><b>  RET</b></p><p><b>  RAMWRITE:</b></p><p>  CLR T_RST</p><p&g

112、t;  CLR T_CLK</p><p>  SETB T_RST</p><p>  MOV B, #8EH </p><p>  LCALL RTInputByte</p><p>  MOV B, #00H </p><p>  LCALL RT

113、InputByte</p><p>  SETB T_CLK</p><p>  CLR T_RST</p><p>  ; MOV R0, #RAM8951 </p><p>  ; MOV R7, #COUNTER </p><p>  ; MOV R2,

114、 #RAM1302 </p><p>  RAMWRITE1: CLR T_RST</p><p>  CLR T_CLK</p><p>  SETB T_RST</p><p>  MOV B, R2 </p><p>  LCALL RTInput

115、Byte</p><p>  MOV A, @R0 </p><p>  MOV B, A</p><p>  LCALL RTInputByte</p><p><b>  INC R0</b></p><p><b>  INC

116、 R2</b></p><p><b>  INC R2</b></p><p>  LCALL DISPLAY</p><p>  SETB T_CLK</p><p>  CLR T_RST</p><p>  DJNZ R7, RAMWRITE1<

117、/p><p>  CLR T_RST</p><p>  CLR T_CLK</p><p>  SETB T_RST</p><p>  MOV B, #8EH </p><p>  LCALL RTInputByte</p><p>  MOV

118、B, #80H </p><p>  LCALL RTInputByte</p><p>  SETB T_CLK</p><p>  CLR T_RST</p><p><b>  RET</b></p><p>  RAM1302RD: PUSH ACC<

119、;/p><p><b>  PUSH PSW</b></p><p>  ; MOV R0, #RAM8951 </p><p>  ; MOV R7, #COUNTER</p><p>  ; MOV R2, #RAM1302 </p><p>  RAM1302RD1:

120、CLR T_RST</p><p>  CLR T_CLK</p><p>  SETB T_RST</p><p>  MOV B, R2 </p><p>  LCALL RTInputByte</p><p>  LCALL RTOutputByte</p>

121、<p>  MOV @R0,A </p><p><b>  INC R0</b></p><p><b>  INC R2</b></p><p><b>  INC R2</b></p><p>  SETB T_CLK

122、</p><p>  CLR T_RST</p><p>  DJNZ R7,RAM1302RD1</p><p><b>  POP PSW</b></p><p><b>  POP ACC</b></p><p><b>  RET</b>

123、;</p><p>  RTInputByte:</p><p>  MOV R4, #8</p><p>  Inbit1: MOV A, B</p><p><b>  RRC A</b></p><p>  MOV B, A</p>

124、;<p>  MOV T_IO, C</p><p>  SETB T_CLK</p><p>  CLR T_CLK</p><p>  DJNZ R4, Inbit1</p><p><b>  RET</b></p><p>  RTOutputByt

125、e:</p><p>  MOV R4,#8</p><p>  Outbit1: SETB T_IO</p><p>  MOV C,T_IO</p><p><b>  RRC A</b></p><p>  SETB T_CLK</p><p>

126、;  CLR T_CLK</p><p>  DJNZ R4, Outbit1</p><p><b>  RET</b></p><p><b>  LJMP MAIN</b></p><p><b>  END</b></p><p>

127、;  4 系統(tǒng)硬件設(shè)計調(diào)試與分析</p><p><b>  4.1 調(diào)試步驟</b></p><p><b>  4.1.1軟件調(diào)試</b></p><p>  軟件調(diào)試相對比較簡單,但是要掌握仿真軟件的用法,首先在仿真軟件(Proteus)上建立仿真模型(電路圖),然后用Keil C編程序和Proteus進(jìn)行聯(lián)機仿真調(diào)

128、試,分別對顯示、按鍵、時鐘等各個部分進(jìn)行調(diào)試,檢測電路原理圖的正確與否。</p><p><b>  4.1.2硬件調(diào)試</b></p><p>  單片機基礎(chǔ)電路包括電源、單片機、外部時鐘震蕩電路、復(fù)位電路和外部接口電路。調(diào)試過程需要注意以下幾點:</p><p>  (1)檢查電源是否完好。</p><p>  (2

129、)單片機電源要連接正確,并且保證AT89C51的31號引腳接高電平。AT89C51的31號引腳是外部程序存儲器選擇信號端,當(dāng)該引腳為高電平時,單片機會一直從片內(nèi)程序存儲器內(nèi)取指令。</p><p>  (3)如果使用P0口做I/O口,要接上拉電阻。</p><p>  (4)使用萬用表排查電路中是否存在斷路或者短路情況。筆者在制作外部接口電路時使用的是排針,焊接時容易出現(xiàn)管腳之間短路,所以

130、在上電以前必須先排查電路。</p><p>  (5)編輯一個簡單程序,上電運行,檢查單片機是否正常工作,復(fù)位電路是否正確。</p><p>  4.2 性能分析 </p><p>  當(dāng)某一串聯(lián)支路上有一只LED品質(zhì)不良而短路時,不管采用穩(wěn)壓式驅(qū)動方式還是恒流式驅(qū)動方式,通過該串聯(lián)電路的電流將增大,很容易損壞該串聯(lián)支路中的LED。大電流通過損壞

131、的這串LED后,由于通過的電流較大,多表現(xiàn)為斷路。斷開一個LED串聯(lián)支路后,如果采用穩(wěn)壓式驅(qū)動方式,驅(qū)動器的輸出電流將減小,而不影響余下的所有LED正常工作。</p><p>  如果采用恒流式LED驅(qū)動方式,由于驅(qū)動器的輸出電流保持不變,分配在余下的LED中的電流將增大,容易損壞所有的LED。解決辦法是盡量多并聯(lián)LED,這樣當(dāng)斷開某一只LED時,分配在余下的LED中的電流不大,不至于影響余下的LED正常工作。&

132、lt;/p><p>  這種先串聯(lián)后并聯(lián)的線路的優(yōu)點是線路簡單、亮度穩(wěn)定、可靠性高,并且對器件的一致性要求較低,不需要特別挑選器件,即使個別LED單管失效,對整個發(fā)光組件的影響也較小。在工作環(huán)境因素變化較大的情況下,使用這種連接形式的發(fā)光組件效果較為理想。</p><p>  先并后串混合連接構(gòu)成的發(fā)光組件的問題主要是在單組并聯(lián)LED中,由于器件和使用條件的差別,單組中個別LED芯片可能喪失P

133、N結(jié)特性,出現(xiàn)短路。個別器件短路會使未失效的LED失去工作電流IF"‘導(dǎo)致整組LED熄滅,總電流全部從短路器件中通過,而較長時間的短路電流又會使器件內(nèi)部的鍵合金屬絲或其他部分燒毀,出現(xiàn)開路。這時,未失效的LED重新獲得電流,恢復(fù)正常發(fā)光,只是工作電流IF較原來大一點。這就是這種連接形式的發(fā)光組件出現(xiàn)先是一組中幾只LED一起熄滅,一段時間后除其中一只LED不亮外,其他LED又恢復(fù)正常的原因。</p><p&g

134、t;  混聯(lián)方式還有另外一種接法,即是將LED平均分配后分組并聯(lián),再將每組串聯(lián)在一起。當(dāng)有一只LED品質(zhì)不良而短路時,不管是采用穩(wěn)壓式驅(qū)動方式還是恒流式驅(qū)動方式,并聯(lián)在這一支路中的LED將全部不亮。如果采用恒流式LED驅(qū)動方式,由于驅(qū)動器的輸出電流保持不變,除了并聯(lián)在短路LED上的這一并聯(lián)支路外,其余的LED均正常工作。假設(shè)并聯(lián)的LED數(shù)量較多,驅(qū)動器的驅(qū)動電流較大,通過這只短路的LED的電流將增大。大電流通過這只短路的LED后,很容易

135、就變成斷路。由于并聯(lián)的LED較多,斷開一只LED后,平均分配電流變化不大,其余的LED依然可以正常工作,那么在整個LED燈中僅有一只LED不亮。</p><p><b>  5設(shè)計心得</b></p><p>  通過這次為期一個星期的單片機實驗,我們?nèi)齻€人基本掌握了Proteus和Keil的基本功能和使用方法,對80C51單片機系統(tǒng)有了一定的了解,使我們得到了一次用

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論