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

📄 gepe456.sdi

📁 该应用软件可以实现大多数单片机的仿真实验
💻 SDI
📖 第 1 页 / 共 5 页
字号:
01BA,2576,,          CALL PAUSE2
01BB,0AA1,,          INCF LOOPC,F
01BC,1DA1,,          BTFSS LOOPC,3
01BD,29B5,,          GOTO SQ6
,,,
01BE,3008,,          MOVLW B'00001000' ; toggle between set/clear by bit 3
01BF,0724,,          ADDWF STORE1,W
01C0,38F0,,          IORLW B'11110000'
01C1,00A4,,          MOVWF STORE1
,,,
01C2,1A05,,          BTFSC PORTA,4     ; check switch
01C3,2967,,          GOTO SQUARE
,,,
01C4,0008,ENDDEMO2,ENDDEMO2  RETURN
,,,
,,,                            ;************* DEMO 3 HOW TO HIGHLIGHT TEXT ****************
,,,
01C5,,DEMO3,DEMO3                       ; ** FILL SELECTED GRAPHIC AREA WITH SELECTED ATTRIBUTE VALUE **
,,,
01C5,3002,,          MOVLW 2           ; set graphic address ($02xx)
01C6,00A8,,          MOVWF ADRMSB
01C7,3000,,          MOVLW 0           ; set column
01C8,254D,,          CALL LINE0        ; set cell number for line stated
01C9,3010,,          MOVLW 16          ; character quantity to be affected
01CA,00A1,,          MOVWF LOOPC       ;
01CB,30F5,,          MOVLW B'11110101' ; attribute reverse *
01CC,00A9,,          MOVWF ATTRIB
01CD,24BF,,          CALL SETATTR      ;
,,,                            ; * TRY THESE ATTRIBUTE OPTIONS:
,,,                            ; movlw %00000000 ; attribute normal
,,,                            ; movlw %11110101 ; attribute reverse
,,,                            ; movlw %00001000 ; attribute blink normal
,,,                            ; movlw %00001101 ; attribute blink reverse
,,,
01CE,3002,,          MOVLW 2           ; set graphic address ($02xx)
01CF,00A8,,          MOVWF ADRMSB
01D0,3006,,          MOVLW 6           ; set column
01D1,253B,,          CALL LINE6        ; set cell number for line stated
01D2,3009,,          MOVLW 9           ; character quantity
01D3,00A1,,          MOVWF LOOPC       ;
01D4,300D,,          MOVLW B'00001101' ; attribute blink reverse
01D5,00A9,,          MOVWF ATTRIB
01D6,24BF,,          CALL SETATTR      ;
,,,
01D7,3002,,          MOVLW 2           ; set graphic address ($02xx)
01D8,00A8,,          MOVWF ADRMSB
01D9,3006,,          MOVLW 6           ; set column
01DA,2538,,          CALL LINE7        ; set cell number for line stated
01DB,3009,,          MOVLW 9           ; character quantity
01DC,00A1,,          MOVWF LOOPC       ;
01DD,300D,,          MOVLW B'00001101' ; attribute blink reverse
01DE,00A9,,          MOVWF ATTRIB
01DF,24BF,,          CALL SETATTR      ;
,,,
,,,                            ; ** SET FOR TEXT ATTRIBUTE MODE **
01E0,3084,,          MOVLW B'10000100' ; text attribute mode
01E1,2514,,          CALL SENDCMD      ; send command
01E2,309C,,          MOVLW B'10011100' ; text & graphic on, cursor & blink off
01E3,2514,,          CALL SENDCMD      ; send command
01E4,0008,,          RETURN
,,,
,,,                            ;*********** DEMO 4 SETTING CURSOR ************
,,,
01E5,3097,DEMO4,DEMO4     MOVLW B'10010111' ; text on, graphic off, cursor & blink on
01E6,2514,,          CALL SENDCMD      ; send command
,,,
,,,                            ; set cursor position + type
01E7,300F,,          MOVLW 15          ; set column
01E8,00A7,,          MOVWF ADRLSB
01E9,3003,,          MOVLW 3           ; set line
01EA,00A8,,          MOVWF ADRMSB
01EB,2456,,          CALL CSRADR
01EC,245A,,          CALL CSRTYP       ;set type (specified in sub-routine)
01ED,0008,,          RETURN            ; (from 1 to 8 lines high)
,,,
,,,                            ;*********** DEMO 5 PANNING BETWEEN PAGES ************
,,,
01EE,,DEMO5,DEMO5                       ; ** SHIFT PAGE 1 LEFT TO REVEAL PAGE 2
,,,
01EE,01A8,,          CLRF ADRMSB       ; TEXT HOME ADDRESS $00xx
01EF,3001,,          MOVLW 1
01F0,00A7,,          MOVWF ADRLSB      ; set for PAGE 1 col 1
,,,
01F1,3010,,          MOVLW 16          ;
01F2,00A1,,          MOVWF LOOPC
01F3,242B,SL2,SL2       CALL CMDADR       ; send command address
01F4,3040,,          MOVLW TXHOME      ;
01F5,2514,,          CALL SENDCMD      ; send command
,,,
01F6,3005,SL2A,SL2A      MOVLW 5           ; short pause
01F7,00A0,,          MOVWF LOOPB
01F8,1E05,WAIT2,WAIT2     BTFSS PORTA,4
01F9,2A12,,          GOTO ENDDEMO5
01FA,256D,,          CALL PAUSIT
01FB,0BA0,,          DECFSZ LOOPB,F
01FC,29F8,,          GOTO WAIT2
,,,
01FD,0AA7,,          INCF ADRLSB,F
01FE,0BA1,,          DECFSZ LOOPC,F
01FF,29F3,,          GOTO SL2
,,,
0200,3011,,          MOVLW 17          ; ** SHIFT PAGE 2 RIGHT TO REVEAL PAGE 1
0201,00A1,,          MOVWF LOOPC
0202,3010,,          MOVLW 16
0203,00A7,,          MOVWF ADRLSB      ; set for PAGE 2
0204,242B,SL3,SL3       CALL CMDADR       ; send command address
0205,3040,,          MOVLW TXHOME      ;
0206,2514,,          CALL SENDCMD      ; send command
,,,
0207,3005,SL3A,SL3A      MOVLW 5           ; short pause
0208,00A0,,          MOVWF LOOPB
0209,1E05,WAIT3,WAIT3     BTFSS PORTA,4
020A,2A12,,          GOTO ENDDEMO5
020B,256D,,          CALL PAUSIT
020C,0BA0,,          DECFSZ LOOPB,F
020D,2A09,,          GOTO WAIT3
,,,
020E,03A7,,          DECF ADRLSB,F
020F,0BA1,,          DECFSZ LOOPC,F
0210,2A04,,          GOTO SL3
0211,29EE,,          GOTO DEMO5
,,,
0212,0008,ENDDEMO5,ENDDEMO5  RETURN
,,,
,,,                            ;*********** DEMO 6 SWITCHING BETWEEN PAGES ************
,,,
0213,3080,DEMO6,DEMO6     MOVLW B'10000000' ; (OR mode, Internal CG mode)
0214,2514,,          CALL SENDCMD      ; send command
,,,
0215,,DEMO6A,DEMO6A                      ;** CHANGE PAGE **
0215,01A8,,          CLRF ADRMSB       ; TEXT HOME ADDRESS $00xx
0216,3011,,          MOVLW 17          ; set for PAGE 2
0217,00A7,,          MOVWF ADRLSB
0218,01A1,,          CLRF LOOPC
0219,242B,SL1,SL1       CALL CMDADR       ; send command address
021A,3040,,          MOVLW TXHOME      ;
021B,2514,,          CALL SENDCMD      ; send command
,,,
021C,3005,SL1A,SL1A      MOVLW 5           ; short pause
021D,00A0,,          MOVWF LOOPB
021E,1E05,WAIT,WAIT      BTFSS PORTA,4     ; check switch press
021F,2A28,,          GOTO ENDDEMO6
0220,256D,,          CALL PAUSIT
0221,0BA0,,          DECFSZ LOOPB,F
0222,2A1E,,          GOTO WAIT
,,,
0223,0AA1,,          INCF LOOPC,F
0224,01A7,,          CLRF ADRLSB       ; set for PAGE 1
0225,1CA1,,          BTFSS LOOPC,1
0226,2A19,,          GOTO SL1
0227,2A15,,          GOTO DEMO6A
,,,
0228,0008,ENDDEMO6,ENDDEMO6  RETURN
,,,
,,,                            ;*********** DEMO 7 SETTING AND-OR-XOR MODES ***************
,,,
0229,,DEMO7,DEMO7                       ; ** FILL SELECTED GRAPHIC SCREEN AREA WITH VALUES FOR AND-OR-XOR **
,,,
,,,                            ; first clear attribute data for text lines 0, 6 & 7 set in DEMO3
,,,                            ; but graphic data set in DEMO2 (SQUARE) not cleared
,,,
0229,3080,,          MOVLW B'10000000' ; clear text attribute mode
022A,2514,,          CALL SENDCMD      ; send command
,,,
022B,309C,,          MOVLW B'10011100' ; text & graphic on, cursor & blink off
022C,2514,,          CALL SENDCMD      ; send command
,,,
022D,01A8,,          CLRF ADRMSB       ; TEXT HOME ADDRESS $00xx
022E,3000,,          MOVLW 0
022F,00A7,,          MOVWF ADRLSB
0230,242B,,          CALL CMDADR       ; send command address
0231,3040,,          MOVLW TXHOME      ;
0232,2514,,          CALL SENDCMD      ; send command
,,,
0233,3002,,          MOVLW 2           ; set graphic address ($02xx)
0234,00A8,,          MOVWF ADRMSB
0235,3000,,          MOVLW 0           ; set column
0236,254D,,          CALL LINE0        ; set cell number for line stated
0237,3010,,          MOVLW 16          ; character quantity to be affected
0238,00A1,,          MOVWF LOOPC       ;
0239,01A9,,          CLRF ATTRIB
023A,24BF,,          CALL SETATTR
,,,
023B,3002,,          MOVLW 2           ; set graphic address ($02xx)
023C,00A8,,          MOVWF ADRMSB
023D,3006,,          MOVLW 6           ; set column
023E,253B,,          CALL LINE6        ; set cell number for line stated
023F,3009,,          MOVLW 9           ; character quantity
0240,00A1,,          MOVWF LOOPC       ;
0241,01A9,,          CLRF ATTRIB
0242,24BF,,          CALL SETATTR      ;
,,,
0243,3002,,          MOVLW 2           ; set graphic address ($02xx)
0244,00A8,,          MOVWF ADRMSB
0245,3006,,          MOVLW 6           ; set column
0246,2538,,          CALL LINE7        ; set cell number for line stated
0247,3009,,          MOVLW 9           ; character quantity
0248,00A1,,          MOVWF LOOPC       ;
0249,01A9,,          CLRF ATTRIB
024A,24BF,,          CALL SETATTR      ;
,,,
,,,                            ; ** start of AND-OR XOR mode proper **
,,,
024B,01A8,,          CLRF ADRMSB       ; TEXT HOME ADDRESS $00xx
024C,3000,,          MOVLW 0
024D,00A7,,          MOVWF ADRLSB
024E,242B,,          CALL CMDADR       ; send command address
024F,3040,,          MOVLW TXHOME      ;
0250,2514,,          CALL SENDCMD      ; send command
,,,
0251,300F,,          MOVLW 15          ;
0252,00A2,,          MOVWF LOOPD       ; set line start
0253,3001,AND2,AND2      MOVLW 1           ; set column number
0254,00A7,,          MOVWF ADRLSB
0255,0822,,          MOVF LOOPD,W      ; set graph line
0256,254F,,          CALL GLINE        ; multiply by line length
0257,300A,,          MOVLW 10          ; character quantity
0258,00A1,,          MOVWF LOOPC       ;
0259,30AA,,          MOVLW B'10101010' ; fill graphic with val shown
025A,1C22,,          BTFSS LOOPD,0
025B,3055,,          MOVLW B'01010101' ; fill graphic with val shown
025C,00A9,,          MOVWF ATTRIB
025D,24BF,,          CALL SETATTR      ; send value
025E,0AA2,,          INCF LOOPD,F      ; inc line count
025F,0822,,          MOVF LOOPD,W
0260,3A21,,          XORLW 33          ; has line count reached max?
0261,1D03,,          BTFSS STATUS,Z
0262,2A53,,          GOTO AND2
,,,
0263,,SETAND,SETAND                      ; ** SET AND-OR-XOR MODE ** TRY ANY OF THESE OPTIONS:
0263,3081,,          MOVLW B'10000001' ; internal CG RAM mode, XOR
,,,                            ; movlw %10000000 ; internal CG RAM mode, OR
,,,                            ; movlw %10000011 ; internal CG RAM mode, AND
0264,2514,,          CALL SENDCMD      ; send command
,,,
,,,                            ; ** CHANGE DISPLAY MODE ** TRY ANY OF THESE OPTIONS:
0265,309C,,          MOVLW B'10011100' ; text & graphic on, cursor & blink off
,,,                            ; movlw %10010100 ; text on, graphic off, cursor & blink off
,,,                            ; movlw %10011000 ; text off, graphic on, cursor & blink off
0266,2514,,          CALL SENDCMD      ; send command
0267,0008,,          RETURN
,,,
,,,                            ;******* DEMO 8 GET GRAPHICS (BIRD) FROM EEPROM, DRAW & REPEAT SHIFT RIGHT ***
,,,
0268,246A,DEMO8,DEMO8     CALL CLRTXT
0269,247C,,          CALL CLRGRAPH
,,,
026A,3010,,          MOVLW 16          ; change column length to 16
026B,00AD,,          MOVWF COLUMN
026C,2448,,          CALL TEXTAREA     ; SET TEXT AREA
026D,244F,,          CALL GRAPHAREA    ; SET GRAPHIC AREA
,,,
026E,3080,,          MOVLW B'10000000' ; internal CG RAM mode, OR
026F,2514,,          CALL SENDCMD      ; send command
0270,309C,,          MOVLW B'10011100' ; text & graphic on, cursor & blink off
0271,2514,,          CALL SENDCMD      ; send command
,,,
0272,01A8,EPE,EPE       CLRF ADRMSB       ; show EPE text PT1
0273,3001,,          MOVLW 1           ; set column
0274,00A7,,          MOVWF ADRLSB
0275,254D,,          CALL LINE0        ; set line
0276,3009,,          MOVLW 9           ; character quantity
0277,00A1,,          MOVWF LOOPC       ;
0278,3010,,          MOVLW 16          ; position in table
0279,00A0,,          MOVWF LOOPB       ; set table loop counter
027A,24B2,,          CALL SHWTXT       ;
,,,
027B,01A8,,          CLRF ADRMSB       ; set and show EPE text PT2
027C,300B,,          MOVLW 11          ; set column
027D,00A7,,          MOVWF ADRLSB
027E,254D,,          CALL LINE0        ; set line
027F,3004,,          MOVLW 4           ; character quantity
0280,00A1,,          MOVWF LOOPC       ;
0281,301E,,          MOVLW 30          ; position in table
0282,00A0,,          MOVWF LOOPB       ; set table loop counter
0283,24B2,,          CALL SHWTXT       ;
,,,
0284,1703,,          BSF STATUS,RP1    ; set PIC's Page 2 and EEPROM reading address
0285,018D,,          CLRF EEADR
0286,1303,,          BCF STATUS,RP1
,,,
0287,01A2,,          CLRF LOOPD
0288,01A3,,          CLRF LOOPE
,,,
0289,0823,BIRDX,BIRDX     MOVF LOOPE,W
028A,00A7,,          MOVWF ADRLSB      ; set column
028B,3014,,          MOVLW 20          ; set line
028C,254F,,          CALL GLINE        ; multiply by line length to get address
,,,
028D,3020,BIRD2,BIRD2     MOVLW 32          ; get & show BIRD details from EEPROM
028E,00A0,,          MOVWF LOOPB
028F,255D,BIRD2A,BIRD2A    CALL PRMGET
0290,241C,,          CALL ONEWRITE
0291,082D,,          MOVF COLUMN,W
0292,07A7,,          ADDWF ADRLSB,F
0293,1803,,          BTFSC STATUS,C
0294,0AA8,,          INCF ADRMSB,F
0295,0BA0,,          DECFSZ LOOPB,F
0296,2A8F,,          GOTO BIRD2A
0297,0AA3,,          INCF LOOPE,F
0298,1E23,,          BTFSS LOOPE,4
0299,2A89,,          GOTO BIRDX
,,,
029A,1703,BEAK1,BEAK1     BSF STATUS,RP1
029B,30CA,,          MOVLW 202         ; set for reading from EEPROM byte 202

⌨️ 快捷键说明

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