1 | ;Test-Projekt zum Testen des LC-Displays
|
2 |
|
3 | .NOLIST
|
4 | .include "2313def.inc"
|
5 | .LIST
|
6 |
|
7 | .org 0x00
|
8 | rjmp start
|
9 |
|
10 | .org 0x05
|
11 | rjmp lcdinit
|
12 |
|
13 |
|
14 |
|
15 |
|
16 | ;______________________________________________________________________________________________________
|
17 | ;hier beginnt das Hauptprogramm
|
18 | ;______________________________________________________________________________________________________
|
19 |
|
20 |
|
21 | start:
|
22 |
|
23 | ldi r16,low(ramend) ;Stack vorbereitet
|
24 | out spl,r16
|
25 |
|
26 | ldi r16,0b01111111 ;Port B als Ausgang definiert
|
27 | out DDRD,r16
|
28 |
|
29 | ldi r16,0b11111111
|
30 | out DDRB,r16 ;Port D als Ausgang definiert
|
31 |
|
32 | ldi r16,0b10000000 ;Timer 1 (16 bit) overflow Interrupt enable
|
33 | out TIMSK,r16
|
34 |
|
35 | ldi r16,0b00000001 ;Prscaler für Timer 1(CK/64)
|
36 | out TCCR1B,r16
|
37 |
|
38 | sei ;Globales Interrupt enable
|
39 |
|
40 | rjmp loop
|
41 |
|
42 |
|
43 |
|
44 | lcdinit:
|
45 |
|
46 | cli ;interrupt disable
|
47 |
|
48 |
|
49 |
|
50 | ldi r16,0b00110100 ;Function Set (1-line/Display on)
|
51 | out PORTB,r16
|
52 |
|
53 | rcall lcd_enable
|
54 | rcall wait
|
55 | rcall wait
|
56 |
|
57 | ldi r16,0b00001111 ;Display ON/OFF Control (Display on/Curser on/Blink on)
|
58 | out PORTB,r16
|
59 |
|
60 | rcall lcd_enable
|
61 | rcall wait
|
62 | rcall wait
|
63 |
|
64 | ldi r16,0b00000001 ;Display Clear
|
65 | out PORTB,r16
|
66 |
|
67 | rcall lcd_enable
|
68 | rcall wait
|
69 | rcall wait
|
70 |
|
71 | ldi r16,0b00000110 ;Entry Mode Set
|
72 | out PORTB,r16
|
73 |
|
74 | rcall lcd_enable
|
75 | rcall wait
|
76 | rcall wait
|
77 |
|
78 | clr r16
|
79 | out PORTB,r16
|
80 |
|
81 | rjmp loop
|
82 |
|
83 | loop: rjmp loop
|
84 |
|
85 | ;_________________________________________________________________________________________________________________________
|
86 | ;hier stehen die unterprogramme
|
87 | ;_________________________________________________________________________________________________________________________
|
88 |
|
89 | wait:
|
90 | .include "wait.inc"
|
91 | ret
|
92 |
|
93 |
|
94 | lcd_enable:
|
95 | sbi PORTD,0
|
96 | nop
|
97 | nop
|
98 | nop
|
99 | nop
|
100 | nop
|
101 | cbi PORTD,0
|
102 |
|
103 | ret
|