0 / 0 / 0
Регистрация: 15.09.2016
Сообщений: 6
1

Задача с таймером на Ассемблере

27.11.2017, 17:08. Показов 879. Ответов 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

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2017, 17:08
Ответы с готовыми решениями:

Проблема с таймером на ассемблере
Всем доброго времени суток. Я только начал изучать ассемблер. До этого работал только на C. Вроде...

Задача с таймером
Добрый день. Вопрос покажется тривиальным но я не смог найти ответ. Суть такая: мне надо на выходе...

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

Задача на мини-ассемблере
1. Написать программу определения заданной характеристики после- довательности четных чисел . 2....

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

P.S. В любом случае ваш код не может быть решением "задачи с таймером".
0
975 / 599 / 100
Регистрация: 15.05.2012
Сообщений: 3,530
28.11.2017, 19:01 3
Цитата Сообщение от northener Посмотреть сообщение
Смущает
Да, есть такие компиляторы.
0
460 / 309 / 29
Регистрация: 15.08.2011
Сообщений: 972
02.12.2017, 17:40 4
Hunter217, Во первых, вы бы заметно облегчили задачу если бы сказали каким компилятором пользуетесь.
Во вторых кто выдает эту ошибку? Ассемблер, линковщик, или при запуске отладки она выскакивает?

По виду это напоминает keil, а ошибка похожа на попытку выполнения кода из ОЗУ, или наоборот, запись данных в код. А связано это может быть с тем что сегменты неправильно определены. У вас они кстати вообще не прописаны.
0
пофигист широкого профиля
4422 / 2916 / 824
Регистрация: 15.07.2013
Сообщений: 16,789
03.12.2017, 02:04 5
Цитата Сообщение от paskal Посмотреть сообщение
Во вторых кто выдает эту ошибку?
А кто кроме отладчика может выдать такую ошибку?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2017, 02:04

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

Проблема с таймером
Здравствуйте. Вылез подводный камень при работе с таймером. var timer = setTimeout(function...

Тест с таймером
Здравствуйте. Вот решил сделать на языке Си тест с таймером. Например: задаю вопрос 2+2=?, а...

Работа с таймером
timeend= new Date(&quot;31 Jule 2015 22:29&quot;); timeend= new...


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

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

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