M
mobile-it
Guest
Est ce que
quelqu'un peut trouver le problème dans mon code d'un programme LCD?
Code:/ / Avec l'aide du site Web suivant:
/ / Http://www.8052.com/tutlcd.phtml
/ / DéfinitionsDEF DB4 0
DB5 DEF 1
DEF DB6 2
DEF DB7 3
DEF FR 4
DEF RS 5
DEF AD 6/ / Charge de 0 à accumulateurCHARGE 0
Main $
CALL $ INIT_LCD
CALL $ CLEAR_LCD
3 DAT RAMWRT 'H'
CALL $ WRITE_TEXT
3 DAT RAMWRT 'E'
CALL $ WRITE_TEXT
3 DAT RAMWRT 'L'
CALL $ WRITE_TEXT
3 DAT RAMWRT 'L'
CALL $ WRITE_TEXT
3 DAT RAMWRT 'O'
CALL $ WRITE_TEXT
DAT RAMWRT 3 '
CALL $ WRITE_TEXT
3 DAT RAMWRT 'W'
CALL $ WRITE_TEXT
3 DAT RAMWRT 'O'
CALL $ WRITE_TEXT
DAT RAMWRT 3 "R"
CALL $ WRITE_TEXT
3 DAT RAMWRT 'L'
CALL $ WRITE_TEXT
DAT RAMWRT 3 "D"
CALL $ WRITE_TEXT$ READ_2_NIBBLES
BITSET FR
IOWRT ACC
IOREAD
RAMWRT 4
BITCLR FR
IOWRT ACC
BITSET FR
IOWRT ACC
IOREAD
BITCLR 7
BITCLR 6
BITCLR 5
BITCLR 4
RAMWRT 5
BITCLR FR
IOWRT ACC
RAMREAD 4
SHLE
SHLE
SHLE
SHLE
RAMWRT 4
RAMREAD 4
Ajouter RAM 5
RAMWRT 2
RETOUR$ WRITE_2_NIBBLES
RAMREAD 3
BITSET FR
IOWRT ACC
BITCLR FR
IOWRT ACC
RAMREAD 3
ROL
ROL
ROL
ROL
BITSET FR
IOWRT ACCBITCLR FR
IOWRT ACC
RETOUR$ WAIT_LCD
BITCLR RS
IOWRT ACC
BITSET RW
CALL $ READ_2_NIBBLES
RAMREAD 2
BITTST 7
JUMP sinon ZZERO $ WAIT_LCD
BITCLR RW
IOWRT ACC
RETOUR$ INIT_LCD
BITCLR RS
IOWRT ACC
BITCLR RW
IOWRT ACC
BITCLR FR
IOWRT ACC
BITSET FR
IOWRT ACC
OU 0x20
IOWRT ACC
/ / MOV DATA, # 28h
BITCLR FR
IOWRT ACC
CALL $ WAIT_LCD
RAMWRT 3 DAT 0x20
/ / MOV A, # 28h
/ / Ici, l'écriture en mémoire vive est nécessaire!
CALL $ WRITE_2_NIBBLES
CALL $ WAIT_LCD
/ / MOV A, # 0EH
RAMWRT 3 DAT 0x0E
CALL $ WRITE_2_NIBBLES
CALL $ WAIT_LCD
/ / MOV A, # 06h
RAMWRT 3 DAT 0x06
CALL $ WRITE_2_NIBBLES
CALL $ WAIT_LCD
RETOUR$ CLEAR_LCD
BITCLR RS
IOWRT ACC
/ / MOV A, # 01h
CALL $ WRITE_2_NIBBLES
CALL $ WAIT_LCD
RETOUR$ WRITE_TEXT
BITSET RS
IOWRT ACC
CALL $ WRITE_2_NIBBLES
CALL $ WAIT_LCD
RETOUR
quelqu'un peut trouver le problème dans mon code d'un programme LCD?
Code:/ / Avec l'aide du site Web suivant:
/ / Http://www.8052.com/tutlcd.phtml
/ / DéfinitionsDEF DB4 0
DB5 DEF 1
DEF DB6 2
DEF DB7 3
DEF FR 4
DEF RS 5
DEF AD 6/ / Charge de 0 à accumulateurCHARGE 0
Main $
CALL $ INIT_LCD
CALL $ CLEAR_LCD
3 DAT RAMWRT 'H'
CALL $ WRITE_TEXT
3 DAT RAMWRT 'E'
CALL $ WRITE_TEXT
3 DAT RAMWRT 'L'
CALL $ WRITE_TEXT
3 DAT RAMWRT 'L'
CALL $ WRITE_TEXT
3 DAT RAMWRT 'O'
CALL $ WRITE_TEXT
DAT RAMWRT 3 '
CALL $ WRITE_TEXT
3 DAT RAMWRT 'W'
CALL $ WRITE_TEXT
3 DAT RAMWRT 'O'
CALL $ WRITE_TEXT
DAT RAMWRT 3 "R"
CALL $ WRITE_TEXT
3 DAT RAMWRT 'L'
CALL $ WRITE_TEXT
DAT RAMWRT 3 "D"
CALL $ WRITE_TEXT$ READ_2_NIBBLES
BITSET FR
IOWRT ACC
IOREAD
RAMWRT 4
BITCLR FR
IOWRT ACC
BITSET FR
IOWRT ACC
IOREAD
BITCLR 7
BITCLR 6
BITCLR 5
BITCLR 4
RAMWRT 5
BITCLR FR
IOWRT ACC
RAMREAD 4
SHLE
SHLE
SHLE
SHLE
RAMWRT 4
RAMREAD 4
Ajouter RAM 5
RAMWRT 2
RETOUR$ WRITE_2_NIBBLES
RAMREAD 3
BITSET FR
IOWRT ACC
BITCLR FR
IOWRT ACC
RAMREAD 3
ROL
ROL
ROL
ROL
BITSET FR
IOWRT ACCBITCLR FR
IOWRT ACC
RETOUR$ WAIT_LCD
BITCLR RS
IOWRT ACC
BITSET RW
CALL $ READ_2_NIBBLES
RAMREAD 2
BITTST 7
JUMP sinon ZZERO $ WAIT_LCD
BITCLR RW
IOWRT ACC
RETOUR$ INIT_LCD
BITCLR RS
IOWRT ACC
BITCLR RW
IOWRT ACC
BITCLR FR
IOWRT ACC
BITSET FR
IOWRT ACC
OU 0x20
IOWRT ACC
/ / MOV DATA, # 28h
BITCLR FR
IOWRT ACC
CALL $ WAIT_LCD
RAMWRT 3 DAT 0x20
/ / MOV A, # 28h
/ / Ici, l'écriture en mémoire vive est nécessaire!
CALL $ WRITE_2_NIBBLES
CALL $ WAIT_LCD
/ / MOV A, # 0EH
RAMWRT 3 DAT 0x0E
CALL $ WRITE_2_NIBBLES
CALL $ WAIT_LCD
/ / MOV A, # 06h
RAMWRT 3 DAT 0x06
CALL $ WRITE_2_NIBBLES
CALL $ WAIT_LCD
RETOUR$ CLEAR_LCD
BITCLR RS
IOWRT ACC
/ / MOV A, # 01h
CALL $ WRITE_2_NIBBLES
CALL $ WAIT_LCD
RETOUR$ WRITE_TEXT
BITSET RS
IOWRT ACC
CALL $ WRITE_2_NIBBLES
CALL $ WAIT_LCD
RETOUR