Mô tả sơ đồ chân : Sơ đồ chân của 8951 tương tự như 8051 (trình bày sau ).
+ Port 0 : gồm các chân từ 32 -39 ( P0.0 đến P0.7 ) . Port này có chức năng kép. Thông thường port này được dùng làm port I/O. Nếu có sử dụng bộ nhớ ngoài thì Port này được dùng để multiplex giữa địa chỉ phần thấp và data bus.
+ Port 1 : gồm các chân từ 1 - 8 ( P1.0 - P1.7 ) . Port này chỉ có chức năng duy nhất là giao tiếp I/O.
+ Port 2 : gồm các chân từ 22 - 28 ( P2.0-P2.7 ) . Đây cũng là port có chức năng kép, ngoài chức năng là port I/O , port 2 còn được dùng làm địa chỉ phần cao cho address bus .
+ Port 3 : gồm các chân 10-17 ( P3.0-P3.7 ) . Port này cũng có chức năng kép. Ngoài chức năng I/O, các chân port còn có các chức năng đặc biệt :
154 trang |
Chia sẻ: maiphuongdc | Lượt xem: 2125 | Lượt tải: 3
Bạn đang xem nội dung tài liệu Luận văn Chuẩn RS-485, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
n XTAL1 và XTAL2. Xung clock cho các hoạt động bên trong của AT89C51 sẽ có tần số bằng tần số của thạch anh chia cho 12. Thông thường, người ta hay dùng thạch anh 12MHz để tần số xung clock là 1MHz, tương ứng với một chu kỳ máy tốn 1ms nên rất dễ tạo một timer thời gian thực chính xác. Tuy nhiên trong mạch lại dùng thạch anh 11,059MHz là để tạo baudrate chính xác. Hoạt động tạo baudrate có thể giải thích như sau : đối với họ MCS-51TM, người ta phải dùng một timer (thường là timer1) và tốc độ tràn của nó sẽ tạo ra baudrate. Khi đó, ta có công thức:
BAUDRATE = TỐC ĐỘ TRÀN TIMER1 ¸ 12
Ví dụ, giả sử ta muốn có tốc độ 1200 baud thì tính như sau :
1200 = tốc độ tràn timer1 ¸ 12
Þ tốc độ tràn timer1 = 1200x32 = 38,4KHz
Nếu thạch anh có tần số 12MHz thì timer1 được clock với tần số 1MHz hay 1000KHz. Để có tốc độ tràn là 38,4KHz thì timer1 phải tràn sau mỗi 1000 ¸ 38,4 = 26,04 xung clock (làm tròn là 26). Do timer đếm lên và sẽ tràn khi chuyển từ FFh sang 00h, cần phải nạp số -26 vào timer và thế là baudrate được tạo ra.
Như ta đã thấy, trong phép tính trên có làm tròn, điều này dẫn đến sai số trong baudrate tạo ra. Từ đó ta cần phải tìm thạch anh có tần số sau cho baudrate tạo ra không có sai số để việc truyền thông đảm bảo chính xác. Qua các phép tính thì thạch anh 11,059MHz cho baudrate rất chính xác. Bảng sau sẽ cho thấy sự so sánh sai số khi dùng thạch anh 12MHz và thạch anh 11,059MHz trong một số baudrate thông dụng :
BAUDRATE
TẦN SỐ THẠCH ANH
SMOD
GIÁ TRỊ NẠP
BAUDRATE THỰC SỰ
SAI SỐ
9600
2400
1200
19200
9600
2400
1200
12,000MHz
12,000MHz
12,000MHz
11,059MHz
11,059MHz
11,059MHz
11,059MHz
1
0
0
1
0
0
0
-7(F9H)
-13(F3H)
-26(E6H)
-3(FDH)
-3(FDH)
-12(F4H)
-24(E8H)
8923
2404
1202
19200
9600
2400
1200
7%
0,16%
0,16%
0
0
0
0
(Nếu SMOD = 1 thì baudrate = tốc độ tràn timer1 ¸ 16)
Mạch reset gồm C3, R2 cho tác vụ auto-reset (reset khi mới cấp nguồn). Ngoài ra còn có R1 và SW1 cho tác vụ manual-reset (reset bằng tay khi ấn phím SW1 bất cứ khi nào).
Chân P3.2 và P3.3 là ngõ ra của Port3 cũng đồng thời là ngõ vào của ngắt ngoài. Trong thiết kế đã thiết kế sẵn dùng để phục vụ chương trình nếu cần thiết.
Chân P3.0 va P3.1 là chân RXD và TXD dùng để nối với 75176 để thực hiện đổi sang chuẩn RS-485 .
Port1 và port2 dùng để quét phím,trong đó có hai chân dư của port2 là p2.7, p2.8 dùng để phát tín hiệu ra LED đơn phục vu cho chương trình.
Port0 dùng để mở rộng port thông qua IC 74573.
5 IC 74573 dùng để mở rộng port phục vụ cho việc hiển thị bảng led
thông qua port 0. Port 0 được kéo dòng nhờ thanh điện trở 10k kéo lên nguồn VCC.
1 IC 74138 dùng làm chốt ,kết hợp với chân WR của VXL điều khiển việc mở rộng port.
2 IC 7402 dùng để mơ rộng port.
1 IC 75176 dùng để chuyền tin hiệu TTL thành tín hiệu visai và
ngược lại trong mạng RS-485.
1 IC 555 tạo xung nhịp dùng để điều khiển việc xuất nhập dữ liệu
trong mạng RS-485.
Sơ đồ mạch phần xử lý trung tâm
Khối giao tiếp với máy tính:
Sơ đồ khối:
Chuyển TTL thành
VISAI
Chuyển visai thành
TTL
Chuyển TLT thành
RS-232
Sơ đồ mạch:
Sơ đồ mạch phần giao tiếp máy tính
Phần giao tiếp : Về chương trình điều khiển đã được trình bày ở phần giao tiếp với vi xử lý . Có một yếu tố lưu ý ở đây là em dùng IC 555 để điều khiển thu phát, phương pháp này có lợi thế về phần mềm điều khiển thu, phát.
Lưu đồ giải thuật và chương trình điều khiển:
1 Chương trình điều khiển:
ACC . . . . . D ADDR 00E0H A
AGAIN . . . . C ADDR 08CFH A
AMON. . . . . C ADDR 03E2H A
BACK. . . . . C ADDR 0897H A
BACK2 . . . . C ADDR 08A0H A
BACK3 . . . . C ADDR 08A5H A
BCDTO7SEG . . C ADDR 0178H A
C_LED . . . . C ADDR 017DH A
C_MT1 . . . . C ADDR 0187H A
C_MT2 . . . . C ADDR 018CH A
CA. . . . . . C ADDR 06E1H A
CDDL. . . . . C ADDR 03A9H A
CE. . . . . . C ADDR 06F2H A
CHECK . . . . C ADDR 0798H A
CHECKAMON . . C ADDR 03EEH A
CHECKCD . . . C ADDR 0364H A
CHECKCDDL . . C ADDR 03B5H A
CHECKCO . . . C ADDR 037FH A
CHECKDAY. . . C ADDR 0235H A
CHECKDT . . . C ADDR 02DDH A
CHECKED . . . C ADDR 07EEH A
CHECKKD . . . C ADDR 0427H A
CHECKKLB. . . C ADDR 0349H A
CHECKKLV. . . C ADDR 039AH A
CHECKNOI. . . C ADDR 032EH A
CHECKOK . . . C ADDR 0840H A
CHECKPRA. . . C ADDR 03D0H A
CHECKRO . . . C ADDR 040CH A
CHECKSERI . . C ADDR 026BH A
CHECKSHC. . . C ADDR 02C2H A
CHECKSON. . . C ADDR 0445H A
CHECKSX . . . C ADDR 0313H A
CHECKTLT. . . C ADDR 02F8H A
CHIEUDAY. . . C ADDR 0358H A
CO. . . . . . C ADDR 0373H A
COPY. . . . . C ADDR 0727H A
DATA0 . . . . C ADDR 080AH A
DATA1 . . . . C ADDR 0856H A
DELAY2MS. . . C ADDR 0882H A
DICHCE. . . . C ADDR 06FEH A
DONE. . . . . C ADDR 08DCH A
DUNGTICH. . . C ADDR 02D1H A
ENTER . . . . C ADDR 0759H A
ER. . . . . . C ADDR 06C2H A
EXIT. . . . . C ADDR 08DEH A
EXITDATA0 . . C ADDR 082CH A
EXITETER. . . C ADDR 0777H A
EXITGM. . . . C ADDR 046CH A
EXITNS. . . . C ADDR 0491H A
EXITT_CH. . . C ADDR 083FH A
F0. . . . . . B ADDR 00D0H.5 A
Trên đây là các chương trình điều khiển trên vi xử lý tuy nhiên em chỉ trình bày lưu đồ giải thuật của một số chương trình chính.
Chương trình chính:
Sau khi nhấn nút RESET phần cứng chương trình sẽ được thực thi như sơ đồ khối sau (xem hình)
Trong đó, toàn bộ các công việc thực thi như phân loại dữ liệu, truyền nhận… đều được thực thi trong phần giải mã.
Chương trình con quét phím:
Thực hiện việc quét hàng và cột để tìm xem có phím nào bị nhấn hay không. Kết quả trả về thông qua cờ carry : C = 1 nếu có phím bị nhấn và mã hex nằm trong nibble thấp của thanh ghi tích lũy, C = 0 nếu không có phím nào bị nhấn.
Giải thuật :
GET_KEY
Mã quét = 11111110B
(quét cột 0)
Có bit hàng = 0 ?
Giảm Số đếm
Số đếm = 0 ?
Sai
Đúng
Sai
Đúng
Số đếm = 8
Xuất mã quét ra port1
Nhập port2 vào ACC
1
Dịch trái mã quét
(quét cột kế)
2
Xóa cờ C = 0
Số thứ tự cột = 8 - Số đếm
Mã phím = số thứ tự cột
Số đếm = 8
Dịch MSB của ACC vào cờ C
1
C = 0 ?
Mã phím = số thứ tự cột + 8
Giảm Số đếm
Số đếm = 0 ?
C = 1
Cất mã phím vào ACC
RET
2
Sai
Đúng
Sai
Đúng
Chương trình con có nhiệm vụ chống rung phím, bằng cách lặp lại GET_KEY khoảng 50 lần. Nếu như 50 lần đều trả về C = 1 thì tức là có một phím được ấn, còn nếu có một lần C = 0 thì đó là rung động và bộ đếm được reset. Sau khi đã phát hiện có phím ấn, IN_HEX sẽ chờ một khoảng thời gian tương ứng 50 lần gọi GET_KEY để đảm bảo rằng không còn rung cho lần gọi GET_KEY kế tiếp. Ở đây em thiết kế việc xuất Led xen vô thời gian chờ trong chương trình chống rung .
Chương trình giải mã một số phím chức năng đặc biệt :
Phím ENTER: Phím ENTER có chức năng rất quan trọng trong bàn phím khi được thực thi những dữ liệu hiễn thị trên bảng led sẽ được chuyển vô “buffer ” . Kế đó dữ liệu sẽ được truyền về PC , Dữ liệu trong “buffer” và trên bảng led sẽ được xóa. Sau đó nhận tín hiệu trên PC trả về, nếu dữ liệu gởi đi có lỗi trùng lặp sẽ thông báo lên bảng led.
ENTER
Ghi dữ liệu vào "buffer"
(32H-39H) vào (44H,4BH)
A=99 ?
Đợi tín hiệu gọi
trên PC truyền xuống (nhập vào A)
Truyền dữ liệu lên
máy tính
Xử lý tín hiệu nhận
được
Báo hiệu tiếp tục
nhập dữ liệu
Báo hiệu trùng dữ
liệu
đúng
Sai
đúng
Sai
Sơ đồ khối
Phím End : Phím end có chức năng báo cho PC biết đã nhập xong thông số của một bình Gas. Khi bấm phím này vi xử lý sẽ truền một tín hiệu về cho máy tính, khi nhận được tín hiệu này, PC sẽ tạo thêm dòng mới để nhận Bình Gas mới đồng thời trả tín hiệu xác nhận về cho vixử lí biết. Khi nhận được tín hiệu này trên bảng Led sẽ hiện “OK”.
Sơ đồ khối:
Sai
đúng
Phím New: Khi ta nhập số liệu của bỉnh Gas nếu có trùng lặp số sêri sẽ được nhận báo lỗi trùng lặp, hoặc khi kiểm tra từ bàn phím một bình gas đã nhập nào đó mà thấy bị sai một thông số… Khi đó ta nhấn phím New để nhập đè lên hoặc nhập mới. Nguyên tắc hoạt động : Đầu tiên khi bấm phím kít sẽ gửi lên tín hiệu thông báo cho PC biết nhập tín hiệu mới. Khi nhận được tín hiệu này PC sẽ kết hợp với điều kiện kiểm tra tự động có sẵn ở mỗi lần nhập để tìm đến bình gas cần sửa chữa hoặc cần nhập đè lên.
New
A=99 ?
Đợi tín hiệu gọi
trên PC truyền xuống (nhập vào A)
Truyền dữ liệu lên
máy tính
Xử lý tín hiệu nhận
được
Báo hiệu tiếp tục
nhập dữ liệu
đúng
Sai
Sơ đồ khối:
Phím CHECK: Phím này dùng để kiểm tra dữ liệu đã nhập có hai chế độ kiểm tra nếu để mặc định nghĩa là chỉ bấm Check không thì sẽ kiểm tra được số liệu của bình gas vừa nhập. Còn nếu bấm số sêri rồi bấm CHECK ta sẽ nhận được số liệu của bình gas có số seri tương ứng. Khi nhấn phím CHECK đèn Led màu đỏ sẽ sáng báo hiệu cho biết đang trong chế độ check.
Sai
đúng
Sơ đồ khối:
Các phím hiển thị thông số của các bình gas hoàn toàn tương tự nhau vì thế em chỉ nêu chế độ hoạt động của một phím,
Phím seri:Khi nhấn phím này, đầu tiên vi xử lý sẽ kiểm tra tín hiệu Check (cờ F0) nếu không có (F0 = 0) hiển thị SR lên bảng led rồi đợi nhập số liệu của thông số này. Nếu có tín hiệu check(F0 = 0) sẽ hiển thị SR trên bảng Led đồng thời nhận số liệu hiển thị của thông số này trên PC truyền xuống.
đúng
Sơ đồ khối:
Một số phím có chức năng phụ khác như OK, NOT OK dùng để nhập số liệu của các thông số phụ, khi nhấn phím này ở trên bảng led 7 đoạn sẽ hiện số 1 hoặc số 0 ở vị trí bên trái của bảng hiển thị. Phím copy dung để ghi lại các số lịeu trên bảng led 7 đoạn và phím Paste dùng để lấy các số liệu đã copy hiển thị lại trên bảng led. Hai phím này phục vụ cho việc nhập các thông số có tính chất lặp đi lặp lại. Phím CE và phím CA có chức năng hoàn toàn tương tự như phím C và CA của máy tính cá nhân …
Ngoài ra còn một số chương trình mang tính quyết định phục vụ chung cho tất cả các phím bấm. Đó là các chuơng trình truyền, nhận, chương trình con nhập số, chương trình xuất led.
Chương trình con nhập số:
Chương trình trên PC được viết bằng ngôn ngữ Delphi 5
Khi khởi động chương trình sẽ hiện lên một Form dùng để thiết lập chế độ hoạt động của hệ thống:
Để bắt đầu làm việc ta nháy chuột vào Run chọn Comport để thiết lập cổng giao tiếp. Cổng giao tiếp ở đay bao gồm 2 cổng Com1 và Com2 với chế dộ default tương thích với chế độ lảm việc dưới kit vixử lý là:
Tốc độ truyền:9600
Số bit dữ liệu là 8
Số bit stop:1
Không có bit kiểm tra chẵn lẻ.
Sau khi chọn xong cổng truyền thông ta chọn tiep chế độ làm việc, ở giới hạn của luận văn là chỉ giao tiếp với bàn phím . Ta nháy tiếp chuột váo File tại đây có hai chế độ làm việc của bàn phím.
Ta bắt đầu công việc một cách binh thường có thể hiểu bắt đầu một đợt nhập số liệu của bình gas. Lúc này ta chọn New trên thanh công cụ.
Vì một lý do gì đó công việc bị gián đoạn hoặc cùng một lô bình mà ta chưa kiểm tra xong. Lúc này ta chon Auto Load
Khi hoạt động dữ liệu thu thập được lưu vào máy tính một cách tự động và được quản lý dưới dạng cơ sở dữ liệu. Bất cứ khi nào cần yêu cầu truy suất trực tiếp từ bàn phím của máy tính hay từ bàn phím ở xưởng làm việc đều được.
Sau đây là bảng quản lý:
Tại danh sách này em có làm 3 hình thức quản lý đó là
Quản lý theo bình cần sơn
Quản lý theo binh cân kiểm định
Quản lý theo bình cân tìm khi biết số seri.
Khi ta chọn chế độ nào thì sẽ có bảnh danh sách thốnh kê tương ứng hiện lên. Ví dụ tại đây ta cần thống kê những bình đã đến hạn kiểm định.
Theo như bảng trên có nghĩa là tronh những bình đang lưu trữ không có bình cần kiểm định.
Còn khi ta cần có chi tiết về lý lịch của một bình nào đó ta nháy chuột vào” tìm kiếm” khi đó sẽ hiện lên một trang lý lịch chi tiết của bình gas đó
Ta có thể thiết lập thêm nhiều hình thức quản lý khác nhưng do thực tế công việc chỉ yêu cầu có ba hình thức quản lý như trên.
Đánh giá và mở rộng đề tài:
Do điều kiện kinh phí và thời gian lên em chỉ làm một bàn phím trong khi công việc thực tế yêu cầu tới ba bàn phím. Tuy nhiên ba bàn phím này vêmặt chức năng không khác nhau nhiều và việc quản lý dữ liệu trên máy tính cũng không có gì khác biệt.
Để có thể kết nối ba bàn phím vào hệ thống ta chỉ việc thêm vào chương trình chính trên máy tính việc hỏi vòng cho từng bàn phím một. Mỗi bàn phím được gán cho một địa chỉ khác nhau, khi bàn phím nào nhận được lệnh hỏi thi sẽ được trả lời. Các bàn phím khác không nhận được lệnh hỏi đúng địa chỉ thì không được. Trong thiết kế của em, bàn phím của em có địa chỉ là 99 .
Tuy nhiên phương pháp này chỉ áp dụng được cho những công việc giao tiếp với số lượng byte trao đổi một lần thấp và không đòi hỏi liên tục. Còn những công việc đòi hỏi tốc độ và dung lượng cao quản lý cơ sở dữ liệu lớn thi ta phải lập trình đa tuyến và dùng cơ sở dữ liệu quản lý .
CHƯƠNG I:
Giới thiệu IC sử dụng trong bài
Vi xử lý AT89C51:
. Caáu taïo chaân
Tùy theo khả năng (về kinh tế, kỹ thuật, …) mà các nhà sản xuất các sản phẩm ứng dụng có thể chọn một trong 3 kiểu chân do ATMEL đưa ra.
2.2. Sô ñoà khoái
Mô tả sơ đồ chân : Sơ đồ chân của 8951 tương tự như 8051 (trình bày sau ).
+ Port 0 : gồm các chân từ 32 -39 ( P0.0 đến P0.7 ) . Port này có chức năng kép. Thông thường port này được dùng làm port I/O. Nếu có sử dụng bộ nhớ ngoài thì Port này được dùng để multiplex giữa địa chỉ phần thấp và data bus.
+ Port 1 : gồm các chân từ 1 - 8 ( P1.0 - P1.7 ) . Port này chỉ có chức năng duy nhất là giao tiếp I/O.
+ Port 2 : gồm các chân từ 22 - 28 ( P2.0-P2.7 ) . Đây cũng là port có chức năng kép, ngoài chức năng là port I/O , port 2 còn được dùng làm địa chỉ phần cao cho address bus .
+ Port 3 : gồm các chân 10-17 ( P3.0-P3.7 ) . Port này cũng có chức năng kép. Ngoài chức năng I/O, các chân port còn có các chức năng đặc biệt :
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 ngoài 0
P3.3
/INT1
Ngắt ngoài 1
P3.4
T0
Ngõ vào của Timer/Counter 0
P3.5
T1
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
Bảng 1-Bảng chức năng port 3
+ Chân /PSEN (Program Store Enable) : (chân 29 ) là tín hiệu tác động mức thấp, có chức năng điều khiển truy xuất bộ nhớ ngoài, thường được nối với chân OE của ROM ngoài. Khi thực thi chương trình thì chân /PSEN vẫn giữ ở tích cực mức thấp.
+ Chân /EA ( External access ) : ( chân 31) thường nối lên mức cao (+5V) hoặc mức thấp (GND). Nếu ở mức cao, vi xử lý thực hiện chương trình từ ROM nội trong khoảng địa chỉ thấp (4KB). Nếu ở mức thấp, chương trình thi hành từ bộ nhớ mở rộng. Nếu /EA nối xuống mức thấp,bộ nhớ bên trong chương trình sẽ bị cấm và chương trình thi hành từ bộ nhớ mở rộng.
+ Chân ALE ( Address Latch Enable ) : (chân 30 ) là tín hiệu dùng để chốt địa chỉ byte thấp vào thanh ghi bên ngoài trong nữa chu kỳ đầu bộ nhớ, ở nữa sau chu kỳ bô nhớ, các đường port 0 được dùng để xuất nhập dữ liệu . Các xung nhịp của tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip.
+ Chân RST ( Reset) : Ngõ vào RST trên chân 9 là ngõ RESET của VXL, chân này tác động ở mức cao. 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 sẽ được nhận các giá trị thích hợp để khởi động các hệ thống .
+ Nguồn : 8951 và 8051 hoạt động với nguồn +5V DC ( chân 40 ) và GND ( chân 20).
+ Bộ dao động trên chip :
XTAL1 là đầu vào và đầu ra tương ứng của bộ khuếch đại đảo được dùng làm bộ dao động nội on-chip. Có thể dùng thạch anh hay bộ cộng hưởng ceramic đều được.
Để lái vi điều khiển từ nguồn xung clock bên ngoài, XTAL2 phải được để trống trong khi XTAL1 nối đến nguồn lái. Không có yêu cầu gì về duty cycle nhưng phải chú ý đến thời gian tối đa và tối thiểu của mức điện áp cao cũng như mức điện áp thấp.
Tổ chức bộ nhớ chương trình :
AT89C51 tổ chức bộ nhớ thành những vùng bộ nhớ riêng biệt cho chương trình và dữ liệu. AT89C51 có 4K ROM nội và chỉ có 128 bytes bộ nhớ RAM. Tuy nhiên bộ nhớ chương trình và bộ nhớ dữ liệu có mở rộng lên đến 64 Kbyte.
Bộ nhớ RAM nội được tổ chức 2 vùng :
Vùng RAM : gồm các bank thanh ghi có địa chỉ từ 00H đến 1FH, RAM địa chỉ hoá từng bit có địa chỉ từ 20H-2FH
Vùng RAM đa dụng : có địa chỉ từ 30H-7FH .
+ Các thanh ghi chức năng đặc biệt có địa chỉ từ 80H-FFH .
+ Các từ trạng thái chương trình
Bit
Ký hiệu
Địa chỉ
Chức năng
PSW.7
CY
D7H
Cờ nhớ
PSW.6
AC
D6H
Cờ nhớ phụ
PSW.5
F0
D5H
Cờ 0
PSW.4
RS1
D4H
Bit 1 chọn thanh ghi
PSW.3
RS0
D3H
Bit 0 chọn thanh ghi
00:bank 0
01:bank 1
02:bank 2
03:bank 3
PSW.2
0V
D2H
Cờ tràn
PSW.1
D1H
Dự trữ
PSW.0
PORT
D0H
Cờ parity chẳn
Từ trạng thái chương trình .
FF
89
88
8A
87
D0
B0
A8
A0
A0
B8
F0
E0
82
83
F7
F6
F5
F4
F3
F2
F1
F0
E7
E6
E5
E4
E3
E2
E1
E0
D7
D6
D5
D4
D3
D2
D1
D0
IP
-
-
-
BC
BB
BA
B9
B8
B7
B6
B5
B4
B3
B2
B1
IE
P2
SBUFF
P1
TH1
TH0
TL1
TL0
TMOD
TCON
PCON
DPH
DPL
DP
P0
P3
B0
AF
-
-
AC
AB
AA
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
Không được địa chỉ hoá bit
9F
9E
9D
9C
9B
9A
99
98
97
96
95
94
93
92
91
90
Không được địa chỉ hoá bit
Không được địa chỉ hoá bit
Không được địa chỉ hoá bit
Không được địa chỉ hoá bit
Không được địa chỉ hoá bit
8F
8E
8D
8C
8B
8A
89
88
Không được địa chỉ hoá bit
Không được địa chỉ hoá bit
Không được địa chỉ hoá bit
Không được địa chỉ hoá bit
87
86
85
84
83
82
81
80
80
81
RAM đa dụng
7F
7E
7D
7C
7B
7A
79
78
77
76
75
74
73
72
71
70
6F
6E
6D
6C
6B
6A
69
68
67
66
65
64
63
62
61
60
5F
5E
5D
5C
5B
5A
59
58
57
56
55
54
53
52
51
50
4F
4E
4D
4C
4B
4A
49
48
47
46
45
44
43
42
41
40
3F
3E
3D
3C
3B
3A
39
38
37
36
35
34
33
32
31
30
2F
2E
2D
2C
2B
2A
29
99
28
27
26
25
24
23
22
21
98
20
1F
1E
1D
1C
1B
1A
19
90
18
17
16
15
14
13
12
11
10
0F
0E
0D
0C
0B
0A
09
8C
8B
08
07
06
05
04
03
02
01
00
Bank 3
Bank 2
Bank 1
Bank thanh ghi 0
(mặc định cho R0-R7)
Tóm tắt bộ nhớ dữ liệu trên chip.
Các cờ nhớ :
CY (carry flag): cờ nhớ thường dùng cho các lẹnh số học. Ngoài ra nó còn có thể được xem như một thanh ghi 1 bit cho các lệnh luận lý thi hành trên bit.
AC (auxiliary carry flag): cờ nhớ phụ được sử dụng khi cộng các số BCD.
Flag 0 (bit F0) : cờ sử dụng chung dành cho người lập trình .
0V (overlow flag) : cờ tràn được set khi có 1 phép toán đang thi hành bị tràn.
Các thanh ghi lệnh :
Thanh ghi A (Accumulator): thanh ghi tích luỹ.
Thanh ghi B : là thanh ghi đệm đa dụng có địa chỉ F0H .
Thanh ghi SP (Stack Pointer) : địa chỉ 81H chứa các địa chỉ của byte dữ liệu hiện hành trên đỉnh của ngăn xếp. Con trỏ ngăn xếp được truy xuất trực tiếp bằng lệnh POP và PUSH.
Data Pointer (DPTR) : được dùng để truy xuất bộ nhớ ngoài. DPTR là một thanh ghi 16 bit và được phân ở các địa chỉ 82H (DPL-byte thấp) và 83H (DPH-byte cao).
Các thanh ghi Port :
P0 ở địa chỉ 80H.
P1 ở địa chỉ 90H.
P2 ở địa chỉ A0H.
P3 ở địa chỉ B0H.
Các thanh ghi này được địa chỉ hoá từng bit .
Thanh ghi timer : vi xử lý có 2 bộ timer/counter 16 bit dùng cho việc định thời hoặc đếm sự kiện.
Timer 0 : gồm 2 thanh ghi TL0 (8AH) và TH0 (8CH).
Timer 1 : gồm 2 thanh ghi TL1 (8AH) và TH1 (8CH).
Việc vận hành timer được set bởi thanh ghi TMOD (89H) và thanh ghi điều khiển TCON (88H) , thanh ghi này được địa chỉ hoá từng bit .
TCON
Gate
C ¤
M1
M0
Gate
C ¤
M1
M0
Thanh ghi đệm SBUF : (99H) dùng để đệm data nối tiếp cho việc truyền và nhận data.
Thanh ghi SCON : (98H) được địa chỉ hoá từng bit, có chức năng điều khiển port nối tiếp . Thanh ghi SCON :
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
Thanh ghi ngắt IE : có 5 nguồn ngắt, và 2 mức ưu tiên ngắt. Các ngắt bị cấm sau khi reset hệ thống và được điều khiển, cho phép ngắt bởi thanh ghi IP, các thanh ghi này được địa chỉ hoá từng bit . Thanh ghi IE :
EA
_
ET2
ES
ET1
EX1
ET0
EX0
Thanh ghi ngắt ưu tiên IP : Điều khiển mức ngắt ưu tiên bằng cách set bit tương ứng trong thanh ghi IP .Thanh ghi này có 8 bit như sau :
_
_
PT2
PS
PT1
PX1
PT0
PX0
Thanh ghi PCON : ở địa chỉ 87H chứa nhiều bit điều khiển (bảng
Bit
Ký hiệu
Ý nghĩa
7
SMOD
Bit tăng tốc độ baud, nếu được set thì tốc độ baud tăng gấp đôi trong các mod 1,2,3.
6
-
Không định nghĩa
5
-
Không định nghĩa
4
-
Không định nghĩa
3
GF1
Bit cờ đa dụng 1
2
GF0
Bit cờ đa dụng 0
1
DP
Giảm công suất, được set để kích hoạt mod giảm công suất, chỉ thoát khi reset.
0
IDL
Mode chờ, set để hoạt node chờ, chỉ thoát khi reset hệ thống.
Bảng tóm tắt các bit của thanh ghi PCON.
SFR
Mục đích
Địa chỉ
Địa chỉ hoá từng bit
TCON
Điều khiển timer
88H
Có
TMOD
Chế độ timer
89H
Không
TL0
Byte thấp của timer 0
8AH
Không
TL1
Byte thấp của timer 1
8BH
Không
TH0
Byte cao của timer 0
8CH
Không
TH1
Byte cao của timer 1
8DH
Không
Các thanh ghi đặc biệt điều khiển truy xuất timer.
Bit
Ký hiệu
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
Chọn chế độ:
1: chế độ đếm sự kiện.
0: chế độ định thì.
5
M1
1
Bit1 chọn Mode hoạt động. Với M1 M0 là :
00 : mode 0.
01 : mode 1.
10 : mode 2.
11 : mode 3.
4
M0
1
Bit0 chọn Mode hoạt động
3
GATE
0
Bit mở cổng
2
C/T
0
Bit chọn counter/timer
1
M1
0
Bit1 chọn Mode hoạt động
0
M0
0
Bit 0 chọn Mode hoạt động
Bảng tóm tắt thanh ghi TMOD.
Bit
Ký hiệu
Địa chỉ bit
Mô tả(1= cho phép, 0= cấm)
IE.7
EA
0AFH
Cho phép/cấm toàn bộ.
IE.6
--
0AEH
Không định nghĩa.
IE.5
ET2
0ADH
Cho phép ngắt timer 2 (8052).
IE.4
ES
0ACH
Cho phép ngắt port nối tiếp.
IE.3
ET1
0ABH
Cho phép ngắt timer1.
IE.2
EX1
0AAH
Cho phép ngắt ngoài1.
IE.1
ET0
0A9H
Cho phép ngắt timer 0.
IE.0
EX0
0A8H
Cho phép ngắt ngoài 0.
Tóm tắt thanh ghi IE.
Bit
Ký hiệu
Địa chỉ
Mô tả
TCON.7
TF1
8FH
Cờ báo tràn timer1 , đặt bởi phần cứng khi tràn, được xoá bởi phần mềm hoặc phần cứng khi bộ timer xử lý đến chương trình phục vụ ngắt.
TCON.6
TR1
8EH
Bit cho phép timer1 chạy. Đặt xoá bởi phần mềm khi timer chạy hoặc dừng.
TCON.5
TF0
8DH
Cờ báo tràn timer 0.
TCON.4
TR0
8CH
Bit cho phép timer 0 chạy
TCON.3
IE1
8BH
Cờ ngắt 1 bên ngoài, đặt bởi phần cứng khi phát hiện cạnh xuống ở INT1, xoá bằng phần mềm hoặc phần cứng khi timer chỉ đến chương trình phục vụ ngắt.
TCON.2
IT1
8AH
Cờ kiểu ngắt 1 ngoài, được set hoặc xoá bằng phần mềm bởi cạnh xuống hoặc mức thấp được kích hoạt bởi sự ngắt ngoài.
TCON. 1
IE0
89H
Cờ ngắt bên ngoài 0.
TCON.0
IT0
88H
Cờ ngắt Timer0 .
Bảng tóm tắt thanh ghi TCON.
Bit
Ký hiệu
Địa chỉ bit
Mô tả(1= cho phép, 0= cấm)
IP.7
--
--
Không định nghĩa.
IP.6
--
--
Không định nghĩa.
IP.5
PT2
0BDH
Ưu tiên ngắt từ timer 2 (8052).
IP.4
PS
0BCH
Ưu tiên ngắt từ port nối tiếp.
IP.3
PT1
0BBH
Ưu tiên ngắt từ timer1.
IP.2
PX1
0BAH
Ưu tiên ngắt ngoài1.
IP.1
PT0
0B9H
Ưu tiên ngắt từ timer 0.
IP.0
PX0
0B8H
Ưu tiên ngắt ngoài 0.
Bảng tóm tắt thanh ghi IP.
Bit
Ký hiệu
Địa chỉ bit
Mô tả(1= cho phép, 0= cấm)
SCON.7
SM0
9FH
Bit 0 của chế độ port nối tiếp.
SCON.6
SM1
9EH
Bit 1 của chế độ port nối tiếp.
SCON.5
SM2
9DH
Bit 2 của chế độ port nối tiếp.
SCON.4
REN
9CH
Cho phép thu .
SCON.3
TB8
9BH
Bit phát thứ 8, bit 9 được phát trong Mode 2 và 3 hoặc để kiểm tra .
SCON.2
RB8
9AH
Bit thu thứ 8, bit 9 thu được ở Mode 2 và 3 hoặc để kiểm tra.
SCON.1
TI
99H
Cờ ngắt phát .
SCON.0
RI
98H
Cờ ngắt thu .
Bảng tóm tắt thanh ghi chế độ port nối tiếp.
Cheá ñoä löôøi
Trong chế độ lười, CPU rơi vào trạng thái “ngủ” trong khi tất cả thiết bị ngoại vi vẫn còn tích cực. Chế độ này được tạo ra bằng phần mềm. Nội dung của RAM on-chip và giá trị của các SFR vẫn được giữ nguyên. Kết thúc chế độ lười bằng cách kích hoạt một ngắt hoặc reset phần cứng.
Chú rằng khi kết thúc chế độ lười bằng cách reset phần cứng thì thông thường vi điều khiển sẽ gọi lại chương trình mà nó vừa thoát, cho đến hai chu kỳ máy trước khi thuật toán reset chiếm quyền điều khiển. Phần cứng cấm truy cập RAM nội trong trường hợp này nhưng không cấm truy cập đến các chân port, do đó có thể xảy ra những trường hợp không mong muốn. Để loại bỏ trường hợp này, lệnh ngay sau lệnh gọi chế độ lười không nên là lệnh ghi port hay ghi bộ nhớ ngoài.
2.8. Cheá ñoä haï nguoàn
Trong chế độ hạ nguồn, bộ dao động ngừng, và lệnh gọi hạ nguồn là lệnh cuối cùng được thực thi. RAM on-chip và SFR duy trì giá trị của nó cho đến khi kết thúc chế độ hạ nguồn.
Kết thúc chế độ hạ nguồn chỉ bằng một cách duy nhất : reset phần cứng. Reset sẽ tạo lại giá trị cho SFR nhưng không thay đổi nội dung của RAM on-chip. Không nên reset trước khi Vcc phục hồi mức điện áp thông thường của nó và phải giữ đủ lâu để bộ dao động phục hồi và ổn định.
2.9. Traïng thaùi cuûa moät soá chaân trong cheá ñoä löôøi vaø cheá ñoä haï nguoàn
2.10. Các thông số kỹ thuật
MAX 232:
Họ IC từ MAX220-MAX249 được sản xuất cho truyền thông EIA/TIA-232E và V.28/V.24, cụ thể là cho những ứng dụng mà không có sẵn điện áp ±12V. Họ IC này đặc biệt thích hợp cho những hệ thống dùng pin có công suất thấp, do chúng có chế độ hạ nguồn làm giảm công suất tiêu tán xuống dưới 5mW. MAX225, MAX233, MAX235, MAX245-MAX247 không cần các linh kiện ph
Các file đính kèm theo tài liệu này:
- RS-845.doc