版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、-PAGE . z.本設(shè)計是基于單片機控制的數(shù)字音樂盒的設(shè)計,由單片機AT89C51芯片和LED數(shù)碼管為核心,輔以必要的電路,構(gòu)成的一個單片機數(shù)字音樂盒。假設(shè)該設(shè)計使用數(shù)字電路完成,所設(shè)計的電路相當(dāng)復(fù)雜,大概需要十幾片數(shù)字集成塊,其功能也主要依賴于數(shù)字電路的各功能模塊的組合來實現(xiàn),焊接的過程比擬復(fù)雜,本錢也非常高。假設(shè)用單片機來設(shè)計制作完成,由于其功能的實現(xiàn)主要通過軟件編程來完成,則就降低了硬件電路的復(fù)雜性,而且其本錢也有所降低,所以在該設(shè)計中采用單片機利用AT89C51,它是低功耗、高性能的CMOS型8位單片機。片帶有4KB的Flash存儲器,且允許在系統(tǒng)改寫或用編程器編程。另外, AT89
2、C51的指令系統(tǒng)和引腳與8051完全兼容,片有128B 的RAM、32條I/O口線、2個16位定時計數(shù)器、5個中斷源、一個全雙工串行口等。在該設(shè)計中利用單片機I/O口產(chǎn)生一定頻率的方波,驅(qū)動蜂鳴器,發(fā)出各種不同的音調(diào),從而演奏樂曲最少三首樂曲,每首不少于30秒,并能夠由LCD顯示信息。鍵盤在單片機應(yīng)用系統(tǒng)中能實現(xiàn)向單片機輸入數(shù)據(jù),傳送命令等功能,是人工干預(yù)單片機的主要手段。本設(shè)計采用4*4鍵盤,16*2 LCD,七段顯示數(shù)碼管LED。在開機按鈕按下時有英文歡送提示字符,播放時顯示歌曲序號或名稱。在演奏過程中可通過功能鍵選擇樂曲,暫停,播放。目錄TOC o 1-3 h z uHYPERLINK
3、l _Toc2174120041 概述 PAGEREF _Toc217412004 h 3HYPERLINK l _Toc2174120052 系統(tǒng)總體方案及硬件設(shè)計 PAGEREF _Toc217412005 h 5HYPERLINK l _Toc2174120062.1 系統(tǒng)構(gòu)成 PAGEREF _Toc217412006 h 5HYPERLINK l _Toc2174120072.1.1 AT89C51單片機簡介 PAGEREF _Toc217412007 h 5HYPERLINK l _Toc2174120212.1.2 LED顯示器 PAGEREF _Toc217412021 h 7
4、HYPERLINK l _Toc2174120212.1.3 鍵盤 PAGEREF _Toc217412021 h 8HYPERLINK l _Toc2174120212.1.4 系統(tǒng)復(fù)位電路的設(shè)計 PAGEREF _Toc217412021 h 9HYPERLINK l _Toc2174120212.1.5 時鐘電路模塊 PAGEREF _Toc217412021 h 9HYPERLINK l _Toc2174120212.2硬件電路端口分配 PAGEREF _Toc217412021 h 10HYPERLINK l _Toc2174120213 軟件設(shè)計 PAGEREF _Toc21741
5、2021 h 11HYPERLINK l _Toc2174120213.1 主模塊的設(shè)計 PAGEREF _Toc217412021 h 11HYPERLINK l _Toc217412021 3.2 外部中斷源系統(tǒng)設(shè)計 PAGEREF _Toc217412021 h 12HYPERLINK l _Toc2174120213.3 根本顯示模塊設(shè)計 PAGEREF _Toc217412021 h 13HYPERLINK l _Toc2174120213.4 系統(tǒng)初始化程序 PAGEREF _Toc217412021 h 13HYPERLINK l _Toc2174120214 Proteus軟件
6、仿真 PAGEREF _Toc217412021 h 14HYPERLINK l _Toc2174120215課程設(shè)計體會 PAGEREF _Toc217412021 h 16HYPERLINK l _Toc217412021參考文獻(xiàn) PAGEREF _Toc217412021 h 17HYPERLINK l _Toc217412021附1:源程序代碼 PAGEREF _Toc217412021 h 18HYPERLINK l _Toc217412022附2:系統(tǒng)原理圖 PAGEREF _Toc217412022 h 281 概述本設(shè)計是基于單片機的數(shù)字音樂盒設(shè)計,由單片機AT89C51芯片和
7、LED數(shù)碼管為核心,輔以必要的電路,構(gòu)成的一個單片機電子數(shù)字音樂盒。要求利用I/O口產(chǎn)生一定頻率的方波,驅(qū)動蜂鳴器,發(fā)出不同的音調(diào)并采用LCD顯示信息,從而演奏樂曲最少三首樂曲,每首不少于30秒,開機時有英文歡送提示字符,播放時顯示歌曲序號或名稱,可通過功能鍵選擇樂曲,暫停,播放。本設(shè)計采用4*4鍵盤,16*2 LCD,七段顯示數(shù)碼管LED。課設(shè)準(zhǔn)備中根據(jù)具體的要求,查找資料,然后按要求根據(jù)已學(xué)過的時鐘程序編寫定時鬧鐘的程序,依據(jù)程序利用proteus軟件進展了仿真試驗,對出現(xiàn)的問題進展分析和反復(fù)修改源程序,最終得到正確并符合要求的結(jié)果。2 系統(tǒng)總體方案及硬件設(shè)計2.1 系統(tǒng)構(gòu)成2.1.1 A
8、T89C51單片機簡介AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。1主要特性:與MCS-51 兼容 4K字節(jié)可編程閃爍存儲器壽命:1000寫/擦循環(huán)數(shù)據(jù)保存時間:10年全靜態(tài)工作:0Hz-24Hz三級程序存儲器鎖定128*8位部RAM32可編程I/O線兩個16位定時器/計數(shù)器5個中斷源
9、可編程串行通道低功耗的閑置和掉電模式片振蕩器和時鐘電路 2管腳說明如圖1: 圖1VCC:供電電壓。GND:接地。 P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進展校驗時,P0輸出原碼,此時P0外部必須被拉高。 P1口:P1口是一個部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于部上拉的
10、緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫1時,其管腳被部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進展存取時,P2口輸出地址的高八位。在給出地址1時,它利用部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進展讀寫時,P2口輸出其特殊功能存放器的容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶部上拉電阻的雙向I/O口,可接收輸出4
11、個TTL門電流。當(dāng)P3口寫入1后,它們被部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流ILL這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:管口管腳 備選功能P3.0 R*D串行輸入口P3.1 T*D串行輸出口P3.2 /INT0外部中斷0P3.3 /INT1外部中斷1P3.4 T0記時器0外部輸入P3.5 T1記時器1外部輸入P3.6 /WR外部數(shù)據(jù)存儲器寫選通P3.7 /RD外部數(shù)據(jù)存儲器讀選通P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PR
12、OG:當(dāng)外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想制止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOV*,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE制止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在外部數(shù)據(jù)存儲器時
13、,這兩次有效的/PSEN信號將不出現(xiàn)。 /EA/VPP:/EA保持低電平時,在此期間外部程序存儲器0000H-FFFFH,不管是否有部程序存儲器。注意加密方式1時,/EA將部鎖定為RESET;當(dāng)/EA端保持高電平時,此間部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源VPP。 *TAL1:反向振蕩放大器的輸入及部時鐘工作電路的輸入。 *TAL2:來自反向振蕩器的輸出。3振蕩器特性:*TAL1和*TAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片振蕩器。石晶振蕩和瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,*TAL2應(yīng)不接。有余輸入至部時鐘信號要通過一個二分頻觸發(fā)器,
14、因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的上下電平要求的寬度。4芯片擦除:整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫1且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停頓工作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的容并且凍結(jié)振蕩器,制止所用其他芯片功能,直到下一個硬件復(fù)位為止。 LED顯示器LEDLight Emitting Dio
15、de是發(fā)光二極管英文名稱的縮寫。LED顯示器是由發(fā)光二極管構(gòu)成的,所以在顯示器前面冠以LED。LED顯示器在單片機系統(tǒng)中的應(yīng)用非常普遍。(1)LED顯示器的構(gòu)造: 常用的LED顯示器為8段。每一個段對應(yīng)1個發(fā)光二極管,這種顯示器有共陽極和共陰極兩種:共陰極LED顯示器的發(fā)光二極管的陰極連接在一起,通常此公共陰極接地。當(dāng)*個發(fā)光二極管的陽極為高電平時,發(fā)光二極管點亮,相應(yīng)的段被顯示。同樣,共陽極LED顯示器的發(fā)光二極管的陽極連接在一起,通常此公共陽極接正電壓,當(dāng)*個發(fā)光二極管的陰極接低電平時,發(fā)光二極管被點亮,相應(yīng)的段被顯示。為了使LED顯示器顯示不同的符號或數(shù)字,就要把不同段的發(fā)光二極管點亮,
16、這樣就要為LED提供代碼,因為這些代碼可使LED相應(yīng)的段發(fā)光,從而顯示不同字型,因此該代碼稱為段碼。7段發(fā)光二極管,再加上1個小數(shù)點位,共計8位。因此提供應(yīng)LED顯示器的段碼正好是1B。各段與字節(jié)中各位對應(yīng)關(guān)系如下列圖2: 8段LED構(gòu)造及外形代碼位D7D6D5D4D3D2D1D0顯示位dpgfEdcba 圖2(2) LED顯示器工作原理由N個LED顯示塊可以拼接成N位的LED顯示器。如圖是LED顯示器的構(gòu)造原理圖3。N個LED顯示器有N個位選線和8*N位 根段碼線。段碼線控制顯示字符的字型,而位選線為各個LED顯示塊中各段的公共端,它控制該LED顯示位的亮或暗。LED顯示器有靜態(tài)顯示和動態(tài)顯
17、示兩種。 鍵盤鍵盤在單片機應(yīng)用系統(tǒng)中能實現(xiàn)向單片機輸入數(shù)據(jù),傳送命 圖3令等功能,是人工干預(yù)單片機的主要手段。1鍵盤輸入的特點鍵盤實質(zhì)上是一級按鍵開關(guān)的集合。通常,鍵盤開關(guān)利用了機械觸點的合、斷作用。2按鍵確實認(rèn)鍵的閉合與否,反映在行線輸出電壓上就呈現(xiàn)高電平或低電平,如果高電平表示鍵斷開,低電平則表示鍵閉合,通過對行線電平上下狀態(tài)的檢測,便可確認(rèn)按鍵按下與否。為了確保CPU對一次按鍵動作只確認(rèn)一次按鍵有效,必須消除抖動的影響。3如何消除按鍵的抖動采用軟件來消除按鍵抖動的根本思想是:在一次檢測到有鍵按下時,該鍵所對應(yīng)的行線為低電平,執(zhí)行一段延時10MS的子程序后,確認(rèn)該行線電平是不否仍為低電平,
18、如果仍為低電平,則確認(rèn)為該行確實有鍵按下。當(dāng)按鍵松開時,行線的低電平變?yōu)楦唠娖?,?zhí)行一段延時10MS的子程序后,檢測該行線為高電平,說明按鍵確實已經(jīng)松開。 系統(tǒng)復(fù)位電路的設(shè)計智能系統(tǒng)一般應(yīng)有手動或上電復(fù)位電路。復(fù)位電路的實現(xiàn)通常有兩種方式:RC復(fù)位電路和專用監(jiān)控電路。前者實現(xiàn)簡單,本錢低,但復(fù)位可靠性相對較低;后者本錢較高,但復(fù)位可靠性高,尤其是高可靠重復(fù)復(fù)位。對于復(fù)位要求高、并對電源電壓進展監(jiān)視的場合,大多采用這種方式。本次課程設(shè)計采用了上電按鈕電平復(fù)位電路,如圖四 圖4 時鐘電路模塊時鐘電路在單片機系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的根底。在一個單片機應(yīng)用系統(tǒng)中,時鐘是保障系統(tǒng)正
19、常工作的基準(zhǔn)振蕩定時信號,主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機系統(tǒng)工作的快慢。為到達(dá)振蕩周期是12MHZ的要求,這里要采用12MHZ的晶振,另外有兩個22P的獨石電容,兩晶振引腳分別連到*TAL1和*TAL2振蕩脈沖輸入引腳。具體連接圖如圖5所示: 圖52.2硬件電路端口分配(1)硬件電路中用P1.0-P1.7控制按鍵,其中P1.0-P1.3掃描行,P1.4-P1.7掃描列。 (2)用P0.0-P0.7,P2.0-P2.7控制LED,其中P0.0-P0.7控制七段a,b,c,d,e,f,g,用P2.0-P2.7為數(shù)碼管位選信號。 (3)用,P2.0-P2.2作為LCD的RS,R
20、/W,E的控制信號。用P0.0-P0.7作為LCD的D0-D7的控制信號。 (4)用P3.7口控制蜂鳴器。 (5)電路為12MHZ晶振頻率工作,起振電路中C1,C2均為30pf。3 軟件設(shè)計3.1 主模塊的設(shè)計主模塊是系統(tǒng)軟件的主框架。構(gòu)造化程序設(shè)計一般有自上而下和自下而上兩種方式,自上而下法的核心就是主框架的構(gòu)建。它的合理與否關(guān)系到程序最終的功能的多少和性能的好壞。本系統(tǒng)的主模塊的程序框圖如下列圖6所示:主程序開場初始化變量及LCD接口初始化數(shù)字器T0,定時器T1LCD顯示英文歡送字符等待按鍵,是否有按鍵.包括播放,暫停,停頓按鍵歌曲號及播放時間顯示在LCD按照按鍵碼播放對應(yīng)的歌曲YN圖 6
21、3.2 外部中斷源系統(tǒng)設(shè)計在本設(shè)計中中斷源是采用外部中斷0方式,其入口地址是0003H。其中斷響應(yīng)級別最高。1定時器/計數(shù)器工作方式存放器TMOD用于選擇定時器/計數(shù)器的工作方式和工作模式。其格式如下表一:TMODD7D6D5D4D3D2D1D0GATEM1M0GATEM1M0T1方式字段T0方式字段 表一下面對TMOD各位進展說明:門控位GATE工作方式選擇位M1、M0M1M0工作方式00方式0,為13位定時器/計數(shù)器01方式1,為16位定時器/計數(shù)器10方式2,8位的常數(shù)自動重新裝載的定時器/計數(shù)器11方式3,僅適用于T0 表二其中,在本設(shè)計中采用方式1的16位定時器/計數(shù)器。計數(shù)器模式和
22、定時器模式選擇位=0,為定時器模式。=1,為計數(shù)模式。定時器/計數(shù)器控制存放器TCON,其格式如下:TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0ITO 表三其各位的功能如下:TF1、TF0計數(shù)溢出標(biāo)志位當(dāng)計數(shù)器溢出時,該位置1。TR1、TR0計數(shù)運行控制位3.3 根本顯示模塊設(shè)計根本顯示模塊設(shè)計的重點是由顯示代碼取得相應(yīng)的段碼,顯示段碼數(shù)據(jù)的并行發(fā)送,高精度的計時工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘,石英表,石英鐘都采用了石英技術(shù),因此走時精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)校,數(shù)字式電子鐘用集成電路計時時,譯碼代替機械式傳動,用LED顯示器代
23、替顯示器代替指針顯示進而顯示時間,減小了計時誤差,這種表具有時,分,秒顯示時間的功能,還可以進展時和分的校對,片選的靈活性好。程序流程如圖7所示。將進制時分秒數(shù)據(jù)轉(zhuǎn)化為顯示代碼關(guān)顯示以免顯示抖動通過串口將時分秒數(shù)據(jù)傳入數(shù)碼管翻開顯示圖 73.4 系統(tǒng)初始化程序-. zRS BIT P2.0;定義液晶顯示端口標(biāo)-. zRW BIT P2.1E BIT P2.2L50MS EQU 60HL1MS EQU 61HL250MS EQU 62HSEC EQU 65HMIN EQU 64HHOU EQU 63HORG 0000HLJMP MAINORG 000BHLJMP TT0ORG 001BHLJMP
24、 T1INTORG 1000HMAIN: 液晶初始化MOV SP,*70H MOV P0,*01H ;清屏CALL ENABLEMOV P0,*38H ;8位,2行顯示LCALL ENABLE-. z4 Proteus軟件仿真本次課程設(shè)計所采用的程序調(diào)試軟件為wave6000集成調(diào)試軟件,所采用的仿真軟件為protus 6 professional軟件。本次試驗的效果圖如下所示:按鍵功能說明:1A:十首歌曲C:上一首歌曲D:下一首歌曲E:歌曲暫停F:開機畫面開機時有英文歡送提示字符,播放時顯示歌曲序號或名稱可通過功能鍵選擇樂曲,暫停,播放。選作容:顯示樂曲播放時間或剩余時間.構(gòu)造化軟件程序的調(diào)
25、試一般可以將重點放在分模塊調(diào)試上,統(tǒng)調(diào)是最后一環(huán)。軟件調(diào)試可以采取離線調(diào)試和在線調(diào)試兩種方式。前者不需要硬件仿真器,可借助于軟件仿真器即可;后者一般需要仿真系統(tǒng)的支持。本次課設(shè),采用wave6000集成調(diào)試軟件來調(diào)試程序,通過各個模塊程序的單步或跟蹤調(diào)試,使程序逐漸趨于正確,最后統(tǒng)調(diào)程序。仿真局部采用protus 6 professional軟件,此軟件功能強大且操作較為簡單,可以很容易的實現(xiàn)各種系統(tǒng)的仿真。首先翻開protus 6 professional軟件,在元件庫中找到要選用的所有元件,然后進展原理圖的繪制;繪制好后再選擇wave6000已經(jīng)編譯好的*.he*文件,選擇運行,觀察顯示結(jié)
26、果,根據(jù)顯示的結(jié)果和課設(shè)的要求再修改程序,再運行查,直到滿足要求。5課程設(shè)計體會單片機是一門應(yīng)用性很強的學(xué)科,課程設(shè)計是培養(yǎng)我們綜合運用所學(xué)知識,發(fā)現(xiàn)、提出、分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對我們實際工作能力的具體訓(xùn)練和考察過程。雖然在做課程設(shè)計以前已經(jīng)系統(tǒng)的把單片機課本認(rèn)真的學(xué)習(xí)了一下,但是在剛拿到設(shè)計任務(wù)書時還是有點一頭霧水,不知道該從哪里下手。令人欣慰的是經(jīng)過一周的學(xué)習(xí),雖然過程很艱辛,但是總算實現(xiàn)了定時鬧鐘的功能,所有的努力都很值得。這一周的大局部時間都在研究程序怎么處理,在這個過程中加深了我對匯編語言命令的應(yīng)用,而且也更加了解到軟硬件配套的重要性。在設(shè)計的過程中不僅穩(wěn)固
27、了以前所學(xué)過的知識,加深了我對所學(xué)知識的理解,而且學(xué)到了很多在書本上所沒有的知識。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合的重要性,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,才能提高自己的實際動手能力和獨立思考的能力??傊ㄟ^這次課程設(shè)計不僅使我穩(wěn)固了本課程所學(xué)的根本知識,還使我具有了撰寫科研報告的初步訓(xùn)練能力,我相信這些能力在我以后的工作或者是再學(xué)習(xí)中一定會起到不小的作用,一切的辛苦和困難都是值得的。參考文獻(xiàn) 2 剛,周群.電子系統(tǒng)設(shè)計與實踐.電子工業(yè).2004:18-23 341-347 118-1223 何立民.單片機高級教程應(yīng)用與設(shè)計.:航空航天大學(xué),2000
28、年.53984 涂時亮,友德.單片微機控制技術(shù).清華大學(xué).1994:86-87 146-1475 融會貫穿 Protel99電路設(shè)計 弘道工作室 人民交通出版設(shè),2000.6單片機原理及接口技術(shù)實驗 朱定華 北方交通大學(xué)2002.11附1:源程序代碼RS BIT P2.0;定義液晶顯示端口標(biāo)號 -. zRW BIT P2.1 E BIT P2.2;*L50MS EQU 60HL1MS EQU 61HL250MS EQU 62HSEC EQU 65HMIN EQU 64HHOU EQU 63H;*ORG 0000HLJMP MAINORG 000BHLJMP TT0ORG 001BHLJMP T
29、1INTORG 1000HMAIN: 液晶初始化MOV SP,*70H MOV P0,*01H ;清屏CALL ENABLEMOV P0,*38H ;8位,2行顯示LCALL ENABLEMOV P0,*0FH ;屏顯ON,光標(biāo)ON,閃爍ONLCALL ENABLEMOV P0,*06H ;計數(shù)地址加1,顯示幕ONLCALL ENABLE 存初始化LCALL INITIL KEY1:LCALL KEYLCALL MODD LJMP KEY1鍵盤掃描KEY:NOPNOPLCALL KSJNZ K1 有按鍵轉(zhuǎn)到K1LCALL KAIJILCALL SOP*N:LJMP KEYK1:LCALL MO
30、DDLCALL MODDLCALL KSJNZ K2LJMP KEYK2:MOV R2,*0FEH ;讀鍵盤MOV R4,*00HK3:MOV A,R2MOV P1,AMOV A,P1 ACC.4,L1為1跳轉(zhuǎn),第一行無按鍵MOV A,*00HLJMP LKL1: ACC.5,L2MOV A,*04HLJMP LKL2: ACC.6,L3MOV A,*08HLJMP LKL3: ACC.7,NE*T1MOV A,*0CHLK:ADD A,R4PUSH ACCK4:LCALL DELAY1 ;假設(shè)同時有其他按鍵,則等待LCALL KSJNZ K4MOV R3,*07H CLR AMOV R0,*
31、30HMOV R1,*31HMM1:MOV A,R1MOV R0,AINC R0INC R1DJNZ R3,MM1POP ACCMOV R0,A RETNE*T1:INC R4 ;列掃描MOV A,R2JNB ACC.3,N2LJMP N1N2:LJMP KEYN1:RL AMOV R2,ALJMP K3KS:MOV A,*0F0H ;判斷P1口MOV P1,ANOPNOPMOV A,P1CPL AANL A,*0F0HRETDELAY1:SETB RS0DL:MOV R5,*0AHDL2:MOV R6,*63DL3:NOP NOPDJNZ R6,DL3DJNZ R5,DL2 CLR RS0
32、RET 30H-37H初值為零INITIL: MOV R3,*08HMOV R0,*30HM1:MOV R0,*00HINC R0DJNZ R3,M1 RETMODD: MOV P0,*8EHLCALL ENABLE MOV A,37HMOV DPTR,*TABLE3 MOVC A,A+DPTRLCALL WRITE2 RET開機提示字KAIJI:MOV A,37HCJNE A,*0FH,DFFMOV P0,*80H ;設(shè)光標(biāo)地址 LCALL ENABLEMOV DPTR,*TABLE1;寫數(shù)據(jù)LCALL WRITE1 DFF:RET按鍵值播放歌曲SOP:MOV A,37HCJNE A,*01
33、H,A11LCALL MODDMOV 52H,*HIGH TABLE10MOV 53H,*LOW TABLE10LCALL INITILE2LCALL MAIN0A11:CJNE A,*02H,A22LCALL MODDMOV 52H,*HIGH TABLE20MOV 53H,*LOW TABLE20 LCALL INITILE2 LCALL MAIN0A22:CJNE A,*03H,A33LCALL MODDMOV 52H,*HIGH TABLE30MOV 53H,*LOW TABLE30 LCALL INITILE2 LCALL MAIN0 A33:CJNE A,*04H,A44LCALL
34、 MODDMOV 52H,*HIGH TABLE40MOV 53H,*LOW TABLE40 LCALL INITILE2 LCALL MAIN0A44:CJNE A,*05H,A55LCALL MODDMOV 52H,*HIGH TABLE50MOV 53H,*LOW TABLE50 LCALL INITILE2 LCALL MAIN0A55:CJNE A,*06H,A66LCALL MODDMOV 52H,*HIGH TABLE60MOV 53H,*LOW TABLE60 LCALL INITILE2 LCALL MAIN0 A66:CJNE A,*07H,A77LCALL MODDMOV
35、 52H,*HIGH TABLE70MOV 53H,*LOW TABLE70 LCALL INITILE2 LCALL MAIN0 A77:CJNE A,*08H,A88LCALL MODDMOV 52H,*HIGH TABLE80MOV 53H,*LOW TABLE80 LCALL INITILE2 LCALL MAIN0A88:CJNE A,*09H,A99LCALL MODDMOV 52H,*HIGH TABLE90MOV 53H,*LOW TABLE90 LCALL INITILE2 LCALL MAIN0 A99:CJNE A,*0AH,AAALCALL MODDMOV 52H,*H
36、IGH TABLE100MOV 53H,*LOW TABLE100 LCALL INITILE2 LCALL MAIN0 AAA:RET INITILE2:MOV L50MS,*20MOV L1MS,*00HMOV L250MS,*00HMOV SEC,*00HMOV MIN,*00HMOV HOU,*00HMOV A,HOUMOV B,*10DIV ABADD A,*30H ;將BCD嗎轉(zhuǎn)化為ASIIC碼MOV P0,*0C8H ;顯示小時十位CALL ENABLECALL WRITE2MOV A,BADD A,*30HMOV P0,*0C9H ;顯示小時個位CALL ENABLECALL
37、WRITE2MOV A,*3AHMOV P0,*0DH ;顯示冒號CALL ENABLECALL WRITE2MOV A,MINMOV B,*10DIV ABADD A,*30HMOV P0,*0CBH ;顯示分十位CALL ENABLECALL WRITE2MOV A,BADD A,*30HMOV P0,*0CCH ;顯示分個位CALL ENABLECALL WRITE2MOV A,*3AHMOV P0,*0CDH ;顯示冒號CALL ENABLECALL WRITE2MOV A,SECMOV B,*10DIV ABADD A,*30H MOV P0,*0CEH ;顯示秒十位CALL ENA
38、BLECALL WRITE2MOV A,BADD A,*30HMOV P0,*0CFH ;顯示秒個位CALL ENABLECALL WRITE2MOV P0,*0C0H ;設(shè)光標(biāo)地址 CALL ENABLEMOV DPTR,*TABLE2;寫數(shù)據(jù)CALL WRITE1 RET寫指令ENABLE: CLR RSCLR RWCLR ELCALL DELAYSETB ERET寫數(shù)據(jù)WRITE1:MOV R1,*00HA1:MOV A,R1MOVC A,A+DPTRCALL WRITE2INC R1CJNE A,*0FEH,A1 ;未到字符串末尾繼續(xù)RETWRITE2:MOV P0,ASETB RSC
39、LR RWCLR ECALL DELAYSETB ERETDELAY:MOV R4,*05D1:MOV R5,*0FFHDJNZ R5,$DJNZ R4,D1RET TAB:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hdb 80h,90h,88h,83h,0c6h,0a1h,86h,8ehTAB1:db 89h,86h,0c7h,0c7h,0c0hTAB2:db 0c6h,88h,0c0hTABLE1:DBWEL HERE,0FEHTABLE2:DBDFF WB ,0FEHTABLE4:DB CAU,0FEHTABLE3:DB 30H,31H,32H,33h
40、DB 34H,35H,36H,37HDB 38h,39H,41H,42HDB 43H,44H,45H,46H播放歌曲程序MAIN0:MOV TMOD,*11HMOV IE,*8aH MOV TH1,*3cHMOV TL1,*0b0H lcall ksjnz TTM12 MOV 40H,*00HNE*T20:MOV A,40HMOV DPH,52HMOV DPL,53HMOVC A,A+DPTRMOV R2,AJZ STOPANL A,*0FHMOV R1,AMOV A,R2SWAP AANL A,*0FHJNZ SINGCLR TR0JMP W1SING:DEC AMOV 22H,ARL AM
41、OV DPTR,*TABLE00MOVC A,A+DPTRMOV TH0,AMOV 21H,AMOV A,22HRL AINC AMOVC A,A+DPTRMOV TL0,AMOV 20H,ASETB TR0SETB TR1W1:LCALL DELAY30INC 40HLCALL KS ;有鍵跳出JNZ STOPLJMP NE*T20STOP:CLR TR0CLR TR1LJMP MAIN0 TTM12:LCALL K2MOV A,37HCJNE A,*0EH,TTM13CLR TR1LCALL DELAY1TTM120:LCALL KSLCALL DELAY1JZ TTM120LCALL K
42、2MOV A,37HCJNE A,*0EH,TTM120SETB TR1LJMP NE*T20TTM13:CJNE A,*0CH,TTM14MOV A,52HINC AMOV 52H,AMOV A,53HINC AMOV 53H,AMOV A,36HINC AMOV 37H,ALJMP TTM2TTM14:CJNE A,*0DH,TTM2MOV A,52HDEC AMOV 52H,AMOV A,53HDEC AMOV 53H,AMOV A,36HDEC AMOV 37H,A TTM2:RET定時器中斷子程序0TT0:PUSH ACCPUSH PSWMOV TL0,20HMOV TH0,21HC
43、PL P3.7POP PSWPOP ACCRETI定時器中斷子程序1T1INT: MOV TH1, *3cHMOV TL1, *0b0HDJNZ L50MS,*4MOV L50MS,*20每秒種時鐘刷新秒顯示一次SECSET:MOV A,SECMOV B,*10DIV ABADD A,*30H MOV P0,*0CEH ;顯示秒十位lCALL ENABLElCALL WRITE2MOV A,BADD A,*30HMOV P0,*0CFH ;顯示秒個位lCALL ENABLElCALL WRITE2MOV A,SECINC AMOV SEC,A*RL A,*60*4:JNZ OUTMINSET:
44、MOV SEC,*00H MOV A,MININC AMOV MIN,A MOV B,*10DIV ABADD A,*30HMOV P0,*0CBH ;顯示分十位lCALL ENABLElCALL WRITE2MOV A,BADD A,*30HMOV P0,*0CCH ;顯示分個位lCALL ENABLElCALL WRITE2MOV A,MIN MOV B,*3MUL ABMOV B,*100DIV ABMOV R2,AMOV A,*10*CH A,BDIV ABMOV A,MIN*RL A,*60JNZ OUTHOUSET:MOV MIN,*00H MOV A,HOUMOV B,*10DI
45、V ABADD A,*30H ;將BCD嗎轉(zhuǎn)化為ASIIC碼MOV P0,*0C8H ;顯示小時十位CALL ENABLECALL WRITE2MOV A,BADD A,*30HMOV P0,*0C9H ;顯示小時個位CALL ENABLECALL WRITE2MOV A,HOUINC AMOV HOU,A*RL A,*10JNZ OUTSJMP OVERFLOWOUT:RETIOVERFLOW:MOV L50MS,*20MOV L1MS,*00HMOV L250MS,*00HMOV SEC,*00HMOV MIN,*00HMOV HOU,*00HRETIDELAY30: MOV R7,*2W2:MOV R4,*125W3:MOV R3,*248DJNZ R3,$DJNZ R4,W3DJNZ R7,W2DJNZ R1,DELAY30RETTABLE00:DW 64580,64684,64777,64820DW 64898,64968,65030,64260DW 64400,64524,65058,63835,64021第一首精忠報國TABLE10: DB 66H,52H,36H,22H,12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22HDB 32H,52H,
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年粉煤灰銷售合同范本(含供應(yīng)鏈金融服務(wù))
- 二零二五美容院美容院美容院品牌戰(zhàn)略規(guī)劃與實施合同3篇
- 影視院校校外實訓(xùn)基地協(xié)議書(2篇)
- 二零二五年度民辦中學(xué)教師教學(xué)質(zhì)量提升服務(wù)合同4篇
- 打樁施工方案
- 2025年度個人房貸提前還款手續(xù)費合同4篇
- 財務(wù)風(fēng)險述職報告模板
- 2024年中級經(jīng)濟師考試題庫含答案【鞏固】
- 二零二五年度時尚面料品牌授權(quán)合作協(xié)議4篇
- 2025年能源互聯(lián)網(wǎng)項目合作實施保密及技術(shù)交流協(xié)議3篇
- 數(shù)學(xué)-山東省2025年1月濟南市高三期末學(xué)習(xí)質(zhì)量檢測濟南期末試題和答案
- 中儲糧黑龍江分公司社招2025年學(xué)習(xí)資料
- 湖南省長沙市2024-2025學(xué)年高一數(shù)學(xué)上學(xué)期期末考試試卷
- (完整版)小學(xué)生24點習(xí)題大全(含答案)
- 四川省2023年普通高等學(xué)校高職教育單獨招生文化考試(中職類)數(shù)學(xué)試題(原卷版)
- 2024年3月江蘇省考公務(wù)員面試題(B類)及參考答案
- 醫(yī)院科室考勤表
- 春節(jié)期間化工企業(yè)安全生產(chǎn)注意安全生產(chǎn)
- 數(shù)字的秘密生活:最有趣的50個數(shù)學(xué)故事
- 移動商務(wù)內(nèi)容運營(吳洪貴)任務(wù)一 移動商務(wù)內(nèi)容運營關(guān)鍵要素分解
- 基于ADAMS的汽車懸架系統(tǒng)建模與優(yōu)化
評論
0/150
提交評論