Форум программистов, компьютерный форум, киберфорум
Наши страницы

Микроконтроллеры

Войти
Регистрация
Восстановить пароль
 
Hunter217
0 / 0 / 0
Регистрация: 15.09.2016
Сообщений: 6
#1

Задача с таймером на Ассемблере - Микроконтроллер

27.11.2017, 17:08. Просмотров 217. Ответов 4
Метки нет (Все метки)

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

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#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
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2017, 17:08
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Задача с таймером на Ассемблере (Микроконтроллер):

Задача на ассемблере - Assembler
Пожалуйста, помогите решить задачу на ассемблере Разработать программу поиска последовательности бит 0101...01 и преобразования самой...

Легкая задача в ассемблере - Assembler
Помогите пожалуйста решить. Я новичок в ассемблере.вырезано mul MEM

Задача с массивом на ассемблере - Assembler
Доброго времени суток. Помогите, пожалуйста, нужно разобраться с программой. Условие следующее. Задан байтовый массив из N элементов....

Простейшая задача на Ассемблере - Assembler
3.Написать программу, которая производит перестановку величин X, Y, Z (X&lt;-Y&lt;-Z&lt;-X), считая, используя команду xchg и считая, что X,Y,Z...

Задача про пароль на ассемблере - Assembler
Если введен верный пароль,предложить ввести число, кратное 3 (если оно введено, то логически сдвинуть его на 3 разряда влево и вывести...

Задача на ассемблере - Assembler
Ввести строку символьных данных, задавая буфер равный 12 байт. Переставить символы в строке следующим образом: первый символ на место...

4
northener
пофигист широкого профиля
3243 / 2295 / 496
Регистрация: 15.07.2013
Сообщений: 13,529
28.11.2017, 01:24 #2
Смущает меня строчка
#include <reg51.h>
Действительно ли нужна программа на ассемблере?
Если да, то могу предложить вариант для классического ассемблера Intel 51, если уточните задачу.
Что подразумевается под "временных меток длительностью 40 мс"?

P.S. В любом случае ваш код не может быть решением "задачи с таймером".
0
pyzhman
1008 / 449 / 62
Регистрация: 15.05.2012
Сообщений: 2,535
28.11.2017, 19:01 #3
Цитата Сообщение от northener Посмотреть сообщение
Смущает
Да, есть такие компиляторы.
0
paskal
450 / 299 / 28
Регистрация: 15.08.2011
Сообщений: 911
02.12.2017, 17:40 #4
Hunter217, Во первых, вы бы заметно облегчили задачу если бы сказали каким компилятором пользуетесь.
Во вторых кто выдает эту ошибку? Ассемблер, линковщик, или при запуске отладки она выскакивает?

По виду это напоминает keil, а ошибка похожа на попытку выполнения кода из ОЗУ, или наоборот, запись данных в код. А связано это может быть с тем что сегменты неправильно определены. У вас они кстати вообще не прописаны.
0
northener
пофигист широкого профиля
3243 / 2295 / 496
Регистрация: 15.07.2013
Сообщений: 13,529
03.12.2017, 02:04 #5
Цитата Сообщение от paskal Посмотреть сообщение
Во вторых кто выдает эту ошибку?
А кто кроме отладчика может выдать такую ошибку?
0
03.12.2017, 02:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2017, 02:04
Привет! Вот еще темы с ответами:

Задача на Ассемблере - Assembler
Регистры процессора i8086 загружены следующим образом: AX = 41E8h BX = A01Fh CX = C100h DX = 80A1h SI = 45C8h DI = 3E8Ch SP =...

задача на ассемблере - Assembler
Не знаю как решить(третий день мучаюсь( Помогите,пожалуйста, Используя команды операций над битами составить программу для упаковки...

Подскажите с таймером - Assembler
Привет всем! Язык: Ассемблер x86 ОС: Дос Компилятор: Fasm Немного не понял как работать со штатным таймером. Необходима...

Работа с таймером - Assembler
Ребята помогите очень нужна программа на attiny2313! При включении света запускается таймер далее если мы выключаем свет,таймер...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru