Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
193,96 KB
Nội dung
CHƯƠNG III : GIỚI THIỆU VI ĐIỀU KHIỂN AT89C52 I VI ĐIỀU KHIỂN HỌ MCS-51 MCS-51TM họ vi điều khiển hãng INTEL sản xuất vào đầu năm 80 ngày trở thành chuẩn công nghiệp Bắt đầu từ IC tiêu biểu 8051 cho thấy khả thích hợp với ứng dụng mang tính điều khiển Việc xử lí byte phép toán số học cấu trúc liệu nhỏ thực nhiều chế độ truy xuất liệu nhanh RAM nội Tập lệnh cung cấp tiện dụng lệnh số học bit gồm lệnh nhân lệnh chia Nó cung cấp hỗ trợ mở rộng on-chip dùng cho biến bit kiểu liệu riêng cho phép quản lí kiểm tra bit trực tiếp điều khiển hệ thống logic đòi hỏi xử lí luận lí Sau bảng so sánh IC họ MCS-51TM : TÊN LINH KIỆN 8051 8031 8751 8951 8052 8032 8752 8952 BỘ NHỚ CHƯƠNGù TRÌNH ON CHIP KB MROM KB KB EPROM KB Flash ROM KB MROM KB KB EPROM KB Flash ROM BỘ NHỚ DỮ LIỆU ON CHIP TIMER 128 Bytes 128 Bytes 128 Bytes 128 bytes 256 Bytes 256 Bytes 256 Bytes 256 Bytes 2 2 3 3 II VI ĐIỀU KHIỂN AT89C52 Do họ MCS-51TM trở thành chuẩn công nghiệp nên có nhiều hãng sản xuất nó, điển hình ATMEL Corporation Hãng kết hợp nhiều tính dựa tảng kỹ thuật để tạo vi điều khiển tương thích với MCS-51TM mạnh mẽ AT89C52 vi điều khiển bit ATMEL sản xuất, chế tạo theo công nghệ CMOS, có chất lượng cao, công suất thấp với KB Flash (flash programmable and erasable read only memory) Thiết bò chế tạo cách sử dụng kỹ thuật nhớ không bốc mật độ cao ATMEL tương thích với chuẩn công nghiệp MCS-51 TM tập lệnh chân Flash onchip cho phép nhớ lập trình lập trình hệ thống lập trình viên bình thường Bằng cách nối CPU bit với Flash chip đơn, AT89C52 vi điều khiển mạnh (có công suất lớn), cung cấp linh động cao giải pháp giá nhiều ứng dụng vi điều khiển Các đặc điểm chủ yếu AT89C52 : • Tương thích hoàn toàn với họ MCS-51TM Intel • Bộ nhớ chương trình 8K Byte thuộc loại Flash Memory • Độ bền : 1000 lần ghi/xóa • Tần số hoạt động : Hz đến 24 MHz • chế độ khóa nhớ • 256 x 8-Bit RAM nội • 32 đường I/O lập trình (4 port) • timer/counter 16-bit • nguồn ngắt • Chế độ hạ nguồn chế độ lười tiêu tốn công suất thấp INT1 INT0 Timer Timer Timer Port nối tiếp Điều khiển ngắt Các ghi khác 128 byte RAM T2 EXTERNAL T1 MRO nội T0 CPU Oscillator Điều khiển bus Các port I/O Port nối tiếp EA RST P0 P2 PSEN ALE P1 P3 TxD RxD II.1 Sơ lược chân 8952: µC 8952 có tất 40 chân có chức đường xuất nhập Trong có 26 chân có công dụng kép, đường hoạt động đường xuất nhập đường điều khiển thành phần bus liệu bus đòa U 12 3 3 3 3 2 19 18 31 P P P P P P P P 0 0 0 0 /A /A /A /A /A /A /A /A D D D D D D D D P P P P P P P P 1 1 1 1 /T /T -E X XTA L1 XTA L2 R ST P P P2 P2 P2 P2 P2 P2 /A /A /A /A /A /A /A /A P /R XD P /T XD P /IN T O P 3 /IN T P /T O P /T P /W R P /R D PSEN A L E /P R O G 2 2 2 2 1 1 1 1 29 30 E A /V P P AT89C 52 II.2 Hệ thống giao tiếp port: a/ Port 0: Port port hai chức chân 32 – 39 Trong thiết kế cỡ nhỏ (không dùng nhớ mở rộng) có chức đường I/O Đối với thiết kế lớn với nhớ mở rộng, hợp kênh bus liệu byte thấp bus đòa Châ Chức thay b/ Port : port I/O 8-bit hai n chiều có pullup nội Đầu port P1.0 T2 (đầu vào đếm cho lái đầu vào TTL Khi viết Timer/Counter 2) P1.1 T2EX (xung kích capture/reload cho Timer/Counter điều khiển trực tiếp mức chân port chúng kéo lên có điện trở nội dùng làm đầu vào Khi vai trò cổng nhập, chân port bò kéo xuống thấp đổ dòng có nội trở kéo lên Hơn nữa, P1.0 P1.1 dùng đầu vào đếm timer/counter bên (P1.0/T2) xung kích (P1.1/T2EX) Port nhận byte đòa thấp lập trình Flash kiểm tra Flash c/ Port 2: Port port công dụng kép chân 21 – 28 dùng đường xuất nhập byte cao bus đòa thiết kế dùng nhớ mở rộng d/ Port 3: Port port công dụng kép chân 10 – 17 Các chân port có nhiều chức năng, công dụng chuyển đổi có liên hệ với đặc tính đặc biệt 8952 bảng sau: Bit Tên Chức chuyển đổi P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RXD TXD INT0\ INT1\ T0 T1 WR\ RD\ Dữ liệu nhận cho port nối tiếp Dữ liệu phát cho port nối tiếp Ngắt bên Ngắt bên Ngõ vào Timer/counter Ngõ vào Timer/counter Xung ghi nhớ liệu Xung đọc nhớ liệu II.3/ Các tín hiệu điều khiển: µC 8952 có tín hiệu điều khiển: a/ PSEN\ (Program Store Enable): PSEN\ tín hiệu chân 29 Nó tín hiệu điều khiển cho phép nhớ chương trình mở rộng, PSEN\ thường nối đến chân OE (Output Enable) EPROM phép đọc byte mã lệnh PSEN\ mức thấp thời gian lấy lệnh Các mã nhò phân chương trình đọc từ EPROM qua bus liệu chốt vào ghi lệnh 8952 để giải mã lệnh Nếu thi hành chương trình ROM nội (8952) PSEN\ mức thụ động (mức cao) b/ ALE (Address Latch Enable): Tín hiệu ALE chân 30 tương hợp với thiết bò làm việc với vi xử lí 8085, 8088, 8086 µC 8952 dùng ALE cách tương tự cho việc giải kênh bus đòa liệu Khi port dùng chế độ chuyển đổi: vừa bus liệu vừa byte thấp bus đòa chỉ, ALE tín hiệu để chốt byte thấp đòa vào ghi bên nửa đầu chu kì nhớ Sau đó, đường port dùng để xuất nhập liệu nửa sau chu kì nhớ Các xung tín hiệu ALE có tốc độ 1/6 lần tần số dao động chip dùng làm nguồn xung nhòp cho phần khác hệ thống Nếu xung nhòp 8952 12 Mhz ALE có tần số Mhz Chỉ ngoại trừ thi hành lệnh MOVX, xung ALE bò Trong trường hợp 8051 chân làm ngõ vào cho xung lập trình cho EPROM chip c/ EA\ (External Access): Tín hiệu vào EA\ chân 31 thường mắc lên mức cao (+5v) mức thấp (GND) Nếu mức cao, 8952 thi hành chương trình từ ROM nội khoảng đòa thấp (4K) Nếu mức thấp, chương trình thi hành từ nhớ mở rộng Khi dùng 8031, EA\ nối mức thấp 8031 nhớ chương trình chip Nếu EA\ nối mức thấp nhớ chương trình bên 8952 bò cấm chương trình thi hành từ EPROM mở rộng Người ta dùng EA\ làm chân cấp điện áp 21V lập trình cho EEPROM 8051 d/ RST (Reset): Ngõ vào RST chân ngõ reset 8952 Khi tín hiệu đưa lên mức cao (trong chu kì máy), ghi bên 8952 tải giá trò thích hợp để khởi động hệ thống e/ Các ngõ vào dao động chip: Như thấy hình trên, 8952 có dao động chip Nó thường nối với thạch anh hai chân 18 19 Các tụ giữ cần thiết vẽ Tần số thạch anh thông thường 12 Mhz f/ Các chân nguồn: 8952 hoạt động với nguồn đơn +5V Vcc nối vào chân 40 Vss (GND) nối vào chân 20 II.4/ Tổ chức nhớ: II.4.1/ Khảo sát tổ chức nhớ 8952: µC 8952 có nhớ tổ chức theo cấu trúc Harvard : có vùng nhớ riêng biệt cho chương trình liệu Như nói trên, chương trình liệu bên (8952); dù chúng mở rộng thành phần lên đến tối đa 64 Kbytes nhớ chương trình 64 Kbytes nhớ liệu Bộ nhớ bên bao gồm ROM (8952) RAM chip bao gồm nhiều thành phần: Phần lưu trữ đa dụng, phần lưu trữ đòa hóa bit, bank ghi ghi chức đặc biệt FFFF FF FFFF Bộ nhớ chương trình chọn qua PSEN\ 00 chọn qua WR\ RD\ 0000 000 Bộ nhớ chip Bộ nhớ liệu Bộ nhớ mở rộng Tóm tắt vùng nhớ 8952 Hai đặc tính cần lưu ý là: Các ghi port xuất nhập xếp nhớ truy xuất trực tiếp giống đòa nhớ khác Ngăn xếp bên RAM nội nhỏ so với RAM so với xử lí khác II.4.2 Chi tiết nhớ RAM chip: Như thấy hình sau, RAM bên 8952 phân chia thành bank ghi (00H – 1FH), RAM đòa hóa bit (20H – 2FH), RAM đa dụng (30H – 7FH) ghi chức đặc biệt khoảng (80H – FFH) RAM đa dụng: Mặc dù hình cho thấy 80 bytes RAM đa dụng chiếm đòa từ 30H – 7FH, 32 bytes từ 00H – 1FH dùng với mục đích tương tự (mặc dù đòa có mục đích khác) Đòa Đòa byte Đòa bit Đòa bit byte 7F F F F F F F F F F F F B E E E E E E E E E ACC RAM đa dụng D D D D D D D _ D PSW 30 2F F E D F C B F A 29 F 28 27 F B _ _ _ B B B B B IP C B A E 6 E 6 E E E D D 5 D 5 D D C C C 4 C 4 C B B B B 3 B A A A A A 9 9 8 8 B B B B B B B B B P3 A A _ _ A A A A A IE F C B A A A A A A A A A A P2 không đòa hóa SBU bit F 9 9 9 9 SCO F E D C B A N 26 25 F 24 23 F 22 21 F 20 1F E E E 3 3 2 2 D C B A 2 2 1 1 D C B A 1 1 0 0 D C B A 0 0 BANK 3 1 1 8 0 0 18 17 BANK 10 0F BANK 08 07 BANK ( Mặc đònh cho R0 – R7 ) 00 BIỆT RAM 9 9 9 9 P1 không đòa hóa TH1 D bit không đòa hóa TH0 C bit không đòa hóa TL1 B bit không đòa hóa TL0 A bit không đòa hóa TM bit OD 8 8 8 8 TCO F E D C B A N không đòa hóa PCO bit N không đòa hóa bit không đòa hóa bit không đòa hóa bit 8 8 8 8 DPH DPL SP P0 CÁC THANH GHI CHỨC NĂNG ĐẶC Giản đồ thời gian đọc nhớ chương trình b/ Truy xuất nhớ liệu ngoài: 8952 RAM PORT D0 - D7 74HC373 EA D ALE G A0 - A7 A8 -A15 PORT RD WR PSEN Q NC OE WR CS Giao tiếp 8952 RAM Bộ nhớ liệu nhớ RAM cho phép ghi/đọc tín hiệu WR\ RD\ (các chân P3.6 P3.7 thay đổi chức năng) Chỉ có cách truy xuất nhớ liệu với lệnh MOVX dùng trỏ liệu (DPTR) 16 bits R0 R1 xem ghi đòa Kết nối bus đòa bus liệu RAM 8952 giống EPROM lên đến 64 Kbytes nhớ RAM Ngoài ra, chân RD\ 8952 nối tới chân cho phép xuất (OE\) RAM chân WR\ nối tới chân ghi (WR\) RAM Giản đồ thời gian cho lệnh đọc liệu vẽ hình sau lệnh MOVX A, @DPTR: Giản đồ thời gian lệnh MOVX Giản đồ thời gian cho lệnh ghi (MOVX @DPTR, A) tương tự khác đường WR\ thay vào đường RD\ liệu xuất chân Port (RD\ giữ mức cao) c/ Giải mã đòa chỉ: Nếu có nhiều EPROM và/hoặc nhiều RAM giao tiếp với 8952, cần phải giải mã đòa Mạch giải mã tương tự hệ vi xử lí khác Ví dụ, dùng nhiều EPROM RAM 8Kbytes bus đòa cần phải giải mã để xác đònh IC nhớ chọïn Người ta thường dùng IC giải mã 74HC138 với ngõ nối tới ngõ vào chọn chip (CS) IC nhớ Hình sau vẽ hệ thống với nhiều EPROM 8K 2764 RAM 8K 6264: Giải mã đòa d/ Xếp chồng nhớ chương trình liệu bên ngoài: Vì nhớ chương trình ROM, nên nảy sinh vấn đề bất tiện phát triển phần mềm cho 8051/8031 Đối với 8952 cải tiến cách thay EEPROM, dùng cách để khắc phục nhược điểm xếp chồng vùng nhớ chương trình liệu Một IC RAM chứa chương trình liệu cách nối đường OE\ RAM vào mạch logic AND PSEN\ RD\ Mạch hình sau cho phép IC RAM dùng làm nhớ chương trình liệu: Vậy chương trình tải vào RAM (bằng cách ghi nhớ liệu) thi hành (bằng cách truy xuất nhớ chương trình) II.7 Lệnh Reset: µC8952 reset cách giữ chân RST mức cao hai chu kì máy trả mức thấp Vcc R 100 C SW 1 10uf RESET R k M A ÏC H R E S E T H E Ä T H O ÁN G RST kích tay dùng nút bấm kích cấp điện dùng mạch R-C Trạng thái tất ghi 8952 sau Reset hệ thống tóm tắt bảng sau: Thanh ghi Nội dung Đếm chương trình Tích lũy B PSW SP DPTR Port ÷ IP IE Các ghi đònh thời SCON SBUF PCON ( HMOS ) PCON ( CMOS ) 0000 H 00 H 00 H 00 H 07 H 0000 H FF H XXX00000 B 0XX00000 B 00 H 00 H 00 H 0XXXXXXX B 0XXX0000 B Quan trọng ghi ghi đếm chương trình, đặt lại 0000H Khi RST trở lại mức thấp, việc thi hành chương trình bắt đầu đòa nhớ chương trình: đòa 0000H Nội dung RAM chip không bò thay đổi lệnh Reset III TẬP LỆNH CỦA 8952 : Tập lệnh 8952 có 255 lệnh gồm 139 lệnh byte, 92 lệnh byte 24 lệnh byte III.1 Các chế độ đánh đòa chỉ: a/ Đòa ghi: µC8952 có bốn bank ghi, bank có ghi đánh số từ R0 đến R7 Tại thời điểm có bank ghi tích cực Mã lệnh n n n Đòa ghi Muốn chọn bank ghi ta cần gán bít nhò phân thích hợp vào RS1 (PSW.4) RS0 (PSW.3) ghi trạng thái chương trình (PSW) Ngoài ra, số ghi đặc biệt ghi tích lũy, ghi trỏ liệu xác đònh lệnh nên không cần bit đòa Trong lệnh ghi tích lũy kí hiệu “A”, trỏ liệu “DPTR”, ghi đếm chương trình “PC”, cờ nhớ “C”, cặp ghi tích lũy “AB” b/ Đòa trực tiếp: Trong chế độ này, ghi bên 8952 đánh đòa trực tiếp bits đòa nằm byte thứ hai mã lệnh Mã lệnh Đòa trực tiếp Đòa trực tiếp Dù vậy, trình hợp dòch cho phép gọi tên ghi chức đặc biệt (có đòa trực tiếp từ 80H đến FFH) Ví dụ, P0 cho Port 0, TMOD cho ghi chế độ timer, … c/ Đòa gián tiếp: R0 R1 dùng để chứa đòa tạm ô nhớ mà lệnh tác động đến Người ta qui ước dùng dấu @ trước R0 R1 Mã lệnh i Đòa gián tiếp d/ Đòa tức thời: Người ta dùng dấu # trước toán hạng tức thời Các toán hạng số, kí số hay biểu thức toán học …Trình hợp dòch tự động tính toán thay liệu vào mã lệnh Mã lệnh Dữ liệu tức thời Đòa tức thời e/ Đòa tương đối: Đòa tương đối dùng lệnh nhảy µC8952 dùng giá trò bit có dấu để cộng thêm vào ghi đếm chương trình (PC) Tầm nhảy lệnh khoảng từ –128 đến 127 ô nhớ Trước cộng, ghi PC tăng đến đòa theo sau lệnh nhảy tính toán đòa offset cần thiết để nhảy đến đòa yêu cầu Mã lệnh Offset tương đối Đòa tương đối Như vậy, đòa đòa tương đối so với lệnh thân lệnh nhảy Thường lệnh có liên quan đến nhãn đònh nghóa trước f/ Đòa tuyệt đối : Đòa tuyệt đối dùng trước lệnh ACALL AJIMP Các lệnh byte dùng để rẽ nhánh vào trang 2Kbyte nhớ chương trình cách cấp 11 bit đòa thấp (A0-A10) để xác đònh đòa đích trang mã Còn bit cao đòa đích bit hành ghi đếm chương trình Vì vậy, đòa lệnh theo sau lệnh rẽ nhánh đòa đích lệnh rẽ nhánh cần phải trang mã 2Kbyte (có bits đòa cao) A10-A8 Mã lệnh Offset tương đối Đòa tuyệt đối A10 A9 A15 A0 XÁC ĐỊNH TRANG MÃ XÁC ĐỊNH ĐỊA CHỈ TRONG TRANG MÃ g/ Đòa dài : Đòa dài dùng cho lệnh LCALL LJIMP Các lệnh chiếm byte dùng byte sau (byte byte 3) để đònh đòa đích lệnh (16 bit) Ưu điểm lệnh sử dụng toàn vùng nhớ 64 Kbyte Mã lệnh A15 - A8 A7 – A0 Đòa dài Tuy nhiên, lệnh chiếm nhiều byte lệ thuộc vào vò trí vùng nhớ h/ Đòa tham chiếu: Đòa tham chiếu dùng ghi (hoặc ghi đếm chương trình PC ghi trỏ liệu DPTR) đòa offset (trong ghi tích lũy A) để tạo đòa tác động cho lệnh JMP MOVC Các bảng nhảy bảng tìm kiếm dễ dàng tạo để sử dụng đòa tham chiếu Đòa Offset PC + AC = Đòa cần truy DPTR C xuất Đòa tham chiếu III.2 Các nhóm lệnh 8952: Tập lệnh 8952 chia làm nhóm: Số học Luận lí Chuyển liệu Chuyển điều khiển Các dẫn thiết lập lệnh: Rn : Thanh ghi R0 đến R7 bank ghi chọn Data : bit đòa vùng liệu bên Nó vùng RAM liệu (0-127) ghi chức đặc biệt @Ri : bit vùng RAM liệu (0-255) đánh đòa gián tiếp qua ghi R0 R1 #data : Hằng bit chứa câu lệnh #data16 : Hằng 16 bit chứa câu lệnh addr16 : 16 bit đòa đích dùng lệnh LCALL LJMP addr11 : 11 bit đòa đích dùng lệnh ACALL AJMP rel : Byte offset bit có dấu dùng lệnh SJUMP lệnh nhảy có điều kiện bit : Bit đònh đòa trực tiếp RAM liệu nội ghi chức đặc biệt a/ Nhóm lệnh xử lí số học: ADD A, Rn (1 byte, chu kì máy) : Cộng nội dung ghi Rn vào ghi A ADD A, data (2, 1): Cộng trực tiếp byte vào ghi A AAD A, @Ri (1, 1): Cộng gián tiếp nội dung RAM chứa đòa khai báo Ri vào ghi A ADD A, #data (2, 1) : Cộng liệu tức thời vào A ADDC A, Rn (1, 1): Cộng ghi cờ nhớ vào A ADDC A, data (2, 1) : Cộng trực tiếp byte liệu cờ nhớ vào A ADDC A, @Ri (1, 1) : Cộng gián tiếp nội dung RAM cờ nhớ vào A ADDC A, #data (2, 1) : Cộng liệu tức thời cờ nhớ vào A SUBB A, Rn (1, 1): Trừ nội dung ghi A cho nội dung ghi Rn cờ nhớ SUBB A, data (2, 1) : Trừ trực tiếp A cho số cờ nhớ SUBB A, @Ri (1, 1) : Trừ gián tiếp A cho số cờ nhớ SUBB A, #data (2, 1) : Trừ nội dung A cho số tức thời cờ nhớ INC A (1, 1): Tăng nội dung ghi A lên INC Rn (1, 1): Tăng nội dung ghi Rn lên INC data (2, 1): Tăng liệu trực tiếp lên INC @Ri (1, 1): Tăng gián tiếp nội dung vùng RAM lên DEC A (1, 1): Giảm nội dung ghi A xuống DEC Rn (1, 1): Giảm nội dung ghi Rn xuống DEC data (2, 1): Giảm liệu trực tiếp xuống DEC @Ri (1, 1): Giảm gián tiếp nội dung vùng RAM xuống INC DPTR (1, 2): Tăng nội dung trỏ liệu lên MUL AB (1, 4): Nhân nội dung ghi A với nội dung ghi B DIV AB (1, 4): Chia nội dung ghi A cho nội dung ghi B DA A (1,1) : Hiệu chỉnh thập phân ghi A b/ Nhóm lệnh luận lí : ANL A, Rn (1, 1): AND nội dung ghi A với nội dung ghi Rn ANL A, data (2, 1): AND nội dung ghi A với liệu trực tiếp ANL A, @Ri (1, 1) : AND nội dung ghi A với liệu gián tiếp RAM ANL A, #data(2, 1): AND nội dung ghi với liệu tức thời ANL data, A (2, 1): AND liệu trực tiếp với A ANL data, #data(3, 2): AND liệu trực tiếp với liệu tức thời ANL C, bit (2, 2): AND cờ nhớ với bit trực tiếp ANL C, /bit (2, 2): AND cờ nhớ với bù bit trực tiếp ORL A, Rn (1, 1): OR ghi A với ghi Rn ORL A, data (2, 1): OR ghi A với liệu trực tiếp ORL A, @Ri (1, 1): OR ghi A với liệu gián tiếp ORL A, #data(2, 1): OR ghi A với liệu tức thời ORL data, A (2, 1): OR liệu trực tiếp với ghi A ORL data, #data(3, 2): OR liệu trực tiếp với liệu tức thời ORL C, bit (2, 2): OR cờ nhớ với bit trực tiếp ORL C, /bit (2, 2): OR cờ nhớ với bù bit trực tiếp XRL A, Rn (1, 1): XOR ghi A với ghi Rn XRL A, data (2, 1): XOR ghi A với liệu trực tiếp XRL A, @Ri (1, 1): XOR ghi A với liệu gián tiếp XRL A, #data(2, 1): XOR ghi A với liệu tức thời XRL data, A (2, 1) : XOR liệu trực tiếp với ghi A XRL data, #data (3, 2): XOR liệu trực tiếp với liệu tức thời SETB C SETB bit CLR A CLR C CPL A CPL C CPL bit RL A (1, 1): Đặt cờ nhớ (2, 1): Đặt bit trực tiếp (1, 1): Xóa ghi A (1, 1): Xóa cờ nhớ (1, 1): Bù nội dung ghi A (1, 1): Bù cờ nhớ (2, 1): Bù bit trực tiếp (1, 1): Quay trái nội dung ghi A RLC A RR A RRC A SWAP A (1, 1): Quay trái nội dung ghi A qua cờ nhớ (1, 1): Quay phải nội dung ghi A (1, 1): Quay phải nội dung ghi A qua cờ nhớ (1, 1): Đảo nible ghi A c/ Nhóm lệnh chuyển liệu: MOV A, Rn MOV A, data MOV A, @Ri MOV A, #data MOV Rn, A MOV Rn, data MOV Rn, #data MOV data, A (1, 1) (2, 1) (1, 1) (2, 1) (1, 1) (2, 2) (2, 1) (2, 1) : Chuyển nội dung ghi Rn vào ghi A : Chuyển liệu trực tiếp vào ghi A : Chuyển liệu gián tiếp vào ghi A : Chuyển liệu tức thời vào ghi A : Chuyển nội dung ghi A vào ghi Rn : Chuyển liệu trực tiếp vào ghi Rn : Chuyển liệu tức thời vào ghi Rn : Chuyển nội dung ghi A vào liệu trực tiếp MOV data, Rn (2, 2) : Chuyển nội dung ghi Rn vào liệu trực tiếp MOV data, data (3, 2) : Chuyển liệu trực tiếp vào liệu trực tiếp MOV data, @Ri (2, 2) : Chuyển liệu gián tiếp vào liệu trực tiếp MOV data, #data (3, 2) : Chuyển liệu tức thời vào liệu trực tiếp MOV @Ri, A (1, 1) : Chuyển nội dung ghi A vào liệu gián tiếp MOV @Ri, data (2, 2) : Chuyển liệu trực tiếp vào liệu gián tiếp MOV @Ri, #data (2, 1) : Chuyển liệu tức thời vào liệu gián tiếp MOV DPTR, #data16 (3, 2): Chuyển 16 bit vào ghi trỏ liệu MOV C, bit (2, 1) : Chuyển bit trực tiếp vào cờ nhớ MOV bit, C (2, 2) : Chuyển cờ nhớ vào bit trực tiếp MOVC A, @A+DPTR (1, 2): Chuyển byte nhớ chương trình có đòa @A + DPTR vào ghi A MOVC A, @A + PC(1, 2) : Chuyển byte nhớ chương trình có đòa @A + PC vào ghi A MOVX A, @Ri (1, 2) : Chuyển liệu (8 bit đòa chỉ) vào ghi A MOVX A, @DPTR(1, 2) : Chuyển liệu (16 bit đòa chỉ) vào ghi A MOVX @Ri, A (1, 2) : Chuyển nội dung A liệu (8 bit đòa chỉ) MOVX @DPTR, A (1, 2) : Chuyển nội dung A liệu (16 bit đòa chỉ) PUSH data (2, 2) : Chuyển liệu trực tiếp vào ngăn xếp tăng SP POP data (2, 2) : Lấy liệu trực tiếp khỏi ngăn xếp giảm SP XCH A, Rn (1, 1) : Trao đổi liệu ghi Rn ghi A XCH A, data (2, 1) : Trao đổi ghi A liệu trực tiếp XCH A, @Ri (1, 1) : Trao đổi ghi A liệu gián tiếp XCHD A, @Ri (1, 1) : Trao đổi nibble thấp (LSN) của ghi A LSN liệu gián tiếp d/ Nhóm lệnh chuyển quyền điều khiển : ACALL addr11 LCALL addr16 RET RETI (2, 2): Gọi chương trình dùng đòa tuyệt đối (3, 2): Gọi chương trình dùng đòa dài (1, 2): Trở từ lệnh gọi chương trình (1, 2): Trở từ lệnh gọi ngắt AJMP addr11 LJMP addr16 SJMP rel JMP @A + DPTR JZ rel JNZ rel JC rel JNC rel JB bit, rel JNB bit, rel đặt JBC bit, rel (2, 2) : Nhảy tuyệt đối (3, 2): Nhảy dài (2, 2): Nhảy ngắn (1, 2): Nhảy gián tiếp từ trỏ liệu (2, 2): Nhảy đến A (2, 2): Nhảy đến A không (2, 2): Nhảy đến cờ nhớ đặt (2, 2): Nhảy cờ nhớ không đặt (3, 2): Nhảy tương đối bit trực tiếp đặt (3, 2): Nhảy tương đối bit trực tiếp không (3, 2): Nhảy tương đối bit trực tiếp đặt, xóa bit CJNE A, data, rel (3, 2): So sánh liệu trực tiếp với A nhảy không CJNE A, #data, rel (3, 2): So sánh liệu tức thời với A nhảy không CJNE Rn, #data, rel (3, 2) : So sánh liệu tức thời với nội dung ghi Rn nhảy không CJNE @Ri, #data, rel (3, 2) : So sánh liệu tức thời với liệu gián tiếp nhảy không DJNZ Rn, rel (2, 2): Giảm ghi Rn nhảy không DJNZ data, rel (3, 2): Giảm liệu trực tiếp nhảy không [...]... lệnh chuyển quyền điều khiển : ACALL addr11 LCALL addr16 RET RETI (2, 2): Gọi chương trình con dùng đòa chỉ tuyệt đối (3, 2): Gọi chương trình con dùng đòa chỉ dài (1, 2): Trở về từ lệnh gọi chương trình con (1, 2): Trở về từ lệnh gọi ngắt AJMP addr11 LJMP addr16 SJMP rel JMP @A + DPTR JZ rel JNZ rel JC rel JNC rel JB bit, rel JNB bit, rel đặt JBC bit, rel (2, 2) : Nhảy tuyệt đối (3, 2): Nhảy dài (2,... 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: µC 8952 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 i/ Thanh ghi điều khiển công suất: Thanh ghi điều khiển công suất (PCON)... Một IC chốt 74HC3 73 (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 PSEN\ Hình sau mô tả cách nối một EPROM vào 8952: 8952 EPROM PORT 0 D0 - D7 74HC3 73 EA D ALE G PORT... nếu cờ nhớ không được đặt (3, 2): Nhảy tương đối nếu bit trực tiếp được đặt (3, 2): Nhảy tương đối nếu bit trực tiếp không được (3, 2): Nhảy tương đối nếu bit trực tiếp được đặt, rồi xóa bit CJNE A, data, rel (3, 2): So sánh dữ liệu trực tiếp với A và nhảy nếu không bằng CJNE A, #data, rel (3, 2): So sánh dữ liệu tức thời với A và nhảy nếu không bằng CJNE Rn, #data, rel (3, 2) : So sánh dữ liệu tức... sau: Thanh ghi Nội dung Đếm chương trình Tích lũy B PSW SP DPTR Port 0 ÷ 3 IP IE Các thanh ghi đònh thời SCON SBUF PCON ( HMOS ) PCON ( CMOS ) 0000 H 00 H 00 H 00 H 07 H 0000 H FF H XXX00000 B 0XX00000 B 00 H 00 H 00 H 0XXXXXXX B 0XXX0000 B Quan trọng nhất trong các thanh ghi trên là thanh ghi đếm chương trình, nó được đặt lại 0000H Khi RST trở lại mức thấp, vi c thi hành chương trình luôn bắt đầu ở... 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 vận hành timer được set bởi thanh ghi Timer Mode (TMOD) ở đòa chỉ 89H và thanh ghi điều khiển timer (TCON) ở đòa chỉ 88H Chỉ có TCON được đòa chỉ từng bit Đặc biệt 8952 còn có timer 2 có các thanh ghi sau: Các thanh ghi Timer 2 các bit điều. .. mềm cho 8051/8 031 Đối với 8952 đã cải tiến bằng cách thay thế bằng EEPROM, hoặc dùng một cách để khắc phục nhược điểm trên là xếp chồng các vùng nhớ chương trình và dữ liệu Một IC RAM có thể chứa cả chương trình và dữ liệu bằng cách nối đường OE\ của RAM vào một mạch logic AND của PSEN\ và RD\ Mạch trên hình sau cho phép một IC RAM được dùng làm bộ nhớ chương trình và dữ liệu: Vậy một chương trình có... µs Trong một chu kì máy, sẽ có hai xung ALE và hai byte được đọc từ bộ nhớ chương trình (nếu lệnh hiện hành là lệnh 2 bytes thì byte thứ hai sẽ được loại bỏ) Giản đồ thời gian của một lần lấy lệnh được vẽ ở hình sau: Giản đồ thời gian đọc bộ nhớ chương trình ngoài b/ Truy xuất bộ nhớ dữ liệu ngoài: 8952 RAM PORT 0 D0 - D7 74HC3 73 EA D ALE G A0 - A7 A8 -A15 PORT 2 RD WR PSEN Q NC OE WR CS Giao tiếp giữa... các hệ vi xử lí khác Ví dụ, nếu dùng nhiều EPROM và RAM 8Kbytes thì bus đòa chỉ cần phải được giải mã để xác đònh IC nhớ nào được chọïn Người ta thường dùng IC giải mã 74HC 138 với các ngõ ra được nối tới các ngõ vào chọn chip (CS) trên các IC nhớ Hình sau vẽ một hệ thống với nhiều EPROM 8K 2764 và RAM 8K 6264: Giải mã đòa chỉ d/ Xếp chồng bộ nhớ chương trình và dữ liệu bên ngoài: Vì bộ nhớ chương. .. 20H đến 2FH, và phần còn lại là trong các thanh ghi chức năng đặc biệt Ý 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 bit 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 I/O cũng được đòa chỉ hóa từng bit làm đơn giản phần ... thống lập trình vi n bình thường Bằng cách nối CPU bit với Flash chip đơn, AT89C52 vi điều khiển mạnh (có công suất lớn), cung cấp linh động cao giải pháp giá nhiều ứng dụng vi điều khiển Các đặc... Xung đọc nhớ liệu II .3/ Các tín hiệu điều khiển: µC 8952 có tín hiệu điều khiển: a/ PSEN (Program Store Enable): PSEN tín hiệu chân 29 Nó tín hiệu điều khiển cho phép nhớ chương trình mở rộng,... có 26 chân có công dụng kép, đường hoạt động đường xuất nhập đường điều khiển thành phần bus liệu bus đòa U 12 3 3 3 3 2 19 18 31 P P P P P P P P 0 0 0 0 /A /A /A /A /A /A /A /A D D D D D D D D