Старый 01.05.2012, 21:53   #1   
Форумец
 
Аватар для Лилии
 
Сообщений: 7
Регистрация: 25.01.2011

Лилии вне форума Не в сети
Курсовая по МПС

Доброго времени суток.
Требуется сделать курсовую по микропроцессорам.
ПО MPlab.
Можно реализовать на С или Assembler.
Вот само задание:

Разработать систему сигнализации.
К порту B подключены выходы датчиков сигнализации.
1 означает срабатывание датчиков, 0 нормальное состояние. В цикле опрашивать порт В и в случае срабатывания передавать в последовательный порт или передатчик USART.

С предложениями в ЛС
  Ответить с цитированием
Старый 01.05.2012, 22:02   #2   
Форумец
 
Аватар для posq
 
Сообщений: 655
Регистрация: 23.10.2010

posq вне форума Не в сети
У меня в МИКТе очень похожая была. Тоже была на С, но т.к. я его не знаю писал на асемблере. Какой контроллер?
Если есть возможность поменять тему то могу отдать свой. Мало ли совпадут.
У меня была тема что то типо: "раз в две минуты опрашивать порт А, если на нем число больше чем заданная константа, то выдать выдать на порт В единицу".
Контроллер p16f73.
  Ответить с цитированием
Старый 01.05.2012, 22:10   #3   
highly mean
 
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35

silly вне форума Не в сети
Цитата:
Сообщение от posq Посмотреть сообщение
Тоже была на С, но т.к. я его не знаю писал на асемблере.
Оригинальный отмаз
  Ответить с цитированием
Старый 01.05.2012, 22:14   #4   
Форумец
 
Аватар для posq
 
Сообщений: 655
Регистрация: 23.10.2010

posq вне форума Не в сети
silly, а какая разница? Все равно же программа потом все на ассемблер переводит. На Си правда легче все говорили, но т.к. я его практически не знал, то писал на своем.
У меня прилично кода получилось, а на С говорили что 20 строк.

А тут наверное в этой задаче все 10. Хотя я хз.

Вот сейчас откапал если кому интересно.
Сорри что флуд развожу.

include p16f73.inc
mlBait equ 0x45 ; Младший байт для хранения числа прерываний (константы)
stBait equ 0x46 ; Старший байт для хранения числа прерываний (константы)
mlRabBait equ 0x47 ; Младший рабочий байт для подсчета количества прерываний
stRabBait equ 0x48 ; Старший рабочий байт для подсчета количества прерываний
Konstanta equ 0x44 ; Константа для сравнения с результатом преобразования АЦП
flag equ 0x52

org 0x00
goto start


org 0x04

bcf flag,0
BTFSC INTCON, T0IF ; Проверяем флаг прерывания от таймера
call PrerivanieTaymera ; Если он установлен, то Запускаем процедуру обработки прерывания от таймера

BTFSC PIR1, ADIF ; Проверяем флаг прерывания от АЦП
call PrerivanieACP ; Если он установлен, то Запускаем процедуру обработки прерывания от АЦП

BCF INTCON,T0IF ; Сбрасываем флаг прерывания от таймера
BCF PIR1, ADIF ; Сбрасываем флаг прерывания от АЦП
retfie

ZapuskACP
bsf ADCON0,2 ; Запускаем АЦП
CLRF mlRabBait
CLRF stRabBait
RETURN

PrerivanieACP

MOVF ADRES,0 ; Пересылаем констану рабочий байт в рабочий регистр (Для сравнения)
SUBWF Konstanta ; Вычитаю из регистра результата работы АЦП (ADRES) рабочий регистр, хранящий константу


BTFSC STATUS, C ; Проверяем результат вычитания
bcf PORTB,1 ; Если бит С равен 1 (т.е. результат преобразования АЦП меньше константы
; (отрицательный результат вычитания))тогда сбрасываем RB1

BTFSS STATUS, C ; Проверяем результат вычитания
bsf PORTB,1 ; Если бит С равен 0 (т.е. результат преобразования АЦП больше константы
; (положительный результат вычитания))тогда устанавливаем RB1

CLRF ADRES ; Очищаем результат работы АЦП
RETURN

PrerivanieTaymera:
BCF STATUS,Z
MOVLW .1 ;
ADDWF mlRabBait,1; Увеличиваем младший рабочий байт (INCF mlRabBait)

BTFSC STATUS,C ; Анализирум бит C
INCF stRabBait ; Если он = 1, то увеличиваем старший рабочий байт на 1

MOVF stRabBait,0 ; Пересылаем старший рабочий байт в рабочий регистр
SUBWF stBait,0 ; Вычитаю из константы (stBait) рабочий регистр, хранящий количество прываний

BTFSS STATUS, Z ; Проверяем результат вычитания
GOTO Dalee ; Если бит Z равен 0 (т.е. вычитание не равно 0) тогда в конец процедуры

BCF STATUS,Z
MOVF mlRabBait,0 ; Пересылаем младший рабочий байт в рабочий регистр
SUBWF mlBait,0 ; Вычитаю из константы (mlBait) рабочий регистр, хранящий количество прываний

BTFSC STATUS, Z ; Проверяем результат вычитания
bsf flag,0 ; Если бит Z равен 1 (т.е. вычитание равно 0) тогда устанавливаем флаг вызова запуска АЦП

Dalee:
BCF STATUS,C ; Очищаем биты C и Z регистра STATUS (BCF STATUS,Z)
RETURN



start: CLRF mlBait
CLRF stBait
CLRF mlRabBait
CLRF stRabBait
CLRF Konstanta
CLRF flag

MOVLW .10 ;
MOVWF Konstanta; Задаем константу

MOVLW .19 ; (+) Записали число 5095(прерываний от таймера) для осчета двух минут
MOVWF stBait;
MOVLW .232 ;
MOVWF mlBait-)

BSF STATUS, RP0 ; (1)(2) Устанавливаем банк 1

BCF TRISB,1; Устанавливаем RB1 на выход

MOVLW .00 ;
MOVWF ADCON1; Устанавливаем RA1 как аналоговый вход

MOVLW .255 ;
MOVWF TRISA ; Устанавливаем portА на Ввод
BCF STATUS, RP0 ; (3) Устанавливаем банк 0
MOVLW .9 ; 00001001
MOVWF ADCON0; Выбор входного канала RA1, Включение АЦП, Выбор источника тактовых импульсов- 00 = Fosc/2(Fosc-частота одной фазы машинного цикла, совпадающая с частотой кварца), Выбор входного канала RA1, Включение АЦП

BSF STATUS, RP0 ; (3) Устанавливаем банк 1
BSF PIE1, ADIE 4) Разрешаем прерывания от АЦП

BCF STATUS, RP0 ; (3) Устанавливаем банк 0
BCF PIR1, ADIF ; Сбрасываем флаг прерываний от АЦП

BSF INTCON, PEIE ; Разрешаем переферийные прерывания


MOVLW .0 +Таймер)
MOVWF TMR0; Запустли таймер
BSF STATUS, RP0 ; Устанавливаем банк 1
MOVLW .7
MOVWF OPTION_REG; Записали в предделитель 7 (предделитель = 256)
BSF INTCON,T0IE ; Разрешаем прерывания от таймера(-Таймер)

BSF INTCON, GIE ; Разрешаем прерывания в системе

BCF STATUS, RP0 ; Устанавливаем банк 0

loop: BTFSC flag,0
call ZapuskACP ; Запускаем АЦП
goto loop

end
  Ответить с цитированием
Старый 01.05.2012, 22:21   #5   
highly mean
 
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35

silly вне форума Не в сети
Да нет, вы меня неправильно поняли, на чем писать курсовую разницы никакой. Просто не знать синтаксис C (на уровне той же курсовой, по крайней мере) практически невозможно.
  Ответить с цитированием
Старый 01.05.2012, 22:23   #6   
Форумец
 
Аватар для posq
 
Сообщений: 655
Регистрация: 23.10.2010

posq вне форума Не в сети
silly, как видите я его вообще не знаю, на данный момент. Последний раз сталкивался года два назад.
Помоги человеку с курсовой, на си это же по моему легче простого. Сравнить и выдать на выход. На асемблере могу написать, но это нужно немножко вспомнить..
  Ответить с цитированием
Старый 01.05.2012, 22:24   #7   
Форумец
 
Аватар для Лилии
 
Сообщений: 7
Регистрация: 25.01.2011

Лилии вне форума Не в сети
posq, Курсовая как раз МИКТовская)
и контролер такой же.
Если не сложно можете прикрепить свой вариант курсовой.
  Ответить с цитированием
Старый 01.05.2012, 22:28   #8   
Форумец
 
Аватар для posq
 
Сообщений: 655
Регистрация: 23.10.2010

posq вне форума Не в сети
Лебедев?
http://rghost.ru/37866374
Само задание не помню. Если пригодится пользуйтесь.
Так же могу помочь с остальными курсяками по ООП, БД, схемотехнике и пр. Но это уже другое))
  Ответить с цитированием
Старый 01.05.2012, 22:31   #9   
Форумец
 
Аватар для Лилии
 
Сообщений: 7
Регистрация: 25.01.2011

Лилии вне форума Не в сети
posq, Он самый) Да есть нужда в перечисленных курсяках) Пишите в ЛС
  Ответить с цитированием
Старый 01.05.2012, 22:47   #10   
Форумец
 
Аватар для posq
 
Сообщений: 655
Регистрация: 23.10.2010

posq вне форума Не в сети
Лилии, в каких именно? У меня сейчас особо времени нет заниматься. ООП и БД нужно много времени уделять т.к. их нужно индивидуально делать. Схемотехника есть мой курсовой сданный на отлично, там исправить только часть где идет расчет схемы, а сама схема красиво разведена, при желании могу переразвести. СПО по моему еще в этом периоде, там простая и муторная реализация.
Что именно то нужно?
Опять я в тему влез, а делать ни хочу)).

По МПС сами разберетесь? Есть возможность тему поменять?
  Ответить с цитированием
Старый 01.05.2012, 22:51   #11   
Форумец
 
Аватар для Лилии
 
Сообщений: 7
Регистрация: 25.01.2011

Лилии вне форума Не в сети
posq, С МПС думаю разберусь. Не сданы только ООП и схемотехника.
  Ответить с цитированием
Старый 01.05.2012, 22:55   #12   
Форумец
 
Аватар для posq
 
Сообщений: 655
Регистрация: 23.10.2010

posq вне форума Не в сети
Лилии, Что за задание по ООП? И какой вариант по схомотехнике?
Могу сделать за определенную плату ООП и переделать свою схемотехнику. Или дать как есть, но вряд ли он ее с прошлого года забыл)).
Кондусов на 3ки какие угодно в конце принимает, а 4ки и 5ки нужно попотеть.
  Ответить с цитированием
Старый 01.05.2012, 23:04   #13   
Форумец
 
Аватар для Лилии
 
Сообщений: 7
Регистрация: 25.01.2011

Лилии вне форума Не в сети
posq, По ООП тема "Графический таймер с обратным отсчетом", а схемотехника 12 вариант
  Ответить с цитированием
Старый 01.05.2012, 23:05   #14   
Форумец
 
Аватар для Лилии
 
Сообщений: 7
Регистрация: 25.01.2011

Лилии вне форума Не в сети
posq, По схемотехнике и 3ки если чесно будет достаточно)
  Ответить с цитированием
Старый 01.05.2012, 23:09   #15   
Форумец
 
Аватар для posq
 
Сообщений: 655
Регистрация: 23.10.2010

posq вне форума Не в сети
Лилии, дайте почту и я тебе скину схемотехнику. Спасибо будет достаточно. При сдаче будешь мило улыбаться и все прокатит. Только там в начале нужно будет пересчитать как в варианте.
Про ООП у меня сейчас времени особо нет, но если больше возможности нет, то могу взятся небескорыстно конечно. Ибо на него нужно времени много. И наш любимый преподаватель любит просить что бы что нибуть переделали в курсовой что бы подтвердить что делали именно вы.
  Ответить с цитированием
Старый 01.05.2012, 23:13   #16   
Форумец
 
Аватар для Лилии
 
Сообщений: 7
Регистрация: 25.01.2011

Лилии вне форума Не в сети
posq, [email protected]
С Юшининым и правда хочеться самой разобраться) Спасибо больше за помощь!)
  Ответить с цитированием
Старый 01.05.2012, 23:19   #17   
Форумец
 
Аватар для posq
 
Сообщений: 655
Регистрация: 23.10.2010

posq вне форума Не в сети
Лилии, скинул, если встретишь меня в институте скажи спасибо.))
Если нужно будет сделать любой курсяк или лабу пиши на почту. Я вроде бы пока на красный иду.)
  Ответить с цитированием
Старый 02.05.2012, 23:23   #18   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,863
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Цитата:
Сообщение от silly Посмотреть сообщение
Оригинальный отмаз
прекращай. я С изучил намного позже чем ассемблер. тут нет абсолютно ничего удивительного.
только в моем случае это был ассемблер Zilog (Z80, Spectrum).
  Ответить с цитированием
Старый 02.05.2012, 23:45   #19   
Registered User
 
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 56

Hopkroft вне форума Не в сети
Цитата:
Сообщение от Spectator Посмотреть сообщение
прекращай.
да нет, правильно подметил. ассемблер по синтаксису сложнее С. это всё равно что школьник который пишет диктант на латыни вместо русского
Мысли вслух конечно, от меня респект!
  Ответить с цитированием
Старый 03.05.2012, 00:08   #20   
highly mean
 
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35

silly вне форума Не в сети
Фраза мне просто показалась забавной (по нынешним временам, конечно). Более подробного обсуждения это не стоит.
  Ответить с цитированием
Старый 03.05.2012, 00:29   #21   
Форумец
 
Аватар для posq
 
Сообщений: 655
Регистрация: 23.10.2010

posq вне форума Не в сети
silly, ну я же знаю асемблер на уровне института, а с Си сталкиваться не приходилось, если придется думаю трудности особой не составит разобраться. Там же только основные команды записи и чтения и стандартные циклы и пр.
  Ответить с цитированием
Старый 03.05.2012, 00:44   #22   
highly mean
 
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35

silly вне форума Не в сети
posq, не зацикливайтесь на этом, у вас все хорошо, процитированное выше предложение я воспринял совершенно отдельно от вашей персоны
  Ответить с цитированием
Старый 03.05.2012, 00:53   #23   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,863
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Цитата:
Сообщение от posq Посмотреть сообщение
silly, ну я же знаю асемблер на уровне института
Собственно, ключевой момент))))
Можно знать идеально С++, и не знать абсолютно простейший (по определению) Basic)
  Ответить с цитированием
Старый 29.05.2012, 00:32   #24   
Форумец
 
Сообщений: 1
Регистрация: 28.04.2012
Возраст: 33

cattsman вне форума Не в сети
not bad! Я бы тоже не отказался от помощи по МПС и ООП =)
  Ответить с цитированием
Старый 29.05.2012, 05:10   #25   
Форумец
 
Аватар для posq
 
Сообщений: 655
Регистрация: 23.10.2010

posq вне форума Не в сети
Давай на следующий год. В этом году у меня диплом. Некогда)
  Ответить с цитированием
Поиск в теме: 



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

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind