Аппаратное обеспечение персонального компьютера




Программа RTCALARM


Вы можете применять часы реального времени для решения двух задач. Во-первых, часы позволяют определить текущую дату и время с точностью до секунды. Во-вторых, будильник можно использовать для выполнения каких-либо действий в заданное время или периодически.

Так как установленное время срабатывания будильника хранится в памяти CMOS, питающейся от аккумулятора, будильник не будет сброшен при случайном выключении компьютера.

Для иллюстрации основных приемов работы с часами мы подготовили программу RTCALARM (листинг 4.1), которая выводит на экран текущую дату и время. Затем программа устанавливает будильник, который должен сработать через одну минуту и подать звуковой сигнал.

Перед установкой будильника программа подключает свой обработчик прерывания 4Ah. Это прерывание вызывается при срабатывании будильника. Перед завершением работы программа сбрасывает будильник и восстанавливает вектор прерывания4Ah.

Листинг 4.1. Файл rtcalarm\rtcalarm.с

// =====================================================

// Работа с часами реального времени

//

// (C) Фролов А.В, 1997

//

// E-mail: frolov@glas.apc.org

// WWW:    http://www.glasnet.ru/~frolov

//            или

//         http://www.dials.ccas.ru/frolov

// =====================================================

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <dos.h>

typedef struct _SYSTIMER_

{

  char hour;             // часы

  char min;              // минуты

  char sec;              // секунды

  unsigned year;         // год

  char month;            // месяц

  char day;              // число

  char daylight_savings; // флаг летнего времени

} SYSTIMER;

#define RTC_GET_TIME     2 // прочитать показания часов;

#define RTC_SET_TIME     3 // установить часы;

#define RTC_GET_DATE     4 // прочитать дату;

#define RTC_SET_DATE     5 // установить дату;

#define RTC_SET_ALARM    6 // установить будильник;

#define RTC_CLEAR_ALARM  7 // сбросить будильник.




Содержание  Назад  Вперед