Автор работы: Пользователь скрыл имя, 24 Ноября 2013 в 15:05, курсовая работа
Степень интеграции элементов в микросхемах на сегодняшний день очень высока. В результате этого развития появились многофункциональные микросхемы, называемые микроконтроллерами. Они могут объединять себе микропроцессор, АЛУ, порты ввода/вывода, ПЗУ, ОЗУ и т. д. С помощью таких микросхем можно создавать сложные системы управления технологическими процессами. В качестве объектов управления могут быть практически любые устройства, в том числе и трехпозиционные термостаты. Цель данной курсовой работы ознакомиться с устройством микроконтроллера ATmega 128 и получить навыки разработки управляющих устройств. А так же укрепить знания в области программной части микроконтроллера и его программирования.
1. Введение………………………………………………………………………3
2. Содержание задания (исходные данные)…………………………………...4
3. Описание элементов системы……………………………………………….5
3.1 Описание объекта управления……………………………………………..5
3.2. Описание микроконтроллера ATmega128………………………………..5
4. Описание системы индикации……………………………………………...15
4.1 Светодиоды ………………………………………………………………...15
4.2 Описание кнопок…………………………………………………………...15
5. Алгоритм управления………………………………………………………..16
6. Заключение…………………………………………………………………...17
7. Используемая литература……………………………………………………18
На практике ЭС используются, прежде всего, как системы-советчики в тех ситуациях, где специалист сомневается в выборе правильного решения. Экспертные знания, хранящиеся в памяти система, более глубокие и полные, чем соответствующие знания пользователя.
Библиографический список
Приложение А (Концептуальная модель ЭС)
Приложение Б (Протокол консультации с Малой Экспертной Системой)
Протокол консультации с Малой Экспертной Системой
(20.11.2012 22:45:30)
-----------------------
База знаний:
Файл "Косметическая БЗ1.mkb" (свидетельств: 43, исходов: 10)
Пример простой базы знаний с чёткой логикой, решающей задачу выбора.
Какой выбор сделать?
Автор: Наталья Бутакова.
-----------------------
Консультация завершена
Обработанные свидетельства:
1) P (0.00000) вас устраивает цена фена 5 тысяча рублей?
2) P (0.00000) Вы бы хотели фен классический?
3) P (0.00000) вас устраивает цена фена 7 тысяча рублей?
4) P (0.00000) Вы хотите фен черного цвета?
5) P (0.00000) Вы бы хотели фен профессиональный?
6) P (0.00000) Вы хотите размер фена мини?
7) P (0.00000) Вы хотите фен белого цвета?
8) P (0.00000) Вы хотите фен голубого цвета?
9) P (0.00000) Вы бы хотели фен дорожный?
10) P (0.00000) Вас устраивает цена фена 1 тысяча рублей?
11) P (0.00000) Вы хотите фен красного цвета?
12) P (0.00000) Вы хотите фен с тремя температурными режимами?
13) P (0.00000) Вы хотите размер фена макси?
14) P (0.00000) Вы предпочитаете фен с пятью насадками?
15) P (0.00000) вас устраивает цена фена 4 тысяча рублей?
16) P (0.00000) Вы хотите фен синего цвета?
17) P (0.00000) Вы хотите фен мощностью 39Вт?
18) P (0.00000) Вы предпочитаете фен с диффузионными насадками?
19) P (0.00000) Вы хотите фен серебристого цвета?
20) P (0.00000) Вы бы хотели фен с концентратором?
21) P (0.00000) Вы хотите фен с одним температурными режимами?
22) P (0.00000) Вы предпочитаете фен с двумя насадками?
23) P (0.00000) Вы предпочитаете фен с классическими насадками?
24) P (0.00000) Вы хотите фен мощностью 35Вт?
25) P (0.00000) Вас устраивает цена фена 2 тысяча рублей?
26) P (0.00000) Вы хотите фен мощностью 220Вт?
27) P (0.00000) Вы хотите фен мощностью 45Вт?
28) P (0.00000) Вы хотите фен без температурного режима?
29) P (0.00000) Вы хотите фен желтого цвета?
30) P (0.00000) Вы хотите фен мощностью 100Вт?
31) P (0.00000) Вы хотите фен с двумя температурными режимами?
32) P (0.00000) Вы предпочитаете фен с активными насадками?
33) P (0.00000) вас устраивает цена фена 3 тысяча рублей?
34) P (0.00000) Вы хотите фен мощностью 50Вт?
35) P (0.00000) Вам необходим фен для сушки?
-----------------------
Результат консультации:
(0.00137) Babsliss
(0.00024) Boseh
(0.60000) Braun
(0.00051) Braun Satin
- (0.00000) Maxwell
Приложение В (Алгоритм функционирования ЭС)
Приложение Г (Листинг ЭС)
(deffunction question (?q $?v)
(printout t "Вопрос: "?q)
(bind ?a (read))
(if (lexemep ?a) then (bind ?a (lowcase ?a)))
(while (not (member ?a ?v)) do
(printout t "Вопрос: "?q)
(bind ?a (read))
(if (lexemep ?a) then (bind ?answer (lowcase ?a))))
?a)
(deffunction yesno (?q)
(bind ?response (question ?q yes no))
(if (eq ?response no) then TRUE else FALSE))
(deffunction yesno1 (?q)
(bind ?response (question ?q yes no))
(if (eq ?response yes) then TRUE else FALSE))
(defrule r1
(not (audio_yes))
(not (diagnostic ?))
=>
(if (yesno1 "У Вас есть фен?? ") then (assert (audio_yes))
else (assert (diagnostic "Для вас этот тест не подходит!!"))))
(defrule r2
(not (diagnostic ?))
=>
(if (yesno "Нет повышенной скорости обдува? ") then
{}
else (assert (diagnostic "Неисправен диодный мост VD2-VD5?!! Заменить диодный мост!"))))
(defrule r3
(not (diagnostic ?))
=>
(if (yesno " Нет повышенной скорости обдува? ") then
{(assert (diagnostic " Неисправен конденсатор С1?!! Заменить (отключить) конденсатор!"))}
else {}))
(defrule r4
(not (diagnostic ?))
=>
(if (yesno " Нет пониженной скорости обдува? ") then
{(assert (diagnostic " Неисправен диод VD1?!! Заменить диод!"))}
else {}))
(defrule r5
(not (diagnostic ?))
=>
(if (yesno " Нет нагрева одного из ТЭНов? ") then
{}
else (assert (diagnostic " Порвалась нифромовая нить?!! Найти место обрыва и скрутить два конца проволоки!"))))
(defrule r6
(not (diagnostic ?))
=>
(if (yesno " Не включается фен? ") then
{}
else (assert (diagnostic " Нет контакта на переключателях?!! Разобрать переключатели, подчистить спиртом контакты и растянуть прижимающие пружины!"))))
(defrule r7
(not (diagnostic ?))
=>
(if (yesno " Не работает двигатель? ") then
{(assert (diagnostic " Неисправен ТЭН-3?!! Найти место обрыва и скрутить оба конца вместе!"))}
else {}))
(defrule r8
(not (diagnostic ?))
=>
(if (yesno " Не работает двигатель? ") then
{(assert (diagnostic " Неисправен диодный мост VD2-VD5?!! Заменить диодный мост!"))}
else {}))
(defrule r9
(not (diagnostic ?))
=>
(if (yesno " Не работает двигатель? ") then
{}
else (assert (diagnostic " Неисправен двигатель?!! Заменить двигатель!"))))
(defrule r10
(not (diagnostic ?))
=>
(assert (diagnostic1 "Ваш фен работоспособен!!!")))
(defrule system-banner
(declare (salience 1))
(initial-fact)
=>
(printout t crlf crlf)
(printout t "=============================
(printout t crlf)
(printout t "+
(printout t crlf)
(printout t "+ ЭС: Работоспособен ли Ваш фен? +")
(printout t crlf)
(printout t "+
(printout t crlf)
(printout t "=============================
(printout t crlf)
(printout t "Подсказка: на все вопросы нужно отвечать yes или no")
(printout t crlf)
(printout t " регистр ввода ответов значения не имеет.")
(printout t crlf)
(printout t "Внимание: за один запуск система может предоставить")
(printout t crlf)
(printout t " пользователю только одну рекомендацию по")
(printout t crlf)
(printout t " признаку неработоспособности. В случае, если")
(printout t crlf)
(printout t " у фена несколько признаков, то")
(printout t crlf)
(printout t " систему нужно будет последовательно вызывать")
(printout t crlf)
(printout t " несколько раз.")
(printout t crlf))
(defrule print-diagnostic
(declare (salience 1))
(diagnostic ?item)
=>
(printout t crlf crlf)
(printout t "_____________________________
(printout t crlf)
(printout t "Возможная поломка: " ?item)
(printout t crlf crlf))
(defrule print-diagnostic2
(declare (salience 1))
(diagnostic1 ?item1)
=>
(printout t crlf crlf)
(printout t "_____________________________
(printout t crlf)
(printout t "Поломка отсутствует: " ?item1)
(printout t crlf)
)
Информация о работе Разработка микропроцессорного устройства управления