Программирование микропроцессорных систем в интегрированной среде программирования keil-c: Методические указания к лабораторным работам, страница 24

7.4.  Что такое клавиатура и как она подключается к выводам параллельного порта ввода-вывода микроконтроллера.

7.5.  Как производится опрос клавиатуры? Приведите пример программы опроса кнопок.

7.6.  Расскажите, как строятся программы на языке программирования C?

7.7.  Как описать порт на языке программирования С-51?

7.8.  Какие особенности написания программ для микроконтроллера?

7.9.  Что находится в файле ADuC812.h?

7.10.  Почему в конце программы этой лабораторной работы использован бесконечный цикл?

7.11.  Как заносится программа во внутреннюю память микроконтроллера?

7.12.  Какой файл предназначен для занесения во внутреннюю память микроконтроллера?


Приложение

Исходный текст программы для лабораторной работы №1

/*========================= main.c ===========================

Главная программа лабораторной работы

Проект        ОБУЧАЮЩИЕ ПРОГРАММЫ

Программист   ……………………..

Версия        1.00

Написана      ……………….

Последнее    

изменение     ………….

программы

============================================================*/

#include <stdlib.h>  //Модуль стандартного ввода-вывода

#include <stdio.h>    //Модуль стандартного ввода-вывода

#include "global.h"   //глобальные переменные проекта

#include "flash.h"    //Модуль работы с внутренней flash памятью данных

#include "sound.h"    //Модуль генерации звуковых сигналов

/*********************************************************************

Подпрограмма инициализации последовательного порта

*********************************************************************/

void InitUART(void)

{SCON   = 0x50;                                //включить 8-ми битовый асинхронный режим работы

 RCAP2L = 0xd7; RCAP2H = 0xFF;  //установить скорость работы

 TL2    = 0xd7; TH2    = 0xFF;           //последовательного порта 9600 бит/с

 T2CON  = 0x34;                               /*использовать таймер T2 для синхронизации приема

                                                                и передачи COM порта*/

 ES = 1;                                             //разрешить прерывания от COM порта

}

void Kalibr(void){}               //Это подпрограмма-заглушка, которая пока ничего не делает

void Kalibr(void){}               //Это подпрограмма-заглушка, которая пока ничего не делает

/*********************************************************************

Подпрограмма инициализации микроконтроллера

*********************************************************************/

void init(void)

{PCON|=ALE_Off;      //Выключить сигнал ALE

 PLLCON=F_12MGz; //Настроить внутренний генератор на частоту 12 МГц

 InitUART();                //Команда вызова подпрограммы инициализации последовательного порта

}

void main(void)

{init();               //Настроить микросхему контроллера

 while(1)           //Команда реализации бесконечного цикла

   {Kalibr();            //Команда вызова подпрограммы калибровки

    SetKoeff();        //Команда вызова подпрограммы установки коэффициентов

   }

}


Листинг программы для лабораторной работы №5

C51 COMPILER V7.01  MAIN                                                                   01/07/2004 11:05:23 PAGE 1  

C51 COMPILER V7.01, COMPILATION OF MODULE MAIN

OBJECT MODULE PLACED IN .\obj\main.obj

COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND PRINT(.\lst\main.lst) OBJECT(.\obj\main.ob

                    -j)

stmt level    source

   1          /*========================= main.c ===========================

   2          Программа лабораторной работы №5

   3         

   4          Проект        ОБУЧАЮЩИЕ ПРОГРАММЫ

   5          Программист   ::::::::..

   6          Версия        1.00

   7          Написана      ::::::.

   8         

   9          Последнее    

  10          изменение     ::::.

  11          программы

  12          ============================================================*/