Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Вопрос по C для MCS51

Непрочитано 07.06.2007, 11:43  
aversI
Прописка
 
Регистрация: 23.03.2005
Адрес: Россия, г. Абакан
Сообщений: 109
Сказал спасибо: 0
Сказали Спасибо 22 раз(а) в 7 сообщении(ях)
aversI на пути к лучшему
По умолчанию Вопрос по C для MCS51

Вопрос, конечно глупый, но тем не менее:
как считать ножки порта (Р0) в С (придумали же язык чтоб я парился ) ?
В ассме всё очевидно - запись в защёлку считывание с выходов...
Реклама:
aversI вне форума  
Непрочитано 07.06.2007, 12:24  
avr123-nm-ru
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

kurs8051.narod.ru там много примеров и KEIL.com
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 07.06.2007, 12:39  
um
Прописка
 
Регистрация: 16.01.2007
Сообщений: 104
Сказал спасибо: 0
Сказали Спасибо 8 раз(а) в 6 сообщении(ях)
um на пути к лучшему
По умолчанию

// в IAR
char v = P0_bit.P0X; // где X - номер контакта
um вне форума  
Непрочитано 07.06.2007, 14:17  
aversI
Прописка
 
Регистрация: 23.03.2005
Адрес: Россия, г. Абакан
Сообщений: 109
Сказал спасибо: 0
Сказали Спасибо 22 раз(а) в 7 сообщении(ях)
aversI на пути к лучшему
По умолчанию

avr123-nm-ru
там всё на ассемблере


um
А это не чтение защёлки?
aversI вне форума  
Непрочитано 07.06.2007, 18:20  
avr123-nm-ru
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

Сообщение от aversI
avr123-nm-ru
там всё на ассемблере
А если ВНИМАТЕЛЬНО посмотреть ? Это часто помогает.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 07.06.2007, 22:10  
mrKirill
Вид на жительство
 
Аватар для mrKirill
 
Регистрация: 12.04.2007
Сообщений: 339
Сказал спасибо: 2
Сказали Спасибо 34 раз(а) в 30 сообщении(ях)
mrKirill на пути к лучшему
По умолчанию

CodeVision AVR например так будет

char a = PINX.Y // X - порт, Y - номер бита
mrKirill вне форума  
Непрочитано 08.06.2007, 11:57  
tauP10
Почётный гражданин KAZUS.RUN
 
Регистрация: 26.08.2006
Сообщений: 1,404
Сказал спасибо: 1
Сказали Спасибо 89 раз(а) в 69 сообщении(ях)
tauP10 на пути к лучшему
По умолчанию на Кейле выглядит так

Код:
  40          uchar putN (uchar c)
  41          {ACC=c; 
  42   1      while (TI==0) {}
  43   1       TI=0;
  44   1       P3_3=0;    // разрешили выход  (:7 процика)
  45   1       SBUF=ACC;
  46   1      
  47   1      while (TI==0) {}
  48   1      
  49   1      delay100u();  // чтоб не глушился стоп-бит
  50   1       P3_3=1;    // закрыли выход  (:7 процика)
  51   1      return c;
  52   1      }
************************************************** ****
то что выше компилируется следующим образом:
********************************
Код:
             ; FUNCTION _putN (BEGIN)
;---- Variable 'c' assigned to Register 'R6' ----
0000 AE07              MOV     R6,AR7
                                           ; SOURCE LINE # 40
                                           ; SOURCE LINE # 41
0002 EE                MOV     A,R6
0003         ?C0011:
                                           ; SOURCE LINE # 42
0003 3099FD            JNB     TI,?C0011
0006         ?C0012:
                                           ; SOURCE LINE # 43
0006 C299              CLR     TI
                                           ; SOURCE LINE # 44
0008 C2B3              CLR     P3_3
                                           ; SOURCE LINE # 45
000A F599              MOV     SBUF,A
000C         ?C0013:
C51 COMPILER V6.00i TESTLINE                                                               10/27/2006 18:18:29 PAGE 5   

                                           ; SOURCE LINE # 47
000C 3099FD            JNB     TI,?C0013
000F         ?C0014:
                                           ; SOURCE LINE # 49
000F 120000      R     LCALL   delay100u
                                           ; SOURCE LINE # 50
0012 D2B3              SETB    P3_3
                                           ; SOURCE LINE # 51
0014 AF06              MOV     R7,AR6
                                           ; SOURCE LINE # 52
0016         ?C0015:
0016 22                RET     
             ; FUNCTION _putN (END)
tauP10 вне форума  
Непрочитано 09.06.2007, 13:10  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,394
Сказал спасибо: 2,016
Сказали Спасибо 1,356 раз(а) в 591 сообщении(ях)
nml на пути к лучшему
По умолчанию

Сообщение от mrKirill
CodeVision AVR например так будет
char a = PINX.Y // X - порт, Y - номер бита
Речь шла о 51 семействе. В нем нету раздельных регистров на ввод и вывод, сам порт построен по схеме открытого коллектора и для того, чтобы пин был входом, надо просто записать в соотв. бит порта 1 - получится что-то типа "подтяжки" на Vcc, и эту линию порта можно безболезненно замыкать на 0. А читается - тот же бит порта, в который и пишется.
nml вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подскажите новичку по MCS51 Diamanten Микроконтроллеры, АЦП, память и т.д 6 10.11.2008 09:29
MCS51 Espert Микроконтроллеры, АЦП, память и т.д 8 18.03.2008 16:45
Набор подпрограмм (MCS51) для работы с DS1820 stml Микроконтроллеры, АЦП, память и т.д 2 13.11.2007 18:20
Как подключить Flash-карту к MCS51 (например AT89S8252)? Алеша Попович Микроконтроллеры, АЦП, память и т.д 0 18.04.2005 07:39


Часовой пояс GMT +4, время: 05:39.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.