Текст программы лабораторной работы №1
Структура *.с – файла: · Набор заголовков · Набор функций · Основной блок программы
Набор заголовков – список подключаемых модулей к программе. Пример: #include “ADuC842.h”
Набор функций – ряд функций, выполняющих определенные действия Пример: функция задержки (void - ключевое слово в языке C++ и ряде других языков высокого уровня, стоящее перед определением функции и означающее, что она не возвращает никакого значения): void Delay(int count) { int i; for(int i=0;i<count;i++); } Пока процессор «вхолостую» прогоняет цикл, программа не продолжает свою работу. Для вызова этой функции используем следующий код: void main(void) { ……………………. Delay(10000); ……………………. }
Основной блок программы – содержит те операторы, которые поочередно начнут выполняться после запуска программы.
#include "ADuC831.h" // Включение в текст описания регистров // специального назначения ADuC831.h
//Передача одного символа по RS232 от стенда на компьютер void Wsio(unsigned char ch) { TI=0; // Обнуление флага завершения посылки SBUF=ch; // Инициализация посылки символа ch while(!TI); // Ожидание завершения посылки }
//Получение символа по RS232 через СОМ порт от компьютера unsigned char Rsio(void) { unsigned char ch; // Декларирование переменной ch while(!RI); ch=SBUF; RI=0; return ch; }
//Передача набора символов void Type(char *s) { char n=0; while(*s) Wsio(*s++); }
//Инициализация передачи данных void SIO_Init() { T3CON = 0x83; //CD = 3 T3FD = 0x2D; SCON = 0x52; ES=0; }
//Основной блок программы void main(void) { int j; SIO_Init(); //Инициализация
Wsio('>');//Передача одного символа '>' Wsio('>'); Wsio('>');
Type("This is string of char."); //Передача строки из символов Type("Press 'e' key."); //Передача строки из символов if(Rsio() == 'e') Type("You press 'E'."); // Производится сравнение полученного символа с ожидаемым
Type("Press 'q' key."); //Передача строки из символов if(Rsio() == 'q') Type("You press 'Q'.");
while(1) // Блок зацикливания { Wsio(Rsio()); //Выводим все прочтенные символы в COM-порт. } }
|