- •С и с т е м а к о м а н д о д н о к р и с т а л ь н ы х м и к р о к о н т р о л л е р о в с е м е й с т в а m c s 5 1 у ч е б н о – м е т о д и ч е с к о е п о с о б и е
- •1. Способы адресации операндов
- •2. Система команд мк
- •Djnz r5,again ;
- •3. Правила написания программ на языке assembler
- •Метка операция операнд(ы) комментарии
- •3.1. Метка
- •3.2. Операция
- •3.3. Операнды
- •3.4. Комментарий
- •Директивы ассемблера
- •4.1. Директивы символических определений
- •Пример:
- •Ozu_org xdata 0800h; Адрес начала области внешнего озу.
- •4.2. Директивы резервирования и инициализации памяти
- •4.3. Директивы управления состоянием ассемблера
- •Задания для самостоятельной проработки материала
Задания для самостоятельной проработки материала
Разработать программу для тестирования внутреннего (IRAM) и внешнего двухкилобайтного (ERAM) ОЗУ. Адреса внешнего ОЗУ с 0800Н по 0FFFH. Проверочные коды 55Н и ААН.
Разработать программу для обнуления ячеек с адреса 09Н по 70Н внутреннего ОЗУ (IRAM) и области ячеек с 0800Н по 0900Н внешнего (ERAM) ОЗУ.
Разработать программу для сохранения данных регистров нулевого банка (IRAM) во внешнем ОЗУ (ERAM), начиная с адреса 0900Н.
Разработать программу для передачи данных из внешнего ОЗУ (ERAM) с адреса 0А00Н по 0А0FH в регистры 1 и 2 банков внутреннего ОЗУ (IRAM).
Разработать программу для подсчета числа внешних импульсов на входе P3.4 (T0) SMC за одну секунду, результат счета разместить в 20Н и 21Н ячейках IRAM.
Разработать программу для сложения многобайтных чисел.
Разработать программу для вычитания многобайтных чисел.
Разработать программу для сдвига двухбайтного содержимого ячеек 10Н и 11Н влево на один разряд.
Разработать программу, обеспечивающую подсчет 10 нулевых импульсов на входе Т1 (P3.5), после чего установить в “1” все разряды порта Р2.
Разработать программу, обеспечивающую последовательную выдачу “1” в разряды порта Р1, при поступлении на вход INT0=0 наступает прерывание и в порт Р1 выдать число 55Н.
Разработать программу, обеспечивающую подсчет числа импульсов на входе Т1, при первом переполнении счетчика обнулить Р1, при втором переполнении в порт выслать ААН.
Разработать программу, обеспечивающую вывод “0” (через 1 секунду) в разряды порта Р2, при INT0 = 0 наступает прерывание и в порт Р2 высылается код 33Н.
Разработать программу, обеспечивающую: если Р3.0 = 1, а Р3.1 = 0, начать счет импульсов счетчиком Т0. При Р3.1 = 1 счет прекратить.
Разработать программу, обеспечивающую эффект “ бегущая 1 “ порте Р2, время переключения разрядов порта 1 секунда (сформировать таймером Т1).
Разработать программу инвертирования всех программно доступных битов в области IRAM с 20Н по 2FH.
Разработать программу, формирующую серию из 10 прямоугольных импульсов в разряде порта Р2.0, длительность импульса 65535 микросекунд.
Библиографический список:
Однокристальные микроЭВМ.- М.: МИКАП, 1994. - 400 с.
Система команд однокристальных микроконтроллеров семейства MCS51
Учебно-методическое пособие к выполнению практической работы по курсам
“Однокристальные микроконтроллера”, “Цифровые устройства автоматики”
Составитель Константин Аркадьевич Харахнин