49864 (609339), страница 3

Файл №609339 49864 (Устройство управления системой измерения веса) 3 страница49864 (609339) страница 32016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

PositionPort = DigitNmb(i)

}

4. Листинг программы

Файл ind.h

//== Include files =================================

#include

#define PortBMask 0xFF

//== Common declarations ============================

#define SymbolPort PORTB

#define SegA 1 // aa

#define SegB 2 // f b

#define SegC 4 // f b

#define SegD 8 // gg

#define SegE 16 // e c

#define SegF 32 // e c

#define SegG 64 // dd

#define Dig0 SegA + SegB + SegC + SegD + SegE + SegF + 0

#define Dig1 0 + SegB + SegC + 0 + 0 + 0 + 0

#define Dig2 SegA + SegB + 0 + SegD + SegE + 0 + SegG

#define Dig3 SegA + SegB + SegC + SegD + 0 + 0 + SegG

#define Dig4 0 + SegB + SegC + 0 + 0 + SegF + SegG

#define Dig5 SegA + 0 + SegC + SegD + 0 + SegF + SegG

#define Dig6 SegA + 0 + SegC + SegD + SegE + SegF + SegG

#define Dig7 SegA + SegB + SegC + 0 + 0 + 0 + 0

#define Dig8 SegA + SegB + SegC + SegD + SegE + SegF + SegG

#define Dig9 SegA + SegB + SegC + SegD + 0 + SegF + SegG

#define DigMinus SegA + SegB + SegC + SegD + 0 + SegF + SegG

#define PositionPort PORTD

#define Position0 0

#define Position1 1

#define Position2 2

#define Position3 3

#define AllDigitsOFF 4

#define DigitNmb = [254, 253, 251, 247]

//== Global Variables =========================

unsigned char BufSeg[4];

unsigned char BufBCD[4];

void Bin2BCD_4Digit (unsigned int data);

//== Convert binary char into 7 Segment Code =============

unsigned char Bin2Seg (unsigned char data)

{

switch(data)

{

case 0: return Dig0;

case 1: return Dig1;

case 2: return Dig2;

case 3: return Dig3;

case 4: return Dig4;

case 5: return Dig5;

case 6: return Dig6;

case 7: return Dig7;

case 8: return Dig8;

default: return Dig9;

}

}

//== Convert 4 digits from BinBuf[] into SegBuf[] ============

void Bin2Seg_4Digit (void)

{

unsigned char i;

for(i=0;i<4;i++)

{

BufSeg[3-i] = Bin2Seg(BufBCD[i]);

}

}

//== Convert int value into 4 Digits of SegBuf[] ==============

void Bin2BCD_4Digit (unsigned int data)

{

unsigned char i;

for(i=0;i<4;i++)

{

BufBCD[i] = data % 10;

data /= 10;

}

}

//== Show the next Digit ================

void Ind (void)

{

unsigned char i;

for(i=0;i<4;i++)

{

PositionPort = AllDigitsOFF;

SymbolPort = BufSeg(i);

PositionPort = DigitNmb(i)

}

}

Файл main.c

//== Include files =========================

#include

#include

#include

#include "ctype.h"

#include "stdlib.h"

//== Common declarations ==========================

#define Tmr0_Reload 1;

#define PrescalerTmr0 4; // timer0 counts clk/256

#define PrescalerTmr1 5; // timer1 counts clk/1024

#define comp_t1 36000-1; // coBnaDeHie 1ro taimepa

//== Global Variables ==========================

unsigned char Tmr0Flag;

unsigned char Tmr1Flag;

unsigned char Tmr0Cnt;

unsigned char NewPortSignal;

unsigned char RealSignal;

unsigned char kol_otg;

//== Port Initialisation ===================================

void Init(void)

{

DDRA = 0xff; //Port A pins as output

PORTA = 0x00; //Send 0xFF to PortA output pins

DDRC = 0; //Port C pins as input

PORTC = 0xfe; //Turn ON PullUP for PortC pins

#asm("cli")

TIMSK = (1 << TOIE0)|(1 << OCIE1A); //Enable Timer0 & Timer1 Interrupt

TCNT0 = Tmr0_Reload;

TCCR0 = PrescalerTmr0;

#asm("sei")

}

//== Time wate ====================================

void Time_wate(void)

{

#asm("cli")

TCCR1B = PrescalerTmr1;

OCR1A = comp_t1;

#asm("sei")

while (Tmr1Flag == 0)

{}

}

//== CheckButton ====================================

void CheckButton (void)

{

unsigned char b;

static char OldPortSignal;

static char OldOldPortSignal;

NewPortSignal = PINC&1; //select PC0 - START_button

b = PINC&7; //select PC1,PC2 - bunker sensors

if((NewPortSignal != OldPortSignal) & (NewPortSignal != 0)) // Positive front found

{RealSignal = (NewPortSignal ^ OldPortSignal) ^ OldOldPortSignal;

OldOldPortSignal = OldPortSignal;

OldPortSignal = RealSignal;

if(b) //bunker CLOSED!

{

PORTA=0x01; //PA0 - transporter ON!

Time_wate(); //wate 5 sec!

Tmr1Flag = 0;

PORTA=0x03; //PA0&PA1 - bunker OPEN!

}

}

}

//== Main Procedure =====================

void main(void)

{

Init();

while(1)

{

unsigned char c;

if (Tmr0Flag)

{

Tmr0Flag=0;

Tmr0Cnt++;

if(Tmr0Cnt>10)

{

Tmr0Cnt=0;

CheckButton();

}

}

c = PINC&4; //select PC3 - overflow signal from WE2108

if(c)

{

PORTA=0x07; //PA2 - bunker CLOSE!

Time_wate(); //wate 5 sec!

Tmr1Flag = 0;

PORTA=0x00; //PA0 - tranporter OFF!

}

kol_otg++;

Bin2BCD_4Digit(kol_otg);

Bin2Seg_4Digit();

Ind ();

}

}

//== Interrup vectors ===============================

interrupt [TIM0_OVF] void TIMER0_OVF_interrupt(void)

{

TCNT0=Tmr0_Reload;

Tmr0Flag = 1;

}

interrupt [TIM1_COMPA] void TIMER1_COMP_interrupt(void)

{

Tmr1Flag = 1;

#asm("cli")

TCCR1B = 0;

#asm("sei")

}

//==End =========================================

5. Проектирование печатной платы устройства

Для разводки печатной платы была использована программа LayoutPlus пакета OrCad. Данная программа позволяет производить разводку печатных плат, как в автоматическом режиме, так и в ручном.

Схему необходимо создавать таким образом, что бы на ней не оставалось ни одного свободного входа/выхода или висячего провода. Необходимо убрать все вспомогательные компоненты схемы (источники тока, напряжения, генераторы и другие), и прописать в свойствах компонентов раздела Footprint тип корпуса.

В установках LayoutPlus выставляется количество слоев, ширина дорожек, расстояние между дорожками, между дорожками и контактными площадками, угол поворота дорожек. Затем производится разводка в автоматическом режиме, создается координатная сетка, и проставляются размеры.

В результате была получена печатная плата, показанная в приложении Б.. Плата изготавливается из фольгированного стеклотекстолита толщиной 1 - 5 мм. Все отверстия на плате должны быть металлизированы

Заключение

В данном курсовом проекте была разработана устройство управления системой измерения веса, построенном на микроконтроллере ATmega16 фирмы Atmel.

Микроконтроллер принимает сигналы от датчиков веса и управляет ленточным транспортером и бункером, тем самым, обеспечивая автоматическое взвешивание груза дозированными порциями.

Для устройства управления в пакете OrCad была разработана печатная плата.

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

Приложение

Характеристики

Тип файла
Документ
Размер
1,73 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7026
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее