

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課 程 設(shè) 計(jì)</p><p> 課程設(shè)計(jì)題目:簡(jiǎn)單電子鐘設(shè)計(jì)</p><p><b> 一、設(shè)計(jì)目的</b></p><p> 通過(guò)課程設(shè)計(jì)使學(xué)生更進(jìn)一步掌握微機(jī)原理及應(yīng)用課程的有關(guān)知識(shí),提高應(yīng)用微機(jī)解決問(wèn)題的能力,加深對(duì)微機(jī)應(yīng)用的理解。通過(guò)查閱資料,結(jié)合所學(xué)知識(shí)進(jìn)行軟、硬件的設(shè)計(jì),使學(xué)生初步掌握應(yīng)用微機(jī)解決
2、問(wèn)題的步驟及方法。為以后學(xué)生結(jié)合專業(yè)從事微機(jī)應(yīng)用設(shè)計(jì)奠定基礎(chǔ)。</p><p> 二、設(shè)計(jì)的原始資料及依據(jù)</p><p> 查閱計(jì)數(shù)器/定時(shí)器,可編程并行接口芯片8255,或其他相關(guān)資料。</p><p> 啟動(dòng)定時(shí)器,累計(jì)秒,分(時(shí)),并顯示。</p><p> 三、設(shè)計(jì)的主要內(nèi)容及要求</p><p>
3、 內(nèi)容:利用單片機(jī)原理試驗(yàn)箱的發(fā)光數(shù)碼管顯示單元,把時(shí)間換顯示在LED數(shù)碼管上。</p><p> 要求:1)走時(shí)準(zhǔn)確。2)顯示無(wú)誤。</p><p> 四、對(duì)設(shè)計(jì)說(shuō)明書(shū)撰寫(xiě)內(nèi)容、格式、字?jǐn)?shù)的要求 </p><p> 1.課程設(shè)計(jì)說(shuō)明書(shū)(論文)是體現(xiàn)和總結(jié)課程設(shè)計(jì)成果的載體,一般不應(yīng)少于3000字。</p><p> 2.學(xué)生應(yīng)撰寫(xiě)
4、的內(nèi)容為:目錄、正文、參考文獻(xiàn)等。課程設(shè)計(jì)說(shuō)明書(shū)(論文)的結(jié)構(gòu)及各部分內(nèi)容要求可參照《沈陽(yáng)工程學(xué)院畢業(yè)設(shè)計(jì)(論文)撰寫(xiě)規(guī)范》執(zhí)行。應(yīng)做到文理通順,內(nèi)容正確完整,書(shū)寫(xiě)工整,裝訂整齊。</p><p> 3.說(shuō)明書(shū)(論文)手寫(xiě)或打印均可。手寫(xiě)要用學(xué)校統(tǒng)一的課程設(shè)計(jì)用紙,用黑或藍(lán)黑墨水工整書(shū)寫(xiě);打印時(shí)按《沈陽(yáng)工程學(xué)院畢業(yè)設(shè)計(jì)(論文)撰寫(xiě)規(guī)范》的要求進(jìn)行打印。</p><p> 4. 課程設(shè)計(jì)
5、說(shuō)明書(shū)(論文)裝訂順序?yàn)椋悍饷?、任?wù)書(shū)、成績(jī)?cè)u(píng)定表、目錄、正文、參考文獻(xiàn)。</p><p> 五、 設(shè)計(jì)完成后應(yīng)提交成果的種類、數(shù)量、質(zhì)量等方面的要求;</p><p> 提交課程設(shè)計(jì)說(shuō)明書(shū)一份。在說(shuō)明書(shū)中要有設(shè)計(jì)原理、硬件電路接線圖、設(shè)計(jì)的程序及必要注釋等。</p><p><b> 六、時(shí)間進(jìn)度安排;</b></p>&
6、lt;p> 七、主要參考資料(文獻(xiàn))。</p><p> 1《單片機(jī)初級(jí)教程》 何立民 北京航空航天大學(xué)出版社</p><p> 2《單片機(jī)基礎(chǔ)》 李廣弟 北京航空航天大學(xué)</p><p> 3《51系列單片機(jī)C程序設(shè)計(jì)與應(yīng)用案例 》 于京 中國(guó)電力出版社</p><p> 4《單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)》
7、 李光飛 ... [等] 編著 北京航空航天大學(xué)出版社</p><p> 5《例說(shuō)8051》 張義和 陳敵北 人民郵電出版社</p><p> 6《8051單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教材》 陳明熒 清華大學(xué)出版社</p><p> 7《單片機(jī)課程設(shè)計(jì)》 周向紅主編 華中科技大學(xué)出版社</p><p> 8《單片機(jī)應(yīng)用實(shí)訓(xùn)教程》
8、張永楓主編 西安電子科技大學(xué)出版社</p><p><b> 目 錄</b></p><p> 1設(shè)計(jì)原理說(shuō)明………….….………………………….….…….……………. 1</p><p> 2主要元器件介紹……………..….…..…………………………………...…. 2</p><p> 2.1芯片82
9、55……………………………………………………...…………. 2</p><p> 2.1.1 8255外部引線…………………………..……….…......……..…2</p><p> 2.1.2 8255的結(jié)構(gòu)… ………………………………………….....……..3</p><p> 2.1.3 8255工作方式………………………………………………...
10、…3</p><p> 2.1.4 8255初始化…………………………………………………...…4</p><p> 2.1.5 8255的方式控制字及狀態(tài)字...............................................4</p><p> 2.2 LED數(shù)碼顯示管...............................
11、.....................................................5</p><p> 2.2.1 數(shù)碼管連接電路............................................................................5</p><p> 2.2.2 LED數(shù)碼管對(duì)應(yīng)段碼及數(shù)值...........
12、.........................................6</p><p> 3設(shè)計(jì)原理流程圖.............………..….…………………….…..….….....…….7</p><p> 4源程序清單及注釋…………..……….…..….…………………….…..…..…8</p><p> 5 源程序指令說(shuō)明 ………...
13、...........………..….….….……….…..….…..…12</p><p> 總結(jié)………………………………………………………………………………...17</p><p> 主要參考文獻(xiàn)………………….……………………….……………………...18</p><p> 1 程序設(shè)計(jì)原理</p><p> 利用單片機(jī)
14、和LED數(shù)碼管來(lái)顯示時(shí)。分。秒的數(shù)字鐘。根據(jù)時(shí)鐘的總體設(shè)計(jì)思想把程序分成幾個(gè)獨(dú)立的功能模塊,即:主程序模塊,顯示模塊,時(shí)鐘模塊,時(shí)鐘調(diào)整模塊,以及中斷模塊。明確他們之間的關(guān)系,并確定各模塊的出入口地址,以便能連續(xù)執(zhí)行。</p><p> 劃分完成后,畫(huà)出各個(gè)功能模塊的程序流程圖,并按照程序流程圖設(shè)計(jì)程序。</p><p> 主程序:完成系統(tǒng)的初始化,設(shè)定控制參數(shù),包括時(shí)鐘及其時(shí),分,秒
15、的地址。設(shè)置定時(shí)器的工作模式,開(kāi)中斷以及設(shè)置循環(huán)調(diào)用子程序指令。</p><p> 顯示程序:將時(shí),分,秒分別編址,其個(gè)位和十位送入同一單元,然后依次送入初始數(shù)據(jù),將數(shù)據(jù)和地址送到對(duì)應(yīng)的段口和位口。</p><p> 時(shí)鐘調(diào)整程序:關(guān)定時(shí)器T0中斷,關(guān)閉定時(shí)器T0,調(diào)用1秒延時(shí) 程序,鍵按下時(shí)間小于1秒,關(guān)閉顯示(省電)進(jìn)入調(diào)時(shí)狀態(tài),賦閃爍定時(shí)初值</p><p&g
16、t; 時(shí)鐘程序:利用定時(shí)器計(jì)數(shù),并定義初始值,設(shè)定當(dāng)五十毫秒循環(huán)二十次時(shí),秒的個(gè)位加一并使其定時(shí)器重新計(jì)數(shù),當(dāng)秒計(jì)時(shí)到六十時(shí),分位加一,并將秒位清零,當(dāng)分位計(jì)到六十時(shí)向時(shí)位進(jìn)位,并且分位清零。當(dāng)時(shí)位計(jì)到二十四時(shí)清零,時(shí)分秒再次從零顯示。</p><p> 中斷程序:完成重新啟動(dòng)T0,進(jìn)行現(xiàn)場(chǎng)保護(hù),調(diào)用時(shí)鐘程序等功能。</p><p><b> 2 主要器件介紹</b
17、></p><p> 2.1 可編程并行芯片8255</p><p> 8255是Intel公司為其80系列微處理器生產(chǎn)的通用可編程并行輸入輸出接口。它具有很強(qiáng)的功能,在使用中可利用軟件編程來(lái)指定它該完成的功能。</p><p> 2.1.1 外部引線</p><p> 可編程并行芯片8255的外部引線如圖2.1.1.1所示
18、</p><p> D0~D7為雙向數(shù)據(jù)信號(hào)線,用來(lái)傳送數(shù)據(jù)和控制字。</p><p> RD為讀信號(hào)線,與其他信號(hào)線一起實(shí)現(xiàn)對(duì)8255接口的讀操作。通常接系統(tǒng)總線的IOR信號(hào)。</p><p> WR為寫(xiě)信號(hào)線,與其他信號(hào)一起實(shí)現(xiàn)對(duì)8255的寫(xiě)操作。通常接系統(tǒng)總線的IOW信號(hào)。</p><p> CS為片選信號(hào)線,當(dāng)它為低電平時(shí)才能
19、選中該8255芯片,也才能對(duì)8255進(jìn)行操作。</p><p> A0,A1為口地址選擇信號(hào)線。8255內(nèi)部有三個(gè)口:A口,B口,C口,還有一個(gè)控制寄存器,它們可由程序?qū)ぶ贰0,A1上的不同編碼可分別尋址上述三個(gè)口和一個(gè)控制寄存器,具體規(guī)定如下:</p><p> 通常A0,A1分別接系統(tǒng)總線的A0,A1,它們與CS一起來(lái)決定8255的接口地址。</p><p&g
20、t; RESET為復(fù)位輸入信號(hào)。此端上的高電平可使8255復(fù)位。復(fù)位后,8255的A口,B口,C口均被定為輸入狀態(tài)。</p><p> PA0~PA7為A口的8條輸入輸出信號(hào)線。該口的這8條線是工作于輸入、輸出還是雙向方式可又軟件編程來(lái)決定。</p><p> PB0~PB7為B口的8條輸入輸出信號(hào)線。利用軟件編程可指定這8條線是輸入還是輸出。</p><p>
21、; PC0~PC78條線根據(jù)其工作方式可作為數(shù)據(jù)的輸入或輸出線,也可以用作控制信號(hào)的輸出或狀態(tài)信號(hào)的輸入線。</p><p> 2.1.2 8255的結(jié)構(gòu)</p><p> 8255由4部分組成:</p><p> ?。?)數(shù)據(jù)總線緩沖器</p><p> ?。?)三個(gè)8位端口PA、PB、PC,其中PC口可分為兩個(gè)4位端口,可分別同端
22、口A和端口B配合使用,可以用作控制信號(hào)輸出等。</p><p> ?。?)A組和B組的控制電路。</p><p> ?。?)讀/寫(xiě)控制邏輯。</p><p> 2.1.3 8255的工作方式</p><p> 8255有三種工作方式:方式0、方式1和方式2。</p><p> (1)方式0——基本輸入/輸出&l
23、t;/p><p> 在此工作方式下,每個(gè)口都作為基本的輸入輸出口,C口的高4位和低4位以及A口和B口都可獨(dú)立地設(shè)置為輸入口和輸出口。在此工作方式下:輸出的數(shù)據(jù)被鎖存,而輸入的數(shù)據(jù)不被鎖存。</p><p> (2)方式1——選通輸入/輸出</p><p> 此工作方式下,三個(gè)端口分為A、B兩組,A、B兩個(gè)口仍用作數(shù)據(jù)輸入輸出口,而C口分成兩部分,分別作為A口和B口
24、的聯(lián)絡(luò)信號(hào)。在8255中,聯(lián)絡(luò)信號(hào)是3位,兩個(gè)數(shù)據(jù)口,共用去C口的6位,剩余的兩位仍可作為數(shù)據(jù)位使用。</p><p> ?。?)方式2——雙向選通輸入/輸出此工作方式只限于A組使用,它用A口的8位數(shù)據(jù)線,用C口的5位進(jìn)行聯(lián)絡(luò)。工作時(shí)輸入輸出都能被鎖存。當(dāng)A口工作在方式2時(shí),B口可以在方式0或方式1工作。</p><p> 2.1.4 8255的初始化</p><p
25、> 在使用8255時(shí),首先要由CPU對(duì)8255寫(xiě)入控制命令字。有兩種控制命令字:方式選擇控制字和C口按位置位/復(fù)位控制字。</p><p> 為了能使8255的A口工作輸出狀態(tài)控制LED燈亮滅以及B口工作于輸入狀態(tài)采集亮滅信號(hào),必須對(duì)其初始化,初始化程序如下:</p><p> MOV DX,0606H</p><p> MOV AL,80H</
26、p><p><b> OUT DX,AL</b></p><p> 2.1.5 8255的方式控制字及狀態(tài)字</p><p> 8255有很強(qiáng)的功能,能夠工作在各種工作方式下。在應(yīng)用過(guò)程中,可以利用軟件編程來(lái)指定8255的工作方式。也就是說(shuō),只要將不要的控制字裝入芯片中的控制寄存器,即可確定8255的工作方式。</p><
27、;p><b> (1)控制字</b></p><p> 8255的控制字有8位二進(jìn)制數(shù)構(gòu)成,各位的控制功能如圖4.1.4.1所示。</p><p> 當(dāng)控制字bit7=1是,控制字的bit6-bit0用來(lái)控制B組,包括B口的8位和C口的低4位。</p><p> 當(dāng)控制字的bit7=0時(shí),指定該控制字僅對(duì)C口進(jìn)行位操作——按位置位
28、或復(fù)位操作。對(duì)C口按位置/復(fù)位操作的控制字格式如圖4.1.4.2所示。如前面所敘,在必要時(shí),可利用C口的按位置/復(fù)位控制字來(lái)使C口的某一位輸出0或1。</p><p> 圖2.1.5.2 C口的按位操作控制字格式</p><p> 2.2 LED數(shù)碼顯示管</p><p> 2.2.1 數(shù)碼管的連接電路:</p><p> 此為數(shù)碼
29、管的引腳圖,每位的段碼線(a,b,c,d,e,f,g,dp)分別與1個(gè)8位的鎖存器輸出相連,由AT89S51控制組合0-9十個(gè)數(shù)據(jù),如令其顯示1則b,c引腳(即2,3引腳)送高電平,此時(shí)數(shù)碼管顯示1。由于各位的段碼線并聯(lián),8位I/O口輸出段碼對(duì)各個(gè)顯示位來(lái)說(shuō)都是相同的。</p><p> 2.2.2. LED數(shù)碼管對(duì)應(yīng)段碼及數(shù)值:</p><p> P1口對(duì)應(yīng)段碼及數(shù)值:</p&
30、gt;<p><b> 3. 程序流程圖</b></p><p> 1 系統(tǒng)主程序流程圖</p><p> 4. 源程序清單及注釋</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;; 中斷入口程序;;</p
31、><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> ;</b></p><p> ORG 0000H;程序執(zhí)行開(kāi)始地址</p><p> LJMP START;跳到標(biāo)號(hào)START執(zhí)行</p><p> ORG
32、 0003H;外中斷0中斷程序入口</p><p> RETI;外中斷0中斷返回</p><p> ORG 000BH;定時(shí)器T0中斷程序入口</p><p> LJMP INTT0;跳至INTTO執(zhí)行</p><p> ORG 0013H;外中斷1中斷程序入口</p><
33、p> RETI ;外中斷1中斷返回</p><p> ORG 001BH;定時(shí)器T1中斷程序入?</p><p> ORG 0023H;串行中斷程序入口地址</p><p> RETI;串行中斷程序返回</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;
34、;;;;;;;;;;;;;;</p><p> ;; 主 程 序 ;;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> ;</b></p><p> START: MOV R0,#70H ;清
35、70H-7AH共11個(gè)內(nèi)存單元</p><p> MOV R7,#0BH </p><p> ;clr P3.7;</p><p> CLEARDISP: MOV @R0,#00H ;</p><p> INC R0 ;</p><p> DJN
36、Z R7,CLEARDISP ;</p><p> MOV 20H,#00H ;清20H(標(biāo)志用)</p><p> MOV 7AH,#0AH ;放入"熄滅符"數(shù)據(jù)</p><p> MOV TMOD,#11H ;設(shè)T0、T1為16位定時(shí)器</p><p&g
37、t; MOV TL0,#0B0H ;50MS定時(shí)初值(T0計(jì)時(shí)用)</p><p> MOV TH0,#3CH ;50MS定時(shí)初值</p><p> MOV TL1,#0B0H ;50MS定時(shí)初值(T1閃爍定時(shí)用)</p><p> MOV TH1,#3CH ;50MS定時(shí)初值<
38、;/p><p> SETB EA ;總中斷開(kāi)放</p><p> SETB ET0 ;允許T0中斷</p><p> SETB TR0 ;開(kāi)啟T0定時(shí)器</p><p> MOV R4,#14H ;1秒定時(shí)用初值(50MS×
39、;20)</p><p> START1: LCALL DISPLAY ;調(diào)用顯示子程序</p><p> SJMP START1 ;P3.7口為1時(shí)跳回START1 </p><p><b> ;</b></p><p> ;;;;;;;;;;;;;;;;
40、;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;; 1秒計(jì)時(shí)程序;;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> ;T0中斷服務(wù)程序</b></p><p> INTT0: PUSH A
41、CC ;累加器入棧保護(hù)</p><p> PUSH PSW ;狀態(tài)字入棧保護(hù)</p><p> CLR ET0 ;關(guān)T0中斷允許</p><p> CLR TR0 ;關(guān)閉定時(shí)器T0</p><p> MOV A,#0B7H
42、 ;中斷響應(yīng)時(shí)間同步修正</p><p> ADD A,TL0 ;低8位初值修正</p><p> MOV TL0,A ;重裝初值(低8位修正值)</p><p> MOV A,#3CH ;高8位初值修正</p><p> ADDC A,TH0
43、 ;</p><p> MOV TH0,A ;重裝初值(高8位修正值)</p><p> SETB TR0 ;開(kāi)啟定時(shí)器T0</p><p> DJNZ R4, OUTT0 ;20次中斷未到中斷退出</p><p> ADDSS: MOV R4,#14H
44、 ;20次中斷到(1秒)重賦初值</p><p> MOV R0,#71H ;指向秒計(jì)時(shí)單元(71H-72H)</p><p> ACALL ADD1 ;調(diào)用加1程序(加1秒操作)</p><p> MOV A,R3 ;秒數(shù)據(jù)放入A(R3為2位十進(jìn)制數(shù)組合)</p>
45、;<p> CLR C ;清進(jìn)位標(biāo)志</p><p> CJNE A,#60H,ADDMM ;</p><p> ADDMM: JC OUTT0 ;小于60秒時(shí)中斷退出</p><p> ACALL CLR0 ;大于或等于60秒時(shí)對(duì)秒計(jì)時(shí)單
46、元清0</p><p> MOV R0,#77H ;指向分計(jì)時(shí)單元(76H-77H)</p><p> ACALL ADD1 ;分計(jì)時(shí)單元加1分鐘</p><p> MOV A,R3 ;分?jǐn)?shù)據(jù)放入A</p><p> CLR C
47、 ;清進(jìn)位標(biāo)志</p><p> CJNE A,#60H,ADDHH ;</p><p> ADDHH: JC OUTT0 ;小于60分時(shí)中斷退出</p><p> ACALL CLR0 ;大于或等于60分時(shí)分計(jì)時(shí)單元清0</p><p> MOV
48、 R0,#79H ;指向小時(shí)計(jì)時(shí)單(78H-79H)</p><p> ACALL ADD1 ;小時(shí)計(jì)時(shí)單元加1小時(shí)</p><p> MOV A,R3 ;時(shí)數(shù)據(jù)放入A</p><p> CLR C ;清進(jìn)位標(biāo)志</p><p
49、> CJNE A,#24H,HOUR ;</p><p> HOUR: JC OUTT0 ;小于24小時(shí)中斷退出</p><p> ACALL CLR0 ;大于或等于24小時(shí)小時(shí)計(jì)時(shí)單元清0</p><p> OUTT0: MOV 72H,76H ;中斷
50、退出時(shí)將分、時(shí)計(jì)時(shí)單元數(shù)據(jù)移</p><p> MOV 73H,77H ;入對(duì)應(yīng)顯示單元</p><p> MOV 74H,78H ;</p><p> MOV 75H,79H ;</p><p> POP PSW ;恢復(fù)狀態(tài)字
51、(出棧)</p><p> POP ACC ;恢復(fù)累加器</p><p> SETB ET0 ;開(kāi)放T0中斷</p><p> RETI ;中斷返回</p><p><b> ;</b></p>
52、<p><b> ;</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;; 加1子 程 序 ;;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p&
53、gt;<b> ;</b></p><p> ADD1: MOV A,@R0 ;取當(dāng)前計(jì)時(shí)單元數(shù)據(jù)到A</p><p> DEC R0 ;指向前一地址</p><p> SWAP A ;A中數(shù)據(jù)高四位與低四位交換</p><p> ORL A,
54、@R0 ;前一地址中數(shù)據(jù)放入A中低四位</p><p> ADD A,#01H ;A加1操作</p><p> DA A ;十進(jìn)制調(diào)整</p><p> MOV R3,A ;移入R3寄存器</p><p> ANL A,#0FH ;高四位變0<
55、/p><p> MOV @R0,A ;放回前一地址單元</p><p> MOV A,R3 ;取回R3中暫存數(shù)據(jù)</p><p> INC R0 ;指向當(dāng)前地址單元</p><p> SWAP A ;A中數(shù)據(jù)高四位與低四位交換</p><
56、p> ANL A,#0FH ;高四位變0</p><p> MOV @R0,A ;數(shù)據(jù)放入當(dāng)削地址單元中</p><p> RET ;子程序返回</p><p><b> ;</b></p><p> ;;;;;;;;;;;;;;;;;;;;;
57、;;;;;;;;;;;;;;;;;;;;</p><p> ;; 清零程序 ;;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> ;對(duì)計(jì)時(shí)單元復(fù)零用</b></p><p> CLR0: CLR A
58、 ;清累加器</p><p> MOV @R0,A ;清當(dāng)前地址單元</p><p> DEC R0 ;指向前一地址</p><p> MOV @R0,A ;前一地址單元清0</p><p> RET ;子程序返回</p&
59、gt;<p><b> ;</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;; 顯示程序 ;;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p>
60、<p> ; 顯示數(shù)據(jù)在70H-75H單元內(nèi),用六位LED共陽(yáng)數(shù)碼管顯示,P0口輸出段碼數(shù)據(jù),P3口作</p><p> ; 掃描控制,每個(gè)LED數(shù)碼管亮1MS時(shí)間再逐位循環(huán)。</p><p> DISPLAY: MOV R1,#70H ;指向顯示數(shù)據(jù)首址</p><p> MOV R5,#0FEH
61、 ;掃描控制字初值</p><p> PLAY: MOV A,R5 ;掃描字放入A</p><p> MOV P2,A ;從P2口輸出</p><p> MOV A,@R1 ;取顯示數(shù)據(jù)到A</p><p> MOV DPTR,
62、#TAB ;取段碼表地址</p><p> MOVC A,@A+DPTR ;查顯示數(shù)據(jù)對(duì)應(yīng)段碼</p><p> MOV P1,A ;段碼放入P0口</p><p> LCALL DL1MS ;顯示1MS</p><p> INC R
63、1 ;指向下一地址</p><p> MOV A,R5 ;掃描控制字放入A</p><p> JNB ACC.5,ENDOUT ;ACC.5=0時(shí)一次顯示結(jié)束</p><p> RL A ;A中數(shù)據(jù)循環(huán)左移</p><
64、;p> MOV R5,A ;放回R5內(nèi)</p><p> AJMP PLAY ;跳回PLAY循環(huán)</p><p> ENDOUT: SETB P2.5 ;一次顯示結(jié)束,P2口復(fù)位</p><p> MOV P1,#0FFH ;P0
65、口復(fù)位</p><p> RET ;子程序返回</p><p> TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH</p><p> ;1MS延時(shí)程序,LED顯示程序用</p><p> DL1MS: MOV R6,#00H</p&g
66、t;<p> DL1: DJNZ R6,DL1 255*2*2微秒=1020微秒≈1MS</p><p> ;20MS延時(shí)程序,采用調(diào)用顯示子程序以改善LED的顯示閃爍現(xiàn)象</p><p> DS20MS: ACALL DISPLAY</p><p> ACALL DISPLAY</p><p>
67、 ACALL DISPLAY</p><p><b> RET</b></p><p> DL05S: MOV R3,#20H ;8毫秒*32=0.196秒</p><p> DL05S1: LCALL DISPLAY</p><p> DJNZ
68、 R3,DL05S1</p><p><b> RET</b></p><p> END ;程序結(jié)束</p><p><b> 5.源程序指令說(shuō)明</b></p><p> 1 控制程序轉(zhuǎn)移指令</p><
69、;p> ?。?)AJMP (PC) (PC)+2</p><p> 2KB字節(jié)范圍內(nèi)的無(wú)條件跳轉(zhuǎn)指令,是絕對(duì)轉(zhuǎn)移。執(zhí)行該指令時(shí),先將PC加2,然后把11位地址送入addr11,程序轉(zhuǎn)移到指定的地方。</p><p> (2 ) SJMP (PC) (PC)+2</p><p> (PC) (PC)+相對(duì)地址
70、</p><p> 相對(duì)轉(zhuǎn)移指令,也叫無(wú)條件短轉(zhuǎn)移指令。執(zhí)行時(shí)在PC加2后,把指令的帶符號(hào)的偏移字節(jié)數(shù)(相對(duì)地址)加到PC上,并計(jì)算出轉(zhuǎn)移地址。</p><p> (3) CJNE 比較不相等轉(zhuǎn)移指令</p><p> CJNE A, direct , rel</p><p> 若(direct)≠(A) 則 (PC)
71、 (PC)+3+rel </p><p> CJNE A #data ,rel</p><p> CJNE Rn ,#data , rel</p><p> CJNE @Ri ,#data ,rel </p><p> ?。?)DJNZ 減1不為0轉(zhuǎn)移指令 </p><p> DJNZ Rn
72、 ,rel ;(Rn) (Rn) - 1</p><p> ;若 (Rn)=0 , 則 (PC) (PC)+2</p><p> ?。蝗?(Rn)≠0 ,則 (PC) (PC)+2+rel</p><p> DJNZ Rn , rel ; (direct) (direct) - 1</p>&
73、lt;p> ?。蝗?(direct)=0 (PC) (PC)+2</p><p> ?。蝗?(direct)≠0, (PC) (PC)+2+rel </p><p> (5) JNZ 條件轉(zhuǎn)移指令:累加器不為零時(shí)轉(zhuǎn)移</p><p> 若(A)=0 ,則 (PC) (PC)+2</p><p&g
74、t; 若(A)≠0 ,則 (PC) (PC)+2+rel</p><p> 2 調(diào)用子程序指令</p><p> LCALL 長(zhǎng)調(diào)用指令:無(wú)條件的調(diào)用位于指定地址的子程序</p><p> LCALL addr 16 ;(PC) (PC)+3</p><p> ;(SP) (SP)+1</p
75、><p> ?。?) ACALL 短調(diào)用指令:2K字節(jié)范圍內(nèi)調(diào)用子程序指令</p><p> ACALL addr 11 ;(PC) (PC)+2</p><p> ?。?SP) (SP)+1</p><p><b> 返回指令</b></p><p> 子程序返回指令RE
76、T 功能:從堆棧中退出PC的高位和低位字節(jié),把棧指針減2,并以新的PC值開(kāi)始執(zhí)行程序。</p><p> 中斷返回指令 </p><p> RETI 功能:把棧頂?shù)膬?nèi)容送到PC寄存器中,同時(shí)釋放中斷邏輯使之能接受同級(jí)的另一個(gè)中斷請(qǐng)求。</p><p><b> 算術(shù)操作類指令</b></p><p>
77、;<b> 不帶進(jìn)位的加法指令</b></p><p> ADD A , #data ; (A) (A)+data</p><p> ADD A , Rn ; (A) (A) + (Rn) n =0…7</p><p> ADD A , direct ;(A) (A) + (direc
78、t)</p><p><b> (2) 增量指令</b></p><p> INC A ;(A) (A)+1</p><p> INC Rn ;(Rn) (Rn)+1 , n =0…7</p><p> INC direct ;(direct) (
79、direct)+1</p><p> INC @Ri ;((Ri)) ((Ri))+1 , I=0,1</p><p> INC DPTR ;(DPTR) (DPTR)+1</p><p><b> 十進(jìn)制調(diào)整指令</b></p><p><b> DA A<
80、/b></p><p> 注意:不能用該指令對(duì)十進(jìn)制減法操作的結(jié)果進(jìn)行調(diào)整。</p><p><b> ?。?) 除法指令</b></p><p> DIV AB ;(A) (A)/(B) 的商</p><p> ;(B) (A)/(B)的余數(shù)</p><p>
81、<b> 邏輯操作類指令</b></p><p><b> 異或指令XRL</b></p><p><b> 移位指令 </b></p><p> 右環(huán)移指令 RR A</p><p><b> 數(shù)據(jù)傳送類指令 </b></p>
82、<p> MOV A , Rn MOV Rn , A</p><p> MOV A ,#data MOV #data , A</p><p> MOV DPTR ,#data MOVX @DPTA , A</p><p> MOVC A,@A+DPTR</
83、p><p> POP direct PUSH direct</p><p> 6. 設(shè)計(jì)總結(jié)與體會(huì)</p><p> 做了一周的單片機(jī)課程設(shè)計(jì),我們有很多的體會(huì)和感想!</p><p> 我們單片機(jī)的課程設(shè)計(jì)的名稱是簡(jiǎn)單電子時(shí)鐘設(shè)計(jì),用的主要芯片是8255,地點(diǎn)在F207和自己的寢室,我們的課程設(shè)計(jì)題目
84、比較難,所以老師并沒(méi)有給我定過(guò)高的目標(biāo),只需做好了解程序的含義,能夠簡(jiǎn)單的運(yùn)行就可以完成任務(wù)。</p><p> 說(shuō)實(shí)話我們現(xiàn)在對(duì)單片機(jī)的學(xué)習(xí),還不足以能夠編出這種程度的程序,只好運(yùn)用自己所學(xué)慢慢了解程序每個(gè)步驟的含義,看書(shū),同學(xué)研究,問(wèn)老師,查資料,甚至是上網(wǎng)百度,學(xué)會(huì)一些就在程序上標(biāo)記好,做好左后一天答辯的準(zhǔn)備,雖然最后還是沒(méi)有回答好老師的問(wèn)題,不是凡是弄回一個(gè)問(wèn)題,心理高興感還是油然而生。</p&g
85、t;<p> 單片機(jī)是一門(mén)重要的課程,學(xué)好單片機(jī)可以解決很多工作中的問(wèn)題,尤其是對(duì)程序的研究,因此本周的課程設(shè)計(jì)也是特別的認(rèn)真,利用這一周還可以對(duì)單片機(jī)好好復(fù)習(xí)一下。一周下來(lái)我受益匪淺,發(fā)現(xiàn)我在這個(gè)科目的很多不足,通過(guò)針對(duì)這個(gè)程序的研究,補(bǔ)充我很多的在這個(gè)科目的缺陷,發(fā)現(xiàn)錯(cuò)誤,改正錯(cuò)誤,完善程序,一步一步做到最好。不斷領(lǐng)悟,不斷吸取。同學(xué)一起做,一起思考,一起喜悅,一起著急。有喜有憂的一周課程設(shè)計(jì)。</p>
86、<p> 課程設(shè)計(jì)是利用理論思考實(shí)際問(wèn)題,充分用自己所學(xué)去研究程序的每一個(gè)步驟,自己的發(fā)展空間很大,利用理論去思考實(shí)際正是我們大學(xué)生進(jìn)入社會(huì)的轉(zhuǎn)變,因此也是這次課程設(shè)計(jì)的一個(gè)意義。</p><p> 感謝王老師,楊老師這周給我們耐心的輔導(dǎo),為我們解決了很多實(shí)際的問(wèn)題,也對(duì)我們理解程序有一個(gè)很大引導(dǎo),簡(jiǎn)單的問(wèn)題就讓我們小組自己解決,難得問(wèn)題就對(duì)我們加以指導(dǎo)。老師交給我們的不是簡(jiǎn)單答案,更多的是解決問(wèn)
87、題的方法,讓我們?cè)儆幸院笥龅酵瑯拥膯?wèn)題會(huì)自主解決。老師給我們很多的解題方法,和思考問(wèn)題的方式,思維。在小組里團(tuán)結(jié)就是力量,有個(gè)團(tuán)結(jié)就有更多的理念和思維,還有感情。</p><p> 一周的單片機(jī)課程設(shè)計(jì)結(jié)束了,但是對(duì)單片機(jī)的學(xué)習(xí)還沒(méi)有結(jié)束。感謝老師這周對(duì)我們的指導(dǎo),我們會(huì)更加努力的學(xué)習(xí)。最求最后的最完美的結(jié)果</p><p><b> 7.主要參考文獻(xiàn)</b>&l
88、t;/p><p> [1] 《單片機(jī)初級(jí)教程》 何立民 北京航空航天大學(xué)出版社</p><p> [2]《單片機(jī)基礎(chǔ)》 李廣弟 北京航空航天大學(xué)</p><p> [3]《51系列單片機(jī)C程序設(shè)計(jì)與應(yīng)用案例 》 于京 中國(guó)電力出版社</p><p> [4]《單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)》 李光飛 ... [等]
89、編著 北京航空航天大學(xué)出版社</p><p> [5]《例說(shuō)8051》 張義和 陳敵北 人民郵電出版社</p><p> [6]《8051單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教材》 陳明熒 清華大學(xué)出版社</p><p> [7]《單片機(jī)課程設(shè)計(jì)》 周向紅主編 華中科技大學(xué)出版社</p><p> [8]《單片機(jī)應(yīng)用實(shí)訓(xùn)教程》 張永楓主編 西安
溫馨提示
- 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ī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--電子鐘
- 單片機(jī)課程設(shè)計(jì)(電子鐘)
- 電子鐘課程設(shè)計(jì)--基于單片機(jī)的電子鐘設(shè)計(jì)
- 《單片機(jī)技術(shù)》電子鐘課程設(shè)計(jì)---數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)——數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)---智能電子鐘
- 單片機(jī)原理課程設(shè)計(jì)--電子鐘
- 單片機(jī)數(shù)字電子鐘課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)-智能電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---電子鐘的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告-電子鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字鐘電子鐘
- 單片機(jī)課程設(shè)計(jì)報(bào)告---單片機(jī)的電子鐘設(shè)計(jì)
- 基于單片機(jī)的電子鐘課程設(shè)計(jì)
- 單片機(jī)電子鐘課程設(shè)計(jì)---數(shù)字電子鐘
評(píng)論
0/150
提交評(píng)論