Последние комментарии
-
09.03.2023 10:51
Спасибо!Драйвер установил,и все заработало.
-
25.01.2023 16:05
Спасибо. Хорошая статья. Хотелось бы увидеть как ...
-
21.01.2023 22:58
Доброго дня! Як можна замовити? І чи є схема або ...
-
05.05.2022 19:14
Спасибо автору, понял почему блинк не работал
-
21.04.2022 13:18
В моём случае он используется совместно с AGP ...
Самое читаемое
- Многофункциональный программатор на CH341A
- Переходник USB to TTL (RS232) YP-01 на чипе PL2303HX
- Знакомство с Arduino Pro mini на примере китайского аналога
- Подключаем мощную нагрузку к Arduino, через реле модуль
- Твердотельное реле из симистора для коммутации мощной нагрузки через Ардуино
- Знакомство с Arduino Micro (ATmega32U4) на примере китайского аналога Pro Micro
- Знакомство с Arduino Nano на примере китайского аналога
- Знакомство с Arduino UNO на примере китайского аналога
- Обход блокировки Одноклассников, Вконтакте, Яндекс и Маил.ру с помощью OpenVPN
- Управляем Arduino через Bluetooth HC-06, с компьютера или смартфона
Компилируем прошивку для микроконтроллеров STCmicro Limited (8051)
Я уже рассказывал про микроконтроллер STC15W408AS, с архитектурой 8051, будет обзор на ещё один МК от STCmicro Limited - STC15W204S. Для загрузки в эти МК своей прошивки, её вначале нужно скомпилировать и в данной статье я расскажу, как это сделать, с помощью Keil uVision 5. Данный материал будет полезен и для других МК с архитектурой 8051.
Микроконтроллеры компании STCmicro Limited становятся популярными, на Aliexpress можно купить набор, для сборки часов на STC15W408AS. Программа для прошивки МК обычно предоставляется в виде исходных кодов, которые нужно скомпилировать, в результате получим hex-файл, который нужно будет загрузить в МК, с помощью фирменной утилиты.
Компилировать программу будем в среде разработки Keil uVision 5. Данное ПО платное, но можно скачать ознакомительную версию, в которой компилятор, ассемблер, компоновщик и отладчик 8051 ограничены 2 Кб объектного кода. Если будите писать программы до 2 Кб, то эти ограничения для вас не страшны, в противном случае, программы, которые генерируют более 2 Кбайт объектного кода, не будут компилироваться, собираться или связываться.
Keil uVision можно скачать на официальном сайте.
Заполняем форму и в ответ нам предоставят ссылку для скачивания дистрибутива.
Установив, запускаем программу.
Создаём проект, с помощью пунктов меню "Project" – "New uVision Project …"
Пишем имя проекта, у меня это blink. Каждый проект желательно размещать в отдельной папке, в моём примере это папка blink, нажимаем "Сохранить".
Проект сохранится с расширением .uvproj
Выбираем микроконтроллер, для которого будем писать программу. В поле "Search:" пишем "8052" и в выпадающем списке выбираем в пункте "Generic" - "8052 (all Variants)" и нажимаем "ОК".
На вопрос "Copy 'STARTUP.A51' to Project Folder and Add File to Project?" отвечаем "Нет".
Так будет выглядеть панель проекта.
Создадим новый файл, для этого нажмём на соответствующую иконку или воспользуемся комбинацией "Ctrl + N". Появится поле для ввода кода.
Введём в это поле код, в примере это будет код для мигания светодиодом (Blink). По-умолчанию в моей плате уже был залит код для мигания светодиода, но в примере сделаем мигание чаще.
#include <reg51.h> sbit led=P1^0; void Delay_us(int n) { int x; while (n--) { x = 5000; while (x--); } } void main() { led=1; while(1) { led=~led; Delay_us(10); } } |
Исходный код программы Blink. В строке "sbit led=P1^0;" указывается пин, к которому подключен светодиод. На отладочной плате STC15W408AS, светодиод подключен к пину P10. В строке "Delay_us(10);" задаётся количество миллисекунд, на которое останавливается выполнение программы (в примере это 10 миллисекунд).
Сохраним введённый код в формате С-файла, для этого воспользуемся соответствующей иконкой на панели или с помощью комбинации клавиш "Ctrl + S". Файл необходимо сохранить с любым именем и расширением ".c" (в примере main.c).
Имя файла изменится на то, которое выбрали при сохранении.
Теперь нужно добавить этот С-файл в наш проект, для этого правой кнопкой мыши клацаем на папке "Source Group 1" и в меню выбираем пункт "Add Existing Files to Group 'Source Group 1'".
Выбираем С-файл, который нужно добавить в проект (main.c) и нажимаем "Add" для его добавления, затем "Close", что бы закрыть это окно.
main.c добавлен в наш проект.
Перед сборкой проекта нужно настроить формат вывода, нам необходимо вывести в hex-файл. Для этого клацаем правой кнопкой мыши на папке "Target 1" и выбираем "Options for Target 'Target1'...".
В окне "Options for Target ' Target 1'" выбираем вкладку "Output", выставляем флажок в пункте "Create Hex File", нажимаем ОК.
Теперь можно построить проект, для этого воспользуемся соответствующей иконкой или нажмём F7. Если код написан правильно, то ошибок не должно быть.
Файл "blink.hex" будет создан в папке проекта, в подпапке "Objects". Теперь его можно загрузить в микроконтроллер, с помощью утилиты "STC-ISP".
Попробуйте изменить в коде, в строке "Delay_us(10);" значение на 1000, пересобрать hex-файл и загрузить его в микроконтроллер. Светодиод должен мигать не так часто.
Давайте рассмотрим ещё один пример, добавив к светодиоду тактовую кнопку. В этом примере, светодиод будет зажигаться, если будет нажата кнопка.
Подключаем внешний светодиод и тактовую кнопку к свободным пинам на отладочной плате STC15W204S. В примере, светодиод я подключил к пину P14, а кнопку к P13.
Создаём новый проект и всё проделываем так же, как и с примером Blink, только пишем новый код:
#include<reg51.h> sbit Button = P1^3; sbit LED = P1^4; void main() { Button=1; LED=0; while(1){ if(Button==0) LED=1; else LED=0; } } |
В строке "sbit Button = P1^3;" указываем пин, к которому подключаем кнопку. В строке "sbit LED = P1^4;" - пин со светодиодом.
К отладочной плате на STC15W204S, не нужно подключать внешний светодиод и кнопку, они уже распаяны на плате, нужно лишь указать правильно пины в коде: для кнопки - "sbit Button = P3^2;", для светодиода - "sbit LED = P3^3;".
Попробуй собрать программу из исходных кодов, загрузить в микроконтроллер и проверить её в действии.
Комментарии
Для любителей и студентов к сожалению так и есть. Но ведь производитель не на них рассчитывает, а на крупные центры разработки, у которых должна быть лицензия на Кейл. С помощью этой линейки решается как минимум две проблемы:
1. Импортозамещени е в самом Китае.
2. Кто захочет выпускать свою продукцию на 8051 дешевле, тот с американских МК, может перейти на Китайские.
Есть вроде вариант бесплатной среды для компиляции, но пока до конца не протестировал.
Прочитал я про этот куб. Существует несколько версий куба, в зависимости от прошивки:
1. Просто куб, со встроенными эффектами, одноцветный.
2. Куб с возможностью подключения к Ардуино. В данном случае, Ардуино не прошивает куб, а по UART, передаёт массив, какие светодиоды и как зажечь. Здесь плюс Ардуино в том, что можно разнообразить световые эффекты. Минусы: Ардуино должна быть всегда подключена и так же требуются знания работы с Ардуино и работы со скетчами.
3. Куб с поддержкой Ардуино, пульта, которым можно переключать вшитые в MCU эффекты и возможность подключать звук.
4. Тоже самое, что и 3-й вариант, только ещё имеется поддержка работы с программой 3D8S Alpha. Эта программа делает тоже самое, что и Ардуино - через UART выводит массивы со световыми эффектами.
Плюс программы в том, что не нужно покупать Ардуино и разбираться в его подключении и программировании.
5. Поддержка работы с программой 3D8S Alpha и карты памяти. Вот этот вариант куба можно запрограммирова ть и пользоваться своими эффектами автономно. В 3D8S создаётся эффект, затем данные записываются на карту памяти и куб её проигрывает.
6. Поддержка карты памяти и встроенного динамика. На динамик можно выводить звуковые эффекты.
Вывод, что бы программировать свои эффекты и ими пользоваться автономно без сторонних девайсов:
1. Собрать куб 5-й или 6-й версии.
2. Можно апгрейдить свой куб до другой версии, заменив/добавив недостающие компоненты + где-то раздобыв прошивку. Китайцы просто так эту прошивку не дадут, они хотят продавать кубы разных версий, не хотят себе конкурентов.
3. Написать с нуля свою прошивку на С, скомпилировать её например в Keil и загрузить через утилиту STC-ISP в микроконтроллер от STC.
Можете файлы загрузить куда нибудь в облако и в обратной связи или в комментарии оставить ссылку, посмотрю.
Ардуино - это платформа, построенная на микроконтроллер ах ATmega (уже это Microchip). В вашем же случае, микроконтроллер от STC и они не поддерживают программу Arduino IDE.
Для интереса, скиньте названия проектов, "...в которых контроллеры серии STC подключены через ардуино и прошивка и редактор с компилятором".
STC12C5A60S2 - так же улучшенный, построен на базе высокопроизводи тельного процессора 80C51 архитектуры 1T. Выполняет инструкции в 1 ~ 6 тактов, это где-то в 6 ~ 7 раз больше, чем у стандартного 8051. В даташите сказано, что ядро процессора STC12C5A60S2 полностью совместимо со стандартным микроконтроллер ом 8051. В KEIL VISION можно выбрать Intel 8052/87C52/87C5 2/87C58 или Philips P87C52/P87C54/P87C58
Можно в KEIL VISION заменить базу микроконтроллер ов на MCU от STC, после этого в KEIL будут только их МК, других производителей не будет.
Для этого файлы (*.CDB) нужно заменить в KEIL VISION. Имеются файлы для KEIL VISION версий 2,3 и 4. Про 5 версию ничего не сказано, написал по этому случаю письмо разработчику, жду ответ, затем сделаю подробную статью.
RSS лента комментариев этой записи