Современная электроника №1/2022
ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 54 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 1 2022 Прототипы этих функций размеща- ются в файле i2c.h, расположенном в поддиректории ..\INC. Перед их исполь- зованием в коде программы инициали- зации микроконтроллера необходимо объявить порт и биты микроконтрол- лера для связи через шину I 2 C, а дирек- тивой #include подключить файл i2c.h. Для работы с датчиком LM75AD при- меняют следующие функции: ● voidlm75_init (unsignedcharchip,signed char thyst, signed char tos, unsigned char pol)–функцияинициализациидатчи- ка температуры, которую вызывают для всех имеющихся в проекте датчи- ков,подключённыхкшинеI 2 C(ихколи- чествонедолжнопревышать8). Впро- граммеадресдатчиков(от0до7)задают с помощьюпараметра chip, на схеме – спомощьюподачикомбинациинулей иединицнавыводыА0…А2.Например, комбинациейсигналов111определяют седьмойподключённыйкшинедатчик. Вывод OS становится активным, когда температура, выраженная в ° С, превы- шаетпредел tosивыходитизактивного состояния,когдатемпературападаетни- жепределаthyst.Параметрpolпредстав- ляетполярностьвыходаOSвактивном состоянии. Еслиpol –0, активнымявля- ется низкий уровень, а если pol – 1, то высокий уровень. Прежде чем вызвать функциюинициализациидатчикатем- пературы, должнабытьинициализиро- ванашина I 2 C; ● int lm75_temperature_10 (unsigned char chip)–функцияопределениятем- пературыдатчикасадресомchip. Темпе- ратуравыраженав ° Сиумноженана10. Прототипы этих функций разме- щаются в файле lm75.h, который в программе подключают директивой #include. До подключения файла lm75.h необходимо объявить порт микрокон- троллера и его биты для связи с датчи- ком LM75AD через шину I 2 C. Создание нового проекта в CodeVisionAVR Новый проект в CodeVisionAVR созда- ют командой основного менюFile/New/ Project. В процессе создания открывает- ся диалоговое окно, где система пред- лагает воспользоваться генератором кода CodeWizardAVR, с помощью кото- рого задают параметры микрокон- троллера, его внутренних ресурсов и используемых в схеме периферийных устройств. Удобство применения гене- ратора состоит в быстром получении кода выполнения функций инициали- зации микроконтроллера и его портов ввода/вывода, аналогового компара- тора, таймеров/счётчиков, интерфей- са UART и SPI, буквенно-цифровых и графических дисплеев и др. Однако в процессе работымастера формируется достаточно объёмный код, который впо- следствии приходится редактировать. В нашем примере все настрой- ки будут выполнены вручную про- граммным способом, поэтому от запу- ска CodeWizardAVR можно отказаться, нажав на кнопку No (рис. 9). В результа- те будет открыто окно выбора директо- рии размещения нового проекта Create New Project, где указывают имя проекта (поле «Имяфайла») и его тип (поле «Тип файла»). Кнопкой «Сохранить» открыва- ют окно NewProject (рис. 10), где в поле Name выбирают микроконтроллер, под управлениемкоторогоработает собран- ная схема (его описание отобразится в полеDevice Info). Далее нажатиемкноп- киОКоткрывают окнонастройкипара- метров проектаCodeVisionAVR (Configure Project), переходят на вкладкуCCompiler, на которой выбирают закладку Code Genereration (рис. 11), где указывают: ● размер стека данных в байтах (поле Data Stack Size) – для компиляции ко- да в нашем примере значения 128 бу- дет достаточно; ● размер внутренней (поле Internal RAM Size) и внешней (поле External RAM Size) оперативной памяти – 512 и 0 байт соответственно; ● тактовую частоту микроконтролле- ра (поле Clock) – 3,6864 МГц; ● модель памяти (поле Memory Model) – Small. Другие параметры оставим без изме- нений и нажмём на кнопку ОК. В резуль- тате этого будет создан новый проект CodeVisionAVR, в окне кода которого и будет вестись дальнейшее написание программы измерения температуры. Формирование и компиляция программного кода передачи по I 2 C измеренной датчиками температуры Для измерения с помощью датчи- ков LM75AD температуры и её отобра- жения на экране буквенно-цифрового дисплея напишем программу инициа- Рис. 9. Создание нового проекта в CodeVisionAVR Рис. 10. Выбор микроконтроллера AT90S8515 в окне New Project
RkJQdWJsaXNoZXIy MTQ4NjUy