Листинг программы на языке ассемблера
org 0; начало с 0 адреса
jmp START; переход на метку
ORG 0BH; после метки START, программа начинается в 0ВН
START: P0,#0; подаем нули на неиспользуемые контакты
mov P3,#00000011b; подаем нули на неиспользуемые контакты
mov SP,#80h; запись начинается с адреса 81h
mov 08h,#0FFh; запись в ОЗУ первоначального состояния порта Р1
mov 09h,#0h; запись в 0ЗУ первоначального состояния порта Р2
PROVERKA:TMOD,#00100001b; настройка ТС1 TH1,#0FDh; запись числа в старшие байты ТС
mov TL1,#0FDh; запись числа в младшие байты ТС
mov SCON,#01010000b; режим UART, передача 9 битного пакета
mov PCON,#10000000b; удвоение скорости
mov TCON,#01000000b; включение ТС1
nabor:
mov R0,#0
mov DPTR,#prer1
string:
mov A,R0; записываем значение из R0 в аккумулятор
movc A,@A+DPTR; загружаем байт в аккумулятор из DPTR
mov SBUF,A; записываем значения из А в буфер
again:
JNB TFI,again; ветвление по адресу, пока флаг таймера не переполниться
clr TFI
inc R0; увеличение значения регистра R0 на 1
mov R4,#0; флаг для прерывания от ТС0, который еще не включен
cjne A,#9,string PRIEM; должны принять "start
CJNE A,#'s',naborPRIEM A,#'t',nabor
LCALL PRIEM
CJNE A,#'a',nabor
LCALL PRIEM
CJNE A,#'r',nabor
LCALL PRIEM
CJNE A,#'t',nabor; если пришло start, то начинается выполнение операции
mov N, 1; Количество попыток запуска двигателя
Dvigatel:
CMP P1.1, #0, Dvigatel; Сравнивание D и 0 (двигатель заглушен)
JZ Korobka; Переход к проверке Korobka
Dvigatel: RETI; выход из цикла
Korobka:
CMP P1.2, #1, Korobka; Сравнивание KP и 0 (стоит нейтральная передача)
JZ Ruchnik; Переход к проверке Ruchnik
Korobka: RETI; выход из цикла
Ruchnik:
CMP P1.3, #1, Ruchnik; Сравнивание RT и 1 (ручной тормоз включен)
JZ Run; Переход к Run
Ruchnik: RETI; выход из цикла
Run:
mov P1.7, #1h; Подача наивысшего уровня для запуска двигателя
CMP P1.1, 1, Dvigatel; Сравнивание D и 1 (двигатель запущен)
JZ Answer_true; Переход на метку с положительным отчетом
inc N; увеличение N на единицу, для подсчета попыток
PRIEM:R4,#0,vyhod RI,PRIEM; Ждём пока придёт символ, и в регистр R1 установится 1
mov A,SBUF; Записываем в аккумулятор пришедший символ из буфера
CLR RI
vyhod: RETI:
inc R2R2,#70, ret_1R2,#0 R4,#1; задержка на 5 секунд
ret_1: RETI
mov P1.7, #0h; отмена запуска реле
CMP N, 3; проверка количества попыток
JBE Run
Dvigatel: RETI
JMP Answer_false; Переход на метку с отрицательным отчетом
Answer_true:: mov R0,#0; передача команды "AT+CMGS=89227157174", т.е. отправка SMS на номер абонента
mov DPTR,#prer2:TFI,againTFI R0
cjne A,#20,string R0,#10h; ввод в отчета о выполнении операции
string:A,@R0SBUF,A:TFI,againTFI R0
cjne A,#30,string:
LCALL PRIEM; принятине отчета о количестве отправленных смс
CJNE A,#30,kolvo; т.к. нам не понадобится данная информация, то ждем окончания строки
LCALL PRIEM; подтверждение отправки sms
CJNE A,#'O',smska
LCALL PRIEMA,#'K',smska;_false:: mov R0,#0; передача команды "AT+CMGS=89227157174", т.е. отправка SMS на номер абонента
mov DPTR,#prer2:TFI,againTFI R0
cjne A,#20,string
mov R0,#10h; ввод в отчет о выполнении операции
again:TFI,againTFI R0
cjne A,#30,kolvo: LCALL PRIEM; принятие отчета о количестве отправленных смс
CJNE A,#30,kolvo; т.к. нам не понадобится данная информация, то ждем окончания строки
LCALL PRIEM; подтверждение отправки sms
CJNE A,#'O',smska
LCALL PRIEMA,#'K',smska;: db ' AT+CMGR=1; ',9: db 'AT+CMGS=89227157174; ', 19;
Заключение
Разработанное в курсовой работе устройство, осуществляет запуск двигателя с помощью отправки SMS сообщения, отвечает требованиям технического задания. Разработана принципиальная электрическая схема и написана программа на языке ассемблера.
Главным модулем устройства является GSM модуль который принимает SMS сообщение, а также отправляет отчет о работе
Были получены практические знания, связанные с работой процессорной техники, для выполнения устройством заданного алгоритма работы использовали программу, которая написана на языке assembler для процессора серии MCS - 51.
Читайте также
Проект организации широкополосного доступа в коттеджном микрорайоне Чистопрудный г. Ижевска
Возможность в любое время в любом месте при любых условиях
иметь доступ к неограниченным информационным ресурсам становится для
современного человека одним из самых важных аспектов жизни ...
Разработка комплекта электрических схем маршрутной релейной централизации блочного типа
Целью дипломного проектирование являлась разработка комплекта
электрических схем маршрутной релейной централизации блочного типа (БМРЦ) для
использования их студентами техникума в качест ...
Построение внутренней памяти процессорной системы, состоящей из ПЗУ и статического ОЗУ
Построить внутреннюю память процессорной системы, состоящую из ПЗУ и
статического ОЗУ. Процессорная система работает в реальном режиме.
Разрядность ША - 20, ШД - 8.
ИСХОДНЫЕ ДАННЫЕ: ...