Торговые весы

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

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид курсовая работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.