1 | ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 16 F883 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
2 | ;''''''''''''''''''''''''''''''''''' 28.06.2010 '''''''''''''''''''''''''''''''''''''''''''''''''
|
3 | ;'''' PORTA 8-Bit Ausgang '''''''''BORTB 8-BIT Eingang '''''''''''''''''''''
|
4 | ;'' PORTC Bit 0-5 Ausgang Bit 6 (TX) -Eingang BIT7 (RX) -Eingang '''
|
5 | ;''''''''''''''''''''''''''''''100620 16F883 EUSART_TEST_01.asm '''''''''''''''''''''''''
|
6 | list p=16F883
|
7 | #include <p16F883.inc>
|
8 |
|
9 | __config _CONFIG1, _DEBUG_ON & _LVP_OFF &_FCMEN_OFF &_IESO_OFF &_BOR_OFF & _CPD_OFF & _CP_OFF &_MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
|
10 | __config _CONFIG2, _WRT_OFF &_BOR21V
|
11 | ;vorstehende Konfiguration kein Memory Schreibschutz
|
12 | ;
|
13 |
|
14 |
|
15 | ;
|
16 | ERRORLEVEL -302
|
17 | start
|
18 | ;-----------------------------------
|
19 | BANKSEL PORTA ;B0
|
20 | CLRF PORTA ;Init PORTA
|
21 |
|
22 | BANKSEL ANSEL ;B3selektion Analog oder Digital
|
23 | CLRF ANSEL ;alle RA <7:0> digital
|
24 |
|
25 | BANKSEL TRISA ;B1
|
26 | movlw b'00000000' ;PortA komplett alsAusg
|
27 | MOVWF TRISA ;B1
|
28 | ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
29 |
|
30 | BANKSEL PORTB ;B0
|
31 | CLRF PORTB ;Init PORTB
|
32 |
|
33 | BANKSEL ANSELH
|
34 | CLRF ANSELH;bcf ANSELH,ANS8- ;bcf ANSELH,ANS13
|
35 | BANKSEL TRISB ;B1
|
36 | movlw b'00000000' ;PortB komplett als Ausgang
|
37 | MOVWF TRISB ;B1
|
38 | ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
39 | BANKSEL PORTC ;B0
|
40 | CLRF PORTC ;Init PORTC
|
41 |
|
42 | BANKSEL TRISC ;B1
|
43 | movlw b'00000000' ;PortC Ausgang
|
44 | MOVWF TRISC ;B1
|
45 |
|
46 | ZOut equ 20h
|
47 | VZZ equ 21H
|
48 | ZX1 equ 22H
|
49 | XFLAG equ 23H
|
50 | DATA_EE_ADDR equ 24h
|
51 | DATA_EE_DATA equ 25h
|
52 | ;-----------------------------------
|
53 | BANKSEL PORTA
|
54 |
|
55 | ;''''''''''''''''''''''''''''''' bis hier von WG '''''''''''''''''''''''''''''''''''''''''
|
56 |
|
57 |
|
58 | movlw d'1'
|
59 | call OSZI_16F883
|
60 |
|
61 |
|
62 |
|
63 | loop ; Arbeits-Schleife
|
64 |
|
65 | ;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
66 |
|
67 | movlw 0x04
|
68 | movwf DATA_EE_ADDR ;absolute Schreibadresse
|
69 | ;
|
70 | movlw 0x33
|
71 | movwf DATA_EE_DATA ;Dateninhalt
|
72 |
|
73 | call EE_16F883
|
74 | call EElesen
|
75 | call Stop
|
76 | goto loop
|
77 | ;
|
78 | ;++++++++++++++++++++++++++++++++++++++++++++++
|
79 | EElesen
|
80 | Banksel EEADR
|
81 | MOVLW 0x03 ; ich möchte die EEPROM-Zelle Nr. 03h auslesen
|
82 | MOVWF EEADR ; dazu schreibe ich die Adresse 03h in EEADR
|
83 | Banksel EECON1
|
84 | BCF EECON1, EEPGD ; ich möchte aus dem Daten-Speicher lesen
|
85 | BSF EECON1, RD ; EEPROM Leseprozess starten
|
86 | Banksel EEDATA
|
87 | MOVF EEDATA, W ; Die Daten der EEPROM Zelle nach W kopieren
|
88 | Banksel PORTC
|
89 | movwf PORTC
|
90 | return
|
91 | ;++++++++++++++++++++++++++++++++++++++++++++++++++++
|
92 | Stop
|
93 | goto Stop
|
94 | ;++++++++++++++++++++++++++++++++++++++++++++++++++++
|
95 |
|
96 | EE_16F883
|
97 | ;lesen 16F883
|
98 | BANKSEL EEADR ;
|
99 | MOVLW DATA_EE_ADDR ;
|
100 | MOVWF EEADR ;Data Memory Address to write
|
101 | MOVLW DATA_EE_DATA ;
|
102 | MOVWF EEDAT ;Data Memory Value to write
|
103 | BANKSEL EECON1 ;
|
104 | BCF EECON1, EEPGD ;Point to DATA memory
|
105 | BSF EECON1, WREN ;Enable writes
|
106 | BCF INTCON, GIE ;Disable INTs.
|
107 | BTFSC INTCON, GIE ;SEE AN576
|
108 | GOTO $-2
|
109 | MOVLW 0x55 ;
|
110 | MOVWF EECON2 ;Write 55h
|
111 | MOVLW 0xAA ;
|
112 | MOVWF EECON2 ;Write AAh
|
113 | BSF EECON1, WR ;Set WR bit to begin write
|
114 | BSF INTCON, GIE ;Enable INTs.
|
115 | ;SLEEP ;Wait for interrupt to signal write complete
|
116 | BCF EECON1, WREN ;Disable writes
|
117 | BCF STATUS, RP0 ;Bank 0
|
118 | BCF STATUS, RP1
|
119 | Return
|
120 | ;+++++++++++++++++++++++++++++++++++++++++++++++++++
|
121 |
|
122 |
|
123 | ;
|
124 | ;'''''''''''''''' 1 MHz '''''''''''''''''''''''''''''''''
|
125 | OSZI_16F883
|
126 | MHz1
|
127 | ;bcf OSCCON,7 ;-------
|
128 | bsf OSCCON,6 ;IRCF2=1
|
129 | bcf OSCCON,5 ;IRCF1=0
|
130 | bcf OSCCON,4 ;IRCF0=0+
|
131 | bsf OSCCON,3 ;OSTS
|
132 | bcf OSCCON,2 ;HTS
|
133 | bcf OSCCON,1 ;LTS
|
134 | bsf OSCCON,0 ;SCS
|
135 | ; bei Bedarf Testschleife
|
136 | ;movf OSCCON,w
|
137 | BANKSEL PORTA ;Bank 0
|
138 | ;movwf PORTB
|
139 | ;call Stop
|
140 | return
|
141 |
|
142 |
|
143 | ;'''''''''''''''''''''''''''''' BEI BEDARF AKTIVIEREN ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
144 | ;voreingestellte Daten für den EEPROM ab der Zelle 00h
|
145 | org H'2100' ; Adresse des EEPROM für den Brenner
|
146 | de B'10000001' ; 0
|
147 | de B'01000010' ; 1
|
148 | ;de B'11000011' ; 2
|
149 | ;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
150 |
|
151 |
|
152 |
|
153 |
|
154 |
|
155 |
|
156 |
|
157 |
|
158 | END
|