Luận văn, đồ án tốt nghiệp, đề tài tốt nghiệp, đồ án, thực tập tốt nghiệp, đề tài
Trang 1Phin A: CƠ SỞ LÝ THUYET
CHƯƠNG I: SƠ LƯỢC VỀ ĐÈN GIAO THONG
I Đặt vấn điể <coscoscesSsssssesesssesersossresrsesssrsse 3
II Giải quyết vấn đề
CHƯƠNG 2: SƠ BO KHỐI VÀ NGUYÊN LÝ HOẠT ĐỘNG
I Phương án thiết kế
s Nguyên lý họat động III Sơ đồ và chức năng của từng khdi
1) Khối vi xử lý
2) Khối cách ly
3) Khối công tấc ngõ ra 4) Khối nguồn
5) Khối công tấc tay
6) Khối bàn phím 7) Khối chốt
Trang 2
3) Tín hiệuđược mô t - +2 s se £ + eeeeeserzsezs
4) Xét nguồn ngoài và nguồn trong
5) Biểu đổ địa chỉ -sscccxxtrxtttrtrrtrrkrrrrrrrree
CHƯƠNG 5: MÀN HÌNH L.CD - Š2
1Giới thiệu Sơ lược về cấu tạo LCD 52,
1 Bộ hiển thị thực tế 52
2 Những ưu điểm của LCD
1I.Module LCD 1602A aoe 1 Giải thích chức năng của các chân - - 33
2 Mô tả các chức năng 53
3 Tập lệnh 54
CHUGNG 6: TRIAC 57
1.Giới thiệu về Cấu tạo của 'Triac -‹-« sec«e 57 H.Nguyên tắc hoạc động .ceeeesesesesesssseseeee 57 CHƯƠNG 8: OPTO TRIAC 5 - 5s Ss ss£ses 1) Giới thiệu vễ OPTO TRIAC
2) Chức năng vế OPTO TRIAC +
3) Ứng dụng . 2-5 +xe+xecxerxerrsrrerrrrrsrrse PHẨN B: THIẾT KẾ ` THỊ CÔNG VÀ THIẾT KẾ PHẦN CỨNG 62
1.Phương án thiết kế
1I.Thiết kế chỉ tiết các khốt IIL.LƯU ĐỒ GIẢI THUẬTT
KẾT LUẬN
TÀI LIỆU THAM KHẢO
Trang 3PHAN A:
CƠ SỞ LÝ THUYET
Trang 4cHuonG1: SO LUGC VE DEN GIAO THONG
1 Dat van dé:
Trong quá trình phát triển đô thị và đô thị hóa nông thôn, các cơ sở hạ tầng được nâng cấp một cách nhanh chóng Do đó, tạo điều kiện giao thông phát triển lên
và nhu cầu xã hội cần được cung cấp các phương tiện hiện đại hơn, vận tốc nhanh hơn,
phương tiện nhiễu hơn, làm cho tai nạn giao thông tăng lên và kẹt xe nhiều hơn Mỗi ngày hàng trăm vụ tai nạn giao thông xãy ra, kẹt xe làm ách tấc giao thông,
Đèn giao thông dùng để lưu thông, chống tình trạng kẹt xe giải thoát ách tấc giao
thông ngay các ngã tư , ngã năm, Người tham gia giao thông nhằm tuân thủ, chấp
hành những quy định để lưu thông tốt hơn nhờ có đèn giao thông trên đường
- _ Thể hiện đúng thời gian của đèn giao thông
- _ Thể hiện và phân biệt rõ đèn nào của đèn giao thông
- _ Ứng dụng vào thực tiễn mà không cần thay đổi và phần cứng cũng như phần mềm
Il Giải quyết vấn đề:
Với em là sinh viên đang tìm hướng để tài sao cho phù hợp với thời gian và kha nang cha minh em chon” DEN GIAO THONG?” dé thiết kế cho nhiều con đường thành thị, nông thôn thêm đẹp và không xãy ra kẹt xe, tai nan giao th6ng, Va qua qua
trình em tìm hiểu cùng với sự tư vấn của thây giáo hướng dẫn em chọn” THIẾT KẾ
DEN GIAO THONG TAI NGA TU”
Mạch này điểu khiển giao thông với 3 chế độ, mỗi chế độ được thực thi ở khoảng thời gian khác nhau và thời điểm khác nhau Cho phép chọn thời gian lưu thông theo từng
tuyến nhất định (chế độ điều khiển bằng tay) Điều khiển tự động theo tuần tự thời gian quy định của mỗi ngày
Ví dụ: Giờ cao điểm được xác lập ở khoảng thời gian từ:
Thiết kế mạch đèn giao thông tại ngã tư có các nhiệm vụ sau:
> _ Chạy theo đúng trình tự quy định của luật giao thông
> Điều khiển bằng tay theo từng trạng thái ưu tiên dành cho người
điều khiển giao thông
>_ Đọc thời gian từ Dallas và xuất thời gian, lịch cho LCD hiển thị
Trang 5Il SODO KHOI
SO D6 KHOI LAP TRINH DIEU KHIEN DEN
GIAO THONG
> Nguyên lý hoạt động:
Khi mở nguồn chương trình tự động bật 4 đèn đỏ tại các trụ đèn giao thông trong thời gian 3 giây Lúc này chương trình sẽ ra lệnh cho dallas, bắt dallas xuất đữ liệu ngày, tháng, năm, giờ, phút, giây cho vào bộ nhớ cho chương trình Chương trình sẽ xuất dữ
liệu ra LCD
Chương trình quét con tấc tay, cho biết trạng thái tức thời:
% Trạng thái hướng 1 là trạng thái bật đèn xanh 1 sáng và đèn đỏ 2 sáng
luôn không thay đổi, không quét bàn phím
s* Trạng thái hướng 2 là trạng thái bật đèn xanh 2 sáng và đèn đỏ 1 sáng luôn không thay đổi, không quét bàn phím
s* Trạng thái Auto có nhiều chế độ cập nhật:
" Chương trình quét bàn phím hoạt động, cài đặt cho Dallas, cài đặt thời gian cho đèn giao thông Các đèn giao thông được tắt
" Chương trình chạy bình thường đèn giao thông sáng theo trình tự : đỏ, xanh, vàng, theo thời gian quy định là: đèn đỏ = đèn xanh +đèn vàng
Trang 6Il sOp6 VA CHUC NANG CUA TUNG KHOL
Đây là một khối quan trọng trong hệ thống Khối xử lý giữ nhiệm vụ tiếp
nhận xử lý trung tâm, khả năng và tiếp nhận phân tích các yêu cầu tác động, từ đó
đáp ứng thích hợp Điều này được thể hiện qua các tập lệnh của 89C51 Tập lệnh
này có khá năng hoạt động, có mức độ xử lý trung tâm, khắc phục và hạn chế điều
đó các nhà sản xuất cố gắng thiết lập tập lệnh sao cho sự kết hợp chúng lại với
nhau, với các tình huống khác mà từng lệnh riêng biệt không thể giải quyết được
Đó chính là cổ sở của chương trình hệ thống
2) Khối cách ly:
Khối có nhiệm vụ cách ly điện áp AC và DC, điều khiển lái tải, các bóng
đèn giao thông khi ta điều khiển chỉ điều khiển bằng điện áp DC không điều khiển
điện áp AC, vì vi điểu khiển là một bộ não được sử dụng để điều khiển Do đó bắt
buộc chúng ta phải dùng bộ cách ly, là cách ly điện áp cao với điện áp thấp
3) Khối công tấc ngõ ra:
Khối công tấc ngõ ra là một khối có khả năng đóng hoặc mổ con tấc Để
đóng tắt các bóng đèn giao thông khi ta điều khiển chỉ điều khiển bằng điện áp AC,
vì vi điều khiển là một bộ não được sử dụng điều khiển cho qua khối cách ly, vì
khối cách ly không có khả năng lái đòng để kích cho các tải ngoài, do cấu tạo của
nó quá nhỏ (chỉ sử dụng dòng kích cho tải không được lớn nên không thể kích
được) Vì thế ta sử dụng thêm công tấc ngõ ra dùng để gánh cho tải
4) Khối nguồn:
“ Nguồn DC: là nguôn có nhiệm vụ tạo ra điện áp 5V phục vụ cho các khối
khác, như cung cấp điện áp cho LCD, cung cấp cho vi điều khiển, Dallas và cho
các IC khác trong mạch, Các vi mạch ổn áp DC tuyến tính được sử dụng rất
rộng rải do những ưu điểm của nó như :Tích hợp toàn bộ linh kiện trong một vỏ
kích thước bé, không cần sử dụng hoặc chỉ sử dụng thêm một vài linh kiện ngoài
để tạo mạch hoàn chỉnh, mạch bảo vệ quá dòng, quá nhiệt có sẵn bên trong vi
mạch Một trong những lọai vi mạch ổn áp DC tuyến tính thông dụng là ho vi
mạch 78xx ( ổn áp dương) và ổn áp 79xx(ổn áp âm) có ba chân Tùy theo hình
đạng vỏ, các vi mạch ổn áp ba chân có thể cung cấp dòng từ 100mA đến 1A và
cho điện áp ra cố định ở nhiều giá trị khác nhau tương ứng với mã số:
Dạng mạch điện dùng vi mạch ổn áp ba chân YI 78XK (79XX) vo
-Trong đó C¡ được thêm vào khi vi mạch đặt xa mi đụ
nguồn chỉnh lưu và lọc để ổn định điện áp ngõ
vào Cọ để lọc nhiễu cao tần Tuy nhiên để vi mạch =
hoạt động tốt thì điện áp ngõ vào tối thiểu phải
cao hơn điện áp ngõ ra 2V Đây là một giới hạn của vi mạch ổn áp tuyến tính
Trang 7s* Nguồn AC: là nguồn có nhiệm vụ cung cấp cho các bóng đèn giao thông
` Được điều khiển bởi khối công tấc ngõ ra dùng để lái các bóng đèn giao thông
5) Khối công tấc tay:
Là khối có tác dụng dùng để chuyển chế độ ưu tiên và nó có 3 trạng thái: chế độ
hướng 1,chế độ hướng 2 và chế độ tự động
% Hướngl: chỉ cho phép lưu thông một chiểu nhất định, do người điều
khiển giao thông điểu khiển theo hướng 1 thì hướng 2 bị đừng lại với
sự báo hiệu của bóng đèn cho thấy trên trụ đèn ở ngã 4
4 Hướng2: chỉ cho phép lưu thông một chiểu nhất định, do người điều
khiển giao thông điều khiển theo hướng 2 thì hướng 1 bị dừng lại với
sự báo hiệu của bóng đèn cho thấy trên trụ đèn ở ngã 4
+» Tự động: là chế độ không cần người điểu khiển giao thông phải túc
trực ở đó Nó sẽ tự động chạy theo đúng trình tự, đúng thời gian một cách chính xác
6) Khối bàn phím:
Khối bàn phím là một khối mã hóa bàn phím để đổi thành mã nhị phân Việc mã hóa tín hiệu bàn phím kiểu ma trận đòi hỏi phải dùng nhiều mạch logic, và
phải có một mạch để quét trên công tấc phím từng cột phải được quét qua để biết
phím nào được nhấn hay không nhấn nếu có mạch đếm sẽ chựng lại và con số trong
mạch đếm tương ứng, lúc đó sẽ tương ứng với mã nhị phân của phím được ấn Đây là nguyên tắc hoạt động của bàn phím có mã hóa:
Ưu điểm của bàn phím: mã hóa với tốc độ khá nhanh nhưng mạch điện phức tạp và độ linh hoạt không phong phú
Bàn phím được thiết kế như một công tấc thường hở việc tiếp xúc với bàn phím là
nhiều hơn so với thiết bị nào Ở đây do yêu câu thiết kế nên số phím có 10 phím
nhập dữ liệu thể hiện dưới dạng số thập phân từ 0 đến 9, và 6 phím chức năng Người sử dụng bàn phím để điều chỉnh thời gian, đặt thời gian, chọn phím tăng , giảm, điều chỉnh xóa, chọn Dallas, cài dat neon giao thông theo thời gian thực
Sơ đồ khối kết nối như sau:
Trang 8kiệm chân điều khiển thế nào cho đỡ tốn nhất cũng không đủ để cho chúng ta sử
dụng vì đồ mà chúng ta bắt buộc phải dùng thêm các con IC khác Do đó chốt là
một vấn để quan trọng trong mạch này
Là khối LCD có khả năng hiển thị số hay một kí tư, chuối kí tự nào đó, nó làm nhiệm vụ quan trọng nhất để liên lạc giữa người và máy Nó giúp ích rất lớn trong công việc hiển thị xem giờ, phút giây trong ngày, ngày, tháng, năm,
CHƯƠNG 3: KHẢO SÁT BỘ VI ĐIỀU KHIỂN 89C51
I Giới thiệu về họ MSC51 (89C51):
MCSS1 1a mét ho IC vi diéu khién (Microcontroller ) do hang Intel san xudt Cac
IC tiêu biểu cho họ MCS51 1 8051 va 8031 Dac biét, vi diéu khién 8951 dudc sdn xuất gần đây mang các đặc điểm sau:
" 4 Kbytes EEPROM
= 128 bytes RAM
= 4 ports I/O (Input/Output)
" 2 bộ định thời (timer) 16 bits
" Giao tiếp nối tiếp -
" 64 Kbytes không gian bộ nhớ chương trình mở rộng
" 64 Kbytes không gian bộ nhớ dữ liệu mở rộng
" Một bộ xử lí luận lí (thao tác trên các bit đơn)
ø 210 bits được địa chỉ hóa
Serial port
control Registers RAM 4K - S951 Timer @ Tow
Trang 9II SƠLƯỢC VE HO MCSS1:
IC 8951 có tấc cả 40 chân có chức năng như các đường xuất nhập Trong đó có
24 chân có công dụng kép, mỗi đường có thể hoạt động như đường xuất nhập hoặc như
đường điều khiển hoặc là thành phần của bus dữ liệu và bus địa chỉ
Trang 10Port 0 14 m6t port hai chifc nang trén cdc chan 32 — 39 Trong các thiết kế
cỡ nhỏ (không dùng bộ nhớ mở rộng) nó có chức năng như các đường LO Đối với các thiết kế lớn với bộ nhớ mở rộng, nó được hợp kênh giữa bus dữ liệu và byte thấp của bus địa chi
b/ Port 1:
Port 1 14 mét port I/O trén c4c chan 1 — 8 Caéc chan duge ki hiéu:
P1.0; P1.1 ; P1.2 c6 thể dùng cho giao tiếp với các thiết bị ngoài nếu cần
Port 1 không có chức năng khác, vì vậy chúng chỉ được dùng cho giao tiếp với
các thiết bị ngoài
e/ Port 2:
Port 2 là một port công dụng kép trên các chân 21 - 28 được dùng như
các đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết kế
dùng bộ nhớ mở rộng
d/ Port 3:
Port 3 là một port công dụng kép trên các chân 10 — 17 Các chân của port này có nhiễu chức năng, các công dụng chuyển đổi có liên hệ với các đặc tính đặc biệt của 8951 như ở bảng sau:
10
Trang 11P3.3 INTI\ Ngắt 1 bên ngoài
P3.4 | TO Ngõ vào của Timer/counter 0 P35 | Tl Ngõ vào của Timer/counter 1
P3.6 | WR\ Xung ghi bộ nhớ dỡ liệu ngoài
P3.7 | RD\ Xung đọc bộ nhớ dữ liệu ngoài
2 Các tín hiệu điểu khiển:
IC 89C51 có 4 tín hiệu điều khiển:
a/ PSEN\ (Program Store Enable):
PSEN\ là tín hiệu ra trên chân 29 Nó là tín hiệu điểu khiển cho phép bộ nhớ chương trình mở rộng, PSEN\ thường được nối đến chân OE (Output Enable) của một
EPROM để cho phép đọc các byte mã lệnh
PSEN\ sẽ ở mức thấp trong thời gian lấy lệnh Các mã nhị phân của chương trình được đọc từ EPROM qua bus đữ liệu và được chốt vào thanh ghi lệnh của 8951 để giải
mã lệnh Nếu thi hành chương trình trong ROM nội (8951) thì PSEN\ sẽ ở mức thụ
động (mức cao)
b/ ALE (Address Latch Enable):
Tín hiệu ra ALE trên chân 30 tương hợp với các thiết bị làm việc với các vi xử lí 8085,
8088, 8086
IC 8951 dùng ALE một cách tương tự cho việc giải kênh các bus địa chỉ và dif liéu
Khi port 0 được dùng trong chế độ chuyển đổi: vừa là bus dữ liệu vừa là byte thấp của bus địa chỉ, ALE là tín hiệu để chốt byte thấp địa chỉ vào một thanh ghi bên ngoài trong nửa đầu chu kì bộ nhớ Sau đó, các đường port 0 dùng để xuất nhập dữ liệu trong
nửa sau của chu kì bộ nhớ
Trang 12Cá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 nguồn xung nhịp cho các phần khác của hệ thống Nếu xung nhịp trên
8951 là 12 Mhz thì ALE có tần số 2 Mhz Chỉ ngoại trừ khi thi hành lệnh MOVX, một
xung ALE sẽ bị mất Trong trường hợp là 8051 thì chân này.cũng được làm ngõ vào cho xung lập trình cho EPROM trong chip
c/ EA\ (External Access):
Tín hiệu vào EA\ trên chân 31 thường được mắc lên mức cao (+5v) hoặc mức thấp
(GND) Nếu ở mức cao, 8951 thi hành chương trình từ ROM nội trong
khoảng địa chỉ thấp (4K) Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ
mở rộng
Khi dùng 8031, EA\ luôn được nối mức thấp vì 8031 không có bộ nhớ chương trình
trên chip Nếu EA\ được nối mức thấp thì bộ nhớ chương trình bên trong 8951 sẽ bị cấm
và chương trình chỉ được thi hành từ EPROM mở rộng
Người ta còn dùng EA\ làm chân cấp điện áp 21V khi lập trình cho EEPROM trong 8051
d/ RST (Reset):
Ngõ vào RST trên chân 9 là ngõ reset của 8951 Khi tín hiệu này được đưa lên mức cao (trong ít nhất 2 chu kì máy), các thanh ghi bên trong 8951 được tải những
e/ Các ngõ vào bộ dao động trên chip:
Như đã thấy trong các hình trên, 8951 có một bộ dao động trên chip Nó thường được nối với một thạch anh giữa hai chân 18 và 19 Các tụ giữ cũng cần thiết như đã
vẽ Tần số thạch anh thông thường là 12 Mhz
Như đã nói ở trên, cả chương trình và đữ liệu có thể ở bên trong (8951); dù vậy
chúng có thể được mở rộng bằng các thành phân ngoài lên đến tối đa 64 Kbytes bộ
nhớ chương trình và 64 Kbytes bộ nhớ dữ liệu
Bộ nhớ bên trong bao gồm ROM (8951) và RAM trên chip bao gồm nhiều thành phần: Phân lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank thanh ghi và
các thanh ghi chức năng đặc biệt
12
Trang 13
" Cé4c thanh ghi và các port xuất nhập đã được xếp trong bộ nhớ và có thể được
truy xuất trực tiếp giống như các địa chỉ bộ nhớ khác
" _ Ngăn xếp bên trong RAM nội nhỏ hơn so với RAM ngoài so với bộ xử lí khác
3.2/ Chỉ tiết về bộ nhớ RAM trên chip:
Như sẽ thấy trong hình sau, RAM bên trong 8951 được phân chia thành các bank thanh ghi (00H - 1FH), RAM dia chi hdéa bit (20H — 2FH), RAM da dung (30H — TFH) và các thanh ghi chức năng đặc biệt trong khoảng (80H - FFH)
“+ RAM da dung:
Mặc dù trên hình cho thấy 80 bytes RAM đa dụng chiếm các địa chỉ từ 30H - 7FH,
32 bytes đưới cùng từ 00H — 1FH cũng có thể được dùng với mục đích tương tự (mặc
đù các địa chỉ này đã có mục đích khác)
Moi dia chi trong vùng RAM đa dụng đều có thể được truy xuất tự do dùng cách đánh địa chỉ trực tiếp hoặc gián tiếp Ví dụ, để đọc nội dung ở địa chỉ 5FH của RAM nội vào thanh ghi tích lãy, lệnh sau sẽ được dùng:
MOV A,5FH
Lệnh này di chuyển 1 byte đữ liệu dùng cách đánh địa chỉ trực tiếp để xác định
“địa chỉ nguồn” (5FH) Đích nhận dữ liệu được ngầm xác định trong mã lệnh là
thanh ghi tích lũy A
RAM bên trong cũng có thể được truy xuất dùng cách đánh địa chỉ gián tiếp qua
R0 hay R1 Ví dụ, hai lệnh sau thi hành cùng nhiệm vụ như lệnh đơn ở trên:
MOV R0, #5FH
Trang 14MOV A, @RO
Lệnh đầu dùng địa chỉ tức thời để di chuyển giá trị 5FH vào thanh ghi R0, và lệnh
thứ hai dùng địa chỉ gián tiếp để di chuyển dữ liệu “được trổ bởi R0” vào thanh ghi
+ RAM địa chỉ hóa từng bit:
IC 8951 chứa 210 bits được địa chỉ hóa, trong đó 128 bits là ở các địa chỉ byte 20H đến 2FH, và phần còn lại là trong các thanh ghi chức năng đặc biệt
DỊ DỊ DỊ D[ Đ[ Đ[ b[ _[ Dị psw o|7|ø|s|4|z|z} lo
30 BỊ _[_[ _[ BỊ BBA[ BỊ B| Ð
8 cls| [ols 2F| 7[ 7| 7[ 7| 7| 7 7| 7
Trang 15Ý tưởng truy xuất từng bit riêng ré bằng phần mềm là một đặc tính tiện lợi của vi
điều khiển nói chung Các bịt có thể được đặt, xóa, AND, OR, với một lệnh đơn
Trong khi đó, đa số các vi xử lí đòi hỏi một chuỗi lệnh đọc — sửa — ghi để đạt được
hiệu quả tương tự Hơn nữa, các port O cũng được địa chỉ hóa từng bit làm đơn
giản phần mềm xuất nhập từng bit
Có 128 bits được địa chỉ hóa đa dụng ở các byte 20H đến 2FH Các địa chỉ này được truy xuất như các byte hoặc như các bit phụ thuộc vào lệnh được dùng Ví dụ,
để đặt bit 67H, ta dùng lệnh sau:
Trang 16SET 67H
Chú ý rằng “địa chỉ bit 67H” là bit có trọng số lớn nhất (MSB) ở “dia chi byte
2CH” Lệnh trên sẽ không tác động đến các bit khác ở địa chỉ này Các vi xử lí sẽ : phải thi hành nhiệm vụ tương tự như sau:
MOV A,2CH ; đọc cả byte
ORL A, #10000000B ; set MSB
MOV 2CH,A ; ghi lai ca byte
s Các bank thanh ghi:
32 bytes thấp nhất của bộ nhớ nội là dành cho các bank thanh ghi Bộ lệnh của
§951 hỗ trợ 8 thanh ghi (RO —- R7) và theo mặc định (sau khi reset hệ thống) các thanh ghi này ở các địa chỉ 00H - 07H Lệnh sau đây sẽ đọc nội dung ở địa chi OSH vào thanh ghi tích lũy :
MOV A,R5
Đây là lệnh một byte dùng địa chỉ thanh ghi Tấc nhiên, thao tác tương tự có thể được thi hành bằng lệnh 2 bytes dùng địa chỉ trực tiếp nằm trong byte thứ hai:
MOV A,05H
Các lệnh dùng các thanh ghi RO đến R7 thì ngắn hơn và nhanh hơn các lệnh tương
ứng nhưng dùng địa chỉ trực tiếp Các giá trị dữ liệu được dùng thường xuyên nên ding một trong các thanh ghi này
Bank thanh ghỉ tích cực có thể được chuyển đổi bằng cách thay đổi các bit chọn
bank thanh ghi trong từ trạng thái chương trình (PSW) Giả sử rằng bank thanh ghi 3 được tích cực, lệnh sau sẽ ghi nội dung của thanh ghi tích lũy vào địa chỉ 18H:
MOV R0,A
Ý tưởng dùng “các bank thanh ghi” cho phép “chuyển hướng” chương trình nhanh
và hiệu quả (từng phần riêng rẽ của phần mềm sẽ có một bộ thanh ghi riêng không
phụ thuộc vào các phần khác)
4/_ Các thanh ghỉ chức năng đặc biệt:
Các thanh ghi nội của 8951 được truy xuất ngầm định bởi bộ lệnh Ví dụ lệnh “INC A” sẽ tăng nội dung của thanh ghi tích lũy A lên 1 Tác động này được ngầm định trong mã lệnh
Các thanh ghi trong 8951 được định dạng như một phần của RAM trên chip Vi vay mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi đếm chương trình và thanh ghi
16
Trang 17lệnh vì các thanh ghi này hiếm khi bi tác động trực tiếp, nên không lợi lộc gì khi đặt chúng vào trong RAM trên chip) Đó là lí do để 8951 có nhiều thanh ghi như vậy Cũng như RO đến R7, có 21 thanh ghi chức năng đặc biệt (SFR: Special Function Register) ở vùng trên của RAM nội, từ địa chỉ 80H đến FFH, Chú ý rằng hầu hết
128 địa chỉ từ 80H đến FFH không được định nghĩa Chỉ có 21 địa chỉ SFR là được định nghĩa
Ngoại trừ thanh ghi tích lũy A có thể được truy xuất ngầm như đã nói, đa số các
SER được truy xuất dùng địa chỉ trực tiếp Chú ý rằng một vài SFR có thể được địa
chỉ hóa bit hoặc byte Người thiết kế phải thận trọng khi truy xuất bit và byte Ví dụ
lệnh sau:
SETB 0E0H
Lệnh này sẽ set bit 0 trong thanh ghỉ tích lũy, các bỉt khác không đổi Ta thấy rằng
E0H đồng thời là địa chỉ byte của cả thanh ghi tích lũy và là địa chỉ bịt của bít có trọng số nhỏ nhất trong thanh ghi tích lũy Vì lệnh SETB chỉ tác động trên bit, nên
chỉ có địa chỉ bit là có hiệu quả
a/ Từ trang thái chương trình:
Từ trạng thái chương trình (PSW: Program Status Word) ở địa chỉ D0H chứa các
bit trạng thái như bảng tóm tắt sau:
00 = bank 0 ( dia chi OOH — 07H )
01 = bank 1 ( dia chi 08H - 0FH )
10 = bank 2 ( dia chi 10H - 17H)
11 = bank 3 ( dia chi 18H — 1FH )
ADD A, #1
Trang 18sẽ trả về thanh ghi tích lũy kết quả 00H và set cờ nhớ trong PSWK
Cờ nhớ cũng có thể xem như một thanh ghi 1 bit cho các lệnh luận lí thi hành trên bit Vi đụ, lệnh sau sẽ AND bit 25H với cờ nhớ và đặt kết quả trở vào cờ nhớ:
AND C,25H
© Cờ nhớ phụ:
Khi cộng các số BCD, cờ nhớ phụ (AC) được set nếu kết quả của 4 bit thấp trong
khoảng 0AH đến 0FH Nếu các giá trị được cộng là số BCD thì sau lệnh cộng cần có
DA A (hiệu chỉnh thập phân thanh ghi tích lñy) để điều chỉnh kết quả cho phù hợp
¢ Cờ0;
Cờ 0 (F0) là 1 bit cờ đa dụng dành cho các ứng dụng của người dùng
e Cac bit chon bank thanh ghi :
Các bit chọn bank thanh ghi (RSO và RS1) xác định bank thanh ghi nào được tích cực Chúng được xóa sau khi reset hệ thống và được thay đổi bằng phân mềm nếu
cần Ví dụ, 3 lệnh sau cho phép bank thanh ghi 3 và di chuyển nội dung của thanh
ghi R7 (địa chỉ byte 1EH) đến thanh ghi tích lũy:
Cé tran (OV) được set sau một lệnh cộng hoặc trừ nếu có phép toán bị tràn Khi các
số có dấu được cộng hoặc trừ với nhau, phần mễm có thể kiểm tra bit này để xác định xem kết quả có nằm trong tầm xác định không Khi các số không dấu được
cộng, bit OV có thể được bỏ qua Các kết quả lớn hơn +127 hoặc nhỏ hơn -128 sẽ set bit OV,
Ví dụ, phép cộng sau bi tran va bit OV được set :
18
Trang 19LUAN VAN TOT NGHIEP SVTH: VO VAN TRUNG
Kết quả là một số có dấu 8EH được xem như —14, không phải là một kết quả đúng
(142), vì vậy bit OV được set
b/_ Thanh ghi B:
Thanh ghi B ở địa chỉ F0H được dùng với thanh ghi tích lũy A cho các phép toán
nhân và chia
Lệnh MUL AB sẽ nhân các giá trị không dấu 8 bit trong A và B rồi trả về kết quả
16 bit trong A (byte thấp) và B (byte cao)
Lệnh DIV AB sẽ chia A cho B rồi trả về kết quả nguyên trong A và phần dư trong
B
Thanh ghi B cũng có thể được xem như thanh ghi đệm đa dụng Nó được dia chi
hóa từng bit bằng các địa chỉ bit F0H đến F7H
c/ Con trổ ngăn xếp:
Con trổ ngăn xếp (SP) là một thanh ghi 8 bit ở địa chỉ 81H Nó chứa địa chỉ của
byte dữ liệu hiện hành trên đỉnh của ngăn xếp Các lệnh trên ngăn xếp bao gồm các
thao tác cất dữ liệu vào ngăn xếp và lấy dữ liệu ra khỏi ngăn xếp Lệnh cất dữ liệu
vào ngăn xếp sẽ làm tăng SP trước khi cất dữ liệu, và lệnh lấy đữ liệu ra khỏi ngăn
xếp sẽ đọc dữ liệu và giảm SP
Ngăn xếp của 8951 được giữ trong RAM nội và được giới hạn các địa chỉ có thể
truy xuất bằng địa chỉ gián tiếp Chúng là 128 bytes đầu của 8951
Để khởi động lại SP với ngăn xếp bắt đâu tại 60H, các lệnh sau đây được dùng:
MOV SP,#5FH
Trên 89C51 ngăn xếp bị giới han 32 bytes vì địa chỉ cao nhất của RAM trên chip
là 7FH Sở dĩ dùng giá trị 5FH vì SP sẽ tăng lên 60H trước khi cất byte dữ liệu đầu
tiên
Người thiết kế có thể chọn không phải khởi động lại con trổ ngăn xếp mà để nó lấy
giá trị mặc định khi reset hệ thống Giá trị mặc định đó là 07H và kết quả là ngăn
đầu tiên để cất dữ liệu có địa chỉ là 08H
Trang 20Nếu phần mềm ứng dụng không khởi động lại SP, thi bank 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 lệnh PUSH và POP để lưu trữ tạm thời và
lấy lại dữ liệu, hoặc được truy xuất ngầm bằng các lệnh gọi chương trình con (ACALL, LCALL) và các lệnh trở về (RET, RETI) để cất và lấy lại bộ đếm chương trình
d/ Con trỏ dữ liệu:
Con trổ dữ liệu (DPTR) để truy xuất bộ nhớ ngoài là một thanh ghi 16 bit ở địa chỉ
82H (DPL: byte thấp) và 83H (DPH: byte cao)
Ba lệnh sau sẽ ghi 55H vào RAM ngoài ở địa chỉ 1000H:
dữ liệu Lệnh thứ ba dùng địa chỉ gián tiếp để di chuyển dữ liệu trong A (55H) đến
RAM ngoài ở địa chỉ được chứa trong DPTR (1000H)
e/_Các thanh ghi port xuất nhập:
Các port của 8951 bao gồm Port 0 ở địa chỉ 80H, Port 1 ở địa chỉ 90H, Port 2 ở địa chi AOH va Port 3 6 dia chi BOH
Tấc cả các port đều được địa chỉ hóa từng bit Điều đó cung cấp một khả năng giao tiếp thuận lợi
Ví dụ, nếu một motor được nối qua một cuộn dây có transistor lái đến bit 7 của Port 1, nó có thể được bật và tắt bằng một lệnh đơn:
SETB PI.7 ; bật motor
Trong một ví dụ khác, xem xét giao tiếp đến một thiết bị với một bit trạng thái gọi
là BUSY, được set khi thiết bị đang bận và được xóa khi thiết bị đã sẵn sàng Nếu
20
Trang 21BUSY được nối tới P1.5, vòng lặp sau sẽ được dùng để chờ thiết bị trở lại trạng thái
WAIT : JB P1.5, WAIT
Lệnh này có nghĩa là “nếu bịt P1.5 được set thì nhầy tới nhãn WAIT”
Nói cách khác “nhảy trở lại và kiểm tra lần nữa”
f/ Cac thanh ghi timer:
IC 8951 chứa hai bộ định thời/đếm 16 bits được dùng cho việc định thời hoặc đếm
sự kiện
Timer 0 6 dia chi 8AH (TLO: byte th4p) va 8CH (THO: byte cao)
Timer 1 6 dia chi 8BH (TL1: byte thap) va 8DH (TH1: byte cao)
Việc vận hành timer được set bởi thanh ghi Timer Mode (TMOD) 6 dia chi 89H va
thanh ghi diéu khién timer (TCON) 6 dia chi 88H
Chỉ có TCON được địa chỉ từng bit
g/_ Các thanh ghi port nối tiếp:
IC8951 chứa một port nối tiếp trên chip 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 cho việc giao tiếp với các IC khác có giao tiếp nối tiếp (các bộ chuyển đổi A/D, các thanh ghi dịch )
Một thanh ghi gọi là bộ đệm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ giữ cả hai dữ liệu truyén va nhận
Khi truyền dữ liệu thì ghi lên SBUE, khi nhận dữ liệu 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) (được địa chỉ hóa từng bit) ở địa chỉ 98H
h/_Các thanh ghi ngắt:
IC 8951 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ả hai thanh ghi được địa chỉ hóa từng bit
/_ Thanh ghỉ điều khiển công suất:
Thanh ghi điều khiển công suất (PCON) ở địa chỉ 87H chứa nhiễu bit điểu khiển
Chúng được tóm tắt trong bảng sau:
Trang 22
IC 8951 có khả năng mở rộng bộ nhớ lên đến 64K bộ nhớ chương trình và 64K bộ
nhớ dữ liệu ngoài Do đó, có thé ding thém ROM và RAM bên ngoài nếu cần
Khi dùng bộ nhớ ngoài, Port 0 không còn là một port /O thuân túy nữa Nó được
hợp kênh giữa bus địa chỉ (A0 — A7) và bus dữ liệu (D0 — D7) với tín hiệu ALE để chốt byte thấp của địa chỉ khi bắt đầu mỗi chu kì bộ nhớ Port 2 thông thường được dùng cho byte cao của bus địa chỉ
Trong nửa đầu của mỗi chu kì bộ nhớ, byte thấp của địa chỉ được cấp trong Port 0
và được chốt bằng xung ALE Một IC chốt 74HC373 (hoặc tương đương) sẽ giữ byte địa chỉ thấp trong phần còn lại của chu kì bộ nhớ Trong nửa sau của chu kì bộ nhớ Port 0 được dùng như bus dữ liệu và được đọc hoặc ghi tùy theo lệnh
a/_ Truy xuất bộ nhớ chương trình ngoài:
Bộ nhớ chương trình ngoài là một IC ROM được cho phép bởi tín hiệu PSENNI Hình sau mô tả cách nối một EPROM vào 8951:
22