Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

Ví dụ chế độ 2

#include<at89x51.h> //khai báo thư viện cho VĐK 89x51


void delay(void); //khi báo nguyên mẫu hàm con tạo trễ
main()
{
TMOD=0x20; //chọn timer1, chế độ 2, 8Bit, tự nạp lại
TH1=0x00; //nạp giá trị cho TH1
TL1=0xFE; //nạp giá trị cho TL1
P1_5=1; //khởi tạo chân P1_5 ở mức cao
while(1) //vòng lặp vô hạn
{
delay(); //gọi chương trình con tạo trễ
P1_5=~P1_5; //đảo tín hiệu chân P1_5
}
}
1 04/10/2023
Hàm tạo trễ 1ms ( tần số thạch anh 12MHz)

void delay_ms(int time){


while(time--){
TMOD = 0x01;
TH0 = 0xfc;
TL0 = 0x18;
TR0 = 1; // cho phep timer hoat dong
while(!TF0);
TF0 = 0;
TR0 = 0; // Ngung timer
}
}
2 04/10/2023
#include <REGX52.H>
char chu[] = {0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00,
0x10};
unsigned char low, high;
main(){ Ví dụ về sử dụng counter
P0=chu[0];
TMOD=0x06; // Counter 0, che do 2
TR0 = 1;
TH0=0x00;
TL0=0x00;
while(1) {
high = TH0;
low = TL0;
if(low>9) TL0=0x00;
P0=chu[low];
}
}
3 04/10/2023
A
Sơ đồ mô phỏng đếm sự kiện
B C D E F G H J K

C1
1 10k

1
22pF U1 100
X1 19
XTAL1 P0.0/AD0
39
CRYSTAL 38
C2 P0.1/AD1
37
P0.2/AD2

2
18 36
XTAL2 P0.3/AD3
35
2 22pF
P0.4/AD4
34
P0.5/AD5
33
P0.6/AD6
9 32
RST P0.7/AD7
21
P2.0/A8
22
P2.1/A9
3 23
P2.2/A10
29 24
PSEN P2.3/A11
30 25
ALE P2.4/A12
31 26
EA P2.5/A13
27
C3 P2.6/A14
28 R17
10nF P2.7/A15
10k
4 1 10
P1.0 P3.0/RXD
2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0
4 13
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0
R10 6
P1.5 P3.5/T1
15
10k 7 16
P1.6 P3.6/WR
5 8 17
P1.7 P3.7/RD
Dem
AT89S52

4 04/10/2023
Ngắt Timer
A B C D E F G
Ví dụ: Hãy viết chương trình điều khiển 3 LED (D1-D3) nhấp nháy ở
0 cổng P1 và hẹn giờ cứ 10 giây lại bật đèn LED D4 , đèn sẽ tắt sau vài
giây. Hãy sử dụng bộ Timer0 để hẹn giờ, tần số của 8051 là XTAL =
12MHz
C1
1
U1

1
22pF 19 39
XTAL1 P0.0/AD0
X1 P0.1/AD1
38
CRYSTAL 37
C2 P0.2/AD2
18 36
C3 XTAL2 P0.3/AD3

2
35
2 10nF P0.4/AD4
34
P0.5/AD5
22pF 33
P0.6/AD6
9 32
RST P0.7/AD7
21
P2.0/A8
22
P2.1/A9
3 R10 P2.2/A10
23
10k 29 24
PSEN P2.3/A11
30 25
ALE P2.4/A12
31 26
EA P2.5/A13
27
D1 P2.6/A14
28
P2.7/A15
330
4 1 10
D2 2
P1.0 P3.0/RXD
11
P1.1 P3.1/TXD
330 3 12
P1.2 P3.2/INT0
4 13
D3 5
P1.3 P3.3/INT1
14
P1.4 P3.4/T0
330 6 15
P1.5 P3.5/T1
7 16
D4 P1.6 P3.6/WR
5 5 8
P1.7 P3.7/RD
17 04/10/2023
U1

1
22pF 19 39
XTAL1 P0.0/AD0
X1 P0.1/AD1
38
CRYSTAL 37
C2 P0.2/AD2
18 36
C3 XTAL2 P0.3/AD3

2
35
2 10nF P0.4/AD4
34
P0.5/AD5
22pF 33
P0.6/AD6
9 32
RST P0.7/AD7
21
P2.0/A8
22
P2.1/A9
3 R10 P2.2/A10
23
10k 29 24
PSEN P2.3/A11
30 25
ALE P2.4/A12
31 26
EA P2.5/A13
27
D1 P2.6/A14
28
P2.7/A15
330
4 1 10
D2 2
P1.0 P3.0/RXD
11
P1.1 P3.1/TXD
330 3 12
P1.2 P3.2/INT0
4 13
D3 5
P1.3 P3.3/INT1
14
P1.4 P3.4/T0
330 6 15
P1.5 P3.5/T1
7 16
5 D4 8
P1.6 P3.6/WR
17
P1.7 P3.7/RD
330
AT89S52

FILE NAME: Ngattimer.pdsp


DESIGN TITLE: Ngattimer.pdsp
9 PATH: D:\My Project\uC\Kit
BY: @AUTHOR
A B C D E F G H

6 04/10/2023
Ứng dụng đếm sản phẩm và hiển thị
A B
trên LED 7 thanh
C D E F G H J

C1
1 10k

1
22pF U1 100
X1 19
XTAL1 P0.0/AD0
39
CRYSTAL 38
C2 P0.1/AD1
37
P0.2/AD2

2
18 36
XTAL2 P0.3/AD3
35
2 22pF
P0.4/AD4
34
P0.5/AD5
33
P0.6/AD6
9 32
RST P0.7/AD7
21
P2.0/A8
22
P2.1/A9
3 23
P2.2/A10
29 24
PSEN P2.3/A11
30 25
ALE P2.4/A12
31 26
EA P2.5/A13
C3 P2.6/A14
27 R17 R4
28 10k 10k
10nF P2.7/A15

4 1 10
P1.0 P3.0/RXD
2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0
4 13
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0
R10 6
P1.5 P3.5/T1
15
7 16 GIAM
10k P1.6 P3.6/WR
5 8 17
P1.7 P3.7/RD
TĂNG
AT89S52

7 04/10/2023
Chương trình

8 04/10/2023
A Điều khiển ngắt theo mức
B C D E F G H J

C1
1 10k

1
22pF U1 100
X1 19
XTAL1 P0.0/AD0
39
CRYSTAL 38
C2 P0.1/AD1
37
P0.2/AD2

2
18 36
XTAL2 P0.3/AD3
35
2 22pF
P0.4/AD4
34
P0.5/AD5
33
P0.6/AD6
9 32
RST P0.7/AD7
21
C3 P2.0/A8
22
10nF P2.1/A9
3 23
P2.2/A10
29 24
PSEN P2.3/A11
30 25
ALE P2.4/A12
31 26
EA P2.5/A13
P2.6/A14
27 R17 R19
D1 D2 P2.7/A15
28 10k 10k
R10
4 10k 1 10
P1.0 P3.0/RXD
220 2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0
220 4 13
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0
6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/WR
5 8 17
P1.7 P3.7/RD
Ngat Thuong
AT89S52

9 04/10/2023
10 04/10/2023
11 04/10/2023

You might also like