.


:




:

































 

 

 

 





Proteus. Proteus (. 2.3) , , , PortG, 7- . .

 

2.3. Assembler

1.

, , . , , .

120 .

 


 

 

. 2.3. Proteus


, , . , , .

:

- [:] [] []

- [:] [] []

-

-

:

; []

. (;) . , .

 

label:.EQU var1=100 ; var1 100 ()
.EQU var2=200 ; var2 200
  ;

, , , .

 

2.

BYTE . , BYTE . , . (. CSEG DSEG). .

 

:

:.BYTE

 

:

.DSEG  
var1:.BYTE 1 ; 1 var1
table:.BYTE tab_size ; tab_size
.CSEG  
ldi r30,low(var1) ; Z
ldi r31,high(var1) ; Z
ld r1,Z ; VAR1 1

3.

CSEG . , . . , , . ORG . CSEG .

 

:

.CSEG

 

:

.DSEG  
vartab:.BYTE 4 ; 4
.CSEG ;
const:.DW 2 ; 0x0002 ;
mov r1,r0 ;

4.

DEF . . . .

 

:

.DEF _ =

 

:

.DEF temp=R16  
.DEF ior=R0  
.CSEG  
ldi temp,0xf0 ; 0xf0 temp (R16)
in ior,0x3f ; SREG ior (R0)
eortemp,ior ; temp ior ;

5.

DSEG . , . BYTE . . ORG . .

 

:

.DSEG

 

:

.DSEG ;
var1:.BYTE 1 ; 1 var1
table:.BYTE tab_size ; tab_size .
.CSEG  
ldi r30,low(var1) ; Z
ldi r31,high(var1) ; Z
ld r1,Z ; var1 r1

6.

EQU . . , , .

 

:

.EQU =

 

:

.EQU io_offset = 0x23

.EQU porta = io_offset + 2

.SEG ;
clr r2 ; r2
out porta,r2 ; A

7.

INCLUDE, , , EXIT, , INCLUDE. INCLUDE.

 

:

.INCLUDE "_"

 

:

; iodefs.asm:

.EQU sreg = 0x3f;

.EQU sphigh = 0x3e;

.EQU splow = 0x3d;

; incdemo.asm

.INCLUDE iodefs.asm;

in r0,sreg;

 

 

2.4.

 

1. ?

2. ?

3. ?

4. ?

5. SREG.

6. ?

7. ?

8. .

9. ?

10. ?

11. , .

12. ?

13. ?

 

2.5.

 

1. R16 15, 25 . 020h , 021h .

2. 4836 232. 2. 025h , 030h .

3. 0h 0Eh. Ȼ R0 09h.

4. 236 59. 23, . .

5. PORTB 044h. .

6. R17 023h. R17+SREG. , , .

7. 9701 32. 4. PORTC. .

8. (81+64)*(11225) OR 10011010b, .

9. R18 112, 18 . 020h , 021h .

10. 4801 209. PORTD. .

11. R19 0h. 8*R19. 4, . , , , 0238h.

12. 128h, 129h, 12ah , , 080h.

13. 7h 01h 7, NOT (0101001b OR 74).

14. (72+56)*(12215) XOR 01010011b, .

15. 012h, 033h, 0Ah. 22, . 1, .

 

: , , , .


3

,

. , , , .

:

;

;

AtmelAVRStudio;

-31.100;

;

.

3.1.

 

, - . .

, , , UDR , :

 

.CSEG   Start:     M1:   M2:     M3:     LDI R16,Low(RAMEND) OUT SPL,R16 LDI R16,High(RAMEND) OUT SPH,R16 .equ Byte = 50 .equ Delay = 20   LDI R16,Byte OUT UDR,R16 LDI R17,Delay   DECR17 NOP BRNEM1   OUTUDR,R16   LDI R17,Delay DEC R17 NOP BRNE M2 OUT UDR,R16   LDI R17,Delay DEC R17 NOP BRNEM3 RJMP Start ; ; ; ; -; ; 1 ; ; ; 0? ; 0 ; ; ; ;

.

 

    M2:   LDI R17,Delay DEC R17 NOP BRNE M2  

 

CALL (ICALL, RCALL, CALL) RET.

:

 

.CSEG   Start:     Wait: M1: LDI R16,Low(RAMEND) OUT SPL,R16 LDI R16,High(RAMEND) OUT SPH,R16 .equ Byte = 50 .equ Delay = 20   LDI R16,Byte OUT UDR,R16   RCALL Wait OUT UDR,R16 RCALL Wait OUT UDR,R16 RCALL Wait OUT UDR,R16 RCALL Wait RJMP Start LDI R17,Delay DEC R17 NOP BRNE M1 RET ; ; ; ;

 

, . , .

, , , .

 

3.2.

 

. . 3.1. . , .

(RESET) , INT0 INT0. FLASH- IVSEL (MCUCR). - BOOTRST.

I , . 1 I . . I RETI.

. , . . 1 . , , .

, , , .

. . , . AVR- .

, . .

CLI . CLI, CLI.

 

3.1

  $0000 RESET , , , JTAG-
  $0002 INT0 0
  $0004 INT1 1
  $0006 INT2 2
  $0008 INT3 3
  $000A INT4 4
  $000C INT5 5
  $000E INT6 6
  $0010 INT7 7
  $0012 TIMER2 COMP - 2
  $0014 TIMER2 OVF - 2
  $0016 TIMER1 CAPT - 1
  $0018 TIMER1 COMPA - 1
  $001A TIMER1 COMPB - 1
  $001C TIMER1 OVF - 1
  $001E TIMER0 COMP - 0

. 3.1

  $0020 TIMER0 OVF - 0
  $0022 SPI, STC SPI
  $0024 USART0, RX 0
  $0026 USART0, UDRE 0
  $0028 USART0, TX 0
  $002A ADC
  $002C EE READY
  $002E ANALOG COMP
  $0030 TIMER1 COMPC - 1
  $0032 TIMER3 CAPT 3
  $0034 TIMER3 COMPA - 3
  $0036 TIMER3 COMPB - 3
  $0038 TIMER3 COMPC - 3
  $003A TIMER3 OVF 3
  $003C USART1, RX 1
  $003E USART1, UDRE 1
  $0040 USART1, TX 1
  $0042 TWI 2-
  $0044 SPM READY

 

3.3.

 

4 . . 4 . , , 3 . , 1 , . , 4 . .

4 . 2- , I SREG.

 

3.4.

 

, R16, R17, R18 PE6 (INT6). , , . 3.23.5.

3.2

EIMSK

               
INT7 INT6 INT5 INT4 INT3 INT2 INT1 INT0
/ / / / / / / / /
               

 

INT0INT7 I SREG 1, . EICRA EICRB , : , . , . .

3.3

EIMSK

               
TICIE3 OCIE3A OCIE3B TOIE3 OCIE3C TOIE3C
/ / / / / / /
               

 

3.4

- EICRB

               
ICS71 ICS70 ICS61 ICS60 ICS51 ICS50 ICS41 ICS40
/ / / / / / / / /
               

 

74 INT7INT4, I SREG EIMSK. , , . 3.5. INT7INT4 . , , , , . . , , XTAL, XTAL. , , , . , , .

 

3.5

ISCN1 ISCN0
    INTn
    INTn
    , INTn,
    , INTn,

 

.include "m128def.inc"

.dseg

.org $0100

.cseg

.org $0000

jmp Init

.org $000e ; PE6 (INT6)

jmp int_666

Init:

ldi r16,low(ramend)

out spl,r16

ldi r16,high(ramend)

out sph,r16

;

ldi r16,0b00100000

out EICRB,r16

ldi r16,0b01000000 ;

out EIMSK,r16

clr r16

cbi ddre,6

sei

gogogo:

nop

nop

nop

nop

nop

jmp gogogo

int_666:

ldi r16,1

ldi r17,1

ldi r18,1

reti

 

6- PINE (. 3.1).

 

 

. 3.1. I/O View

 

3.5.

 

1. .

2. , ?

3. .

4. CALL RCALL.

5. , ?

6. .

7. ?

8. .

 

3.6.

 

1. R16 73521. 3. .

2. R18 48411. 3. .

3. R20 76758. 6. .

4. R22 4716. 6. .

5. R17 95123. 7. .

6. - PE4 24 41, 100.

7. - PE4 27 38, 56.

8. PE6 R17, 2.

9. PD1 R18, 2.

10. - 0 100 R16.

11. - 0 255 R21.

12. PE5 - 0.

13. PD3 - 0.

14. PE7 1.

15. PD0 1.

 

: , , , .


4

. , , .

:

;

;

.

:

;

;

Atmel AVRStudio;

-31.100;

;

.

.

 

 

4.1.

 

7- (. 4.1).

. 4.1. 7-

 

. . , . , -31.100 (. 4.2).

 

. 4.2. 7- :

;

 

: .

(. 4.3). - (R1R3) . (DC1DC2). , .

 

. 4.3.

 

(RD) (. 4.4). . , . , , . 7- , , , , , , .

. 4.4.

 

4.2.

 

2 .

DD2 159437 (74ACT574) . 8‑ PA . PC.3. VT1VT8, DD3 HC138. PC.0 PC.2.

-31.100 . CS0CS7. DD4 74HC138 (15647). PB.0, PB.4 PB.5. - 74HC595 LC ( ), CS2. ( SW1SW8) DD13 HCT165 (55649). PB.3 , PB.1 .

 


4.3.

 

.include "m128def.inc"

.equ Sgm_A = 0b01111111

.equ Sgm_B = 0b10111111

.equ Sgm_D = 0b11011111

.equ Sgm_E = 0b11101111

.equ Sgm_F = 0b11110111

.equ Sgm_C = 0b11111011

.equ Sgm_H = 0b11111101

.equ Sgm_G = 0b11111110

.cseg

.org 0

jmp INIT

 

.equ SymbolB = (Sgm_A&Sgm_C&Sgm_D&Sgm_E&Sgm_F&Sgm_G)

.equ SymbolS = (Sgm_A&Sgm_E&Sgm_F)

.equ SymbolU = (Sgm_B&Sgm_C&Sgm_D&Sgm_F&Sgm_G)

.equ SymbolI = (Sgm_B&Sgm_C&Sgm_D&Sgm_E&Sgm_F)

.equ SymbolR = (Sgm_A&Sgm_B&Sgm_E&Sgm_F&Sgm_G)

 

String:.DB ;

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,SymbolR,SymbolI,SymbolU,SymbolS,SymbolB,0xFF,0xFF,0xff,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xff,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xff,0xFF,0xFF,0xFF,0xFF,0xFF

 

INIT: ldi R16,0xFF out ddrA,R16 ;

ldi R16,0b00001111

out ddrC,R16 ;

; -

clr R17

clr R18

clr r19

clr r20

clr r25

clr r24

clr r23

clr r22

clr r21

ldi R28,low(String) ;

ldi R29,high(String)

lsl R28

rol R29

ldi r20,0x1f ;

add r28,r20

Start:

out portC,R17 ;

mov R30,R28 ; Z

mov R31,R29

add R30,R17

adc R31,R18

 

lpm R2,Z ; Z R2

out portA,R2 ;

cbi portC,3 ;

;

sbi portC,3

dec R19 ;

brne PC-1

 

ldi R16,0xFF ;

out portA,R16

cbi portC,3

sbi portC,3

inc R17 ;

andi R17,7 ; ( )

 

dec r25 ;

brne pc-1

dec r24

brne pc-1

dec r23

brne pc-1

dec r22

brne pc-1

dec r21

brne start

 

dec r28 ;

dec r20 ;

brne start ;

;

ldi r20,0x1f ;

add r28,r20 ;

jmp start ;

 

Proteus . 4.5.

 

 

. 4.5. Proteus

 

 

4.4.

 

1. ?

2. .

3. .

4. 7‑ 31.100?

5. 7‑ ?

6. 7‑ ?

7. ?

 

4.5.

 

-31.100, 7- , :

1. 0h Fh -.

2. Fh 0h -.

3. 0h Fh -.

4. Fh 0h -.

5. BSUIR-xxxxxx, xxxxxx -.

6. BSUIR-xxxxxx, xxxxxx -.

7. BSUIR-xxxxxx, xxxxxx .. -.

8. BSUIR-xxxxxx, xxxxxx .. -.

9. π -.

10. -.

11. 2 5- -.

12. , 2 -.

13. , 2 -.

14. 10 -.

15. 10 -.

 

: , , , .

 

 


5

. (), , .

 

 

5.1.

 

, , . . , . (), . , (. 5.1).

. 5.1.

 

, , . , (. 5.2). .

. 5.2.

. . (. 5.3). , , . . , . , .

 

. 5.3.

 

. () , . , , . , . , . , . , , . . , .. , , , .

() , , . , . , .


 

5.2.

 

( ) ( ). , 90. , : , , , 90, , , , (. 5.4).

 

. 5.4.

 

, . , , . , (. 5.5).

 

. 5.5.

 

, . ( ). .


 

5.3.

 

( ) . , , , . (). 90 . , .

, , , , . ( ).

, . . .

 

5.4.

 

( ) , , . , , .

. , . , .

 

5.5.

 

, , , . , . 0 9 . 16- , ( , , ). , . . (. 5.6) .

. 5.6. :

7-; 16-; 5×7

 

50 20 C, 10 . 10 , . .

 

5.6. SC-1602 BULT

 

SC-1602 BULT () 2 16 . . 5.7, . 5.1.

 

. 5.7. SC-1602 BULT

 

5.1

SC-1602 BULT

VCC  
GND  
Contrast  
RS   ("1" , "0" )

. 5.1

R/W   ("1" , "0" )
E   /
DB0DB7 714 0 7

 

SC-1602 BULT:

5×7 ;

HD44780 ;

5 .

 

. 5.8, . 5.9.

. 5.8. SC-1602 BULT

 

:

;

();

() ( . 8- . 192 );

( );

;

() ( );

.

 

 

. 5.9.


 

/ 4- 8- . 4- . . 4- . 5.10. . 5.11.

 

. 5.10.

. 5.11.

5.7.

 

-31.100 (. 5.12) . CS0CS7. DD4 74HC138 (15647). PB.0, PB.4 PB.5.

 

. 5.12.

 

( SW1SW8) DD13 HCT165 (55649). PB.3 , PB.1 .

PF.0PF.3, PE.2, PD.5 PD.7 .

 

 

5.8.

 

1. ?

2. .

3. .

4. .

5. SC-1602 BULT ?

6. SC-1602 BULT 4- .

7. / ?

8. ?

 

5.9.

 

-31.100, () :

1. Ȼ R20, 15h, R21, AFh.

2. Ȼ R20, EBh, R21, 3Fh.

3. -Ż R20, D0h, R21, AAh.

4. -Ż R20, 56h, R21, 6Dh.

5. AFh, .

6. 231, .

7. 01111011b, 16- .

8. 11110001b, 16- .

9. , .

10. , .

11. , .

12. , 20, 4F, 23 FF .

13. , 20, 2D, 2B 2A .

14. , .

15. , .

 

5.10.

 

-31.100, ѻ 2014 .

. , lcd_print_symbol, lcd_1st_line lcd_2nd_line .

 

include "m128def.inc"

.cseg

.org 0000

jmp Init

Init:

ldi R16,0x00 ; , 0400

out SPL,R16 ;

ldi R17,0x04

out SPH,R17 ;

;

sbi DDRD,5 ; R/W

sbi DDRD,7 ; RS

sbi DDRE,2 ; E

ldi R16,0b00001111 ; DB7DB4

sts DDRF,R16

cbi PortD,5; R/W = 0 (Write)

;

clr r13

clr r14

dec R13

brne PC-1

dec R14

brne PC-3

cbi PortD,7 ;RS = 0

ldi R16,0b0011 ; DB7 = 0, DB6 = 0, DB5 = 1, DB4 = 1

sts PortF,R16 ;

sbi PortE,2 ;

clr r13 ;

dec r13 ;

brne pc-1

cbi PortE,2 ;

;

dec R13

brne PC-1

dec R14

brne PC-3

ldi R16,0b0011 ; DB7=0,DB6=0,DB5=1.DB4=1

sts PortF,R16

sbi PortE,2 ;

;

call delay

cbi PortE,2 ;

call delay

ldi R16,0b0011 ; DB7 = 0,DB6 = 0,DB 5= 1, DB4=1

sts PortF,R16

sbi PortE,2

;

call delay

cbi PortE,2

ldi R16,0b0010 ; 4- :

;DB7 = 0, DB6 = 0, DB5 = 1, DB4 = 0

sts PortF,R16 ;

sbi PortE,2 ;

;

call delay

cbi PortE,2 ;

ldi R16,0b0010 ; 4-

;DB7 = 0, DB6 = 0, DB5 = 1, DB4 = 0

sts PortF,R16

sbi PortE,2

call delay

cbi PortE,2

; 5 7

ldi R16,0b1000 ;N = 1, F = 0

sts PortF,R16

sbi PortE,2

call delay

cbi PortE,2

;

ldi R16,0b0000 ;DB7 = 0, DB6 = 0, DB5 = 0, DB4 =0

sts PortF,R16

sbi PortE,2

call delay

cbi PortE,2

ldi R16,0b1000 ; D = 0, C = 0, B = 0

sts PortF,R16

sbi PortE,2

call delay

cbi PortE,2

;

ldi R16,0b0000

sts PortF,R16

sbi PortE,2

call delay

cbi PortE,2

ldi R16,0b0110 ; I/D = 1, S = 0

sts PortF,R16

sbi PortE,2

call delay

cbi PortE,2

;

ldi R16,0b0000

sts PortF,R16

sbi PortE,2

call delay

cbi PortE,2

ldi R16,0b1111 ; D = 1, C = 1, B = 1

sts PortF,R16

sbi PortE,2

call delay

cbi PortE,2

;

start:

call lcd_1st_line ;

ldi r20,0x20

call lcd_print_symbol ; " " 0x20

ldi r20,0x20 ; " " 0x20

call lcd_print_symbol

ldi r20,0xA0 ; "" 0xA0

call lcd_print_symbol

ldi r20,0xA1 ; "" 0xA1

call lcd_print_symbol

ldi r20,0xA9 ; "" 0xA9

call lcd_print_symbol

ldi r20,0xA5 ; "" 0xA5

call lcd_print_symbol

ldi r20,0x50 ; "" 0x50

call lcd_print_symbol

ldi r20,0x20 ; " " 0x20

call lcd_print_symbol

ldi r20,0x2D ; "-" 0x 2D

call lcd_print_symbol

ldi r20,0x20 ; " " 0x20

call lcd_print_symbol

ldi r20,0xA8 ; "" 0xA8

call lcd_print_symbol

ldi r20,0xA5 ; "" 0xA5

call lcd_print_symbol

ldi r20,0x4B ; "" 0





:


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


:

:

80% - .
==> ...

1498 - | 1330 -


© 2015-2024 lektsii.org - -

: 1.986 .