Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
can be achieved.
*/
void
_delay_loop_1(uint8_t __count)
{
__asm__ volatile (
f4: 81 e2 ldi r24, 0x21 ; 33
f6: 8a 95 dec r24
f8: f1 f7 brne.-4 ; 0xf6 <__stack+0x17>
fa:ret
000000fc <display_init>:
return rtc_data; // выход из функции
}
// WH1602B
// display_init - функция инициализации дисплея
void display_init(void)
{
fc: 0f 93 push r16
fe: 1f 93 push r17
milliseconds can be achieved.
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
100: 08 e8 ldi r16, 0x88 ; 136
102: 13 e1 ldi r17, 0x13 ; 19
104: c8 01 movw r24, r16
106:sbiw r24, 0x01 ; 1
108: f1 f7 brne.-4 ; 0x106 <display_init+0xa>
_delay_ms(20); // время установления питания
display_write_byte(0, 1, 0x3); // установка разрядности 8 бит
10a: 80 e0 ldi r24, 0x00 ; 0
10c: 61 e0 ldi r22, 0x01 ; 1
10e: 43 e0 ldi r20, 0x03 ; 3
110: d8 df rcall.-80 ; 0xc2 <display_write_byte>
display_write_byte(0, 1, 0x3); // установка разрядности 8 бит
112: 80 e0 ldi r24, 0x00 ; 0
114: 61 e0 ldi r22, 0x01 ; 1
116: 43 e0 ldi r20, 0x03 ; 3
118: d4 df rcall.-88 ; 0xc2 <display_write_byte>
display_write_byte(0, 1, 0x3); // установка разрядности 8 бит
11a: 80 e0 ldi r24, 0x00 ; 0
11c: 61 e0 ldi r22, 0x01 ; 1
11e: 43 e0 ldi r20, 0x03 ; 3
120: d0 df rcall.-96 ; 0xc2 <display_write_byte>
display_write_byte(0, 1, 0x2); // установка разрядности 4 бит
122: 80 e0 ldi r24, 0x00 ; 0
124: 61 e0 ldi r22, 0x01 ; 1
126: 42 e0 ldi r20, 0x02 ; 2
128: cc df rcall.-104 ; 0xc2 <display_write_byte>
display_write_byte(0, 0, 0x28); // установка параметров
12a: 80 e0 ldi r24, 0x00 ; 0
12c: 60 e0 ldi r22, 0x00 ; 0
12e: 48 e2 ldi r20, 0x28 ; 40
130: c8 df rcall.-112 ; 0xc2 <display_write_byte>
display_write_byte(0, 0, 0x8); // выключение дисплея
132: 80 e0 ldi r24, 0x00 ; 0
134: 60 e0 ldi r22, 0x00 ; 0
136: 48 e0 ldi r20, 0x08 ; 8
138: c4 df rcall.-120 ; 0xc2 <display_write_byte>
display_write_byte(0, 0, 0x1); // очистка дисплея
13a: 80 e0 ldi r24, 0x00 ; 0
13c: 60 e0 ldi r22, 0x00 ; 0
13e: 41 e0 ldi r20, 0x01 ; 1
140: c0 df rcall.-128 ; 0xc2 <display_write_byte>
142: c8 01 movw r24, r16
144:sbiw r24, 0x01 ; 1
146: f1 f7 brne.-4 ; 0x144 <display_init+0x48>
_delay_ms(20); // время выполнения операции
display_write_byte(0, 0, 0x6); // установка режима ввода данных
148: 80 e0 ldi r24, 0x00 ; 0
14a: 60 e0 ldi r22, 0x00 ; 0
14c: 46 e0 ldi r20, 0x06 ; 6
14e: b9 df rcall.-142 ; 0xc2 <display_write_byte>
display_write_byte(0, 0, 0xC); // включение дисплея
150: 80 e0 ldi r24, 0x00 ; 0
152: 60 e0 ldi r22, 0x00 ; 0
154: 4c e0 ldi r20, 0x0C ; 12
156: b5 df rcall.-150 ; 0xc2 <display_write_byte>
}
158: 1f 91 pop r17
15a: 0f 91 pop r16
15c:ret
0000015e <display_write_strong>:
}
// display_write_strong - функция записи строки в дисплей
// display_data[] = 0xXX -> строка данных
// size = x -> количество символов в строке
void display_write_strong(uint8_t display_data[], uint8_t size)
{
15e: 0f 93 push r16
160: 1f 93 push r17
162: cf 93 push r28
164: df 93 push r29
166: 06 2f mov r16, r22
168: ec 01 movw r28, r24
16a: 10 e0 ldi r17, 0x00 ; 0
16c: 05 c0 rjmp.+10 ; 0x178 <display_write_strong+0x1a>
uint8_t i; // промежуточный счетчик символов
for(i=0; i<size; ++i)
{
display_write_byte(1, 0, display_data[i]); // запись строки данных
16e: 81 e0 ldi r24, 0x01 ; 1
170: 60 e0 ldi r22, 0x00 ; 0
172:ld r20, Y+
174: a6 df rcall.-180 ; 0xc2 <display_write_byte>
// display_data[] = 0xXX -> строка данных
// size = x -> количество символов в строке
void display_write_strong(uint8_t display_data[], uint8_t size)
{
uint8_t i; // промежуточный счетчик символов
for(i=0; i<size; ++i)
176: 1f 5f subi r17, 0xFF ; 255
178:cp r17, r16
17a: c8 f3 brcs.-14 ; 0x16e <display_write_strong+0x10>
{
display_write_byte(1, 0, display_data[i]); // запись строки данных
}
}
17c: df 91 pop r29
17e: cf 91 pop r28
180: 1f 91 pop r17
182: 0f 91 pop r16
184:ret
<display_write_bcd>:
data=rtc_read_byte(SECONDS_READ); // чтение данных секунд
display_write_bcd(data); // запись данных
}
// display_write_bcd - функция разделения числа BCD
void display_write_bcd(uint8_t display_data)
{
186: 1f 93 push r17
188: 18 2f mov r17, r24
uint8_t buffer; // промежуточный буффер данных
buffer=display_data; // копирование данных
display_data=display_data>>4; // сдвиг вправо
display_data=display_data & 0xF; // выделение младшего полубайта
18a: 48 2f mov r20, r24
18c:swap r20
18e: 4f 70 andi r20, 0x0F ; 15
display_data=display_data | 0x30; // составление слова для записи в дисплей
display_write_byte(1, 0, display_data); // запись данных
190:ori r20, 0x30 ; 48
192: 81 e0 ldi r24, 0x01 ; 1
194: 60 e0 ldi r22, 0x00 ; 0
196: 95 df rcall.-214 ; 0xc2 <display_write_byte>
display_data=buffer; // копирование данных
display_data=display_data & 0xF; // выделение младшего полубайта
198: 1f 70 andi r17, 0x0F ; 15
display_data=display_data | 0x30; // составление слова для записи в дисплей
display_write_byte(1, 0, display_data); // запись данных
19a:ori r17, 0x30 ; 48
19c: 81 e0 ldi r24, 0x01 ; 1
19e: 60 e0 ldi r22, 0x00 ; 0
1a0: 41 2f mov r20, r17
1a2: 8f df rcall.-226 ; 0xc2 <display_write_byte>
1a4: 1f 91 pop r17
1a6:ret
000001a8 <display_write_time>:
display_write_byte(1, 0, display_data[i]); // запись строки данных
}
}
// display_write_time - функция записи времени и даты в дисплей
void display_write_time(void)
{
1a8: ef 92 push r14
1aa: ff 92 push r15
1ac: 0f 93 push r16
1ae: 1f 93 push r17
uint8_t data; // данные
display_write_byte(0, 0, 0x2); // курсор в левую позицию
1b0: 80 e0 ldi r24, 0x00 ; 0
1b2: 60 e0 ldi r22, 0x00 ; 0
1b4: 42 e0 ldi r20, 0x02 ; 2
1b6: 85 df rcall.-246 ; 0xc2 <display_write_byte>
display_write_strong(" ", 4); // запись 4 пробелов (выравнивание даты)
1b8: 00 e6 ldi r16, 0x60 ; 96
1ba: 10 e0 ldi r17, 0x00 ; 0
1bc: c8 01 movw r24, r16
1be: 64 e0 ldi r22, 0x04 ; 4
1c0: ce df rcall.-100 ; 0x15e <display_write_strong>
data=rtc_read_byte(DATE_READ); // чтение данных дня месяца
1c2: 84 e0 ldi r24, 0x04 ; 4
1c4: 77 df rcall.-274 ; 0xb4 <rtc_read_byte>
display_write_bcd(data); // запись данных
1c6: df df rcall.-66 ; 0x186 <display_write_bcd>
display_write_strong(".", 1); // запись разделителя
1c8: 85 e6 ldi r24, 0x65 ; 101
1ca: e8 2e mov r14, r24
1cc: 80 e0 ldi r24, 0x00 ; 0
1ce: f8 2e mov r15, r24
1d0: c7 01 movw r24, r14
1d2: 61 e0 ldi r22, 0x01 ; 1
1d4: c4 df rcall.-120 ; 0x15e <display_write_strong>
data=rtc_read_byte(MONTH_READ); // чтение данных месяца
1d6: 85 e0 ldi r24, 0x05 ; 5
1d8: 6d df rcall.-294 ; 0xb4 <rtc_read_byte>
display_write_bcd(data); // запись данных
1da: d5 df rcall.-86 ; 0x186 <display_write_bcd>
display_write_strong(".", 1); // запись разделителя
1dc: c7 01 movw r24, r14
1de: 61 e0 ldi r22, 0x01 ; 1
1e0: be df rcall.-132 ; 0x15e <display_write_strong>
data=rtc_read_byte(YEAR_READ); // чтение данных года
1e2: 86 e0 ldi r24, 0x06 ; 6
1e4: 67 df rcall.-306 ; 0xb4 <rtc_read_byte>
display_write_bcd(data); // запись данных
1e6: cf df rcall.-98 ; 0x186 <display_write_bcd>
display_write_byte(0, 0, 0xC0); // переход на другую строку
1e8: 80 e0 ldi r24, 0x00 ; 0
1ea: 60 e0 ldi r22, 0x00 ; 0
1ec: 40 ec ldi r20, 0xC0 ; 192
1ee: 69 df rcall.-302 ; 0xc2 <display_write_byte>
display_write_strong(" ", 4); // запись 4 пробелов (выравнивание времени)
1f0: c8 01 movw r24, r16
1f2: 64 e0 ldi r22, 0x04 ; 4
1f4: b4 df rcall.-152 ; 0x15e <display_write_strong>
data=rtc_read_byte(HOURS_READ); // чтение данных часов
1f6: 82 e0 ldi r24, 0x02 ; 2
1f8: 5d df rcall.-326 ; 0xb4 <rtc_read_byte>
display_write_bcd(data); // запись данных
1fa: c5 df rcall.-118 ; 0x186 <display_write_bcd>
display_write_strong(":", 1); // запись разделителя
1fc: 07 e6 ldi r16, 0x67 ; 103
1fe: 10 e0 ldi r17, 0x00 ; 0
200: c8 01 movw r24, r16
202: 61 e0 ldi r22, 0x01 ; 1
204: ac df rcall.-168 ; 0x15e <display_write_strong>
data=rtc_read_byte(MINUTES_READ); // чтение данных минут
206: 81 e0 ldi r24, 0x01 ; 1
208: 55 df rcall.-342 ; 0xb4 <rtc_read_byte>
display_write_bcd(data); // запись данных
20a: bd df rcall.-134 ; 0x186 <display_write_bcd>
display_write_strong(":", 1); // запись разделителя
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 |


