Sơ đồ chân AT 89S52Bộ vi điều khiển AT89S52 gồm các khối chức năng chính sau đây: CPU Central Processing Unit bao gồm: - Thanh ghi tích luỹ A - Thanh ghi tích luỹ phụ B, dùng cho phép nh
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA ĐIỆN TỬ
ĐỒ ÁN MÔN HỌC
THIẾT KẾ HỆ ĐIỀU HÀNH THỜI GIAN
THỰC TRÊN HỌ VĐK 8051
Trang 2Lời nói đầu.
Trường ĐH công nghiệpHà Nội tiền thân là trường cao đẳng công nghiệp Hà Nội được hình thành và phát triển với một bề dầy lịch sử, là cái nôi đào tạo công nhân kĩ thuật cao Cùng với sự phát triển và đi lên của nhà trường, khoa Điện tử -Tự động hóa măc dù là một khoa mới được thành lập nhưng đã đóng góp không nhỏ vào thành công của nhà trường
Trong thời đại ngày nay đất nước ta đang trên đường hội nhập quốc tế đặc biệt là hội nhậpWTO Đất nước ta đang trên đà phát triển mạnh mẽ để bắt kịp thế giới chúng ta phải thực hiện chính sách đi tắt đón đầu Như chúng ta đã biết thế kỷ 21 là thế kỷ của công nghệ thông tin và tự động hóa cả hai ngành này đều liên quan mật thiết đến Điện tử.
Ngành công nghiệp Điện tử đang phát triển rất mạnh mẽ trên thế giới ở những nước công nghiệp phát triển ,ở nước ta điện tử là một ngành thực sự là mới mẻ nhưng được nhà nước quan tâm đặc biệt
Tại trường ĐH công nghiệp Hà Nội, khoa Điện tử- Tự động hóa tổ chức đào tạo ba ngành: điện tử công nghiệp , điện tử viễn thông, điện tử máy tính.
Vi Điều Khiển là môn học trực thuộc bộ môn điện tử công nghiệp, TBĐKCN đã và đang dần được số hóa Được sự phân công và hướng dẫn của thầy Nguyễn Anh Dũng, nhóm em gồm:Nguyễn Công Đạt, Nguyễn Văn Tân, Nguyễn Công Đạt, đã nghiên cứu đề tài về điều khiển từ xa dùng cảm biến hồng ngoại Mặc dù cố gắng rât nhiều trong việc tìm hiểu tài liệu và được sự hướng dẫn nhiệt tình của thầy giáo nhưng do còn nhiều hạn chế nên không tránh khỏi những thiếu sót về tài liệu, về ngôn ngữ, cách trình bày Chúng em rất mong được thông cảm và góp ý của thầy.
Cuối cùng chúng em xin chân thành cảm ơn!
Hà Nội Ngày: 1/2/2010
Nhóm sinh viên:
Nguyễn Công Đạt Nguyễn Duy Thanh Nguyễ Văn Tân
Trang 3Giíi thiÖu tæng quan vÒ hä 8051
Vi điều khiển 8051 – M« tả phần cứng
Vi điều khiển 8051 lµ một trong những họ vi điều khiển 8bit th«ngdụng nhất trªn thế giới Vi điều khiển nµy được chế tạo lần đầu tiªn bởih·ng Intel, sau đã được c¸c h·ng kh¸c chế tạo dưới dạng c¸c dẫn xuấtkh¸c nhau C¸c dẫn xuất nµy đều cã chung một kiến tróc giống với vi điềukhiển 8051 kinh điển Thªm vµo đó, tïy theo từng loại mµ c¸c chip dẫnxuất được tÝch hợp thªm c¸c ngoại vi kh¸c nhau (như ADC, SPI, EEPROM,capture/compare channels…), tÝnh năng cũng được n©ng cao để phï hợpvới c¸c ứng dụng ngµy cµng phức tạp
Trước hết xin giới thiệu một số tÝnh năng của họ vi điều khiển 8051(lưu ý là những tÝnh năng nµy lµ của vi điều khiển 8051 kinh điển):
- CPU 8bit được thiết kế tối ưu cho c¸c ứng dụng điều khiển
- Cã c¸c khả năng xử lý bit logic
- Không gian bộ nhớ chương trình 64Kbyte
- Không gian bộ nhớ dữ liệu 64 Kbyte
- Tích hợp 4Kbyte bộ nhớ chương tr×nh trªn chip
- Tích hợp 128byte bộ nhớ RAM trªn chip
- Cã 32 đường vµo/ra 2 chiều cã thể định địa chỉ đến từng bit
- Tích hợp 02 timer 16bit
- Tích hợp UART song c«ng
- Cấu tróc ngắt với 06 nguồn/05 vector ở 02 mức ưu tiªn kh¸c nhau
- TÝch hợp mạch bộ dao động trªn chip
Trang 4Vi điều khiển đợc giới thiệu ở đây đợc sản xuất theo công nghệ CMOS Một
số loại vi điều khiển thông dụng thuộc họ 8051 có thể kể ra nh: AT89C2051(
20 chân), AT89C4051( 20 chân), AT89C51( 40 chân), AT89C52
( 40 chân), AT89S51( 40 chân), AT89S52( 40 chân), AT89S53( 40 chân)
Sau đây là sơ đồ khối tổng quan của 8051
I-Cấu trúc phần cứng họ 8051( AT 89S52)
Trang 5Sơ đồ chân AT 89S52
Bộ vi điều khiển AT89S52 gồm các khối chức năng chính sau đây:
CPU( Central Processing Unit) bao gồm:
- Thanh ghi tích luỹ A
- Thanh ghi tích luỹ phụ B, dùng cho phép nhân và phép chia
- Đơn vị logic học( ALU: Arithmetic Logical Unit)
- Từ trạng thái chơng trình( PSW: Progam Status Word)
- Bốn băng thanh ghi
- Con trỏ ngăn xếp
Bộ nhớ chơng trình( Bộ nhớ ROM) gồm 8Kb Flash.
Bộ nhớ dữ liệu( Bôn nhớ RAM) gồm 256 bytes.
Bộ UART( Universal Ansynchronous Receiver and Tranmitter) làm chức
năng truyền nhận nối tiếp, nhờ khối này, AT89S52 có thể giao tiếp với máytính qua cổng COM
Trang 63 bộ Timer /Counter 16 bít thực hiện các chức năng định thời và
đếm sự kiện
WDM( Watch Dog Timer) đợc dùng để phục hồi lại hoạt động
của CPU khi nó bị treo bởi một nguyên nhân nào đó WDM ở AT89S52 gồmmột bộ Timer 14 bít, một bộ Timer 7 bít, thanh ghi WDTPRG( WDTprogramable) điều khiển Timer 7 bit và một thanh ghi chớc năngWDTRST( WDM register) Bình thờng WDT không hoạt động( bị cấm), đểcho phép WDT, các giá trị 1EH và E1H cần phải đợc ghi liên tiếp vào thanhghi WDTRST Timer 14 bit của WDT sẽ đếm tăng dần sau mỗi chu kỳ đồng
hồ cho đến giá trị 16383 thì xảy ra tràn Khi xảy ra tràn, chân RTS sẽ đợc đặt
ở mức cao trong thời gian 96.Tosc (Tossc=1/Fosc) và AT89S52 sẽ đợc reset.Khi WDT hoạt động, ngoại trừ reset phần cứng và reset do WDT tràn thìkhông có cách nào cấm đợc WDT, vì vậy khi sử dụng WDT thì các đoạn mãchơng trình phải đợc đặt trong các khe thời gian từ khi giữa các lần WDT đ-
Trang 7îc khëi t¹o l¹i
Trang 8Hình: Sơ đồ khối của bộ vi điều khiển 89S52
II- Sơ đồ các chân và chức năng
1.Port 0(P0.0-P0.7 hay từ chân 32 đến chân 39): Gồm 8 chân, ngoài
chức năng xuất nhập ra, Port 0 còn là Bus đa hợp dữ liệu và địa chỉ( AD7), chức năng này sẽ đợc sử dụng khi AT89S52 giao tiếp với thiết bịngoài có kiến trúc Bus
Trang 9
2.Port 1( P1.0-P1,7 hay từ chân 1 đến chân 8) : Có chức năng xuất
nhập theo bit và byte Ngoài ra, 3 chân P1.5, P1.6, P1.7 đợc dùng để nạpROM theo chuẩn ISP, 2 chân P1.0 và P1.1 đợc dùng cho bộ Timer 2
3.Port 2( P2.0- P2.7 hay từ chân 21 đến chân 28): Là một port có
công dụng kép: là đờng xuất nhập hoặc là byte cao của bus địa chỉ đối vớicác thiết kế dùng bộ nhớ mở rộng
Trang 10
4.Port 3( P3.0- P3.7 hay từ chân 10 đến chân 17): Mỗi chân trên port
3 ngoài chức năng xuất nhập ra còn có một chức năng riêng:
Bit Tên Chức năng
P3.0 RXD Dữ liệu nhận cho port nối tiếp
P3.1 TXD Dữ liệu phát cho port nối tiếp
P3.2 INT0 Ngắt 0 bên ngoài
P3.3 INT1 Ngắt 1 bên ngoài
P3.4 T 0 Ngõ vào của Timer/Counter 0
P3.5 T 1 Ngõ vào của Timer/Counter 1
P3.6 WR Xung ghi bộ nhớ dữ liệu bên ngoàiP3.7 RD Xung đọc bộ nhớ dữ liệu bên ngoài
Trang 11
5 RST( Reset- chân 9):
Mức tích cực của chân này là mức 1, để reset ta phải đa mức1(5V) đến chân này với thời gian tối thiểu 2 chu kỳ máy( tơng đơng 2uS đốivới thạch anh 12MHz
Trạng thái của các thanh ghi khi reset, khi reset thì trạng tháicủa các thanh ghi không thay đổi
6.XTAL1, XTAL2:
Trang 12AT89S52 có một bộ dao động trên chip, nó thờng đợc nồi với một bộ dao
động thạch anh có tần số lớn nhất là 33MHz, thông thờng là 12MHz
7 EA( External Access):
EA thờng đợc mắc lên mức cao(+5V) hoặc mức thấp( GND).Nếu ở mức cao, bộ vi điều khiển thi hành chơng trình từ ROM nội Nếu ởmức thấp, chơng trinh chỉ đợc thi hành từ bộ nhớ mở rộng
8.ALE( Address Latch Enable):
ALE là tín hiệu để chốt địa chỉ vào một thanh ghi bên ngoàitrong nửa đầu của chu kỳ bộ nhớ Sau đó các đờng port 0 dùng để xuất hoặcnhập dữ liệu trong nửa chu kỳ sau của bộ nhớ
9.PSEN( Program Store Enable):
PSEN là điều khiển để cho phép bộ nhớ chơng trình mở rộng vàtrờng đợc nối đến chân /OE ( Output Enable) của một EPROM để cho phép
đọc các bytes mã lệnh
PSEN sẽ ở mức thấp trong thừi gian đọc lệnh Các mã nhị phâncủa chơng trình đợc đọc từ EPROM qua Bus và đợc chốt vào thanh ghi lệnhcủa bộ vi điều khiển để giải mã lệnh Khi thi hành chơng trình trong ROMnội, PSEN sẽ ở mức thụ động( mức cao)
Trang 13AT89S52 có 8Kb Flash Rom trên chip, khi chân EA( Chân 31) đợc đặt ởmức logic cao(+5V), bộ vi điều khiển sẽ thực hiện chơng trình trong ROMnội bắt đầu từ địa chỉ 0000H Số lần ghi cho bộ nhớ này khoảng 1000lần( trên lý thuyết).
Khi chân EA đợc đặt ở mức thấp, bộ vi điều khiển sẽ thực hiên chơngtrình ở bộ nhớ chơng trình ngoài (EPROM ngoài), tuy nhiên để có ợc điềunày thì phải có một mạch phối ghép AT89S52 với EPROM đợc lựa chọn
Hình dới là một vi mach chốt (Latch) sẽ tách riêng bus đa hợp địa chỉ
và dữ liệu AD0- AD7; Tuỳ theo dung lợng của EPROM sẽ có số đờng địachỉ tơng ứng đợc dung; EPROM đợc đọc nhờ tín hiệu PSEN
A7:0
D7:0
OELatch
Trang 14AT89S52 có 256 bytes RAM nội đợc phân chia nh sau:
Các bank thanh ghi có địa chỉ từ 00H đến 1FH:
32 byte thấp của bộ nhớ nội đợc dành cho các bank thanh ghi Bộ lệnhAT89S52 hỗ trợ 8 thanh ghi có tên là R0-R7 và theo mặc định sau khireset hệ thống, các thanh ghi này có các địa chỉ từ 00H đến 07H
Các lệnh dùng các thanh ghi R0-R7 sẽ ngắn hơn và nhanh hơn so với cáclệnh có chức năng tơng ứng dùng kiểu địa chỉ trực tiếp Các dữ liệu đợc dungthờng xuyên nên dùng một trong các thanh ghi này
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 bởi các thanh ghi R0-R7, để chuyển đổi việc truy xuất thanhghi ta phải thay đổi các bit chọn bank trong thanh ghi trạng thái
RAM địa chỉ hoá từng bit có địe chỉ từ 20H đến 2FH:
AT89S52 có 128 bits có chứa các byte định địa chỉ theo bit từ 20H đến2FH ý tởng truy xuất từng bit bằng phần mềm là các đặc tính mạnh củacác bộ vi điều khiển nói chung Các bit có thể đợc đặt xoá, AND, OR ,với một lệnh đơn
RAM đa dụng từ 30H đến FFH.
Các thanh ghi chức năng đặc biệt từ 80H đến FFH:
Trang 153 Bé nhí d÷ liÖu ngoµi:
Trang 16Sơ đồ ghép nối AT89S52 với RAM
Bộ nhớ dữ liệu ngoài là bộ nhớ RAM đợc đọc hoặc ghi bởi tín hiệu /RD và WR Các RAM có thể giao tiếp với AT89S52 tơng tự cách thức nh EPROM ngoại trừ chân /RD của AT89S52 nối với chân /OE của RAM và chân /WR của AT89S52 nối với chân /WE của RAM
Nếu có nhiều vi mạch RAM hoặc ROM sùng đợc ghép nối với AT89S52 thì có thể dùng thêm vi mạch giải mã 74LS138
4 Các thanh ghi chức năng
Từ trạng thái chơng trình( PSW: Program Status Word)
Thanh ghi B
Con trỏ ngăn xếp SP( Stack pointer)
Con trỏ dữ liệu DPTR( Data poiner)
Các thanh ghi Port( Port register)
Các thanh ghi của các bộ Timer( Timer register)
Các thanh ghi Port nối tiếp(Serial Port register)
Các thanh ghi ngắt( Interrupt register)
Thanh ghi điều khiển nguồn( Power Control register)
Port 0
EA
ALE
Port 289S52
74HC373
O D
G
Trang 175 Mạch tạo dao động và Reset
Trang 18Có 4 cách để reset AT89S52 lần lợt là: Reset khi cấp nguồn, Reset bởiWDT, Reset bằng phần mềm và Reset bằng mạch ngoài qua chân RST.
IV- Hoạt động định thời
AT89S52 có 3 timer 16 bits, mỗi timer có 4 chế đọ hoạt động Ngời ta
sử dụng các timer để: Định khoảng thời gian đếm sự kiện hoặc tạo tốc độbaud cho port nối tiếp
Trong các ứng dụng định khoảng thời gian, ngời ta lập trình timer ở một khoảng đều đặn và đặt cờ tràn timer Cờ đợc dùng để đồng bộ hoá chơngtrình để thực hiện một tác động nh kiểm tra trạng thái của các
ngõ vào hoặc gửi các sự kiện ra các ngõ ra Các ứng dụng khác có thể sửdụng việc tạo xung nhịp đều đặn của timer để đo thời gian trôi qua giữa 2 sựkiện
Trang 191 Các thanh ghi của bộ định thời(Timer 0,1)
+ Thanh ghi chế độ Timer( TMOD)
Thanh ghi TMOD chứa 2 nhóm 4 bit dùng để đặt chế độ làm việc choTimer 0 và Timer 1
Chế độ cho Timer 1 Chế độ cho Timer 0GATE
M0M1=00 : Timer 13 bit, mode 0
=01 : Timer 16 bit, mode 1
=10 : Timer 8 bit nạp tự động, mode 2
=11 : Timer tách riêng, mode 3GATE=0: Hoạt động của Timer bị điều khiển bởi mức Logic ở chân/INT
=1: Hoạt động của Timer không bị điều khiển bởi mức Logic ởchân /INT
2 Các thanh ghi điều khiển Timer(Timer 0,1)
Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển choTimer 0 và Timer 1
3 Các thanh ghi chứa giá trị của các bộ định thời(Timer 0,1)
Các timer 0 và timer 1 đều là các timer 16 bit, mỗi timer có 2 thanhghi 8 bit dùng để chứa các giá trị khởi tạo hoặc giá trị hiện thời của các
Trang 20timer Cụ thể timer 0 có TH0 và TL0, timer 1 có TH1 và TL1 Các thanh ghinày không có địa chỉ bit
Lu ý: các thanh ghi ở timer 2 khác timer 0,1
4 Các chế độ của bộ đinh thời
Timer 2 ở chế độ Capture( thu nhận)
Timer 2 ở chế độ tự nạp lại ( DCEN=0)
Trang 21Timer 2 ở chế độ tự nạp lại ( DCEN=1)
Timer 2 tạo tốc độ baud
Trang 22Timer 2 trong chế độ clock-out
V- POrt nối tiếp
AT89S52 có một port nối tiếp trong chip có thể hoạt động ở nhiều chế
độ khác nhau, nhiều tốc độ khác nhau Chức năng chủ yếu của một port nóitiếp là thực hiện chuyển đổi song song sang nối tiếp với dữ liệu xuất ra vàchuyển đổi nói tiếp sang song song với dữ liệu nhập để có thể giao tiếp vớimáy tính qua cổng nối tiếp hoặc các thiết bị tơng tự
Trang 23Mô tả hoạt động của Port nối tiếp
Port nối tiếp có thể hoạt động song công( full duplex: thu và phát
đồng thời) và đệm lúc thu( receiver buffering) cho phép một kí tự sẽ đợc thu
và đợc giữ trong khi kí tự thứ 2 đợc nhận Nếu CPU đọc kí tự thứ nhất ớckhi kí tự thứ 2 đợc thu đầy đủ thì dữ liệu sẽ không mất
tr-1 Các thanh ghi của port nối tiếp
Có 2 thanh ghi chức năng đặc biệt cho phép phần mềm truyxuất đến Port nối tiếp: SBUF và SCON
Thanh ghi điều khiển Port nối tiếp( SCON- Serial Controller).
Thanh ghi điều khiển Port nối tiếp SCON ở địa chỉ 98H là thanhghi có điịnh địa chỉ bit, chứa các bit trạng thái và các bit để đièu khiển liênquan tới port nối tiếp Các bit điều khiển đặt chế độ hoạt động cho Port nốitiếp, các bit trạng thái báo cáo kết thúc việc phát hoặc thu một ký tự Các bittrạng thái có thể đợc kiểm tra bằng phần mềm hoặc có thể đợc lập trình đểtạo ngắt
Bit Ký hiệu Địa chỉ Mô tả
Máy Cổng
tính COM
AT89S52
Bộ chuyển
đổi mức
Trang 24SCON.7 SM0 9FH Mode 1-Bit 0 chọn chế độ cho Port nốitiếp
SCON.6 SM1 9EH Mode 1-Bit 1 chọn chế độ hoạt động cho
SM0SM1=00: Port nối tiếp hoạt động ở chế
SCON.2 RB8 9AH Receiver bit 8- Bit nhận thứ 9 trong sử dụng
trong chế độ UART 9 bit SCON.1 TI 99H Transmitted Interupt- Cờ ngắt truyền, TI đợc
đặt bằng 1 khi kết thúc việc truyền 1 ký tự,
SCON.0 RI 98H Receiver Interupt-Cờ ngắt nhận, RI đợc dặt
bằng 1 khi kết thúc việc nhận 1 kýtự,RI đợc xoá bằng phần mềm
Trớc khi sử dụng cổng nối tiếp, phải khởi động thanh ghi SCON đểchọn chế độ
2.Trao đổi dữ liệu qua Port nối tiếp
Thao tác trao đổi dữ liệu qua port nối tiếp không đơn thuần chỉ là việcghi/đọc dữ liệu nh trao đổi dữ liệu trực tiếp qua các port(chẳng hạn P1,P2,4 ) mà nó bao gồm 3 thao tác cính nh sau:
- Khởi tạo cổng nối tiếp: Thao tác này bao gồm các việc nh sau:
Trang 25+ truy xuất SCON để đặt các thông số nh chế độ hoạt động, chophép thu
+Thiết lập hoặc xoá bit SMOD của thanh ghi PCON để đặt hệ
số chia của tốc độ baud
+Truy xuất các thanh ghi của các bộ Timer 1 và Timer 2 để đặttốc độ baud cho port nối tiếp( Chỉ với chế độ 1 và 3)
- Kiểm tra cờ TI( Khi truyền) và RI( Khi nhận)
-Ghi/ đọc byte dữ liệu ở SBUF
VI- Xử lý ngắt
AT89S52 có 6 nguồn ngắt:
-Ngắt ngoàiđến từ chân /INT0-Ngắt ngoàiđến từ chân /INT1-Ngắt do bộ Timer 0
-Ngắt do bộ Timer 1-Ngắt do bộ Timer 2-Ngắt do Port nối tiếp
6 nguồn ngắt này đợc xoá khi Reset và đợc đặt bằng phần mềm bởicác bit trong thanh ghi cho phép ngắt (IE), thanh ghi u tiên ngắt (IP)
Thanh ghi cho phép ngắt IE ( Interrupt Enable):
Bit 1: Cho phép
Bit 0: Cấm
Bit Ký hiệu Địa chỉ bit Mô tả
IE.7 EA AFH Không cho phép hoặc cấm
toàn bộ IE.6 - AEH Không đợc định nghĩa
IE.5 ET5 ADH Cho phép ngắt từ Timer 2
IE.4 ES ACH Cho phép ngắt từ Port nối
tiếp IE.3 ET1 ABH Cho phép ngắt từ Timer 1