![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 23.12.2011
Сообщений: 2
|
![]()
Кароче задача следующая.
Нам (подгруппе из 3 человек) на учёбе дали задание написать код для работы со светодиодами (7 штук) и кнопкой.А именно необходимо чтобы диоды загорались один за другим в одну сторону с 1 по 7 ,и так всё время,а по нажатию кнопки меняли направление загорания. Вот примерный код, здесь просто диоды горят один за другим по очереди с небольшой задержкой,в всё время в одну сторону,ну как я понял. list p=16f887 #include p16f887.inc x EQU 020h y EQU 021h z EQU 022h ORG 0000h GOTO INIT ORG 0100h INIT BSF STATUS,RP0 ;переключиться в первый банк памяти CLRF TRISD ;все разряды порт D работают на выход BCF STATUS,RP0 ;переключиться обратно в нулевой банк памяти CLRF PORTD ;очистить порт Д MAINLOOP LOOP1 BSF PORTD,7 ;установить 0 разряд в порт D CALL DELAY BCF PORTD,7 ;сбросить 0 разряд в порт D CALL DELAY2 INCFSZ y,F GOTO LOOP1 LOOP2 BSF PORTD,7 BCF PORTD,6 CALL DELAY BCF PORTD,7 BSF PORTD,6 CALL DELAY2 DECFSZ y,F GOTO LOOP2 LOOP3 BSF PORTD,6 BCF PORTD,5 CALL DELAY BCF PORTD,6 BSF PORTD,5 CALL DELAY2 DECFSZ y,F GOTO LOOP3 LOOP4 BSF PORTD,5 BCF PORTD,4 CALL DELAY BCF PORTD,5 BSF PORTD,4 CALL DELAY2 DECFSZ y,F GOTO LOOP4 LOOP5 BSF PORTD,4 BCF PORTD,3 CALL DELAY BCF PORTD,4 BSF PORTD,3 CALL DELAY2 DECFSZ y,F GOTO LOOP5 LOOP6 BSF PORTD,3 BCF PORTD,2 CALL DELAY BCF PORTD,3 BSF PORTD,2 CALL DELAY2 DECFSZ y,F GOTO LOOP6 LOOP7 BSF PORTD,2 BCF PORTD,1 CALL DELAY BCF PORTD,2 BSF PORTD,1 CALL DELAY2 DECFSZ y,F GOTO LOOP7 LOOP8 BSF PORTD,1 BCF PORTD,0 CALL DELAY BCF PORTD,1 BSF PORTD,0 CALL DELAY2 DECFSZ y,F GOTO LOOP8 LOOP9 BSF PORTD,0 BCF PORTD,7 CALL DELAY BCF PORTD,0 BSF PORTD,7 CALL DELAY2 DECFSZ y,F GOTO LOOP2 DELAY MOVF y,W MOVWF x DELAY_LOOP MOVLW .128 MOVWF z DECFSZ z,F GOTO $-1 DECFSZ x,F GOTO DELAY_LOOP RETURN DELAY2 COMF y,W MOVWF x DECFSZ x,F GOTO $-1 RETURN END Помогите решить данную проблему,да именно проблему поскольку я практически ничего не смыслю в ассемблере, а изучать его уже нет времени. И по возможности объясните каждый шаг, может я тогда наконец-то пойму хотя бы приблизительно как всё это работает. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с матрицами (норма матрицы, работа со строками) | Neitrosha | Помощь студентам | 1 | 26.11.2010 20:19 |
Задача. Работа с псевдослучайными последовательностями (ПСП). Работа с цветом. | 0101 | Помощь студентам | 3 | 17.12.2009 23:57 |
Работа с webbrowser - Фреймы, работа с конкретным феймом в фрейме | NewDelphi | Фриланс | 2 | 08.10.2009 11:00 |