Составители:
18
{--------------------------------------------------------------}
{ Const Declarations }
{--------------------------------------------------------------}
{ Var Declarations }
{$IDATA}
var s:array[0..2]of byte;key,kn:byte; adccode:word;
{--------------------------------------------------------------}
{ functions }
{$I C:\EMUL\Work\KeyLib4PascaL.pas}//== ДОБАВИТЬ
САМОСТОЯТЕЛЬНО
//===================================================
procedure Init_Ports; //== задаем направления передачи данных
begin //== через порты, а также начальные значения
DDRC:=$FF;//== или так DDRC:=%11111111;
DDRD:=$70;//== значение $70 для примера (пересчитать)
DDRE:=$F;//== значение $F для примера (пересчитать)
PORTE:=%11111111;//== гасим индикаторы, подавая на
end; //== аноды светодиодов нули через инверторы
//===================================================
procedure Init_Timer0_Async;
begin
TCCR0:=$xx;//== байт xx - замените
рассчитанным значением (например
F2)
OCR0:=$xx; //== байт xx - дан в задании (например 00)
ASSR.x:=1; //== бит AS0=1 (позицию x - определите из таблицы,
например 4)
TIMSK.x:=1;//== бит OСIE0=1 (позицию x - определите из таблицы,
например 6)
end;
//==================================================
var b: bool*ean;//== вспомогательная логическая переменная
interrupt TIMER0COMP;//== обработчик прерывания при совпадении
begin //== кодов TCNT0 и OCR0
b:=not b; //== меняем состояние светодиода
PORTx.x:= b; имя порта и номер бита рассчитать
(например PORTB.0)
end;
//==================================================
{--------------------------------------------------------------}
{ Main Program }
{$IDATA}
begin
EnableInts;//== снятие запрета с прерываний
Init_ports;
Init_Timer0_Async;
Страницы
- « первая
- ‹ предыдущая
- …
- 16
- 17
- 18
- 19
- 20
- …
- следующая ›
- последняя »