На основе микроконтроллера PIC 16F877разработать устройство моделирующее работу микросхемы типа
К155ИР8(К555ИР8) -восьмиразрядный сдвиговый регистр с последовательным входом и параллельными выходами
Ребят дали задание,а я что-то не шарю совсем.
Программу нужно навоять на Сях. а потом проверить в MpLab'е .
облазил много каких сайтов,но нигде ничего интересного не нашел.
Ребят кто может - напишите код на Си.
Страница 1 из 1
На Основе Микроконтроллера Pic 16F877Разработать Код на Си
#2
Отправлено 09 Январь 2012 - 17:56
Т-е нужен обычный "бегущий огонь" запускаемый кнопкой? Таких программ пруд пруди.
Вот пример для PIC18
#include "pic18.h"
__CONFIG(1, 0x02FF);
__CONFIG(2, 0x0EFF);
__CONFIG(4, 0xFF80);
#define knopka RB7 // кнопка
unsigned long i; // Создаём 4-х байтную переменную для управление временем задержки
void delay(unsigned long pause)// Функция задержки
{
while(pause>0) { pause--; } // Пока переменная i больше ноля
}
void main(void)
{
TRISB = 0b10000000; // направление работы ножек порта В
PORTB=0; // очищаем порт Б
for(;
{
if(knopka==0) // если кнопка нажата
{
delay(200); // Вызываем задержку
if(knopka==0) // если кнопка нажата
{
if(PORTB==0)// Проверяем порт на 0,
{
PORTB=1; // и если равен, то пишем туда 1-чку
}
delay(1000); // Вызываем задержку
PORTB = PORTB<<1; // Двигаем порт влево на 1 позицию
}
}
}
}
Вот пример для PIC18
#include "pic18.h"
__CONFIG(1, 0x02FF);
__CONFIG(2, 0x0EFF);
__CONFIG(4, 0xFF80);
#define knopka RB7 // кнопка
unsigned long i; // Создаём 4-х байтную переменную для управление временем задержки
void delay(unsigned long pause)// Функция задержки
{
while(pause>0) { pause--; } // Пока переменная i больше ноля
}
void main(void)
{
TRISB = 0b10000000; // направление работы ножек порта В
PORTB=0; // очищаем порт Б
for(;
{
if(knopka==0) // если кнопка нажата
{
delay(200); // Вызываем задержку
if(knopka==0) // если кнопка нажата
{
if(PORTB==0)// Проверяем порт на 0,
{
PORTB=1; // и если равен, то пишем туда 1-чку
}
delay(1000); // Вызываем задержку
PORTB = PORTB<<1; // Двигаем порт влево на 1 позицию
}
}
}
}
Поделиться темой:
Страница 1 из 1