版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)報(bào)告</p><p> ---基于Proteus和Keil C</p><p> 設(shè)計(jì)題目:4位數(shù)碼塊動(dòng)態(tài)顯示驅(qū)動(dòng)電路設(shè)計(jì)</p><p> 專業(yè)班級(jí): 10級(jí)通信技術(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芯片作為譯碼器實(shí)現(xiàn)了LED動(dòng)靜態(tài)顯示的基本原理,電路原理簡(jiǎn)單,價(jià)格低廉,可用于多位LED
3、顯示。</p><p> 四段LED顯示器也叫數(shù)碼管,它是由發(fā)光二極管組成的一個(gè)陣列,常用的LED顯示器用共陽(yáng)極和共陰極兩種結(jié)構(gòu)。為了使顯示器能發(fā)光,并且顯示數(shù)碼,需要加譯碼驅(qū)動(dòng)電路,常用的譯碼驅(qū)動(dòng)電路有靜態(tài)譯碼顯示和動(dòng)態(tài)譯碼顯示。靜態(tài)譯碼顯示是指一個(gè)譯碼驅(qū)動(dòng)電路驅(qū)動(dòng)一個(gè)四段顯示器進(jìn)行數(shù)碼顯示。動(dòng)態(tài)譯碼顯示是指多個(gè)七段顯示器共用一個(gè)譯碼驅(qū)動(dòng)電路,由掃描電路控制每個(gè)顯示器分時(shí)進(jìn)行顯示,每個(gè)顯示器按不同的時(shí)間輪流使
4、用譯碼驅(qū)動(dòng)電路。從而使顯示電路更加簡(jiǎn)單。</p><p> 數(shù)碼管的顯示分為動(dòng)態(tài)顯示和靜態(tài)顯示兩種工作方式。在靜態(tài)顯示控制中,只要驅(qū)動(dòng)器的設(shè)計(jì)能力與顯示器的工作電流想匹配就可以。而且,只需考慮段驅(qū)動(dòng),位驅(qū)動(dòng)按照所選用的數(shù)碼塊,共陰則將公共端接地,共陽(yáng)則將公共端接電源即可。在動(dòng)態(tài)顯示驅(qū)動(dòng)設(shè)計(jì)中,由于數(shù)碼管的實(shí)現(xiàn)是由段和位選信號(hào)共同配合完成的,因此,必須同時(shí)考慮和位的驅(qū)動(dòng)能力。段驅(qū)動(dòng)電流以脈沖形式輸出,其峰值電流并
5、不一定反映二極管的顯示亮度,一般需要提高驅(qū)動(dòng)電流,才能達(dá)到要求,并且采用獨(dú)立運(yùn)行的實(shí)時(shí)時(shí)鐘,就可避免不少麻煩,同時(shí)配合相關(guān)軟件就可以有效地完成所要達(dá)到的目的。</p><p><b> 目錄</b></p><p> 1.主要器件簡(jiǎn)介..................................................................
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è)計(jì)要求7</p><p> 2.2 各模塊方案選擇和論證7</p><p> 2.2.1 主控模塊的選擇和說(shuō)明....................
8、...................................7</p><p> 2.2.2 時(shí)鐘芯片的選擇和說(shuō)明.......................................................8</p><p> 2.2.3 顯示模塊的選擇和說(shuō)明..................................................
9、.....8</p><p> 2.3 最終選擇方案...............................................................................9</p><p> 3.系統(tǒng)硬件設(shè)計(jì)9</p><p><b> 3.1工作原理9</b></p><p
10、> 3.2 硬件電路10</p><p> 3.3 程序設(shè)計(jì)11</p><p> 4.系統(tǒng)硬件設(shè)計(jì)調(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è)計(jì)心得18</b></p
12、><p><b> 參考文獻(xiàn)20</b></p><p> 附錄.......................................................................................................21</p><p> 附錄1 系統(tǒng)硬件電路圖21</p>
13、<p> 附錄 2 電路板實(shí)物圖......................................................................22</p><p> 附錄3 程序PCB圖..........................................................................23</p><
14、;p> 附錄4 程序清單23</p><p><b> 1主要器件簡(jiǎn)介</b></p><p> 1 AT89C51</p><p> AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMO
15、S8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉
16、的方案。</p><p> 外形及引腳排列如圖所示:</p><p> 1.2 DS1302</p><p> DS1302是美國(guó)DALLAS公司推出的一種高性能、低功耗的實(shí)時(shí)時(shí)鐘日歷芯片,附加31字節(jié)靜態(tài)RAM,采用SPI三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)和RAM數(shù)據(jù)。實(shí)時(shí)時(shí)鐘可提供秒、分、時(shí)、日、星期、月和年,一個(gè)月
17、小于31天時(shí)可以自動(dòng)調(diào)整,且具有閏年補(bǔ)償功能。工作電壓寬達(dá)2.5~5.5V。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對(duì)后備電源進(jìn)行涓細(xì)電流充電的能力。有主電源和備份電源雙引腳,而且備份電源可由大容量電容(>1F)來(lái)替代。需要強(qiáng)調(diào)的是,DS1302需要使用32.768KHz的晶振。</p><p> DS1302芯片引腳圖</p><p> DS1302引腳功能
18、說(shuō)明 </p><p> 2 系統(tǒng)方案選擇和論證</p><p><b> 2.1 設(shè)計(jì)要求</b></p><p> 電子時(shí)鐘主要是利用電子技術(shù)將時(shí)鐘電子化、數(shù)字化,擁有時(shí)間精確、體積小、界面友好、可擴(kuò)展性能強(qiáng)等特點(diǎn),被廣泛應(yīng)用于生活和工作當(dāng)中。當(dāng)今市場(chǎng)上的電子時(shí)鐘品類繁多,外形小巧別致。也有體型較大的,諸如公共場(chǎng)所的大型電子報(bào)時(shí)器等。
19、電子時(shí)鐘首先是數(shù)字化了的時(shí)間顯示或報(bào)時(shí)器,在此基礎(chǔ)上,人們可以根據(jù)不同場(chǎng)合的要求,在時(shí)鐘上加置其他功能,比如定時(shí)鬧鈴,萬(wàn)年歷,環(huán)境溫度、濕度檢測(cè),環(huán)境空氣質(zhì)量檢測(cè),USB擴(kuò)展口功能等。</p><p> 2.2 各模塊方案選擇和論證</p><p> 2.2.1 主控模塊的選擇和說(shuō)明</p><p> 目前在單片機(jī)系統(tǒng)中,應(yīng)用比較廣泛的微處理器芯片主要為8XC
20、5X系列單片機(jī)。該系列單片機(jī)均采用標(biāo)準(zhǔn)MCS-51內(nèi)核,硬件資源相互兼容,品類齊全,功能完善,性能穩(wěn)定,體積小,價(jià)格低廉,貨源充足,調(diào)試和編程方便,所以應(yīng)用極為廣泛。</p><p> AT89C2051單片機(jī),帶有2KB Flash可編程、可擦除只讀存儲(chǔ)器(E2PROM)的低壓、高性能8位CMOS微型計(jì)算機(jī)。擁有15條可編程I/O引腳,2個(gè)16位定時(shí)器/計(jì)數(shù)器,6個(gè)中斷源,可編程串行UART通道,并能直接驅(qū)動(dòng)
21、LED輸出。</p><p> 為了完成時(shí)鐘設(shè)計(jì),應(yīng)用AT89C2051單片機(jī)完全可以實(shí)現(xiàn)。</p><p> 2.2.2 時(shí)鐘芯片的選擇和說(shuō)明</p><p> 在電子時(shí)鐘設(shè)計(jì)中,常用的實(shí)時(shí)時(shí)鐘芯片有DS12887、DS1216、DS1643、DS1302。每種芯片的主要時(shí)鐘功能基本相同,只是在引腳數(shù)量、備用電池的安裝方式、計(jì)時(shí)精度和擴(kuò)展功能等方面略有不同。
22、DS12887與DS1216芯片都有內(nèi)嵌式鋰電池作為備用電池; X1203引腳少,沒有嵌入式鋰電池,跟DS1302芯片功能相似,只是相比較之下,X1203與STC89C52搭配使用時(shí)占用I/O口較多。DS1643為帶有全功能實(shí)時(shí)時(shí)鐘的8K×8非易失性SRAM,集成了非易失性SRAM、實(shí)時(shí)時(shí)鐘、晶振、電源掉電控制電路和鋰電池電源,BCD碼表示的年、月、日、星期、時(shí)、分、秒,帶閏年補(bǔ)償。同樣,DS1643擁有28只管腳,硬件連接起
23、來(lái)占用微處理器I/O口較多,不方便系統(tǒng)功能拓展和維護(hù)。故而從性價(jià)比和貨源上考慮,本設(shè)計(jì)采用實(shí)時(shí)時(shí)鐘日歷芯片DS1302。</p><p> 2.2.3 顯示模塊的選擇和說(shuō)明</p><p> 本實(shí)驗(yàn)中要顯示的信息比較多,選擇數(shù)碼管顯示的話需要的數(shù)碼管數(shù)量將會(huì)很多,將是線路復(fù)雜,PCB布線混亂,因此選擇7SE-MPX4-CA作為顯示模塊。</p><p> 2.
24、3 最終選擇方案</p><p> 經(jīng)過(guò)方案比較和論證,選擇STC89C51作為主控芯片,時(shí)鐘芯片選擇DS1302,顯示模塊用7SEG-MPX4-CA,用四個(gè)獨(dú)立式鍵盤。</p><p><b> 3 系統(tǒng)軟件設(shè)計(jì)</b></p><p><b> 3.1 工作原理</b></p><p>&
25、lt;b> 數(shù)碼管的驅(qū)動(dòng)方式:</b></p><p> 數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來(lái)驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。 ① 靜態(tài)顯示驅(qū)動(dòng):靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動(dòng),或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度
26、高,缺點(diǎn)是占用I/O端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來(lái)驅(qū)動(dòng),要知道一個(gè)89S51單片機(jī)可用的I/O端口才32個(gè)呢:),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。 ② 動(dòng)態(tài)顯示驅(qū)動(dòng):數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極CO
27、M增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的</p><p><b> 3.2 硬件電路</b></p><p> 單片機(jī)電子鐘仿真電路</p>
28、<p><b> 3.3 程序設(shè)計(jì)</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,寫保護(hù)</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è)計(jì)調(diào)試與分析</p><p><b> 4.1 調(diào)試步驟</b></p><p><b> 4.1.1軟件調(diào)試</b></p><p> 軟件調(diào)試相對(duì)比較簡(jiǎn)單,但是要掌握仿真軟件的用法,首先在仿真軟件(Proteus)上建立仿真模型(電路圖),然后用Keil C編程序和Proteus進(jìn)行聯(lián)機(jī)仿真調(diào)
128、試,分別對(duì)顯示、按鍵、時(shí)鐘等各個(gè)部分進(jìn)行調(diào)試,檢測(cè)電路原理圖的正確與否。</p><p><b> 4.1.2硬件調(diào)試</b></p><p> 單片機(jī)基礎(chǔ)電路包括電源、單片機(jī)、外部時(shí)鐘震蕩電路、復(fù)位電路和外部接口電路。調(diào)試過(guò)程需要注意以下幾點(diǎn):</p><p> (1)檢查電源是否完好。</p><p> (2
129、)單片機(jī)電源要連接正確,并且保證AT89C51的31號(hào)引腳接高電平。AT89C51的31號(hào)引腳是外部程序存儲(chǔ)器選擇信號(hào)端,當(dāng)該引腳為高電平時(shí),單片機(jī)會(huì)一直從片內(nèi)程序存儲(chǔ)器內(nèi)取指令。</p><p> (3)如果使用P0口做I/O口,要接上拉電阻。</p><p> (4)使用萬(wàn)用表排查電路中是否存在斷路或者短路情況。筆者在制作外部接口電路時(shí)使用的是排針,焊接時(shí)容易出現(xiàn)管腳之間短路,所以
130、在上電以前必須先排查電路。</p><p> (5)編輯一個(gè)簡(jiǎn)單程序,上電運(yùn)行,檢查單片機(jī)是否正常工作,復(fù)位電路是否正確。</p><p> 4.2 性能分析 </p><p> 當(dāng)某一串聯(lián)支路上有一只LED品質(zhì)不良而短路時(shí),不管采用穩(wěn)壓式驅(qū)動(dòng)方式還是恒流式驅(qū)動(dòng)方式,通過(guò)該串聯(lián)電路的電流將增大,很容易損壞該串聯(lián)支路中的LED。大電流通過(guò)損壞
131、的這串LED后,由于通過(guò)的電流較大,多表現(xiàn)為斷路。斷開一個(gè)LED串聯(lián)支路后,如果采用穩(wěn)壓式驅(qū)動(dòng)方式,驅(qū)動(dòng)器的輸出電流將減小,而不影響余下的所有LED正常工作。</p><p> 如果采用恒流式LED驅(qū)動(dòng)方式,由于驅(qū)動(dòng)器的輸出電流保持不變,分配在余下的LED中的電流將增大,容易損壞所有的LED。解決辦法是盡量多并聯(lián)LED,這樣當(dāng)斷開某一只LED時(shí),分配在余下的LED中的電流不大,不至于影響余下的LED正常工作。&
132、lt;/p><p> 這種先串聯(lián)后并聯(lián)的線路的優(yōu)點(diǎn)是線路簡(jiǎn)單、亮度穩(wěn)定、可靠性高,并且對(duì)器件的一致性要求較低,不需要特別挑選器件,即使個(gè)別LED單管失效,對(duì)整個(gè)發(fā)光組件的影響也較小。在工作環(huán)境因素變化較大的情況下,使用這種連接形式的發(fā)光組件效果較為理想。</p><p> 先并后串混合連接構(gòu)成的發(fā)光組件的問(wèn)題主要是在單組并聯(lián)LED中,由于器件和使用條件的差別,單組中個(gè)別LED芯片可能喪失P
133、N結(jié)特性,出現(xiàn)短路。個(gè)別器件短路會(huì)使未失效的LED失去工作電流IF"‘導(dǎo)致整組LED熄滅,總電流全部從短路器件中通過(guò),而較長(zhǎng)時(shí)間的短路電流又會(huì)使器件內(nèi)部的鍵合金屬絲或其他部分燒毀,出現(xiàn)開路。這時(shí),未失效的LED重新獲得電流,恢復(fù)正常發(fā)光,只是工作電流IF較原來(lái)大一點(diǎn)。這就是這種連接形式的發(fā)光組件出現(xiàn)先是一組中幾只LED一起熄滅,一段時(shí)間后除其中一只LED不亮外,其他LED又恢復(fù)正常的原因。</p><p&g
134、t; 混聯(lián)方式還有另外一種接法,即是將LED平均分配后分組并聯(lián),再將每組串聯(lián)在一起。當(dāng)有一只LED品質(zhì)不良而短路時(shí),不管是采用穩(wěn)壓式驅(qū)動(dòng)方式還是恒流式驅(qū)動(dòng)方式,并聯(lián)在這一支路中的LED將全部不亮。如果采用恒流式LED驅(qū)動(dòng)方式,由于驅(qū)動(dòng)器的輸出電流保持不變,除了并聯(lián)在短路LED上的這一并聯(lián)支路外,其余的LED均正常工作。假設(shè)并聯(lián)的LED數(shù)量較多,驅(qū)動(dòng)器的驅(qū)動(dòng)電流較大,通過(guò)這只短路的LED的電流將增大。大電流通過(guò)這只短路的LED后,很容易
135、就變成斷路。由于并聯(lián)的LED較多,斷開一只LED后,平均分配電流變化不大,其余的LED依然可以正常工作,那么在整個(gè)LED燈中僅有一只LED不亮。</p><p><b> 5設(shè)計(jì)心得</b></p><p> 通過(guò)這次為期一個(gè)星期的單片機(jī)實(shí)驗(yàn),我們?nèi)齻€(gè)人基本掌握了Proteus和Keil的基本功能和使用方法,對(duì)80C51單片機(jī)系統(tǒng)有了一定的了解,使我們得到了一次用
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 八位七段數(shù)碼管動(dòng)態(tài)顯示電路設(shè)計(jì)
- 課程設(shè)計(jì)---動(dòng)態(tài)顯示的設(shè)計(jì)
- eda課程設(shè)計(jì)--八位數(shù)碼管掃描顯示電路的設(shè)計(jì)
- 課程設(shè)計(jì)--傳送帶動(dòng)態(tài)顯示重量
- 動(dòng)態(tài)顯示電路
- 課程設(shè)計(jì)---溫度測(cè)量顯示電路設(shè)計(jì)
- 溫度測(cè)量顯示電路課程設(shè)計(jì)--溫度測(cè)量顯示電路設(shè)計(jì)
- protel_99_se期末課程設(shè)計(jì)-動(dòng)態(tài)顯示
- 數(shù)碼管的動(dòng)態(tài)顯示設(shè)計(jì)與研究
- 4位dip開關(guān)控制數(shù)碼管顯示系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)
- 兩位數(shù)碼管顯示設(shè)計(jì)-課程設(shè)計(jì)
- 兩位數(shù)碼管顯示課程設(shè)計(jì)
- 8位十進(jìn)制數(shù)碼動(dòng)態(tài)掃描電路設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)--動(dòng)態(tài)數(shù)碼顯示技術(shù)
- PDP顯示驅(qū)動(dòng)電路設(shè)計(jì).pdf
- 兩位數(shù)碼管顯示設(shè)計(jì)-課程設(shè)計(jì)報(bào)告
- 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)--數(shù)碼管動(dòng)態(tài)顯示滾動(dòng)示單個(gè)數(shù)字設(shè)計(jì)
- 8位十進(jìn)制數(shù)碼動(dòng)態(tài)掃描電路設(shè)計(jì)報(bào)告資料
- pic課程設(shè)計(jì)--多位數(shù)碼管循環(huán)顯示
- 課程設(shè)計(jì)---正弦波發(fā)生、頻率顯示電路設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論