久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1308|回復: 0
打印 上一主題 下一主題
收起左側

flappybird游戲在51單片機上實現的匯編程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:647360 發表于 2019-11-22 16:59 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. $include(t89c51cc01.inc)

  2. KEYBOARD equ 00H                  
  3. height equ 10111111B        ; THE HEIGHT OF BIRD
  4. delay1 equ 08H


  5. org 0000h
  6. LJMP init1

  7. ORG 02FBh                             ; Initializing of interrupt
  8. LJMP TIMER_INTERRUPT


  9. init1:        mov sp, #70h ;Showing "bird go!"
  10.               CLR TR1        
  11.             MOV R1, #00H
  12.                   MOV R4, #08H
  13.                  

  14. LJMP main
  15. main:

  16. MOV R2, #08H
  17. MOV R3, #06H
  18. CLR C

  19. DJNZ R4, AROW                       ;Loop of row
  20. LJMP init1

  21. AROW:        
  22. MOV A, R1
  23. MOV DPTR, #DATA1
  24. MOVC A, @A+DPTR

  25. ROLL:                                       ;Starting of game
  26. MOV P0, #7FH
  27. JNB P0.0,init2
  28. LJMP LATER

  29. LATER:
  30. RRC A
  31. MOV P4.1, C
  32. CLR P4.0
  33. SETB P4.0
  34. DJNZ R2, ROLL
  35. INC R1
  36. MOV R2, #08H
  37. DJNZ R3, AROW
  38.                                                                                                                                                 


  39. CLR P3.2
  40. SETB P3.2
  41. CLR P3.2

  42. LJMP main




  43.   


  44. init2:
  45. mov R3, #25h
  46. mov R4, #00h
  47. JB P2.5, HARD
  48. mov R5, #0FFh
  49. LJMP AVOID
  50. HARD:
  51.     MOV R5,        #60H
  52. AVOID:
  53.     MOV TMOD,#11h
  54.         SETB EA                   ;Initialize interrupts
  55.         SETB ET1                  
  56.                           
  57.         CLR TR1                  
  58.     MOV TH1,#08Fh                           ;Setting the time of interrupts
  59.         MOV TL1,#00Fh
  60.         setb TR1
  61. ljmp start11                                 




  62. start11:
  63. SETB KEYBOARD



  64. MOV DPTR, #MOVEMENT                          ;Initializing of showing bird
  65. MOV A, R3
  66. MOVC A, @A+DPTR
  67. MOV R0, A
  68. MOV A, R4
  69. MOVC A, @A+DPTR
  70. MOV R1, A
  71. mov R2, #08h
  72. LJMP Rightmove

  73. displaybird:                                  ;Showinging bird in one row
  74. setb P4.1
  75. CLR P4.0
  76. SETB P4.0
  77. djnz R0, displaybird

  78. CLR P4.1
  79. CLR P4.0
  80. SETB P4.0
  81. displaybird1:
  82. setb P4.1
  83. CLR P4.0
  84. SETB P4.0
  85. djnz R1, displaybird1

  86. mov A, height
  87. ActiveRow:
  88.           RRC A
  89.           mov p4.1, C
  90.                   CLR P4.0
  91.           SETB P4.0
  92.           djnz R2, ActiveRow

  93. CLR P3.2
  94. SETB P3.2
  95. CLR P3.2


  96. ljmp init
  97. Rightmove:
  98. djnz R5, displaybird                 ;Controlling the speed of game
  99. mov A, height
  100. LCALL DIEORNOT
  101. DOWN:
  102. INC R4
  103. DEC R3
  104. mov A, height                         ;;move right
  105. RR A                                         ;;move down
  106. MOV height, A
  107. JB P2.5, HARD1
  108. MOV R5, 0FFH
  109. LJMP AVOID1
  110. HARD1:
  111. mov R5, #90h
  112. AVOID1:
  113. LCALL DIEORNOT                                 ;Judge dying or not
  114. LJMP displaybird



  115. DEAD1:                                                   ;The effect of game over
  116.                   
  117.          
  118.                   mov R5, #00h
  119.                   mov R6, #03h
  120. DEAD12:          MOV R1, #00H
  121.                   MOV R4, #08H

  122. LJMP main76
  123. main76:

  124. MOV R2, #08H
  125. MOV R7, #06H
  126. CLR C

  127. DJNZ R4, AROW76
  128. LJMP DEAD12

  129. AROW76:
  130. lcall value
  131. MOV A, R1
  132. MOV DPTR, #DATA3
  133. MOVC A, @A+DPTR

  134. ROLL76:
  135. RRC A
  136. MOV P4.1, C
  137. CLR P4.0
  138. SETB P4.0
  139. DJNZ R2, ROLL76
  140. INC R1
  141. MOV R2, #08H
  142. DJNZ R7, AROW76
  143.                                                                                                                                                 


  144. CLR P3.2
  145. SETB P3.2
  146. CLR P3.2

  147. LJMP main76
  148. CHECK4:
  149. MOV A,R3
  150. INC A
  151. MOV B, #08H
  152. DIV AB
  153. ADD A, #12H
  154. MOV DPTR, #DATA2
  155. MOVC A, @A+DPTR
  156. MOV R7, A
  157. MOV A, #08H
  158. SUBB A, B
  159. MOV B, A
  160. MOV A, R7
  161. MOV R7, B
  162. ROLLING4:
  163. RLC A
  164. DJNZ R7,ROLLING4
  165. JNC DEAD1                                                                  
  166. RET


  167. CHECK5:                                                
  168. MOV A, R3
  169. INC A
  170. MOV B, #08H
  171. DIV AB
  172. ADD A, #18H
  173. MOV DPTR, #DATA2
  174. MOVC A, @A+DPTR
  175. MOV R7, A
  176. MOV A, #08H
  177. SUBB A, B
  178. MOV B, A
  179. MOV A, R7
  180. MOV R7, B
  181. ROLLING5:
  182. RLC A
  183. DJNZ R7,ROLLING5
  184. JNC DEAD1
  185. RET

  186. CHECK6:
  187. MOV A,R3
  188. INC A
  189. MOV B, #08H
  190. DIV AB
  191. ADD A, #1EH
  192. MOV DPTR, #DATA2
  193. MOVC A, @A+DPTR
  194. MOV R7, A
  195. MOV A, #08H
  196. SUBB A, B
  197. MOV B, A
  198. MOV A, R7
  199. MOV R7, B
  200. ROLLING6:
  201. RLC A
  202. DJNZ R7,ROLLING6
  203. JNC DEAD
  204. RET

  205. CHECK7:
  206. MOV A, R3
  207. INC A
  208. MOV B, #08H
  209. DIV AB
  210. ADD A, #24H
  211. MOV DPTR, #DATA2
  212. MOVC A, @A+DPTR
  213. MOV R7, A
  214. MOV A, #08H
  215. SUBB A, B
  216. MOV B, A
  217. MOV A, R7
  218. MOV R7, B
  219. ROLLING7:
  220. RLC A
  221. DJNZ R7,ROLLING7
  222. JNC DEAD
  223. RET

  224. DIEORNOT:
  225. RRC        A                                                   ;Judging which row is the bird in
  226. RRC A
  227. JNC CHECK1
  228. RRC A
  229. JNC CHECK2
  230. RRC A
  231. JNC CHECK3
  232. RRC A
  233. JNC CHECK4
  234. RRC A
  235. JNC CHECK5
  236. RRC A
  237. JNC CHECK6
  238. RRC A
  239. JNC CHECK7
  240. RET
  241. CHECK3:
  242. MOV A,R3
  243. INC A
  244. MOV B, #08H
  245. DIV AB
  246. ADD A, #0CH
  247. MOV DPTR, #DATA2
  248. MOVC A, @A+DPTR
  249. MOV R7, A
  250. MOV A, #08H
  251. SUBB A, B
  252. MOV B, A
  253. MOV A, R7
  254. MOV R7, B
  255. ROLLING3:
  256. RLC A
  257. DJNZ R7,ROLLING3
  258. JNC DEAD
  259. RET
  260. DEAD:                                                   ;The effect of game over
  261.          
  262.                   mov R5, #00h
  263.                   mov R6, #03h
  264.                           
  265. DEAD2:    MOV R1, #00H
  266.                   MOV R4, #08H
  267.                   
  268.                  

  269. LJMP main7
  270. main7:

  271. MOV R2, #08H
  272. MOV R7, #06H
  273. CLR C

  274. DJNZ R4, AROW7
  275. LJMP DEAD2

  276. AROW7:
  277. lcall value
  278. MOV A, R1
  279. MOV DPTR, #DATA3
  280. MOVC A, @A+DPTR

  281. ROLL7:
  282. RRC A
  283. MOV P4.1, C
  284. CLR P4.0
  285. SETB P4.0
  286. DJNZ R2, ROLL7
  287. INC R1
  288. MOV R2, #08H
  289. DJNZ R7, AROW7
  290.                                                                                                                                                 


  291. CLR P3.2
  292. SETB P3.2
  293. CLR P3.2

  294. LJMP main7



  295. CHECK1:
  296. MOV A, R3
  297. INC A
  298. MOV B, #08H
  299. DIV AB
  300. MOV DPTR, #DATA2
  301. MOVC A, @A+DPTR
  302. MOV R7, A
  303. MOV A, #08H
  304. SUBB A, B
  305. MOV B, A
  306. MOV A, R7
  307. MOV R7, B
  308. ROLLING1:
  309. RLC A
  310. DJNZ R7,ROLLING1
  311. JNC DEAD
  312. RET
  313. CHECK2:
  314. MOV A, R3
  315. INC A
  316. MOV B, #08H
  317. DIV AB
  318. ADD A, #06H
  319. MOV DPTR, #DATA2
  320. MOVC A, @A+DPTR
  321. MOV R7, A
  322. MOV A, #08H
  323. SUBB A, B
  324. MOV B, A
  325. MOV A, R7
  326. MOV R7, B
  327. ROLLING2:
  328. RLC A
  329. DJNZ R7,ROLLING2
  330. JNC DEAD
  331. RET




  332. init:                                                       ;Showing the map of game
  333.      MOV R6, #00H
  334.          MOV R2, #08H
  335.          

  336. LJMP main11
  337. main11:

  338. MOV R0, #08H
  339. MOV R1, #06H
  340. CLR C
  341. DJNZ R2, AAROW
  342. ljmp start11
  343. AAROW:
  344. MOV A, R6
  345. MOV DPTR, #DATA2
  346. MOVC A, @A+DPTR

  347. RROLL:
  348. clr C
  349. RRC A
  350. MOV P4.1, C
  351. CLR P4.0
  352. SETB P4.0
  353. DJNZ R0, RROLL
  354. INC R6
  355. MOV R0, #08H
  356. DJNZ R1, AAROW
  357.                                                                                                                                                 


  358. CLR P3.2
  359. SETB P3.2
  360. CLR P3.2
  361. LJMP main11

  362. TIMER_INTERRUPT:                                  ;judging winning or not
  363.     mov P0, #0EFH                                  ;judging jumping or not
  364.          MOV TH1,#08Fh                           
  365.         MOV TL1,#00Fh
  366.         setb TR1
  367.     jnb p0.2, goup
  368.         INC R3
  369.         INC R3
  370.         DJNZ R3,NOWIN
  371.         LJMP WIN
  372. NOWIN:
  373. DEC R3
  374. reti



  375. goup:                                                           ;keeping stability of jumping
  376. jnb KEYBOARD, KEYOFF

  377. ljmp goup1
  378. goup1:
  379. nop
  380. nop
  381. jnb P0.2, goup1
  382. CPL P2.3
  383. MOV A, height
  384. RL A
  385. MOV height, A
  386. CLR KEYBOARD
  387. KEYOFF:
  388. reti





  389. WIN:

  390.           MOV R1, #00H
  391.                   MOV R4, #08H
  392.                  

  393. LJMP main8
  394. main8:

  395. MOV R2, #08H
  396. MOV R7, #06H
  397. CLR C

  398. DJNZ R4, AROW8
  399. LJMP WIN

  400. AROW8:
  401. MOV A, R1
  402. MOV DPTR, #DATA4
  403. MOVC A, @A+DPTR

  404. ROLL8:
  405. RRC A
  406. MOV P4.1, C
  407. CLR P4.0
  408. SETB P4.0
  409. DJNZ R2, ROLL8
  410. INC R1
  411. MOV R2, #08H
  412. DJNZ R7, AROW8
  413.                                                                                                                                                 


  414. CLR P3.2
  415. SETB P3.2
  416. CLR P3.2

  417. LJMP main8

  418.    
  419.                   
  420.                   
  421.                   
  422. value:                   MOV A, R5
  423.            MOV DPTR, #DATA5
  424.            MOVC A, @A+DPTR
  425.                    mov R3, A
  426.                   
  427. increase:  
  428.                    djnz R6, gogogo
  429.                     mov R6, 02h
  430. DELAY:        
  431.             DJNZ delay1, NEXT               
  432.                         INC R5
  433. NEXT:            LJMP continue         
  434.                   
  435. gogogo:        ret               
  436.                     
  437. continue:  djnz R3,function2
  438.                    ljmp main1
  439. function2: djnz R3,function3
  440.                    ljmp main2
  441. function3: djnz R3,function4
  442.                    ljmp main3
  443. function4: djnz R3,function5
  444.            ljmp main4
  445. function5: djnz R3,function6
  446.            ljmp main5
  447. function6: djnz R3,function7
  448.            ljmp main6                    
  449. function7: djnz R3,function8
  450.            ljmp main77                    
  451. function8: ljmp main88

  452. main1:     
  453.                    mov tcon,#00010000b
  454.            mov tmod,#00000001b
  455.                    mov th0,#0f8h
  456.                    mov tl0,#08bh
  457.                    ljmp loop1

  458. main2:   
  459.            mov tcon,#00010000b
  460.            mov tmod,#00000001b
  461.                    mov th0,#0f9h
  462.                    mov tl0,#05bh
  463.                    ljmp loop1
  464.                   
  465. main3:     
  466.                   
  467.            mov tcon,#00010000b
  468.            mov tmod,#00000001b
  469.                    mov th0,#0fah
  470.                    mov tl0,#014h
  471.                    ljmp loop1
  472.                   
  473. main4:   
  474.            mov tcon,#00010000b
  475.            mov tmod,#00000001b
  476.                    mov th0,#0fah
  477.                    mov tl0,#087h
  478.                    ljmp loop1        
  479.                   
  480. main5:     
  481.            mov tcon,#00010000b
  482.            mov tmod,#00000001b
  483.                    mov th0,#0fbh
  484.                    mov tl0,#004h
  485.                    ljmp loop1
  486.                                       
  487. main6:   
  488.            mov tcon,#00010000b
  489.            mov tmod,#00000001b
  490.                    mov th0,#0fbh
  491.                    mov tl0,#08fh
  492.                    ljmp loop1        

  493.                   
  494. main77:     
  495.            mov tcon,#00010000b
  496.            mov tmod,#00000001b
  497.                    mov th0,#0fbh
  498.                    mov tl0,#0b3h
  499.                    ljmp loop1

  500.                   
  501. main88:     
  502.            mov tcon,#00010000b
  503.            mov tmod,#00000001b
  504.                    mov th0,#0fch
  505.                    mov tl0,#044h
  506.                    ljmp loop1

  507.            
  508.                               

  509. loop1:
  510.            jnb tf0,loop1
  511.                    cpl p2.2
  512.                            ljmp value







  513. MOVEMENT:  
  514. DB 01H, 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09H, 0AH, 0BH, 0CH, 0DH, 0EH, 0FH, 10H, 11H, 12H, 13H, 14H, 15H, 16H, 17H, 18H, 19H, 1AH, 1BH, 1CH, 1DH, 1EH, 1FH, 20H
  515. DB 21H, 22H, 23H, 24H, 25H, 26H

  516. DATA1:
  517. DB 11111111B,11111111B,11111111B,11111111B,11111111B,11111101B
  518. DB 11111101B,11000111B,10001011B,11101111B,10011110B,11111011B
  519. DB 00111111B,11110111B,01101101B,11101111B,10101110B,11110111B
  520. DB 11011101B,11100110B,10001111B,11101111B,10011110B,11101111B
  521. DB 00111101B,11010111B,11101111B,11100111B,10101111B,11011111B
  522. DB 11111101B,11100111B,11101111B,11101011B,10011110B,10111111B
  523. DB 11111111B,11111111B,11111111B,11111111B,11111111B,01111111B

  524. DATA2:
  525. DB 10001100B,10100000B,00010000B,00000000B,11110000B,11111101B
  526. DB 11001111B,11100001B,01110111B,00011000B,11110000B,11111011B
  527. DB 11111010B,10111010B,11011110B,00111000B,11110000B,11110111B
  528. DB 01111100B,00110111B,11111100B,01111011B,11110000B,11101111B
  529. DB 00001100B,00011010B,00000000B,11101111B,11110011B,11011111B
  530. DB 00001000B,00010000B,00000000B,00001110B,11111111B,10111111B
  531. DB 00000000B,00000000B,00000000B,00000000B,11111100B,01111111B

  532. DATA3:
  533. DB 11111111B,11111111B,11111111B,11111111B,11111111B,11111101B
  534. DB 10000011B,01110001B,10011100B,11001111B,11101111B,11111011B
  535. DB 10111111B,10111011B,01101101B,10110111B,11101111B,11110111B
  536. DB 10000011B,11011011B,11110101B,01111010B,11101111B,11101111B
  537. DB 10111111B,10111011B,11110101B,10110110B,11010111B,11011111B
  538. DB 10000011B,01110001B,11110100B,11001110B,10111011B,10111111B
  539. DB 11111111B,11111111B,11111111B,11111111B,11111111B,01111111B

  540. DATA4:
  541. DB 11111111B,10111101B,11110111B,11111111B,11111111B,11111101B
  542. DB 11111111B,11011011B,11110111B,11111111B,11111111B,11111011B
  543. DB 11111111B,01100111B,00000000B,11111111B,11111111B,11110111B
  544. DB 11111111B,11100111B,11110111B,11111111B,11111111B,11101111B
  545. DB 11111111B,11011011B,10000001B,11111111B,11111111B,11011111B
  546. DB 11111111B,10111101B,11010111B,11111111B,11111111B,10111111B
  547. DB 11111111B,11111111B,11110111B,11111111B,11111111B,01111111B

  548. DATA5:
  549. DB 01h,02h,03h,04h,05h,06h,07h,08h,07h,06H,05h,04h,03h,02h,01h,01h,03h,05h,07h,02h,04h,06h,08h,08h,06h,04h,02h,02h,03h,07h,01h

  550. end
復制代碼

flappy bird.rar

266.7 KB, 下載次數: 3, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级毛片免费 | www.日本精品 | 精品视频在线播放 | 国产欧美精品一区二区色综合朱莉 | 无码日韩精品一区二区免费 | av片网站| 国产精品久久久久久久久久久久久 | 青青草网 | av在线播放网 | 精品国产乱码久久久久久果冻传媒 | 天天操天天插天天干 | 一区二区三区精品视频 | 国产中文字幕av | 99re视频| 久久不射网| 操操网站 | a级免费视频 | 精品国产伦一区二区三区观看方式 | 亚洲视频在线免费 | 日韩国产一区二区三区 | 国产高清在线精品 | 亚洲一区二区三区免费观看 | 中文字幕亚洲一区 | 免费在线观看黄视频 | 国产网站在线免费观看 | 91免费在线 | 久久久久黄 | 亚洲精品中文字幕 | 久久精品中文字幕 | 美女视频一区二区三区 | 亚洲欧美激情国产综合久久久 | 国产精品99久久久久久动医院 | 亚洲精品一区二区 | 国产激情综合五月久久 | 久久一起草 | 精品久久久一区 | 国产电影一区二区 | 一级网站 | 国产精品一区二区三 | 中文字幕影院 | 久久久久久国产 |