10. C:
#include <avr/io.h>
#include <compat/ina90.h>
void waitd()
{
register unsigned short int t = 0;
while(++t) _NOP();
}
int main()
int led = 13;
{
void setup() {
DDRC |= 0x20;
pinMode(led, OUTPUT);
while(1)
}
{
PORTC |= 0x20;
void loop() {
waitd();
digitalWrite(led, HIGH);
PORTC &= 0x5F;
delay(1000);
waitd();
digitalWrite(led, LOW);
}
delay(1000);
return 1; }
}
11.
12.
13.
14.
15.
16.
17.
18.
19. #ifndef mt10t7_h
#define mt10t7_h
#include "WProgram.h"
class mt10t7
{
public: mt10t7();
void Strob_WR1(); //Стробирование линии WR1
void WriteNumber(int Pos,int Num); //Запись одной цыфры
void WriteSymbol(int Pos,int Num); //Запись одного символа
void WriteNumberComma(int Pos,int Num); //Запись одной
цифры с точкой
void WriteNumbers(double Num); //Запись числа
void ClearDisplay(); //Очистка дисплея
void InitDisplay(); //Разблокировка экрана
void Strob_ADR(); //Стробирование адреса
};
#endif // #ifndef mt10t7_h
20. #ifndef mt10t7_cpp
#define mt10t7_cpp
#define A0 8 //8 нога
#define WR1 9 //9 нога
#define DB0 10 // 10 нога
#define DataBus 2 //смещение в порту для вывода данных
static int
array[]={0xEE,0x06,0xF2,0xD6,0x1E,0xDC,0xFC,0x86,0xFE,0xD
E,0x01}; //Создаем массив с цифрами от 0 до 9 и .
static int
array1[]={0xBE,0x7C,0xE8,0x76,0xF8,0xB8,0xEC,0x3E,0x06,0x4
6,0x68,0xEE,0xBA,0x9E,0x30,0xDC,0x6E}; //Создаем массив
с символами A,b,C,d,E,F,G,H,I,J,L,O,P,q,r,S,U
int Data; //
int DataMask; //
#include "mt10t7.h"
21. //
//Конструктор - вызывается всегда при создании экземпляра
класса ье10е7
//
mt10t7::mt10t7()
{
DDRB=B00111111; // Порт к которому подключен монитор - его
настройка //-кроме 7 и 8 все ноги порта ставим на выход
//см Cheatcheet PB0-7
pinMode(A0, OUTPUT); //настраиваем ноги на вывод
pinMode(WR1, OUTPUT); //настраиваем ноги на вывод
InitDisplay(); //Разблокироваем экран
ClearDisplay(); //Очищаем дисплей
}
22. void mt10t7::WriteNumber(int Pos,int Num)
{
Data=Pos;
PORTB=Data<<DataBus; //Записываем номер знакоместа
Strob_ADR();
//Стробируем адрес
Data=array[Num]>>4; //
PORTB=Data<<DataBus; //Записываем данные в нижний тетрайду
Strob_WR1();
//Стробируем линию WR1
Data=array[Num]&0x0F; //
PORTB=Data<<DataBus; //Записываем данные в верхний тетрайду
Strob_WR1();
//Стробируем линию WR1
}
void mt10t7::WriteSymbol(int Pos,int Num)
{
Data=Pos;
PORTB=Data<<DataBus; //Записываем номер знакоместа
Strob_ADR();
//Стробируем адрес
Data=array1[Num]>>4; //
PORTB=Data<<DataBus; //Записываем данные в нижний тетрайду
Strob_WR1();
//Стробируем линию WR1
Data=array1[Num]&0x0F; //
PORTB=Data<<DataBus; //Записываем данные в верхний тетрайду
Strob_WR1();
//Стробируем линию WR1
}