Описание
[Краткое Описание]
Размер: длина 150 мм, ширина 122 мм и высота 25 мм
2. Основные фишки: STC89C52RC один микрокомпьютер
3. Рабочее напряжение: 24 вольт
В-четвертых, MCU параллельный порт загрузки линии и USB для загрузки линии загрузки. (Стандарт 10-pin Интерфейс загрузки может использоваться)
5. Характеристики: 1. Индикация источника питания.
2. восьмисторонняя фотоэлектрическая изоляция приводит к сигналу.
3. восьмистороннее выходное реле управления оптической изоляцией
Стандартный кварцевый генератор 11,0592 М.
5. Он имеет сброс питания и ручной сброс.
6. Поддержка AT89SXX серия MCU.
7. С функцией отключения питания, чип 24C08.
8. Входной канал имеет светодиодный индикатор.
9. выходные восемь каналов имеют светодиодный ную индикацию.
10, 8-way 24 V реле управления, контрольное оборудование.
11. Управляемое 220 В/10A оборудование переменного тока.
12. Он имеет функцию серийной связи (которая может управляться ПК).
6. Подробные инструкции
7. предоставление соответствующих программ
Предоставление рутинов и учебных материалов
[Примечания по входной части]
[Тесты процедур]
/********************************************************************************************************************
Район Технология
Функции реализации: эта версия процедуры сопоставления
Использование чипа: STC89C52RC
Кварцевый генератор: 11,0592 МГц
Скорость передачи данных: 9600
Компилятор среды: Keil
Автор: fenglongmeng
[Декларация] эта программа предназначена только для обучения и ознакомления. Укажите авторское право и авторскую информацию при цитировании!
***********************************************************************************************************************************/
/********************************************************************************************************************
MCU и ПК используйте 9-контактный последовательный порт, MAX232 связи, скорость передачи данных по умолчанию 9600.
Таблица шестнадцатеричного кода, отправленная ПК-приемником MCU, является следующей:
01, полное открытие: ПК передает 0xFF; MCU возвращается 0XFF;
02. Quan Guan: ПК передает 0X00; MCU возвращается 0X00;
03, первый способ открыт: ПК передает 0x01; MCU возвращается 0X01;
Второй способ открыт: ПК передает 0x02; MCU возвращается 0X02;
05, Третий способ открытия: ПК передает 0x03; MCU возвращается 0X03;
06, четвертый способ открытия: ПК передает 0x04; MCU возвращается 0X04;
07, пятый путь открыт: ПК передает 0x05; MCU возвращается 0X05;
08, 6-й способ открытия: ПК передает 0x06; MCU возвращается 0X06;
09, 7-й способ открытия: ПК передает 0x07; MCU возвращается 0X07;
10. Откройте 8-й маршрут: ПК передает 0x08; MCU возвращается 0X08;
11. Первый пропуск: ПК передает 0xFE; MCU возвращается 0XFE;
12. Второй проход: ПК передает 0xFD; MCU возвращается 0XFD;
13. Третий пропуск: ПК передает 0xFC; MCU возвращается 0XFC;
Четвертый пропуск: ПК передает 0xFB; MCU возвращается 0XFB;
15. Маршрут 5: ПК передает 0xFA; MCU возвращается 0XFA;
16. Маршрут 6: ПК передает 0xF9; MCU возвращается 0XF9;
17. Маршрут 7: ПК передает 0xF8; MCU возвращается 0XF8;
18. Пройти 8: ПК передает 0xF7; MCU возвращается 0XF7;
19. Запрос входного статуса: ПК передает 0x55; MCU возвращает выходной статус (значение возврата гексадецимальное);
20. Запрос состояния вывода: ПК передает 0xAA; MCU возвращает выходной статус (значение возврата гексадецимальное);
21. Выходной счётчик-команда: ПК передает 0X11; MCU возвращается 0x11;
***********************************************************************************************************************************/
# Включают
# Define uchar неподписанный char/макроопределение неподписанный Тип
# Define uint unsigned int/Макрос определяет Неподписанные целые числа
/********************************************************************************************************************
Начальная определение
***********************************************************************************************************************************/
Uchar sj;/храните значения данных
Бит напишите = 0;/напишите логотип 24C08;
Uchar dat = 0xee;/используется для хранения содержимого отправляющего буферного регистра SBUF, полученного MCU
/* Определить 8 бит как порт P2 MCU */
Sbit K1 = P2 ^ 0;
Sbit K2 = P2 ^ 1;
Sbit K3 = P2 ^ 2;
Sbit K4 = P2 ^ 3;
Sbit K5 = P2 ^ 4;
Sbit K6 = P2 ^ 5;
Sbit K7 = P2 ^ 6;
Sbit K8 = P2 ^ 7;
/* Определить восемь битов в P1 порт MCU */
Sbit IN0 = P1 ^ 0;
Sbit IN1 = P1 ^ 1;
Sbit IN2 = P1 ^ 2;
Sbit IN3 = P1 ^ 3;
Sbit IN4 = P1 ^ 4;
Sbit IN5 = P1 ^ 5;
Sbit IN6 = P1 ^ 6;
Sbit IN7 = P1 ^ 7;
/********************************************************************************************************************
24C08 драйвер для чтения и записи
***********************************************************************************************************************************/
Sbit SCL = P3 ^ 6;/24C08 SCL
Sbit ПДД = P3 ^ 7;/24C08 SDA
Void delay1 (uchar х)
{
Uint я;
Для (i = 0; I)
;
}
Пустая вспышка () {;}
Void x24c08_init ()/24c08 Инициализация subroutine
{
Scl = 1;
Вспышка ();
ПДД = 1;
Вспышка ();
}
Void start ()/start (I-C) автобус
{
SDA = 1; flash (); SCL = 1; flash (); SDA = 0; flash (); SCL = 0; flash ();
}
Void stop ()/stop (I-C) автобус
{
SDA = 0; flash (); SCL = 1; flash (); SDA = 1; flash ();
}
Void writex (uchar j)/пишите байт
{
Uchar i, температура;
Температура = j;
Для (i = 0; I <8; I + +)
{
Temp = temp <1; SCL = 0; flash (); SDA = CY; flash (); SCL = 1; flash ();
}
SCL = 0; flash (); SDA = 1; flash ();
}
Uchar readx ()/считывает байт
{
Uchar i, j, k = 0;
SCL = 0; вспышка (); SDA = 1;
Для (i = 0; I <8; I + +)
{
Вспышка (); SCL = 1; вспышка ();
If (sda = 1) j = 1;
Else j = 0;
K = (k <1) | j;
Scl = 0;}
Вспышка (); возврат (k);
}
Void clock ()/(I square C) Линейные часы
{
Неподписанный чар I = 0;
SCL = 1; вспышка ();
While (sda = 1) & amp; (i <255) I + +;
SCL = 0; вспышка ();
}
/********************************************************************************************************************
Считывание байта данных с адреса 24C08
***********************************************************************************************************************************/
Неподписанный char x24c08_read (неподписанный char адрес)
{
Неподписанные символ я;
Start (); writex (0xa0);
Часы (); writex (адрес);
Часы (); Старт ();
Writex (0xa1); часы ();
I = readx (); stop ();
Delay1 (10);
Возврат (I);
}
/********************************************************************************************************************
Напишите байт данных на адрес 24C08
***********************************************************************************************************************************/
Void x24c08_write (неподписанный char адрес, неподписанный char информация)
{
EA = 0;
Start (); writex (0xa0);
Часы (); writex (адрес);
Часы (); writex (информация);
Часы (); стоп ();
EA = 1;
Delay1 (50);
}
/********************************************************************************************************************
Задержка функций
***********************************************************************************************************************************/
Пустая задержка (uchar t)
{
Uchar I, J;
Для (i = 0; I)
{
Для (j = 13; J> 0; J --);
{
}
}
}
/********************************************************************************************************************
Функция: Инициализация серийного порта, скорость передачи данных 9600, режим 1
***********************************************************************************************************************************/
Void Init_Com (void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
/********************************************************************************************************************
Полученные данные суждение Функция
***********************************************************************************************************************************/
Chuankou ()
{
Switch (dat)/получение данных
{
Uchar K;
K = 10;
Case 0xff: P2 = 0X00; delay (k); SBUF = dat; dat = 0xee; write = 1; break;/full open
Case 0x00: P2 = 0XFF; delay (k); SBUF = dat; dat = 0xee; write = 1; break;/customs
Case 0x01: K1 = 0; delay (k); SBUF = dat; dat = 0xee; write = 1; break;/first open
Дело 0x02: K2 = 0; задержка (k); SBUF = dat; dat = 0xee; Написать = 1; перерыва;/второй способ открыть
Case 0x03: K3 = 0; delay (k); SBUF = dat; dat = 0xee; write = 1; break;/third way open
Дело 0x04: K4 = 0; задержка (k); SBUF = dat; dat = 0xee; Написать = 1; перерыва;/четвертого пути открытым
Case 0x05: K5 = 0; delay (k); SBUF = dat; dat = 0xee; write = 1; break;/Fifth Open
Дело 0x06: K6 = 0; задержка (k); SBUF = dat; dat = 0xee; Написать = 1; перерыва;/шестой способ открыть
Дело 0x07: K7 = 0; задержка (k); SBUF = dat; dat = 0xee; Написать = 1; перерыва;/7th способ открыть
Чехол 0x08: K8 = 0; задержка (k); SBUF = dat; dat = 0xee; Написать = 1; перерыва;/8th открытым
Case 0xFE: K1 = 1; delay (k); SBUF = dat; dat = 0xee; write = 1; break;/First Pass
Чехол 0xFD: K2 = 1; задержка (k); SBUF = dat; dat = 0xee; Написать = 1; перерыва;/втором проходе
Case 0xFC: K3 = 1; delay (k); SBUF = dat; dat = 0xee; write = 1; break;/Third Pass
Чехол 0xFB: K4 = 1; задержка (k); SBUF = dat; dat = 0xee; Написать = 1; перерыва;/4th пройти
Case 0xFA: K5 = 1; delay (k); SBUF = dat; dat = 0xee; write = 1; break;/Fifth Pass
Чехол 0xF9: K6 = 1; задержка (k); SBUF = dat; dat = 0xee; Написать = 1; перерыва;/шестой пройти
Чехол 0xF8: K7 = 1; задержка (k); SBUF = dat; dat = 0xee; Написать = 1; перерыва;/7th пройти
Чехол 0xF7: K8 = 1; задержка (k); SBUF = dat; dat = 0xee; Написать = 1; перерыва;/пройти 8
Чехол 0x55: SBUF = P1; задержка (k); dat = 0xee; перерыва;/узнать состояние входа
Case 0xAA: SBUF = P2; delay (k); dat = 0xee; write = 1; break;/Read output State
Case 0x11: P2 = ~ P2; delay (k); SBUF = dat; dat = 0xee; write = 1; break;/вывод инверсии
По умолчанию: break;/выпрыгивание
}
}
/********************************************************************************************************************
Основные функции
***********************************************************************************************************************************/
Основными недействительным ()
{
Init_Com ();/Инициализация сериала
X24c08_init ();/Инициализация 24C08
SJ = x24c08_read (2);/считывает сохраненные данные, назначенные dat
P2 = sj;/передаем сохраненные данные портам P2
В то время как (1)
{
Chuankou ();/функция получения данных
Если (RI)/Сканируйте, чтобы определить, получены ли данные,
{
Dat = SBUF;/получение данных SBUF назначает dat
RI = 0;/RI очистка.
}
If (write = 1)/определите, приурочен ли таймер на одну секунду
{
Write = 0;/ноль
SJ = P2;/присвойте значение порта P2 dat
X24c08_write (2, sj);/запись данных dat в адресе 2 из 24C08
}
}
}
/********************************************************************************************************************
Конец
***********************************************************************************************************************************/
Реализации функции:
Реализуйте верхний компьютер (компьютер), чтобы управлять реле, отправлять различные коды, управлять соответствующим реле (см. программу для получения подробной информации).
Он имеет функцию отключения питания, то есть после отключения питания, мощность восстановлена, и реле выводит состояние до отключения питания.
[Фото показать]
Характеристики
- Материал
- +









