多功能計(jì)時(shí)器 的設(shè)計(jì).doc_第1頁(yè)
多功能計(jì)時(shí)器 的設(shè)計(jì).doc_第2頁(yè)
多功能計(jì)時(shí)器 的設(shè)計(jì).doc_第3頁(yè)
多功能計(jì)時(shí)器 的設(shè)計(jì).doc_第4頁(yè)
多功能計(jì)時(shí)器 的設(shè)計(jì).doc_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

一設(shè)計(jì)要求:(1) 任務(wù)設(shè)計(jì)并制作一個(gè)可以完成足球、籃球比賽及其他用處途的多用計(jì)時(shí)裝置。(2) 設(shè)計(jì)要求1) 基本要求 LED數(shù)碼管顯示計(jì)時(shí)結(jié)果; 適用于足球、籃球各種倒計(jì)時(shí)要求; 根據(jù)比賽要求設(shè)置相應(yīng)的按鍵; 電源由外部提供,+5V; 計(jì)時(shí)時(shí)間到報(bào)警。2)發(fā)揮要求 改用LCD顯示; 增加其他計(jì)時(shí)功能; 由6V電池供電(穩(wěn)壓電源提供); 時(shí)間到樂(lè)曲報(bào)警; 整體電路效率60%; 計(jì)時(shí)精度1s/h。二系統(tǒng)實(shí)現(xiàn):本系統(tǒng)由軟件與硬件仿真電路兩部分組成,通過(guò)keil與protues聯(lián)調(diào)實(shí)現(xiàn)足球、籃球計(jì)時(shí)的各種要求。系統(tǒng)由LCD1602顯示,七個(gè)按鍵控制開(kāi)始暫停選擇等功能。2.1硬件仿真電路圖2.2系統(tǒng)設(shè)計(jì)程序總流程圖 開(kāi)始初始化籃球賽?足球賽?籃球賽計(jì)時(shí)界面開(kāi)始?Y功能選擇界面HOU=1?LCD顯示上半場(chǎng)LCD顯示下半場(chǎng)開(kāi)始?計(jì)時(shí)并顯示計(jì)時(shí)并顯示NYY24秒復(fù)位?EXT=24暫停?開(kāi)始?24秒復(fù)位?EXT=24時(shí)間到?HOU+1時(shí)間到?HOU+1暫停開(kāi)始?暫停開(kāi)始?YYYY暫停?開(kāi)始?YYYYYYYYNNNNNNNNNNNNNN三主要硬件部分設(shè)計(jì)與選型3.1 LCD1602顯示器 為了獲得更好的效果本設(shè)計(jì)并沒(méi)有采用常見(jiàn)的LED,而是采用了型號(hào)為L(zhǎng)M016L的 LCD。LCD有LED數(shù)碼顯示更好的更的直觀效果,也更加經(jīng)久耐用。液晶顯示模塊體積小功耗低、顯示內(nèi)容豐富,現(xiàn)在字符型液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的信息顯示器件之一了。本LCD是2行16列液晶 可顯示2行16列英文字符,有8位數(shù)據(jù)總線D0-D7,RS,R/W,EN三個(gè)控制端口(共14線),工作電壓為5V。沒(méi)背光,和常用的1602B功能和引腳一樣(除了調(diào)背光的二個(gè)線腳). 該模塊也可以只用D4-D7作為四位數(shù)據(jù)分兩次傳送。這樣的話可以節(jié)省MCU的I/O口資源。引腳說(shuō)明:VDD:電源正極,4.55.5V,通常使用5V電壓。VL:LCD對(duì)比度調(diào)節(jié)端,電壓調(diào)節(jié)范圍為05V。接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,但對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,因此通常使用一個(gè)10K的電位器來(lái)調(diào)整對(duì)比度,或者直接串接一個(gè)電阻到地。RS:MCU寫入數(shù)據(jù)或者指令選擇端。MCU要寫入指令時(shí),使RS為低電平;MCU要寫入數(shù)據(jù)時(shí),使RS為高電平。R/W:讀寫控制端。R/W為高電平時(shí),讀取數(shù)據(jù);R/W為低電平時(shí),寫入數(shù)據(jù)。E:LCD模塊使能信號(hào)控制端。寫數(shù)據(jù)時(shí),需要下降沿觸發(fā)模塊。D0D7:8位數(shù)據(jù)總線,三態(tài)雙向。如果MCU的I/O口資源緊張的話,該模塊也可以只使用4位數(shù)據(jù)線D4D7接口傳送數(shù)據(jù)。BLA: LED背光正極。需要背光時(shí),BLA串接一個(gè)限流電阻接VDD,BLK接地,實(shí)測(cè)該模塊的背光電流為50mA左右。BLK: LED背光地端。1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表3.2所示:序號(hào)指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開(kāi)/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址10寫數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容表3.2:控制命令表1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明:1為高電平、0為低電平) 指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效。 指令4:顯示開(kāi)關(guān)控制。 D:控制整體顯示的開(kāi)與關(guān),高電平表示開(kāi)顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開(kāi)與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。 指令5:光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。 指令6:功能設(shè)置命令 DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線 N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 F: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符。 指令7:字符發(fā)生器RAM地址設(shè)置。 指令8:DDRAM地址設(shè)置。 指令9:讀忙信號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。 指令10:寫數(shù)據(jù)。 指令11:讀數(shù)據(jù)。與HD44780相兼容的芯片時(shí)序表如下:讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0D7=狀態(tài)字寫指令輸入RS=L,R/W=L,D0D7=指令碼,E=高脈沖輸出無(wú)讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0D7=數(shù)據(jù)寫數(shù)據(jù)輸入RS=H,R/W=L,D0D7=數(shù)據(jù),E=高脈沖輸出無(wú)表3.3:基本操作時(shí)序表對(duì)于溫度顯示模塊的編寫也要了解其時(shí)序圖,通過(guò)時(shí)序圖,編寫相關(guān)的驅(qū)動(dòng)程序,實(shí)現(xiàn)其相關(guān)讀寫操作,此外,要想要讓其顯示正確的命令,還要注意其內(nèi)部相關(guān)控制指令。在本設(shè)計(jì)中主要用的是寫入指令的子程序。 LCD1602的讀寫時(shí)序圖四、主要功能模塊程序設(shè)計(jì)這里只介紹LCD1602顯示程序本系統(tǒng)使用LCD1602實(shí)現(xiàn)顯示,只要參照LCD1602的使用手冊(cè)進(jìn)行初始化和程序編寫就可以顯示,即在程序編寫中添加LCD1602的驅(qū)動(dòng)程序。這里的驅(qū)動(dòng)程序主要包括:初始化函數(shù)、設(shè)置顯示坐標(biāo)、寫字符函數(shù)及寫字符串函數(shù)。LCD1602的部分讀寫控制時(shí)序程序如下所示:(1) 寫命令函數(shù):向寄存器寫入控制字參數(shù):A-控制字W_CMD:ACALL WAIT; /側(cè)忙碌狀態(tài)CLR RW; /寫命令時(shí),R/W為低電平CLR RS; /寫入指令。RS為低電平SETB E; /置高使能線 MOV LCD, A; / 接收命令字并送到數(shù)據(jù)總線上CLR E: /在使能線的下降沿寫入數(shù)據(jù)RET(2)寫數(shù)據(jù)函數(shù):向寄存器寫入數(shù)據(jù)參數(shù):A-待要顯示數(shù)據(jù)W_DATA: ACALL WAIT/側(cè)忙碌狀態(tài)SETB RS/寫數(shù)據(jù)時(shí),RS為高電平CLR RW/寫入數(shù)據(jù)。RW為低電平SETB E/置高使能線MOV LCD, A/ 接收數(shù)據(jù)并送到數(shù)據(jù)總線上CLR E/在使能線的下降沿寫入數(shù)據(jù)RET五、功能演示1、開(kāi)始界面,此時(shí)通過(guò)按鍵選擇功能,有籃球賽計(jì)時(shí)和足球賽計(jì)時(shí)2、選擇籃球賽后出現(xiàn)下面界面,籃球賽是倒計(jì)時(shí)。Period:01表示第一小節(jié),12:00表示本節(jié)剩余分秒時(shí)間,10表示24秒計(jì)時(shí)時(shí)間3、按下開(kāi)始按鍵。開(kāi)始倒計(jì)時(shí),計(jì)時(shí)時(shí)可以隨時(shí)暫停,計(jì)時(shí)和暫停過(guò)程中都可以進(jìn)行24秒復(fù)位。4、第一小節(jié)時(shí)間結(jié)束,時(shí)間停止,并且蜂鳴器發(fā)出報(bào)警聲音 5、再按下開(kāi)始按鈕,則進(jìn)行第二小節(jié)計(jì)時(shí),第一行小節(jié)標(biāo)志換為026、選擇足球賽計(jì)時(shí)功能后顯示下面界面,足球賽是正計(jì)時(shí)。第一行顯示比賽是上半場(chǎng)還是下半場(chǎng),第二行比賽進(jìn)行的時(shí)間,由于足球賽具有傷停補(bǔ)時(shí)時(shí)間,而且時(shí)間不確定,所以設(shè)計(jì)extra:0x。比賽工程中可用按鍵extra+extra-進(jìn)行調(diào)節(jié)。7、按下開(kāi)始鍵后開(kāi)始計(jì)時(shí)。中間可以暫停開(kāi)始8、加時(shí)0分鐘,45分鐘時(shí)自動(dòng)暫停。加時(shí)1分鐘,46分鐘時(shí)自動(dòng)暫停。并報(bào)警 9、按開(kāi)始鍵進(jìn)行下半場(chǎng)計(jì)時(shí)。第一行顯示Second half六、程序?qū)崿F(xiàn)RS EQU P3.0 ;寫入數(shù)據(jù)(1)或指令(0)選擇端RW EQU P3.1 ;讀(1)寫(0)控制E EQU P3.2; ;使能LCD EQU P2 ;LCD數(shù)據(jù)口BF EQU P2.7 ;忙標(biāo)志BA_FO BIT 30H ;選擇功能標(biāo)志位,1為籃球賽,0為足球賽EXT EQU 31H;加時(shí)賽儲(chǔ)存地址HOU EQU 34H ;節(jié)數(shù),上下半場(chǎng)儲(chǔ)存地址MIN EQU 35H;分鐘儲(chǔ)存地址SEC EQU 36H;秒儲(chǔ)存地址COUNT EQU 3CB0H ;T0初值COUNT1 EQU 20 ;20*50Ms=1SCOUNT2EQU37HDATA_1EQU38H ;寫數(shù)據(jù)數(shù)據(jù)首地址CMD_1EQU39H ;寫指令指令首地址SECCOUN EQU 10H ;存放20的地址LEDBUF EQU 40H ;顯示數(shù)據(jù)(數(shù)字)首地址LCDBUFEQU4AH ;顯示數(shù)據(jù)(字符)首地址 ORG 0000H LJMP MAIN ORG 000BH ;T0中斷入口 LJMP STIME ;調(diào)用定時(shí)器T0中斷服務(wù)子程序MAIN: MOVSP,#60H ;裝入固定點(diǎn)顯示字母或符號(hào) MOVLCDBUF+0,#0 MOVLCDBUF+1,#1MOVLCDBUF+2,#2MOVLCDBUF+3,#3MOVLCDBUF+4,#4MOVLCDBUF+5,#5MOVLCDBUF+6,#6MOVLCDBUF+7,#7MOVLCDBUF+8,#8MOVLCDBUF+9,#9MOVLCDBUF+10,#10MOVLCDBUF+11,#11MOVLCDBUF+12,#12MOVLCDBUF+13,#13MOVLCDBUF+14,#14MOVLCDBUF+15,#15MOVP1,#0FFH ;P1口輸出至高電平SETBP3.5 ;蜂鳴器口 ;-LCD1602初始化- MOV A, #00000001B ;發(fā)送清屏操作指令; CALL W_CMD ;調(diào)寫入指令子程序 MOV A, #00001100B ;發(fā)送顯示開(kāi)/關(guān)控制 ACALL W_CMD ;指令,無(wú)光標(biāo),無(wú)閃爍 MOV A, #00011100B ;發(fā)送光標(biāo)移動(dòng)指令 ACALL W_CMD ;光標(biāo)和字一起移動(dòng),光標(biāo)自動(dòng)右移 MOV A, #00111100B ;發(fā)送功能設(shè)置指令 CALL W_CMD ;8位DB,雙行,5x7字符MOVA,HOU ;判斷第幾小節(jié)(上下半場(chǎng) CJNEA,#01,LOP ;非01跳轉(zhuǎn)lop判斷hou為00還是別的LOP:JNCDINGSHI ;進(jìn)位標(biāo)志為1說(shuō)明HOU1比賽小節(jié)結(jié)束,不顯示功能選擇界面MOV HOU,#01 ;進(jìn)位標(biāo)志為0說(shuō)明HOU01,為00,比賽剛開(kāi)始HOU=1并顯示功能選擇界面 ;-LCD1602初始化結(jié)束-HUAN:MOVDATA_1,#LCDBUF MOVCOUNT2,#16 ;顯示字符數(shù)為16個(gè)MOVCMD_1,#10000001B ; 顯示從第一行第一個(gè)開(kāi)始MOV DPTR, #TAB1 ;裝入查表地址,LCALL DISPLAYLCD ;調(diào)用顯示子程序MOVDATA_1,#LCDBUFMOVCOUNT2,#16MOVCMD_1,#11000001BMOV DPTR, #TAB2 ;裝入查表地址LCALL DISPLAYLCD ;調(diào)用顯示子程序 CE:JNBP1.0,BA ;功能選擇判斷,P1.0按下為低電平,選擇籃球賽計(jì)時(shí)JNBP1.1,FO ;功能選擇判斷,P1.1按下為低電平,選擇足球計(jì)時(shí)SJMPCE BA:SETBBA_FO ;選擇的籃球賽標(biāo)志位置1SJMPDINGSHI FO:CLRBA_FO ;選擇的足球賽標(biāo)志位置0 ;-T0定時(shí)初始化-DINGSHI:MOV A, #00000001B ;清屏 CALL W_CMDMOVLEDBUF+5,#10 MOV TMOD,#01H ;設(shè)置T0定時(shí),模式1 MOV TH0,#HIGH(COUNT) ;裝入高4位初始值 MOV TL0,#LOW(COUNT) ;裝入低4位初始值 SETB EA ;開(kāi)中斷 SETB ET0 ;開(kāi)T0中斷允許位,此時(shí)沒(méi)有啟動(dòng)中斷, MOV SECCOUN,#COUNT1 ;把數(shù)值20放到10H單元中 ;-T0定時(shí)初始化結(jié)束- JNBBA_FO,FOOT ;查看標(biāo)志位,選擇功能顯示BASKE: ;籃球賽計(jì)時(shí)顯示 MOV MIN,#12 ;初始化定時(shí)時(shí)間,分 MOV SEC,#00 ;秒MOVEXT,#24 ;24秒倒計(jì)時(shí)MOVDATA_1,#LCDBUF ;第一行顯示Period:(小節(jié)數(shù))MOVCOUNT2,#7 MOVCMD_1,#10000001BMOV DPTR, #TAB5 ;裝入查表地址LCALL DISPLAYLCD ;調(diào)用顯示子程序JMP2DIS:JBP1.4,JMP2DIS1 ;按鍵p1.4則進(jìn)行24秒復(fù)位JNBP1.4,$MOVEXT,#24JMP2DIS1:LCALLMOVBUF1 ;數(shù)據(jù)處理MOVDATA_1,#LEDBUF ;第一行第八九個(gè)空顯示節(jié)數(shù)MOVCOUNT2,#2MOVCMD_1,#10001000BMOV DPTR, #TAB ;裝入查表地址LCALL DISPLAYLCD ;調(diào)用顯示子程序MOVDATA_1,#LEDBUF+3;第二行從第一個(gè)空開(kāi)始顯示分秒數(shù)MOVCOUNT2,#5MOVCMD_1,#11000001BMOV DPTR, #TAB ;裝入查表地址LCALL DISPLAYLCD ;調(diào)用顯示子程序MOVDATA_1,#LEDBUF+8;第二行第十十一個(gè)空顯示24秒倒計(jì)時(shí)MOVCOUNT2,#2MOVCMD_1,#11001010BMOV DPTR, #TAB ;裝入查表地址LCALL DISPLAYLCD ;調(diào)用顯示子程序JBTR0,JMP2DIS ;計(jì)時(shí)已開(kāi)始則返回循環(huán)顯示JBP1.3,$ ;計(jì)時(shí)開(kāi)始按鍵等待LCALLBUZZERSETBTR0 ;啟動(dòng)計(jì)時(shí) LJMP JMP2DISFOOT: MOV MIN,#00 MOV SEC,#00MOVEXT,#00MOVA,HOU;判斷上下半場(chǎng)CJNEA,#1,XIAMOVDATA_1,#LCDBUF;是上半場(chǎng)則第一行顯示First halfMOVCOUNT2,#10MOVCMD_1,#10000001BMOV DPTR, #TAB6 ;裝入查表地址LCALL DISPLAYLCD ;調(diào)用顯示子程序AJMPextraXIA: MOVDATA_1,#LCDBUF;是下半場(chǎng)則第一行顯示Second halfMOVCOUNT2,#11MOVCMD_1,#10000001BMOV DPTR, #TAB7 ;裝入查表地址LCALL DISPLAYLCD ;調(diào)用顯示子程序 extra:MOVDATA_1,#LCDBUF;第二行第八個(gè)空開(kāi)始顯示extra:(加時(shí)時(shí)間)MOVCOUNT2,#6MOVCMD_1,#11001000BMOV DPTR, #TAB8 ;裝入查表地址LCALL DISPLAYLCD ;調(diào)用顯示子程序FOOT1:JBP1.7,JIAN;加時(shí)時(shí)間設(shè)置,P1.6減1,P1.7加1JNBP1.7,$INCEXT JIAN:JBP1.6,FOOT2 JNBP1.6,$ DECEXTFOOT2:LCALLMOVBUF1;數(shù)據(jù)處理MOVDATA_1,#LEDBUF+3;顯示分秒計(jì)時(shí)MOVCOUNT2,#5MOVCMD_1,#11000001BMOV DPTR, #TAB ;裝入查表地址LCALL DISPLAYLCD ;調(diào)用顯示子程序MOVDATA_1,#LEDBUF+8;顯示24秒計(jì)時(shí)MOVCOUNT2,#2MOVCMD_1,#11001110BMOV DPTR, #TAB ;裝入查表地址LCALL DISPLAYLCD ;調(diào)用顯示子程序JBTR0,FOOT1JBP1.3,$ACALLBUZZERSETBTR0 ;啟動(dòng)計(jì)時(shí)LJMPFOOT1BUZZER:CLRP3.5 ;蜂鳴器子程序LCALLT100MSDSETBP3.5RETMOVBUF1: ;數(shù)據(jù)處理子程序PUSHACC MOV A,HOU MOV B,#10DIV ABMOV LEDBUF,AMOV LEDBUF+1,B MOV A,MIN MOV B,#10DIV ABMOV LEDBUF+3,AMOV LEDBUF+4,B MOV A,SEC MOV B,#10DIV ABMOV LEDBUF+6,AMOV LEDBUF+7,BMOVA,EXTMOVB,#10DIVABMOVLEDBUF+8,AMOVLEDBUF+9,BPOPACCRET;-定時(shí)器T0中斷服務(wù)子程序-STIME: MOV TH0,#HIGH(COUNT) ;重新裝入高4位初始值 MOV TL0,#LOW(COUNT) ;重新裝入低4位初始值 DJNZ SECCOUN,TIMEEND3 ;判斷是否夠1秒(20*50us=1S) MOV SECCOUN,#COUNT1 ;重新裝入20 PUSH ACC ;堆棧JNB BA_FO,FOOTSECSEC1CHA:MOVA,EXTDECAMOVEXT,ACJNEA,#-1,SECCHAMOVEXT,#24SECCHA: MOV A,SEC ;秒處理 DECA MOV SEC,A CJNE A,#-1,TIMEEND2 ;判斷是否夠60秒 MOV SEC,#59 ;夠60秒后,秒位清0MINCHA: MOV A,MIN ;分處理 DECA MOV MIN,A CJNE A,#-1,TIMEEND2 HOUCHA: MOVA,HOUINCAMOVHOU,AAJMPSTOP0 ;節(jié)數(shù)有進(jìn)位則表示一小節(jié)節(jié)數(shù),暫停。TIMEEND2:POP ACCTIMEEND3:JNBP1.2,STOP ;判斷是否按下P1.2,按下則暫停RETIFOOTSEC:INCSECMOVA,SEC CJNE A,#60,TIMEEND1 ;判斷是否夠60秒 MOV SEC,#00 ;夠60秒后,秒位清0FOOTMIN:INCMINMOVA,MIN CJNE A,#45,EXTR ;計(jì)時(shí)45+EXT分鐘MOVA,EXTCJNEA,#0,TIMEEND1SJMPFOOTHOUEXTR:JCTIMEEND1DECEXTCJNEA,#0,FOOTHOUSJMPTIMEEND1FOOTHOU:MOVA,HOU ;上半場(chǎng)結(jié)束,HOU加1,INCAMOVHOU,ALCALLMOVBUF1 ;顯示當(dāng)前時(shí)間,否則時(shí)間停留在上一個(gè)顯示59秒,非00秒MOVDATA_1,#LEDBUF+3MOVCOUNT2,#5MOVCMD_1,#11000001BMOV DPTR, #TAB ;裝入查表地址LCALL DISPLAYLCD ;調(diào)用顯示子程序MOVMIN,#00AJMPSTOP0TIMEEND1:POP ACC ;彈出堆棧TIMEEND:JNBP1.2,STOP ;按下P1.2則暫停RETI;-計(jì)時(shí)停止子程序-STOP0:CLRTR0 LCALLBUZZERLCALLT500MSDLCALLBUZZERLCALLT500MSDLCALLBUZZERLCALLT500MSDSTOP:LCALLBUZZERSTOP1:JNBBA_FO,STOP2 ;足球賽,不執(zhí)行下面程序JBP1.4,STOP2 ;籃球賽復(fù)位24秒計(jì)時(shí)MOVEXT,#24 STOP2: JBP1.3,STOP1 ;P1.3按下則暫停結(jié)束,開(kāi)始計(jì)時(shí)LCALLBUZZERRETI;-LCD1602顯示子程序-DISPLAYLCD: MOV R0,DATA_1 ;顯示首地址 MOV R1,COUNT2 MOV R2,CMD_1 ;發(fā)送第一行DDRAM地址設(shè)置指令 MOV A,R2 ACALL W_CMD LOOP1: MOV A, R0 MOVC A, A+DPTR ;查表 ACALL W_DATA ;調(diào)用LCD顯示字子程序 INC R0 ;顯示下一個(gè)字 JNB PSW.5,TG TG: DJNZ R1,LOOP1 CLR PSW.5 LOOP: MOV A, #00001100B ;發(fā)送顯示開(kāi)/關(guān)控制 ACALL W_CMD ;指令,無(wú)光標(biāo),無(wú)閃爍 LJMP EXIT ;跳出LCD1602顯示子程序 WAIT: MOV LCD, #0FFH ;令P2作輸入口使用CLR RSSETB RWCLR ENOPSETB EJB BF, WAI

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論