版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)電子萬(wàn)年歷課程設(shè)計(jì)
- 單片機(jī)電子萬(wàn)年歷課程設(shè)計(jì)
- 單片機(jī)電子萬(wàn)年歷課程設(shè)計(jì)
- 單片機(jī)電子萬(wàn)年歷課程設(shè)計(jì)
- 基于51單片機(jī)電子萬(wàn)年歷
- 單片機(jī)電子萬(wàn)年歷課程設(shè)計(jì) (2)
- 單片機(jī)電子萬(wàn)年歷課程設(shè)計(jì) (2)
- 單片機(jī)課程設(shè)計(jì)—電子萬(wàn)年歷
- 單片機(jī)課程設(shè)計(jì)-電子萬(wàn)年歷
- 單片機(jī)課程設(shè)計(jì)-- 電子萬(wàn)年歷
- 單片機(jī)課程設(shè)計(jì)---電子萬(wàn)年歷設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--萬(wàn)年歷
- 單片機(jī)萬(wàn)年歷課程設(shè)計(jì)
- 單片機(jī)萬(wàn)年歷課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-萬(wàn)年歷
- 萬(wàn)年歷單片機(jī)課程設(shè)計(jì)
- 基于51單片機(jī)電子萬(wàn)年歷畢業(yè)論文
- 單片機(jī)課程設(shè)計(jì)--基于51單片機(jī)的萬(wàn)年歷
- 課程設(shè)計(jì)--基于51單片機(jī)的萬(wàn)年歷設(shè)計(jì)
- 萬(wàn)年歷課程設(shè)計(jì)--萬(wàn)年歷電子時(shí)鐘
評(píng)論
0/150
提交評(píng)論