На склад поступили жидко-кристаллические индикаторы и дисплеи от KSE

Присвоение значения порту в теле функции.

Новичок
 
Регистрация: 25.11.2014
Сообщений: 8
Репутация: 10
0 1
0 2
 
30.11.2016 16:51 #1
Есть микроконтроллер на базе MCS-51. Необходимо создать функцию, в которой бы происходило бы изменение значения вывода порта. К примеру, необходимо присвоить значение 0 выводу P1_7. То функция должна иметь вид:

void PinMode (P1_7, 0);
Оценка
В многообразии литиевых батареек и аккумуляторов нет какого-то универсального или идеального варианта. Выбирая тот или иной вариант для питания устройства, разработчику приходится оперировать множеством параметров, используя наиболее оптимальное их сочетание для каждого приложения. Разберем параметры для различных приложений.
Banned
 
Регистрация: 21.04.2012
Адрес: южнее Дуная
Сообщений: 4,318
Репутация: 417
498 352
141 0
 
30.11.2016 23:06 #2
Ну и? Етим Ви присвоили значение 0 выводу P1_7. Что дальше?
Оценка
Гуру
 
Регистрация: 13.05.2006
Сообщений: 3,908
Репутация: 1247
1,234 65
61 33
 
01.12.2016 10:23 #3
Дааааа......
Ну где то вы должны сделать #include "s8252.h" где s8252 (АТ89S8252) - модель микроконта, а файл хедера содержит описалово его регистров, портов и т.п.
Например :
Цитата:
/*------------------------------------------------------------------------------*/
sbit RD = 0xB7;
sbit WR = 0xB6;
sbit T1 = 0xB5;
sbit T0 = 0xB4;
sbit INT1 = 0xB3;
sbit INT0 = 0xB2;
sbit TXD = 0xB1;
sbit RXD = 0xB0;

sbit P37 = 0xB7;
sbit P36 = 0xB6;
sbit P35 = 0xB5;
sbit P34 = 0xB4;
sbit P33 = 0xB3;
sbit P32 = 0xB2;
sbit P31 = 0xB1;
sbit P30 = 0xB0;
затем можно извращаться дальше и дойти вот до такого
#define Beeper_Port P37
#define Sound_ON() Beeper_Port=0
#define Sound_OFF() Beeper_Port=1
Получили много текста и 2 "мощные" функции для управления пищалкой.
Это кейл. В других средах могут быть незначительные отличия
И на кой хрен этот огород городить ?
Последний раз редактировалось LEAS; 01.12.2016 в 10:29.
Оценка
Специалист
 
Регистрация: 21.05.2007
Адрес: Москва
Сообщений: 475
Репутация: 212
174 59
14 2
 
01.12.2016 19:31 #4
Цитата:
Сообщение от LEAS
#define Beeper_Port P37
#define Sound_ON() Beeper_Port=0
#define Sound_OFF() Beeper_Port=1
Получили много текста и 2 "мощные" функции для управления пищалкой.
Это кейл. В других средах могут быть незначительные отличия
И на кой хрен этот огород городить ?
А по моему очень даже неплохо. Если в проекте не только пищалка, но и множество других линий, которые надо дергать по-отдельности, почему бы не обозначить их псевдофункциями. Места в коде не занимает, на производительность программы не влияет, а удобство даёт.

Кроме того, управлять ножками просто, если компилятор позволяет управлять ножками по-отдельности. На AVR вообще приходится использовать конструкции вида:
#define BeepOn() PORTA |= (1<<BEEP_PIN)
#define BeepOff() PORTA &= ~(1<<BEEP_PIN)
А при оптимизации компилятор уже заменит эту конструкцию на одну ассемблерную команду.
Оценка
Ответ
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход
Электронные компоненты. Бесплатная доставка по России
Часовой пояс GMT +3, время: 17:06.
Обратная связь РадиоЛоцман Вверх