單片機(jī)課程設(shè)計報告數(shù)字電子鐘_第1頁
單片機(jī)課程設(shè)計報告數(shù)字電子鐘_第2頁
單片機(jī)課程設(shè)計報告數(shù)字電子鐘_第3頁
單片機(jī)課程設(shè)計報告數(shù)字電子鐘_第4頁
單片機(jī)課程設(shè)計報告數(shù)字電子鐘_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 momo 單片機(jī)技術(shù)課程設(shè)計說明書 數(shù)字電子鐘系 、 部: 電氣與信息工程系 學(xué)生姓名: 指導(dǎo)教師: mou 職稱 教授專 業(yè): 自動化 班 級: mou 班 完成時間: 2010年 12月28日 摘 要數(shù)字電子鐘廣泛應(yīng)用于生活生產(chǎn)中,因此對其深入了解很有必要,在此用單片機(jī)設(shè)計了一個簡單的數(shù)字電子鐘。本設(shè)計為基于at89s52單片機(jī),輔以必要的外圍電路,設(shè)計了一個簡單的數(shù)字電子時鐘。在硬件方面,除了cpu外,用數(shù)碼管來進(jìn)行顯示,led采用動態(tài)掃描顯示。通過led能夠比較準(zhǔn)確顯示時、分、秒,四個簡單的按鍵實現(xiàn)對時間的調(diào)整。軟件方面采用匯編語言編程。整個電子鐘系統(tǒng)能完成時間的顯示,調(diào)時,調(diào)分,調(diào)

2、秒,復(fù)位等功能。本次設(shè)計的電子鐘帶有獨立式鍵盤,用共陰數(shù)碼管顯示,現(xiàn)在生活中液晶顯示器用的比較多,所以此電子鐘在生活中推廣的現(xiàn)實意義不是很大。關(guān)鍵詞 數(shù)字電子鐘;at89s52;匯編語言abstractdigital electronic clock is widely used in the production of life, it is necessary for its understanding.in this paper,we use a microcomputer to design a simple digital electronic clock.this design i

3、s based on the at89s52 microcontroller, combined with the necessary peripheral circuits, design a simple digital electronic clocks. on the hardware side, in addition to cpu, to carry a digital tube display, led display dynamic scan. through the led can accurately display hours, minutes, seconds, fou

4、r simple keys to realize the time adjustment. software using assembly language programming. the completion of the entire electronic time clock system to the display, transfer, the transfer points, transfer seconds, reset and other functions. the design of the electronic clock with a stand-alone keyb

5、oard, with a total of yin digital tube display, liquid crystal displays now used in daily life are moretherefore, the electronic clock in life to promote the practical significance is not great.keywords: digital electronic clock; at89s52; assembly language目錄第一章 設(shè)計要求和方案的選擇4 1.1 課程設(shè)計要求4 1.2 方案選擇4 第二章

6、電子鐘工作原理6 2.1 at89s52芯片的簡介6 2.2 時鐘振蕩電路和信號的產(chǎn)生8 2.3 獨立式鍵盤接口電路9 2.4 復(fù)位電路10 2.5 下載口電路11第三章 程序流程123.1 程序流程圖123.2 程序清單133.3 原理圖233.4 pcb圖24第四章 系統(tǒng)調(diào)試224.1 硬件調(diào)試254.2 軟件調(diào)試25致謝27附錄28 參考文獻(xiàn)29第1章 設(shè)計要求和方案的選擇1.1 課程設(shè)計要求 (1)設(shè)計一個具有按鍵功能的電子鐘。該電子鐘上電或按鍵復(fù)位后能自動顯示系統(tǒng)提示符“p.”, 5秒鐘后電子鐘從0時0分0秒開始運(yùn)行,進(jìn)入時鐘運(yùn)行狀態(tài);按電子鐘啟動/調(diào)整鍵,則電子鐘進(jìn)入時鐘調(diào)整狀態(tài),

7、此時可利用各調(diào)整鍵調(diào)整時間,調(diào)整結(jié)束后可按啟動/調(diào)整鍵再次進(jìn)入時鐘運(yùn)行狀態(tài)。(2)熟悉at89s52實驗開發(fā)系統(tǒng)中的實驗?zāi)K原理,畫出電路原理圖。(3)綜合運(yùn)用實驗?zāi)K,用89s52開發(fā)設(shè)計具有一定功能的單片機(jī)控制系統(tǒng),進(jìn)行軟、硬件設(shè)計及調(diào)試。 (4)為了保證計時的穩(wěn)定及準(zhǔn)確須由晶體振蕩器提供表針時間基準(zhǔn)信號。1.2方案選擇(1)時鐘方案電子時鐘是本設(shè)計的最主要的部分。根據(jù)課題需要,可利用兩種方案實現(xiàn)。方案一:本方案采用dallas公司的專用時鐘芯片ds12887a。該芯片內(nèi)部采用石英晶體振蕩器,其芯片精度不大于10ms/年,且具有完備的時鐘鬧鐘功能,因此,可直接對其以用于顯示或設(shè)置,使得軟件

8、編程相對簡單。為保證時鐘在電網(wǎng)電壓不足或突然掉電等突發(fā)情況下仍能正常工作,芯片內(nèi)部包含鋰電池。當(dāng)電網(wǎng)電壓不足或突然掉電時,系統(tǒng)自動轉(zhuǎn)換到內(nèi)部鋰電池供電系統(tǒng)。而且即使系統(tǒng)不上電,程序不執(zhí)行時,鋰電池也能保證芯片的正常運(yùn)行,以備隨時提供正確的時間。方案二:本方案完全用軟件實現(xiàn)數(shù)字時鐘。原理為:在單片機(jī)內(nèi)部存儲器設(shè)6個字節(jié)分別存放時鐘的時、分、秒信息。利用定時器與軟件結(jié)合實現(xiàn)1秒定時中斷,每產(chǎn)生一次中斷,存儲器內(nèi)相應(yīng)的秒值加1;若秒值達(dá)到60,則將其清零,并將相應(yīng)的分字節(jié)值加1;若分值達(dá)到60,則清零分字節(jié),并將時字節(jié)值加1;若時值達(dá)到24,則將十字節(jié)清零。該方案具有硬件電路簡單的特點。但由于每次執(zhí)

9、行程序時,定時器都要重新賦初值,所以該時鐘精度不高。而且,由于是軟件實現(xiàn),當(dāng)單片機(jī)不上電,程序不執(zhí)行時,時鐘將不工作?;谟布娐返目紤],本設(shè)計采用方案二完成數(shù)字時鐘的功能。(2)led顯示方案方案一:led靜態(tài)顯示。所謂靜態(tài)顯示,就是當(dāng)顯示器顯示某一字符時,相應(yīng)的發(fā)光二極管恒定的導(dǎo)通或截止。該方式每一位都需要一個8 位輸出口控制。靜態(tài)顯示時較小的電流能獲得較高的亮度,且字符不閃爍。但當(dāng)所顯示的位數(shù)較多時,靜態(tài)顯示所需的i/o口太多,造成了資源的浪費。方案二:led動態(tài)顯示。所謂動態(tài)顯示就是一位一位的輪流點亮各個位,對于顯示器的每一位來說,每隔一段時間點亮一次。利用人的視覺暫留功能可以看到整個

10、顯示,但必須保證掃描速度足夠快,字符才不閃爍。顯示器的亮度既與導(dǎo)通電流有關(guān),也于點亮?xí)r間與間隔時間的比例有關(guān)。調(diào)整參數(shù)可以實現(xiàn)較高穩(wěn)定度的顯示。動態(tài)顯示節(jié)省了i/o口,降低了能耗。從設(shè)計難易程度和節(jié)省i/o口和降低能耗出發(fā),本設(shè)計采用方案二。第2章 電子鐘的工作原理2.1 at89s52芯片介紹at89s52是一個低電壓,高性能cmos 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的只讀程序存儲器(perom)和256 bytes的隨機(jī)存取數(shù)據(jù)存儲器(ram),器件采用atmel公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和flash存儲單元,功

11、能強(qiáng)大的at89s52單片機(jī)可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場合。at89s52有40個引腳,32個外部雙向輸入/輸出(i/o)端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,at89s52可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的flash存儲器可有效地降低開發(fā)成本。at89s52設(shè)計和配置了振蕩頻率可為0hz并可通過軟件設(shè)置省電模式??臻e模式下,cpu暫停工作,而ram定時計數(shù)器、串行口、外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存ram的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬

12、件復(fù)位。該芯片具有pdip、tqfp和plcc等三種封裝形式。如圖2.1所示:圖2.1 at89s52芯片外部引腳圖(1)信號引腳介紹 a)輸入輸出口p0.0p0.7: p0口8位雙向口線。p1.0p1.7: p1口8位雙向口線。p2.0p2.7: p2口8位雙向口線。p3.0p3.7: p3口8位雙向口線。b)ale:地址鎖存控制信號在系統(tǒng)擴(kuò)展時,ale用于控制把p0口輸出低8位地址送入鎖存器鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的分時傳輸。此外由于ale是以六分之一晶振頻率的固定頻率輸出的正脈沖,因此可作為外部時鐘或外部定時脈沖用。c)psen:外部程序存儲器讀選通信號在讀外部rom時psen有效

13、(低電平),以實現(xiàn)外部rom單元的讀操作。d)ea:訪問程序存儲器控制信號當(dāng)ea信號為低電平時,對rom的讀操作限定在外部程序存儲器;而當(dāng)ea信號為高電平時,則對rom的讀操作是從內(nèi)部程序存儲器開始,并可延至外部程序存儲器。e)rst:復(fù)位信號當(dāng)輸入的復(fù)位信號延續(xù)2個機(jī)器周期以上高電平時即為有效,用以完成單片機(jī)的復(fù)位操作。f)xtal1和xtal2 外接晶體引線端當(dāng)使用芯片內(nèi)部時鐘時,此二引線端用于外接石英晶體和微調(diào)電空;當(dāng)使用外部時鐘時,用于拉外部的時鐘脈沖信號。g)gnd:地線h)vcc:+5v電源以上就是at89s52單片機(jī)芯片的40條引腳的定義及簡單功能說明。(2)信號引腳的第二功能由

14、于工藝及標(biāo)準(zhǔn)化等原因,芯片的引腳數(shù)目是有限制的,at89s52芯片把引腳數(shù)目限定為40條,但單片機(jī)為實現(xiàn)其功能所需要的信號數(shù)目卻遠(yuǎn)遠(yuǎn)超過此數(shù),因此就出現(xiàn)了供需矛盾?!皬?fù)用”是唯一可行的辦法,即給一些信號引腳賦以雙重功能。(原先的信號定義為引腳第一功能,后賦以的為引腳第二功能。)p3口線的第二功能,p3的8條口線都定義有第二功能。89s52單片機(jī)的引腳的第二功能如表2-2所示:表2-1 p1口和p3的第二功能口線第二功能信號名稱p3.0rxdrxd(串行數(shù)據(jù)接收)p3.1txdtxd(串行數(shù)據(jù)發(fā)送)p3.2(外部中斷0申請)p3.3(外部中斷1申請)p3.4t0t0(定時器0的計數(shù)輸入)p3.5

15、t1t1(定時器1的計數(shù)輸入)p3.6(外部數(shù)據(jù)存儲器寫選通)p3.7(外部數(shù)據(jù)存儲器讀選通)p1.0t2t2(定時器/計數(shù)器t2的外部計數(shù)輸入),時鐘輸出p1.1t2ext2ex(定時器/計數(shù)器t2的捕捉/重載觸發(fā)信號和方向控制)p1.5mosimosi(在系統(tǒng)編程用)p1.6misomiso(在系統(tǒng)編程用)p1.7scksck(在系統(tǒng)編程用)(3)at89s52的總線結(jié)構(gòu)at89s52的管腳除了電源、復(fù)位、時鐘接入、用戶i/o口部分p3外,其余管腳都是為實現(xiàn)系統(tǒng)擴(kuò)展而設(shè)置的。這些管腳構(gòu)成了三總線形式,即:a: 地址總線(ab):地址總線寬度為16位,因此,其外部存儲器直接地址外圍為64k字

16、節(jié)。16位地址總線由p0經(jīng)地址鎖存器提供低8位地址(a0a7);p2口直接提供高8位地址(a8a15)。 b: 數(shù)據(jù)總線(db):數(shù)據(jù)總線寬度為8位,由p0口提供。 c: 控制總線(cb):由部分p3口的第二功能狀態(tài)和4根獨立控制線reset、ale、組成。2.2時鐘振蕩電路和信號的產(chǎn)生(1)時鐘振蕩電路圖 時鐘電路用于產(chǎn)生單片機(jī)工作所需要的時鐘信號,而時序所研究的是指令執(zhí)行中各信號之間的相互關(guān)系。單片機(jī)本身就如一個復(fù)雜的同步時序電路,為了保證同步工作方式的實現(xiàn),電路應(yīng)在唯一的時鐘信號控制下嚴(yán)格地按時序進(jìn)行工作。時鐘振蕩電路圖如圖2.2.1所示: 圖2.2.1 時鐘振蕩電路(2)時鐘信號的產(chǎn)生

17、 單片機(jī)內(nèi)部有一個高增益、反相放大器,其輸入端為芯片引腳xtal1,其輸出端為引腳xtal2。而在芯片的外部,xtal1和xtal2之間跨接晶體管振蕩器和微調(diào)電容,從而構(gòu)成一個穩(wěn)定的自激振蕩器。只要在單片機(jī)的xtal1和xtal2引腳外接晶體振蕩器就構(gòu)成了自激振蕩器并在單片機(jī)內(nèi)部產(chǎn)生時鐘脈沖信號。電容器c8和c9的作用是穩(wěn)定頻率和快速起振,電容值在530pf,典型值為30pf。外部時鐘方式是把外部已有的時鐘信號引入到單片機(jī)內(nèi)。此方式常用于多片單片機(jī)同時工作,以便于各單片機(jī)的同步。一般要求外部信號高電平的持續(xù)時間大于20s,且為頻率低于12mhz的方波。2.3獨立式鍵盤接口電路鍵盤接口通常包括硬

18、件和軟件兩部分。硬件是指鍵盤的結(jié)構(gòu)及其主機(jī)的連接方式,軟件是指對鍵盤操作的識別與分析,即鍵盤管理程序。鍵盤一般是一組開關(guān)(按鍵)的集合。常用的按鍵有三種:a)導(dǎo)電像膠式:利用利用橡膠接彈性使按鍵復(fù)位。b)機(jī)械觸點式:利用金屬的彈性使按鍵復(fù)位。c)柔性按鍵:外形及面板布局等可按整機(jī)要求設(shè)計,在價格、壽命、防潮、防銹等方面顯示出較強(qiáng)的優(yōu)越性。鍵盤按其工作原理又可分為編碼式鍵盤和非編碼式鍵盤。這兩類鍵盤的主要區(qū)別是識別鍵符及給出相應(yīng)鍵碼的方法。編碼鍵盤主要是用硬件來實現(xiàn)對鍵的識別。非編碼鍵盤主要是由軟件來實現(xiàn)鍵盤的定義與識別。非編碼式鍵盤接照與主機(jī)連接方式的不同,可分獨立式鍵盤和矩陣式鍵盤。1)獨立

19、式鍵盤:獨立式鍵盤中,每個按鍵占用一根i/o口線,每個按鍵電路相對獨立。i/o口通過按鍵與地相連,i/o口有上拉電阻,無鍵按下時,引腳端為高電平,有鍵按下時,引腳電平被拉低。i/o口內(nèi)部有上拉電阻時,外部可不接上拉電阻。2)矩陣式鍵盤:行列式鍵盤采用行列電路結(jié)構(gòu),當(dāng)按鍵較多時所占用的口線相對較少,鍵盤規(guī)模越大,其優(yōu)點越明顯。所以,當(dāng)按鍵數(shù)目大于8時,一般采用矩陣式鍵盤結(jié)構(gòu)。鍵盤電路原理圖如圖2.3.1所示。圖2.3.1 鍵盤電路2.4 復(fù)位電路復(fù)位操作有兩種基本形式:一種是上電復(fù)位,另一種是按鍵復(fù)位。按鍵復(fù)位電路圖如圖2.4.1所示。按鍵復(fù)位具有上電復(fù)位功能外,若要復(fù)位,只要reset鍵,電源

20、vcc經(jīng)電阻r1、r2分壓,在reset端產(chǎn)生一個復(fù)位高電平。上電復(fù)位電路要求接通電源后,通過外部電容充電來實現(xiàn)單片機(jī)自動復(fù)位操作。上電瞬間reset引腳獲得高電平,隨著電容的充電,rerst引腳的高電平將逐漸下降。rerst引腳的高電平只要能保持足夠的時間(2個機(jī)器周期),單片機(jī)就可以進(jìn)行復(fù)位操作。單片機(jī)復(fù)位期間不產(chǎn)生ale和信號,即ale=1和=1。這表明單片機(jī)復(fù)位期間不會有任何取指操作。 復(fù)位后:pc值為0000h,表明復(fù)位后程序從0000h開始執(zhí)行;sp值為07h值,表明堆棧底部在07h,需重新設(shè)置sp值;單片機(jī)在復(fù)位后,已使p0p3口每一端線為“1”,為這些端線用作輸入口做好了準(zhǔn)備。

21、 圖2.4.1 復(fù)位電路 2.5下載口電路at89s52系列單片機(jī)支持在線編程,方便了程序的調(diào)試,本系統(tǒng)留有isp下載線的標(biāo)準(zhǔn)接口,如下圖2.5.1所示。 2.5.1下載線接口 第三章 程序流程3.1程序流程圖數(shù)字電子鐘主要包括初始化程序,中斷服務(wù)程序,加1子程序流程和鍵處理程序,它們所對應(yīng)的程序流程圖分別如圖3.1.1,圖3.1.2,圖3.1.3,圖3.1.4所示。 圖3.1.2 中斷服務(wù)程序 3.2 程序清單;偽指令區(qū) secgb equ 40h ;初始化秒的各位shfgb secsb equ 41h ;初始化秒的十位bafsb gang equ 42h ;初始化一橫 fengb equ

22、43h ;初始化分個位secgb fensb equ 44h ;初始化分十位bafsb gang1 equ 45h ;初始化一橫 shigb equ 46h ;初始化時個位fengb shisb equ 47h ;初始化時十位fensb s2b2 bit 2fh.0 ;s2功能鍵的標(biāo)志位 s2b3 bit 2fh.1 ;s3功能鍵的標(biāo)志位(調(diào)時) s2b4 bit 2fh.2 ;s4功能鍵的標(biāo)志位(調(diào)分) s2b5 bit 2fh.3 ;s5功能鍵的標(biāo)志位(調(diào)秒);*;系統(tǒng)起始程序區(qū) org 0000h strat: ljmp main org 000bh ljmp tc00 org 001b

23、h ljmp tc11;*;系統(tǒng)監(jiān)控程序區(qū) org 0030h ;確立堆棧區(qū) main: mov sp, #80h;定時器初始化,定時器0以工作方式1工作 mov psw, #00h mov tmod, #01h clr f0 ;判斷表格首地址標(biāo)志位 clr ea mov r0, #20h ;ram區(qū)首地址 mov r7, #5fh ml: mov r0, #00h inc r0 djnz r7, mltsf: mov dptr, #disbhp ;系統(tǒng)初始化后提示符“p.”字符 mov r5, #08h mov r0, #78h lcall disptsf mov r6, #10 gggg:

24、 lcall time_500ms djnz r6, gggg ljmp keya;*;s2鍵功能keya: mov secgb, #00h ;初始化剛啟動時的顯示 mov secsb, #00h mov gang, #12h mov fengb, #00h mov fensb, #00h mov gang1, #12h mov shigb, #00h mov shisb, #00h setb ea ;允許中斷 setb et1 mov tmod, #11h ;定時器1初始化 mov th1, #03ch mov tl1, #0b0h dddd: setb tr1 ;開啟定時器 mov 30h

25、, #20 cpl 2fh.0 jb 2fh.0, kkk clr tr1ssss: lcall disp lcall key jb 20h.0, s2ja ;是s2鍵,轉(zhuǎn)keya執(zhí)行 jb 20h.1, s2jb ;是s3鍵,轉(zhuǎn)keyb執(zhí)行 jb 20h.2, s2jc ;是s4鍵,轉(zhuǎn)keyc執(zhí)行 jb 20h.3, s2jd ;是s5鍵,轉(zhuǎn)keyd執(zhí)行 ljmp ssss kkk: lcall disp ;調(diào)用顯示子程序 lcall key jb 20h.0, dddd ;是s2鍵,轉(zhuǎn)keya執(zhí)行 ljmp kkk s2ja: ljmp dddd s2jb: ljmp keyb s2jc:

26、 ljmp keyc s2jd: ljmp keyd;*;s3鍵功能keyb: mov r0, #47h ;r0的初始化 lcall daad1 mov a, r2 xrl a, #24h ;判斷24到了沒 jnz aaaa lcall clr0aaaa: lcall key mov 78h, secgb ;更改顯緩 mov 79h, secsb mov 7ah, gang mov 7bh, fengb mov 7ch, fensb mov 7dh, gang1 mov 7eh, shigb mov 7fh, shisb lcall disp jb 20h.0, s3ja ;是s2鍵,轉(zhuǎn)key

27、a執(zhí)行 jb 20h.1, s3jb ;是s3鍵,轉(zhuǎn)keyb執(zhí)行 jb 20h.2, s3jc ;是s4鍵,轉(zhuǎn)keyc執(zhí)行 jb 20h.3, s3jd ;是s5鍵,轉(zhuǎn)keyd執(zhí)行 ljmp aaaa s3ja: ljmp dddd s3jb: ljmp keyb s3jc: ljmp keyc s3jd: ljmp keyd;*;s4鍵功能keyc: mov r0, #44h ;r0的初始化 lcall daad1 mov a, r2 xrl a, #60h ;判斷24到了沒 jnz bbbb lcall clr0bbbb: lcall key mov 78h, secgb ;更改顯緩 mo

28、v 79h, secsb mov 7ah, gang mov 7bh, fengb mov 7ch, fensb mov 7dh, gang1 mov 7eh, shigb mov 7fh, shisb lcall disp jb 20h.0, s4ja ;是s2鍵,轉(zhuǎn)keya執(zhí)行 jb 20h.1, s4jb ;是s3鍵,轉(zhuǎn)keyb執(zhí)行 jb 20h.2, s4jc ;是s4鍵,轉(zhuǎn)keyc執(zhí)行 jb 20h.3, s4jd ;是s5鍵,轉(zhuǎn)keyd執(zhí)行 ljmp bbbb s4ja: ljmp dddd s4jb: ljmp keyb s4jc: ljmp keyc s4jd: ljmp ke

29、yd;*;s5鍵功能keyd: mov r0, #41h ;r0的初始化 lcall daad1 mov a, r2 xrl a, #60h ;判斷24到了沒 jnz cccc lcall clr0cccc: lcall key mov 78h, secgb ;更改顯緩 mov 79h, secsb mov 7ah, gang mov 7bh, fengb mov 7ch, fensb mov 7dh, gang1 mov 7eh, shigb mov 7fh, shisb lcall disp jb 20h.0, s5ja ;是s2鍵,轉(zhuǎn)keya執(zhí)行 jb 20h.1, s5jb ;是s3鍵

30、,轉(zhuǎn)keyb執(zhí)行 jb 20h.2, s5jc ;是s4鍵,轉(zhuǎn)keyc執(zhí)行 jb 20h.3, s5jd ;是s5鍵,轉(zhuǎn)keyd執(zhí)行 ljmp cccc s5ja: ljmp dddd s5jb: ljmp keyb s5jc: ljmp keyc s5jd: ljmp keyd;*;s6鍵功能keye:;*;s7鍵功能keyf:;*;s8鍵功能keyg:;*;s9鍵功能keyh:;常數(shù)表格區(qū)-;系統(tǒng)初始化后提示符“p.”字符代碼表disbhp: db 10h,10h,10h,10h,10h,10h,10h,11h ;提示符“p.”字符序號disbh0: db 10h,10h,10h,10h,

31、10h,10h,10h,00h ;提示符“0”字符序號disbh1: db 10h,10h,10h,10h,10h,10h,10h,01h ;提示符“1”字符序號disbh2: db 10h,10h,10h,10h,10h,10h,10h,02h ;提示符“2”字符序號disbh3: db 10h,10h,10h,10h,10h,10h,10h,03h ;提示符“3”字符序號disbh4: db 10h,10h,10h,10h,10h,10h,10h,04h ;提示符“4”字符序號disbh5: db 10h,10h,10h,10h,10h,10h,10h,05h ;提示符“5”字符序號dis

32、bh6: db 10h,10h,10h,10h,10h,10h,10h,06h ;提示符“6”字符序號disbh7: db 10h,10h,10h,10h,10h,10h,10h,07h ;提示符“7”字符序號;顯示字符段選碼表(共陽極代碼)tab: db 0c0h, 0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h ;0-8 db 90h, 88h,83h,0c6h,0a1h,86h,8eh,0ffh,0ch,0bfh ;9,a,b,c,d,e,f,滅,p.;*; ;子程序區(qū);定時500ms子程序,用中斷time_500ms: push psw setb rs0;選用通

33、用寄存器第二組 setb rs1 setb ea ;允許總中斷 setb et0 ;允許定時器0中斷 mov th0, #3ch mov tl0, #0b0h mov r3, #10 clr 21h.0 ;清0標(biāo)志位 setb tr0 ;開啟定時器0 kk: jb 21h.0, exit1 ;判斷標(biāo)志位 lcall disp ljmp kk exit1: pop psw ret;*;中斷服務(wù)程序; tc00: push psw setb rs0 ;選用通用寄存器第二組setb rs1 mov th0, #3ch ;定時器0初始化mov tl0, #0b0h djnz r3, exit2 ;判斷

34、十次定時到否setb 21h.0 ;標(biāo)志位置1 exit2: pop psw reti;*;中斷服務(wù)程序; tc11: push psw push acc clr rs0 setb rs1 mov th1, #3ch ;定時器1給初值 mov tl1, #0b0h mov a, 30h dec a mov 30h, a jnz ret0 mov 30h, #20 mov r0, #41h ;r0的初始化 lcall daad1 ;調(diào)用加一子程序 mov a, r2 xrl a, #60h ;判斷一秒到了沒 jnz ret0 ;不到,則轉(zhuǎn)reto lcall clr0 ;到了,則顯示緩沖區(qū)清0

35、mov r0, #44h ;判斷一秒到了沒 lcall daad1 mov a, r2 xrl a, #60h ;判斷60秒到了沒 jnz ret0 lcall clr0 mov r0, #47h ;r0的初始化 lcall daad1 mov a, r2 xrl a, #60h ;判斷一小時到了沒 jnz ret0 lcall clr0 ret0: mov 78h, secgb ;更改顯緩 mov 79h, secsb mov 7ah, gang mov 7bh, fengb mov 7ch, fensb mov 7dh, gang1 mov 7eh, shigb mov 7fh, shis

36、b pop acc pop psw reti;鍵盤掃描子程序key:key:lcall keychuli;調(diào)p1口數(shù)據(jù)處理子 jz exit;沒有鍵按下,轉(zhuǎn)返回lcalldisp;調(diào)顯示子程序去抖動lcalldisp lcall keychuli;調(diào)p1口數(shù)據(jù)處理子程序 jz exit;沒有鍵按下,轉(zhuǎn)返回movb,20h;保存取反后的鍵值keysf:lcallkeychuli;調(diào)p1口數(shù)據(jù)處理子程序jzkey1;鍵釋放,轉(zhuǎn)恢復(fù)鍵值lcalldisp;調(diào)顯示子程序延時 ljmp keysf ;等待釋放key1:mov 20h,b;鍵值送20h保存exit:ret;子程序返回;p1口數(shù)據(jù)處理子程序

37、keychuli:push psw;保護(hù)現(xiàn)場clrrs1;改變當(dāng)前寄存器組為組1setbrs0movp1,#0ffh;先向p1口寫1mova,p1;讀p1口數(shù)據(jù)cpla;p1口數(shù)據(jù)取反mov20h,a;保存取反后的鍵值clrrs;恢復(fù)當(dāng)前寄存器組為組0clr rs0poppsw;恢復(fù)現(xiàn)場ret ;顯示子程序;入口:78h,79h,7ah,7bh,7ch,7dh,7eh,7fh, disp: pushdphpushdplpushaccpushpsw clr rs1 ;改變當(dāng)前寄存器組為組1 setb rs0 mov r1, #78h ;顯示緩沖存儲單元首地址 mov r2, #0feh ;從右至

38、左顯示 disp1:mova, r1movdptr, #tabmovca, a+dptrmovp0, a;送段控 movp2, r2 ;送位控lcalldl ;延時2毫秒mova, r2jnbacc.7, disp2rlaincr1movr2, aljmpdisp1disp2:poppsw ;恢復(fù)當(dāng)前寄存器組的組號popaccpopdplpopdphret;延時2毫秒子程序dl: push psw setb rs1 setb rs0 movr7, #02hdl1:movr6, #0ffhdl2:djnzr6, dl2djnzr7, dl1 pop pswret;將78至7eh單元的內(nèi)容交換子程序jiaohuan: mov78h,79hmov79h,7ahmov7ah,7bhmov7bh,7chmov7ch,7dhmov7dh,7ehmov7eh,7fhret;數(shù)碼管滅子程序mie:mov78h,#10hmov79h,#10hmov7ah,#10hmov7bh,#10hmov7ch,#10hmov7dh,#10hmov7eh,#10hmov7fh,#10hret;系統(tǒng)初始化后送內(nèi)容到78h單元disptsf: clr a movc a,

溫馨提示

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

評論

0/150

提交評論