共1条
1/1 1 跳转至页
pic16c74与lcd接口
;*****SRF***
PC EQU 02H
STATUS EQU 3H
RA EQU 5
RB EQU 6
RC EQU 7
RD EQU 8
RE EQU 9
TEMP EQU 20H
KEYIN EQU 21H
BUFFER EQU 22H
BUFFER1 EQU 23H
BUFFER2 EQU 24H
LCD_ST EQU 30H
LCDCOM EQU 31H
X_COUNT EQU 32H
Y_COUNT EQU 33H
LDATA1 EQU 50H
LDATA2 EQU 52H
LDATA3 EQU 53H
LDATA4 EQU 54H
LDATA5 EQU 55H
LDATA6 EQU 56H
LDATA7 EQU 57H
LDATA8 EQU 58H
LDATA9 EQU 59H;LDATA1-16LCD显示的数据
LDATA10 EQU 5AH
LDATA11 EQU 5BH
LDATA12 EQU 5CH
LDATA13 EQU 5DH
LDATA14 EQU 5EH
LDATA15 EQU 5FH
LDATA16 EQU 60H
TABADD EQU 25H
TRISA EQU 85H
TRISB EQU 86H
TRISC EQU 87H
TRISD EQU 88H
TRISE EQU 89H
;****BIT***********
;&&&&&&&&&&&&&&&&&&&&&
;&&&&&&&&&&&&&&&&&&&
;RD(RST CS2 CS1 E XX XX XX XX )
;RC(RW DI XX XX XX XX XX XX )
;RB(D7 D6 D5 D4 D3 D2 D1 D0)
RST EQU 7
CS2 EQU 6;***********
CS1 EQU 5;LCD的控制引脚
E EQU 4;***********
RW EQU 7
DI EQU 6
;&&&&&&&&&&&&&&&&&&&&
;******RESET*********
PIC74 EQU 0H
;****************
ORG PIC74
GOTO MAIN
DELAY1 MOVLW 0FFH
MOVWF TEMP
LOOP_DELAY DECFSZ TEMP,1
GOTO LOOP_DELAY
RETURN
WAIT BSF STATUS,5
MOVLW B'11111111'
MOVWF TRISB
BCF STATUS,5
NOP
NOP
BCF RC,DI
BSF RC,RW
BSF RD,E
BUSY BTFSC RB,7
GOTO BUSY
BCF RD,E
NOP
NOP
BSF STATUS,5
MOVLW B'00000000'
MOVWF TRISB
BCF STATUS,5
RETURN
WRITECOM MOVWF RB
BCF RC,DI
BCF RC,RW
BSF RD,E
CALL DELAY1
BCF RD,E
RETURN
WRITEDATA MOVWF RB
BCF RC,RW
BSF RC,DI
BSF RD,E
CALL DELAY1
BCF RD,E
RETURN
LCDDIS MOVF LDATA1,0; 1
CALL WRITEDATA
CALL WAIT
MOVF LDATA2,0; 2
CALL WRITEDATA
CALL WAIT
MOVF LDATA3,0; 3
CALL WRITEDATA
CALL WAIT
MOVF LDATA4,0; 4
CALL WRITEDATA
CALL WAIT
MOVF LDATA5,0; 5
CALL WRITEDATA
CALL WAIT
MOVF LDATA6,0; 6
CALL WRITEDATA
CALL WAIT
MOVF LDATA7,0; 7
CALL WRITEDATA
CALL WAIT
MOVF LDATA8,0; 8
CALL WRITEDATA
CALL WAIT
MOVF LDATA9,0; 9
CALL WRITEDATA
CALL WAIT
MOVF LDATA10,0; 10
CALL WRITEDATA
CALL WAIT
MOVF LDATA11,0; 11
CALL WRITEDATA
CALL WAIT
MOVF LDATA12,0; 12
CALL WRITEDATA
CALL WAIT
MOVF LDATA13,0; 13
CALL WRITEDATA
CALL WAIT
MOVF LDATA14,0; 14
CALL WRITEDATA
CALL WAIT
MOVF LDATA15,0; 15
CALL WRITEDATA
CALL WAIT
MOVF LDATA16,0; 16
CALL WRITEDATA
CALL WAIT
RETURN
MAIN BSF STATUS,5
MOVLW B'00000000'
MOVWF TRISB
MOVLW B'00000000'
MOVWF TRISC
MOVLW B'00000000'
MOVWF TRISD
BCF STATUS,5
;RD(RST CS2 CS1 E XX XX XX XX )
;RC(RW DI XX XX XX XX XX XX )
;RB(D7 D6 D5 D4 D3 D2 D1 D0)
CLRF RB
CLRF RC
CLRF RD
NOP
BCF RD,RST;复位信号RST有效
NOP
NOP
BSF RD,RST
;********************
;初始化
;********************
BCF RD,CS1;
BSF RD,CS2;CS1低CS2高左64列有效
BSF RD,E;使能为高有效
MOVLW B'00111111';(03FH)打开显示
CALL WRITECOM
CALL WAIT
NOP
MOVLW 040H; 设Y的坐标
CALL WRITECOM
CALL WAIT
NOP
MOVLW 0B8H; 设X的坐标
CALL WRITECOM
CALL WAIT
NOP
MOVLW 0C0H; 设开始行
CALL WRITECOM
CALL WAIT
BSF RD,CS1;
BCF RD,CS2;CS2低CS1高右64列有效
MOVLW B'00111111';(03FH)打开显示
CALL WRITECOM
CALL WAIT
NOP
MOVLW 040H;
CALL WRITECOM
CALL WAIT
NOP
MOVLW 0B8H
CALL WRITECOM
CALL WAIT
NOP
MOVLW 0C0H
CALL WRITECOM
CALL WAIT
;
;**********TEST1******************
NOP
MOVLW 00H
MOVWF X_COUNT
DIS_X1 MOVF X_COUNT,0
ADDLW 0B8H
BCF RD,CS1
BSF RD,CS2
CALL WRITECOM
CALL WAIT
NOP
NOP
MOVLW 00H
MOVWF Y_COUNT
DIS_Y1 MOVLW 0AAH
BCF RD,CS1
BSF RD,CS2
CALL WRITEDATA
CALL WAIT
INCF Y_COUNT,1
MOVLW 40H;64
SUBWF Y_COUNT,0
SKPZ
GOTO DIS_Y1
INCF X_COUNT,1
MOVLW 08H
SUBWF X_COUNT,0
SKPZ
GOTO DIS_X1
NOP
NOP
NOP
;**********TEST2**********
MOVLW 00H
MOVWF X_COUNT
DIS_X MOVF X_COUNT,0
ADDLW 0B8H
BSF RD,CS1
BCF RD,CS2
CALL WRITECOM
CALL WAIT
MOVLW 00H
MOVWF Y_COUNT
DIS_Y MOVLW 055H
BSF RD,CS1
BCF RD,CS2
CALL WRITEDATA
CALL WAIT
INCF Y_COUNT,1
MOVLW 40H;64
SUBWF Y_COUNT,0
SKPZ
GOTO DIS_Y
INCF X_COUNT,1
MOVLW 08H
SUBWF X_COUNT,0
SKPZ
GOTO DIS_X
NOP
NOP
NOP;
;GOTO YES
; BCF RD,RST
NOP
; BSF RD,RST
NOP
;0x04,0x04,0xE4,0x24,0x24,0x64,0xB4,0x2F,
;0x24,0xA4,0x64,0x24,0x24,0xE6,0x04,0x00,
;0x00,0x00,0x7F,0x04,0x05,0x05,0x05,0x7F,
;0x05,0x05,0x05,0x25,0x44,0x3F,0x00,0x00
NOP
;写“南”字 第三列
BCF RD,CS1
BSF RD,CS2
MOVLW 040H; 设Y的坐标
CALL WRITECOM
CALL WAIT
NOP
MOVLW 0BCH;设X的坐标
CALL WRITECOM
CALL WAIT
NOP
MOVLW 0C0H;设开始行
CALL WRITECOM
CALL WAIT
NOP
;0x04,0x04,0xE4,0x24,0x24,0x64,0xB4,0x2F,
;0x24,0xA4,0x64,0x24,0x24,0xE6,0x04,0x00,
;0x00,0x00,0x7F,0x04,0x05,0x05,0x05,0x7F,
;0x05,0x05,0x05,0x25,0x44,0x3F,0x00,0x00
;“南”字的上半部
MOVLW 04H
MOVWF LDATA1
MOVLW 04H
MOVWF LDATA2
MOVLW 0E4H
MOVWF LDATA3
MOVLW 024H
MOVWF LDATA4
MOVLW 024H
MOVWF LDATA5
MOVLW 064H
MOVWF LDATA6
MOVLW 0B4H;
MOVWF LDATA7
MOVLW 02FH;
MOVWF LDATA8
MOVLW 024H;
MOVWF LDATA9
MOVLW 0A4H;
MOVWF LDATA10
MOVLW 064H;
MOVWF LDATA11
MOVLW 024H;
MOVWF LDATA12
MOVLW 024H;
MOVWF LDATA13
MOVLW 0E6H;
MOVWF LDATA14
MOVLW 04H;
MOVWF LDATA15
MOVLW 00H;
MOVWF LDATA16
CALL LCDDIS
NOP
;“南”字的下半部
BCF RD,CS1
BSF RD,CS2
MOVLW 040H;设Y的坐标
CALL WRITECOM
CALL WAIT
NOP
MOVLW 0BDH;设X的坐标
CALL WRITECOM
CALL WAIT
NOP
;MOVLW 0C8H;设开始行
;CALL WRITECOM
;CALL WAIT
NOP
;0x04,0x04,0xE4,0x24,0x24,0x64,0xB4,0x2F,
;0x24,0xA4,0x64,0x24,0x24,0xE6,0x04,0x00,
;0x00,0x00,0x7F,0x04,0x05,0x05,0x05,0x7F,
;0x05,0x05,0x05,0x25,0x44,0x3F,0x00,0x00
MOVLW 00H;
MOVWF LDATA1
MOVLW 00H;
MOVWF LDATA2
MOVLW 07FH;
MOVWF LDATA3
MOVLW 04H;
MOVWF LDATA4
MOVLW 05H;
MOVWF LDATA5
MOVLW 05H;
MOVWF LDATA6
MOVLW 05H;
MOVWF LDATA7
MOVLW 07FH;
MOVWF LDATA8
MOVLW 05H;
MOVWF LDATA9
MOVLW 05H;
MOVWF LDATA10
MOVLW 05H;
MOVWF LDATA11
MOVLW 025H;
MOVWF LDATA12
MOVLW 044H;
MOVWF LDATA13
MOVLW 03FH;
MOVWF LDATA14
MOVLW 00H;
MOVWF LDATA15
MOVLW 00H;
MOVWF LDATA16
CALL LCDDIS
NOP
;写“南”字 第四列
BCF RD,CS1
BSF RD,CS2
MOVLW 040H; 设Y的坐标
CALL WRITECOM
CALL WAIT
NOP
MOVLW 0BEH;设X的坐标
CALL WRITECOM
CALL WAIT
NOP
MOVLW 0C0H;设开始行
CALL WRITECOM
CALL WAIT
NOP
;0x04,0x04,0xE4,0x24,0x24,0x64,0xB4,0x2F,
;0x24,0xA4,0x64,0x24,0x24,0xE6,0x04,0x00,
;0x00,0x00,0x7F,0x04,0x05,0x05,0x05,0x7F,
;0x05,0x05,0x05,0x25,0x44,0x3F,0x00,0x00
;“南”字的上半部
MOVLW 04H
MOVWF LDATA1
MOVLW 04H
MOVWF LDATA2
MOVLW 0E4H
MOVWF LDATA3
MOVLW 024H
MOVWF LDATA4
MOVLW 024H
MOVWF LDATA5
MOVLW 064H
MOVWF LDATA6
MOVLW 0B4H;
MOVWF LDATA7
MOVLW 02FH;
MOVWF LDATA8
MOVLW 024H;
MOVWF LDATA9
MOVLW 0A4H;
MOVWF LDATA10
MOVLW 064H;
MOVWF LDATA11
MOVLW 024H;
MOVWF LDATA12
MOVLW 024H;
MOVWF LDATA13
MOVLW 0E6H;
MOVWF LDATA14
MOVLW 04H;
MOVWF LDATA15
MOVLW 00H;
MOVWF LDATA16
CALL LCDDIS
NOP
;“南”字的下半部
BCF RD,CS1
BSF RD,CS2
MOVLW 040H;设Y的坐标
CALL WRITECOM
CALL WAIT
NOP
MOVLW 0BFH;设X的坐标
CALL WRITECOM
CALL WAIT
NOP
;MOVLW 0C8H;设开始行
;CALL WRITECOM
;CALL WAIT
NOP
;0x04,0x04,0xE4,0x24,0x24,0x64,0xB4,0x2F,
;0x24,0xA4,0x64,0x24,0x24,0xE6,0x04,0x00,
;0x00,0x00,0x7F,0x04,0x05,0x05,0x05,0x7F,
;0x05,0x05,0x05,0x25,0x44,0x3F,0x00,0x00
MOVLW 00H;
MOVWF LDATA1
MOVLW 00H;
MOVWF LDATA2
MOVLW 07FH;
MOVWF LDATA3
MOVLW 04H;
MOVWF LDATA4
MOVLW 05H;
MOVWF LDATA5
MOVLW 05H;
MOVWF LDATA6
MOVLW 05H;
MOVWF LDATA7
MOVLW 07FH;
MOVWF LDATA8
MOVLW 05H;
MOVWF LDATA9
MOVLW 05H;
MOVWF LDATA10
MOVLW 05H;
MOVWF LDATA11
MOVLW 025H;
MOVWF LDATA12
MOVLW 044H;
MOVWF LDATA13
MOVLW 03FH;
MOVWF LDATA14
MOVLW 00H;
MOVWF LDATA15
MOVLW 00H;
MOVWF LDATA16
CALL LCDDIS
NOP
;换半屏显示“南”
;上半部
BSF RD,CS1
BCF RD,CS2
MOVLW 040H; 设Y的坐标
CALL WRITECOM
CALL WAIT
NOP
MOVLW 0B8H;设X的坐标
CALL WRITECOM
CALL WAIT
NOP
MOVLW 0C0H;设开始行
CALL WRITECOM
CALL WAIT
NOP
;0x04,0x04,0xE4,0x24,0x24,0x64,0xB4,0x2F,
;0x24,0xA4,0x64,0x24,0x24,0xE6,0x04,0x00,
;0x00,0x00,0x7F,0x04,0x05,0x05,0x05,0x7F,
;0x05,0x05,0x05,0x25,0x44,0x3F,0x00,0x00
MOVLW 04H; 1
CALL WRITEDATA
CALL WAIT
MOVLW 04H; 2
CALL WRITEDATA
CALL WAIT
MOVLW 0E4H; 3
CALL WRITEDATA
CALL WAIT
MOVLW 024H; 4
CALL WRITEDATA
CALL WAIT
MOVLW 024H; 5
CALL WRITEDATA
CALL WAIT
MOVLW 064H; 6
CALL WRITEDATA
CALL WAIT
MOVLW 0B4H; 7
CALL WRITEDATA
CALL WAIT
MOVLW 02FH; 8
CALL WRITEDATA
CALL WAIT
MOVLW 024H; 9
CALL WRITEDATA
CALL WAIT
MOVLW 0A4H; 10
CALL WRITEDATA
CALL WAIT
MOVLW 064H; 11
CALL WRITEDATA
CALL WAIT
MOVLW 024H; 12
CALL WRITEDATA
CALL WAIT
MOVLW 024H; 13
CALL WRITEDATA
CALL WAIT
MOVLW 0E6H; 14
CALL WRITEDATA
CALL WAIT
MOVLW 04H; 15
CALL WRITEDATA
CALL WAIT
MOVLW 00H; 16
CALL WRITEDATA
CALL WAIT
;下半部
BSF RD,CS1
BCF RD,CS2
MOVLW 040H;设Y的坐标
CALL WRITECOM
CALL WAIT
NOP
MOVLW 0B9H;设X的坐标
CALL WRITECOM
CALL WAIT
NOP
;MOVLW 0C8H;设开始行
;CALL WRITECOM
;SCALL WAIT
NOP
MOVLW 00H; 1
CALL WRITEDATA
CALL WAIT
MOVLW 00H; 2
CALL WRITEDATA
CALL WAIT
MOVLW 07FH; 3
CALL WRITEDATA
CALL WAIT
MOVLW 04H; 4
CALL WRITEDATA
CALL WAIT
MOVLW 05H; 5
CALL WRITEDATA
CALL WAIT
MOVLW 05H; 6
CALL WRITEDATA
CALL WAIT
MOVLW 05H; 7
CALL WRITEDATA
CALL WAIT
MOVLW 07FH; 8
CALL WRITEDATA
CALL WAIT
MOVLW 05H; 9
CALL WRITEDATA
CALL WAIT
MOVLW 05H; 10
CALL WRITEDATA
CALL WAIT
MOVLW 05H; 11
CALL WRITEDATA
CALL WAIT
MOVLW 025H; 12
CALL WRITEDATA
CALL WAIT
MOVLW 044H; 13
CALL WRITEDATA
CALL WAIT
MOVLW 03FH; 14
CALL WRITEDATA
CALL WAIT
MOVLW 00H; 15
CALL WRITEDATA
CALL WAIT
MOVLW 00H; 16
CALL WRITEDATA
CALL WAIT
NOP
NOP
NOP
END
关键词: pic16c74 接口 COUNT MOVLW M
共1条
1/1 1 跳转至页