Sau khoảng thời gian cải tiến và phát triển, hãng Atmel tung ra thị trường dòng Vi điều khiển mang số hiệu 89Sxx với nhiều cải tiến và đặc biệt là có thêm khả năng nạp chương trình theo
Trang 1Giảng viên hướng dẫn: Phạm Quốc Thịnh
Nhóm sinh viên thực hiện đề tài:
1 Nguyễn Ngọc Trường
2 Lê Văn Nguyên
3 Nguyễn Thị Minh Hiến
4 Vũ Thị Huệ
5 Đoàn Thị Vẻ
6 Hoàng Văn Thơm
Trang 2Phụ lục
1 Lời nói đầu
2 Giới thiệu vi điều khiển AT89s52
3 Tác dụng của các linh kiện trong mạch
4 Sơ đồ nguyên lý
5 Nguyên lý hoạt động của mạch
6 Code
7 Hình ảnh mô phỏng
8 Tài liệu tham khảo
Lời nói đầu:
Trang 3Như chúng ta đã biết yêu cầu điều khiển càng cao thì hệ thống càng phức tạp vànếu yêu cầu điều khiển có đơn giản ví dụ như điều khiển đóng mở một con led theomột thời gian yêu cầu nào đó thì hệ thống vi xử lí cũng phải có đầu đủ các khối:bộ
vi xử lí,bộ nhớ,các IC ngoại vi
Để kết nối các khối trên tạo thành một hệ thống đòi hỏi người thiết kế phải hiểu biết các khối.hệ thống tạo ra khá phức tạp ,chiếm nhiều không gian mạch in và in ấn.Một lí do nữa là vi xử lí thường xử lí dữ liệu theo byte hoặc word trong khi đó các đói tượng điều khiển trong công nghiệp thường điều khiển theo bit
Chính vì sự phức tạp này nên các nhà thiết kế tạo đã tích hợp một ít bộ nhớ và một số các thiết bị ngoại vi cùng với vi xử lí tạo thành một IC gọi là vi điều khiển Khi vi điều khiển ra đời đã mang lại sư tiện lợi là dễ dàng sử dụng trong điều khiển công nghiệp, việc sử dụng vi điều khiển không đòi hỏi người sử dụng phải hiểu biết về một lượng kiến thức quá nhiều như sử dụng vi xử lí
Có rất nhiều hãng chế tạo được vi điều khiển ,hãng sản xuất là ATMEL Có nhiều họ vi điều khiển mang cácmax số khác nhau,một trong số họ nổi tiếng là họ MCS-51
Song song với họ MCS-51 là họ MCS-52 có nhiều timer hơn họ MCS-51 một timer và dung lượng bộ nhớ nội lớn gấp đôi tức 8Kbyte
Ứng dụng của vi điều khiển rất nhiều trong các hệ thống điều khiển công
nghiệp,các dây chuyền sản xuất,các bộ điều khiển lập trình,máy giặt,máy điều hòa nhiệt độ…
Sau đây nhóm chúng em xin trình bày một trong những ứng dụng của vi điều khiển.Đó là lập trình cho vi điều khiển 89S52 điều khiển chạy các LED đơn xếp thành hình hai trái tim lồng nhau
I.giới thiệu về IC 89s52:
Trang 4
1.Sơ lược về IC89s52:
Năm 1980 khi intel tung ra chip 8051, bộ Vi điều khiển đầu tiên của họ
MCS-51 và là chuẩn công nghệ cho nhiều họ Vi điều khiển được sản xuất sau này
Năm 1980 Intel công bố chíp 8051(80C51), bộ vi điều khiển đầu tiên của họ vi điều khiển MCS-51bao gồm :
Trang 5Tiếp theo sau đó là sự ra đời của chip 8052,8053,8055 với nhiều tính năng được cải tiến
Hiện nay Intel không còn cung cấp các loại Vi điều khiển họ MCS-51 nữa, thay vào đó các nhà sản xuất khác như Atmel, Philips/signetics, AMD, Siemens,
Matra&Dallas, Semiconductors được cấp phép làm nhà cung cấp thứ hai cho các chip của họ MSC-51
Chip Vi điều khiển được sử dụng rộng rãi trên thế giới cũng như ở Việt Nam hiện nay là Vi điều khiển của hãng Atmel.các mã số chip được thay đổi chút ít khi được Atmel sản xuất Mã số 80 chuyển thành 89, chẳng hạn 80C52 của Intel khi sản xuất ở Atmel mã số thành 89C52 (Mã số đầy đủ: AT89C52) với tính năng chương trình tương tự như nhau Tương tự 8051,8053,8055 có mã số tương đương
ở Atmel là 89C51,89C53,89C55
Sau khoảng thời gian cải tiến và phát triển, hãng Atmel tung ra thị trường dòng
Vi điều khiển mang số hiệu 89Sxx với nhiều cải tiến và đặc biệt là có thêm khả năng nạp chương trình theo chế độ nối tiếp rất đơn giản và tiện lợi cho người sử dụng
Dung lượng RAM Dung lượng
ROM
Chế độ nạp:
Trang 62.Sơ đồ chân:
Nhóm chân nguồn:
o VCC: chân 40, điện áp cung cấp 5VDC
o GND: chân 20(hay nối Mass)
Nhóm chân dao động: gồm chân 18 và chân 19 (Chân XTAL1 và XTAL2), cho phép ghép nối thạch anh vào mạch dao động bên trong vi điều khiển, được sử dụng để nhận nguồn xung clock từ bên ngoài để hoạt động, thường được ghép nối với thạch anh và các tụ để tạo nguồn xung clock ổn định
.XTAL 1: Ngõ vào đến mạch khuếch đại dao động đảo và ngõ vào đến mạch tạo xung clock bên trong
.XTAL 2: Ngõ ra từ mạch khuếch đại dao động đảo
Chân chọn bộ nhớ chương trình: chân 31 (EA/VPP): dùng để xác định chương trình thực hiện được lấy từ ROM nội hay ROM ngoại
- Chân 31 nối mass: sử dụng bộ nhớ chương trình bên ngoài vi điều khiển -Chân 31 nối VCC: sử dụng bộ nhớ chương trình (4Kb) bên trong vi điều
RST(Chân RESET): Ngõ vào RST ở chân 9 là ngõ vào Reset dùng để thiết lập trạng thái ban đầu cho vi điều khiển Hệ thống sẽ được thiết lập lại các giá trị ban đầu nếu ngõ này ở mức 1 tối thiểu 2 chu kì máy
Chân cho phép bộ nhớ chương trình PSEN:
PSEN ( program store enable) tín hiệu được xuất ra ở chân 29 dùng để truy xuất bộ nhớ chương trình ngoài Chân này thường được nối với chân OE
Trang 7(output enable) của ROM ngoài
Khi vi điều khiển làm việc với bộ nhớ chương trình ngoài, chân này phát ra tín hiệu kích hoạt ở mức thấp và được kích hoạt 2 lần trong một chu kì máy Khi thực thi một chương trình ở ROM nội, chân này được duy trì ở mức logic không tích cực (logic 1)
(Không cần kết nối chân này khi không sử dụng đến)
Chân ALE :(chân cho phép chốt địa chỉ-chân 30)
Khi Vi điều khiển truy xuất bộ nhớ từ bên ngoài, port 0 vừa có chức năng là bus địa chỉ, vừa có chức năng là bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ Tín hiệu ở chân ALE dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và các đường dữ liệu khi kết nối chúng với IC chốt Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động đưa vào Vi điều khiển, như vậy có thể dùng tín hiệu ở ngõ ra ALE làm xung clock cung cấp cho các phần khác của hệ thống
*Ghi chú : khi không sử dụng có thể bỏ trống chân này
Nhóm chân điều khiển vào/ra:
Port 0:
gồm 8 chân (từ chân 32 đến 39) có hai chức năng:
-Chức năng xuất/nhập :các chân này được dùng để nhận tín hiệu từ bên ngoài vào để xử lí, hoặc dùng để xuất tín hiệu ra bên ngoài, chẳng hạn xuất tín hiệu để điều khiển led đơn sáng tắt
Trang 8- Chức năng là bus dữ liệu và bus địa chỉ (AD7-AD0) : 8 chân này (hoặc Port 0) còn làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại (nếu
có kết nối với bộ nhớ ngoài), đồng thời Port 0 còn được dùng để định địa chỉcủa bộ nhớ ngoài
Port 3 (P3):
gồm 8 chân (từ chân 10 đến 17):
Chức năng xuất/nhập
Với mỗi chân có một chức năng riêng:
P3.0 RxD : Ngõ vào nhận dữ liệu nối tiếp
P3.1 TxD : Ngõ xuất dữ liệu nối tiếp
P3.2 INT0: Ngõ vào ngắt cứng thứ 0
P3.3 INT1: Ngõ vào ngắt cứng thứ 1
P3.4 T0 : Ngõ vào của Timer/Counter thứ 0
P3.5 T1 : Ngõ vào của Timer/Counter thứ 1
P3.6 WR : Ngõ điều khiển ghi dữ liệu lên bộ nhớ ngoài
P3.7 RD : Ngõ điều khiển đọc dữ liệu từ bộ nhớ bên ngoài
P1.0 T2 : Ngõ vào của Timer/Counter thứ 2
P1.1 T2X : Ngõ Nạp lại/thu nhận của Timer/Counter thứ 2
II.Tác dụng của các linh kiện trong mạch:
1 AT89S52
Trang 9.256 Byte RAM nội.
.4 Port xuất /nhập I/O 8 bít
.3 bộ định thời 16 bit.Watch dog timer.Các đặc điểm khác giống AT89C51
2.thạch anh 12MHz:
Chức năng: Là nguồn tạo xung nhịp dao động clock ổn định (12
Trang 10MHz) cho dao động của 8051 Thạch anh sẽ được gắn vào chân XTAL1 và XTAL2(Chân số 18 và 19) của 8051.
3.tụ gốm:
chân của thạch anh, đầu còn lại đấu ra Mass
4.tụ hóa 10µF:
Trang 11Chức năng: Tụ hóa 10μF được gắn đầu âm vào chân reset, đầu dương lên nguồn
Khi cấp điện cho mạch, tụ sẽ phóng điện khiến chân reset bật lên mức cao, khi đó toàn bộ hệ thống sẽ được nạp lại từ đầu Khi đang vận hành thì tụ hóa ngăn dòng đivào chân reset
Trang 12
III.SƠ ĐỒ NGUYÊN LÝ:
Trang 13IV.Nguyên lý hoạt động của mạch:
IC điều khiển chính 89S52 điều khiển toàn bộ hoạt động của mạch, chương trình
code được nạp vào IC (code được dịch ra file hex rồi đưa vào IC qua bộ nạp nối cổng LPT bằng chương trình nạp Aec_isp.exe) Code lập trình cho các port của IC
89S52, điều khiển đèn LED sáng ở mức 1
Các cổng sử dụng để lập trình:
Trang 141, transistor sẽ được phân cực thuận, khóa sẽ đóng cho phép dòng điện từ cực E đi đến cực C Khi tín hiệu điều khiển ở mức 0, khóa mở, dòng điện sẽ bị cắt,LED tắt.Cách nối các LED:
Các LED nối vào cùng một chân của vi điều khiển được nối song song với nhau.Đầu katot của tất cả các LED được nối đất(nối mass),trở 220 được sử dụng để hạn dòng vào LED(LED chịu được dòng tối đa là 10mA)
V.Chương trình ASM lập trình cho vi điều khiển:
Trang 15; CHUONG TRINH CHAY LED TRAI TIMORG 0000H
BEGIN:
MOV A,#0FFFFH
MOV R1,#7DRAGON1:
MOV P1,A
MOV P2,AMOV P3,AACALL DELAYCPL A
DJNZ R1,DRAGON1
; MOV A,#1BMOV R1,#8MOV P1,#0HMOV P2,#0HDRAGON2:
MOV P2,A
Trang 16ACALL DELAY
RL ADJNZ R1,DRAGON2
;MOV A,#1BMOV R1,#8MOV P2,#0HMOV P1,#0HDRAGON3:
MOV P1,A
ACALL DELAY
RL ADJNZ R1,DRAGON3
;MOV A,#10000000BMOV R1,#8
MOV P2,#0HMOV P1,#0H
Trang 17MOV P1,A
ACALL DELAY
RR ADJNZ R1,DRAGON4
;MOV A,#10000000BMOV P1,#0H
MOV P2,#0HMOV R1,#7DRAGON5:
MOV P2,A
ACALL DELAY
RR ADJNZ R1,DRAGON5
;MOV R1,#8MOV P3,#0HMOV P1,#0H
Trang 18MOV P2,#0HMOV A,#0FFFFH DRAGON6:
MOV P1,A
MOV P2,AACALL DELAYCPL A
DJNZ R1,DRAGON6
;MOV R1,#8MOV P3,#0HMOV P1,#0HMOV P2,#0HMOV A,#0FFFFH DRAGON7:
MOV P3,A
ACALL DELAYCPL A
DJNZ R1,DRAGON7
Trang 19;MOV A,#1HMOV P1,#0FFFFHMOV P2,#0FFFFHMOV P3,#0HMOV R1,#7DRAGON8:
MOV P3,A
ACALL DELAY
RR ADJNZ R1,DRAGON8
;MOV A,#1HMOV P1,#0FFFFHMOV P2,#0FFFFHMOV P3,#0HMOV R1,#7DRAGON9:
MOV P3,A
Trang 20ACALL DELAY
RL ADJNZ R1,DRAGON9
;MOV A,#01010101BMOV P1,#0H
MOV P2,#0HMOV P3,#0HMOV R1,#8DRAGON10:
MOV P2,A
ACALL DELAY
RR ADJNZ R1,DRAGON10
;MOV A,#01010101BMOV P1,#0H
MOV P2,#0HMOV P3,#0H
Trang 21MOV R1,#8DRAGON11:
MOV P1,A
ACALL DELAY
RR ADJNZ R1,DRAGON11
;MOV A,#01010101BMOV P1,#0H
MOV P2,#0HMOV P3,#0HMOV R1,#8DRAGON12:
MOV P1,A
MOV P2,AACALL DELAY
RR ADJNZ R1,DRAGON12
;
Trang 22MOV A,#01010101BMOV P1,#0H
MOV P2,#0HMOV P3,#0HMOV R1,#8DRAGON13:
MOV P3,A
ACALL DELAY
RR ADJNZ R1,DRAGON13LJMP BEGIN
Trang 23NOP NOP RET
END
VI.một số hình ảnh mô phỏng :