Текст программы на языке ASSEMBLER
$nolist $include (org.prc) $include (pic_io.mac) $include (lcd_io.mac) $include (kbrd_io.mac) $include (552asm.inc) $listSTART; переход на основную программу8003h; подпрограмма обработки прерывания по INT0; выход из подпрограммы обработки прерывания по INT08013h; подпрограмма обработки прерывания по INT1A, TL1PSW.0, M11; переход если поступило прерывание останавливающее таймерTCON.4M12: CLR TCON.4; остановка таймераIEN0,#00h; блокировка прерыванийTL1,#00h; обнуление счётчика импульсов: RETI; выход из подпрограммы обработки прерывания по INT1: CALL I2cinit; проверка связи с сопроцессором %PicGet (PIC_flg)PROG: %SEND_STR_LCD(ERR1)START: CLR CY; обнулить бит переносаLCDinit; инициализировать ЖКИACC, (Scan_8_lines+INTenable+AutoRepeat_en+Beep_enable); (8 линий + прерывание по INT0)initKBRD; инициализировать клавиатуру: %SEND_CMD_LCD(01h); очистить экран CALL D; подпрограмма временной задержки %PICGET (PIC_flg); проверка состояния сопроцессораACC.KBRDRQU, NEW; переход если клавиша не нажата %PICGET (KBRD_STS); чтение кода нажатой клавиши %KBRD_COD; преобразование в коды ЖКИLCDD; вывод на экран заданного числа тысяч об/минA, R0; преобразование кода нажатой клавиши в число об/мин SUBB A,#30hR0, A MOV R1,#64hUMR6, A; запись числа оборотов в регистры R6 и R7R7, B; в регистре R7 - старшие разряды, а в R6 - младшие M1: %PICGET (PIC_flg)ACC.KBRDRQU, M1 %PICGET (KBRD_STS) %KBRD_CODLCDD; вывод на экран заданного числа сотен об/минA, R0; преобразование кода нажатой клавиши в число об/мин SUBB A,#30hR0, AR1,#0AhUMR0, A MOV R1, R6SUM; операция сложения тысяч и сотен об/мин в регистах R6 и R7 M2: %PICGET (PIC_flg)ACC.KBRDRQU, M2 %PICGET (KBRD_STS) %KBRD_CODLCDD; вывод на экран заданного числа десятков об/мин MOV A, R0A,#30h ADD A, R6; получение окончательногоR6, A; числа об/мин в регистрах R6 и R7R0,#00hLCDD; добавка нуля к полученному результату: MOV R3, R7; определение времени которое должно быть получено на счётчикеR2, R6; между двумя импульсами от датчика скоростиR0,#02hDEL; деление скорости на 2 (N/2) MOV R0, R2R3,#27hR2,#10hDEL; 10000/(N/2)R1, R2R0,#05hUM; 10000*5/(N/2) MOV R6, A; занесение в регистры R6 и R7 времениR7, B; скоторым будет сравниваться время полученное на счётчикеPWMP, 7Fh; задание начальной частоты повторения ШИМTCON,#01h; установка прерывания INT0 по уровню (переход из 1 в 0)IEN0,#81h; снятие блокировки прерываний и разрешение прерывания по INT0: JNB TCON.1, M3; ожидание прерывания по INT0 (включение двигателя)TMOD,#D1h; Разрешение управлять счётчиком 1 от INT1 и выбор 1 - ого режима счётчика 1 и таймера 0TCON,#44h; запуск счётчика 1 и установка прерывания INT1 по уровню (переход из 1 в 0)IEN0,#84h; снятие блокировки прерываний и разрешение прерывания по INT1: JNB TCON.3, M4; ожидание прерывания по INT1 (с датчика скорости запускающего таймер): JNB TCON.3, M5; ожидание прерывания по INT1 (с датчика скорости останавливающего таймер): MOV A, TH0; операция сравнения заданного времени и времени с счётчика MOV B, TL0CYA, R7UVELA, BA, R6 JC UVEL JMP UMEN UVEL: MOV A, PWMP; операция увеличения скважности импульсов CJNE A,#01h, M6PWMP M6 UMEN: MOV A, PWMP; операция уменьшения скважности импульсов CJNE A,#FFh, M6PWMP: MOV R0,#02hR3, TH0R2, TL0DELR0, R2R3,#27hR2,#10hDEL R0, R2; преобразование времени счётчика в текущую скорость MOV R1,#05h; двигателя и отображение её на ЖКИ LCALL UMR4, AR5, BR0,#64h MOV R3, R5R2, R4DELA, R2A,#30hR0,#C0h LCALL LCDC; установка курсора в начало второй строки ЖКИR0, ALCDD; вывод количества тысяч об/мин MOV R1, R2R0,#64hUMR3, R5R2, R4VICHB,#0AhA, R2ABR0, AA,#30h MOV R0, ALCDD; вывод числа сотен об/мин MOV A, BA,#30hR0, A LCALL LCDD; вывод числа десятков об/минR0,#30hLCDD; добавка нуля к полученному результату LJMP : MOV A, R0; операция умножения MOV B, R1AB SUM: MOV A, R0; операция сложения ADD A, R1R0, AA, R2A, R2R1, AR7, R1R6, R0 RET: MOV A, R3; операция деления MOV B, R0ABR3, AA, BB, R0R1,#08h: CLR CA, R2AA, R2Adwb4R4,#FFhA, R4ABA, R2R2, AA, R4A, BB, R0: CJNE A, B, dwb1: JC dwb2A, BR2: DJNZ R1, dwb3 RET: CLR C; операция вычитания MOV A, R2A, R0R2, AA, R3A, R1R3, A RET: %DELAY; временная задержка
Заключение
В данном курсовом проекте было разработано микропроцессорное устройство задания и поддержания, измерения и инициализации скорости вращения вала двигателя постоянного тока(ДПТ). Оно позволяет измерять и наблюдать за скоростью двигателя в реальном времени. Применение микропроцессора позволяет добиться высокой надёжности и точности устройства.
Список использованной литературы 1. Фрунзе А.В. Микроконтроллеры? Это же просто! Т.1. - М.: ООО «ИД СКИМЕН», 2009 - 336 с., ил. 2. П. Хоровиц, У. Хилл. Искусство схемотехники. - 5-е издание, переработанное. - М.: «Мир», 1998. . Степаненко И.П. Основы микроэлектроники: Учеб. пособие для вузов. - 2-е издание, переработанное и дополненное. - М.: Лаборатория Базовых Знаний, 2008. - 488 с., ил. . У. Титце, К. Шенк. Полупроводниковая схемотехника. Пер. с нем. - М.: «Мир», 2008 - 512 с., ил. . Баюков А.Б. Полупроводниковые приборы: Справочник. - М.: Энергоатомиздат, 1987 г. - 744 с. . Каспер Эрни Программирование на языке ассемблера для микроконтроллеров семейства i8051: Москва 2004. . Интернет ресурсы www.analog.com 8. Kohonen T. 1984. Self-organization and associative memory. Series in Information Sciences, vol. 8. Berlin: Springer Verlag . Hebb D. 1961. Organization of behavior. New York: Science Edition. . Rumelhart D.E., Hinton G.E., Williams R.J. 1986. Learning internal reprentations by error propagation. In Parallel distributed processing, vol. 1, pp. 318-62. Cambridge, MA: MIT Press. . Werbos P.J. 1974. Beyond regression: New tools for prediction and analysis in the behavioral sciences. Masters thesis, Harward University. . Wasserman P.D. 1988a. Combined backpropagation/Cauchy machine. Proceedings of the International Newral Network Society. New York: Pergamon Press . Rumelhart D.E., Hinton G.E., Williams R.J. 1986. Learning internal reprentations by error propagation. In Parallel distributed processing, vol. 1, pp. 318-62. Cambridge, MA: MIT Press. . Wasserman P.D. 1988b. Experiments in translating Chinese characters using backpropagation. Proceedings of the Thirty-Third IEEE Computer Society International Conference. Washington, D.C.: Computer Society Press of the IEEE. . Parker D.B. 1987. Second order back propagation: Implementing an optimal 0 (n) approximation to Newton's method as an artificial newral network. Manuscript submitted for publication. . Stornetta W.S., Huberman B.A. 1987. An improwed three-layer, backpropagation algorithm. In Proceedings of the IEEE First International Conference on Newral Networks, eds. M. Caudill and C. Butler. San Diego, CA: SOS Printing. . Pineda F.J. 1988. Generalization of backpropagation to recurrent and higher order networks. In Newral information processing systems, ed. Dana Z. Anderson, pp. 602-11. New York: American Institute of Phisycs. . Sejnowski T.J., Rosenberg C.R. 1987. Parallel networks that learn to pronounce English text. Complex Systems 1:145-68. 19. Burr D.J. 1987. Experiments with a connecnionlist text reader. In Proceedings of the IEEE First International Conferense on Neural Networks, eds. M. Caudill and C. Butler, vol. 4, pp. 717-24. San Diego, CA: SOS Printing. . Cottrell G.W., Munro P., Zipser D. 1987. Image compression by backpropagation: An example of extensional programming. ICS Report 8702, University of California, San Diego.
Популярное: Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... Почему стероиды повышают давление?: Основных причин три... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (153)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |