Quinn

New Member

Download miễn phí Đề tài Thiết kế mạch đồng hồ số có chuông sử dụng ngôn ngữ lập trình C


MỤC LỤC
4 Chương 1
4 GIỚI THIỆU VI ĐIỀU KHIỂN 8051
4 1.1 Lịch sử của vi điều khiển 8051
4 1.2 Cấu trúc chung của bộ vi điều khiển 80C51
4 1.3 Sơ đồ chân vi điều khiển 80C51
7 1.4 Phần cứng của vi điều khiển 80C51
7 1.4.1 Khối xử lý trung tâm ( Central Processing Unit
8 1.4.2 Bộ nhớ dữ liệu RAM / ROM
8 1.4.2.1 Bộ nhớ chương trình nội trú
10 1.4.2.2 Bộ nhớ dữ liệu nội trú
15 1.4.2.3 Bộ nhớ chương trình và bộ nhớ dữ liệu ngoại trú.
19 1.4.3 Bộ Timer/Counter
23 1.5 Các thanh ghi chức năng đặc biệt (SFR)
31 1.6 Cơ chế ngắt trong On-chip AT80C51:
31 1.6.1 Phân loại ngắt trong On-chip:
32 1.6.2.Các bước thực hiện ngắt.
32 1.6.3. Mức ngắt ưu tiên trong on-chip:
33 1.6.4. Nguyên lý điều khiển ngắt của AT8051:
36 Chương 2
36 LẬP TRÌNH C CHO VI ĐIỀU KHIỂN 36
36 2.1. Giới thiệu về ngôn ngữ C
36 2.2 Cơ bản về C
36 2.2.1 Các chỉ thị trước xử lý của Keil C
37 2.2.2. Các toán tử trong C
40 2.2.3. Các kiểu dữ liệu
41 2.2.4. Cấu trúc cơ bản của một chương trình C
41 2.2.5. Các lệnh cơ bản của C
44 2.3 C cho 8051
46 Chương 3
46 KẾT NỐI PHẦN CỨNG VÀ CHƯƠNG TRÌNH ĐIỀU KHIỂN
46 3.1 Kết nối phần cứng
47 3.2 Lưu đồ thuật toán
48 3.2.1 Lưu đồ chỉnh giờ
48 3.2.2 Lưu đồ chỉnh phút
49 3.3 Chương trình điều khiển đồng hồ số có chuông
53 3.4 Mô phỏng trên phần mềm Keil C


Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

sau đó nếu cơ chế ngắt được sử dụng thì nó sẽ truy cập tới địa chỉ quy định trong bảng vecter ngắt. Khi truy cập bộ nhớ chương trình, bộ VĐK sử dụng xung chọn /PSEN để điều khiển. Nếu on-chip làm việc với bộ nhớ chương trình nội trú thì chân phát ra xung chọn /PSEN không sử dụng. Nếu bộ VĐK làm việc với bộ nhớ chương trình ngoại trú thì chân phát ra xung chọn /PSEN được sử dụng. Khi đó nếu /PSEN = 0 thì cho phép bộ VĐK đọc bộ nhớ chương trình ngoài, ngược lại nếu /PSEN = 1 thì bộ VĐK chỉ làm việc với bộ nhớ chương trình nội trú.
1.3.2.2 Bộ nhớ dữ liệu nội trú.
Hình 1.5 Bộ nhớ dữ liệu trong
AT89C51 có bộ nhớ dữ liệu chiếm một khoảng không gian bộ nhớ độc lập với bộ nhớ chương trình. Dung lượng của RAM nội trú ở họ VĐK này là 128 Byte, được định địa chỉ từ 00h đến 7Fh. Phạm vi địa chỉ từ 80h đến FFh dành cho SFR. Tuy nhiên bộ VĐK cũng có thể làm việc với RAM ngoại trú có dung lượng cực đại là 64 Kbyte được định địa chỉ từ 0000h đến FFFFh.
Với vùng nhớ dành cho SFR, vùng nhớ này được định địa chỉ từ 80h đến FFh, và được truy cập bằng địa chỉ trực tiếp.
Các lệnh truy cập bộ nhớ dữ liệu nội trú:
- MOV A, : Chuyển dữ liệu từ toán hạng nguồn (các ô nhớ, thanh ghi có địa chỉ trực tiếp hay gián tiếp trong on chip, các giá trị trực hằng chứa trong câu lệnh) vào thanh ghi tích luỹ.
- MOV , : Chuyển dữ liệu từ toán hạng nguồn vào toán hạng đích (các ô nhớ, thanh ghi có địa chỉ trực tiếp hay gián tiếp trong on chip).
- MOV , A : Chuyển dữ liệu từ A vào toán hạng đích.
- MOV DPTR, #data16: Chuyển giá trị hằng 16 bit vào thanh ghi con trỏ dữ liệu.
- PUSH : Chuyển giá trị từ toán hạng nguồn vào ngăn xếp.
- POP : Chuyển giá trị từ ngăn xếp vào toán hạng đích.
- XCH A, : Chuyển đổi dữ liệu giữa toán hạng nguồn dạng byte với A.
- XCHD A,@Ri: Chuyển đổi nửa thấp của A với nội dung trong RAM tại địa chỉ là nội dung của Ri.
6F
6E
6D
6C
6B
6A
69
68
67
66
65
64
63
62
61
60
5F
5E
5D
5C
5B
5A
59
58
57
56
55
54
53
52
51
50
4F
4E
4D
4C
4B
4A
49
48
47
46
45
44
43
42
41
40
3F
3E
3D
3C
3B
3A
39
38
37
36
35
34
33
32
31
30
2F
2E
2D
2C
2B
2A
29
28
27
26
25
24
23
22
21
20
1F
1E
1D
1C
1B
1A
19
18
17
16
15
14
13
12
11
10
0F
0E
0D
0C
0B
0A
09
08
07
06
05
04
03
02
01
00 yyyyyyyyyyyyyyyyyyyyyyyy
7F
7E
7D
7C
7B
7A
79
78
77
76
75
74
73
72
71
70
Bank 3
Bank 2
Bank 1
Default register bank for R0-R7
1F
18
11
10
0F
08
07
00
2F
2E
2D2Cyyyyyyyyyyyyyyyyyyyyyyyyyyy2D
2C
2B
2A
29
28
27
26
25
24
23
22
21
20
General purpose RAM
30
7F
Byte Address Bit Address
Bit addressable
locations
Reset value of stack pointer
Hình 1.6 128 Byte thấp của RAM trong
F7
F6
F5
F4
F3
F2
F1
F0
E7
E6
E5
E4
E3
E2
E1
E0
D7
D6
D5
D4
D3
D2
-
D0
-
-
-
BC
BB
BA
B9
B8
B7
B6
B5
B4
B3
B2
B1
B0
AF
-
-
AC
AB
AA
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
9F
9E
9D
9C
9B
9A
99
98
97
96
95
94
93
92
91
90
8F
8E
8D
8C
8B
9A
89
88
87
86
85
84
83
92
81
80
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
FF
F0
E0
D0
B8
B0
A8
A0
99
98
90
8D
8C
8B
8A
89
88
87
83
82
81
80
B
ACC
PSW
IP
P3
IE
P2
SBUF
SCON
P1
TH1
TH0
TL1
TL0
TMOD
TCON
PCON
DPH
DPL
SP
P0
Byte address Bit address
Hình 1.7 Các thanh ghi chức năng đặc biệt (SFR)
1.3.2.3 Bộ nhớ chương trình và bộ nhớ dữ liệu ngoại trú.
Để tăng khả năng ứng dụng trong các lĩnh vực điều khiển, đo lường…bộ VĐK cho phép mở rộng không gian nhớ RAM ngoài đến 64 Kbyte và ROM ngoài đến 64 Kbyte khi cần thiết. Các IC giao tiếp ngoại vi cũng có thể được thêm vào để mở rộng khả năng xuất/nhập. Chúng trở thành 1 phần của không gian nhớ dữ liệu ngoài bằng cách định địa chỉ kiểu I/O ánh xạ bộ nhớ.
Khi bộ nhớ ngoài được sử dụng, cổng P0 không còn đảm nhận chức năng xuất/nhập nữa, mà nó trở thành kênh địa chỉ (A0…A7) và kênh dữ liệu đa hợp (D0…D7). Ngõ ra ALE chốt byte thấp của địa chỉ ở thời điểm bắt đầu của mỗi 1 chu kỳ bộ nhớ ngoài. Cổng P2 thường được dùng làm byte cao của kênh địa chỉ.
Hoạt động của các bộ nhớ ngoài thường được thực hiện theo kiểu sắp xếp đa hợp, nghĩa là: trong nửa chu kỳ đầu của chu kỳ bộ nhớ, byte thấp của địa chỉ được cung cấp bởi cổng P0 và được chốt nhờ tín hiệu ALE. Mạch chốt giữ cho byte thấp của địa chỉ ổn định trong cả chu kỳ bộ nhớ. Trong nửa chu kỳ sau của bộ nhớ, cổng P0 được sử dụng làm kênh dữ liệu, lúc này dữ liệu có thể được đọc hay ghi.
Hình 1.8 Truy cập bộ nhớ ngoài
Hình 1.9 Đồ thị thời gian quá trình nhận lệnh từ ROM ngoài
Bộ nhớ chương trình ngoài là bộ nhớ chỉ đọc, được cho phép bởi tín hiệu /PSEN. Khi có một EPROM ngoài được sử dụng, cả P0 và P2 đều không còn là các cổng I/O nữa. Khi bộ VĐK truy cập bộ nhớ chương trình ngoại trú, nó luôn sử dụng kênh địa chỉ 16 bit thông qua P0 và P2.
Một chu kỳ máy của bộ VĐK có 12 chu kỳ dao động. Nếu bộ dao động trên chip có tần số 12 MHz, thì 1 chu kỳ máy dài 1μs. Trong một chu kỳ máy điển hình, ALE có 2 xung và 2 Byte của lệnh được đọc từ bộ nhớ chương trình (nếu lệnh chỉ có 1 byte thì byte thứ 2 được loại bỏ). Khi truy cập bộ nhớ chương trình ngoại trú, bộ VĐK phát ra 2 xung chốt địa chỉ trong mỗi chu kỳ máy. Mỗi xung chốt tồn tại trong 2 chu kỳ dao động từ P2-S1 đến P1-S2, và từ P2-S4 đến P1-S5.
Để địa chỉ hoá bộ nhớ chương trình ngoại trú, byte thấp của địa chỉ (A0…A7) từ bộ đếm chương trình của bộ VĐK được xuất qua cổng P0 tại các trạng thái S2 và S5 của chu kỳ máy, byte cao của địa chỉ (A8…A15) từ bộ đếm chương trình được xuất qua cổng P2 trong khoảng thời gian của cả chu kỳ máy. Tiếp theo xung chốt, bộ VĐK phát ra xung chọn /PSEN. Mỗi chu kỳ máy của chu kỳ lệnh gồm 2 xung chọn, mỗi xung chọn tồn tại trong 3 chu kỳ dao động từ P1-S3 đến hết P1-S4 và từ P1-S6 đến hết P1-S1 của chu kỳ máy tiếp theo. Trong khoảng thời gian phát xung chọn thì byte mã lệnh được đọc từ bộ nhớ chương trình để nhập vào On chip.
Bộ nhớ dữ liệu ngoại trú
Hình 1.10 Truy cập bộ nhớ dữ liệu ngoài
Hình 1.11. Đồ thị thời gian chu kỳ đọc dữ liệu từ RAM ngoài
Hình 1.12. Đồ thị thời gian chu kỳ ghi dữ liệu vào RAM ngoài
Bộ nhớ dữ liệu ngoại trú được cho phép bởi các tín hiệu /WR và /RD ở các chân P3.6 và P3.7. VĐK truy cập bộ nhớ dữ liệu ngoài bằng địa chỉ 2 byte (thông qua cổng P0 và P2) hay 1 byte (thông qua cổng P0). Lệnh dùng để truy xuất bộ nhớ dữ liệu ngoài là MOVX, sử dụng hay DPTR hay Ri (R0 và R1) làm thanh ghi chứa địa chỉ.
Ở hình 1.10 ta thấy:
- /EA được nối với +Vcc để cho phép VĐK làm việc với bộ nhớ chương trình nội trú.
- /RD nối với đường cho phép xuất dữ liệu (/OE-Output Data Enable) của RAM.
- /WR nối với đường cho phép ghi dữ liệu (/WE-Write Data Enable) của RAM.
Nguyên lý truy cập bộ nhớ dữ liệu ngoại trú được thể hiện bằng các đồ thị thời gian ở trên. Tuy nhiên, tuỳ từng trường hợp vào nhiệm vụ ...
 
Top