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

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Результат поиска


Наименование:


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

Информация:

Тип работы: Курсовик. Предмет: Схемотехника. Добавлен: 17.04.2010. Сдан: 2010. Уникальность по antiplagiat.ru: --.

Описание (план):


Министерство образования Российской Федерации
Южно-Уральский государственный университет
Кафедра “Цифровые радиотехнические системы”
Пояснительная записка к курсовому проекту
по курсу “Вычислительная техника и информационные технологии”
Тема: “Измеритель расхода топлива”


Нормоконтролер
“____” 200 г.
Руководитель
“____” 200 г.
Автор проекта
студент группы
Проект защищен
с оценкой
_____________________
_____________________
“____” 200 г.
Челябинск
200
Аннотация

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

Введение
1 Анализ технического задания
2 Описание структурной схемы устройства
3 Разработка программы
3.1 Блок схема программы
3.2 Алгоритмы блоков
3.2.1 Алгоритм реализации формул
3.2.2 Алгоритм преобразования в десятичную форму записи
3.2.3 Алгоритм вывода результата на индикатор
3.3 Листинг программы
4 Разработка принципиальной электрической схемы
4.1 Выбор элементов
Заключение
Литература
Введение

Любое транспортное средство не может двигаться без топлива, которое, как известно, стоит денег. Но как узнать, сколько литров на единицу времени или пути сжигает автомобиль. А ведь зная текущий расход топлива, можно легко выбирать стиль езды, экономящий понапрасну сжигаемое топливо, оперативно реагировать на увеличенный расход топлива связанный с поломкой.
Таким образом, устройство, которое наглядно показывает расход топлива автомобилем в данный момент очень удобно, и позволяет упростить многие проблемы автолюбителей.
Современная цифровая техника позволяет на базе микроконтроллеров решать такие задачи, создавать широкий спектр необходимых человеку приборов.
В этом направлении наиболее распространенным до сих является семейство 8-разрядных микроконтроллеров - MCS-51. Именно поэтому в проектировании измерителя расхода топлива будет использован микроконтроллер этого семейства.
1. Анализ технического задания

Требуется разработать измеритель расхода топлива, данные (скорость автомобиля и расход топлива) для которого поступают в виде напряжений. Скорости от 0 до 200 км/час соответствует напряжение от 0 до 10В, и расходу от 0 до 10 мл/с - такое же напряжение. По заданию необходимо выводить на трехразрядный семисегментный индикатор расход топлива в мл/км.
Используем восьми разрядные АЦП для преобразования аналогового си-нала в цифровой. Таким образом, поступающие напряжения будут переведены в двоичные комбинации, которыми будет оперировать микроконтроллер.
Для того чтобы получить расход топлива R в мл/км, нужно воспользоваться следующей формулой
, (1)
где н - расход топлива, мл/с;
х - скорость автомобиля, км/час.
Чтобы перейти от имеющихся двоичных комбинаций, значения которых находятся в диапазоне от 00000000 до 11111111 (от 0 до 255), к величинам скорости и расхода, приходится вводить переводные коэффициенты. Для скорости этот коэффициент равен отношению максимальной скорости (200 км/час) к максимальному значению кода (255). Получим
, (2)
где Кх - значение двоичного кода скорости (от 0 до 255).
Для расхода переводной коэффициент равен отношению максимального расхода (10 мл/c) к максимальному значению кода (255).
, (3)
где Кн - значение двоичного кода расхода (от 0 до 255).
Подставим выражения (2) и (3) в формулу (1), получим следующую формулу
. (4)
По заданию если скорость равна 0, то на индикатор выводится расход топлива в л/час. Чтобы получить расход топлива R в л/час, нужно воспользоваться формулой
. (5)
С учетом выражения (3), имеем
. (6)
Микроконтроллером для вычислений по формулам (4) и (6) используются значения в двоичной форме, соответственно и коэффициенты выражаются в двоичной форме, и результат будет получен также в двоичной форме. Поэтому перед выводом на индикатор, потребуется приведение результата к десятичной форме. Все эти особенности должны учитываться при написании программы.
Предполагается, что для вывода значения расхода топлива, найденного по формуле (4) трехразрядного индикатора вполне хватит. Максимальное выводимое на индикатор значение расхода топлива (999 мл/км) для современных автомобилей является абсурдным, т.е. недостижимым.
Таким образом, для реализации измерителя расхода топлива потребуется микроконтроллер семейства МК51, два АЦП и трехразрядный семисегментный индикатор.
2. Описание структурной схемы устройства

В предыдущем разделе уже оговаривались блоки необходимые для реализации проектируемого устройства. На основании анализа технического задания можно изобразить структурную схему устройства (рисунок 1).
Рисунок 1 - Структурная схема устройства
На рисунке 1 изображены основные блоки проектируемого устройства. АЦП служат для преобразования входного напряжения в двоичный код (оцифровывает аналоговый сигнал). Так у нас два информативных аналоговых сигнала, следовательно, потребуется два АЦП. Микроконтроллер выполняет обработку, полученных с портов данных и выдает результат на индикаторы.
3. Разработка программы

3.1 Блок схема программы

Рисунок 2 - Блок - схема работы программы
Более подробного рассмотрения в виде алгоритмов требуют блоки реализации формул, блок преобразования в десятичную форму записи, блок вывода результата на индикатор. Алгоритмы блоков приведены в следующем подразделе пояснительной записки.
3.2 Алгоритмы блоков

3.2.1 Алгоритм реализации формул

Рисунок 3 - Блок - схема части алгоритма реализации формул
Рисунок 4 - Блок - схема части алгоритма реализации формул
Рисунок 5 - Блок - схема части алгоритма реализации формул
Рисунок 6 - Блок - схема окончания алгоритма реализации формул
3.2.2 Алгоритм преобразования в десятичную форму записи

Рисунок 7 - Блок - схема преобразования в десятичную форму записи
3.2.3 Алгоритм вывода результата на индикатор

Рисунок 8 - Блок - схема части алгоритма вывода результата на индикаторы
Рисунок 9 - Блок - схема части алгоритма вывода результата на индикаторы
3.3 Листинг программы

ORG 00h ; Начало программы.
SJMP TIMER ; Переход на установку таймера.
ORG 1Bh ; Переход на обработку
JMP SELECTOR ; прерывания от таймера.
ORG 30h
TIMER: MOV TMOD, #00010000b ; 1-ый режим работы таймера (16 разрядов).
MOV TCON, #01000000b ; Включение таймера 1.
MOV IE, #10001000b ; Разрешение прерывания от таймера.
MOV TH1, #0FFh ; Задаются старшие и младшие
MOV TL1, #0FFh ; 8 разрядов таймера 1.
MOV R3, #0h ; Значение регистра необходимое для
; перехода к метке START.
V1: SJMP V1 ; Бесконечный цикл.
; Работа с АЦП
START: CLR P1.2 ; Сигнал подается на первый АЦП -
SETB P1.2 ; начало преобразования аналогового
NOP ; сигнала в цифровой.
CLR P1.2
NOP ; Задержка на время преобразования 4,5мкс.
NOP
NOP
NOP
NOP
NOP
CLR P1.3 ; Сигналы /CS и /RD
CLR P1.4 ; (разрешения работы и чтения)
SETB P1.4 ; служат для передачи данных
SETB P1.3 ; с АЦП на порт 3.
MOV 53h, P3 ; Данные с порта (скорость) записываются
; в ячейку памяти.
CLR P1.5 ; Аналогично, сигнал начала преобразования
SETB P1.5 ; для второго АЦП.
NOP
CLR P1.5
NOP
NOP
NOP
NOP
NOP
NOP
CLR P1.6 ; Аналогичные сигналы для передачи
CLR P1.7 ; данных со второго АЦП на 3-ий порт.
SETB P1.7 ;
SETB P1.6
MOV 52h, P3 ; Данные с порта в ячейку (расход топлива).
MOV 50h, #10110100b ; Коэффициент 180 в формуле (4).
MOV A, 53h ; Проверка скорости на равенство нулю и
JZ NULL ; переход в метку NULL при его истинности.
MOV A, 52h ; Реализация по формуле (4)
MOV B, 50h
SJMP ALGORITM ; Переход к реализации формулы.
NULL: MOV 53h, #64h ; Реализация по формуле (6) .
MOV A, 52h
MOV B, #0Eh
; Реализация формул (4) и (6)
ALGORITM: MUL AB ; Произведение или .
MOV 50h, A ; Младший байт произведения.
MOV 51h, B ; Старший байт произведения.
MOV A, B ; Деление старшего байта произведения
MOV B, 53h ; на значение скорости или на 100.
DIV AB
MOV 54h, A ; Целая часть от деления.
MOV 55h, B ; Остаток от деления.
MOV A, 53h ; Деление делителя (значение скорости
MOV B, #0Ah ; или 100) на 10.
DIV AB
MOV 56h, A ; Целая часть от деления делителя на 10.
MOV 57h, B ; Остаток от деления делителя на 10.
JZ HELP ; Если целая часть от деления делителя на 10
; равна нулю, то переход в метку HELP.
MOV A, 57h
MOV B, #4h ; Если остаток от деления делителя на 10 равен
SUBB A, B ; 4, то переход в метку B5.
JZ B5
MOV A, 57h
MOV B, #6h ; Если остаток от деления делителя на 10 равен
SUBB A, B ; 6, то переход в метку B5.
JZ B5
MOV A, #4h ; Если остаток от деления делителя на 10
CJNE A, 57h, C1 ; больше 4, то переход в метку B1.
C1: JC B1
JNC B3 ; Если меньше 4, то в метку B3.
B1: MOV A, #6h ; Если остаток от деления делителя на 10
CJNE A, 57h, C ; больше 6, то переход в метку B7.
C2: JC B7
JNC B2 ; Если равен 5, то в метку B2.
B2: MOV A, 56h ; Получено, что остаток от деления делителя
MOV B, #2h ; на 10 равен 5, тогда целая часть от деления
MUL AB ; делителя на 10 умножается на 2.
MOV 52h, A
INC 52h ; Увеличение результата на 1. (новый делитель)
MOV A, 55h ; Остаток от деления числителя формул
MOV B, 52h ; (4) или (6) делится на новый делитель.
DIV AB
MOV 41h, B ; Остаток от деления на новый делитель.
MOV B, #2h ; Умножение целой части от деления на
MUL AB ; новый делитель на 2.
MOV 57h, A ; В результате получены десятые доли
; деления старшего байта произведения.
MOV A, 41h ; Умножение остатка от деления на новый
MOV B, #2h ; делитель на 2.
MUL AB
MOV B, 52h ; Результат этого умножения снова делится
DIV AB ; на новый делитель и целая часть этого
ADD A, 57h ; деления складывается с десятыми долями
MOV 57h, A ; деления старшего байта произведения.
MOV 56h, 52h
MOV 42h, B ; Остаток последнего деления фиксируется.
SJMP VPERED ; Переход к нахождения сотых долей.
B3: MOV A, #1h ; Если остаток от деления делителя на 10
CJNE A, 57h, C3 ; 0 или 1, то переход в метку HELP_1.
C3: JNC HELP_1
JC B4 ; Если больше 1, то в метку B4.
B4: MOV A, #2h ; Если остаток от деления делителя на 10
CJNE A, 57h, C4 ; равен 2, то переход в метку B5.
C4: JNC B5
JC B6 ; Если равен 3, то в метку B6.
HELP: JMP D_0 ; Переход в метку D_0.
B5: MOV A, 56h ; Если остаток от деления делителя на 10
MOV B, #5h ; равен 2, 4, 6 или 8, тогда целая часть от
MUL AB ; деления делителя на 10 умножается на 5.
MOV 52h, A
MOV A, 57h ; Остаток от деления делителя на 10
MOV B, #2h ; делится на 2 и складывается с предыдущим
DIV AB ; результатом. Получен новый делитель.
ADD A, 52h
MOV 52h, A
MOV A, 55h ; Остаток от деления числителя формул
MOV B, 52h ; (4) или (6) делится на новый делитель.
DIV AB
MOV 41h, B ; Остаток от деления на новый делитель.
MOV B, #5h ; Умножение целой части от деления на
MUL AB ; новый делитель на 5.
MOV 57h, A ; В результате получены десятые доли
; деление старшего байта произведения.
MOV A, 41h ; Умножение остатка от деления на новый
MOV B, #5h ; делитель на 5.
MUL AB
MOV B, 52h ; Результат этого умножения снова делится
DIV AB ; на новый делитель и целая часть этого
ADD A, 57h ; деления складывается с десятыми долями
MOV 57h, A ; деления старшего байта произведения.
MOV 56h, 52h
MOV 42h, B ; Остаток последнего деления фиксируется.
JMP VPERED ; Переход к нахождения сотых долей.
B7: MOV A, #8h ; Если остаток от деления делителя на 10
CJNE A, 57h, C5 ; равен 9, то переход в метку HELP_1.
C5: JC DALEE
JNC B8 ; Если меньше или равен 8, то в метку B8.
B8: MOV A, #7h ; Если остаток от деления делителя на 10
CJNE A, 57h, C6 ; равен 8, то переход в метку B5.
C6: JC B5
JNC B6 ; Если равен 7, то переход в метку B6.
HELP_1: SJMP DALEE ; Переход в метку DALEE.
B6: MOV A, 56h ; Если остаток от деления делителя на 10
MOV B, #3h ; равен 3 или 7, тогда целая часть от
MUL AB ; деления делителя на 10 умножается на 3.
MOV 52h, A
MOV A, #5h ; Полученный результат в случае, если
CJNE A, 57h, RAZD ; остаток от деления делителя на 10 равен 7
RAZD: JC DEL1 ; увеличивается на 2. А если остаток равен
JNC DEL2 ; 3, то - на 1. Получен новый делитель.
DEL1: INC 52h
INC 52h
SJMP RETURN ; Переход в метку RETURN.
DEL2: INC 52h
RETURN: MOV A, 55h ; Остаток от деления числителя формул
MOV B, 52h ; (4) или (6) делится на новый делитель.
DIV AB
MOV 41h, B ; Остаток от деления на новый делитель.
MOV B, #3h ; Умножение целой части от деления на
MUL AB ; новый делитель на 3.
MOV 57h, A ; В результате получены десятые доли
; деление старшего байта произведения.
MOV A, 41h ; Умножение остатка от деления на новый
MOV B, #3h ; делитель на 3.
MUL AB
MOV B, 52h ; Результат этого умножения снова делится
DIV AB ; на новый делитель и целая часть этого
ADD A, 57h ; деления складывается с десятыми долями
MOV 57h, A ; деления старшего байта произведения.
MOV 56h, 52h
MOV 42h, B ; Остаток последнего деления фиксируется.
SJMP VPERED ; Переход к нахождения сотых долей.
D_0: MOV A, 55h ; Если целая часть от деления делителя на
MOV B, #0Ah ; 10 равна нулю, то остаток от деления
MUL AB ; числителя формул (4) или (6) умножается
MOV B, 53h ; на 10 и делится на значение скорости.
DIV AB
MOV 56h, 53h ; Делитель не меняется(значение скорости).
MOV 57h, A ; В результате получены десятые доли
; деления старшего байта произведения.
MOV 42h, B ; Остаток последнего деления фиксируется.
SJMP VPERED ; Переход к нахождения сотых долей.
DALEE: MOV A, #5h ; Остаток от деления делителя на 10
CJNE A, 57h, RAZD2 ; равен 0, 1 или 9. В случае если остаток
RAZD2: JC DEL3 ; равен 9, то целая часть от деления
SJMP RETURN1 ; увеличивается на 1. В противном случае
DEL3: INC 56h ; она не меняется.
RETURN1: MOV A, 55h ; Остаток от деления числителя формул
MOV B, 56h ; (4) или (6) делится на новый делитель.
DIV AB
MOV 57h, A ; В результате получены десятые доли
; деления старшего байта произведения.
MOV 42h, B ; Остаток последнего деления фиксируется.
VPERED: MOV A, #0Ah ; Для нахождения сотых долей деления
MOV B, 42h ; старшего байта произведения, остаток
MUL AB ; предыдущего деления умножается на 10.
MOV 42h, A
MOV A, #0h ; Если данное произведение выходит за
CJNE A, B, OSH ; рамки одного байта, то в целях
OSH: JC OSH1 ; уменьшения погрешности конечного
MOV 58h, #0h ; результата, этот факт учитывается как
SJMP DALSE ; 5 сотых долей.
OSH1: MOV 58h, #5h
DALSE: MOV A, 42h ; Полученное произведение делится на
MOV B, 56h ; делитель.
DIV AB
ADD A, 58h ; Учет 5 сотых (если они есть).
MOV 58h, A ; В результате получены сотые доли
; деления старшего байта произведе и т.д.................


Перейти к полному тексту работы



Смотреть похожие работы


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.