0 / 0 / 3
Регистрация: 10.11.2015
Сообщений: 35
1

Светофор на микроконтроллере 8051

15.06.2018, 12:21. Показов 2160. Ответов 2

Author24 — интернет-сервис помощи студентам
Написал программу на ассемблере, которая реализует светофор, однако при переключении светофора с красного цвета к зеленому красный и желтый должны одновременно загораться и гаснуть, а я сделал так, что загорается красный, гаснет, загорается желтый, гаснет, загорается зеленый.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
org 0000h
jmp main
 
org 000bh                       ;обработчик прерывания таймера 0 расположен по адресу 0x0b
clr tr0                         ;останавливаем таймер
jnb ACC.1, oth                  ;проверяем горит ли желтый 
    jnb F0, rg1                 ;если да, то проверяем в какую сторону двигается светофор
        RR A                    ;если к красному, то сдвигаем вправа
        clr F0                  ;меняем направление
        jmp proc_int0           ;переходим к настройке таймера
rg1:RL A                        ;если к зеленому, то сдвигаем влево
    setb F0                     ;меняем направление
    jmp proc_int0               ;переходим к настройке таймера
    ;если желтый не горит, то делаем все тоже самое, но без смены направления
oth:jnb F0, rg2
        RR A
        jmp proc_int0
rg2:RL A
    jmp proc_int0
proc_int0:mov TMOD,#00000001b   ;
     mov TH0, #HIGH(-1000)      ;настройка таймера
     mov TL0, #LOW(-1000)       ;
mov TCON,#00010000b             ;
mov P0, A                       ;передача значения на порт
reti
 
org 40h
main:       
setb ea                     ;разрешаем прерывания
setb et0                    ;разрешаем прерывания от таймера
clr F0                      ;бит F0 показывает в какую сторону движется светофор, 1 - от зеленого к красному, 0 - наоборот
mov A, #00000001b           ;заносим в аккумулятор начальное значение(красный цвет)
mov P0, A                   ;передаем на порт Р0
mov TMOD,#00000001b         ;устанавливаем таймер в 16 битный режим
    mov TH0, #HIGH(-1000)   ;устанавливаем на 1 мс
    mov TL0, #LOW(-1000)    ;столько будет гореть каждый цвет
mov TCON,#00010000b         ;запускаем таймер
 
jmp $                       
end
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.06.2018, 12:21
Ответы с готовыми решениями:

Светофор: прямоугольник и три окружности. При нажатии нужной клавиши светофор должен загораться нужным светом
Ребят, подскажите пожалуйста, что не так в программе. Условие: Нарисуйте светофор: прямоугольник и...

Светофор/Светофор с таймером/Сигнализация на дверь
Нужна помощь по написанию кодов (Светофор/Светофор с таймером/Сигнализация на дверь) в программе...

Освещение на микроконтроллере
Добрый день, уважаемые! Мне необходимо сделать аварийное освещение на микроконтроллере со...

Компьютер на микроконтроллере
Иногда хочется чего-то простого и своего, путь примитивное как ZX, но на базе современных чипов....

Диммер на микроконтроллере
Доброго времени суток! Надеюсь на вашу помощь. Собрал диммер по схеме с сайта...

2
пофигист широкого профиля
4732 / 3167 / 858
Регистрация: 15.07.2013
Сообщений: 18,247
18.06.2018, 02:12 2
Цитата Сообщение от genreator Посмотреть сообщение
Написал программу на ассемблере, которая реализует светофор, однако при переключении светофора с красного цвета к зеленому красный и желтый должны одновременно загораться и гаснуть
. Странное желание. Но увы код, который вы где-то нарыли делает совсем другое. Он реализует алгоритм нормального светофора.
0
1176 / 653 / 111
Регистрация: 15.05.2012
Сообщений: 4,012
18.06.2018, 10:15 3
Цитата Сообщение от genreator Посмотреть сообщение
Написал
В чём проблема написать так, как надо?
0
18.06.2018, 10:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.06.2018, 10:15
Помогаю со студенческими работами здесь

Будильник на микроконтроллере
Помогите пожалуйста, хочу сделать систему напоминания на микроконтроллере. Работаю на ATmega8. В...

Таймер на микроконтроллере
помогите пожалуйста составить схему электрическую структурную таймера

Радиоуправление на микроконтроллере
Привет, хочу собрать передатчик с приемником на микроконтроллере, нашел схемку...

Зарядное устройство на микроконтроллере
Друзья, у кого есть програмка ассемблеровская для зарядного устройства любого типа аккумулятора на...

Зарядное устройство на микроконтроллере
Есть универсальное зарядное устройство на PIC16F74 для любых аккумуляторов от Ni-Cd (1,5В) до...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru