Добрый день!
Цитата(VladimirB @ Aug 17 2011, 13:40)

НИИ, которое использует 51 контроллеры на С - место гиблое, бегите оттуда скорее, пока вас не заставили прогать КР580ВМ80 на С#.
Новых знаний и опыта вы там точно не наберётесь.
Язык С в микроконтроллерах если и нужен, то для реализации достаточно сложных функций и алгоритмов, которые не хочечься заново писать на ассемблере. Например, хочеться реализовать быстрое преобразование Фурье или поднять подобие стека TCP/IP.
А если у вас 256 байт ОЗУ и 8192 Байт ПЗУ, то какие сложные алгоритмы можно реализовать? И будет ли при этом текст программы на C занимать меньше места.
Именно поэтому нормальных компиляторов Си для MCS-51 вы не найдёте.
Ну не стоит, Уважаемый, так безапелляционно заявлять такие вещи!
1. Выбор микроконтроллера зависит от задачи и еще целого ряда причин. Вовсе не обязательно вставлять ARM в устройства, где хватает мощности 51! Кстати, сейчас существует достаточно много современных представителей 51 семейства, производительность которых превышает многие ARM, AVR и т.п. Как пример - микроконтроллеры фирмы Silicon Laboratories (SiLabs). Например, у микроконтроллеров C8051F12x-13x пиковая производительность достигает 100MIPS. Ну попробуйте без поисков в интернете назвать современный, мощный, на ваш взгляд, микроконтроллер?!! А большинство моделей, которых сейчас около сотни, имеют производительность около 50MIPS!!!
2. Несколько слов об архитектуре! 51 архитектура вовсе не такая уж ущербная. Наоборот она очень удобна для задач, в которых нужно программно "дергать" один бит (пин), т.е. для задач управления различными устройствами. Использовать в таких устройствах модный сейчас AVR не очень то удобно...
3. "Язык С в микроконтроллерах если и нужен, то для реализации достаточно сложных функций и алгоритмов, которые не хочечься заново писать на ассемблере" - Ну это уж вообще ерунда!
Писать на С нужно для того, чтобы ваша программа была читаема и переносима. Кроме того, программу на С легче отлаживать. Конечно нужно иметь хороший компилятор, нужно грамотно писать на С и уметь правильно использовать оптимизацию...Ассемблер стоит использовать только тогда, когда нет возможности реализовать требуемый алгоритм на С (т.е. когда быстродействия контроллера для этого не хватает).
4. Что касается "Именно поэтому нормальных компиляторов Си для MCS-51 вы не найдёте..."
IAR, Kail и еще много других...