Файл: Проектирование информационной системы по учету выпуска готовой продукции.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 05.07.2023

Просмотров: 96

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введение

В данной курсовой работе предоставлен процесс, проектирование информационной системы по учету выпуска готовой продукции. Объект, по которому будет выполняться курсовая работа, было выбрано предприятие «HuperPC». Так же будут воспроизведены следующие виды работ:

  • Характеристика организации;
  • Информационная модель и её описание;
  • Программное обеспечение задачи;
  • Контрольный пример реализации проекта;

1. Характеристика организации и её деятельности

Компания HyperPC™ широко известна благодаря своим уникальным компьютерам и высокому качеству выпускаемой продукции. Мы являемся лидирующим поставщиком компьютерных решений Hi-End класса. Главное направление деятельности компании HyperPC™ являются изготовление и продажа мощных, надежных и тихих компьютеров. Основной акцент в своей политике мы делаем на сборку именно качественных компьютеров, возможно, не самых дешевых на рынке, но надежно работающих на протяжении многих лет. Современные технологии – это сердце компьютеров Hyper. Мы продолжаем получать новые знания и вкладывать значительные усилия для развития персональных компьютеров в России. Таким образом, мы всегда готовы предложить самые современные инновации в компьютерах.

1.1 Организационная структура управления предприятием

схема управления предприятием

1.2 Выбор комплекса задач автоматизации и характеристика существующих процессов

В данной курсовой работе мною был выбран следующей комплекс задач по проектированию: информационной системы по учету выпуска готовой продукции и последующим занесением её в список товаров при помощи баз данных.

Контекстная диаграмма


структурно – функциональная диаграмма

3. Информационное обеспечение задачи

3.1 Информационная модель и её описание

Область 1: Отражает что администратор управляет ИС. Так же видно что вся документация проходит через ИС.

Область 2: Отображает взаимодействие оператора и данных, т.е. сам процесс работы оператора с отчётными документами (данными)

Область 3: Формирование выходных отчётов в виде баз данных.

Характеристика нормативно справочной, входной и оперативной информации.

В программе используются следующие справочники:

  • Справочник базы данных
  • Справочник клиентов
  • Справочник операций

4. Программное обеспечение задачи

4.1 общие положения (древо функций и сценарий диалога)

Древо функций

Сценарий диалога

4.2Характеристика базы данных

Схема данных

Инфологическая модель базы данных

4.3 Описание программных модулей

Блок-схема

Контрольный пример реализации проекта и его описание


; include derivative specific macros

Include 'MC9S08GB60.inc'

;mPageErase equ $40

;mByteProg equ $20

mFACCERR equ $10

mFPVIOL equ $20

mFCBEF equ $80

; variable/data section

MY_ZEROPAGE: SECTION SHORT

; Insert here your data definition. For demonstration, temp_byte is used.

; temp_byte ds.b 1

; code section

MyCode: SECTION

;**************************************************************

; this assembly routine is called the C/C++ application

DoOnStack: pshx

pshh ;save pointer to flash

psha ;save command on stack

ldhx #SpSubEnd ;point at last byte to move to stack;

SpMoveLoop: lda ,x ;read from flash

psha ;move onto stack

aix #-1 ;next byte to move

cphx #SpSub-1 ;past end?

bne SpMoveLoop ;loop till whole sub on stack

tsx ;point to sub on stack

tpa ;move CCR to A for testing

and #$08 ;check the I mask

bne I_set ;skip if I already set

sei ;block interrupts while FLASH busy

lda SpSubSize+6,sp ;preload data for command

jsr ,x ;execute the sub on the stack

cli ;ok to clear I mask now

bra I_cont ;continue to stack de-allocation

I_set: lda SpSubSize+6,sp ;preload data for command

jsr ,x ;execute the sub on the stack

I_cont: ais #SpSubSize+3 ;deallocate sub body + H:X + command

;H:X flash pointer OK from SpSub

lsla ;A=00 & Z=1 unless PVIOL or ACCERR

rts ;to flash where DoOnStack was called

;**************************************************************

SpSub: ldhx LOW(SpSubSize+4),sp ;get flash address from stack

sta 0,x ;write to flash; latch addr and data

lda SpSubSize+3,sp ;get flash command

sta FCMD ;write the flash command

lda #mFCBEF ;mask to initiate command

sta FSTAT ;[pwpp] register command

nop ;[p] want min 4~ from w cycle to r

ChkDone: lda FSTAT ;[prpp] so FCCF is valid

lsla ;FCCF now in MSB

bpl ChkDone ;loop if FCCF = 0

SpSubEnd: rts ;back into DoOnStack in flash

SpSubSize: equ (*-SpSub)

;**************************************************************

FlashErase: psha ;adjust sp for DoOnStack entry

lda #(mFPVIOL+mFACCERR) ;mask

sta FSTAT ;abort any command and clear errors

lda #mPageErase ;mask pattern for page erase command

bsr DoOnStack ;finish command from stack-based sub

ais #1 ;deallocate data location from stack

rts

;**************************************************************

FlashProg: psha ;temporarily save entry data

lda #(mFPVIOL+mFACCERR) ;mask

sta FSTAT ;abort any command and clear errors

lda #mByteProg ;mask pattern for byte prog command

bsr DoOnStack ;execute prog code from stack RAM

ais #1 ;deallocate data location from stack

rts

;**************************************************************

Также в тексте программного кода на С необходимо директивой #include подключить файл doonstack.h, текст которого представлен ниже.

/**********************************************************************/

/* */

/* Project Name: doonstack.h */

/* Last modified: 04/11/2004 */

/* By: r60817 */

/* */

/* */

/**********************************************************************/

/* */

/* Description: MC9S08GB60_FLASH_DOONSTACK - demo */

/* */

/* */

/* Documentation: MC9S08GB60/D Rev. 2.2 */

/* HCS08RMv1/D Rev. 1(4.8FLASH Application Examples) */

/* */

/* This software is classified as Engineering Sample Software. */

/* */

/**********************************************************************/

/* */

/* Services performed by FREESCALE in this matter are performed AS IS */

/* and without any warranty. CUSTOMER retains the final decision */

/* relative to the total design and functionality of the end product. */

/* FREESCALE neither guarantees nor will be held liable by CUSTOMER */

/* for the success of this project. FREESCALE DISCLAIMS ALL */

/* WARRANTIES, EXPRESSED, IMPLIED OR STATUTORY INCLUDING, BUT NOT */

/* LIMITED TO, IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A */


/* PARTICULAR PURPOSE ON ANY HARDWARE, SOFTWARE ORE ADVISE SUPPLIED */

/* TO THE PROJECT BY FREESCALE, AND OR NAY PRODUCT RESULTING FROM */

/* FREESCALE SERVICES . IN NO EVENT SHALL FREESCALE BE LIABLE FOR */

/* INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT. */

/* */

/* CUSTOMER agrees to hold FREESCALE harmless against any and all */

/* claims demands or actions by anyone on account of any damage, or */

/* injury, whether commercial, contractual, or tortuous, rising */

/* directly or indirectly as a result of the advise or assistance */

/* supplied CUSTOMER in connection with product, services or goods */

/* supplied under this Agreement. */

/* */

/**********************************************************************/

/*

- this file API between main.c and doonstack.asm

*/

#ifndef _doonstack

#define _doonstack

#ifdef __cplusplus

extern "C" { /* our assembly functions have C calling convention */

#endif

void DoOnStack(void); /* prototype for DoOnStack routine */

void FlashErase(unsigned char *); /* prototype for FlashErase routine */

/* Page Erase command */

void FlashProg(unsigned char *, unsigned char); /* prototype for FlashProg routine */

/* Byte Program command */

#ifdef __cplusplus

}

#endif

#endif /* _doonstack */

/**********************************************************************/

#include /* for EnableInterrupts macro */
#include "derivative.h"        /* include peripheral declarations */
#include "hcs08.h"             /* Это наш файл с объявлениями! */
#include "doonstack.h"
#define BUSCLK  8000000
#define vFCDIV  (BUSCLK/200000-1)
char fdata, operation;
unsigned int faddress;
// Назначается область защищенных от записи адресов: от 0xE200 до 0xFFFF
const byte NVPROT_INIT @0x0000FFBD = 0xE0;
// Инициализация МК
void mcu_init(void)
{
 SOPT1 = bBKGDPE;        // Разрешение функции линии отладки BKGD 
 ICSSC = NV_FTRIM;       // Записать значение подстройки FTRIM
 ICSTRM = NV_ICSTRM;     // Записать значение подстройки TRIM 
 ICSC2 = 0;              // ICSOUT = DCOOUT / 1
 // BUSCLK = 8 МГц
 FCDIV = vFCDIV;  // Записать значение кода делителя для частоты FCLK 
                  // (FCLK = 200 кГц)
}
#pragma inline

// Функция чтения байта из ячейки памяти с заданным адресом
char flash_read(unsigned int address)
{
 unsigned char *pointer;
 pointer = (char*) address;
 return (*pointer);
}
// Функция записи байта в ячейку памяти с заданным адресом
char flash_write(unsigned int address, unsigned char data)
{
 unsigned char *pointer;
 pointer = (char*) address;
 FlashProg(pointer,data);   // Вызов функции программирования флэш-памяти
 if (FSTAT_FACCERR) data=1; else data=0;
 if (FSTAT_FPVIOL) data|=2;
 return(data);
}
// Функция стирания заданного блока в области флэш-памяти
unsigned char flash_sector_erase(unsigned int address)
{
 unsigned char *pointer, res;
 pointer = (char*) address;
 FlashErase(pointer);
 if (FSTAT_FACCERR) res=1; else res=0;
 if (FSTAT_FPVIOL) res|=2;
 return(res);
}
void main(void) 
{
 mcu_init();
 fdata = 0;
 faddress = 0xE000;
 operation = 0;
 while (1)
 {
   switch (operation)
   {
     case 1: // Стирание блока
       fdata = flash_sector_erase(faddress);
       operation = 0;      
       break;
     case 2: // Запись байта
       fdata = flash_write(faddress,fdata);
       operation = 0;
       break;
     case 3: // Чтение байта
       fdata = flash_read(faddress);
       operation = 0;
       break;
   }