.


:




:

































 

 

 

 


18




, , .

, VD1. , RC0 1 . for, . . .

void delay(void) //

{

unsigned int i; //

for(i = 0; i < 50000; i++)

;

}

void main(void)

{

PORTC = 0;

TRISC = 0;

while(1)

{

PORTCbits.RC0 = 1;

delay();

PORTCbits.RC0 = 0;

delay();

}

}

, delay . PIC18 1 () TCY, :

TCY = 4/FOSC.

FOSC, 4 TCY = 1 .

for 50000 i 50000. 100000 0,1 .

C18 , . Delay10KTCYx(n), , 10000 TCY.

0,5 , .. 500000 , 4 TCY = 1 n, 500000 / 10000 = 50. , :

Delay10KTCYx(50).

18, delays.h. 1 :

void main(void)

{

PORTC = 0;

TRISC = 0;

while (1)

{

PORTCbits.RC0 = 1; // VD1

Delay10KTCYx(50); // 0,5

PORTCbits.RC0 = 0; // VD1

Delay10KTCYx(50); // 0,

}

}

15. 18 : , , .

PIC18F242, / (PORTA, PORTB, PORTC). .

 

 

, ( 1) RC0-RC3 ( 0) RC4-RC7 .

void main(void)

{

PORTC = 0; //

TRISC = 0; //

PORTC = 0b11110000; // 11110000

while(1) //

;

}

18 . p18f242.h.

, PORTxbits.Rxy,

x (A, B, C); y .

:

PORTAbits.RA0 = 1; // RA0 = 1

PORTBbits.RB1 = 0; // RB1 = 0

void main(void)

{

PORTC = 0;

TRISC = 0;

while(1)

{

PORTCbits.RC0 = 1; // VD1

PORTCbits.RC0 = 0; // VD1

}

}

void main(void)

{

PORTB = 0; //

PORTC = 0; //

TRISB = 0b10000001; // RB0 RB7 ,

TRISC = 0; //

while(1)

{

if(PORTBbits.RB0 == 0)

PORTCbits.RC0 = 1;

else

PORTCbits.RC0 = 0;

}

}

 

 


16. - PIC-: -, .

- ( × ): 8×2, 16×1, 16×2, 16×4, 20×1, 20×2, 20×4, 40×2, 40×4. HD44780 -. 14- , , 2 ( ) . . 1.

-

  VDD (+ 5 )
  VSS ()
  VEE
  RS
  R/W /
  E
7-14 D0-D7

 

HD44780 .

4- 8- , . , . 4- 7- , , 8- .

:

- RS ( ), , ;

- R/W ( / ), (R/W = 1 , R/W = 0 );

- (), .

, . , ..

HD44780 , : (DR), (IR), (DDRAM), (CGRAM), (AC), (BF). DR IR. RS: RS = 0 (IR), RS = 1 (DR).

DR ( ) (DDRAM) (CGRAM) , (AC). , IR, , .. . IR 7- AC, (BF).

, 80 , , . 40 . . , , , , 80×1 20×4, 40 .

-, , .2. ( ) 00H0FH, - 40H4FH.

BF 1, , 0 . , , , , , BF - .

2.2. -

- Hitachi HD44780 MCC18 , PIC18. xlcd.h. . , , xlcd.h.

4- , 7 . .3 .

3

RS RB5
R/W RB6
E RB4
D4 RB0
D5 RB1
D6 RB2
D7 RB3

 

:

 

BusyXLCD ?
OpenXLCD ,
putsXLCD
SetDDRamAddr
WriteCmdXLCD

 

, . :

 

DelayFor18TCY 18
DelayPORXLCD 15
DelayXLCD 5

 

.

BusyXLCD() - ? BF Hitachi HD44780. BF = 1, , BF = 0, . :

while(BusyXLCD());

OpenXLCD(unsigned char lcdtype) . ledtype , xlcd.h. , :

OpenXLCD(FOUR_BIT & LINES_5X7);

FOUR_BIT 4- , LINES_5X7 - 5×7 .

WriteCmdXLCD(unsigned char cmd) , cmd , xlcd.h. :

WriteCmdXLCD(CURSOR_OFF & BLINK_OFF);

CURSOR_OFF , BLINK_OFF .

SetDDRamAddr(unsigned char addr) () . Hitachi HD44780. BusyXLCD(). :

while(BusyXLCD()); //

SetDDRamAddr(0x40); // 0x40

//

 

 


17. - PIC-: , 18.

PIC18 - (), 0 UDD ( ) . 10- , . , , PIC18F242 6 . , . , , .

, , . . - (), . , , , , . , , , . , 20 .

, 2, 4, 8, 16, 32 64 . RC- 250 - , SLEEP.

, -.

- : ADRESH ADRESL. , :

- ; - .

ADRESH , - .

ADRESH, ADRESL.





:


: 2016-10-27; !; : 621 |


:

:

, .
==> ...

1548 - | 1359 -


© 2015-2024 lektsii.org - -

: 0.027 .