У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


;помилка номеру цап

movwf ERR_REG

goto tx_err

;-------------------------------------------------------------------

;команда керування реле

rele_kom

movf 0x21,w

xorlw 0x01

btfss STATUS,Z

goto rele_next_rele

movf 0x22,w

btfss STATUS,Z

goto rele_off

bsf PORTC,2

goto rele_end

rele_off

bcf PORTC,2

rele_end

movf 0x21,w

movwf ERR_REG

clrw

goto tx_non_err

rele_next_rele

movf 0x21,w

xorlw 0x02

btfss STATUS,Z

goto rele_next_rele1

movf 0x22,w

btfss STATUS,Z

goto rele_off1

bsf PORTC,3

goto rele_end1

rele_off1

bcf PORTC,3

rele_end1

movf 0x21,w

movwf ERR_REG

clrw

goto tx_non_err

rele_next_rele1

movf 0x21,w

xorlw 0x02

btfss STATUS,Z

goto rele_next_rele2

movf 0x22,w

btfss STATUS,Z

goto rele_off2

bsf PORTC,4

goto rele_end2

rele_off2

bcf PORTC,4

rele_end2

movf 0x21,w

movwf ERR_REG

clrw

goto tx_non_err

rele_next_rele2

movf 0x21,w

xorlw 0x02

btfss STATUS,Z

goto rele_next_rele3

movf 0x22,w

btfss STATUS,Z

goto rele_off3

bsf PORTC,5

goto rele_end3

rele_off3

bcf PORTC,5

rele_end3

movf 0x21,w

movwf ERR_REG

clrw

goto tx_non_err

rele_next_rele3

movlw 0x50

movwf ERR_REG

goto tx_err

;----------------підпрограми------------------------

zat_785ms ;затримка на 785мс виконується із застосуванням таймеру 1

bsf T1CON,4

bsf T1CON,5

movlw 0x03

movwf TEMP_REG3

bsf T1CON,0

zat_1

movlw 0xed

movwf TMR1L

movlw 0x85

movwf TMR1H

btfss PIR1,TMR1IF

goto $-1

bcf PIR1,TMR1IF

decfsz TEMP_REG3,f

goto zat_1

bcf T1CON,0

return

;читання з пам"яті програм

flash_rd

bsf STATUS,RP0

bsf EECON1,EEPGD

bsf EECON1,RD

nop

nop

bcf STATUS,RP0

return

;запис у пам"ять програм

flash_wr

bsf STATUS,RP0

bsf EECON1,EEPGD

bsf EECON1,WREN2

movlw 0x55

movwf EECON2

movlw 0xaa

movwf EECON2

bsf EECON1,WR

nop

nop

bcf EECON1,WREN2

nop

bcf STATUS,RP0

return

;скидання давача

ds18_reset

movlw 0x03

movwf TEMP_REG3

ds18_reset_1

call port_out

movlw 0x96

call pause

call port_in

movlw 0x11

call pause ;очікування відповіді давача протягом 67 мкс

movf PORTC,w

andlw 0x02

movlw 0x4b

call pause

btfsc STATUS,Z

return

incf TEMP_REG3

xorlw 0x03

btfss STATUS,Z

goto ds18_reset_1

movf TEMP_REG3,w

return

;переключення призначення порту на вихід

port_out

BCF PORTС,1 ;1 - це номер порту куди підключений давач

BSF STATUS,RP0

BCF TRISС,1

BCF STATUS,RP0

return

;переключення призначення порту на вхід

port_in

BSF STATUS,RP0

BsF TRISС,1

BCF STATUS,RP0

return

;затримка

pause

movwf TEMP_REG3

pause1

nop

decfsz TEMP_REG3,f

GOTO pause1

return

;підпрограма запису байту в давач

ds18_wr

movlw 0x08

movwf TEMP_REG3 ;лічильник бітів

ds18_wr_1

call port_out

movlw 0x02

call pause

rrf DATA,f

BTFSC STATUS,C

bsf PORTC,1

 

MOVLW 0x11

call pause

call port_in

decfsz TEMP_REG3,f

goto ds18_wr_1

return

;підпрограма приймання байту від давача

ds18_rd

clrf DATA

movlw 0x08

movwf TEMP_REG3

ds18_rd_1

call port_out

movlw 0x02

call PAUSE

call port_in

movf PORTC,w

andlw 0x02

addlw 0xff

rrf DATA,F

movlw 0x11

call pause

decfsz TEMP_REG3,f

goto ds18_rd_1

return

;підпрограма обрахунку контрольної суми

crc_suma

movlw 0x08

movwf TEMP_REG3

crc_suma_2

movf DATA,w

xorwf CRC_DATA,w

andlw 0x01

btfsc STATUS,Z

goto crc_suma_1

movlw 0x18

xorwf CRC_DATA

crc_suma_1

rrf CRC_DATA

bcf STATUS,C

rrf DATA

decfsz TEMP_REG3

goto crc_suma_2

return

end

2.4. Розробка програмного забезпечення інтерфейсу користувача.

Для реалізації поставленої задачі, з метою формування зручного інтерфейсу для користувача, було використано середовище програмування C++ Builder.

Шоста версія продукту Borland C++ Builder, сьогодні є найбільш довершеним візуальним середовищем швидкої розробки на Си++ для Windows. У її склад входить близько 200 самих різних компонентів, а створення закінченої програми вимагає мінімуму зусиль. Найближчий конкурент Borland C++Builder - це не система Microsoft Visual C++, яка побудована по іншій схемі і не є RAD-системою, а Microsoft Visual Basic, типове середовище розробки. Проте ефективність програм, що створюються за допомогою C++Builder, в десятки раз перевершує швидкодію програм, написаних на MS Visual Basic. Та і по числу вільних доступних компонентів рівних середовищу C++Builder сьогодні не знайти. У цієї системи є рідний брат - RAD-середовище Borland Delphi, технологія роботи з якою повністю співпадає з технологією, прийнятою в C++Builder. Тільки у Delphi програмний код пишеться не на мові C++, а на мові програмування Паскаль, точніше на його об'єктно-орієнтованій версії ObjectPascal. Але найцікавіше, що Borland C++Builder дозволяє писати програму при бажанні одночасно і на Си++, і на Паскалі!

Програмне забезпечення користувача повинно містити простий та зручний інтерфейс, можливість зміни інформації та передачі її по інтерфейсу RS-232, а також можливість створення шрифтів та простих графічних зображень. Для задоволення цих вимог були створені програми: «Інтерфейс користувача» і «Редактор бібліотеки».

Для створення програми «Інтерфейс користувача», яка реалізує поставлену задачу, було розроблено алгоритм програми:

Для написання програми «Інтерфейс користувача» використовувались наступні функції:

функція ініціалізації порту RS-232 (OnConnect);

функція відкриття файлу бібліотеки (Button1Click);

функція виводу вмісту підключеної бібліотеки на інформаційний екран (Button2Click);

функція виводу заданої строки на інформаційний екран (Button3Click).

Будь-яка програма написана для операційної системи Windows має хоча б одну форму, яка називається головною формою. Програма може мати багато форм, кожна з яких вирішує певну задачу, з’являючись на екрані по мірі необхідності. Всі форми створюються на основі класу TForm.

TLabel – клас бібліотеки VCL, який дозволяє розміщувати на формі різноманітного виду текстової інформації. В програмі використовується властивість класу TLabel – Caption, для відображення підказки, яку інформацію необхідно вводити в поле редагування.

Компонент класу TEdit це текстовий редактор, що складається з одного рядка. З його допомогою можна вводити рядки та відображати текстові рядки, що потребують редагування. TEdit містить змінну Text, який зберігає рядок, що редагується. Змінна Text зберігає рядок в форматі AnsiString. Для приведення текстової інформації в форматі AnsiString в формат Double використовується функція StrToFloat(const AnsiString S). Рядок S може мати знак + або – перед числом, цілу та дробову частину розділену крапкою. Число також може бути представлене в форматі мантиса+степінь, наприклад 1.2345е+01.

Компонент класу TMemo призначений для відображення, введення і редагування довгих текстів. Текс в компоненті представлений в вигляді рядків. Властивість класу TStrings містить набір рядків тексту в форматі AnsiString. Властивість класу ScrollBars дозволяє встановлювати смуги прокрутки для перегляду всього тексту введеного в поле Memo.

Об’єкт класу TButton дозволяє створювати на формі кнопки. Після натиснення на кнопку виникає подія, на яку можна реагувати викликом функції, яка буде обробляти цю подію. Кнопка на формі це основний метод управління програмою.

TChart – це клас, що дозволяє будувати графіки. Компонент TChart є контейнером об’єктів Series типу TChartSeries – рядів даних, що характеризуються різними стилями відображення. Кожен компонент може включати декілька рядів даних. При відображенні графіку кожен рядок відповідає одній кривій на графіці. При відображенні діаграми для деяких видів діаграм можна накласти одну на одну декілька різних рядів. В цьому випадку можна задати для одного компоненту TChart декілька рядів однакових даних з різними типами діаграми. Активуючи в один момент часу тільки одну з них, можна надати користувачу вибір типу діаграми, що відображає його дані.

TSaveDialog дозволяє використовувати для збереження файлу стандартне вікно-діалог Windows для вибору імені файлу, або створення нового файлу в який буде зберігатись інформація. Вікно


Сторінки: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18