реклама на сайте
подробности

 
 
> MCS-51, Первые шаги
bragol
сообщение Aug 15 2011, 11:45
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 15-08-11
Пользователь №: 66 729



Доброго времени суток.
Я программист, учусь в аспирантуре, долго не мог найти работу по специальности и сейчас попал в один НИИ на испытательный срок.
Суть работы программирование микроконтроллеров семейства MCS-51 на Си.
До этого писал всю жизнь под винду, сейчас надо в кратчайшие сроки, а именно 2 недели получить базовые знания и навыки в новой для меня отрасли для успешного попадания в штат.
Задачи поставили следующие:
Ознакомиться с архитектурой данного семейства, найти бесплатный компилятор, научиться писать простейшие программы на СИ, например мигание светодиодов и т.д..
С первыми пунктами все более менее понятно.
Пока я остановился на следующем:
В качестве компилятора я выбрал SDCC
В качестве IDE Code::Blocks
В качестве симулятора выбрал EdSim51, но пока не успел опробовать, все еще впереди.

Далее куча вопросов. Что посоветуете делать дальше?
Прочел уже страниц 30 родной документации к компилятру, не впечатлило, как-то скудно описано и не очень понятно, может-быть из-за отсутствия опыта...
Какую литературу посоветуете желательно русскоязычную для начинающих, именно Си и именно данное семейство микроконтроллеров.
Может быть есть исходники простейшие, желательно с комментами...

Не побрезгаю любыми советами
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
bragol
сообщение Aug 18 2011, 12:46
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 15-08-11
Пользователь №: 66 729



Цитата
А вот это зависит от НИИ . О существовании правильного НИИ они и не узнают. Если руководство НИИ задумалось о легальности, то НИИ, полагаю, совсем даже не "правильный" . Хотя, слово легальность Автором не произносилось - только бесплатность .

Была поставлена задача найти компилятор Сишный, а какой он должен быть мне не сказали, вот я и решил искать и среди бесплатных, и среди платных, которые можно сделать бесплатными и полноценными, как-то так))) PS НИИ занимается разработкой радиоизмерительных приборов, всяких ватметров и т.д.
Теперь по делу, вот модернизированный код с первой страницы, так лучше? Все ли правильно?

Цитата
#include <ADUC812.H>
#include <stdio.h>

void blink( unsigned int );
sbit BLINK = P1^0;

void main()
{
unsigned int counter = 28; // диод мигает раз в 2 секунды
P1 = 0x0FE;
TH0 = 0x0; // установка старшего и младшего битов в 0
TL0 = 0x0;
TMOD |= 0x1; // утанавливает все биты регистра режимов в 1
TR0 = 1; // включает таймер/счетчик Т/С0

while( 1 )
{
blink( counter );
}
}

void blink( unsigned int count )
{
if (TF0 == 1) // флаг преполнения
{
TF0 = 0; // если Т/С переполнился вернуть флаг в 0
--count;
if (count == 0)
{
count = 28;
BLINK = ~BLINK;
}
}
}


Пока не понимаю вот это:
1) P1 = 0x0FE; для чего присваивать порту значение 254, если правильно перевел?
2) TMOD |= 0x1; Эта строка присваивает всем битам регистра значение 1 так? Если да, то сто происходит с битами в первом случае?
3) По идее светодиод должен мигать раз в 2 секунды если верить вот этому:
Цитата
В этом случае таймер 0 инкрементируется 11059000 / 12 = 921583 раз в секунду. При
этом интервал между тиками составляет 65536 / 921583 = 0,071 с (берем 3 знака после запя$
той). Следовательно, по прошествии 2 с таймер должен перегрузиться 2 / 0,071 = 28


Пока с вопросами все.

Сообщение отредактировал bragol - Aug 18 2011, 12:49
Go to the top of the page
 
+Quote Post
scifi
сообщение Aug 18 2011, 12:55
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(bragol @ Aug 18 2011, 16:46) *
1) P1 = 0x0FE; для чего присваивать порту значение 254, если правильно перевел?

Почитайте про структуру порта вывода 51-го МК. 254 означает: P1.0 - низкий уровень, P1.1...P1.7 - высокий уровень.

Цитата(bragol @ Aug 18 2011, 16:46) *
2) TMOD |= 0x1; Эта строка присваивает всем битам регистра значение 1 так? Если да, то сто происходит с битами в первом случае?

Эта строка устанавливает младший бит. Это известно каждому, кто хоть что-то знает про язык Си. Неприлично такие вопросы задавать.
Go to the top of the page
 
+Quote Post
bragol
сообщение Aug 18 2011, 13:35
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 15-08-11
Пользователь №: 66 729



Цитата(scifi @ Aug 18 2011, 16:55) *
Почитайте про структуру порта вывода 51-го МК. 254 означает: P1.0 - низкий уровень, P1.1...P1.7 - высокий уровень.


Эта строка устанавливает младший бит. Это известно каждому, кто хоть что-то знает про язык Си. Неприлично такие вопросы задавать.


Ага спасибо за пояснения
Неприлично вопросы не задавать, по крайней мере я так думаю, а в плюсах, на которых я писал, с этим если честно не сталкивался
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Aug 18 2011, 15:24
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(bragol @ Aug 18 2011, 16:35) *
Неприлично вопросы не задавать, по крайней мере я так думаю, а в плюсах, на которых я писал, с этим если честно не сталкивался


Ну вы даете. Больше никому никогда не рассказываете, что в С++ не сталкивались с побитными операциями. Может пристроитесь на работу и не только в это НИИ.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 18 2011, 15:31
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (sergeeff @ Aug 18 2011, 18:24) *
Ну вы даете. Больше никому никогда не рассказываете, что в С++ не сталкивались с побитными операциями.

Конечно не сталкивался - нажимал кнопки в визарде для генерации окошек и рющек. Несколько переменных сгенеренных тем-же визардом были все из себя интовые. Посмотрите внимательнее на его комментарии в "исходнике"- он-же биты от байтов не отличает sad.gif. Все это ерунда, кроме разве того, что он считает что умеет программировать sad.gif.
Вот это действительно проблема.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
bragol
сообщение Aug 19 2011, 04:57
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 15-08-11
Пользователь №: 66 729



Цитата(zltigo @ Aug 18 2011, 19:31) *
Конечно не сталкивался - нажимал кнопки в визарде для генерации окошек и рющек. Несколько переменных сгенеренных тем-же визардом были все из себя интовые. Посмотрите внимательнее на его комментарии в "исходнике"- он-же биты от байтов не отличает sad.gif. Все это ерунда, кроме разве того, что он считает что умеет программировать sad.gif.
Вот это действительно проблема.

А вот пытаться "щемить" меня совершенно не нужно, тем более на форуме...

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

В советах, типа бросай НИИ (была бы возможность работать в другом месте программистом, меня бы тут не было) и в комментариях подобным Вашим, я не нуждаюсь, поберегите пальцы и не засоряйте тему.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- bragol   MCS-51   Aug 15 2011, 11:45
- - vladec   Для 51-х лучше, наверное, работать в среде Keil (w...   Aug 16 2011, 05:35
- - _Pasha   Сташин Урусов - это книга для быстрого вкуривания ...   Aug 16 2011, 05:55
|- - kolobok0   Цитата(_Pasha @ Aug 16 2011, 09:55) ...Ке...   Aug 16 2011, 10:00
|- - zltigo   QUOTE (kolobok0 @ Aug 16 2011, 12:00) По ...   Aug 16 2011, 12:08
- - bragol   Все бы хорошо, но начальству нужен полноценный бес...   Aug 16 2011, 05:55
- - sergeeff   Есть нюанс между Keil и SDCC. Они по разному упако...   Aug 16 2011, 06:03
- - bragol   ЦитатаЕсть нюанс между Keil и SDCC. Они по разному...   Aug 16 2011, 06:18
- - zovsilab   На мой взгляд самая лучшая книга по MCS-51 это Фру...   Aug 16 2011, 06:28
- - bragol   Спасибо большое. С книгами по архитектуре МК пробл...   Aug 16 2011, 06:37
- - zovsilab   Запомните! Перед тем как писать программу для ...   Aug 16 2011, 06:48
|- - _Pasha   Цитата(zovsilab @ Aug 16 2011, 09:48) По ...   Aug 16 2011, 06:52
- - bragol   ЦитатаПо поводу выше приведенного кода - светодиод...   Aug 16 2011, 07:47
- - bragol   ЦитатаЕще по теме - не использовать 51 вообще, за...   Aug 16 2011, 12:25
|- - zltigo   QUOTE (bragol @ Aug 16 2011, 14:25) 1) Чт...   Aug 16 2011, 12:32
|- - tyro   Цитата(zltigo @ Aug 16 2011, 16:32) От Ва...   Aug 16 2011, 12:59
|- - zltigo   QUOTE (tyro @ Aug 16 2011, 14:59) Но здес...   Aug 16 2011, 14:10
- - one_eight_seven   Практически программа строится немного не так, как...   Aug 16 2011, 14:38
|- - zltigo   QUOTE (one_eight_seven @ Aug 16 2011, 16...   Aug 16 2011, 15:03
- - sergeeff   Если товарищу очень хочется работать именно в этом...   Aug 16 2011, 15:25
- - bragol   ЦитатаДаже, если Вас съели, у Вас есть ДВА выхода ...   Aug 17 2011, 05:39
|- - zltigo   QUOTE (bragol @ Aug 17 2011, 07:39) Кстат...   Aug 17 2011, 09:49
||- - Белка12   Цитата(zltigo @ Aug 17 2011, 13:49) Ой, к...   Feb 7 2013, 00:07
||- - Tiro   Цитата(Белка12 @ Feb 7 2013, 03:07) А 51 ...   Feb 7 2013, 21:00
||- - Белка12   Цитата(Tiro @ Feb 8 2013, 01:00) Все прох...   Feb 7 2013, 21:32
||- - paskal   Цитата(Tiro @ Feb 8 2013, 01:00) Все прох...   Jun 16 2013, 18:47
||- - Tarbal   Цитата(paskal @ Jun 16 2013, 22:47) Насче...   Aug 31 2013, 21:42
||- - Harbinger   Цитата(Tarbal @ Sep 1 2013, 00:42) Когда ...   Sep 1 2013, 07:19
|- - VladimirB   Цитата(bragol @ Aug 17 2011, 09:39) 51 ко...   Aug 17 2011, 10:40
|- - kolobok0   Цитата(VladimirB @ Aug 17 2011, 14:40) .....   Aug 17 2011, 13:50
|- - tyro   Цитата(VladimirB @ Aug 17 2011, 14:40) Им...   Aug 17 2011, 16:08
|- - scifi   Цитата(VladimirB @ Aug 17 2011, 14:40) Яз...   Aug 18 2011, 08:55
|- - Onic777   Добрый день! Цитата(VladimirB @ Aug 17 ...   Oct 12 2013, 19:17
|- - Harbinger   Цитата(Onic777 @ Oct 12 2013, 22:17) Напр...   Oct 13 2013, 07:32
|- - ViKo   Цитата(Onic777 @ Oct 12 2013, 22:17) Напр...   Oct 13 2013, 08:19
- - bragol   ЦитатаKeil стало быть не нормальный , да и IAR вр...   Aug 18 2011, 05:16
|- - _3m   Цитата(bragol @ Aug 18 2011, 09:16) Они и...   Aug 18 2011, 05:53
|- - bragol   Цитата(_3m @ Aug 18 2011, 09:53) Не получ...   Aug 18 2011, 06:08
|- - _3m   Цитата(bragol @ Aug 18 2011, 10:08) (1) К...   Aug 18 2011, 06:59
|- - zltigo   QUOTE (_3m @ Aug 18 2011, 08:59) Так пров...   Aug 18 2011, 08:50
- - sergeeff   Все что вы рассказываете видел в своей жизни лет 2...   Aug 18 2011, 06:34
- - one_eight_seven   ЦитатаСовременные МК в большинстве случаев имеют в...   Aug 18 2011, 10:57
|- - zltigo   QUOTE (one_eight_seven @ Aug 18 2011, 12...   Aug 18 2011, 11:04
- - one_eight_seven   ЦитатаХотя проблем с системой команд и заброшеннос...   Aug 18 2011, 11:43
||- - zltigo   QUOTE (bragol @ Aug 19 2011, 07:57) На пл...   Aug 19 2011, 19:12
|- - AHTOXA   Цитата(bragol @ Aug 18 2011, 18:46) Тепер...   Aug 19 2011, 05:47
|- - bragol   Цитата(AHTOXA @ Aug 19 2011, 09:47) Непра...   Aug 19 2011, 07:44
- - sergeeff   Ура! Светодиодик моргает. Начальство должно б...   Aug 19 2011, 18:47
- - scifi   Чем соревноваться в сарказме, лучше перенесли бы в...   Aug 19 2011, 20:37
- - sergeeff   Проявление сарказма может подвигнет автора топика ...   Aug 20 2011, 09:29
- - bragol   А есть у кого-нибудь программа Windows Serial Down...   Aug 22 2011, 07:26
|- - sergeeff   Цитата(bragol @ Aug 22 2011, 10:26) А ест...   Aug 22 2011, 07:48
||- - bragol   Цитата(sergeeff @ Aug 22 2011, 11:48) По ...   Aug 22 2011, 08:41
||- - Lmx2315   Прошу прощения уважаемые ! На форуме одно вре...   Aug 22 2011, 09:10
|||- - zltigo   QUOTE (Lmx2315 @ Aug 22 2011, 12:10) прош...   Aug 22 2011, 09:52
|||- - Lmx2315   ..скатертью дорога.   Aug 22 2011, 09:57
|||- - sergeeff   Цитата(zltigo @ Aug 22 2011, 12:52) Отлич...   Aug 22 2011, 10:10
|||- - zltigo   QUOTE (sergeeff @ Aug 22 2011, 13:10) И н...   Aug 22 2011, 11:12
|||- - Lmx2315   ..заигрался , не под тем ником ответил.   Aug 22 2011, 11:26
|||- - bragol   Цитата(zltigo @ Aug 22 2011, 15:12) Это-ж...   Aug 22 2011, 11:31
||- - sergeeff   Цитата(bragol @ Aug 22 2011, 11:41) У мен...   Aug 22 2011, 09:42
|- - Verifi   Цитата(bragol @ Aug 22 2011, 11:26) А ест...   Aug 29 2011, 07:27
|- - bragol   Цитата(Verifi @ Aug 29 2011, 11:27) И не ...   Aug 29 2011, 08:09
- - sergeeff   Цитатато-же не Вам был ответ sad.gif, а Lmx2315. О...   Aug 22 2011, 11:28
- - bragol   Кто-нибудь использовал EdSim51? Если писать на ас...   Aug 26 2011, 07:14
|- - paskal   Цитата(bragol @ Aug 26 2011, 11:14) Если ...   Aug 26 2011, 16:49
|- - bragol   Цитата(paskal @ Aug 26 2011, 20:49) А что...   Aug 29 2011, 06:36
- - _Pasha   Случайно набрел на этот некропост. Скажу адын весч...   Feb 7 2013, 06:46
- - Белка12   То-то зе. Цитата(zltigo @ Aug 19 2011, 23...   Feb 7 2013, 13:04
|- - _Pasha   Цитата(Белка12 @ Feb 7 2013, 16:04) То-то...   Feb 7 2013, 13:16
|- - Белка12   Цитата(_Pasha @ Feb 7 2013, 17:16) Состои...   Feb 7 2013, 16:35
|- - _Pasha   Цитата(Белка12 @ Feb 7 2013, 19:11) Вот. ...   Feb 7 2013, 16:35
|- - ReAl   Цитата(_Pasha @ Feb 7 2013, 18:35) даже в...   Feb 7 2013, 20:35
|- - _Pasha   Цитата(ReAl @ Feb 7 2013, 23:35) А разве ...   Feb 7 2013, 21:36
|- - Белка12   Цитата(_Pasha @ Feb 8 2013, 01:36) С дейс...   Feb 8 2013, 17:27
|- - _Pasha   Цитата(Белка12 @ Feb 8 2013, 21:27) Хотя ...   Feb 8 2013, 18:33
|- - Белка12   Цитата(_Pasha @ Feb 8 2013, 22:33) Atmel ...   Feb 11 2013, 10:12
|- - Harbinger   Цитата(Белка12 @ Feb 11 2013, 12:12) Вопр...   Feb 11 2013, 16:50
|- - Белка12   Цитата(Harbinger @ Feb 11 2013, 20:50) На...   Feb 11 2013, 16:53
- - iosifk   Цитата(bragol @ Aug 15 2011, 15:45) Добро...   Feb 11 2013, 10:36
|- - Белка12   Цитата(iosifk @ Feb 11 2013, 14:36) Так ч...   Feb 11 2013, 16:43
|- - iosifk   Цитата(Белка12 @ Feb 11 2013, 20:43) А ...   Feb 11 2013, 17:58
|- - Белка12   Цитата(iosifk @ Feb 11 2013, 21:58) А у A...   Feb 11 2013, 18:09
|- - Белка12   Цитата(iosifk @ Feb 11 2013, 21:58) И на ...   Feb 11 2013, 21:01
|- - Harbinger   Цитата(iosifk @ Feb 11 2013, 19:58) А у A...   Feb 12 2013, 03:41
|- - pvlad   Случайно забрел в эту тему - зацепило... Молодой с...   Mar 2 2013, 20:53
- - psL   51 - не RISC, соответственно всегда будет хуже соо...   Sep 1 2013, 12:30
- - Harbinger   Касательно портов - классический вариант остался о...   Sep 1 2013, 17:39


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 18:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.02636 секунд с 7
ELECTRONIX ©2004-2016