Файл: Проектирование информационной системы по учету выпуска готовой продукции.pdf
Добавлен: 05.07.2023
Просмотров: 96
Скачиваний: 3
СОДЕРЖАНИЕ
1. Характеристика организации и её деятельности
1.1 Организационная структура управления предприятием
1.2 Выбор комплекса задач автоматизации и характеристика существующих процессов
3. Информационное обеспечение задачи
3.1 Информационная модель и её описание
4. Программное обеспечение задачи
4.1 общие положения (древо функций и сценарий диалога)
Введение
В данной курсовой работе предоставлен процесс, проектирование информационной системы по учету выпуска готовой продукции. Объект, по которому будет выполняться курсовая работа, было выбрано предприятие «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;
}