Файл: Учимся программировать микроконтроллеры Pic на языке PicBasicPro (В.В. Хилинский, 2007).pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 17.06.2025

Просмотров: 1758

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

В.Н. Хилинский

MicroCode Studio - программная среда для разработки и отладки программ на языке BASIC.

Примеры программ.

Справочник по командам PicBasic Pro.

Уфа 2007

2

Содержание

Предисловие

7

Введение

8

Глава 1. PIC-микроконтроллеры

10

Питание микроконтроллеров

10

Сброс и перезапуск микроконтроллеров

12

Регистры конфигурации

14

Генераторы тактовых импульсов

14

Порты ввода/вывода и регистры управления передачей

16

данных

Глава 2. Компилятор PicBasicPro

17

Интерактивная среда разработки (IDE) - Microcode Studio Plus.

18

Установка и настройка

Интерактивная отладка программ (ICD)

31

Программа MicroCode Loader

34

Терминал последовательного порта (The Serial Communicator)

34

Программа Easy HID Wizard

36

Язык PicBasicPro

36

Основные понятия и определения

36

Идентификаторы

36

Комментарии

37

Переменные

37

Псевдонимы

38

Константы

39

Символы

40

Метки

40

Массивы

41

Математические операторы

42

Умножение

44

Деление

44

Операторы сдвига

45

Оператор ABS

45

Оператор COS

45

Оператор DCD

46

Оператор DIG

46

Оператор DIV32

46

Оператор MAX и MIN

47

Оператор NCD

48

Оператор REV

48

Оператор SIN

48

3


Оператор SQR

49

Поразрядные операторы

49

Операторы сравнения

49

Логические операторы

50

Некоторые замечания о стилях программирования

51

Глава 3. Примеры программ

52

Пример № 1 – Мигающий светодиод (Hello Word)

52

Пример № 2. Работа с несколькими светодиодами

54

Пример № 3. Взаимодействие с кнопкой

58

Пример № 4. Аналого-цифровое преобразование

60

Пример № 5. Управление сервомотором

64

Пример № 6. Управление ЖКИ

66

Пример № 7. Подключение 7 сегментного светодиодного

71

индикатора

Пример № 8. Работа с внутренней ЕЕПРОМ

74

Пример № 9. Работа с внешней ЕЕПРОМ

76

Пример № 10. Работа с 12 кнопочной клавиатурой

79

Пример № 11. Создание музыки

83

Глава 4. Команды компилятора PicBasicPro

86

Команда @

88

Команда ADCIN

89

Команда ASM…ENDASM

89

Команда BRANCH

90

Команда BRANCHL

90

Команда BUTTON

91

Команда CALL

97

Команда CLEAR

97

Команда CLEARWDT

97

Команда COUNT

97

Команда DATA

98

Команда DEBUG

99

Команда DEBUGIN

100

Команда DISABLE

100

Команда DISABLE DEBUG

101

Команда DISABLE INTERRUPT

101

Команда DTMFOUT

101

Команда EEPROM

102

Команда ENABLE

103

Команда ENABLE DEBUG

103

Команда ENABLE INTERRUPT

103

Команда END

104

4


Команда ERASECODE

104

Команда FOR…NEXT

104

Команда FREQOUT

105

Команда GOSUB

106

Команда GOTO

107

Команда HIGH

107

Команда HPWM

108

Команда HSERIN

109

Команда HSEROUT

112

Команда HSERIN2

113

Команда HSEROUT2

114

Команда I2CREAD

116

Команда I2CWRITE

118

Команда IF…THEN

121

Команда INPUT

121

Команда LET

122

Команда LCDIN

122

Команда LCDOUT

123

Команда LOOKDOWN

125

Команда LOOKDOWN2

126

Команда LOOKUP

127

Команда LOOKUP2

128

Команда LOW

128

Команда NAP

129

Команда ON INTERRUPT

130

Команда OUTPUT

131

Команда OWIN

131

Команда OWOUT

132

Команда PAUSE

133

Команда PAUSEUS

133

Команда PEEK

135

Команда PEEKCODE

135

Команда POKE

135

Команда POKECODE

136

Команда POT

136

Команда PULSIN

138

Команда PULSOUT

138

Команда PWM

139

Команда RANDOM

140

Команда RCTIME

140

Команда READ

141

Команда READCODE

141

Команда REPEAT…UNTIL

141

5


Команда RESUME

142

Команда RETURN

142

Команда REVERSE

142

Команда SERIN

143

Команда SELECT…CASE

145

Команда SERIN2

145

Команда SEROUT

149

Команда SEROUT2

151

Команда SHIFTIN

155

Команда SHIFTOUT

157

Команда SLEEP

158

Команда SOUND

159

Команда STOP

160

Команда SWAP

160

Команда TOGGLE

160

Команда WHILE…WEND

161

Команда USBINIT

161

Команда USBIN

161

Команда USBOUT

162

Команда WRITE

162

Команда WRITECODE

163

Команда XIN

163

Команда XOUT

164

Оператор DEFINE

166

Некоторые замечания по поводу обозначения выводов

169

микроконтроллеров

Заключение

171

Приложение 1. Однопроводный интерфейс или интерфейс

172

“Micro-LAN”.

Приложение 2. Протокол Х10

180

Подборка ссылок в INTERNET

185

Литература

186

6


Предисловие

Написать эту книгу меня побудило то обстоятельство, что до сегодняшнего дня в нашей стране еще не было выпущено книг, рассказывающих о программировании микроконтроллеров на языке BASIC. Хотя в Интернете, да и не только в нем многие интересуются этим.

Я сам занимаюсь электроникой довольно давно. За это время в этой отрасли техники произошли значительные изменения. Я начинал работать тогда, когда широко использовались транзисторы, пришедшие на смену электронным лампам. А на смену транзисторам уже начинали приходить микросхемы. Что в это время происходило за пределами СССР в области электронной техники, нам было неведомо (к большому нашему сожалению).

Внедрение в производство первых микро компьютеров в нашей стране началось в 80 годы прошлого века. Первые промышленные компьютеры были очень дорогими для обычного человека. Поэтому большинство радиолюбителей собирало на работе и дома самодельные компьютеры такие как «Специалист», «Радио 86 РК» и т.п. Вершиной радиолюбительских сборок стали компьютеры серии «Sinkler» на базе процессора Z80.

Играя на этих компьютерах и пытаясь создавать свои программы, любители начинали самостоятельно осваивать наиболее распространенный для этих компьютеров язык программирования - BASIC.

Эта книга предназначена для студентов и инженеров, занимающихся электроникой. Здесь они смогут найти ответы на вопрос, как и чем, программировать PIC-микроконтроллеры.

Книга разбита на три части. В первой части приводится очень краткое описание устройства и работы PIC-микроконтроллеров.

Во второй части описывается язык программирования PicBasicPro.

Третья часть содержит подборку практических примеров устройств на основе микроконтроллеров PIC, а также тексты Basic-программ к этим примерам.

В четвертой части приведены справочные данные по командам языка

PicBasicPro.

Благодарность.

Хочу выразить искреннюю признательность своему коллеге Виктору Никитовичу Овчинникову, прочитавшему рукопись и высказавшему ряд важных замечаний.

Также хочу поблагодарить свою супругу Ирину за детей, которых она подарила мне и за помощь в коррекции рукописи и ее издании.

7

Введение

С появлением в электронике микроконтроллеров многие столкнулись с проблемой, как и чем их программировать. В этой книге я не буду касаться вопроса устройства микроконтроллеров, их параметров и т. п., так как эти вопросы неплохо разъяснены во многих книгах, изданных в нашей стране. Здесь же мы будем рассматривать вопросы программирования микроконтроллеров, производимых фирмой Microchip так называемых PIC-контроллеров или на радиолюбительском сленге - «пикушек», на языке BASIC.

Известно, что программы, написанные на языке Ассемблер, дают лучшие результаты. Размер программы минимален и выполняется она значительно быстрее, чем написанная на любом другом языке. Но и писать программы на Ассемблере значительно сложнее и дольше. Команды Ассемблеров различных производителей микроконтроллеров сильно отличаются друг от друга. Поэтому, переходя от одного типа микроконтроллеров к другому типу, приходится, как бы, вновь осваивать новый язык. Да и замысловат он очень. Поэтому в настоящее время, когда технический прогресс требует скорейшего внедрения новых разработок, альтернативой Ассемблеру должны стать языки высокого уровня. В связи с тем, что сейчас многие производители выпускают огромное количество различных типов микроконтроллеров, мы во всех тех случаях, когда памяти микроконтроллера не хватает, всегда можем выбрать более емкий микроконтроллер. А если нас не устраивает скорость выполнения, то мы можем задать более высокую частоту задающего генератора. Многие специалисты утверждают, что лучшим языком программирования является - СИ. Но мы-то с Вами (почитатели других языков) знаем, что лучшим языком является тот, на котором ты грамотнее всего общаешься.

Любая программа представляет собой набор из сотен тысяч или даже миллионов инструкций процессора, каждая из которых кодируется одним или несколькими байтами (эти инструкции еще называются машинным кодом). Пытаться составлять программу, просто набирая коды инструкций, — занятие бессмысленное. Уже после десятка введенных таким способом команд человек теряет нить рассуждений, начинает путаться и допускает ошибки.

Кроме того, программа — это не просто набор вычислительных инструкций. Для общения с внешними устройствами, например, для считывания информации о изменении состояния каких либо датчиков, в наборе команд микроконтроллера есть специальная инструкция — прерывание, которая прерывает работу процессора и передает управление некоторой подпрограмме. Чтобы грамотно использовать прерывания, желательно детально разбираться в устройстве самого контроллера и понимать логику его работы.

В 50 годы прошлого века появился первый высокоуровневый язык программирования. Высокоуровневые языки программирования предназначены для написания программ с помощью привычных для человека терминов. Они манипулируют не конкретными ячейками памяти и элементарными

8