S
simonwai999
Guest
γεια
Κωδικός:
p = 16F690 λίστα
# include <p16F690.inc>
__config (_WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)# define E PORTC, 0? Ορίστε Ενεργοποίηση λειτουργία για λίγο 0 της PORTC
# define RW PORTC, 1? Ορίστε R / W λειτουργία για λίγο 1 του PORTC
# define RS PORTC, 2? Ορίστε Εγγραφή λειτουργία επιλογής για λίγο 2 του PORTCEQU temp 0x20? Θερμοκρασία εγγραφείτε για να κρατούν στοιχεία που αποστέλλονται για να εμφανίσετε
εσωτερικό EQU 0x21? αντιμετώπιση Loop για Υστέρηση ρουτίνας
;************************************************* ***************************org 0x000
NOP;************************************************* ********************************BANKSEL TRISB
clrf TRISB? Ορισμός PORTB ως έξοδοι
clrf TRISC? Ορισμός PORTC ως έξοδοιBANKSEL PORTB
BSF Ε? Initialize Ενεργοποίηση για να Logic High μέλος
BCF RW? Initialize RW για Χαμηλή Logic (Write)κλήση InitDisp? Βάλτε απεικόνιση σε 4-bit0x28 movlw? Αποστολή έναρξη λειτουργίας Σετ εντολή για 4-bit
κλήση LCDCommand? και 2-line display
0x0E movlw? Στείλτε εντολή για να ενεργοποιήσετε την οθόνη και δρομέα
κλήση LCDCommand
0x06 movlw? Αποστολή έναρξη λειτουργίας Ορίστε εντολή για την αύξηση διεύθυνση
κλήση LCDCommand? από μία βάρδια και το δρομέα προς τα δεξιά
0x80 movlw? Αποστολή Set DDRAM Διεύθυνση για την αντιμετώπιση 0x00
κλήση LCDCommand
movlw "Α"? Αποστολή Χαρακτήρας «Α» με την αναγραφή στην πρώτη γραμμή
κλήση LCDData0xC0 movlw? Αποστολή Set DDRAM Διεύθυνση για την αντιμετώπιση 0x40
κλήση LCDCommandmovlw 'B'? Αποστολή χαρακτήρων Β 'α' στην οθόνη για δεύτερη γραμμή
κλήση LCDDataSelf:
self goto? Loop σε θέση? ************************************************* **
? * Για να αρχικοποιήσετε οθόνη, στέλνουμε ένα 8-bit *
? * Για να εμφανιστεί για να το θέσουμε σε 4-bit. *
? ************************************************* **
InitDisp:
BANKSEL PORTB
λειτουργία 0x02 movlw? που για 4-bit interface
movwf PORTB? Μετακίνηση εντολή να LSB της PORTB
BCF RS? κωδικοποίηση RS (δείχνει εντολή)
BCF Ε? Strobe Ενεργοποίηση
BSF E
κλήση Καθυστέρηση? Αφήστε οθόνη για την επεξεργασία των εντολών
επιστροφή? Επιστροφή στον καλούντα? ************************************************* **
? * Για να στείλετε την εντολή για να την οθόνη, δεδομένα φορτίου σε *
? * W_REG και καλέστε LCDCommand *
? ************************************************* **
LCDCommand:
BCF RS? κωδικοποίηση γραμμής εντολών για RS
goto SendToLCD? ************************************************* **
? * Για να στείλετε δεδομένα στην οθόνη, δεδομένα φορτίου σε *
? * W_REG και καλέστε LCDData *
? ************************************************* **
LCDData:
BSF RS? Ορίστε γραμμή RS για τα δεδομένα? ************************************************* **
? * Υπορουτίνα Universal για να στείλετε ένα byte για την LCD, *
? * Πέρασε στα μέσα της W_REG. *
? ************************************************* **
SendToLCD:
movwf temp? Αποθηκεύστε τα δεδομένα μας σε temp μητρώο
swapf temp, W? nybbles Εναλλαγή και να οδηγήσει τον τόπο σε W
movwf PORTB? Μετακίνηση επάνω nybble των δεδομένων σε LSB της PORTB
BCF Ε? Strobe Ενεργοποίηση
BSF E
movf temp, W? Ανάκτηση αρχικά δεδομένα μας byte σε W
movwf PORTB? Μετακίνηση σε PORTB, κατ 'ουσίαν διάθεση χαμηλότερο nybble
? Σε LSB της PORTB
BCF Ε? Stobe Ενεργοποίηση
BSF E
κλήση Delay? Δώστε χρόνο στην οθόνη διαδικασία εντολή ή δεδομένα
επιστροφή? επιστροφή σε καλούντα? ************************************************* *****
? * Δημιουργήστε μια καθυστέρηση για να επιτρέψει στην Οθόνη διαδικασία εντολή *
? ************************************************* *****Υστέρηση:
clrf εσωτερικό
DLoop:
NOP
NOP
decfsz εσωτερικό
DLoop goto
επιστροφήΤΕΛΟΣ
Κωδικός:
p = 16F690 λίστα
# include <p16F690.inc>
__config (_WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)# define E PORTC, 0? Ορίστε Ενεργοποίηση λειτουργία για λίγο 0 της PORTC
# define RW PORTC, 1? Ορίστε R / W λειτουργία για λίγο 1 του PORTC
# define RS PORTC, 2? Ορίστε Εγγραφή λειτουργία επιλογής για λίγο 2 του PORTCEQU temp 0x20? Θερμοκρασία εγγραφείτε για να κρατούν στοιχεία που αποστέλλονται για να εμφανίσετε
εσωτερικό EQU 0x21? αντιμετώπιση Loop για Υστέρηση ρουτίνας
;************************************************* ***************************org 0x000
NOP;************************************************* ********************************BANKSEL TRISB
clrf TRISB? Ορισμός PORTB ως έξοδοι
clrf TRISC? Ορισμός PORTC ως έξοδοιBANKSEL PORTB
BSF Ε? Initialize Ενεργοποίηση για να Logic High μέλος
BCF RW? Initialize RW για Χαμηλή Logic (Write)κλήση InitDisp? Βάλτε απεικόνιση σε 4-bit0x28 movlw? Αποστολή έναρξη λειτουργίας Σετ εντολή για 4-bit
κλήση LCDCommand? και 2-line display
0x0E movlw? Στείλτε εντολή για να ενεργοποιήσετε την οθόνη και δρομέα
κλήση LCDCommand
0x06 movlw? Αποστολή έναρξη λειτουργίας Ορίστε εντολή για την αύξηση διεύθυνση
κλήση LCDCommand? από μία βάρδια και το δρομέα προς τα δεξιά
0x80 movlw? Αποστολή Set DDRAM Διεύθυνση για την αντιμετώπιση 0x00
κλήση LCDCommand
movlw "Α"? Αποστολή Χαρακτήρας «Α» με την αναγραφή στην πρώτη γραμμή
κλήση LCDData0xC0 movlw? Αποστολή Set DDRAM Διεύθυνση για την αντιμετώπιση 0x40
κλήση LCDCommandmovlw 'B'? Αποστολή χαρακτήρων Β 'α' στην οθόνη για δεύτερη γραμμή
κλήση LCDDataSelf:
self goto? Loop σε θέση? ************************************************* **
? * Για να αρχικοποιήσετε οθόνη, στέλνουμε ένα 8-bit *
? * Για να εμφανιστεί για να το θέσουμε σε 4-bit. *
? ************************************************* **
InitDisp:
BANKSEL PORTB
λειτουργία 0x02 movlw? που για 4-bit interface
movwf PORTB? Μετακίνηση εντολή να LSB της PORTB
BCF RS? κωδικοποίηση RS (δείχνει εντολή)
BCF Ε? Strobe Ενεργοποίηση
BSF E
κλήση Καθυστέρηση? Αφήστε οθόνη για την επεξεργασία των εντολών
επιστροφή? Επιστροφή στον καλούντα? ************************************************* **
? * Για να στείλετε την εντολή για να την οθόνη, δεδομένα φορτίου σε *
? * W_REG και καλέστε LCDCommand *
? ************************************************* **
LCDCommand:
BCF RS? κωδικοποίηση γραμμής εντολών για RS
goto SendToLCD? ************************************************* **
? * Για να στείλετε δεδομένα στην οθόνη, δεδομένα φορτίου σε *
? * W_REG και καλέστε LCDData *
? ************************************************* **
LCDData:
BSF RS? Ορίστε γραμμή RS για τα δεδομένα? ************************************************* **
? * Υπορουτίνα Universal για να στείλετε ένα byte για την LCD, *
? * Πέρασε στα μέσα της W_REG. *
? ************************************************* **
SendToLCD:
movwf temp? Αποθηκεύστε τα δεδομένα μας σε temp μητρώο
swapf temp, W? nybbles Εναλλαγή και να οδηγήσει τον τόπο σε W
movwf PORTB? Μετακίνηση επάνω nybble των δεδομένων σε LSB της PORTB
BCF Ε? Strobe Ενεργοποίηση
BSF E
movf temp, W? Ανάκτηση αρχικά δεδομένα μας byte σε W
movwf PORTB? Μετακίνηση σε PORTB, κατ 'ουσίαν διάθεση χαμηλότερο nybble
? Σε LSB της PORTB
BCF Ε? Stobe Ενεργοποίηση
BSF E
κλήση Delay? Δώστε χρόνο στην οθόνη διαδικασία εντολή ή δεδομένα
επιστροφή? επιστροφή σε καλούντα? ************************************************* *****
? * Δημιουργήστε μια καθυστέρηση για να επιτρέψει στην Οθόνη διαδικασία εντολή *
? ************************************************* *****Υστέρηση:
clrf εσωτερικό
DLoop:
NOP
NOP
decfsz εσωτερικό
DLoop goto
επιστροφήΤΕΛΟΣ