.


:




:

































 

 

 

 


̳ , , MCS-51 EV8031, , .

, , Ѳ. , , , MCS-51 EV8031; EV8031 MCS-51.

Keil uVisioun3.

1.1. ̳ 8051

 

1.1.1. 8051

8051 ​​ . 1.1.

. 1.1. 8051

8051 - , (CPU). , ' , 8051. / P1 - P3, . (EA, ALE, PSEN, RD / WR) ' , / RST.

̳ 8051 , , . ( ) , , .

8051 , . 8051 ( , '), 8052, .

̳ 8051 , , . 1.2.

. 1.2. 8051

8051 :

XTAL XTAL2 - ;

PSEN - , ' ;

ALE - ' / ;

EA - , ';

RST - ;

P0 - P3 - / ;

Vss Vcc - .

P0, P2 P3 / , , . , P0 ' 8 16- , , / , . P2 ' 8 16- .

P3 8051 :

P3.0 - ;

P3.1 - ;

P3.2 - INT0;

P3.3 - INT1;

P3.4 - 0;

P3.5 - 1;

P3.6 - ';

P3.7 - '.

P3 8051.

1.1.2. 8051

̳ 8051 ': ' ' . ' ( on $ chip) '. - 8051 ' .

' , (EPROM), (EEPROM) $ '. EPROM EEPROM, . 8051 ' ', , ' , .

' ' , , .

' ', 64 , 16- . ' , 8051, 4, 8 16 . ' , , .. ' 16- . (PC), $ (DPTR). DPTR .

' 8051 . 1.3.

. 1.3. ' 8051

(on-chip) ' 8051. ' : 128 ', (Special Function Registers, SFR). , . 1.4.

. 1.4.

, , . ' 8051 , 0x20 0x2F. , 128- SETB CLR. , 0x0 0x7F. , ', '.

0x20, λ.

8051 4 . 0.

R0 0x00, R1 - 0x01, , R7 0 0x07. , , 1, R0 0x08, R1 - 0x09 R7 - 0x0F.

0x80 (. 1.5).

(Special Function Registers, SFR) , , / , , . , , . . 1.1

. 1.5.

1.1.

- OFOH
PSW ODOH
SP - 81H
DPTR - (DPH) 83H
(DPL) 82H
P0 0 80H
P1 1 90H
P2 2 OAOH
P3 3 OBOH
IP OB8H
IE OA8H
TMOD / 89H
TCON / 88H
TH0 0 ( ) 8CH
TL0 0 ( ) 8AH
TH1 1 ( ) 8DH
TL1 1 ( ) 8BH
SCON 98H
SBUF 99H
PCON 87H

. , .

8051 , , . 8051, . 1.15.

8051 5 : , , - INT0 ( P3.2) INT1( P3.3); - 0 1; (. . 1.6). .

. 1.6. 8051

, , , . 1.1. , INT0 ( 1 . 1.1), 0 INT0 ( 2) .. 8051 ( 5 ). 8052 2 ( 6). IP.

̳ , TCON.

- , IE.

, INT0 INT1

8051. INT0 INT1 1 0 IT0 IT1 TCON. ITx (x = 0,1), 1-0 INTx . , INTx .

INTx IEx TCON, ,-, . IEx , INTx. INTx , IEx $ .

INT0 INT1 ( ) :

;

P3.2 / P3.3;

IE0 IE1.

(TH0 - TL0 0, TH1 - TL1 1 TH2 - TL2 2). 0xFF THx - TLx (x = 1, 2, 3) TFx, . 0 1 TCON, TF0 TCON.5, TF1 - TCON.7.

TF0 TF1 .

- TI RI (. . 1.1). RI TI , . , . , .

. , . LCALL $ , :

, ;

;

RETI - , - IE IP.

, , , .

/ 8051 8- / , P0- P3 , .

-, . / . 1.7.

. 1.7. /

P0 , P1 - P3 - , . - , . / .

P0 P2 , ', ' / , . / P0 . 1.8.

. 1.8. / P0

P0 , . 1.12, / . P0 / 10 (. 1.9).

. 1.9. 0 /

P0 , . P1 - P3 򳺿, P0. / P1 - P3 .1.10.

. 1.10. / P1 - P3

P1 - P3 , ' , , P0, . 0 2, 0 '. 0 , . 2 , 16 .

P1, P2 P3 , P0, / , , P0. P0, P1, P2 P3 .

P3 . ֳ - (P3.0 - P3.7) P3.

/ , , . , , , --. , $ , . :

ANL - , : ANL P1, ;

ORL - λ, : ORL P2, ;

XRL - λ, : XRL 3, ;

JBC - , : JBC P1.1, LABEL;

CPL - , : CPL 3.3;

INC - , : INC P2;

DEC - , : DEC P2;

DJNZ - , : DJNZ P1, LABEL;

MOV PX.Y, C - C Y X;

SET PX.Y - Y X;

CLR PX.Y - Y X.

/ 8051 , , .

 

1.2.1 Բֲ в

. , , . , , .

:

;

;

;

,

- .

:

;

;

;

;

;

³ .

, .

1.2.2 ²

䳿 , . ( 1.11) , - ֲ.

. 1.11

, , , - . ³ ( ), , . , .

- .

 

1.2.3 Ͳ

1.2.4

, . :

1. ' ();

2. .

. , ' , . , , , , . . . 1.12

1.12

, V1 , R1, R2 R3. - V2, u (t). ij,

,

V2. , . , . u 1(t) .

, , '. , .

. .1.13 1. V1 , V2 , .

. 1.13

.

:

.

V1,V2. V2, . , 0 R2 , V2. V2 .

R2 , V2 , .

.1.14

 

 

1.3

1.3.1 в

. - , Ux (. 1.15).

. 1.15

г

,

Nk , ;

Δ U ;

;

N () .

, , . , , . ,

,

.

, , = . , , , , .

- () - . . , , 䳿.

. . n- 2n-1 , 2n-1 .

. . , . , - () . 1.16

. 1.16

, , , . . . Ux. , , 'Stop' . . . , . .

. . . , , . . , .

. . , . . , , . AD7801 ( ) LM358 ( ) ( 1.17). 1.7 , . 0x8000h 0x8002h .

Ux ( J5), .

. 1.17 -8051

 

 

1.3.2 ² в

- Uk : Ux - N(1) . N(1) , .

(. 1.18) , , , - . - . SW, . ∆Uk. t1 Uk= Ux= U1 SW, .

qu uk , N1=u1/qu

. 1.18 .

 

1.3.3 ί в

: δ, δ . , -, δ .

. N Nx , , .=0 qx. , - xk 99 100 k, Nx, 99. ³, .

γ= qx/x∙100=100/ N. , 1/2qx , Nqx 1/2qx. , N=98 xk=98qx+qx/2. 97,5qx 98,5qx, Nk=98. qx/2.

 

 

2.1 ˲ֲ

ϳ INT0

 

ϳ INT1

ϳ vivod

#include<reg51.h> Keil
unsigned char xdata *DAC_LO=0x8000; DAC_LO 8000-
unsigned char xdata *DAC_HI=0x8002; DAC_HI 8002-
unsigned char xdata *PRT=0x8003; PRT 8003-
unsigned char xdata *HI=0xA000; HI A000-
unsigned char xdata *LI=0xB000; LI 000-
unsigned int mode,min,max,s3,m3,s2,m2,s1,m1; ()
sbit p=P1^7; 7 1
void moda() interrupt 1 using 1 { ϳ INT0, moda,
If (mode<3) { mode
mode++; } mode
else { mode>3, 䳿
mode=0; }} mode
void nol() interrupt 2 using 1 { ϳ INT1, nol,
max=0; max, ( max)
min=0xFFFF; } min FFFF, ( min)
void vivod(unsigned int x) { ϳ
s3=x/1000; , ,
m3=x%1000;
s2=m3/100;
m2=m3%100;
s1=m2/10;
m1=m2%10;  
x=(s3<<12)+(s2<<8)+(s1<<4)+m1;
*LI=x&0x00FF;
*HI=(x&FF00)>>8; } 9- 10-
void main() {
unsigned int i,j,sum,Res,k;
IE=0x85; IE ( INT1 i INT0)
TCON=0x5; TCON ( , )
*PRT=0x80; ϳ
while(1) { 񳺿
for (i=0;i<1024;i++) { , 0 1024
*DAC_LO=i&0xFF; ³ 8- ( () 1111 1111)
*DAC_HI=(i&0x300)>>8; ³ 9- 10- ( 11 0000 0000)
for(j=0;j<1;j++) {} , ,
if (p==0) { ( , 0, 򳺿 , )
if (k<=20) { k
sum=sum+i; sum, , sum
k=k+1; } k k
else { k>22, 䳿
Res=sum/20; ij sum 22( ) Res
k=0; k
sum=0; } sum
if (Res<min) { Res,
min=Res; } Res
if (Res>max) { Res,
max=Res; } Res
for (j=0;j<100;j++) {} ,
i=0;
Switch (mode) { , mode
case 0: { , , mode 0, 䳿
vivod (Res); Res
break; } case
case 1: { , , mode 1, 䳿
vivod (min); min
break; } case
case 2: { , , mode 2, 䳿
vivod (max); max
break; } case
default: { , , mode 0,1,2, 䳿
vivod (Res); Res
break; } } default
}}}}

ϳ , , , , 8051, Ѳ, , , - , Keil uVisioun3.

: MCS-51 EV8031 20- , , INT1, INT0. , , , (, .)

28 , : , , ; 17 , .



<== | ==>
| , , .
:


: 2017-02-28; !; : 655 |


:

:

, .
==> ...

1720 - | 1537 -


© 2015-2024 lektsii.org - -

: 0.119 .