|
1 .equ LED7_DDR = DDRB |
|
2 .equ LED7_PORT = PORTB |
|
3 .equ LED7_OE = PORTB1 ; Output Enable (Low) |
|
4 |
|
5 ; Output font for 7-segment display |
|
6 LED7_Font: |
|
7 .db 0b00111111, 0b00000110 ; 0, 1 |
|
8 .db 0b01011011, 0b01001111 ; 2, 3 |
|
9 .db 0b01100110, 0b01101101 ; 4, 5 |
|
10 .db 0b01111101, 0b00000111 ; 6, 7 |
|
11 .db 0b01111111, 0b01100111 ; 8, 9 |
|
12 .db 0b01110111, 0b01111100 ; A, b |
|
13 .db 0b00111001, 0b01011110 ; C, d |
|
14 .db 0b01111001, 0b01110001 ; E, f |
|
15 .db 0b10000000, 0b00000000 ; ., |
|
16 |
|
17 ;.db 0b00111111, ; 0 |
|
18 ; 0b00000110, ; 1 |
|
19 ; 0b01011011, ; 2 |
|
20 ; 0b01001111, ; 3 |
|
21 ; 0b01100110, ; 4 |
|
22 ; 0b01101101, ; 5 |
|
23 ; 0b01111101, ; 6 |
|
24 ; 0b00000111, ; 7 |
|
25 ; 0b01111111, ; 8 |
|
26 ; 0b01100111, ; 9 |
|
27 ; 0b10000000, ; . |
|
28 ; 0b01000000 ; |
|
29 |
|
30 .equ LED7_0 = 0 |
|
31 .equ LED7_1 = 1 |
|
32 .equ LED7_2 = 2 |
|
33 .equ LED7_3 = 3 |
|
34 .equ LED7_4 = 4 |
|
35 .equ LED7_5 = 5 |
|
36 .equ LED7_6 = 6 |
|
37 .equ LED7_7 = 7 |
|
38 .equ LED7_8 = 8 |
|
39 .equ LED7_9 = 9 |
|
40 .equ LED7_A = 10 |
|
41 .equ LED7_B = 11 |
|
42 .equ LED7_C = 12 |
|
43 .equ LED7_D = 13 |
|
44 .equ LED7_E = 14 |
|
45 .equ LED7_F = 15 |
|
46 .equ LED7_DOT = 16 |
|
47 .equ LED7_EMPTY = 17 |
|
48 |
|
49 ;; Initialize LCD to empty, and enable |
|
50 LED7_Init: |
|
51 ; Setup ENable port |
|
52 sbi LED7_PORT, LED7_OE ; Disabled (Low) |
|
53 sbi LED7_DDR, LED7_OE ; Out |
|
54 |
|
55 ; empty |
|
56 ldi r16, 0b11111111 |
|
57 |
|
58 ; Output |
|
59 rcall SPI_SendRecv |
|
60 rcall SPI_Wait |
|
61 |
|
62 ; Enable |
|
63 cbi LED7_PORT, LED7_OE |
|
64 |
|
65 ; Done |
|
66 ret |
|
67 |
|
68 ;; Display a single digit on the display |
|
69 ;; Input: r16 |
|
70 LED7_Show: |
|
71 clr r0, 0 |
|
72 |
|
73 ; Prep address |
|
74 ; base addr for font table |
|
75 ldi ZH, high(2*LED7_Font) |
|
76 ldi ZL, low(2*LED7_Font) |
|
77 |
|
78 ; offset |
|
79 add ZL, r16 |
|
80 adc ZH, r0 |
|
81 |
|
82 ; Load char |
|
83 lpm r16, Z |
|
84 |
|
85 ;; Continue |
|
86 |
|
87 ;; Display a raw segment mask |
|
88 ;; Input: r16 |
|
89 LED7_ShowRaw: |
|
90 ; Invert |
|
91 ; com r16 |
|
92 |
|
93 ; Display |
|
94 rjmp SPI_SendRecv |
|
95 |
|
96 |