ĐỒ ÁN 1
ĐỀ TÀI:
GVHD: ThS.Trần Minh Hồng
SVTH: Nguyễn Văn Pháp
MSV : 06064201
Lớp : ĐHĐT2B1
KHOA CÔNG
KHOA CÔNG
NGHỆ ĐIỆN
NGHỆ ĐIỆN
TỬ
TỬ
ĐIỀU KHIỂN TỪ
ĐIỀU KHIỂN TỪ
XA DÙNG
XA DÙNG
REMOTE
REMOTE
Tp. HCM Ngày 13 Tháng 06 Năm 2009
Lời
Lời
cảm
cảm
Ơn
Ơn
Em xin chân thành cảm ơn ThS.Trần Minh Hồng cùng toàn thể quý
thầy cô trong khoa điện tử Trường Đại Học Công Nghiệp TPHCM đã giúp đỡ
em trong thời gian làm đồ án.
Do kiến thức còn nhiều hạn chế nên trong quá trình làm đồ án em
không thể tránh khỏi thiếu sót. Rất mong được sự chỉ bảo của thầy cô để em
có hướng đi cao hơn trong học tập.
Máy quay camera
Điện thoai
Máy tính
Các hệ thống an toàn
Máy Fax
Lò vi sóng
Máy sao chụp
Máy in lazer
Máy in màu
Máy tin nhắn
Máy tính hành trình
Điều khiển động cơ
Túy đệm khí
Thiết bị ABS
Đo lường
Hệ thống bảo mật
Điều khiển truyền tin
Giải trí
Điều hào nhiệt độ
Mở của tự động
Điều kiển từ xa
Chò chơi điện tử
Các loại nhạc cụ điện tử
Máy khâu
Điều khiển ánh sáng
Trong nhiều ứng dụng trên, ứng dụng điều khiển từ xa là một ứng dụng
rất thú vị. Thay vì phải đứng dậy bật quạt, tắt điện, bật điện….thì giờ đây chỉ
với một chiếc điều khiển từ xa trong tay ta có thể ở nguyên vị trí trong nhà mà
có thể điều khiển được tất cả thiết bị điện tắt mở theo ý muốn. Xuất phát từ
thực tế đó, em quyết định chọn đề tài này. Ý tưởng thực hiện là sử dụng hồng
1.2. Sơ đồ khối, sơ đồ chân, chức năng các chân 1
1.2.1. Sơ đồ khối 1
1.2.2. Sơ đồ chân 1
1.2.3. Chức năng các chân 2
1.2.4. Các Port 2
1.2.5. Các chân tín hiệu điều khiển 3
1.3. Tổ chức bộ nhớ 4
1.3.1. Bộ nhớ trong 5
1.3.2. Bộ nhớ ngoài 10
1.3.3. Hoạt động Reset 11
1.3.4. Lệnh số học 12
1.3.5. Lệnh logic 12
1.3.6. Lệnh rẽ nhánh 13
1.3.7. Các lệnh di chuyển dữ liệu 13
1.3.8. Các lệnh luận lý 14
1.4. Hoạt động của các Port nối tiếp 14
1.4.1. Thanh ghi điều khiển các Port nối tiếp SCON 14
1.4.2. Khởi dộng và truy xuất thanh ghi Prot nối tiếp 16
1.5. Hoạt động ngắt của 89V51RB2 17
1.5.1. Tổ chức ngắt 18
1.5.2. Sự cho phép ngắt và sự cấm ngắt 18
1.5.3. Sử lý các ngắt 19
Chương 2: TÌM HIỂU VỀ HỒNG NGOẠI 21
2.1 Hồng ngoại là gì? 21
2.2 Hồng ngoại trong điện tử 21
2.3 Điều khiển TV sony 23
2.4 Thiết bị thu và phát 27
Chương 3: SƠ ĐỒ VÀ NGUYÊN LÝ HOẠT ĐỘNG 28
3.1 Sơ đồ nguyên lý 28
3.2 Nguyên lý hoạt động 28
kế cỡ nhỏ không sử dụng bộ nhớ ngoài.
- Port 0 có chức năng là bus địa chỉ byte thấp và bus dữ liệu đa hợp
(AD0 – AD7) trong các thiết kế cỡ lớn có sử dụng bộ nhớ ngoài.
Port 1:
- Port 1 (P1.0 – P1.7) có số chân từ 1 – 8.
- Port 1 là port xuất nhập dữ liệu (P1.0 – P1.7) khi sử dụng hoặc
không sử dụng bộ nhớ ngoài.
Port 2:
- Port 2 (P2.0 – P2.7) có số chân từ 21 – 28.
- Port 2 có chức năng là port xuất nhập dữ liệu (P2.0 – P2.7) khi
không sử dụng bộ nhớ ngoài.
- Port 2 có chức năng là bus địa chỉ byte cao (A8 - A15) khi sử dụng
bộ nhớ ngoài.
Port 3:
- Port 3 (P3.0 – P3.7) có số chân từ 10 – 17.
- Port 3 có chức năng xuất nhập dữ liệu (P3.0 – P3.7) khi không sử
dụng bộ nhớ ngoài hoặc các chức năng đặc biệt.
- Port 3 có chức năng là các tín hiệu điều khiển khi sử dụng bộ nhớ
ngoài hoặc các chức năng đặc biệt.
- Chức năng của các chân port 3:
Bit Tên Địa chỉ bit Chức năng
P3.0 RxD B0H Chân nhận dữ liệu của port nối tiếp.
P3.1 TxD B1H Chân phát dữ liệu của port nối tiếp.
P3.2 INT0\ B2H Ngõ vào ngắt ngoài 0.
P3.3 INT1\ B3H Ngõ vào ngắt ngoài 1.
P3.4 T0 B4H Ngõ vào của bộ định thời/ đếm 0.
P3.5 T1 B5H Ngõ vào của bộ định thời/ đếm 1.
- Khi lập trình cho ROM trong chip thì chân EA đóng vai trò là ngõ
vào của điện áp lập trình (Vpp = 12V – 12,5V cho 89V51RB2).
Chân RST:
- RST (Reset): thiết lập lại, chân số 9.
- Khi ngõ vào RST đưa lên cao ít nhất 2 chu kỳ máy, 89V51RB2 thiết
lập lại trạng thái ban đầu. Khi ngõ vào RST ở mức thấp IC hoạt động bình
thuờng.
Chân XTAL1, XTAL2:
- XTAL (Crystal): tinh thể thạch anh, chân số 18 – 19.
- XTAL1: ngõ vào mạch tạo xung clock trong chip.
- XTAL2: ngõ ra mạch tạo xung clock trong chip.
- Bộ dao động được tích hợp bên trong 89V51RB2, khi sử dụng
89V51RB2 người thiết kế chỉ cần nối thêm thạch anh (tần số thạch anh
thường sử dụng là 12MHZ) và tụ.
Chân Vcc, GND:
SFR
80H
7FH
00H
Bộ nhớ
chương
trình
(mã)
FFFH
000H
Bộ nhớ trong chip
PSEN\ WR\ RD\
1.3.1.3. RAM đa chức năng:
- Trên hình vẽ cho thấy 80 byte RAM đa chức năng chiếm địa chỉ từ
30H đến 7FH.
- Mọi địa chỉ trong vùng RAM đa chức năng đều có thể truy xuất tự
do dùng kiểu định địa chỉ trực tiếp hoặc gián tiếp.
1.3.1.4. RAM định địa chỉ bit:
- RAM định địa chỉ bit gồm 128 bit được định địa chỉ chứa các byte
có địa chỉ từ 20H đến 2FH.
- RAM định địa chỉ bit có 3 kiểu truy xuất dữ liệu: trực tiếp, gián tiếp
hoặc theo từng bit.
1.3.1.5. Các dãy thanh ghi:
- 32 vị trí thấp của bộ nhớ nội chứa các dãy thanh ghi. Các lệnh của
89V51RB2 hỗ trợ 8 thanh ghi từ R0 – R7 thuộc dãy 0 và theo mặc định sau
khi Reset hệ thống các thanh ghi này ở các địa chỉ từ 00H đến 07H.
- Các lệnh dùng các thanh ghi R0 đến R7 sẽ ngắn hơn và nhanh hơn
so với các lệ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 dùng thường xuyên nên dùng một trong các thanh ghi này.
- Do có 4 dãy thanh ghi nên tại một thời điểm chỉ có một dãy thanh
ghi tích cực. Dãy thanh ghi tích cực có thể được thay đổi bằng cách thay đổi
bit chọn dãy trong từ trạng thái chương trình PSW.
1.3.1.6. Các thanh ghi chức năng đặc biệt:
- Các thanh ghi nội của hầu hết các bộ vi xử lý đều được truy xuất rõ
ràng bởi một tập lệnh.
- Các thanh ghi nội của 89V51RB2 được cấu hình thành một phần
của RAM trên chip, vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh
ghi bộ đếm chương trình và thanh ghi lệnh vì các thanh ghi này hiếm khi bị
tác động trực tiếp). Cũng như các thanh ghi từ R0 đến R7, ta có 21 thanh ghi
chức năng đặc biệt (SFR: Special Function Register) chiếm phần trên của
RAM nội từ địa chỉ 80H đến FFH.
- Ngoại trừ thanh ghi A có thể được truy xuất rõ ràng còn lại hầu hết
- Con trỏ ngăn xếp (SP: Stack Pointer) là một thanh ghi 8 bit ở địa chỉ
byte là 81H, dùng để lưu trữ tạm thời các dữ liệu. Đây là thanh ghi không
định địa chỉ bit. Thanh ghi này chứa địa chỉ của byte dữ liệu hiện hành trên
đỉnh ngăn xếp. Các lệnh trên ngăn xếp bao gồm lệnh cất dữ liệu vào ngăn xếp
(PUSH) và lệnh lấy dữ liệu ra khỏi ngăn xếp (POP). Lệnh cất dữ liệu vào
ngăn xếp sẽ làm tăng SP trước khi ghi dữ liệu và lệnh lấy ra khỏi ngăn xếp sẽ
làm giảm SP. Đối với chip 8051 thì vùng nhớ được dùng để làm ngăn xếp
được lưu giữ trong RAM nội.
- Để sử dụng ngăn xếp thì ta phải khởi động thanh ghi SP (nghĩa là
nạp giá trị cho thanh ghi SP) => vùng nhớ của ngăn xếp có địa chỉ bắt đầu là
(SP) +1 và địa chỉ kết thúc là 7FH.
- Sau khi reset IC, SP sẽ mang giá trị mặc định là 07H và dữ liệu đầu
tiên sẽ được cất vào ô nhớ ngăn xếp có địa chỉ 08H. Nếu phần mềm ứng dụng
không khởi động SP một giá trị mới thì dãy thanh ghi 1, có thể cả 2 và 3 sẽ
không dùng được vì vùng RAM này đã được dùng làm ngăn xếp. Ngăn xếp
được truy xuất trực tiếp bằng các lệnh PUSH và POP để lưu trữ tạm thời và
lấy lại dữ liệu, hoặc truy xuất ngầm bằng lệnh gọi chương trình con (ACALL,
LCALL) và các lệnh trở về (RET, RETI) để lưu trữ giá trị của bộ đếm chương
trình khi bắt đầu thực hiện chương trình con và lấy lại khi kết thúc chương
trình con.
Thanh ghi DPTR:
- Con trỏ dữ liệu (DPTR: Data Pointer Register) là thanh ghi 16 bit
chứa địa chỉ của ô nhớ cần truy xuất thuộc ROM trong hoặc ngoài và RAM
ngoài
- Thanh ghi DPTR có địa chỉ byte là 82H (DPL: byte thấp) và 83H
(DPH: byte cao). Thanh ghi này không định địa chỉ bit.
Thanh ghi port xuất nhập:
- Các Port của 89V51RB2 bao gồm Port 0 ở địa chỉ 80H, Port 1 ở địa
chỉ 90H, Port 2 ở địa chỉ A0H, Port 3 ở đị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.
• Bit 7 (SMOD) => cho phép tăng gấp đôi tốc độ
truyền dữ liệu nối tiếp (tốc độ baud) khi SMOD = 1.
• Bit 6, 5, 4 => không có địa chỉ.
• Bit 3, 2 (GF1, GF0) => cho phép người lập trình
dùng với mục đích riêng.
• Bit 1 (PD) => dùng để quy định chế độ nguồn giảm.
• Bit 0 (IDL) => dùng để quy định chế độ nghỉ.
Các bit điều khiển Power Down và Idle có tác dụng chính trong tất cả
các IC họ MCS – 51 nhưng chỉ được thi hành trong sự biên dịch của CMOD.
1.3.2. Bộ nhớ ngoài:
- 89V51RB2 có khả năng mở rộng không gian bộ nhớ chương trình
lên đến 64KB và không gian bộ nhớ dữ liệu lên đến 64KB.
- Khi dùng bộ nhớ ngoài, Port 0 không còn chức năng I/O nữa mà đó
là bus địa chỉ byte thấp và bus dữ liệu đa hợp (AD0 – AD7). Port 2 là bus địa
chỉ byte cao (A8 - A15). Port 3 là các tín hiệu điều khiển (WR\, RD\
Kết nối và truy xuất bộ nhớ dữ liệu ngoài:
Sơ đồ kết nối và truy xuất bộ nhớ dữ liệu ngoài
Bộ nhớ dữ liệu ngoài là bộ nhớ đọc/ ghi được cho phép bởi các tín
hiệu RD\ và WR\ ở các chân P3.7 và P3.6. Lệnh dùng để truy xuất bộ nhớ dữ
liệu ngoài là MOVX, sử dụng con trỏ dữ liệu 16 bit DPTR hoặc R0, R1 làm
thanh ghi chứa địa chỉ.
Giải mã địa chỉ:
Nếu trường hợp ROM và RAM được kết hợp từ nhiều bộ nhớ có
dung lượng nhỏ hoặc cả hai giao tiếp với chip 89V51 thì cần phải giải mã địa
chỉ. Việc giải mã này cần cho hầu hết các bộ vi xử lý.
Ví dụ nếu các ROM và RAM có dung lượng 8KB được sử dụng thì
tầm địa chỉ mà chip 89V51 quản lý (0000H – FFFFH) cần phải được giải mã
thành từng đoạn 8KB để chip có thể chọn từng IC nhớ trên các giới hạn 8KB
tương ứng: IC1: 0000H – 1FFFH, IC2: 2000H – 3FFFH,…
IC chuyên dùng cho việc tạo tín hiệu giải mã là 74HC138, các ngõ ra
Thanh ghi IE 0xx00000B
Các thanh ghi định thời 00H
Thanh ghi SCON 00H
Thanh ghi SBUF 00H
Thanh ghi PCON (HMOS) 0xxxxxxxB
Thanh ghi PCON (CMOS) 0xxx0000B
1.3.4. Các lệnh số học
ADD A, <src,byte>
SUBB A, <src, byte>
INC <byte>
DEC <byte>
MUL AB : (A)
←
LOW [(A) x (B)]; có ảnh hưởng cờ OV
: (B)
←
HIGH [(A) x (B)]; cờ Carry được xoá
DIV AB : (A)
←
Integer result of [(A) / (B)]; cờ OV
: (B)
←
Remainder of [(A) / (B)]; cờ Carry xoá
1.3.5. Các lệnh logic
Tất cả các lệnh logic sử dụng thanh ghi A như là một trong những toán
hạng thực thi một chu kì máy, ngoài A mất 2 chu kì máy. Những hoạt động
logic có thể được thực hiện trên bất kì byte nào trong vị trí nhớ dữ liệu nội mà
không thông qua thanh ghi A.
Các hoạt động logic được tóm tắt như sau:
ANL <dest-byte>,<src-byte>
0
1.3.7. Các lệnh dịch chuyển dữ liệu
Các lệnh dịch chuyển dữ liệu trong những vùng nhớ nội thực thi 1 hoặc 2
chu kỳ máy. Mẫu lệnh MOV <destination>, <source> cho phép di chuyển dữ
liệu bất kỳ 2 vùng nhớ nào của RAM nội hoặc các vùng nhớ của các thanh ghi
chức năng đặc biệt mà không thông qua thanh ghi A. Vùng Stack của 8051
chỉ chứa 128 byte RAM nội, nếu con trỏ Stack SP được tăng quá địa chỉ 7FH
thì các byte được PUSH vào sẽ mất đi vào các byte POP ra thì không biết rõ.
Các lệnh dịch chuyển bộ nhớ nội và bộ nhớ ngoại dùng sự định vị gián
tiếp. Địa chỉ gián tiếp có thể dùng địa chỉ 1 byte (@ Ri) hoặc địa chỉ 2 byte
(@ DPTR). Tất cả các lệnh dịch chuyển hoạt động trên toàn bộ nhớ ngoài
thực thi trong 2 chu kỳ máy và dùng thanh ghi A làm toán hạng
DESTINATION.
Việc đọc và ghi RAM ngoài (RD và WR) chỉ tích cực trong suốt quá trình
thực thi của lệnh MOVX, còn bình thường RD và WR không tích cực (mức
1).
1.3.8.Các lệnh luận lý
CLR C : Xoá cờ Carry xuống 0. Có ảnh hưởng cờ Carry.
CLR BIT : Xoá bit xuống 0. Không ảnh hưởng cờ Carry.
SET C : Set cờ Carry lên 1. Có ảnh hưởng cờ Carry.
SET BIT : Set bit lên 1. Không ảnh hưởng cờ Carry.
CPL C : Đảo bit cờ Carry. Có ảnh hưởng cờ Carry.
CPL BIT : Đảo bit. Không ảnh hưởng cờ Carry.
ANL C, BIT : Có ảnh hưởng cờ Carry.
ANL C,
BIT
: Không ảnh hưởng cờ Carry.
ORL C, BIT : Tác động cờ Carry.
ORL C, : Tác động cờ Carry.
MOV C, BIT : Cờ Carry bị tác động.
và set cờ ngắt của việc phát sẵn sàng hoạt động (TI = 1), ta dùng lệnh sau :
MOV SCON, #01010010H.
Port nối tiếp của 8051 có 4 mode hoạt động tùy thuộc theo trạng thái của
SM0/SM1.
Bảng Chức năng của thanh ghi SCON
Các chế độ hoạt động của port nối tiếp
Bit
Ký hiệu Địa chỉ
Mô tả hoạt động
SCON.7 SM0 9FH Bit 0 của mode Port nối tiếp
SCON.6 SM1 9EH Bit 1 của mode Port nối tiếp
SCON.5 SM2 9DH Bit 2 của mode Port nối tiếp. cho phép sự
truyền của bộ xử lý đa kênh ở mode 2 và 3; RI
sẽ không tích cực nếu bit thứ 9 đã thu vào là 0.
SCON.4 REN 9CH REN = 1 sẽ cho phép thu ký tự
SCON.3 TB8 9BH Phát bit 8. Bit 9 phát trong mode 2 và 3, được
set và xóa bởi phần mềm
SCON.2 RB8 9AH Thu bit 8. Bit thứ 9 nhận được
SCON.1 TI 99H Cờ ngắt phát. Cờ này được set ngay khi kết
thúc việc phát một ký tự; được xóa bởi phần
mềm
SCON.0 RI 98H Cờ ngắt thu. Cờ này được set ngay khi kết thúc
việc thu một ký tự; được xóa bởi phần mềm
Ba trong 4 mode cho phép truyền động bộ với mỗi ký tự thu hoặc phát
sẽ được bố trí bởi bit Start hoặc bit Stop.
1.4.2. Khởi động và truy xuất các thanh ghi Port nối tiếp
1.4.2.1. Cho phép thu
Bit cho phép thu REN trong thanh ghi SCON phải được set bởi phần
mềm để cho phép sự thu các ký tự. Điều này thường được dùng làm ở đầu
chương trình khi các Port nối tiếp và các timer được khởi động.
Trong SCON có SM0/SM1 để vào mode UART 8 bit, REN = 1 cho
phép Port nối tiếp thu các ký tự và TI = 1 cho phép phát ký tự đầu tiên bởi
việc cho biết thanh ghi đếm rỗng. TMOD có M1/M0 = 1/0 để đặt timer 1 vào
mode tự động nạp lại 8 bit. Việc set bit TR1 để mở máy chạy timer. Tốc độ
Baud 2400 sẽ cho ta tốc độ tràn timer 1 là 2400/32 = 76,8 KHz (ứng với thạch
anh 12 MHz) sẽ cho số xung clock sau mỗi sự tràn là 1000/76,8 = 13,02 (lấy
tròn là 13). Vậy -13 là giá trị cần nạp vào TH1 để có tốc độ Baud là 2400
Baud.
1.5. Hoạt động ngắt của 89V51RB2
Trong nhiều ứng dụng đòi hỏi ta phải dùng ngắt (Interrupt) mà không
dùng timer bởi vì nếu dùng timer ta phải mất thời gian để chờ cờ tràn timer
TFx set mới xử lý tiếp chương trình. Do đó ta không có thời gian để làm các
việc khác mà ứng dụng đòi hỏi. Đây là chương trình rất quan trọng của 8051
nói riêng và họ MSC – 51 nói chung.
Ngắt là một sự cố có điều kiện mà nó gây ra sự ngưng lại tạm thời của
chương trình để phục vụ một chương trình khác. Các ngắt đóng vai trò quan
trọng trong việc thiết kế và hiện thực các ứng dụng của bộ vi điều khiển. các
ngắt cho phép hệ thống đáp ứng một sự kiện theo cách không đồng bộ và xử
lý sự kiện trong khi một chương trình khác đang thực thi. Một hệ thống được
điều khiển bởi ngắt cho ta ảo tưởng đang làm nhiều công việc đồng thời. Tất
nhiên CPU không thể thực thi nhiều lệnh tại một thời điểm, nhưng nó có thể
Timer
Thục thi chương trình không có ngắt
******
Main Program
ISRISR ISR ISR
* **
Timer
Thục thi chương trình có ngắt
tạm thời treo việc thực thi của chương trình chính để thực thi chương trình