Метеостанция на pic

Метеостанция на pic

Метеостанция на pic

Метеостанция на pic

Метеостанция на pic

background image

52

вс#2[май]2010

М

ы продолжаем знакомить читателей с семейством контроллеров BASIC Pic (BM93ХХ) компании «Мастер

Кит». Первая часть статьи, посвященная разработке термометра и таймера-термостата на основе

блока BM93ХХ, была опубликована в предыдущем номере журнала.

ЗагруЗка бейсик программ в контроллер серии

BM93XX

Для загрузки программ на бейсик в контроллер можно с

сайта www.masterkit.ru скачать программу «Basic Terminal» для

BM9300, либо воспользоваться любой другой терминальной

программой. Для работы также понадобится USB-кабель для

подключения к компьютеру и источник постоянного напряжения

от 9 до 24 В со стабилизацией или без нее.

Сначала необходимо подключить модуль BM9300 к материн-

ской плате BM9303 и подвести к ее винтовому разъему питание

плюсовым проводом к ближайшему к краю платы гнезду. Затем

подсоединяем плату к компьютеру через USB-кабель, включаем

питание контроллера и запускаем «Basic Terminal». Кликаем правой

кнопкой мышки по полю терминала и в выпадающем меню (см. рис.

1) устанавливаем номер COM порта и параметры (115200, 8N1).

Для открытия окна BASIC в нижней части терминала нажима-

ем кнопку «stop» (F8). Появится окно со строкой READY >, изобра-

женное на рисунке 2. В окне «Командная строка» можно вводить

операторы BASIC (см. рис. 3). Для тренировки попробуйте выве-

сти различные сообщения на терминал, (сложение, вычитание,

синусы, косинусы — все, что придет в голову). Описание опера-

торов BASIC приведено в файле BASIC_PIC.pdf, который можно

загрузить с сайта www.masterkit.ru из раздела описания BM9300.

вывод информации на экран BM9303

Для отображения информации материнская плата BM9303

снабжена ЖК-индикатором 128 х 32 точек с цветной подсветкой.

Рассмотрим более подробно его свойства.

Контроллер BASIC Pic.

Строим метеостанцию (продолжение)

олег тетушкин, менеджер по продукции ДКО «Электронщик»

рис. 1. Установка параметров связи в «Basic terminal»

рис. 2. Окно BASIC

рис. 3. Пример ввода параметров BASIC

1. вывод символьной информации

Установить на материнскую плату BM9303 микроконтрол-

лерный модуль BM9300 и подключить плату к ПК через порт USB.

Запустить «BASIC-терминал» и в командной строке ввести коман-

ду PRINT#2000H, “Метеостанция”. После нажатия клавиши «Ввод»

текст появляется на экране ЖКИ.

Как это происходит? ЖКИ конструктивно подключен к систе-

ме через интерфейс I2C и имеет адрес 20H. Следовательно,

чтобы вывести символы на ЖКИ, необходимо послать их на адрес

20H с помощью команды PRINT#.

Расположенный на плате ЖКИ имеет расширенные возмож-

ности, такие как изменение цвета подсветки (16 цветов/команд),

установка курсора в произвольную позицию на экране, очистка

экрана, изменение величины шрифта и др.

Рассмотрим процедуру вывода на экран нескольких строк

(например, «МЕТЕОСТАНЦИЯ», «Мастер Кит» и «BASIC»).

Для этого необходимо в любом текстовом редакторе

набрать код программы:

NEW

10 i2c#20h,(0)=9

20 time=0: do: while time<0.02

30 i2c#20h,(0)=2,4,0: time=0: do: while time<0.1

40 print#2000h,»МЕТЕОСТАНЦИЯ»: time=0: do: while time<0.1

50 i2c#20h,(0)=2,5,1: time=0: do: while time<0.1

60 print#2000h,»Мастер Кит»: time=0: do: while time<0.1

70 i2c#20h,(0)=2,7,2: time=0: do: while time<0.1

80 print#2000h,»BASIC»

Здесь строка 10 посылает по интерфейсу I2C на адрес 20Н

команду 9 (очистка ЖКИ). Далее следует небольшая задержка,

чтобы встроенный контроллер ЖКИ успел очистить экран до

прихода следующей команды.

Строка 30 посылает на адрес 20Н команду 2, чтобы устано-

вить курсор в 4-ю символьную позицию на 0-й строке.

После небольшой задержки оператор PRINT# отсылает в

ЖКИ текст «МЕТЕОСТАНЦИЯ», снова задержка.

В строке 50 происходит установка курсора в 5-ю символь-

ную позицию на 1-й строке, после чего на ЖКИ выводится над-

пись «Мастер Кит» (строка 60). Последние две строки программы

выводят на дисплее надпись «BASIC».

Для загрузки программы в контроллер необходимо запу-

стить команду RUN в терминале или выключить и включить пита-

ние, чтобы она запустилась автоматически.

В модулях BM9303(04) установлен ЖКИ с цветной под-

светкой. Для установки цвета подсветки нужно на адрес

ЖКИ = 20Н отослать команду 12 с номером цвета (см. табл. 1),

например:

i2c#20h,(0)=12,03h

Если добавить эту команду в программу строкой 25, то полу-

чим текст на ярко-зеленом фоне (см рис. 4):

background image

53

встраиваемые системы#2

рис. 5. Демонстрация графических возможностей

рис. 4. Вывод текста на ЖКИ и включение подсветки

NEW

10 i2c#20h,(0)=9

20 time=0: do: while time<0.02

25 i2c#20h,(0)=12,03h: time=0: do: while time<0.1

30 i2c#20h,(0)=2,4,0: time=0: do: while time<0.1

40 print#2000h,»МЕТЕОСТАНЦИЯ»: time=0: do: while time<0.1

50 i2c#20h,(0)=2,5,1: time=0: do: while time<0.1

60 print#2000h,»Мастер Кит»: time=0: do: while time<0.1

70 i2c#20h,(0)=2,7,2: time=0: do: while time<0.1

80 print#2000h,»BASIC»

2. графические команды бейсика на модулях BM9303-04

Для отображения отрезка на экране используется команда

12h:

i2c#20h,(0)=12h,<X начала>,<Y начала>,<X конца>,<Y конца>

Команда 13h выводит на ЖКИ прямоугольник:

i2c#20h,(0)=13h,<X начала>,<Y начала>,<X конца>,<Y конца>

Кроме того, в графическом режиме с помощью команды 14h

можно отображать символы, расположив курсор в позиции с

координатами X,Y:

i2c#20h,(0)=14h,<X>,<Y>,<код символа в ASCII (от 1 до 21 сим-

вола в строке)>

Размер символов в графическом режиме может быть двой-

ным. Размер устанавливается командой 16h:

i2c#20h,(0)=16h, высота, ширина (0 — одинарная, 1 — двой-

ная).

Рассмотрим пример вывода на экран прямоугольника и

рамки из трех линий, содержащей надпись «BASIC Pic» (см.

рис. 5).

Код программы:

NEW

10 i2c#20h,(0)=9 ;очистим экран

20 time=0: do: while time<0.02

30 i2c#20h,(0)=12,0Dh ; подсветка морская волна

40 time=0: do: while time<0.02

50 i2c#20h,(0)=13h,0,0,127,5 ; прямоугольник в 5 пикселей

высотой по всей длине

табл. 1. Коды цветов подсветки

Код

Цвет

00

Черный

01

Ярко-красный

02

Ярко-синий

03

Ярко-зеленый

04

Ярко-сиреневый

05

Ярко-желтый

06

Яркий «морской волны»

07

Ярко-белый

08

Красный

09

Синий

0A

Зеленый

0B

Сиреневый

0C

Желтый

0D

«Морской волны»

0E

Белый

0F

Тускло-белый

рис. 6. Структура ЖКИ

60 time=0: do: while time<0.02

70 i2c#20h,(0)=12h,0,0,0,31 ; линия слева

80 time=0: do: while time<0.02

90 i2c#20h,(0)=12h,0,31,127,31 ; линия вверху

100 time=0: do: while time<0.02

110 i2c#20h,(0)=12h,127,31,127,01 ; линия справа

120 time=0: do: while time<0.02

130 i2c#20h,(0)=16h,1,1 ; шрифт двойной высоты и ширины

140 time=0: do: while time<0.02

150 i2c#20h,(0)=14h,12,10,42H,41H,53H,49H,43H,20H,50H,69H,6

3H ; BASIC Pic в кодах ASCII

Этот код необходимо загрузить в контроллер с помощью

программы «BASIC-терминал» и запустить RUN.

3. вывод рисунка в формате BMP

На ЖКИ можно рисовать BMP-картинки с разрешением 32 x

128 или меньшим.

Экран ЖКИ разбит на четыре области по 8 х 128 точек. Они

показаны на рисунке 6 цветовыми зонами.

background image

54

вс#2[май]2010

рис. 8. Пример вывода bmp-картинки на ЖКИ

рис. 7. Фрагмент изображения

Программный код для заполнения, например, желтой обла-

сти имеет следующий вид:

10 i2c(51h)=5h ;активируем область экрана 5h «желтую»

20 i2c(80h)= 80h,C0h,E0h,F0h,F8h,FCh,FEh,FFh,0,0,0,0,0,0,0,0 ;

заполняем первые 16 байт (80h) рис. 2

30 i2c(90h)= <>,<>, ……. <> ; заполняем следующие 16 байт

(90h)

40 i2c(A0h)= <>,<>, ……. <> ; заполняем следующие 16 байт

50 i2c(B0h)= …….

60 i2c(C0h)= …….

70 i2c(D0h)= …….

80 i2c(E0h)= ……..

90 i2c(F0h)= <>,<>, ……. <> ; заполняем последние 16 байт в

желтой области

100 i2c(51h)=4h ; переходим в зону 4h «красную»

…….

200 i2c(51h)=3h ; переходим в зону 3h «синюю»

……

300 i2c(51h)=2h ; переходим в зону 2h «зеленую»

……

Заполнять блоками по 16 байт не обязательно, это исполь-

зуется только для удобства. Блоки могут иметь произвольный

размер, например 21 или 2 байта. Чем меньше блок, тем больше

строк будет в программе.

Строка 20 рисует треугольник в первых 16 байт «желтой»

области. Этот участок показан на рисунке 7 в увеличенном виде.

В первом байте (столбике) закрашен только нижний пиксель —

это 1, остальные светлые — это нули. В двоичном коде он имеет

вид 1000 0000, а в шестнадцатеричный — 80h (для перевода

можно воспользоваться стандартным инженерным калькулято-

ром Windows). Это число записывается в строку 20. Процедура

повторяется для всего рисунка.

На первый взгляд эти операции кажутся очень трудоемкими,

но с помощью команд «копировать» и «вставить» процесс значи-

тельно ускоряется. На рисунке 8 показан образец bmp-файла на

экране ЖКИ.

Рисование изображений позволяет, во-первых, создать ориги-

нальный вид проекта, украсив его логотипом, рамками и раздели-

тельными полосами. Во-вторых, некоторые действия представляют-

ся гораздо нагляднее в виде символов, а не текстовой информации.

Кроме того, можно создавать анимированные картинки, записав

несколько кадров и последовательно вызывая их на экран.

4. Звук

На материнских платах MB9303-04 установлен звуковой

излучатель. За воспроизведение звукового сигнала отвечает

команда 0Bh. В строке бейсика она будет выглядеть так:

I2C#20H, (0) =0BH, <ton>, <time>, где ton (01h … 40h) — высо-

та тона, time — длительность (число в 10 мс).

5. кнопки на BM9303-04

На материнских платах справа от ЖКИ установлены четыре

кнопки. Чтобы понять, как их использовать в нашем проекте,

запустим небольшую программу:

NEW

10 A=I2C#20h,(81H) ; переменная А принимает код нажатой

кнопки

20 IF A=0EFH THEN I2C#20H,(0)=0CH,01H ; если А= 0EFH, значит

это первая кнопка в верхнем ряду. Пусть она включит кранную

подсветку экрана

30 IF A=0DFH THEN I2C#20H,(0)=0CH,07H ; если А= 0DFH, зна-

чит это вторая кнопка в верхнем ряду. Пусть она включит белую

подсветку

40 IF A=0BFH THEN I2C#20h,(0)=0BH,4,4 ; при нажатии на эту

кнопку будет звук

50 IF A=07FH THEN I2C#20h,(0)=0BH,8,8 ; на эту другой звук

60 IF A=03FH THEN STOP ; нажмем одновременно две нижние

кнопки опрос кнопок остановится

70 GOTO 10

В следующей части статьи будут разобраны примеры под-

ключения датчиков температуры, давления и влажности.

| Новости РЫНКА |

компании ARM и QuAlcoMM, Занимающиеся проиЗводством мобильных процессоров,

сегодня сообщили о соЗдании совместного предприятия под наЗванием ARteRis

Каждая из компаний вложила в производство по  млн, Кроме ARM и Qualcomm, в проекте также принимает участие группа инвесторов, в частности

Synopsys и DoCoMo Capital.

На первом этапе работы Arteris должна будет заняться выпуском мобильной сетевой электроники, в том числе решений класса Network On Chip, предназна-

ченных для оснащения сетевыми возможностями одноплатных электронных устройств. Точные даты выпуска первой продукции в Ateris пока не сообщают.

«С ростом популярности полупроводниковых решений, производители процессоров активно внедряют интегрированные одноплатные решения уровня

SoC, имеющие на одном кристалле центральный процессор, графическую систему и сетевые возможности. Сложность производства таких решений постоян-

но увеличивается, так как растет индивидуальная сложность компонентов, входящих в SoC-чипы», — говорят в ARM.

Arteris планирует использовать первые привлеченные средства для налаживания производства и расширения операций по продаже продуктов и маркетингу.

«Первые чипы класса Network on Chip будут созданы по 40-нм технологической норме, далее она будет уменьшаться», — заявили в Qualcomm Ventures.

www.russianelectronics.ru


Источник: http://www.russianelectronics.ru/leader-r/review/31584/doc/51339/


Метеостанция на pic

Метеостанция на pic

Метеостанция на pic

Метеостанция на pic

Метеостанция на pic

Метеостанция на pic