Вход

Разработка микропроцессорной системы управления электронными весами

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 85766
Дата создания 2015
Страниц 30
Источников 9
Мы сможем обработать ваш заказ (!) 17 апреля в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
2 140руб.
КУПИТЬ

Содержание

Содержание
Введение 3
1 Анализ существующих систем управления микропроцессорными электронными весами. 4
1.1 Датчики веса. Методы преобразования веса в электрический сигнал. 4
1.2 Обзор методов обработки сигнала датчиков. 7
2. Структурная схема микропроцессорной системы управления электронными весами 9
3. Функциональная схема микропроцессорной системы управления электронными весами 11
4. Описание работы микропроцессорной системы управления электронными весами 18
5. Построение алгоритма работы системы управления электронными весами 19
6. Разработка программы системы управления электронными весами. 21
7. Выбор и обоснования эмулятора МПС для отладки программы системы управления 22
8. Отладка программы микропроцессора системы управления электронными весами с применением эмулятора 23
Заключение 25
Список использованных источников 26
Приложения 27

Фрагмент работы для ознакомления

электрон.весами *; *; *;**********************************************************************;***** ОПИСАНИЕ ПЕРЕМЕННЫХcblock 0x7temp;НАЗНАЧАЕМ ПЕРЕМЕННЫЕcountA_byteS_byte; самый старший байт сумированияH_byte; средний байт (старший в математике)L_byteR0 ; ЗНАЧКИ ДЛЯ ЯЧЕЕК ПАМЯТИR1 R2 endccblock 0x10digit; ПЕРЕМЕННАЯ для вывода на индикаторcnt; служебный счетчикcnt0cnt1cnt2cnt_tmpadc_h; оцифрованный сигналadc_lzero_h; ДЛЯ ВЫВОДА ОШИБКИ ДИАПАЗОНАzero_lold_h; старые значенияold_lendc; распределение ножек портаportequ GPIOkey0equ 0; key >0<clkequ 1; ДЛЯ ИНДИКАТОРА, LCDdiequ 2; ДЛЯ ИНДИКАТОРА, LCDdoutequ 3;dclockequ 4;csequ 5;;**********************************************************************ORG 0x3FF ; СБРОС ПРОЦЕССОРАmovlw0x50 ORG 0x000 ; КОДИРОВАНИЕ НАЧИНАЕТСЯ ЗДЕСЬmovwf OSCCAL ; ОБНОВИТЬ РЕГИСТР gotomain ; ИДТИ В ГЛАВНУЮ ПРОГРАММУ;ххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххх; ПОДПРОГРАММА вывода старшейтетрады на индикаторtetradamovlw.4movwfcnt_tmptetrada1rlfdigit,fbtfssSTATUS,Cgotoinfo1bsfport,digotoinfo2info1bcfport,dinopnopinfo2callshotbcfport,clkcallshotbsfport,clk;callshot ; ВЫЗОВ КОРОТКОЙ ЗАДЕРЖКИdecfszcnt_tmp,fgototetrada1return; короткая задержка для формирования сигналов управления индикаторомshotnopnopreturn; ---------------------------------------------------------------delaymovlw .2movwf cnt0ddd1movlw .250movwf cnt1ddd2movlw .250movwf cnt2ddd3clrwdtdecfsz cnt2,fgoto ddd3decfsz cnt1,fgoto ddd2nopdecfsz cnt0,fgoto ddd1return;********************************************************************; Это подпрограмма конвертации; 16-ТИ БИТНОГО БИНАРНОГО КОДА ВЕСА В 5-ТИ ЗНАЧНОЕ; BCD ЧИСЛО ;; 16-ТИ БИТНЫЙ БИНАРНЫЙ КОД НАХОДИТСЯ В H_byte И; L_byte СО СТАРШИМ БИТОМ В H_byte.; 5 ЗНАЧНОЕ BCD ЧИСЛО ВОЗВРАЩАЕТСЯ В R0, R1 and R2 С R0; СОДЕРЖИМЫМ.;;*******************************************************************;B2_BCD bcf STATUS,0 ; ОЧИСТКА ТЕКУЩЕГО БИТАmovlw .16movwfcountclrf R0clrf R1clrf R2loop16 rlfL_byte, FrlfH_byte, Frlf R2, Frlf R1, Frlf R0, F;decfszcount, FgotoadjDECRETLW 0;adjDECmovlw R2movwf FSRcalladjBCD;movlw R1movwf FSRcalladjBCD;movlw R0movwf FSRcalladjBCD;goto loop16;adjBCDmovlw 3addwf 0,Wmovwftempbtfsc temp,3 ; ПРОВЕРИТЬ, ЕСЛИ РЕЗУЛЬТАТ > 7movwf 0movlw 30addwf 0,Wmovwftempbtfsc temp,7 ; ПРОВЕРИТЬ, ЕСЛИ РЕЗУЛЬТАТ > 7movwf 0 ; СОХРАНИТЬ КАК MSDRETLW 0; *******************************************************************; Начало главной программы; *******************************************************************mainbcf STATUS,PA0; ИНИЦИАЛИЗАЦИЯmovlw b'10010100'OPTIONclrf TMR0clrwdt;clrf GPIOmovlw b'11111111'movwf GPIOmovlw b'11001001'; ИНИЦИАЛИЗАЦИЯ ПОРТОВ I/o; 1 - входtris GPIOnopnopmovlw b'00110110'movwfportclrfzero_hclrfzero_lclrfold_hclrfold_l; &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&; ОСНОВНОЙ ЦИКЛ ПРОГРАММЫ; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%bodynop;calldelay - ВЫЗОВ ЗАДЕРЖКИbody1nop; подготовка регистровclrfA_byteclrfS_byteclrfH_byteclrfL_byte;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!; АЦП АЦПАЦП;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!; измеряем 2048 раз (примерно 0,7 секунды)adcadcmovlw .8movwf cnt0mmm1clrf cnt1mmm2clrfadc_hclrfadc_lbcfport,cs; началиnopnopbcfport,dclockcallshotcallshotbsfport,dclockcallshotcallshotbcfport,dclockcallshotcallshotbsfport,dclockcallshotcallshotbcfport,dclocknopnopnopnopbtfscport,dout; проверка на ошибкуgotoerr ; ПЕРЕХОД НА ПОДПРОГРАММУ "ОШИБКА"callshotbsfport,dclockcallshotcallshotmovlw .4; старшие 4 битаmovwfcnt_tmpadc3bcfport,dclocknopnopnopbtfssport,doutgoto adc1bsf STATUS,Cgoto adc2adc1bcf STATUS,Cadc2rlfadc_h,f;callshotbsfport,dclockcallshotcallshotdecfszcnt_tmpgoto adc3movlw .8; младшие 8 битmovwfcnt_tmpadc6bcfport,dclocknopnopnopbtfssport,doutgoto adc4bsf STATUS,Cgoto adc5adc4bcf STATUS,Cadc5rlfadc_l,f;callshotbsfport,dclockcallshotcallshotdecfszcnt_tmpgoto adc6bsfport,cs; ДОСТАТОЧНОmovfadc_h,wmovwfH_bytemovfadc_l,wmovwfL_bytegotoconvmovlw 0x00movwfadc_hmovlw 0x03movwfadc_lmovfadc_l,w; складываем все результатыaddwfL_byte,fbtfss STATUS,Cgoto mmm6incfH_byte,fbtfsc STATUS,ZincfS_byte,fmmm6movfadc_h,waddwfH_byte,fbtfsc STATUS,CincfS_byte,fmovlw .10; небольшая задержкаmovwf cnt2mmm3callshotdecfsz cnt2,fgoto mmm3decfsz cnt1,fgoto mmm2decfsz cnt0,fgoto mmm1body2nop; делим результат интегрирования входного напряжения на; число, кратное двум!movlw .11; сдвигаем N раз!movwfcnt_tmpsdvigbcf STATUS,CrrfS_byte,frrfH_byte,frrfL_byte,fdecfszcnt_tmp,fgotosdvig; усреднение по предыдущему значениюusredmovfH_byte,wmovwf cnt0movfL_byte,wmovwf cnt1movfold_l,waddwfL_byte,fbtfsc STATUS,CincfH_byte,fmovfold_h,waddwfH_byte,fbcf STATUS,CrrfH_byte,frrfL_byte,fmovf cnt0,wmovwfold_hmovf cnt1,wmovwfold_l; опрос кнопкиclrfcntmmm10btfsc port,key0goto mmm11decfszcnt,fgoto mmm10movfH_byte,w; новое значениеmovwfzero_hmovfL_byte,wmovwfzero_lmmm11; чуть-чуть прибавляемincfL_byte,f; увеличиваем на ?btfsc STATUS,ZincfH_byte,fincfL_byte,fbtfsc STATUS,ZincfH_byte,f; вычитаем из результата как-бы нольmovfzero_l,wsubwfL_byte,fbtfss STATUS,CdecfH_byte,fmovfzero_h,wsubwfH_byte,f; проверяем на отрицательное числоbtfsc H_byte,7gotonegot; проверяем на превышение ДИАПАЗОНАmovfH_byte,fbtfsc STATUS,Zgotoconvmovlw 0x0FsubwfH_byte,wbtfss STATUS,Cgotoconvbtfss STATUS,Zgotooverloadmovlw 0xD3subwfL_byte,wbtfss STATUS,Cgotoconvoverloadclrf R1; выводим символ перегрузкиmovlw 0x0Emovwf R2gotoinfo; если отрицательное числоnegotclrftemp; вычитаем отрицательный результат из 0movfL_byte,wsubwftemp,wbtfss STATUS,Cdecftemp,fmovwfL_bytemovfH_byte,wsubwftemp,wmovwfH_bytemovfH_byte,fbtfss STATUS,Zgoto negot1call B2_BCDmovlw 0x0Fandwf R1,wbtfss STATUS,Zgoto raz3movlw 0xF0andwf R2,wbtfss STATUS,Zgoto raz2raz1movlw 0x0Fandwf R2,fmovlw 0xF0addwf R2,fgotoinforaz3movlw 0x0Fandwf R1,fmovlw 0xF0addwf R1,fgotoinforaz2movlw 0xF0andwf R1,fmovlw 0x0Faddwf R1,fgotoinfonegot1movlw 0xFF; выводим прочерки, если отрицательное число.movwf R1movwf R2gotoinfo; выводим на индикатор полученное числоconvcall B2_BCD; -----------------------------------------------------------------------; п\п вывода на индикатор -----------------------------------------------; выводятся потетрадноinfoclrftemp; признак невывода нуляmovlw .6; выводим ничего в 6 знаковmovwfcntinfo10clrfdigitcalltetradadecfszcnt,fgoto info10movf R1,w; выводим 4 младшие значащие цифрыmovwfdigitmovlw 0xF0andwfdigit,fbtfss STATUS,Zgoto info20clrfdigitgoto info21info20incftempinfo21calltetradamovf R1,wmovwfdigitswapfdigit,fmovlw 0xF0andwfdigit,fbtfss STATUS,Zgoto info22movftemp,fbtfss STATUS,Zgoto info24clrfdigitgoto info23info24movlw 0xA0movwfdigitinfo22incftempinfo23calltetradamovf R2,wmovwfdigitmovlw 0xF0andwfdigit,fbtfss STATUS,Zgoto info25movftemp,fbtfsc STATUS,Zgoto info25movlw 0xA0movwfdigitinfo25calltetradamovf R2,wmovwfdigitswapfdigit,fmovlw 0xF0andwfdigit,fbtfss STATUS,Zgoto info26movlw 0xA0movwfdigitinfo26calltetrada; ---------------------------------------;----------------------------------------calldelaygotobodyerrcalldelaymovlw 0xDDmovwf R1movlw 0xDDmovwf R2gotoinfoEND ; конец программы

Список литературы [ всего 9]

Список использованных источников
1. Сарры С.В. Программно-аппаратные средства микропроцессорных устройств релейной защиты электроэнергетических систем: учеб. пособие / Юж.-Рос.гос. техн. ун-т (НПИ). – Новочеркасск: ЮРГТУ, 2009. – 137 с.
2. Фигурнов В.Э. IBM PC для пользователя, 2-е изд., перераб. и доп. – М.: Финансы и статистика, Юнити, 1992. – 288 с., ил.
3. Калабеков Б.А., Мамзелев И.А. Цифровые устройства и микропроцессорные системы: Учебник для техникумов связи. - М.: Радио и связь, 1987. - 400 с.
4. Микропроцессоры и микроЭВМ в системах автоматического управления: Справочник/ С.Т.Хвощ, Н.Н.Варлинский, Е.А.Попов; Под общ. ред. С.Т.Хвоща. - Л.: Машиностроение, 1987. - 640 с.
5. Шило В. Л. Популярные цифровые микросхемы. Справочник. – М.: Радио и связь, 1988 – 352 с.
6. Боборыкин А. В. - Однокристальные микро¬ЭВМ. Справочник/ А. В. Боборыкин, Г. П. Липовецкий и др. М.: МИКАП, 1994.
7. http://www.atmel.com/MICROSITE/ATMEL_STUDIO6/
8. Эмулятор микропроцессорной системы на базе микропроцессора КР580ВМ80А (Intel 8080) Пенкин Ю.И., Улыбышев Д.А. (http://zic-homepage.narod.ru)
9. http://kazus.ru/programs/viewdownloaddetails/kz_0/lid_2257.html
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.01192
© Рефератбанк, 2002 - 2024