Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка (МПС)

.pdf
Скачиваний:
17
Добавлен:
04.06.2015
Размер:
1.2 Mб
Скачать

X5, X6 $ $ ,

$ $ % $

$&;

" $ $ ( X7);

$" $ «+.» "

# " &. ) & « »

% $

;

& « / » % . % « .»

& # $ $ , % « .» $ &

« »;

 

 

 

 

 

) *

 

 

 

 

 

 

 

 

n, /

 

 

 

 

 

 

 

 

 

 

X5

 

 

X6

 

 

 

 

 

U,

 

 

 

 

 

 

 

 

 

 

 

 

 

Y

 

 

 

 

 

+

 

 

 

 

UZ1

 

 

 

 

 

 

UZ2

 

 

X1

VS1

X2

 

VS3

 

 

 

 

 

 

 

 

 

X4

VS5

X3

VS7

X5

 

~U

 

 

 

 

 

 

 

X6

 

 

 

 

 

 

 

 

 

X7

X2

VS2

X1

 

VS4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

UA

 

 

 

 

 

X3

VS6

X4

VS8

 

 

 

 

 

,- #

 

 

 

 

 

"

 

!

 

%! '(

 

 

 

 

 

 

 

 

$%& %

#

 

 

 

0

1

 

 

 

 

 

 

 

 

 

 

“ - ”

 

 

 

 

 

 

. 1.6. ! " «0 " &»

«)», % "

% ;

«+», % " # #

& % ;

& « /,», # # " $

% % ;

$ $

% ;

«#», " " "

" .

11

1.3.6 " «& ) ! ) "»

& «3$" $&»

!$ $ $ '

# &. ! " . 1.7.

 

 

 

!

 

 

+

 

 

 

 

 

 

 

A2

 

 

DD1

VT1

 

A2

 

 

 

 

 

 

V

 

 

 

 

VD1

 

 

 

 

 

 

 

 

1

 

 

 

 

2

2

 

 

 

 

 

 

 

VT2

 

2

 

 

 

 

 

 

 

 

 

 

 

VD2

 

 

 

B1

 

 

 

 

A2

Y

 

 

 

 

 

 

 

 

VT3

 

A2

 

 

 

 

 

 

) *

 

 

 

VD3

 

A1

 

 

 

 

+% %, 0

 

 

 

 

 

 

 

 

 

VT4

 

2

 

 

 

 

 

 

 

 

 

 

 

VD4

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

α, / %1

 

 

 

 

,- #

 

 

 

 

 

 

n

 

 

"

 

1

 

 

# (

 

 

 

#

 

½

!

0

1

 

 

 

 

 

 

 

 

 

 

 

.%/

 

“ - ”

 

 

 

. 1.7. ! " «3$" $&»

, " $ :

& «+ &» %;

!$" $& &

&$ $ $ Y;

" %

& $ $ . ) % "

# « / $ »;

" # &

1, 1, 1, 1 & %

« »;

– & « / » % . % « .»

$& # $ $ , % « .» $ &

« »;

12

& « /,», # # "

& % ;

& «1/0,5», #& $ #

% !$ $ «1» !$ «1/2» % ;

«)/+», % "

$ ;

«+», #& " $

$ $ ;

$ # $ ;

& «%», # # " %

!$ % $ ;

«3$», % " ' !$

$ % .

13

2. * + ( + , + * (,

+ ' -1. ' .

' ) )

/ " '

, & & % " &

$ '.

# ) '

1.* & " " &

% (9 *);

2.( & 9 * %, &

" . ) $ & % "

$ & ;

3., & $ , &

.

# '

9 " " ' ",

$ . ) & 9 * $ $ ,

9 *, , % , "

# $ !$

" & .

: &$ , &$

( . 2.1.1), " , # 4 16 . % % " " & " , "

DDRAM (Display Data RAM), $ % "

$ " .

"#

1

2

3

4

0

1

2

3

4

5

6

7

8

9 10 11 12 13 14 15

$%

. 2.1.1. : &$ 9 *

14

" 4- 9 *,

# DDRAM:

– 1 0x00;

– 2 0x04;

– 3 0x01;

– 4 0x05.

DDRAM % . 2.1.1.

& DDRAM %

.

9 * % & CGRAM (Character Generator RAM),

$ , %

" CGRAM. 0

CGRAM . 2.1.2.

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

. 2.1.2. 0 9 *

15

6 $ - CGRAM &

$ ( . 2.1.2). , & &

" .

6 # ! "

9 * & , & #

$ . : " «2 "

/ » # :

RS (register select). 6 " , "

– . RS=0,

, $ RS=1, ;

R/W (read/write). 6 " % . + # % – (R/W=1) & (R/W=0).;

E (enable). $

;

DB4…DB7 (data bus). ! . 0 % #

DB0…DB3, &.

. 2.1.1 ,

.

0.2.1.1. 9 * HD44780

 

 

 

 

 

 

 

 

 

 

 

 

RS

RW

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

.

 

 

 

 

 

 

 

 

 

 

 

 

 

(

0

0

0

0

0

0

0

0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

0

0

0

0

0

1

1.52

 

 

 

 

 

 

 

 

 

 

 

 

 

2

0

0

0

0

0

0

0

1

I/D

S

37

%

 

 

 

 

 

 

 

 

 

 

 

2

0

0

0

0

0

0

1

D

C

B

37

 

 

 

 

 

 

 

 

 

 

 

 

+$

0

0

0

0

0

1

S/C

R/L

37

 

 

 

 

 

 

 

 

 

 

 

 

2

0

0

0

0

1

DL

N

F

37

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

1

ACG

ACG

ACG

ACG

ACG

ACG

37

CGRAM

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

0

0

1

ADD

ADD

ADD

ADD

ADD

ADD

ADD

37

DDRAM

 

 

 

 

 

 

 

 

 

 

 

'$

0

1

BF

AC

AC

AC

AC

AC

AC

AC

0

busy

 

 

 

 

 

 

 

 

 

 

 

« » & # %

# ".

« » #

%, #.

16

«% .» "

$ . - I/D=1,

# , I/D=0, # . / «S»

$ & " , I/D. - S=1, %, %, % #. - S=0,

" #.

«% » % # ,

'$ . / D

. - D=0, " , D=1, " . / +

, % . - C=0,

%. - C=1, %. / B

. - B=0, $ , B=1, $ .

«) » $ %

.

S/C

R/L

#

0

0

$

0

1

$

1

0

& $

1

1

& $

«% »

. - DL=1, 8-" % , DL=0,

4-" % . / N

. " 9 * %

HD44780. % " . ) "

51 53, " 52 54. ) N=0, % " %

51 52. - N=1, % "

% 9 *. / F

! ' . - F=1, 5x10 , F=0,

5x8 .

«% CGRAM» & /

CGRAM & .

«% DDRAM» &

DDRAM, ! & .

«0 1 ) busy » '$ BF (busy flag). - '$ , ,

- " #. : "

" % & .

! . 2.1.1 % % "

. : & , % &

. - &, % ,

!.

17

. )

9 " & % : 8-" 4-". ) & 8- $ % &

! DB7…DB0. )

' "

. 2.1.1 "

enable (E);

) & 4- $ % & & 4

! DB7…DB4. ) & & 4

8, : "

# RS, R/W ! 4 ' ! DB7…DB4; " -% #

! 4 ! DB3…DB0.

" $ & 4-"

.

) %

& $ & " % & '$ $

. * # " &:

1. ) % % &

40 $ , &

! .

2. ) % & «2

» ( .2.1.1), ! DB4..DB7 "

& % " % 5 . : "

" & " , % , &

& ! '. 6

& % &.

3. ) %

100 ( " 1 ). 4. ) «2 »

( .2.1.1), % $

%.

5. ) «2 %» ( . 2.1.1). : " "

.

) " " %. 6 CGRAM $ , % #

DDRAM, & # :

1." «2 DDRAM» "

. ,, % 5 2-"

, # " :

RS

 

RW

 

DB7

DB6

 

DB5

 

DB4

DB3

DB2

DB1

DB0

0

 

0

 

1

1

 

0

 

0

0

1

0

1

 

 

 

 

 

 

 

 

 

18

2. 2 RS, " , "

, % CGRAM ( . 2.1.2). ) " % $&

# " .

! ) ' %

# . ) $ & &

«E» # " .

) $ 1. # 1. * & " %

& &, . 2.1.3.

1

 

 

2

3

& - “

4

 

0

1

2

3

4

5

6

7

8

9

10 11 12 13 14 15

 

 

.2.1.3. 0 & 9 *

//--------------------------------------------------------------------

 

 

 

 

 

 

 

 

 

 

 

//Выходы:

 

 

 

 

 

 

 

 

 

 

 

//PC0...PC3 - DB4...DB7

 

 

 

 

 

 

 

 

 

//PC4

- R/W

 

 

 

 

 

 

 

 

 

 

//PC5

- RS

 

 

 

 

 

 

 

 

 

 

//PC6

- E

 

 

 

 

 

 

 

 

 

 

//Подключение необходимых библиотек, в том числе библиотеки

//контроллера ATmega32:

#include <iom32v.h> #include <macros.h>

//Объявление переменных (пояснение переменных дается ниже):

 

 

unsigned char data=0,start_delay=0,gain=0;

 

 

 

 

unsigned char i,i1,i2,i3,delay=0;

 

 

 

 

 

unsigned char stop_init=0;

 

 

 

 

 

 

 

unsigned char mass[60]={0x08, 0x04, 0x24, 0x2F, 0x24,

0x2F,

0x24,

0x2F,

0x08,

0x09,

0x24,

0x28,

0x2A,

0x28,

0x2A,

0x28,

0x09,

0x02,

0x22,

0x22,

0x2A,

0x29,

0x2A,

0x2B,

0x25,

0x24,

0x24,

0x25,

0x25,

0x28,

0x22,

0x2D,

0x2A,

0x28,

0x25,

0x20,

0x24,

0x2F,

0x2A,

0x2A,

0x2A, 0x25, 0x22,

0x22};

 

 

 

 

 

 

 

//инициализация портов ввода-вывода. Порт С инициализируется на вывод //информации:

19

void port_init(void)

{

PORTA = 0xFF; DDRA = 0x00; PORTB = 0xFF; DDRB = 0x00; PORTC = 0x00; DDRC = 0xFF; PORTD = 0xFF; DDRD = 0x00;

}

//Инициализация таймера Т0, используемого для отсчета временных //интервалов:

void timer0_init(void)

{

TCCR0 = 0x00;

TCNT0 = 0x00; OCR0 = 0x7D; TCCR0 = 0x00;

}

//Обработка прерывания по совпадению таймера Т0:

#pragma interrupt_handler timer0_comp_isr:iv_TIM0_COMP void timer0_comp_isr(void)

{

 

 

 

CLI();

//запрет всех прерываний

i1+=1;

//инкремент cчетчика прерываний таймера Т0 i1

if(i1>=i2)

//когда i1 больше уставки i2,

{

 

 

 

delay=1;

//устанавливается флаг delay,

i1=0;

//обнуляется счетчик i1,

TCCR0=0x00;

//останавливается таймер Т0

TCNT0=0x00;

//и очищается его счетный регистр

}

 

 

 

SEI();

//разрешение всех прерываний

}

 

 

 

//Функция отправки данных на жидкокристаллический индикатор:

void data_ts(void)

 

{

 

 

 

switch(gain)

 

 

//опрос задания на задержку

{

 

 

 

case 1: i2=50; break;

//если gain=1, то задержка 50 мс

case 2: i2=5;

break;

// если gain=2, то задежка 5 мс

case 3: i2=1;

break;

// если gain=3, то задержка 1 мс

}

 

 

 

TCCR0=0x0B;

 

 

//запуск таймера Т0 для отсчета задержки

start_delay=1;

 

//установка флага начала отсчета

while(start_delay==1)

//пока идет задержка,

{

 

 

 

20