⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 io.lib

📁 一个C style Assembler的source code
💻 LIB
字号:
;;; The keypad-LCD interface library.BASE equ 0e000hLCD_REGISTER equ  80hLCD_DATA     equ  81hLCD_CONTROL  equ  90hKEYPAD       equ 0a0hRow     equ 32Col     equ 33OldRow  equ 34OldCol  equ 35Counter equ 36key_init:   clr PX1   setb INT1   setb IT1retcgetc:   clr IE1   setb EX1   mov R0, #SP_IE1   acall Pause   clr EX1   mov DPTR, #(BASE + KEYPAD)   movx A, @DPTR   anl A, #0fhretStrobe:   mov DPTR, #(BASE + LCD_CONTROL)   mov A, #1   movx @DPTR, A   mov A, #0   movx @DPTR, Aretclear:   mov OldRow, #0   mov OldCol, #0   mov Row, #0   mov Col, #0   mov A, #01   acall WriteRegistersjmp ClearDelayhome:   mov Row, #0   mov Col, #0   mov A, #02   acall WriteRegistersjmp ClearDelayClearDelay:   ;;; A 1600 microsecond delay (+ 40 for WriteRegister)   mov (Counter + 1), #10   ClearLoop:      mov Counter, #00      djnz Counter, $   djnz (Counter + 1), ClearLoopretWriteRegister:   mov DPTR, #(BASE + LCD_REGISTER)   movx @DPTR, A   acall Strobe   mov Counter, #50    ;;; A 40 microsecond delay is needed.   djnz Counter, $retDISPLAY_ON   equ 4CURSOR_ON    equ 2CURSOR_BLINK equ 1set_cursor:   add A, #08sjmp WriteRegistercursor_left:   dec Col   mov A, #10hsjmp WriteRegistercursor_right:   inc Col   mov A, #14hsjmp WriteRegistershift_left:   mov A, #18hsjmp WriteRegistershift_right:   mov A, #1chsjmp WriteRegisterlocate:   mov A, #80h   add A, Col   jnb Row.0, XX0      add A, #40h   XX0:   jnb Row.1, XX1      add A, #14h   XX1:sjmp WriteRegisterrestore_cursor:   mov Row, OldRow   mov Col, OldColsjmp locatesave_cursor:   mov OldRow, Row   mov OldCol, Colretscr_init:   mov A, #38h   acall WriteRegister ;;; 1/16 duty, 5x7 font, 8 bit interface.   mov A, #06h   acall WriteRegister ;;; Cursor increments, no display shift.   mov A, #DISPLAY_ON   acall set_cursor   acall clearretcputc:   inc Col   mov DPTR, #(BASE + LCD_DATA)   movx @DPTR, A   acall Strobe   mov Counter, #50    ;;; A 40 microsecond delay is needed.   djnz Counter, $retcputs:   cputsLoop:      clr A      movc A, @A + DPTR      inc DPTR   jz cputsBreak      push DPL      push DPH      acall cputc      pop DPH      pop DPL   sjmp cputsLoopcputsBreak:ret

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -