Tải bản đầy đủ (.pdf) (60 trang)

Thiết kế xây dựng biển quảng cáo điều khiển hiện thị từ xa bằng tin hiệu RFc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.74 MB, 60 trang )

NHIỆM VỤ ĐỒ ÁN
Đồ án tập trung nghiên cứu các vấn đề cơ bản của bộ thu phát RF, thiết kế
xây dựng biển quang báo điều khiển từ xa qua bộ thu phát RF với các nhiệm vụ sau:
 Giới thiệu tổng quan về vi điều khiển vi điều khiển 8051,PIC16f877a
 Cơ sở lí thuyết
 Ứng dụng thiết kế, xây dựng biển quang báo điều khiển hiển thị qua bộ
thu phát RF

1


LỜI CẢM ƠN
Em xin chân thành cảm ơn Khoa Công Nghệ Điện Tử & Truyền Thông,
Bộ môn Kỹ Thuật Y Sinh, Trường Đại học Công Nghệ Thông Tin và Truyền
Thông đã tạo điều kiện tốt cho em hoàn thành đồ án này.
Em xin gửi lời cảm ơn chân thành đến thầy Nguyễn Thế Dũng đã nhiệt
tình hướng dẫn cho em hoàn thành đồ án tốt nghiệp này.
Em xin gửi lời cảm ơn sâu sắc tới tất cả các thầy cô, những người đã giảng
dạy, trang bị cho em kiến thức quý báu trong những năm học vừa qua – Trường
Đại học Công Nghệ Thông Tin và Truyền Thông – Đại học Thái Nguyên.
Mặc dù em đã cố gắng hoàn thiện thật tốt đồ án nhưng do kiến thức có hạn
do đó không thể tránh khỏi những sai sót, em rất mong nhận được sự cảm thông,
ý kiến đóng góp của các quý Thầy Cô và các bạn!
Em xin chân thành cảm ơn!
Sinh viên thực hiện
Nguyễn Văn Khương

2


LỜI CAM ĐOAN


Em xin cam đoan nội dung của đồ án này là sản phẩm của bản thân em
tìm hiểu, nghiên cứu và xây dựng lên. Không sao chép của ai. Nội dung đồ án có
tham khảo, sử dụng tài liệu, thông tin từ một số nguồn khác được trích dẫn trong
phần tài liệu tham khảo, và một số website. Nếu có gì sai só em xin chịu hoàn
toàn mọi trách nhiệm và kỷ luật của nhà trường đề ra.

Tác giả đồ án
Nguyễn Văn Khương

3


MỤC LỤC
NHIỆM VỤ ĐỒ ÁN............................................................................................1
LỜI CẢM ƠN .....................................................................................................2
LỜI CAM ĐOAN................................................................................................3
MỤC LỤC ..........................................................................................................4
DANH MỤC HÌNH ẢNH ...................................................................................6
LỜI MỞ ĐẦU .....................................................................................................7
CHƯƠNG 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC 16F877AVÀ 8051 ........8
1.1 Khái niệm về PIC ......................................................................................8
1.2 Sơ đồ chân vi điều khiển PIC 16F877A.....................................................8
1.3 Một vài thông số của vi điều khiển PIC 16F877A......................................8
1.4 Sơ đồ khối vi điều khiển 16F877A. .........................................................10
1.5 Chức năng các chân của PIC 16F877A....................................................10
1.6Các cổng xuất nhập của PIC 16F877A .....................................................13
1.6.1 PORTA ............................................................................................13
1.6.2 PORTB ............................................................................................14
1.6.3 PORTC ............................................................................................14
1.6.4 PORTD ............................................................................................14

1.6.5 PORTE.............................................................................................15
1.7.Giới thiệu chung về họ vi điều khiển 8051...............................................15
1.8. Sơ đồ chân vi điều khiển 8051................................................................16
1.9. Các thành viên khác của họ ...................................................................18
1.10. Sơ đồ chân của vi điều khiển AT89C51...............................................18
1.11. Cấu trúc bên trong của 89C51..............................................................18
1.11.1. Chức năng của các chânAT89C51 .................................................20
1.11.2. Các thanh ghi port xuất nhập...................................................................... 22
CHƯƠNG 2: CƠ SỞ LÍ THUYẾT....................................................................29
2.1 Giới thiệu điều khiển từ xa ......................................................................29
2.1.1 Điều khiển từ xa bằng tần số vô tuyến (RF) .............................................. 29
2.1.2. Hoạt động ........................................................................................................... 29
2.2. Giới thiệu linh kiện sử dụng ...................................................................29
2.2.1 Tổng quan về PT 2262 và PT2272 ............................................................... 29

4


2.3. Giới thiệu các linh kiện sử dụng trong mạch..........................................37
2.3.1. Vi điều khiển AT89C51 ..................................................................37
2.3.2. Thạch anh 12 MHz .......................................................................................... 37
2.3.3. Tụ gốm 33pF ..................................................................................................... 38
2.3.4. Tụ hóa ................................................................................................................. 39
2.3.5. Điện trở ............................................................................................................... 40
2.3.6. Công tắc reset (button) ................................................................................... 41
2.3.7 IC 7805 ...........................................................................................41
2.3.8 :LED đơn .........................................................................................42
CHƯƠNG 3: XÂY DỰNG HỆ THỐNG...........................................................43
3.1 MÔ TẢ BÀI TOÁN ................................................................................43
3.2 Yêu cầu bài toán......................................................................................43

3.3. Lựa chọn phương án thiết kế. .................................................................44
3.3.1. Phương án thiết kế một: Thiết kế biển quang báo điều khiển từ xa
thông qua mạng wifi ................................................................................................... 44
3.3.2: Nhận xét ............................................................................................................. 45
3.3.3. Phương án thiết kế hai: Thiết kế biển quang báo điều khiển từ xa
bằng tín hiệu RF ........................................................................................................... 45
3.3.3.1 sơ đồ khối ........................................................................................................ 45
3.4. Lưu đồ thuật toán và giải thuật chương trình ..........................................47
3.5 THIẾT KẾ PHẦN CỨNG .......................................................................48
3.5.1. Tính toán công suất cho biển quang báo ................................................... 48
3.6 Quá trình thực hiện hoàn thành kết quả....................................................51
3.7 Khả năng ứng dụng thực tế của đề tài ......................................................52
3.8 Hướng phát triển đề tài ...........................................................................52
PHỤ LỤC..........................................................................................................53
KẾT LUẬN.......................................................................................................58
TÀI LIỆU THAM KHẢO .................................................................................59
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN................................................60

5


DANH MỤC HÌNH ẢNH

Hình 2.1 PT 2262 và PT2272 ............................................................................30
Hình 2.2 Xung nhịp tạo ra từ mạch dao động.....................................................31
Hình 2.3 Xung nhịp của bit 0.............................................................................31
Hình 2.4 Xung nhịp của bit 1.............................................................................32
Hình 2.5 Xung nhịp của bit F.............................................................................32
Hình 2.6 Xung nhịp của bit đồng bộ Sync .........................................................32
Hình 2.7 Sơ đồ đấu chân của khối thu phát RF ..................................................33

Hình 2.8 Code mã word mã hóa hoàn chỉnh ......................................................34
Hình 2.9 Cấu trúc của PT 2272..........................................................................35
Hình 2.10: Hình ảnh thực tế IC AT89C51 .........................................................37
Hình 2.11: Thạch anh ........................................................................................37
Hình 2.12: Bộ dao động thạch anh của VĐK 8051 ............................................38
Hình 2.13: Tụ gốm ............................................................................................38
Hình 2.14: Điện trở............................................................................................40
Hình 2.15: Công tắc button................................................................................41
Hình 2.16 IC 7805 .............................................................................................41
Hình 2.17 Led Đơn............................................................................................42
Hình 3.1: Sơ đồ hoạt động của hệ thống điều khiển biển quang báo thông qua
mạng wifi ..........................................................................................................44
Hình 3.2: Sơ đồ khối của mạch..........................................................................45
Hình 3.3: Lưu đồ thuật toán và giải thuật chương trình......................................47
Hình 3.4: Mạch điều khiển công suất.................................................................50
Hình 3.5 Hình ảnh mạch điều khiển...................................................................51
Hình 3.6 sản phẩm hoàn thành..........................................................................51

6


LỜI MỞ ĐẦU
Hiện nay, nước ta đang trong thời kì công nghiệp hóa, hiện đại hóa đất
nước nền kinh tế phát triển nhanh và mạnh mẽ đặc biệt là các ngành công nghệ
kỹ thuật cao tiêu biểu như công nghệ thông tin hay công nghệ điện tử …
Như chúng ta đã biết trên thế giới công nghệ điện tử là một lĩnh vực có
mức độ phát triển nhanh với nhiều ứng dụng to lớn phục vụ cho quá trình phát
triển của mỗi quốc gia. Đối với nước ta thì công nghệ điện tử có vai trò quan
trọng trong công cuộc công nghiệp hóa, hiện đại hóa đất nước, cũng như trong
cuộc sống thường ngày của chúng ta, nó làm tăng năng suất lao động cũng như

chất lượng sản phẩm, giảm lao động chân tay nhờ sử dụng các thiết bị, dây
chuyền điện tử vào sản xuất qua đó tiết kiệm được lao động con người đem lại
hiệu quả cao cho công việc thúc đẩy công nghiệp ngày càng phát triển.
Do vậy, ứng dụng công nghệ điện tử vào sản xuất cũng như các lĩnh vực
khác đang là vấn đề được rất nhiều kỹ sư điện tử cũng như các doanh nghiệp đặc
biệt quan tâm để càng ngày càng tạo ra những sản phẩm điện tử có chất lượng
cao ứng dụng rộng rãi trong sản xuất cũng như trong cuộc sống hằng ngày, góp
phần làm cho công nghệ điện tử tiến gần hơn với cuộc sống con người và không
còn là lĩnh vực xa lạ với chúng ta.
Thông qua đồ án tốt nghiệp này em xin giới thiệu đến mọi người một sản
phẩm ứng dụng nhỏ của công nghệ điện tử đó là “hệ thống biển quang báo điều
khiển hiển thị từ xa bằng tín hiệu RF”
Nội dung đồ án của em gồm 3 chương:
Chương 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC 16F877AVÀ 8051
Chương 2: CƠ SỞ LÝ THUYẾT
Chương 3: XÂY DỰNG BIỂN QUANG BÁO ĐIỀU KHIỂN HIỂN THỊ
TỪ XA BẰNG TÍN HIỆU RF
Mặc dù em đã nghiên cứu và chuẩn bị đồ án kỹ lưỡng nhưng cũng không
thể tránh khỏi những sai sót trong quá trình thực hiện, vì vậy kính mong thầy cô
và các bạn có thể góp ý để em hoàn thành tốt hơn đề tài nghiên cứu này.
Em xin chân thành cảm ơn!

7


CHƯƠNG 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC 16F877AVÀ 8051
1.1 Khái niệm về PIC
PIC là tên viết tắt của “ Programable Intelegent Computer” có thể dịch là “
máy tính thông minh khả trình” do hãng Genenral Instrument đặt tên cho vi điều
khiển đầu tiên của họ: PIC1650 được thiết kế để dùng làm các thết bị ngoại vi

cho vi điều khiển CP1600. Vi điều khiển này sau đó được nghiên cứu phát triển
lên thành vi điều khiển PIC ngày nay.
1.2 Sơ đồ chân vi điều khiển PIC 16F877A

Hình 2.1: sơ đồ vi điều khiển PIC 16F877A
1.3 Một vài thông số của vi điều khiển PIC 16F877A
Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh với
độ dài 14 bit. Mỗi lệnh đều được thực thi trong một chu kì xung clock. Tốc độ
hoạt động tối đa cho phép là 20MHZ với một chu kì lệnh là 200ns. Bộ nhớ
chương trình 8Kx14 bit, và bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu là
EEPROM với dung lượng 256x8 byte. Số PORT I/O là 5 với 33 pin I/O.
Các đặc tính ngoại vi bao gồm các khối chức năng sau:


Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit

8


 Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng
đếm dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ
sleep.
 Timer2: bộ đếm 8 bit với bộ chia tần số, bộ poscaler.
 Hai bộ capture/so sánh/điều chế độ rộng xung.
 Các chuẩn giao tiếp nối tiếp SSP ( Synchronous Serial Port), I2C và
SPI.
 Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.
 Cổng giao tiếp song song PSP ( Parallel Slave Port) với các chân vi
điều khiển RD, WR và CS ở bên ngoài.
Các đặc tính analog:

 8 kênh chuyển đổi ADC 10 bit.
 Hai bộ so sánh.
 Bên cạnh đó là một vài đặc tính của vi điều khiển như:
 Bộ nhớ flash với khả năng ghi xóa được 100.000 lần.
 Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần.
 Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm.
 Khả năng tự nạp chương trình với sự điều khiển của phần mềm.
 Nạp được chương trình ngay trên mạch điện ICSP ( In Circuit Serial
Programming) thông qua 2 chân.
 Watchdog Timer với bộ dao động trong.
 Chức năng bảo mật mã chương trình.
 Chế độ sleep.
 Có thể hoạt động với nhiều dạng Oscillator khác nhau.

9


1.4 Sơ đồ khối vi điều khiển 16F877A.

Hình 2.2 sơ đồ khối của vi điều khiển PIC 16F877A
 Khối ALU-Arithmetic Login Unit.
 Khối bộ nhớ chương trình- Flash Program Memory.
 Khối bộ nhớ chứa dữ liệu EPROM – Data EPROM.
 Khối bộ nhớ file thanh ghi RAM – RAM file Register.
 Khối giải mã lệnh và điều khiển – Instruction Decode Control.
 Khối thanh ghi đặc biệt.
 Khối ngoại vi timer.
 Khối giao tiếp nói tiếp.
 Khối chuyển đổi tín hiệu tương tự sang số - ADC
 Khối các port xuất nhập.

1.5 Chức năng các chân của PIC 16F877A

10


Hình 2.3 Sơ đồ chân vi điều khiển PIC 16F877A
Chân OSC1/CLKI(13): ngõ vào kết nối với dao động thạch anh hoặc ngõ
vào nhận xung clock từ bên ngoài.
Chân OSC2/CLKO(14): ngõ ra dao động thạch anh hoặc ngõ ra cấp xung clock.
Chân

(1) có 2 chức năng
: ngõ vào reset tích cực ở mức thấp.

Vpp: ngõ vào nhận điện áp lập trình khi lập trình cho PIC.
Chân RA0/AN0(2), RA1/AN1(3), RA2/AN2(3): có 2 chức năng
-

RA0,1,2: xuất/ nhập số.

-

AN 0,1,2: ngõ vào tương tự của kênh thứ 0,1,2.

Chân RA2/AN2/VREF-/CVREF+(4): xuất nhập số/ ngõ vào tương tự của
kênh thứ 2/ nhõ vào điện áp chuẩn thấp của bộ AD/ ngõ vào điện áp chuẩn cao
của bộ AD.
Chân RA3/AN3/VREF+(5): xuất nhập số/ ngõ vào tương tự kênh 3/ ngõ
vào điện áp chuẩn (cao) của bộ AD.
Chân RA4/TOCK1/C1OUT(6): xuất nhập số/ ngõ vào xung clock bên

ngoài cho Timer 0/ ngõ ra bộ so sánh 1.
11


Chân RA5/AN4/

/ C2OUT(7): xuất nhập số/ ngõ vào tương tự kênh 4/

ngõ vào chọn lựa SPI phụ/ ngõ ra bộ so sánh 2.
Chân RB0/INT (33): xuất nhập số/ ngõ vào tín hiệu ngắt ngoài.
Chân RB1(34), RB2(35): xuất nhập số.
Chân RB3/PGM(36): xuất nhập số/ cho phép lập trình điện áp thấp ICSP.
Chân RB4(37), RB5(38): xuất nhập số.
Chân RB6/PGC(39): xuất nhấp số/ mạch gỡ rối và xung clock lập trình ICSP.
Chân RB7/PGD(40): xuất nhập số/ mạch gỡ rối và dữ liệu lập trình ICSP.
Chân RC0/T1OCO/T1CKI(15): xuất nhập số/ ngõ vào bộ giao động
Timer1/ ngõ vào xung clock bên ngoài Timer 1.
Chân RC1/T1OSI/CCP2(16) : xuất nhập số/ ngõ vào bộ dao động Timer
1/ ngõ vào Capture2, ngõ ra compare2, ngõ ra PWM2.
Chân RC2/CCP1(17): xuất nhập số/ ngõ vào Capture1 ,ngõ ra compare1,
ngõ ra PWM1.
Chân RC3/SCK/SCL(18): xuất nhập số/ ngõ vào xung clock nối tiếp đồng bộ,
ngõ ra chế độ SPI./ ngõ vào xung clock nối tiếp đồng bộ, ngõ ra của chế độ I2C.
Chân RC4/SDI/SDA(23): xuất nhập số/ dữ liệu vào SPI/ xuất nhập dữ liệu I2C.
Chân RC5/SDO(24): xuất nhập số/ dữ liệu ra SPI.
Chân RC6/TX/CK(25): xuất nhập số/ truyền bất đồng bộ USART/ xung
đồng bộ USART.
Chân RC7/RX/DT(26): xuất nhập số/ nhận bất đồng bộ USART.
Chân RD0-7/PSP0-7(19-30): xuất nhập số/ dữ liệu port song song.
Chân RE0/


/AN5(8): xuất nhập số/ điều khiển port song song/ ngõ

vào tương tự 5.
Chân RE1/

/AN6(9): xuất nhập số/ điều khiển ghi port song song/ ngõ

vào tương tự kênh thứ 6.
Chân RE2/

/AN7(10): xuất nhấp số/ Chân chọn lựa điều khiển port

song song/ ngõ vào tương tự kênh thứ 7.
Chân VDD(11, 32) và VSS(12, 31): là các chân nguồn của PIC.

12


1.6Các cổng xuất nhập của PIC 16F877A
Cổng xuất nhập (I/0 port) chính là phương tiện mà vi điều khiển dùng để
tương tác với thế giới bên ngoài. Sự tương tác này là rất đa dạng và thông qua
quá trình tương tác đó chức năng của vi điều khiển được thể hiện một cách rõ
ràng.
Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân ( I/O pin), tùy
theo cách bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và
số lượng chân trong cổng có thể khác nhau. Bên cạnh đó, do vi diều khiển được
tích hợp sẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh chức năng là
cổng xuất nhập thông thường một số chân xuất nhập còn có thêm chức năng khác
để thể hiện sự tác động của các đặc tính ngoại vi nêu trên đối với thế giới bên

ngoài. Chức năng của từng chân xuất nhập trong mỗi cổng hoàn toàn có thể xác
lập và điều khiển được thông qua các thanh ghi SFR liên quan đến chân xuất
nhập đó.
Vi điều khiển PIC 16F877A có 5 cổng xuất nhập, bao gồm PORTA,
PORTB, PORTC, PORTD, PORTE.
1.6.1 PORTA
PORTA (RPA) bao gồm 6 I/O pin. Đây là các chân “hai chiều”
(bidirectional pin) nghĩa là có thể xuất và nhập được. Chức năng I/O này được
điều khiển bởi thanh ghi TRISA ( địa chỉ 85h). Muốn xác lập chức năng của một
chân trong PORTA là input, ta “set” bit điều khiển tương ứng với chân đó trong
thanh ghi TRISA và ngược lại muốn xác lập chức năng của một chân trong
PORTA là output, ta “clear” bit điều khiển tương ứng với chân đó trong thanh
ghi TRISA. Thao tác này hoàn toàn tương tự đối với các PORT và các thanh ghi
điều khiển tương ứng TRIS ( đối với PORTA là TRISA, đối với PORTB là
TRISB, đối với PORTC là TRISC, đối với PORTD là TRISD và đối với PORTE
là TRISE). Bên cạnh đó PORTA còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vào
analog, ngõ vào xung clock của Timer0 và ngõ vào bộ giao tiếp MSSP (Master
Synchronous Serial Port). Đặc tính này sẽ được trình bày cụ thể trong phần sau.
Các thanh ghi SFR liên quan đến PORTA bao gồm:

13


PORTA (địa chỉ 05h) : chứa giá trị các pin trong PORTA.
TRISA (địa chỉ 85h) : chứa điều khiển xuất nhập.
CMCON (địa chỉ 9Ch) : thanh ghi điều khiển bộ so sánh.
CVRCON (địa chỉ 9Dh) : thanh ghi điều khiển bộ so sánh điện áp.
ADCON1 (địa chỉ 9Fh) : thanh ghi điều khiển bộ ADC.
1.6.2 PORTB
PORTB (RPB) bao gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương

ứng là TRISB. Bên cạnh đó một số chân của PORTB còn được sử dụng trong
quá trình nạp chương trình cho vi điều khiển với các chế độ nạp khác nhau.
PORTB còn liên quan đến ngắt ngoại vi và bộ Timer0. PORTB còn được tích
hợp chức năng điện trở kéo lên được điều khiển bởi chương trình.
Các thanh ghi SFR liên quan đến PORTB bao gồm:
PORTB (địa chỉ 06h, 106h)

: chứa giá trị các pin trong PORTB.

TRISB (địa chỉ 86h, 186h)

: điều khiển xuất nhập.

OPTION_REG (địa chỉ 81h,181h) : điều khiển ngắt ngoại vi và bộ Timer0.
1.6.3 PORTC
PORTC (RPC) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng
là TRISC. Bên cạnh đó PORTC còn chứa các chân chức năng của bộ so sánh, bộ
Timer1, bộ PWM và các chuẩn giao tiếp I2C, SPI, SSP,USART.
Các thanh ghi điều khiển liên quan đến PORTC bao gồm:
PORTC (địa chỉ 07h) : chứa các giá trị pin trong PORTC.
TRISC (địa chỉ 87h)

: điều khiển xuất nhập.

1.6.4 PORTD
PORTD (RPD) gồm 8 chân I/O, thanh ghi điều khiển xuất nhập tương ứng
là TRISD. PORTD còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel
Slave Port).
Các thanh ghi liên quan đến PORTD bao gồm:
Thanh ghi PORTD : chứa giá trị các pin trong PORTD.

Thanh ghi TRISD : điều khiển xuất nhập.
Thanh ghi TRISE: điều khiển xuất nhập PORTE và chuẩn giao tiếp PSP.

14


1.6.5 PORTE
PORTE (RPE) gồm 3 chân I/O. Thanh ghi điều khiển xuất nhập tương
ứng là TRISE. Các chân của PORTE có ngõ vào là analog. Bên cạnh đó PORTE
còn là các chân điều khiển của chuẩn giao tiếp PSP.
Các thanh ghi liên quan đến PORTE bao gồm:
PORTE

: chứa giá trị các chân trong PORTE.

TRISE

: điều khiển xuất nhập và xác lập thông số cho chuẩn giao tiếp PSP.

ADCON1 : thanh ghi điều khiển khối ADC.
1.7.Giới thiệu chung về họ vi điều khiển 8051
Thông thường so với các dòng vi điều khiển khác như PIC, AVR. Thì
8051 là một dòng vi điều khiển cơ bản chúng ta có thể lập trình bằng hai ngôn
ngữ C và ASM. Nhưng để hiểu được nó môt cách trực quan nhất và sâu nhất thì
chúng ta thường phải bắt đầu từ lập trình bằng ngôn ngữ ASM. Ngôn ngữ này
giúp ta thâm nhập vào các thanh ghi và các chân tín hiệu được một cách trực tiếp
để từ đó chúng ta có thể hiểu rõ hơn bản chất của dòng vi điều khiển này và từ đó
nó sẽ tạo cho chúng có thể tiến hành trình xa hơn bằng lập trình con vi điều khiển
mới một cách tốt hơn tránh bị hổng kiến thức về sau.
Là khả năng sẵn sàng đáp ứng về số lượng trong hiện tại và tương lai. Đối

với một sốnhà thiết kếđiều này là quan trong hơn cả. Hiện nay, các bộ vi điều
khiển 8 bit đứng đầu là họ 8051 có số lương lớn nhất các nhà cung cấp đa dạng
(nhiều nguồn). Nhà cung cấp có nghĩa là nhà sản xuất bên cạnh nhà sáng chế của
bộ vi điều khiển. Trong trường hợp 8051 thì nhà sáng chế của nó là Intel, nhưng
hiện nay có rất nhiều hãng sản xuất nó (cũng như trước kia đã sản xuất).
Các hãng này bao gồm: Intel, Atmel, Philips/signe-tics, AMD, Siemens,
Matra và Dallas, Semicndictior.
Họ vi điều khiển dòng 8051
8-bits dữ liệu
4 cổng I/O, mỗi cổng có độ rộng là 8 bits
Tối đa 64K ROM nội(thường là 0K đến 4K)
Tối đa 64K bộ nhớ dữ liệu ngoài

15


Tối đa 64K bộ nhớ mã lệnh ngoài
2 bộ định thời, 1 cổng nối tiếp
128 bytes RAM nội
Hoạt động nhiều tốc độ khác nhau như 11.095MHZ, hoặc 12MHZ
Vi điều khiển và vi xử lý
Xin nhắc đến cái máy tính của bạn, con chíp Intel hay ADM của bạn là 1
bộ vi xử lí, nó không có RAM, ROM,cổng IO và các thiết bị ngoại vi on Chip.
Còn vi điều khiển chứa 1 bộ vi xử lí và RAM,ROM, cổng IO, và có thể có các
thiết bị ngoại vi.
1.8. Sơ đồ chân vi điều khiển 8051
Là IC đóng vỏ dạng DIP có 40 chân, mỗi chân có một kí hiệu tên và có
các chức năng như sau:
Chân 40: Nối với nguồn nuôI +5V.
Chân 20: Nối với đất(Mass, GND).

Chân 29 (PSEN)(program store enable) là tín hiệu điều khiển xuất ra của
8051, nó cho phép chọn bộ nhớ ngoài và được nối chung với chân của OE
(Outout Enable) của EPROM ngoài để cho phép đọc các byte của chương trình.
Các xung tín hiệu PSEN hạ thấp trong suốt thời gian thi hành lệnh. Những mã
nhị phân của chương trình được đọc từ EPROM đi qua bus dữ liệu và được chốt
vào thanh ghi lệnh của 8051 bởi mã lệnh.(chú ý việc đọc ởđây là đọc các lệnh
(khác với đọc dữ liệu), khi đó VXL chỉđọc các bit opcode của lệnh và đưa chúng
vào hàng đợi lệnh thông qua các Bus địa chỉ và dữ liệu)
Chân 30 (ALE : Adress Latch Enable) là tín hiệu điều khiển xuất ra của
8051, nó cho phép phân kênh bus địa chỉ và bus dữ liệu của Port 0.
Chân 31 (EA : Eternal Acess) được đưa xuống thấp cho phép chọn bộ nhớ
mã ngoàI đối với 8051. Đối với 8051 thì : EA = 5V : Chọn ROM nội. EA = 0V :
Chọn ROM ngoại. 32 chân còn lại chia làm 4 cổng vào ra: Vào ra tức là có thể
dùng chân đó đểđọc mức logic (0;1 tương ứng với 0V ; 5V)vào hay xuất mức
logic ra(0;1)
P0 từ chân 39 -32 tương ứng là các chân P0_0 -P0_7

16


P1 từ chân 1 -8 tương ứng là các chân P1_0 -1_7
P2 từ chân 21 -8 tương ứng là các chân P2_0 -P2_7
P3 từ chân 10 -17 tương ứng là các chân P3_0 -3_7
Riêng cổng 3 có 2 chức năng ở mỗi chân như trên hình vẽ:
P3.0 – RxD : Chân nhận dữ liệu nối tiếp khi giao tiếp RS232(Cổng COM ).
P3.1 _ TxD : Chân truyền dữ liệu nối tiếp khi giao tiếp RS232.
P3.2 _ INTO : interrupt 0 , ngắt ngoài 0.
P3.3 _ INT1: interrupt 1, ngắt ngoài 1.
P3.4 _T0 : Timer0 , đầu vào timer0.
P3.5_T1 : Timer1, đầu vào timer 1.

P3.6_ WR: Write, điều khiển ghi dứ liệu.
P3.7 _RD: Read , điều khiển đọc dữ liệu.
Chân 18, 19 nối với thạch anh tạo thành mạch tạo dao động cho VĐK

Hình 2.4: Sơ đồ chân của VĐK 8051

17


1.9. Các thành viên khác của họ
Có hai bộ vi điều khiển thành viên khác của họ 8051 là 8052 và 8031.
Bộ vi điều khiển 8052: 8052 có tất cả các đặc tính chuẩn của 8051 ngoài ra nó có
thêm 128 byte RAM và một bộđịnh thời nữa. Hay nói cách khác là 8052 có 256
byteAM và 3 bộđịnh thời. Nó cũng có 8K byte ROM. Trên chíp thay vì 4K byte
như 8051.
Do vậy tất cả mọi chương trình viết cho 8051 đều chạy trên 8052 nhưng
điều ngược lại là không đúng.Đặc biệt : Một nhà sản xuất chính của họ 8051
khác nữa là Philips Corporation. Hàng này có một dải lựa chọn dộng lớn cho các
bộ vi điều khiển
1.10. Sơ đồ chân của vi điều khiển AT89C51
Dưới đây là hình dạng thực tế và sơ đồ chân của vi điều khiển AT89C51

Hình 2.5: Hình dạng thực tế và sơ đồ chân của AT89C51
1.11. Cấu trúc bên trong của 89C51
Thành phần chính của vi điều khiển AT89C51 là bộ xử lý trung tâm hay
còn gọi là CPU (Central Processing unit). CPU bao gồm:
Thanh ghi tích lũy A
Thanh ghi tích lũy phụ B, dùng cho phép nhân và phép chia
Đơn vị logic học ALU (Arithmetric Logical Unit)
Từ trạng thái chương trình PSW (Program Status Word)


18


4 bank thanh ghi
Con trỏ ngăn xếp
Ngoài ra còn có bộ nhớ chương trình, bộ giải mã lệnh, bộ điều khiển thời
gian và logic.Đơn vị xử lí trung tâm nhận trực tiếp xung từ bộ dao động.Chương
trình đang chạy có thể cho dừng lại nhờ một khối điều khiển ngắt ở bên trong.
Các nguồn ngắt có thể là: Các biến cố ở bên ngoài, sự tràn bộ đếm định thời hoặc
cũng có thể là giao diện nối tiếp.
Hai bộ định thời 16bit hoạt động như một bộ đếm.
Các cổng (Port 0, Port 1, Port 2, Port 3) được sử dụng vào mục đích điều
khiển. Ở cổng Port 3 có thêm các đường dẫn điều khiển dùng để trao đối với một
bộ nhớ bên ngoài, hoặc để đấu nối giao diện nối tiếp, cũng như các đường ngắt
dẫn bên ngoài.
Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng bộ,
làm việc độc lập với nhau. Tốc độ truyền qua cổng nối tiếp có thể đặt trong dãy
rộng và được ấn định bằng một bộ định thời.Trong vi điều khiển 8051 có hai
thành phần quan trong khác là bộ nhớ và các thanh ghi.Bộ nhớ gồm có bộ nhớ
RAM và bộ nhớ ROM dùng để lưu trữ dữ liệu và mã lệnh.
Các thanh ghi sử dụng để lưu trữ thông tin trong quá trình xử lí. Khi CPU
làm việc, nó thay đổi nội dung của các thanh ghi.

Hình 2.6: Cấu trúc bên trong IC 89C51

19


1.11.1. Chức năng của các chânAT89C51

Chân VCC: Chân số 40 là VCC cấp điện áp nguồn cho Vi điều khiển.
Nguồn điện cấp là +5V±0.5.
Chân GND: Chân số 20 nối GND (hay nối Mass). Khi thiết kế cần sử
dụng một mạch ổn áp để bảo vệ cho Vi điều khiển, cách đơn giản là sử dụng IC
ổn áp 7805.
Port 0 (P0): 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.
Chức năng là bus dữ liệu và bus địa chỉ (AD7-AD0): 8 chân này
(hoặcPort 0) còn làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại .
Port 1 (P1): Port P1 gồm 8 chân (từ chân 1 đến chân 8): chỉ có chức năng
làm các đường xuất/nhập, không có chức năng khác.
Port 2 (P2): Port 2 gồm 8 chân (từ chân 21 đến chân 28) có hai chức
năng:
Chức năng xuất/nhập
Chức năng là bus địa chỉ cao (A8-A15): khi kết nối với bộ nhớ ngoài có
dung lượng lớn,cần 2 byte để định địa chỉ của bộ nhớ, byte thấp do P0 đảm nhận,
byte cao do P2 này đảm nhận.
Port 3 (P3): Port 3 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 thứ hai như
trong bảng sau :
Bit

Tên

Chức nă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

20


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

P1.1

T2X

Ngõ vào của Timer/Counter thứ 2
Ngõ Nạp lại/thu nhận của Timer/Counter thứ 2


Bảng 1.3 Chức năng các chân của port 3
Chân RESET (RST)
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 XTAL1 và XTAL2
Hai chân này có vị trí chân là 18 và 19 đượ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.

Hình 2.7: Chân XTAL 1 và XTAL 2 của nguồn tạo xung
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
(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)

21


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.
Chân EA
Chân EA dùng để xác định chương trình thực hiện được lấy từ ROM nội
hay ROM ngoại. Khi EA nối với logic 1(+5V) thì Vi điều khiển thực hiện
chương trình lấy từ bộ nhớ nội.Khi EA nối với logic 0(0V) thì Vi điều khiển thực
hiện chương trình lấy từ bộ nhớ ngoài.
1.11.2. Các thanh ghi port xuất nhập
Các port của AT89C51 bao gồm port 0 ở địa chỉ 80H, port 1 ở địa chỉ
90H, port 2 ở địa chỉ A0H, và port3 ở địa chỉ B0H. Tất cả các port này đều có thể
truy xuất từng bit nên rất thuận tiện trong khả năng giao tiếp.
Các thanh ghi timer
AT89C51 có chứa 2 bộ định thời/đếm 16 bit được dùng cho việc định thời
hoặc đếm sự kiện. Timer 0 ở địa chỉ 8AH (TL0: byte thấp) và 8CH (TH0: Byte
cao). Timer 1 ở địa chỉ 8BH (TL1: Byte thấp) và 8DH (TH1: Byte cao). Việc
khởi động timer được Set bởi Timer Mode (TMOD) ở địa chỉ 89H và thanh ghi
điều khiển timer (TCON) ở địa chỉ 88H, chỉ có TCON được địa chỉ hóa từng bit.
Các thanh ghi port nối tiếp
AT89C51 chứa một port nối tiếp dành cho việc trao đổi thông tin với các
thiết bị nối tiếp như máy tính, modem hoặc giao tiếp nối tiếp với các IC khác.
Một thanh ghi gọi là bộ đệm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ giữ cả 2 dữ
liệu truyền và dữ liệu nhận. Khi truyền dữ liệu thì ghi lên SBUF, khi nhận dữ liệu

22


thì đọc SBUF. Các mode vận hành khác nhau được lập trình qua thanh ghi điều
khiển port nối tiếp SCON ở địa chỉ 98H.
Các thanh ghi ngắt

AT89C51 có cấu trúc 5 nguồn ngắt, 2 mức ưu tiên. Các ngắt bị cấm sau
khi reset hệ thống và sẽ được cho phép bằng việc ghi thanh ghi cho phép ngắt
(IE) ở địa chỉ A8H, cả 2 thanh ghi được địa chỉ hóa từng bit.
Thanh ghi điều khiển công suất
Thanh ghi điều khiển công suất (PCON) ở địa chỉ 87H chứa các bit điều
khiển.
Tín hiệu Reset
AT89C51 có ngõ vào reset RST tác động ở mức cao trong khoảng thời
gian 2 chu kỳ, sau đó xuống mức thấp để AT89C51 bắt đầu làm việc. RST có
thể kích bằng tay bằng một phím nhấn thường mở, sơ đồ mạch reset như hình
trên (hình 1.5) sau khi reset hệ thống được tóm tắt như sau:

Hình 2.8: Sơ đồ chân RESET của AT89C51
Thanh ghi
Nội dung
Đếm chương trình PC
0000H
Thanhghi tích lũy A
00H
Thanh ghi B
00H
Thanh ghi trạng thái
00H
SP
07H
DPTR
0000H
Port 0 đến Port 3
FFH
IP

XXX0000 B
IE
0XX00000 B
Các thanh ghi định thời
00H
Bảng 1.4 Các thanh ghi trạng thái của chân RESET

23


Hoạt động thanh ghi TIMER
AT89C51 có hai timer 16 bit, mỗi timer có bốn cách làm việc. Người ta sử
dụng các timer để:Định khoảng thời gian, đếm sự kiện.Tạo tốc độ baud cho port
nối tiếp trong AT89C51.
Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở
những khoảng đều đặn và đặt cờ tràn timer. Cờ được dùng để đồng bộ hóa
chương trì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 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 hai sự kiện (ví dụ đo độ rộng
xung ).
Truy xuất các timer của AT89C51 dùng sáu thanh ghi chức năng đặc biệt
cho trong bảng sau:
Mục Đích

Địa chỉ

Địa chỉ hóa từng bit

TCON


Điều khiển Timer

88H



TMOD

Chế độ Timer

89H

Không

TL0

Byte thấp của Timer 0

90H

Không

TL1

Byte thấp của Timer 1

91H

Không


TH0

Byte cao của Timer 0

92H

Không

TH1

Byte cao của Timer 1

93H

Không

Bảng 1.5 Các thanh ghi chức năng của timer trong AT89C51
Thanh ghi chế độ timer (TMOD)
Thanh ghi TMOD chứa hai nhóm 4 bit dùng để đặt chế độ làm việc cho
Timer 0 và Timer 1.
Bit

Tên

Timer

Mô tả

7


GATE

1

Bit mở cổng, khi lên 1 timer chỉ chạy khi INT1 ở mức
cao

6

C/T

1

Bit chọn chế độ Count/Timer
1 = bộ đếm sự kiện
0 = bộ định khoảng thời gian

5

M1

1

Bit 1 của chế độ mode

24


4


M0

1

Bit 0 của chế độ mode

3

GATE

0

Bit mở cổng, khi lên 1 timer chỉ chạy khi INT0 ở mức
cao

2

C/T

0

Bit chọn chế độ Count/Timer

1

M1

0

Bit 1 của chế độ mode


0

M0

0

Bit 0 của chế độ mode

Bảng 1.6 Tóm tắt thanh ghi chức năng TMOD
Thanh ghi điều khiển timer(TCON)
Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho Timer
1, Timer 0.
Bit



Địa chỉ

Mô tả

hiệu
TCON.7

TF1

8FH

Cờ báo tràn timer 1. Đặt bởi phần cứng khi tràn,
được xóa bởi phần mềm, hoặc phần cứng khi bộ

xử lý chỉ đến chương trình phục vụ ngắt.

TCON.6

TR1

8EH

Bit điều khiển timer 1 chạy đặt xóa bằng phần
mềm để cho timer chạy ngưng.

TCON.5

TF0

8DH

Cờ báo tràn Timer 0.

TCON.4

TR0

8CH

Bit điều khiển Timer 0 chạy

TCON.3

IE1


8BH

Cờ cạnh ngắt 1 bên ngoài. Đặt bởi phần cứng khi
phát hiện một cạnh xuống ở INT1 xóa bằng phần
mềm họăc phần cứng khi CPU chỉ đến chương
trình phục vụ ngắt.

TCON.2

IT1

8AH

Cờ kiểu ngắt 1 bên ngoài. Đặt xóa bằng phần
mềm để ngắt ngoài tích cực cạnh xuống /mức
thấp.

TCON.1

IE0

89H

Cờ cạnh ngắt 0 bên ngòai

TCON.0

IT0


88h

Cờ kiểu ngắt 0 bên ngoài

Bảng 1.7 Thanh ghi điều khiển timer

25


×