freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的貪食蛇設(shè)計(文件)

2025-07-30 16:30 上一頁面

下一頁面
 

【正文】 。開中斷 SETB EX0 。INT1 邊緣觸發(fā)方式 MOV TMOD,01H 。定時器 1 用作串口通信波特率產(chǎn)生器 ANL PCON,3FH 。串口設(shè)為工作模式 1 接收 MOV SP,70H 。等待游戲開始 并顯示 SNAKE 啟停鍵按下則顯示 PLAYGAME 并進(jìn)入游戲模式 。清除啟停標(biāo)志位 SHEXIN: CALL DISP_SHEXIN 。開定時器 。等待 T0 中斷 CLR BT0 。有鍵按下調(diào)用鍵盤操作子程序 CJNE A,0F0H,XX_X_YY_Y 。重送初值 CLR INC PUT_FOOD 。死亡則顯示 GAMEOVER CALL SNAKE_FOOD 。繼續(xù)循環(huán) GAMEOVER: CLR TR0 CLR B_GAME_ON_OFF CALL DISP_GAMEOVER 。=============================================================================================== 。INTO 中斷服務(wù)子程序 啟 , 停 。=============================================================================================== 。讀鍵值并得出方向 ,即 X, Y 的值 。判斷是否為向下鍵按下 JMP KEY_LEFT PD_UP_DOWN2: MOV A,Y CJNE A,0,KEY_LEFT MOV YY,1 。判斷是否為向右鍵按下 JMP READKEY_OUT PD_LEFT_RIGHT2: MOV A,X CJNE A,0,READKEY_OUT MOV XX,1 。蛇移動子程序 。MOV SNAKE_TAIL_X,A MOV R1,SNAKE_CHANG MOV A,SNAKE_TOU_Y ADD A,Y 。=============================================================================================== 。取 X 坐標(biāo) ORL A,0F0H 。Y 坐標(biāo)到 R2 MOV R2,A CALL COUNT_Y 。取下一節(jié)的 Y 坐標(biāo) CALL DEL 。============================================================================== 20 ================ 。Y 坐標(biāo)為 0 則不要調(diào)整 JMP COUNT_Y_OUT COUNT_Y_H: CLR C MOV A,8 SUBB A,R2 JNC COUNT_Y_L 。將 Y坐標(biāo)高 8位轉(zhuǎn)化為可輸出的字節(jié)存入 H_Y_8 RLC A DJNZ R2,COUNT_Y_H_1 MOV H_Y_8,A JMP COUNT_Y_OUT COUNT_Y_L: 。判斷蛇是否死亡子程序 死亡則置位 B_SNAKE_DED=1 。判斷蛇頭是否撞到下邊的墻 CJNE A,SNAKE_TOU_Y,Y_17 JMP SNAKE_DED_OUT Y_17: MOV A,17 。判斷蛇是否吃到食物 吃到食物 B_SNAKE_FOOD=1 。================================================================================================ 。消掉實(shí)物 MOV FOOD_Y,0 MOV A,SNAKE_CHANG CJNE A,20,PUT_FOOD_COUNT SETB B_PASS 。隨機(jī)數(shù)除 10 取余 MOV R3,A 。得到的余數(shù)不能大于 15 DEC R2 JNC SUBB_1_X CJNE R2,1,R2_FOOD_X INC R2 R2_FOOD_X: MOV FOOD_X,R2 。再除以 10 取余 MOV A,2 MUL AB 。等于 0 則將其加 1 JMP R2_FOOD_Y SUBB_1_Y: MOV A,R2 SUBB A,18 。判斷食物是否與蛇身重疊 MOV R0,SNAKE_TOU_X 。重放食物時修正隨機(jī)數(shù) MOV PUT_FOOD,A CJNE A,255,PUT_FOOD_COUNT 。================================================================================================ SNAKE_PASS: MOV A,TIME SUBB A,1 。不同的關(guān)數(shù)顯示不同的數(shù)字 CLR C RLC A MOV DPTR,TAB_PASS JMP A+DPTR TAB_PASS: JMP PASS_OUT JMP PASS_1 JMP PASS_2 JMP PASS_3 JMP PASS_4 JMP PASS_5 JMP PASS_6 JMP PASS_7 JMP PASS_8 JMP PASS_9 25 PASS_1: MOV DPTR,TAB_PASS_1 MOV 31H,42 CALL DISP_MOVE_L JMP PASS_OUT PASS_2: MOV DPTR,TAB_PASS_2 MOV 31H,46 CALL DISP_MOVE_L JMP PASS_OUT PASS_3: MOV DPTR,TAB_PASS_3 MOV 31H,46 CALL DISP_MOVE_L JMP PASS_OUT PASS_4: MOV DPTR,TAB_PASS_4 MOV 31H,46 CALL DISP_MOVE_L JMP PASS_OUT PASS_5: MOV DPTR,TAB_PASS_5 MOV 31H,46 CALL DISP_MOVE_L JMP PASS_OUT PASS_6: MOV DPTR,TAB_PASS_6 MOV 31H,46 CALL DISP_MOVE_L JMP PASS_OUT PASS_7: MOV DPTR,TAB_PASS_7 MOV 31H,46 CALL DISP_MOVE_L JMP PASS_OUT PASS_8: MOV DPTR,TAB_PASS_8 MOV 31H,46 CALL DISP_MOVE_L JMP PASS_OUT PASS_9: MOV DPTR,TAB_PASS_9 MOV 31H,46 CALL DISP_MOVE_L JMP PASS_OUT 26 PASS_OUT: RET 。清除接收標(biāo)志 MOV A,SBUF 。收到 02H 則向下 CJNE A,02H,LEFT MOV A,Y CJNE A,0,LEFT MOV X,0 MOV Y,1 JMP RI_OVER LEFT: 。外部中斷 1 服務(wù)子程序 紅外接收 。保護(hù) DPTR 的值 PUSH DPL SETB RS0 。等待引導(dǎo)碼出現(xiàn) JMP IR_IN_OUT I2: MOV R2,40 。等待結(jié)果碼結(jié)束 CALL DEL_014 。IRIN狀態(tài)為 1則視為不是引導(dǎo)碼 ,則繼續(xù)返回等待引導(dǎo)碼出現(xiàn) I2_1: JB IRIN,I3 。清屏 MOV P2,00H MOV R0,IR_COM1 。關(guān)閉所有中斷 PUSH ACC 。收到 04H 則向右 CJNE A,04H,RI_OVER MOV A,X CJNE A,0,RI_OVER MOV X,1 MOV Y,0 RI_OVER: RETI 27 。收到 00H 則置啟停標(biāo)志 JMP RI_OVER UP: 。串口中斷服務(wù)子程序 。關(guān)數(shù)加 1 MOV A,PASS_NUM CJNE A,
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1