📄 displayandkey.lst
字号:
1 .file "DisplayAndKey.c"
2 .arch attiny13
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
11 .text
12 .Ltext0:
73 .global Display_Code
74 .section .progmem.data,"a",@progbits
77 Display_Code:
78 0000 3F .byte 63
79 0001 06 .byte 6
80 0002 5B .byte 91
81 0003 4F .byte 79
82 0004 66 .byte 102
83 0005 6D .byte 109
84 0006 7D .byte 125
85 0007 07 .byte 7
86 0008 7F .byte 127
87 0009 6F .byte 111
88 000a 00 .byte 0
89 000b 00 .byte 0
90 000c 00 .byte 0
91 000d 00 .byte 0
92 000e 00 .byte 0
93 000f 00 .byte 0
94 0010 00 .byte 0
95 0011 77 .byte 119
96 0012 7C .byte 124
97 0013 39 .byte 57
98 0014 5E .byte 94
99 0015 79 .byte 121
100 0016 71 .byte 113
101 0017 7D .byte 125
102 0018 76 .byte 118
103 0019 30 .byte 48
104 001a 0F .byte 15
105 001b 00 .byte 0
106 001c 38 .byte 56
107 001d 00 .byte 0
108 001e 37 .byte 55
109 001f 3F .byte 63
110 0020 73 .byte 115
111 0021 67 .byte 103
112 0022 50 .byte 80
113 0023 6D .byte 109
114 0024 4E .byte 78
115 0025 3E .byte 62
116 0026 00 .byte 0
117 0027 00 .byte 0
118 0028 00 .byte 0
119 0029 6E .byte 110
120 002a 00 .byte 0
121 .text
124 .global V_SPI_SEND
126 V_SPI_SEND:
1:DisplayAndKey.c **** /******************************************************************************
2:DisplayAndKey.c **** * Compiler: WinAVR(GCC)
3:DisplayAndKey.c **** * Device: ATtiny13
4:DisplayAndKey.c **** * File Name: DisplayAndKey.c
5:DisplayAndKey.c **** * Description: Display and key C Program
6:DisplayAndKey.c ****
7:DisplayAndKey.c **** * Programmer: Liansen.Wang
8:DisplayAndKey.c **** * Revision: 1.0
9:DisplayAndKey.c **** * Modification time: 2005-08-22 10:18
10:DisplayAndKey.c ****
11:DisplayAndKey.c **** ******************************************************************************/
12:DisplayAndKey.c **** #include "DisplayAndKey.h"
13:DisplayAndKey.c ****
14:DisplayAndKey.c **** /*****************************************************************************/
15:DisplayAndKey.c ****
16:DisplayAndKey.c **** extern unsigned char Display_data[Display_bit];
17:DisplayAndKey.c **** const unsigned char Display_Code[] PROGMEM = {
18:DisplayAndKey.c **** 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07, //0,1,2,3,4,5,6,7
19:DisplayAndKey.c **** 0x7F,0x6F,0x00,0x00,0x00,0x00,0x00,0x00, //8,9, : , ; ,<,=,>,?
20:DisplayAndKey.c **** 0x00,0x77,0x7C,0x39,0x5E,0x79,0x71,0x7D, //@,A,B,C,D,E,F,G
21:DisplayAndKey.c **** 0x76,0x30,0x0F,0x00,0x38,0x00,0x37,0x3F, //H,I,J,K,L,M,N,O
22:DisplayAndKey.c **** 0x73,0x67,0x50,0x6D,0x4E,0x3E,0x00,0x00, //P,O,R,S,T,U,V,W
23:DisplayAndKey.c **** 0x00,0x6E,0x00 }; //X,Y,Z
24:DisplayAndKey.c ****
25:DisplayAndKey.c **** /*============================================================
26:DisplayAndKey.c ****
27:DisplayAndKey.c **** ============================================================*/
28:DisplayAndKey.c **** /*void Display_All_Bit(uint8_t data)
29:DisplayAndKey.c **** {
30:DisplayAndKey.c **** unsigned char i;
31:DisplayAndKey.c **** for(i=0; i<Display_bit; i++)
32:DisplayAndKey.c **** Display_data[i] =data;
33:DisplayAndKey.c **** }*/
34:DisplayAndKey.c ****
35:DisplayAndKey.c **** /*============================================================
36:DisplayAndKey.c **** FUNCTION:
37:DisplayAndKey.c ****
38:DisplayAndKey.c **** ============================================================*/
39:DisplayAndKey.c **** void V_SPI_SEND(unsigned char data)
40:DisplayAndKey.c **** {
128 .LM1:
129 /* prologue: frame size=0 */
130 /* prologue end (size=0) */
131 0000 97E0 ldi r25,lo8(7)
132 .L7:
41:DisplayAndKey.c **** unsigned char i,outdata;
42:DisplayAndKey.c **** outdata = data;
43:DisplayAndKey.c **** for(i=0; i<8; i++)
44:DisplayAndKey.c **** {
45:DisplayAndKey.c **** if (outdata & 0x01)
134 .LM2:
135 0002 80FF sbrs r24,0
136 0004 02C0 rjmp .L5
46:DisplayAndKey.c **** PORTB |= (1<<DATA);
138 .LM3:
139 0006 C19A sbi 56-0x20,1
140 0008 01C0 rjmp .L6
141 .L5:
47:DisplayAndKey.c **** else
48:DisplayAndKey.c **** PORTB &= ~(1<<DATA);
143 .LM4:
144 000a C198 cbi 56-0x20,1
145 .L6:
49:DisplayAndKey.c **** PORTB &= ~(1<<SCK);
147 .LM5:
148 000c C298 cbi 56-0x20,2
50:DisplayAndKey.c **** PORTB |= (1<<SCK);
150 .LM6:
151 000e C29A sbi 56-0x20,2
51:DisplayAndKey.c **** outdata >>= 1;
153 .LM7:
154 0010 8695 lsr r24
156 .LM8:
157 0012 9150 subi r25,lo8(-(-1))
158 0014 97FF sbrs r25,7
159 0016 F5CF rjmp .L7
160 /* epilogue: frame size=0 */
161 0018 0895 ret
162 /* epilogue end (size=1) */
163 /* function V_SPI_SEND size 13 (12) */
169 .Lscope0:
171 .global V_DISPLAYDATA_SEND
173 V_DISPLAYDATA_SEND:
52:DisplayAndKey.c **** }
53:DisplayAndKey.c **** }
54:DisplayAndKey.c ****
55:DisplayAndKey.c **** /*============================================================
56:DisplayAndKey.c **** FUNCTION: Display data send out
57:DisplayAndKey.c ****
58:DisplayAndKey.c **** ============================================================*/
59:DisplayAndKey.c **** void V_DISPLAYDATA_SEND(void)
60:DisplayAndKey.c **** {
175 .LM9:
176 /* prologue: frame size=0 */
177 /* prologue end (size=0) */
61:DisplayAndKey.c **** unsigned char i,j;
62:DisplayAndKey.c **** //send LED Display Modle command
63:DisplayAndKey.c **** PORTB &= ~(1<<STB);
179 .LM10:
180 001a C098 cbi 56-0x20,0
64:DisplayAndKey.c **** V_SPI_SEND(Vfd_Display_Modle);
182 .LM11:
183 001c 83E0 ldi r24,lo8(3)
184 001e F0DF rcall V_SPI_SEND
65:DisplayAndKey.c **** PORTB|= (1<<STB);
186 .LM12:
187 0020 C09A sbi 56-0x20,0
66:DisplayAndKey.c ****
67:DisplayAndKey.c **** //Send Led Display Data modle command
68:DisplayAndKey.c **** PORTB &= ~(1<<STB);
189 .LM13:
190 0022 C098 cbi 56-0x20,0
69:DisplayAndKey.c **** V_SPI_SEND(Vfd_Display_DataOut);
192 .LM14:
193 0024 80E4 ldi r24,lo8(64)
194 0026 ECDF rcall V_SPI_SEND
70:DisplayAndKey.c **** PORTB|= (1<<STB);
196 .LM15:
197 0028 C09A sbi 56-0x20,0
71:DisplayAndKey.c ****
72:DisplayAndKey.c **** //Send LED Display Data address
73:DisplayAndKey.c **** PORTB &= ~(1<<STB);
199 .LM16:
200 002a C098 cbi 56-0x20,0
74:DisplayAndKey.c **** V_SPI_SEND(Vfd_Display_Addr);
202 .LM17:
203 002c 80EC ldi r24,lo8(-64)
204 002e E8DF rcall V_SPI_SEND
75:DisplayAndKey.c ****
76:DisplayAndKey.c **** //send LED Display Data
77:DisplayAndKey.c **** for (i=0; i<7; i++)
206 .LM18:
207 0030 30E0 ldi r19,lo8(0)
208 .L20:
209 0032 432F mov r20,r19
210 0034 5527 clr r21
211 0036 E0E0 ldi r30,lo8(Display_data)
212 0038 F0E0 ldi r31,hi8(Display_data)
213 003a 2FE0 ldi r18,lo8(15)
214 .L19:
78:DisplayAndKey.c **** {
79:DisplayAndKey.c **** for(j=0; j<16;j++)
80:DisplayAndKey.c **** {
81:DisplayAndKey.c ****
82:DisplayAndKey.c **** if(Display_data[j] & (1<< i))
216 .LM19:
217 003c 8191 ld r24,Z+
218 003e 9927 clr r25
219 0040 042E mov r0,r20
220 0042 02C0 rjmp 2f
221 0044 9595 1: asr r25
222 0046 8795 ror r24
223 0048 0A94 2: dec r0
224 004a E2F7 brpl 1b
225 004c 80FF sbrs r24,0
226 004e 02C0 rjmp .L17
83:DisplayAndKey.c **** {
84:DisplayAndKey.c **** PORTB |= (1<<DATA);
228 .LM20:
229 0050 C19A sbi 56-0x20,1
230 0052 01C0 rjmp .L18
231 .L17:
85:DisplayAndKey.c **** }
86:DisplayAndKey.c **** else
87:DisplayAndKey.c **** {
88:DisplayAndKey.c **** PORTB &= ~(1<<DATA);
233 .LM21:
234 0054 C198 cbi 56-0x20,1
235 .L18:
89:DisplayAndKey.c **** }
90:DisplayAndKey.c **** PORTB &= ~(1<<SCK);
237 .LM22:
238 0056 C298 cbi 56-0x20,2
91:DisplayAndKey.c **** PORTB |= (1<<SCK);
240 .LM23:
241 0058 C29A sbi 56-0x20,2
243 .LM24:
244 005a 2150 subi r18,lo8(-(-1))
245 005c 27FF sbrs r18,7
246 005e EECF rjmp .L19
248 .LM25:
249 0060 3F5F subi r19,lo8(-(1))
250 0062 3730 cpi r19,lo8(7)
251 0064 30F3 brlo .L20
92:DisplayAndKey.c **** }
93:DisplayAndKey.c **** }
94:DisplayAndKey.c **** PORTB |= (1<<STB);
253 .LM26:
254 0066 C09A sbi 56-0x20,0
95:DisplayAndKey.c ****
96:DisplayAndKey.c **** //Send Led Display ON command
97:DisplayAndKey.c **** PORTB &= ~(1<<STB);
256 .LM27:
257 0068 C098 cbi 56-0x20,0
98:DisplayAndKey.c **** V_SPI_SEND(Vfd_Display_Corl);
259 .LM28:
260 006a 8BE8 ldi r24,lo8(-117)
261 006c C9DF rcall V_SPI_SEND
99:DisplayAndKey.c **** PORTB|= (1<<STB);
263 .LM29:
264 006e C09A sbi 56-0x20,0
265 /* epilogue: frame size=0 */
266 0070 0895 ret
267 /* epilogue end (size=1) */
268 /* function V_DISPLAYDATA_SEND size 44 (43) */
274 .Lscope1:
276 .global V_Kay_Scan
278 V_Kay_Scan:
100:DisplayAndKey.c ****
101:DisplayAndKey.c ****
102:DisplayAndKey.c **** }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -