Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Программная часть. Программа опроса клавиатуры. 4.2. Листинг программы (CodeVision AVR C)





 

4.1. Блок-схема алгоритма

 

 

4.2. Листинг программы (CodeVision AVR C)

 

#define dig1 PORTC.0

#define dig2 PORTC.1

#define dig3 PORTC.2

#define dig4 PORTC.3

#define dig5 PORTC.4

#define dig6 PORTC.5

 

#define COMA PORTF.0

#define COMB PORTF.1

#define COMC PORTF.2

#define COMD PORTF.3

#define COME PORTF.4

#define COMF PORTF.5

#define COMG PORTF.6

#define COMPT PORTF.7

 

#define KBR0 PORTD.4

#define KBR1 PORTD.5

#define KBR2 PORTD.6

#define KBR3 PORTD.7

 

unsigned char const decode[16]={

0b00111111, 0b00000110, 0b01011011, 0b01001111,

0b01100110, 0b01101101, 0b01111101, 0b00000111,

0b01111111, 0b01101111, 0b01110111, 0b01111100,

0b00111001, 0b01011110, 0b01111001, 0b01110001

};

 

unsigned char digits[8]={1,2,3,4,5,6,7,8};

unsigned char place_count=1;

unsigned char key_buff=0;

unsigned char key=0;

 

interrupt [TIM1_OVF] void timer1_ovf_isr(void)

{

// Reinitialize Timer 1 value

TCNT1H=0xFB;

TCNT1L=0x1D;

 

set_place(place_count);

PORTC=dec_7seg(digits[place_count]);

key_buff=PORTD & 0xF0;

switch(key_buff)

{

case 0x10:

key=0x10;

break;

case 0x20:

key=0x20;

break;

case 0x40:

key=0x30;

break;

case 0x80:

dig4=0x40;

break;

default:

key=0;

}

key+=place_count;

if (place_count!= 6)

{

place_count++;

}

else

{

place_count=1;

}

}

 

void set_place(unsigned int place)

{

PORTA=0xFF;

switch(place)

{

case 1:

dig1=0;

break;

case 2:

dig2=0;

break;

case 3:

dig3=0;

break;

case 4:

dig4=0;

break;

case 5:

dig5=0;

break;

case 6:

dig6=0;

break;

}

}

 

unsigned char dec_7seg(unsigned char val_hex)

{

val_hex=decode[val_hex];

return val_hex;

}

 

 

Список использованных источников

 

1. Atmel AT90USB646/647/1286/1287 Preliminary Datasheet 7593D-AVR-07/06.

2. Texas Instruments TLV1544, TLV1548 Low Voltage 10-bit Analog-to-Digital Converters Datasheet.

3. Analog Devices AD5446 Datasheet, Revision C.

4. Kingbright Cx56 Datasheet.

5. ULN2803A Datasheet.

6. Транзисторы средней и большой мощности. Справочник, - М. Радио и связь, 1989.

Date: 2015-10-19; view: 409; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию