Novato na interface de interrupção 89C51 precisa de ajuda!

S

semiconductor

Guest
Eu estou projetando uma porta automática usando AT89C51 e eu estou enfrentando um problema sério que eu não posso resolvê-lo. Estou usando 2 interrupção externa para limitar a porta. No modo normal, o interruptor de limite de forçar o primeiro pino 0 de interrupção de nível baixo e a porta está fechada. Se o sensor detecta pessoa entrar, ele vai abrir e o interruptor de limite segundo está mudando seu estado, é uma interrupção ocorreu e o pino de uma interrupção é em nível baixo, o motor está parado (o pino de uma interrupção é sempre em nível baixo e apenas alterar seu estado para alta quando o sensor percebe que a pessoa está fora da porta (a porta está fechando) Tenho a intenção de configuração de interrupção 2 está caindo de ponta interromper conduzido. Mas há algo de errado com isso. Meu programa não pode iniciar corretamente! ( interromper 0 / interromper uma permanecer baixo nível depois de cair de ponta ocorrer! Qualquer coisa de errado com isso? eu preciso lhe conselhos para completar o meu projeto! Obrigado!
 
Parece muito complexo. Apenas deixe o controlador de ler o status dos sensores (incluindo posição da porta e detecção de pessoas) usando as interrupções externas. seguido de processo para accionar o motor. É uma máquina de estado finito.
 
Interrupções são usados, principalmente, quando você quer reagir rapidamente para um evento externo. Você pode ter a opções em sua aplicação. Ou você é a pesquisar os portos (INT0, INT1) periodicamente ou você usa interrupção. Sondagem pode ser utilizado periodicamente receber uma interrupção a partir de um temporizador, ou apenas em um ciclo de sondagem no SW. Quanto mais tarde for o caso, quando fazemos a principal do programa não tem nada a fazer além de assistir os sensores e agir em conformidade. Eu vejo, que a sua aplicação pode ser feita com o caso mais recente e mais simples. Claro, se você quer aprender manipulação de interrupção que você pode fazer isso, mas, nesse caso, você precisa especificar mais claramente o que você quer dizer com Dio
interrupção 0 / interromper uma permanecer baixo nível depois de cair de ponta ocorrer
. O que quer dizer com isso? O sensor de força de 0 a ainda a INT0. É esse o caso, a única coisa que é o uso de um flip-flop RS com SET ligado a uma porta e RESET ligado ao sensor. Em seguida, a partir da interrupção hadnler você pode definir o INT0 para o nível 1. É claro que a próxima interrupção ocorre apenas quando o sensor tem mais uma vez um flanco descendente (o que significa que, por vezes, antes deve ter uma borda de subida também).
 
Oi, Adicione um pouco de hardware adicional e salvar o seu tempo. Adicionar FFs adicionais para atrair e reter a eventos externos, então leia este FFs periodicamente com rotina apropriada no circuito principal e tomar medidas approprate em outra rotina. Sistema de interrupção 89C51 não é tão rápido e bom como algumas arquiteturas mais recentes (ARM). Usar pesquisa com algum hardware adicional, em vez de interrupção puras soluções de software orientado.
 
u pode detectar P1.0 e P1.1 estado, a não utilização de interrupção isso pode ser mais facilmente
 

Welcome to EDABoard.com

Sponsor

Back
Top