Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 27.11.2017, 18:11   #1
Pavel217
Новичок
Джуниор
 
Регистрация: 27.11.2017
Сообщений: 1
По умолчанию Задача с таймером на Ассемблере

Необходимо написать программу для генерирования ТС1 временных меток длительностью 40 мс при Fosc = 12 МГц. протестировать программу (2-3 примера).
С языком я знаком очень и очень мало, пробовал делать сам выдает ошибку "*** error 65: access violation at C:0x0000 : no 'execute/read' permission"
Кто сможет помочь буду очень признателен.
вот код который писал я:

#include <reg51.h>
JMP START //Команда перехода по метке START
TRANS: //Метка перехода TRANS
MOV TH1,#0x63; //Загрузили старший байт таймера
MOV TL1,#0xBF; //Загрузили младший байт таймера
MOV TCON,#0x40; //Сбросили бит переполнения TF1, установив новое значение регистру TCON
RET; //Команда возращение в тело программы

START: MOV TMOD,#0x10; //Устанавливаем режим работы таймера
MOV IE,#0x88; //Разрешили прерывание таймера 1
MOV TH1,#0x63; //Загрузили старший байт таймера
MOV TL1,#0xBF; //Загрузили младший байт таймераTL1 = 0xBF;
MOV TCON,#0x40; //Устанавливаем разрешение на прерывание от таймера


C860: //метка С860
JNB 0X88.7,c860 //Eсли бит переполнения(TF1) равен нулю то переход по метке,иначе следующая строчка
CALL TRANS //Вызов подпрограммы

C861: //метка С860
JNB 0X88.7,c861 //Eсли бит переполнения(TF1) равен нулю то переход по метке,иначе следующая строчка
CALL TRANS //Вызов подпрограммы

C862: //метка С862
JNB 0X88.7,c862 //Eсли бит переполнения(TF1) равен нулю то переход по метке,иначе следующая строчка
CALL TRANS //Вызов подпрограммы
JMP C860 //Переход по метке, необходимо для обеспечения бесконечного цикла
End
Pavel217 вне форума Ответить с цитированием
Старый 28.11.2017, 12:36   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 2,164
По умолчанию

Этот раздел - по х86-ному асму, мне кажется. И вопрос следовало адресовать в раздел "Микроконтроллеры" с указанием типа МК. 51-й ?
или http://radiokot.ru/forum/viewtopic.php?f=62&t=59015

Последний раз редактировалось digitalis; 28.11.2017 в 12:39.
digitalis вне форума Ответить с цитированием
Старый 28.11.2017, 12:39   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Этот раздел - по х86-ному асму, мне кажется.
да нет, это раздел по любому Ассемблеру.
Хотя, конечно, указывать что за Ассемблер и для чего - весьма желательно.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.11.2017, 13:13   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 2,164
По умолчанию

Думается мне, что поскольку Гарвардская архитектура большинства популярных МК очень сильно отличается от фон-Неймановской для х86, то и асмы для них тоже сильно различны, и чтоб не создавать толчеи и путаницы, логичнее бы новичков направлять именно туда.
Тип МК прямо указан в тексте
Код:
#include <reg51.h>
digitalis вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на ассемблере Troyan4eg Помощь студентам 0 15.05.2012 23:10
Задача на ассемблере Bukhantsov Помощь студентам 0 02.06.2011 21:36
задача на ассемблере 666lynx666 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 24.06.2007 12:27