Advertisement
Guest User

Untitled

a guest
Apr 30th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ZADANIE 1
  2.  
  3. LJMP START
  4. LCDstatus equ 0FF2EH
  5. LCDcontrol equ 0FF2CH
  6. LCDdataWR equ 0FF2DH
  7. LCDdataRD equ 0FF2FH
  8. P5 equ 0F8H
  9. P7 equ 0DBH
  10.  
  11. #define HOME        0x80
  12. #define INITDISP    0x38
  13. #define HOM2        0xc0
  14. #define LCDON       0x0e
  15. #define CLEAR       0x01  
  16.  
  17.  
  18.  
  19. ORG 0100H
  20. text1: DB "Wojtek",00
  21. text2: DB "Piotrek",00
  22. text3: DB "jest",00
  23. text4: DB "super",00
  24. LCDcntrlWR MACRO x
  25.         LOCAL loop
  26. loop:
  27.         MOV DPTR, #LCDstatus
  28.         MOVX A, @DPTR
  29.         JB  ACC.7, loop
  30.  
  31.         MOV DPTR, #LCDcontrol
  32.         MOV A, x
  33.         MOVX @DPTR, A
  34.     ENDM
  35.  
  36. LCDcharWR MACRO
  37.         LOCAL loop1
  38.         PUSH ACC
  39. loop1:
  40.         MOV DPTR, #LCDstatus
  41.         MOVX A, @DPTR
  42.         JB ACC.7, loop1
  43.  
  44.         MOV DPTR, #LCDdataWR
  45.         POP ACC
  46.         MOVX @DPTR, A
  47.     ENDM
  48.  
  49. initLCD MACRO
  50.         LCDcntrlWR #INITDISP
  51.         LCDcntrlWR #CLEAR
  52.         LCDcntrlWR #LCDON
  53.     ENDM
  54.  
  55. LCDstrWR:
  56.     CLR A
  57.     MOVC A, @A+DPTR
  58.     JZ koniec
  59.     PUSH DPH
  60.     PUSH DPL
  61.     LCDcharWR
  62.     POP DPL
  63.     POP DPH
  64.     INC DPTR
  65.     SJMP LCDstrWR
  66. koniec:
  67.     RET
  68.  
  69. CZEKAJ2:
  70.  
  71. MOV R1, #0FFH
  72. ZEWNATRZ2:
  73. MOV R2, #0FFH
  74. WEWNATRZ2:
  75. DJNZ R2, WEWNATRZ2
  76. DJNZ R1, ZEWNATRZ2
  77. RET
  78.  
  79.  
  80.  
  81.  
  82.  
  83. START:
  84. /*initLCD
  85. LCDcntrlWR #HOM2
  86.  
  87. PETLA:
  88. MOV C, P3.2
  89. JNC print1
  90. MOV C, P3.3
  91. JNC print2
  92. MOV C, P3.4
  93. JNC print3
  94. MOV C, P3.5
  95. JNC print4
  96. SJMP PETLA
  97.  
  98. print1:
  99. MOV A, #70H
  100. MOV P1, A
  101. LCDcntrlWR #CLEAR
  102. LCDcntrlWR #HOM2
  103. MOV DPTR, #text1
  104. call LCDstrWR
  105. call CZEKAJ2
  106. SJMP PETLA
  107.  
  108. print2:
  109. MOV A, #26H
  110. MOV P1, A
  111. LCDcntrlWR #CLEAR
  112. LCDcntrlWR #HOM2
  113. MOV DPTR, #text2
  114. call LCDstrWR
  115. call CZEKAJ2
  116. SJMP PETLA
  117.  
  118. print3:
  119. MOV A, #7H
  120. MOV P1, A
  121. LCDcntrlWR #CLEAR
  122. LCDcntrlWR #HOM2
  123. MOV DPTR, #text3
  124. call LCDstrWR
  125. call CZEKAJ2
  126. SJMP PETLA
  127.  
  128. print4:
  129. MOV A, #77H
  130. MOV P1, A
  131. LCDcntrlWR #CLEAR
  132. LCDcntrlWR #HOM2
  133. MOV DPTR, #text4
  134. call LCDstrWR
  135. call CZEKAJ2
  136. JMP PETLA        */
  137.  
  138. MOV R0, #7FH
  139. MOV A, R0
  140. MOV P5, A
  141. MOV A, P7
  142. ANL A, R0
  143. MOV R1, A
  144. CLR C
  145. SUBB A, R0
  146. JZ NEXT1
  147. MOV A, R1
  148. MOV P1, A
  149. NEXT1:
  150. MOV R0, #0BFH
  151. MOV A, R0
  152. MOV P5, A
  153. MOV A, P7
  154. ANL A, R0
  155. MOV R1, A
  156. CLR C
  157. SUBB A, R0
  158. JZ NEXT2
  159. MOV A, R1
  160. MOV P1, A
  161. NEXT2:
  162. MOV R0, #0DFH
  163. MOV A, R0
  164. MOV P5, A
  165. MOV A, P7
  166. ANL A, R0
  167. MOV R1, A
  168. CLR C
  169. SUBB A, R0
  170. JZ NEXT3
  171. MOV A, R1
  172. MOV P1, A
  173. NEXT3:
  174. MOV R0, #0EFH
  175. MOV A, R0
  176. MOV P5, A
  177. MOV A, P7
  178. ANL A, R0
  179. MOV R1, A
  180. CLR C
  181. SUBB A, R0
  182. JZ START
  183. MOV A, R1
  184. MOV P1, A
  185. JMP START
  186.  
  187. NOP
  188. NOP
  189. NOP
  190. JMP $
  191. END START
  192.  
  193. ZADANIE 2
  194. LJMP START
  195. LCDstatus equ 0FF2EH
  196. LCDcontrol equ 0FF2CH
  197. LCDdataWR equ 0FF2DH
  198. LCDdataRD equ 0FF2FH
  199. P5 equ 0F8H
  200. P7 equ 0DBH
  201.  
  202. #define HOME        0x80
  203. #define INITDISP    0x38
  204. #define HOM2        0xc0
  205. #define LCDON       0x0e
  206. #define CLEAR       0x01  
  207.  
  208.  
  209.  
  210. ORG 0100H
  211. text1: DB "Wojtek",00
  212. text2: DB "Piotrek",00
  213. text3: DB "jest",00
  214. text4: DB "super",00
  215. LCDcntrlWR MACRO x
  216.         LOCAL loop
  217. loop:
  218.         MOV DPTR, #LCDstatus
  219.         MOVX A, @DPTR
  220.         JB  ACC.7, loop
  221.  
  222.         MOV DPTR, #LCDcontrol
  223.         MOV A, x
  224.         MOVX @DPTR, A
  225.     ENDM
  226.  
  227. LCDcharWR MACRO
  228.         LOCAL loop1
  229.         LOCAL skok
  230.         INC R4
  231.         DJNZ R4, #16, skok
  232.         MOV R4, #0  
  233.         INC R5
  234.         LCDcntrlWR #HOM2
  235.         DJNZ R5, #2, skok
  236.         MOV R5, #0
  237. skok:
  238.         PUSH DPL
  239.         PUSH DPH
  240.         PUSH ACC
  241. loop1:
  242.         MOV DPTR, #LCDstatus
  243.         MOVX A, @DPTR
  244.         JB ACC.7, loop1
  245.  
  246.         MOV DPTR, #LCDdataWR
  247.         POP ACC
  248.         MOVX @DPTR, A
  249.         POP DPH
  250.         POP DPL
  251.     ENDM
  252.  
  253. initLCD MACRO
  254.         LCDcntrlWR #INITDISP
  255.         LCDcntrlWR #CLEAR
  256.         LCDcntrlWR #LCDON
  257.     ENDM
  258.  
  259. LCDstrWR:
  260.     CLR A
  261.     MOVC A, @A+DPTR
  262.     JZ koniec
  263.     PUSH DPH
  264.     PUSH DPL
  265.     LCDcharWR
  266.     POP DPL
  267.     POP DPH
  268.     INC DPTR
  269.     SJMP LCDstrWR
  270. koniec:
  271.     RET
  272.  
  273. CZEKAJ2:
  274. PUSH ACC
  275. MOV A, R1
  276. PUSH ACC
  277. MOV A, R2
  278. PUSH ACC
  279.  
  280. MOV R1, #0FFH
  281. ZEWNATRZ2:
  282. MOV R2, #0FFH
  283. WEWNATRZ2:
  284. DJNZ R2, WEWNATRZ2       
  285. DJNZ R1, ZEWNATRZ2
  286.  
  287. POP ACC
  288. MOV R2, A
  289. POP ACC
  290. MOV R1, A
  291. POP ACC
  292. RET
  293.  
  294.  
  295.  
  296.  
  297.  
  298. START:
  299. /*initLCD
  300. LCDcntrlWR #HOM2
  301.  
  302. PETLA:
  303. MOV C, P3.2
  304. JNC print1
  305. MOV C, P3.3
  306. JNC print2
  307. MOV C, P3.4
  308. JNC print3
  309. MOV C, P3.5
  310. JNC print4
  311. SJMP PETLA
  312.  
  313. print1:
  314. MOV A, #70H
  315. MOV P1, A
  316. LCDcntrlWR #CLEAR
  317. LCDcntrlWR #HOM2
  318. MOV DPTR, #text1
  319. call LCDstrWR
  320. call CZEKAJ2
  321. SJMP PETLA
  322.  
  323. print2:
  324. MOV A, #26H
  325. MOV P1, A
  326. LCDcntrlWR #CLEAR
  327. LCDcntrlWR #HOM2
  328. MOV DPTR, #text2
  329. call LCDstrWR
  330. call CZEKAJ2
  331. SJMP PETLA
  332.  
  333. print3:
  334. MOV A, #7H
  335. MOV P1, A
  336. LCDcntrlWR #CLEAR
  337. LCDcntrlWR #HOM2
  338. MOV DPTR, #text3
  339. call LCDstrWR
  340. call CZEKAJ2
  341. SJMP PETLA
  342.  
  343. print4:
  344. MOV A, #77H
  345. MOV P1, A
  346. LCDcntrlWR #CLEAR
  347. LCDcntrlWR #HOM2
  348. MOV DPTR, #text4
  349. call LCDstrWR
  350. call CZEKAJ2
  351. JMP PETLA           */
  352. initLCD
  353. MOV DPH, #80H
  354. MOV DPL, #77H
  355. MOV A, #31H
  356. MOVX @DPTR, A
  357. MOV DPH, #80H
  358. MOV DPL, #7BH
  359. MOV A, #32H
  360. MOVX @DPTR, A
  361. MOV DPH, #80H
  362. MOV DPL, #7DH
  363. MOV A, #33H
  364. MOVX @DPTR, A
  365. MOV DPH, #80H
  366. MOV DPL, #7EH
  367. MOV A, #41H
  368. MOVX @DPTR, A
  369. MOV DPH, #80H
  370. MOV DPL, #0B7H
  371. MOV A, #34H
  372. MOVX @DPTR, A
  373. MOV DPH, #80H
  374. MOV DPL, #0BBH
  375. MOV A, #35H
  376. MOVX @DPTR, A
  377. MOV DPH, #80H
  378. MOV DPL, #0BDH
  379. MOV A, #36H
  380. MOVX @DPTR, A
  381. MOV DPH, #80H
  382. MOV DPL, #0BEH
  383. MOV A, #42H
  384. MOVX @DPTR, A
  385. MOV DPH, #80H
  386. MOV DPL, #0D7H
  387. MOV A, #37H
  388. MOVX @DPTR, A
  389. MOV DPH, #80H
  390. MOV DPL, #0DBH
  391. MOV A, #38H
  392. MOVX @DPTR, A
  393. MOV DPH, #80H
  394. MOV DPL, #0DDH
  395. MOV A, #39H
  396. MOVX @DPTR, A
  397. MOV DPH, #80H
  398. MOV DPL, #0DEH
  399. MOV A, #43H
  400. MOVX @DPTR, A
  401. MOV DPH, #80H
  402. MOV DPL, #0E7H
  403. MOV A, #45H
  404. MOVX @DPTR, A
  405. MOV DPH, #80H
  406. MOV DPL, #0EBH
  407. MOV A, #30H
  408. MOVX @DPTR, A
  409. MOV DPH, #80H
  410. MOV DPL, #0EDH
  411. MOV A, #46H
  412. MOVX @DPTR, A
  413. MOV DPH, #80H
  414. MOV DPL, #0EEH
  415. MOV A, #44H
  416. MOVX @DPTR, A
  417. MOV R4, #0
  418. MOV R5, #0
  419.                
  420.  
  421. PETLA:
  422. MOV R0, #7FH
  423. MOV A, R0
  424. MOV P5, A
  425. MOV A, P7
  426. ANL A, R0
  427. MOV R1, A
  428. CLR C
  429. SUBB A, R0
  430. JZ NEXT1
  431. call CZEKAJ2
  432. MOV A, R1
  433. MOV DPH, #80H
  434. MOV DPL, A
  435. MOVX A, @DPTR
  436. LCDcharWR
  437. MOV P1, A
  438. PETLA2:
  439. JZ PETLA
  440. NEXT1:
  441. MOV R0, #0BFH
  442. MOV A, R0
  443. MOV P5, A
  444. MOV A, P7
  445. ANL A, R0
  446. MOV R1, A
  447. CLR C
  448. SUBB A, R0
  449. JZ NEXT2
  450. call CZEKAJ2
  451. MOV A, R1
  452. MOV DPH, #80H
  453. MOV DPL, A
  454. MOVX A, @DPTR
  455. LCDcharWR
  456. MOV P1, A
  457. NEXT2:
  458. MOV R0, #0DFH
  459. MOV A, R0
  460. MOV P5, A
  461. MOV A, P7
  462. ANL A, R0
  463. MOV R1, A
  464. CLR C
  465. SUBB A, R0
  466. JZ NEXT3
  467. call CZEKAJ2
  468. MOV A, R1
  469. MOV DPH, #80H
  470. MOV DPL, A
  471. MOVX A, @DPTR
  472. LCDcharWR
  473. MOV P1, A
  474. NEXT3:
  475. MOV R0, #0EFH
  476. MOV A, R0
  477. MOV P5, A
  478. MOV A, P7
  479. ANL A, R0
  480. MOV R1, A
  481. CLR C
  482. SUBB A, R0
  483. JZ PETLA2
  484. call CZEKAJ2
  485. MOV A, R1
  486. MOV DPH, #80H
  487. MOV DPL, A
  488. MOVX A, @DPTR
  489. LCDcharWR
  490. MOV P1, A
  491. JMP PETLA
  492.  
  493. NOP
  494. NOP
  495. NOP
  496. JMP $
  497. END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement