Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

Глава 1 б. Некоторые Агdиiпо-задачи на ассемблере 407 в распакованный BCD, иначе никак. При работе с ардуиновской библиотекой ТМ1 367 . h зачастую приходится делать то же самое, особенно если вы хотите вывес­ ти число не вообще как-то, а в определенную позицию. 1 Q1 32768c:::J 2 R1 5,1 к С 1 I o.1 +5 8 1 Reset (ADC5) РС5 28 2 RXD (ADC4) РС4 27 3 ТХD (ADC3) РС3 26 4 1NTO (PD2) (ADC2) РС2 25 5 INT1 (PD3) (ADC1 ) РС1 24 6 PD4 (TO) (ADCO) РСО 23 7 Vcc GND 22 8 GND AREF 21 9 XTAL1 AVCC 20 10 XTAL2 SCK 1 9 1 1 PD5 (Т1 ) MIS0 1 8 1 2 PD6 1 3 PD7 14 РВО MOSI 1 7 (ОС1 В) РВ2 16 (ОС1А) РВ1 1 5 ATmega8 DIO CLK + 5 8 GND Vcc В В: В В Рис. 1 6.2. Схема часов на основе 4-разрядного индикаторного модуля Ультразвуковой дальномер на дисплее ТМ1 637 Этот код- в отличие от программы простых часов, рассмотренной в предыдущем разделе и рассчитанной на ATmega8, - наоборот, рассчитан на ATtiny23 1 3 , но мо­ жет быть перенесен на другой контроллер, имеющий порты D и В, без изменений (для ATmegaS/ 1 6/853 5 придется только добавить строки инициализации стека, относящиеся к регистру SPH, который в ATtiny23 1 3 отсутствует) . Здесь тактовая частота 4 МГц должна быть задана от внешнего кварца, т. к. мы имеем дело с час­ тотными измерениями. Точки-двоеточия нам тут не потребуются, потому дисплей может быть любого типа, лишь бы он имел стандартное управление. Программу ультразвукового дальномера можно найти в архиве по адресу, указан­ ному во введении (файл HC-SR04_d isp4digit.asm ) . Несмотря на простоту самого дат­ чика и не слишком объемную программу работы с ним, которая получится в ре­ зультате ее доработки, о которой рассказано далее (основная часть почти 500- байтовой программы посвящена выводу на 4-разрядный дисплей, а собственно код обработки датчика там занимает около 1 50 байт), эта программа - одна из самых насыщенных в книге, потому что демонстрирует многие приемы, о которых ранее мы только упоминали.

RkJQdWJsaXNoZXIy MTExODQxMg==