Проектирование системы 8-канального автоответчика (цифровой дисплей) на основе микроконтроллера, моделирования и кода.
Проектирование системы 8-канального автоответчика (цифровой дисплей) на основе микроконтроллера, моделирования и кода.

требования к дизайну

1) Автоответчик может использоваться для одновременного участия 8 игроков или 2 команд-представителей, что представлено 8 кнопками S0-S7 соответственно;

2) Установите переключатель управления очисткой системы и ответом S, который контролируется хостом;

3) Автоответчик имеет функции фиксации и отображения. То есть игрок нажимает кнопку, чтобы зафиксировать соответствующий номер, и номер игрока, отвечающего в приоритетном порядке, будет сохраняться до тех пор, пока хост не очистит систему;

4) Автоответчик имеет функцию ответа по времени, время одного ответа устанавливается хостом (например, 30 секунд и т. д.). Когда ведущий нажимает кнопку «Старт», таймер отсчитывает обратный отсчет и динамик издает короткий звук, который длится около 0,5 с;

5) Участники отвечают в течение установленного времени. Если ответ верный, таймер перестает работать. Номер игрока и время ответа отображаются на дисплее и остаются до тех пор, пока ведущий не очистит систему.

6) Если никто не ответит по истечении времени таймера, ответ будет недействительным, система подаст сигнал тревоги и запретит отвечать, а на дисплее времени отобразится 00;

7) Разрабатывать методы программирования программного обеспечения и писать исходный код;

8) Используйте Proteus для моделирования и Altium Designer для рисования принципиальной схемы и печатной платы;

Обзор

В этой статье описывается состав, конструкция и функции схемы восьмиканального автоответчика с цифровым дисплеем. Помимо основной функции автоответчика, автоответчик также имеет функции синхронизации и будильника. Ведущий устанавливает время для ответов на вопросы с помощью переключателя предварительной настройки времени, и система завершает автоматический обратный отсчет.

Если кто-то ответит в течение указанного времени, отсчет времени автоматически остановится. Если никто не ответит в течение указанного времени, в системе прозвучит звуковой сигнал, сообщающий хосту, что ответ в этом раунде недействителен, и сработает функция сигнализации. будет реализовано. Если время ответа будет превышено, ответ будет недействительным.

Эта система использует 51 микроконтроллер в качестве всего ядра управления. Система управления в основном состоит из: модуля дисплея, модуля управления, модуля сигнализации и модуля ответа.

При работе система вводит ответный сигнал через матричную клавиатуру. После обработки микроконтроллером она выводит управляющий сигнал. Для завершения функции дисплея используется 4-значная цифровая трубка, а для разрешения используются кнопки. игроки должны отвечать на вопросы. На цифровой трубке показано, какая группа первой отвечает на вопрос, таким образом реализуя весь процесс ответа.

Схема моделирования Proteus

Принципиальная схема и печатная плата

Анализ результатов моделирования

Загрузите файл «Eight-way Responder.hex» в микроконтроллер 51 и нажмите, чтобы запустить. После инициализации программы восьмистороннего автоответчика на цифровой трубке отображается: ----. Дождитесь ввода ключа модератора.

Нажмите кнопку «Хост», на цифровой трубке отобразится: 00-0. В это время вы можете установить время отсчета времени с помощью клавиш «Тайминг +» и «Тайминг -». В этом примере мы установили время синхронизации на 30 секунд.

Нажмите кнопку «Модератор» еще раз, раздастся звуковой сигнал, начнется обратный отсчет, и 8 участников смогут начать отвечать на вопросы. Предположим, что участник № 3 успевает ответить в отведенное время. В это время подсчет прекращается, на цифровой трубке отображается оставшийся счет и текущий номер игрока, при этом загорается соответствующий светодиод №3.

Когда до окончания обратного отсчета останется 5 секунд, и если участник все еще не ответит, раздастся непрерывный звуковой сигнал. Если таймер закончится и никто не ответит, на цифровой трубке отобразится: 00-0; нажмите кнопку «Модератор», на цифровой трубке отобразится: ----; снова нажмите кнопку «Модератор», на дисплее отобразится 30-. 0; если без изменения времени отсчета, нажмите кнопку «Модератор» еще раз, и начнется новый раунд отсчета.

Если до того, как ведущий начнет отсчитывать время, то есть до того, как начнется ответ, кто-то торопится ответить. Предположим, что участник №2 спешит ответить. В это время на цифровой трубке отображается: FF-2, раздается звуковой сигнал и загорается красный светодиод №2. После того, как игрок совершил фол и ответил, он нажимает кнопку «хост», зуммер выключается, на цифровой трубке отображается: 00-0, ведущий устанавливает время и начинается снова.

Часть кода C

Язык кода:c
копировать
void scan(void)
{	
	uchar qiangda_num=0;
	//Ключ модератора
	if(key_zhu==0)		   //Кнопка нажата
	{
		delayms(7);		   //отображение дребезга
		if(key_zhu==0&&zhu_f!=2&&qiang_f==0&&wan_f==0)//Определяем, есть ли фол или началась спешка с ответом или спешка с ответом завершилась
		{
			zhu_f++;	   //Оценка этапа соревнования +1
			if(zhu_f==2)   //Игра официально начинается
			{
				TR0=1;	   //Игра начинается, запускаем таймер
				wan_f=0;   //Снимаем флаг завершения игры
				bajing();  //Запрос на начало игры
			}			
		}
		else
			if(key_zhu==0&&qiang_f==1)   //Определяем, есть ли фол
			{
				buzz=1;					 //сбросить тревогу
				qiang_f=0;				 //Снимаем флаг ответа
				number=0;				 //Очистить номер игрока
				time=EEPROM_read(0x2000);//Перечитываем сохраненное общее время ответа
				led_kongzhi(0,0,0);
			}
			else						 
				if(key_zhu==0&&wan_f==1) //Определяем, завершил ли кто-то это
				{
					buzz=1;				 //сбросить тревогу
					wan_f=0;			 //Снимаем флаг завершения
					number=0;			 //Очистить номер игрока
					time=EEPROM_read(0x2000);//Перечитываем сохраненное общее время ответа
					led_kongzhi(0,0,0);
				}
				else
					if(key_zhu==0&&zhu_f==2) //Приостановить игру
					{
						TR0=0;				 //Закрытие тайминга
						zhu_f=1;			 //Возвращаемся к этапу настройки игрового времени
						bajing();			 //Предложение поставить игру на паузу
					}
		while(!key_zhu);//Обнаруживаем отпускание клавиши
	}

Содержание ресурса

(1) Полная версия дипломной работы по проектированию системы восьмистороннего автоответчика на базе 51 микроконтроллера;

(2) файл моделирования Proteus;

(3) файлы программы Keil C;

(4) Список компонентов;

(5) Блок-схема Visio;

(6)Принципиальная схема и печатная платадокумент;

Скриншот ресурса

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.