Торговые весы
Проектирование цифрового устройства "Торговые весы" на основе микропроцессоров. Применение датчика весов, который имитируется потенциометром, формирующим аналоговый сигнал. Разработка алгоритма работы торговых весов, программного кода для микропроцессора.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 11.12.2020 |
Размер файла | 722,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение высшего образования
“Московский технологический университет” МИРЭА
Институт радиотехнических и телекоммуникационных систем
Кафедра радиоприемных устройств
КУРСОВАЯ РАБОТА
по дисциплине “Цифровые устройства и микропроцессоры”
Тема курсовой работы “Торговые весы”
Студент группы РССО-1-13
Пересторонин Дмитрий
Руководитель курсовой работы
Кандидат технических наук, доцент А.Н. Богаченков
Москва 2016
ЗАДАНИЕ
на выполнение курсовой работы
1.Тема “ Торговые весы ”
2.Исходные данные:
3.Перечень вопросов, подлежащих разработке, и обязательного графического материала:
4.Срок представления к защите курсовой работы: до « » 2016 г
Текст задания
Торговые весы
В устройстве применен тензометрический датчик с параметрами: максимальный вес -- 10 кг; минимальный измеряемый вес -- 10 г; ошибка измерений -- 0,05%; выходной сигнал при использовании измерительного преобразователя -- 0…10 В. Весы имеют символьный дисплей для отображения названия товара, веса, цены единицы веса, стоимости взвешиваемой продукции, клавиатуру для ввода кода товара. Предусмотреть средства для переоценки существующих товаров и добавления в память параметров новых.
Практическое задание. Датчик весов имитируется потенциометром, формирующим аналоговый сигнал. На дисплей выводятся: название товара, вес, цена единицы веса, общая стоимость. С помощью кнопок осуществляется выбор товара из заранее предустановленных. Диапазон измерений, названия, цены определить самостоятельно.
Внешний вид
Инструкция
цифровой торговые весы микропроцессор
При помещении товара в чашу весов, датчик веса начинает измерять его вес. Далее посредству смещения джойстика вниз выбирается одна из 15 ячеек для товаров. При нажатии на джойстик товар выбирается, и стоимость рассчитывается на основе весовой цены выбранного товара. Для изменения цены или названия товара необходимо «долистать» до него джойстиком и нажать вправо. Затем выбрать необходимую строку для измерения цены или названия и нажать джойстик. После этого с клавиатуры необходимо ввести новые данные и нажать на джойстик. Для отмены нажмите влево. Для добавления нового товара выберите ячейку с надписью «добавить новый товар», и заполните ее по принципу аналогичному изменению данных о товаре.
Функциональная схема
В данном устройстве основой является процессор STM32F407. К нему подключен датчик веса через порт РС.
Органами управления являются джойстик и клавиатура. Джойстик подключен к 5 портам PG, а клавиатура к 13 портам PF. При нажатии клавиши на соответствующий разряд порта поступает сигнал логического "0". Подтяжка разрядов до логической "1" осуществляется встроенными в процессор резисторами.
В качестве устройства вывода выступает графический дисплей
При каждом нажатии кнопки или смещении джойстика для исключения дребезга приводится в действие следующий цикл
Пример выдачи результата на экран
Текст программы
Для работы программы используются файлы stm32f4xx_conf.h, lcd.h, adc.с и main.с
Файл adc.с является библиотечным и поэтому раскрываться здесь не будет.
Файл main.с приведен ниже.
//---------------------------------------------------------------------------
//
// КУРСОВАЯ РАБОТА
// Торговые весы
// Copyright (C) 2016 МИРЭА
// Выполнил Пересторонин Дмитрий РССО-1-13
//
// Программа имитирует принцип работы торговых весов. Весы имеют 5 торговых позиций, переключаемых // джойстиком.
//---------------------------------------------------------------------------
#include "stm32_p407.h" //Файл конфигурации отладочной платы STM32-P407
#include "adc.h" //Функции для работы с АЦП
#include "lcd.h" //Функции для работы с дисплеем
#define AVERAGE 200 //Число усреднений данных с АЦП
//-------------------------------------------------------------------
// ГЛАВНАЯ ФУНКЦИЯ
int main()
{
long AdcData; //Суммированные данные с АЦП
unsigned short UData16; //Приведенный смещенный (беззнаковый) код
short Data16; //Приведенный дополнительный (знаковый) код
int Average = 1; //Текущее число усреднений
int i; //Текущая переменная цикла
int price1=70; //Цена бананов за кг
int price2=60; //Цена огурцы за кг
int price3=20; //Цена арбуза за кг
int price4=130; //Цена помидоров за кг
int price5=160; //Цена лимонов за кг
int code=0; //Номер товарной позиции соответствующий цене товара
//Инициализация индикаторов
STM_LEDInit(LED3); STM_LEDOff(LED3);
//Инициализация дисплея
LCD_Init(); LCD_Clear(1);
LCD_FontSize(11);
LCD_FontColor(0x0F0);
LCD_TextPos(1,1); LCD_print("Торговые весы");
LCD_FontColor(0x08F);
LCD_TextPos(1,2); LCD_print("Вес(кг). Цена.");
LCD_TextPos(1,5); LCD_print(" цена за кг ");
LCD_FontColor(0xFFF);
//Инициализация и первичный запуск АЦП
ADC_Initialize(ADC2, ADC_Channel_10, 0);
ADC_SoftwareStartConv(ADC2);
//Цикл в основной программе
while (1)
{
//Указание выбранной товарной позиции
if (STM_PBGetState(BUTTON_RIGHT))
{ Average = AVERAGE;
code=2;
LCD_TextPos(1,4); LCD_print(" Огурцы ");
}
if (STM_PBGetState(BUTTON_LEFT))
{ Average = AVERAGE;
code=1;
LCD_TextPos(1,4); LCD_print(" Бананы ");
}
if (STM_PBGetState(BUTTON_DOWN))
{ Average = AVERAGE;
code=3;
LCD_TextPos(1,4); LCD_print(" Арбуз ");
}
if (STM_PBGetState(BUTTON_UP))
{ Average = AVERAGE;
code=4;
LCD_TextPos(1,4); LCD_print(" Помидоры ");
}
if (STM_PBGetState(BUTTON_SEL))
{ Average = AVERAGE;
code=5;
LCD_TextPos(1,4); LCD_print(" Лимоны ");
}
//Цикл по измерениям
for (i = Average, AdcData = 0; i > 0; i--)
{
while (!ADC_GetFlagStatus(ADC2, ADC_FLAG_EOC)); //Ожидание окончания преобразования
AdcData += ADC_GetConversionValue(ADC2); //Ввод и суммирование показаний
ADC_SoftwareStartConv(ADC2); //Новый запуск преобразования
Delay_ms(1);
}
//Преобразование кода с АЦП
UData16 = AdcData / Average; //Вычисление среднего
//Вывод результатов на дисплей
if (code==1)
{
Data16 >>= 4; UData16 >>= 4; //Имитация выравнивания вправо
LCD_TextPos(1,3); LCD_print("%1.2f", UData16*10.1/4095); //Вес в кг
LCD_TextPos(10,3); LCD_print("%1.2f", UData16*10.1*price1/4095); //Цена
LCD_TextPos(4,6); LCD_print("%5d", price1); //Стоимость 1 кг продукта
}
if (code==2)
{
Data16 >>= 4; UData16 >>= 4; //Имитация выравнивания вправо
LCD_TextPos(1,3); LCD_print("%1.2f", UData16*10.1/4095); //Вес в кг
LCD_TextPos(10,3); LCD_print("%1.2f", UData16*10.1*price2/4095); //Цена
LCD_TextPos(4,6); LCD_print("%5d", price2); //Стоимость 1 кг продукта
}
if (code==3)
{
Data16 >>= 4; UData16 >>= 4; //Имитация выравнивания вправо
LCD_TextPos(1,3); LCD_print("%1.2f", UData16*10.1/4095); //Вес в кг
LCD_TextPos(10,3); LCD_print("%1.2f", UData16*10.1*price3/4095); //Цена
LCD_TextPos(4,6); LCD_print("%5d", price3); //Стоимость 1 кг продукта
}
if (code==4)
{
Data16 >>= 4; UData16 >>= 4; //Имитация выравнивания вправо
LCD_TextPos(1,3); LCD_print("%1.2f", UData16*10.1/4095); //Вес в кг
LCD_TextPos(10,3); LCD_print("%1.2f", UData16*10.1*price4/4095); //Цена
LCD_TextPos(4,6); LCD_print("%5d", price4); //Стоимость 1 кг продукта
}
if (code==5)
{
Data16 >>= 4; UData16 >>= 4; //Имитация выравнивания вправо
LCD_TextPos(1,3); LCD_print("%1.2f", UData16*10.1/4095); //Вес в кг
LCD_TextPos(10,3); LCD_print("%1.2f", UData16*10.1*price5/4095); //Цена
LCD_TextPos(4,6); LCD_print("%5d", price5); //Стоимость 1 кг продукта
}
}
}
Заключение
В результате выполнения курсовой работы мною был разработан алгоритм работы торговых весов. Был пройден практически весь путь разработки устройства от ТЗ до написания кода программы, пусть и упрощенного.
Список литературы
1. А.Н. Богаченков. Процессоры с ядром ARM в лабораторном практикуме и курсовом проектировании
2. А.Н. Богаченков Краткие сведения о программировании на Си
3. Тревор Мартин Ознакомительное руководство по ARM-микроконтроллерам Cortex-M3
Размещено на Allbest.ru
...Подобные документы
Разработка медицинских весов высокой точности для статистических измерений массы тела человека. Основные принципы преобразования давления в электрический сигнал. Расчет емкости аккумулятора. Работа микроконтроллера и анализ составляющих погрешностей.
курсовая работа [1,3 M], добавлен 12.03.2012Рассмотрение устройства простейшего проволочного тензорезистора. Изучение основных параметров микросхемы АЦП HX711. Выбор датчика, микропроцессора и дисплея. Разработка алгоритма работы программы, программы устройства и выбор языка программирования.
курсовая работа [1,5 M], добавлен 26.07.2022Принцип действия электронных весов, их структурная, функциональная и принципиальная электрические схемы, выполненные на современной элементной базе. Общая характеристика основных электрических параметров таких микросхем как - КР142ЕН5А, КР572ПВ2, К153УД2.
курсовая работа [32,2 K], добавлен 18.06.2010Принцип действия устройства - цифровых весов для взвешивания вагонов. Расчет первичного, нормирующего и аналого-цифрового преобразователя. Выбор мультиплексора и микроконтроллера. Передача информации через порты. Управление микроконтроллером с компьютера.
дипломная работа [776,4 K], добавлен 20.10.2010Рассмотрение общего вида весов. Анализ возможностей моделей Штрих-Принт. Описание функционально-цифровой клавиатуры, дисплея. Изучение правил установки нового рулона с этикетками. Распечатка обычной этикетки. Ошибки, возникающие в основном режиме работы.
презентация [752,1 K], добавлен 01.02.2016Разработка и описание общего алгоритма функционирования цифрового режекторного фильтра на основе микропроцессорной системы. Обоснование аппаратной части устройства. Отладка программы на языке команд микропроцессора. Расчёт быстродействия и устойчивости.
курсовая работа [266,1 K], добавлен 03.12.2010Разработка структурной схемы устройства. Изучение принципиальной электрической схемы устройства с описанием назначения каждого элемента. Характеристика программного обеспечения: секции деклараций, инициализации микропроцессора и основного цикла.
курсовая работа [260,3 K], добавлен 14.11.2017Применение аналого-цифровых преобразователей (АЦП) для преобразования непрерывных сигналов в дискретные. Осуществление преобразования цифрового сигнала в аналоговый с помощью цифроаналоговых преобразователей (ЦАП). Анализ принципов работы АЦП и ЦАП.
лабораторная работа [264,7 K], добавлен 27.01.2013Разработка и обоснование общего алгоритма функционирования устройства. Выбор однокристального микропроцессора повышенной производительности. Написание управляющей программы на языке микропроцессора. Расчет амплитудно-частотной характеристики фильтра.
курсовая работа [113,8 K], добавлен 04.12.2010Проектирование устройства, измеряющего температуру в помещении. Выбор датчика температуры, микроконтроллера и отладочной платы. Изучение работы встроенного датчика температуры. Разработка программного обеспечения. Функциональная организация программы.
курсовая работа [2,0 M], добавлен 26.12.2013Разработка и выбор функциональной схемы датчика электромагнитного расходомера. Формирование и исследование аналоговой, цифровой схемы. Расчет блока питания устройства. Порядок разработки алгоритма работы и программного обеспечения микроконтроллера.
курсовая работа [1,9 M], добавлен 19.08.2012Разработка общего алгоритма и функционирования цифрового фильтра. Составление и описание электрической принципиальной схемы устройства, расчет его быстродействия. Листинг программного модуля вычисления выходного отсчета. Оценка устойчивости устройства.
курсовая работа [236,2 K], добавлен 03.12.2010Разработка принципиальной электрической схемы на базе микропроцессора. Механизм работы устройства, его зависимость от сигналов, приходящих на микроконтроллер от датчиков присутствия человека в помещении. Выбор датчика присутствия. Расчет параметров реле.
курсовая работа [491,6 K], добавлен 03.04.2017Описание принципа действия аналогового датчика и выбор его модели. Выбор и расчет операционного усилителя. Принципа действия и выбор микросхемы аналого-цифрового преобразователя. Разработка алгоритма программы. Описание и реализация выходного интерфейса.
курсовая работа [947,1 K], добавлен 04.02.2014Разработка общего алгоритма функционирования цифрового фазового звена. Расчет аппаратной части устройства и написание программы на языке микропроцессора. Составление принципиальной схемы блока. Порядок расчета амплитудно-частотной характеристики фильтра.
курсовая работа [197,8 K], добавлен 03.12.2010Разработка алгоритма функционирования устройства. Разработка и отладка рабочей программы на языке команд микропроцессора. Составление и описание электрической принципиальной схемы. Расчет АЧХ устройства для заданных и реальных значений коэффициентов.
курсовая работа [313,9 K], добавлен 28.11.2010Логические основы цифровой техники, типы сигналов. Анализ, разработка и синтез логических схем; мультиплексоры. Принцип аналого-цифрового преобразования информации. Конструктивные и функциональные модули микропроцессоров для персонального компьютера.
курс лекций [1,8 M], добавлен 28.06.2013Проектирование устройства преобразования цифровой информации в аналоговую и наоборот для цифрового магнитофона. Описание используемых интегральных микросхем. Разработка структурной и принципиальной схемы цифрового канала звукозаписи без кодера и декодера.
курсовая работа [1,8 M], добавлен 18.10.2010Разработка цифрового устройства для контроля арифметической операции сдвига влево с вычислением контрольного кода по модулю, которое включает в себя операционный блок и управляющее устройство. Проектирование триггера, дешифратора, логических элементов.
курсовая работа [399,3 K], добавлен 17.02.2013Структура и основные направления деятельности НПО "Мостовик". Производительность, принцип работы бетоносмесительной установки фирмы Stetter. Загрузка и разгрузка смесителя. Электромеханические весы для взвешивания отдельных компонентов бетонной смеси.
отчет по практике [1,5 M], добавлен 14.10.2009