ĐỒ ÁN MÔN HỌC 2 Trang 5
MỤC LỤC
Lời cảm ơn 3
Lời nói đầu 4
Chƣơng 1: KIẾN THỨC BỔ TRỢ
1.1 Tổng quan về vi điều khiển MCS-51 6
1.2 Kiến thức về ADC 0804 19
1.3 Kiến thức về TL082 21
1.4 Kiến thức về LM35 21
1.5 Kiến thức về LED 7 đoạn 22
Chƣơng 2: TÍNH TOÁN THIẾT KẾ VÀ THI CÔNG MẠCH
2.1 Thiết kế sơ đồ khối 24
2.2 Nguyên lý hoạt động và nhiệm vụ từng khối 24
2.3 Tính toán thiết kế mạch 25
2.4 Tổng hợp sơ đồ nguyên lý của mạch 29
2.5 Sơ đồ thuật toán cho chương trình điều khiển 30
2.6 Chương trình vi điều khiển 31
Chƣơng 3: KẾT QỦA
3.1Kết quả sau khi thi công mạch 37
3.2Hướng phát triển mạch 37
3.3Ứng dụng của mạch 37
Tài liệu tham khảo 38
ĐỒ ÁN MÔN HỌC 2 Trang 6
Chƣơng 1
KIẾN THỨC BỔ TRỢ
******
1.1 TỔNG QUAN VỀ VI ĐIỀU KHIỂN MCS-51
- Chương này giới thiệu tổng quan về họ vi điều khiển MCS-51(chủ yếu trên
AT89C51): cấu trúc phần cứng, sơ đồ chân, các thanh ghi, đặc tính lập trình và các đặc
tính về điện.
1.1.1 GIỚI THIỆU
- Họ vi điều khiển MCS-51 do Intel sản xuất đầu tiên vào năm 1980 là các IC thiết
kế cho các ứng dụng hướng điều khiển. Các IC này chính là một hệ thống vi xử lý
hoàn chỉnh bao gồm các các thành phần của hệ vi xử lý: CPU, bộ nhớ, các mạch giao
tiếp, điều khiển ngắt.
- MCS-51 là họ vi điều khiển sử dụng cơ chế CISC (Complex Instruction Set
Computer), có độ dài và thời gian thực thi của các lệnh khác nhau. Tập lệnh cung cấp
cho MCS-51 có các lệnh dùng cho điều khiển xuất / nhập tác động đến từng bit.
- MCS-51 bao gồm nhiều vi điều khiển khác nhau, bộ vi điều khiển đầu tiên là 8051
có 4KB ROM, 128 byte RAM và 8031, không có ROM nội, phải sử dụng bộ nhớ
ngoài. Sau này, các nhà sản xuất khác như Siemens, Fujitsu, … cũng được cấp phép
làm nhà cung cấp thứ hai.
- MCS-51 bao gồm nhiều phiên bản khác nhau, mỗi phiên bản sau tăng thêm một số
thanh ghi điều khiển hoạt động của MCS-51.
1.1.2 VI ĐIỀU KHIỂN AT89C51
- AT89C51 là vi điều khiển do Atmel sản xuất, chế tạo theo công nghệ CMOS có
các đặc tính như sau:
+ 4 KB PEROM (Flash Programmable and Erasable Read Only Memory), có khả
năng tới 1000 chu kỳ ghi xoá.
+ Tần số hoạt động từ: 0Hz đến 24 MHz
+ 3 mức khóa bộ nhớ lập trình
ĐỒ ÁN MÔN HỌC 2 Trang 7
+ 128 Byte RAM nội.
+ 4 Port xuất /nhập I/O 8 bit.
+ 2 bộ Timer/counter 16 Bit.
+ 6 nguồn ngắt.
+ Giao tiếp nối tiếp điều khiển bằng phần cứng.
+ 64 KB vùng nhớ mã ngoài
+ 64 KB vùng nhớ dữ liệu ngoài.
+ Cho phép xử lý bit.
+ 210 vị trí nhớ có thể định vị bit.
+ 4 chu kỳ máy (4 μs đối với thạch anh 12MHz) cho hoạt động nhân hoặc chia.
+ Có các chế độ nghỉ (Low-power Idle) và chế độ nguồn giảm (Power-down).
- Ngoải ra, một số IC khác của họ MCS-51 có thêm bộ định thời thứ 3 và 256 byte
RAM nội.
1.1.3 SƠ ĐỒ KHỐI AT89C51
ĐỒ ÁN MÔN HỌC 2 Trang 8
1.1.4 SƠ ĐỒ CHÂN AT89C51
Port 0: là port có 2 chức năng ở các chân 32 – 39 của AT89C51:
˗ Chức năng IO (xuất / nhập): dùng cho các thiết kế nhỏ. Tuy nhiên, khi dùng chức
năng này thì Port 0 phải dùng thêm các điện trở kéo lên (pull-up), giá trị của điện trở
phụ thuộc vào thành phần kết nối với Port.
+ Khi dùng làm ngõ ra, Port 0 có thể kéo được 8 ngõ TTL.
+ Khi dùng làm ngõ vào, Port 0 phải được set mức logic 1 trước đó.
˗ Chức năng địa chỉ / dữ liệu đa hợp: khi dùng các thiết kế lớn, đòi hỏi phải sử dụng
bộ nhớ ngoài thì Port 0 vừa là bus dữ liệu (8 bit) vừa là bus địa chỉ (8 bit thấp).
˗ Ngoài ra khi lập trình cho AT89C51, Port 0 còn dùng để nhận mã khi lập trình và
xuất mà khi kiểm tra (quá trình kiểm tra đòi hỏi phải có điện trở kéo lên).
Port 1: (chân 1 – 8) chỉ có một chức năng là IO, không dùng cho mục đích khác (chỉ
trong 8032/8052/8952 thì dùng thêm P1.0 và P1.1 cho bộ định thời thứ 3).
˗ Tại port 1 đã có điện trở kéo lên nên không cần thêm điện trở ngoài. Port 1 có khả
năng kéo được 4 ngõ TTL và còn dùng làm 8 bit địa chỉ thấp trong quá trình lập trình
hay kiểm tra.
˗ Khi dùng làm ngõ vào, Port 1 phải được set mức logic 1 trước đó.
Port 2 : (chân 21 – 28) là port có 2 chức năng:
˗ Chức năng IO (xuất / nhập): có khả năng kéo được 4 ngõ TTL. Khi dùng làm ngõ
vào, Port 2 phải được set mức logic 1 trước đó.
ĐỒ ÁN MÔN HỌC 2 Trang 9
˗ Chức năng địa chỉ: dùng làm 8 bit địa chỉ cao khi cần bộ nhớ ngoài có địa chỉ
˗ 16 bit. Khi đó, Port 2 không được dùng cho mục đích IO.
˗ Khi lập trình, Port 2 dùng làm 8 bit địa chỉ cao hay một số tín hiệu điều khiển.
Port 3: (chân 10 – 17) là port có 2 chức năng:
˗ Chức năng IO: có khả năng kéo được 4 ngõ TTL. Khi dùng làm ngõ vào, Port 3
phải được set mức logic 1 trước đó.
˗ Chức năng khác được mô tả trong bảng 1.1.
Bảng 1.1: Chức năng các chân của Port 3
Bit Tên Chức năng
P3.0 RxD Ngõ vào port nối tiếp
P3.1 TxD Ngõ ra port nối tiếp
P3.2 INT0 Ngắt ngoài 0
P3.3 INT1 Ngắt ngoài 1
P3.4 T0 Ngõ vào của bộ định thời 0
P3.5 T1 Ngõ vào của bộ định thời 1
P3.6 WR Tín hiệu điều khiển ghi dữ liệu lên bộ nhớ ngoài.
P3.7 RD Tín hiệu điều khiển đọc từ bộ nhớ dữ liệu ngoài.
NGUỒN:
˗ Chân 40: VCC = 5V ± 20%
˗ Chân 20: GND
PSEN (Program Store Enable): (chân 29) cho phép đọc bộ nhớ chương trình mở
rộng đối với các ứng dụng sử dụng ROM ngoài, thường được nối đến chân OC
(Output Control) của ROM để đọc các byte mã lệnh. PSEN sẽ ở mức logic 0 trong thời
gian AT89C51 lấy lệnh.Trong quá trình này, PSEN sẽ tích cực 2 lần trong 1 chu kỳ
máy. Mã lệnh của chương trình được đọc từ ROM thông qua bus dữ liệu (Port0) và
bus địa chỉ (Port0 + Port2).
˗ Khi 8951 thi hành chương trình trong ROM nội, PSEN sẽ ở mức logic 1.
ĐỒ ÁN MÔN HỌC 2 Trang 10
ALE/PROG (Address Latch Enable / Program): (chân 30) cho phép tách các đường
địa chỉ và dữ liệu tại Port 0 khi truy xuất bộ nhớ ngoài. ALE thường nối với chân
Clock của IC chốt (74373, 74573).
˗ Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có thể
được dùng làm tín hiệu clock cho các phần khác của hệ thống. Xung này có thể cấm
bằng cách set bit 0 của SFR tại địa chỉ 8Eh lên 1. Khi đó, ALE chỉ có tác dụng khi
dùng lệnh MOVX hay MOVC. Ngoài ra, chân này còn được dùng làm ngõ vào xung
lập trình cho ROM nội (PROG).
EA /VPP (External Access): (chân 31) dùng để cho phép thực thi chương trình từ
ROM ngoài. Khi nốichân 31 với Vcc, AT89C51 sẽ thực thi chương trình từ ROM nội
(tối đa 8KB), ngượclại thì thực thi từ ROM ngoài (tối đa 64KB).
˗ Ngoài ra, chân EA được lấy làm chân cấp nguồn 12V khi lập trình cho ROM.
RST (Reset): (chân 9) cho phép reset AT89C51 khi ngõ vào tín hiệu đưa lên mức 1
trong ít nhất là 2 chu kỳ máy.
X1,X2: Ngõ vào và ngõ ra bộ dao động, khi sử dụng có thể chỉ cần kết nối thêm thạch
anh và các tụ như hình vẽ trong sơ đồ. Tần số thạch anh thường sử dụng cho AT89C51
là 12Mhz.
1.1.5 TỔ CHỨC BỘ NHỚ
ĐỒ ÁN MÔN HỌC 2 Trang 11
˗ Bộ nhớ của họ MCS-51 có thể chia thành 2 phần: bộ nhớ trong và bộ nhớ ngoài.
˗ Bộ nhớ trong bao gồm 4 KB ROM và 128 byte RAM (256 byte trong 8052). Các
byte RAM có địa chỉ từ 00h – 7Fh và các thanh ghi chức năng đặc biệt (SFR) có địa
chỉ từ 80h – 0FFh có thể truy xuất trực tiếp. Đối với 8052, 128 byte RAM cao (địa chỉ
từ 80h – 0FFh) không thể truy xuất trực tiếp mà chỉ có thể truy xuất gián tiếp (xem
thêm trong phần tập lệnh).
˗ Bộ nhớ ngoài bao gồm bộ nhớ chương trình (điều khiển đọc bằng tín hiệu PSEN)
và bộ nhớ dữ liệu (điều khiển bằng tín hiệu RD hay WR để cho phép đọc hay ghi dữ
liệu). Do số đường địa chỉ của MCS-51 là 16 bit (Port 0 chứa 8 bit thấp và Port 2 chứa
8 bit cao) nên bộ nhớ ngoài có thể giải mã tối đa là 64KB.
Tổ chức bộ nhớ trong:
˗ Bộ nhớ trong của MCS-51 gồm ROM và RAM. RAM bao gồm nhiều vùng có
mục đích khác nhau: vùng RAM đa dụng (địa chỉ byte từ 30h – 7Fh và có thêm vùng
80h – 0FFh ứng với 8052), vùng có thể địa chỉ hóa từng bit (địa chỉ byte từ 20h – 2Fh,
gồm 128 bit được định địa chỉ bit từ 00h – 7Fh), các bank thanh ghi (từ 00h – 1Fh) và
các thanh ghi chức năng đặc biệt (từ 80h – 0FFh).
˗ Các thanh ghi chức năng đặc biệt (SFR – Special Function Registers):
ĐỒ ÁN MÔN HỌC 2 Trang 12
˗ Các thanh ghi có thể định địa chỉ bit sẽ có địa chỉ bit bắt đầu và địa chỉ byte trùng
nhau. Ví dụ như: thanh ghi P0 có địa chỉ byte là 80h và có địa chỉ bit bắt đầu từ 80h
(ứng với P0.0) đến 87h (ứng với P0.7). Chức năng các thanh ghi này sẽ mô tả trong
phần sau.
+ RAM nội: chia thành các vùng phân biệt: vùng RAM đa dụng (30h – 7Fh), vùng
RAM có thể định địa chỉ bit (20h – 2Fh) và các bank thanh ghi (00h – 1Fh).
ĐỒ ÁN MÔN HỌC 2 Trang 13
+ RAM đa dụng: có 80 byte từ địa chỉ 30h – 7Fh có thể truy xuất mỗi lần 8 bit bằng
cách dùng chế độ địa chỉ trực tiếp hay gián tiếp.
+ RAM có thể định địa chỉ bit: vùng địa chỉ từ 20h – 2Fh gồm 16 byte (= 128 bit) có
thể thực hiện giống như vùng RAM đa dụng (mỗi lần 8 bit) hay thực hiện truy
xuất mỗi lần 1 bit bằng các lệnh xử lý bit. Vùng RAM này có các địa chỉ bit bắt
đầu tại giá trị 00h và kết thúc tại 7Fh. Như vậy, địa chỉ bắt đầu 20h (gồm 8 bit)
có địa chỉ bit từ 00h – 07h; địa chỉ kết thúc 2Fh có địa chỉ bit từ 78h – Fh.
+ Các bank thanh ghi: vùng địa chỉ từ 00h – 1Fh được chia thành 4 bank thanh ghi:
bank 0 từ 00h – 07h, bank 1 từ 08h – 0Fh, bank 2 từ 10h – 17h và bank 3 từ 18h
– 1Fh. Các bank thanh ghi này được đại diện bằng các thanh ghi từ R0 đến R7.
Sau khi khởi động hệ thống thì bank thanh ghi được sử dụng là bank 0. Do có 4
bank thanh ghi nên tại một thời điểm chỉ có một bank thanh ghi được truy xuất
ĐỒ ÁN MÔN HỌC 2 Trang 14
bởi các thanh ghi R0 đến R7. Việc thay đổi bank thanh ghi có thể thực hiện thông
qua thanh ghi từ trạng thái chương trình (PSW). Các bank thanh ghi này cũng có
thể truy xuất bình thường như vùng RAM đa dụng đã nói ở trên.
Tổ chức bộ nhớ ngoài:
˗ MCS-51 có bộ nhớ theo cấu trúc Harvard: phân biệt bộ nhớ chương trình và dữ
liệu. Chương trình và dữ liệu có thể chứa bên trong nhưng vẫn có thể kết nối với 64KB
chương trình và 64KB dữ liệu. Bộ nhớ chương trình được truy xuất thông qua chân
PSEN còn bộ nhớ dữ liệu đươc truy xuất thông qua chân WR hay RD. Lưu ý rằng việc
truy xuất bộ nhớ chương trình luôn sử dụng địa chỉ 16 bit còn bộ nhớ dữ liệu có thể là
8 bit hay 16 bit tuỳ theo câu lệnh sử dụng. Khi dùng bộ nhớ dữ liệu 8 bit thì có thể
dùng Port 2 như Port I/O thông thường còn khi dùng ở chế độ 16 bit thì Port 2 chỉ
dùng làm các bit địa chỉ cao. Port 0 được dùng làm địa chỉ thấp/ dữ liệu đa hợp. Tín
hiệu ALE để tách byte địa chỉ và đưa vào bộ chốt ngoài.
˗ Trong chu kỳ ghi, byte dữ liệu sẽ tồn tại ở Port 0 vừa trước khi WR tích cực và
được giữ cho đến khi WR không tích cực.Trong chu kỳ đọc, byte nhận được chấp nhận
vừa trước khi RD không tích cực.
˗ Bộ nhớ chương trình ngoài được xử lý 1 trong 2 điều kiện sau:
+ Tín hiệu EA tích cực ( = 0).
+ Giá trị bộ đếm chương trình (PC: Program Counter) lớn hơn kích thước bộ nhớ.
1.1.6 CÁC NHÓM LỆNH TRONG 89C51
Các chi tiết thiết lập lệnh:
Rn :thanh ghi R0 đến R7 của bank thanh ghi được chọn.
Data :8 bit địa chỉ vùng dữ liệu bên trong. Nó có thể là vung ram dữ liệu trong
(0 – 127 ) hoặc các thanh ghi chức năng đặc biệt.
@Ri : 8 bit vùng ram dữ liệu trong (0-125) được đánh giá địa chỉ gián tiếp qua
thanh ghi R0 hoặc R1
#data :hằng 8 bit chức trong câu lệnh
#data 16 :hằng 16 bit chứa trong câu lệnh
Addr 16 :16 bit địa chỉ đích được dung trong câu lệnh LCALL và LJMP
Không có nhận xét nào:
Đăng nhận xét