chương 3 vi điều khiển AT89C51

33 319 0
chương 3 vi điều khiển AT89C51

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành CHƯƠNG :VI ĐIỀU KHIỂN AT89C51 3.1 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-51 TM : TÊN LINH BỘ NHỚ CHƯƠNGù BỘ NHỚ DỮ LIỆU TIMER KIỆN 8051 8031 8751 8951 8052 8032 8752 8952 TRÌNH ON CHIP KB MROM KB KB EPROM KB Flash ROM KB MROM KB KB EPROM KB Flash ROM ON CHIP 128 Bytes 128 Bytes 128 Bytes 128 bytes 256 Bytes 256 Bytes 256 Bytes 256 Bytes 2 2 3 3 3.2 Vi Điều Khiển AT89C51: 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ẽ AT89C51 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 on-chip cho phép nhớ lập trình lập trình hệ thống lập trình viên SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 64 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành bình thường Bằng cách nối CPU bit với Flash chip đơn, AT89C51 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 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành Các đặc điểm chủ yếu AT89C51 : q Tương thích hoàn toàn với họ MCS-51TM Intel q Bộ nhớ chương trình 4K Byte thuộc loại Flash Memory q64 K không gian nhớ chương trình mở rộng qĐộ bền : 1000 lần ghi/xóa q64 K không gian nhớ liệu mở rộng qTần số hoạt động : Hz đến 24 MHz q3 chế độ khóa nhơ ù chương trình q 128 x 8-Bit RAM nội q 32 đường I/O lập trình (4 port) q timer/counter 16-bit q5 nguồn ngắt qĐường truyền nhận nối tiếp lập trình qChế độ hạ nguồn chế độ lười tiêu tốn công suất thấp qXử lý Boolean (hoạt động bit đơn) q210 µs cho hoạt động nhân chia 3.2.1 Cấu tạo chân SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 65 vò trí nhớ đònh vò bit q4 Tùy theo khả (về kinh tế, kỹ thuật, … ) mà nhà sản xuất sản phẩm ứng dụng chọn kiểu chân ATMEL đưa 3.2.2 Sơ đồ khối 3.2.3 Mô tả chức chân Vcc : áp nguồn GND : đất Port : port I/O 8-bit hai chiều, cực máng hở Khi xuất ra, chân port lái đầu vào TTL Nếu ghi mức chân port chân dùng đầu vào trở kháng cao Port cấu hình thành bus multiplex đòa thấp liệu truy cập chương trình hay liệu từ bên Trong chế độ này, port có điện trở pullup nội SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 66 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành Port nhận byte mã chương trình lập trình Flash xuất mã chương trình kiểm tra, cần có điện trở pullup bên Port : port I/O 8-bit hai chiều có pullup nội Đầu port lái đầu vào TTL Khi viết 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 Port nhận byte đòa thấp lập trình Flash kiểm tra Flash Port : port I/O 8-bit hai chiều có pullup nội Đầu port lái đầu vào TTL Khi viết 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 Port phát byte đòa cao nhận lệnh từ nhớ chương trình lúc truy xuất đến nhớ liệu mà có sử dụng đòa 16 bit (MOVX A, @DPTR) Trong ứng dụng dùng điện trở nội kéo lên mạnh xuất Khi truy xuất nhớ liệu dùng đòa bit, port phát nội dung ghi P2 Port nhận byte đòa cao lúc lập trình Flash lúc kiểm tra Flash Port : port I/O 8-bit hai chiều có pullup nội Đầu port lái đầu vào TTL Khi viết 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 Port port có công dụng kép , chân port có nhiều chức đặc biệt họ MSC-51 liệt kê bảng sau: BIT TÊN ĐỊA CHỈ CHỨC NĂNG THAY THẾ BIT P3.0 P3.1 P3.2 P3.3 P3.4 RXD TXD INT0 INT1 T0 B0H B1H B2H B3H B4H Nhận dừ liệu cho port nối tiếp Truyền dừ liệu cho port nối tiếp Ngắt Ngắt Ngõ vào từ bên cho timer/counter SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 67 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành P3.5 T1 B5H Ngõ vào từ bên cho timer/counter P3.6 WR B6H Xung ghi nhớ liệu P3.7 RD B7H Xung đọc nhớ liệu Port nhận vài tín hiệu điều khiển lúc lập trình Flash lúc kiểm tra Flash RST : ngõ vào Reset Khi ngõ đưa lên cao (trong hai chu kì máy), ghi bên AT89C51 tải giá trò thích hợp để khởi động hệ thống ALE/PROG (Address Latch Enable) : ALE xung xuất cho phép chốt byte đòa thấp truy cập nhớ Chân ngõ vào xung lập trình (PROG) lập trình Flash Trong hoạt động bình thường, ALE phát xung với tần số 1/6 tần số dao động on-chip dùng xung thời gian chuẩn bên Tuy nhiên, cần ý xung ALE bò truy cập nhớ Có thể hủy bỏ chức ALE cách set bit ghi vò trí 8EH Một bit set, ALE tích cực có lệnh MOVX MOVC Nếu lệnh ALE mức cao Việc set bit ghi vò trí 8EH không làm ảnh hưởng đến vi điều khiển truy cập nhớ PSEN (Program Store Enable) : PSEN xung strobe báo hiệu việc đọc nhớ chương trình ngoài, PSEN tích cực hai lần (mức thấp) chu kì máy, ngoại trừ hai xung PSEN bò truy xuất liệu Khi thi hành chương trình RAM nội, PSEN mức thụ động (mức cao) EA/VPP (External Access) : EA ngõ vào phép truy xuất nhớ chương trình từ bên nối với GND Khi EA treo lên nguồn V CC, chương trình thực thi ROM nội Chân nhận điện áp 12v (VPP) lập trình Flash XTAL1 : Đầu vào khuếch đại dao động đảo đầu vào đến mạch tạo xung clock nội XTAL2 : Đầu khuếch đại dao động đảo SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 68 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành 3.2.4 Tổ chức nhớ Bộ nhớ bên AT89C51 gồm có : 4K ROM chương trình và128 byte nhớ RAM on-chip Trong đó, 128 byte bao gồm nhiều thành phần :phần lưu trữ đa dụng ,phần lưu trữ đòa hoá bit ,các bank ghi ghi chức đặc biệt FFFF FFFF CODE Memory DATA Memory Enable via PSEN Enable via RD & WR 0000 FF 00 On - Chip Memory 0000 External Memory SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 69 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành Bảng tóm tắt vùng nhớ 8951 Bản đồ nhớ Data Chip sau : Đòa Đòa byte byte SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 70 F7 F6 F5 F4 F3 F F1 F0 Luận Văn Tốt Nghiệ p GVHD n Thiện Thành FF RAM đa dụng : T h a y Nguyễ F0 E7 E6 E5 E4 E E E D7 D6 D5 D4 D E0 7F 7E 7D 7C 7B 7A 79 78 47 46 45 44 43 42 41 40 3F 3E 3D 3C 3B 3A 39 38 37 2F 27 1F 17 0F 07 36 2E 26 1E 16 0E 06 35 2D 25 1D 15 0D 05 34 33 2C 2B 24 23 1C 1B 14 13 0C 0B 04 03 Bank 32 2A 22 1A 12 0A 02 31 29 21 19 11 09 01 30 28 20 18 10 08 00 B B B8 A B8 AF B0 57 56 55 54 53 52 51 50 4F 4E 4D 4C 4B 4A 49 48 B7 B6 B5 B4 B3 B B 67 66 65 64 63 62 61 60 5F 5E 5D 5C 5B 5A 59 58 - BC B B D D D0 D0 77 76 75 74 73 72 71 70 6F 6E 6D 6C 6B 6A 69 68 - E0 B0 AC A A A A8 B A A7 A6 A5 A4 A A A A0 A8 A0 k hông đòa hoá bit 9F 9E 9D 9C 9B 99 98 A 97 96 95 94 93 92 91 90 99 k hông đòa hoá bit k hông đòa hoá bit k hông đòa hoá bit k hông đòa hoá bit k hông đòa hoá bit 8F 8E 8D 8C 8B 89 88 Bank Bank A k hông đòa hoá bit k hông đòa hoá bit k hông đòa hoá bit k hông đòa hoá bit 87 86 85 84 83 82 81 80 SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 71 Bank ghi (mặc đònh cho R0 -R7) Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành Đòa bit Đòa bit 7F B ACC PSW 30 IP 2F 2E P.3 2D 2C IE 2B 2A P2 29 28 SBUF 27 SCON 26 25 P1 24 23 TH1 22 TH0 21 TL1 20 TL0 1F TMOD 18 TCON 17 PCON 10 0F DPH 08 DPL 07 SP 00 P0 RAM CÁC THANH GHI CHỨC NĂNG ĐẶC BIỆT a RAM đa dụng : chiếm đòa từ 30H->7FH Mọi đòa vùng RAM đa dụng truy xuất tự dùng cách đánh đòa trực tiếp gián SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 72 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành tiếp Ví dụ, để đọc nội dung đòa 5FH RAM nội vào ghi tích luỹ, ta dùng lệnh sau : MOV A,5FH ;đây cách đònh đòa trực tiếp Hoặc MOV R0,#5FH MOV A,R0 ;cách đònh đòa gián tiếp qua R0 b RAM đòa hoá bit :89C51 chứa 210 bit đòa hoá , 128 bit đòa byte từ 20H đến 2FH , phần lại ghi chức đặc biệt Để đặt bit 67H (bit có trọng số lớn đòa byte 2CH) ta thực sau : SETB 67H Hoặc MOV A,2CH ORL A,#10000000 MOV 2CH,A ;đọc byte ;set bit 67H ;ghi lại byte c Các bank ghi : có bank ghi đòa từ 00H đến 1FH Mỗi bank ghi hỗ trợ ghi R0 đến R7 theo mặc đònh ( sau reset hệ thống ) ghi đòa 00H-07H ( Bank 0) Thay đổi Bank ghi cách thay đổi bit chọn bank ghi từ trạng thái chương trình (PSW) Các lệnh dùng ghi R0 đến R7 ngắn nhanh lệnh tương ứng dùng đòa trực tiếp Các giá trò liệu dùng thường xuyên nên dùng ghi 3.2.5 Các ghi chức đặc biệt (SFR-Special Funtion Reisters) AT89C51 có 21 ghi chức thiết kế thành phần RAM on-chip Do ghi có đòa nó, nằm vùng từ 80H đến FFH Tuy nhiên, vùng vùng nhớ nên việc truy cập ghi thông qua lệnh dùng đònh vò trực tiếp khác với việc truy cập vùng nhớ dùng đònh vò gián tiếp Chú ý tất đòa từ 80H đến FFH có ghi, đòa ghi chip Đọc đòa SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 73 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành Đếm chương trình PC Thanh ghi tích lũy A Thanh ghi B Thanh ghi thái PSW SP DPRT Port đến port IP IE Các ghi đònh thời SCON SBUF PCON (MHOS) 0000H 00H 00H 00H 07H 0000H FFH XXX0 0000 B 0X0X 0000 B 00H 00H 00H 0XXX XXXXH PCON (CMOS) 0XXX 0000 Boltzmann -Thanh ghi quan trọng ghi đếm chương trình PC reset đòa 0000H Khi ngõ vào RST xuống mức thấp, chương trình bắt đầu đòa 0000H nhớ chương trình Nội dung RAM chip không bò thay đổi tác động ngõ vào reset 3.2.7 Hoạt động timer 8951 Các Timer 8951 truy xuất việc dùng ghi chức đặc biệt sau : Timer SFR Purpose Address Bit-Addressable TCON Control 88H YES TMOD Mode 89H NO TL0 Timer low-byte 8AH NO TL1 Timer low-byte 8BH NO TH0 Timer high-byte 8CH NO TH1 Timer high-byte 8DH NO a Thanh ghi điều khiển chế độ timer TMOD (timer mode register) : - Thanh ghi mode gồm hai nhóm bit là: bit thấp đặt mode hoạt động cho Timer bit cao đặt mode hoạt động cho Timer bit ghi TMOD tóm tắt sau: Bit Name GATE C/T Timer 1 Description Khi GATE = 1, Timer làm việc INT1=1 Bit cho đếm kiện hay ghi SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 82 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành C/T = : Đếm kiện C/T = : Ghi đặn Một M1 M0 GATE C/T M1 M0 1 0 0 Bit chọn mode Timer Bit chọn mode Timer Bit cổng Timer Bit chọn Counter/Timer Timer Bit chọn mode Timer Bit chọn mode Timer Hai bit M0 M1 TMOD để chọn mode cho Timer Timer 1: M1 0 1 M0 1 MODE DESCRIPTION Mode Timer 13 bit (mode 8048) Mode Timer 16 bit Mode tự động nạp bit Mode Timer tách : Timer : TL0 Timer bit điều khiển bit Timer TH0 tương tự điều khiển bit mode Timer Timer : Được ngừng lại - TMOD bit đònh vò, thường LOAD lần phần mềm đầu chương trình để khởi động mode Timer Sau đònh dừng lại, khởi động lại truy xuất ghi chức đặc biệt Timer khác b Thanh ghi điều khiển timer TCON (timer control register): - Thanh ghi điều khiển bao gồm bit trạng thái bit điều khiển cho Timer Timer Thanh ghi TCON có bit đònh vò Hoạt động bit tóm tắt sau : Bit Symbol TCON.7 TF1 Bit Address 8FH Description Cờ tràn Timer set phần cứng tràn, xóa phần mềm phần cứng vectơ xử lý đến thủ tục phục vụ ngắt ISR SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 83 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành TCON.6 TR1 8EH TCON.5 TCON.4 TCON.3 TF0 TR0 IE1 8DH 8CH 8BH TCON.2 IT1 8AH Bit điều khiển chạy Timer set xóa phần mềm để chạy ngưng chạy Timer Cờ tràn Timer 0(hoạt động tương tự TF1) Bit điều khiển chạy Timer (giống TR1) Cờ kiểu ngắt Khi cạnh xuống xuất INT1 IE1 xóa phần mềm phần cứng CPU đònh hướng đến thủ tục phục vụ ngắt Cờ kiểu ngắt set xóa phấn mềm cạnh kích hoạt ngắt TCON.1 IE0 89H Cờ cạnh ngắt TCON IT0 88H Cờ kiểu ngắt c Các nguồn xung nhòp cho timer (clock sources): - Có hai nguồn xung clock đếm đònh bên đếm kiện bên Bit C/T TMOD cho phé chọpn Timer khởi động On Chip Oscillator Timer Clock ÷12 Crystal T0 or T1 qSự C/T = Up (internal Timing ) = Down (Event Counting ) bấm bên (Interval Timing): - Nếu bit C/T = hoạt động Timer liên tục chọn vào Timer ghi từ dao động Chip Một chia 12 thêm vào để giảm tần số clock đến giá trò phù hợp với ứng dụng Các ghi TLx THx tăng tốc độ 1/12 lần tần số dao động Chip Nếu dùng thạch anh 12MHz đưa đến tốc độ clock 1MHz - Các tràn Timer sinh sau số cố đònh xung clock, phụ thuộc vào giá trò khởi tạo LOAD vào ghi THx TLx qSự đếm kiện (Event Counting) : SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 84 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành - Nếu bit C/T = Timer ghi từ nguồn bên nhiều ứng dụng, nguồn bên cung cấp đònh với xung xảy kiện Sự đònh đếm kiện Con số kiện xác đònh phần mềm việc đọc ghi Timer TLx/THx, giá trò 16 bit tăng lên cho kiện - Nguồn xung clock bên đưa vào chân P3.4 ngõ nhập xung clock Timer (T0) P3.5 ngõ nhập xung clock Timer (T1) - Trong ứng dụng đếm ghi Timer tăng đáp ứng chuyển trạng thái từ sang ngõ nhập Tx Ngõ nhập bên thử suốt S5P2 chu kỳ máy: Do ngõ nhập đưa tới mức cao chu kỳ mức thấp chu kỳ đếm tăng lên Giá trò xuất ghi Timer suốt S5P1 chu kỳ theo sau chuyển đổi Bởi chiếm chu kỳ máy (2µs) để nhận chuyển đổi từ sang 0, nên tần số bên lớn 500KHz dao động thạch anh 12 MHz 3.2.8 Hoạt động port nối tiếp 8951 có port nối tiếp chip hoạt động nhiều chế độ dãy tần số rộng Chức chủ yếu thực chuyển đổi song song sang nối tiếp với liệu xuất chuyển đổi nối tiếp sang song song với liệu nhập Port nối tiếp cho hoạt động song công (full duplex: thu phát đồng thời) đệm thu (receiver buffering) cho phép ký tự thu giữ ký tự thứ hai nhận Nếu CPU đọc ký tự thứ trước ký tự thứ hai thu đầy đủ liệu không bò Hai ghi chức đặc biệt cho phép phần mềm truy xuất đến port nối tiếp là: SBUF SCON Bộ đệm port nối tiếp (SBUF) điạ 99H nhận liệu để thu phát Thanh ghi điều khiển port nối tiếp (SCON) điạ 98H ghi có đòa bit chứa bit trạng thái bit điều khiển Các bit điều khiển đặt chế độ hoạt động cho port nối tiếp, bit trạng thái báo cáo kết thúc việc phát thu ký tự Các bit trạng thái kiểm tra phần mềm lập trình để tạo ngắt Các ghi chế độ hoạt động port nối tiếp: a Thanh ghi điều khiển port nối tiếp: Chế độ hoạt động port nối tiếp đặt cách ghi vào ghi chế độ port nối tiếp (SCON) đòa 98H Sau tóm tắt ghi SCON chế độ port nối tiếp: SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 85 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành Bit SCON.7 SCON.6 SCON.5 Ký hiệu SM0 SM1 SM3 Đòa 9FH 9EH 9DH SCON.4 SCON.3 REN TB8 9CH 9BH SCON.2 SCON.1 RB8 TI 9AH 99H SCON.0 RI 98H Mô tả Bit chế độ port nối tiếp Bit chế độ port nối tiếp Bit chế độ port nối tiếp Cho phép truyền thông xử lý chế độ 3, RI không bò tác động bit thứ thu Cho phép thu phải đặt lên để thu ký tự Bit phát, bit thứ phát chế độ 3, đặt xóa phần mềm B it thu, bit thứ thu Cờ ngắt phát Đặt lên kết thúc phát ký tự, xóa phần mềm Cờ ngắt thu Đặt lên kết thúc thu ký tự, xóa phần mềm Các chế độ port nối tiếp : SM0 0 1 SM1 1 Chế độ Mô tả Thanh ghi dòch UART bit UART bit UART bit Tốc độ baud Cố đònh (Fosc /12 ) Thay đổi ( đặt timer ) Cố đònh (Fosc /12 Fosc/64 ) Thay đổi ( đặt timer ) b Tốc độ baud port nối tiếp Như nói, tốc độ baud cố đònh chế độ Trong chế độ luôn tần số dao động chip chia cho 12 Thông thường thạch anh ấn đònh tần số dao động chip sử dụng nguồn xung nhòp khác Dao động ÷ 12 chip tốc độ baud SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 86 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành a Chế độ ÷ 64 Dao động chip ÷ 32 SMOD=1 Xung nhòp tốc độ baud SMOD=0 b Chế độ ÷ 32 SMOD=0 Dao động từ tràn timer ÷ 16 Xung nhòp tốc SMOD=1 độ baud c Chế độ 3.2.9 Tổ chức ngắt 8951 Vi Điều Khiển có nguồn ngắt:2 nguồn ngắt ngoài,2 ngắt timer ngắt Port nối tiếp, tất nguồn ngắt bò cấm sau reset hệ thống cho phép phần mềm a Cho Phép Không Cho Phép Ngắt : Mỗi nguồn ngắt cho phép không cho phép thông qua ghi chức đặc biệt có bit đòa hóa IE (Interrupt Enable) đòa 0A8H BIT IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 SYMBOL EA EA ET2 ES ET1 EX1 ET0 EX0 BIT ADDRESS AFH AEH ADH ACH ABH AAH A9H A8H DESCRIPTION (1:ENABLE,0:DISABLE) Global Enable/Disable Undefined Enable Timer Interrupt (8052) Enable Serial Port Interrupt Enable Timer Interrupt Enable External Interrupt Enable Timer Interrupt Enable External Interrupt b VécTơ Ngắt: Khi ngắt chấp nhận, giá trò đưa vào PC (Program Counter) gọi vector ngắt (Interrupt Vector) SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 87 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành INTERRUPT FLAG VECTOR ADDRESS System Reset External Timer External Timer Serial Port RST IE0 TF0 IE1 TF1 RI OR TI TF2 OR EXF2 0000 H 0003 H 000B H 0013 H 001B H 0023 H 002B H Timer 3.2.10 Đặc tính dao động XTAL1 đầu vào đầu tương ứng khuếch đại đảo dùng làm dao động nội on-chip Có thể dùng thạch anh hay cộng hưởng ceramic Để lái vi điều khiển từ nguồn xung clock bên ngoài, XTAL2 phải để trống XTAL1 nối đến nguồn lái Không có yêu cầu duty cycle phải ý đến thời gian tối đa tối thiểu mức điện áp cao mức điện áp thấp 3.2.11 Chế độ lười Trong chế độ lười, CPU rơi vào trạng thái “ngủ” tất thiết bò ngoại vi tích cực Chế độ tạo phần mềm Nội dung RAM on-chip giá trò SFR giữ nguyên Kết thúc chế độ lười cách kích hoạt ngắt reset phần cứng Chú kết thúc chế độ lười cách reset phần cứng thông thường vi điều khiển gọi lại chương trình mà vừa thoát, hai chu kỳ máy trước 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 trường hợp không cấm truy cập đến chân port, xảy trường hợp không mong muốn Để loại bỏ trường hợp này, lệnh sau lệnh gọi chế độ lười không nên lệnh ghi port hay ghi nhớ 3.2.12 Chế độ hạ nguồn SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 88 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành Trong chế độ hạ nguồn, dao động ngừng, lệnh gọi hạ nguồn lệnh cuối thực thi RAM on-chip SFR trì giá trò kết thúc chế độ hạ nguồn Kết thúc chế độ hạ nguồn cách : reset phần cứng Reset tạo lại giá trò cho SFR không thay đổi nội dung RAM on-chip Không nên reset trước Vcc phục hồi mức điện áp thông thường phải giữ đủ lâu để dao động phục hồi ổn đònh 3.2.13 Trạng thái số chân chế độ lười chế độ hạ nguồn 3.2.14 Các kiểu lệnh (Instruction Types): 8951 chia nhóm lệnh chính: a Các lệnh số học (Arithmetic Instrustion): ADD A, SUBB A, INC DEC b Các hoạt động logic (Logic Operation): Tất lệnh logic sử dụng ghi A toán hạng thực thi chu kỳ máy, A chu kỳ máy Những hoạt động logic thực byte vò trí nhớ liệu nội mà không qua ghi A Các hoạt động logic tóm tắt sau: ANL ORL XRL CLR A : (A) CLR C : (C) CLR Bit : (Bit) RL : Quay vòng ghi A qua trái bit A SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 89 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành (An + 1) (An); n = 06 (A0) (A7) RLC A : Quay vòng ghi A qua trái bit có cờ Carry (An + 1) (An); n = 06 (C) (A7) (A0) (C) RR A : Quay vòng ghi A qua phải bit (An + 1) (An); n = 06 (A0) (A7) RRC A : Quay vòng ghi A qua phải bit có cờ Carry (An + 1) (An); n = 06 (C) (A7) (A0) (C) SWAP A (A3A0)(A7A4) : Đổi chổ bit thấp bit cao A cho c Các lệnh rẽ nhánh: Có nhiều lệnh để điều khiển lên chương trình bao gồm việc gọi trả lại từ chương trình chia nhánh có điều kiện hay điều kiện Tất lệnh rẽ nhánh không ảnh hưởng đến cờ Ta đònh nhản cần nhảy tới mà không cần rõ đòa chỉ, trình biên dòch đặt đòa nơi cần nhảy tới vào lệnh đưa Sau tóm tắt hoạt động lệnh nhảy JC rel : Nhảy đến “rel” cờ Carry C = JNC rel : Nhảy đến “rel” cờ Carry C = JB : Nhảy đến “rel” (bit) = bit, rel SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 90 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành JNB bit, rel : Nhảy đến “rel” (bit) = JBC bit, rel : Nhảy đến “rel” bit = xóa bit ACALL addr11: Lệnh gọi tuyệt đối page 2K (PC) (PC) + (SP) (SP) + ((SP)) (PC7PC0) (SP) (SP) + ((SP)) (PC15PC8) (PC10PC0) page Address LCALL addr16: Lệnh gọi dài chương trình 64K (PC) (PC) + (SP) (SP) + ((SP)) (PC7PC0) (SP) (SP) + ((SP)) (PC15PC8) (PC) Addr15Addr0 RET : Kết thúc chương trình trở chương trình (PC15PC8) (SP) (SP) (SP) - (PC7PC0) ((SP)) (SP) (SP) -1 RETI : Kết thúc thủ tục phục vụ ngắt quay chương trình hoạt động tương tự RET AJMP Addr11 : Nhảy tuyệt đối không điều kiện 2K (PC) (PC) + (PC10PC0) page Address LJMP Addr16 : Nhảy dài không điều kiện 64K Hoạt động tương tự lệnh LCALL SJMP rel :Nhảy ngắn không điều kiện (-128127) byte (PC) (PC) + SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 91 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành (PC) (PC) + byte JMP @ A + DPTR:Nhảy không điều kiện đến đòa (A) + (DPTR) JZ rel (PC) (A) + (DPTR) : Nhảy đến A = Thực hành lệnh kế A (PC) (PC) + (A) = (PC) (PC) + byte JNZ rel : Nhảy đến A Thực hành lệnh kế A = (PC) (PC) + (A) < > (PC) (PC) + byte CJNE A, direct, rel : So sánh nhảy đến A direct (PC) (PC) + (A) < > (direct) (PC) (PC) + Relative Address (A) < (direct) C = (A) > (direct) C = (A) = (direct) Thực hành lệnh CJNE A, # data, rel : Tương tự lệnh CJNE A, direct, rel CJNE Rn, # data, rel : Tương tự lệnh CJNE A, direct, rel CJNE @ Ri, # data, rel : Tương tự lệnh CJNE A, direct, rel DJNE Rn, rel : Giảm Rn nhảy Rn (PC) (PC) + (Rn) (Rn) -1 (Rn) < > (PC) (PC) + byte DJNZ direct, rel : Tương tự lệnh DJNZ Rn, rel d Các lệnh dòch chuyển liệu: Các lệnh dòch chuyển liệu vùng nhớ nội thực thi chu kỳ máy Mẫu lệnh MOV , cho phép di chuyển liệu vùng nhớ RAM nội vùng nhớ ghi chức đặc biệt mà không thông qua ghi A SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 92 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành Vùng Ngăn xếp 8951 chứa 128 byte RAM nội, trỏ Ngăn xếp SP tăng đòa 7FH byte PUSH vào byte POP rõ Các lệnh dòch chuyển nhớ nội nhớ ngoại dùng đònh vò gián tiếp Đòa gián tiếp dùng đòa byte (@ Ri) đòa byte (@ DPTR) Tất lệnh dòch chuyển hoạt động toàn nhớ thực thi chu kỳ máy dùng ghi A làm toán hạng DESTINATION Việc đọc ghi RAM (RD WR) tích cực suốt trình thực thi lệnh MOVX, bình thường RD WR không tích cực (mức 1) Tất lệnh dòch chuyển không ảnh hưởng đến cờ Hoạt động lệnh tóm tắt sau: MOV A,Rn MOV A, direct : (A) (Rn) : (A) (direct) MOV A, @ Ri : (A) ((Ri)) MOV A, # data : (A) # data MOV Rn, A : (Rn) (A) MOV Rn, direct : (Rn) (direct) MOV Rn, # data : (Rn) # data MOV direct, A : (direct) (A) MOV direct, Rn : (direct) (Rn) MOV direct, direct : (direct) (direct) MOV direct, @ Ri : (direct) ((Ri)) MOV direct, # data : (direct) data MOV @ Ri, A : ((Ri)) (A) MOV @ Ri, direct : ((Ri)) (direct) MOV @ Ri, # data : ((Ri)) # data MOV DPTR, # data16 : (DPTR) # data16 MOV A, @ A + DPTR : (A) (A) + (DPTR) MOV @ A + PC MOVX : (PC) (PC) + (A) (A) + (PC) A, @ Ri : (A) ((Ri)) SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 93 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành MOVX MOVX A, @ DPTR : (A) ((DPTR)) @ Ri, A : ((Ri)) (A) MOVX @ DPTR, A : ((DPTR)) (A) PUSH direct : Cất liệu vào Ngăn xếp (SP) (SP) + (SP) (Drirect) POP direct : Lấy từ Ngăn xếp direct (direct) ((SP)) (SP) (SP) - XCH A, Rn : Đổi chổ nội dung A với Rn (A) (Rn) XCH A, direct : (A) (direct) XCH A, @ Ri : (A) ((Ri)) XCHD A, @ Ri : Đổi chổ bit thấp (A) với ((Ri)) (A3A0) ((Ri3Ri0)) e Các lệnh luận lý (Boolean Instruction): 8951 chứa xử lý luận lý đầy đủ cho hoạt động bit đơn, điểm mạnh họ vi điều khiển MSC-51 mà họ vi điều khiển khác RAM nội chứa 128 bit đơn vò vùng nhớ ghi chức đặc biệt cấp lên đến 128 đơn vò khác Tất đường Port bit đònh vò, đường xử lý Port đơn vò riêng biệt Cách truy xuất bit không lệnh rẽ nhánh không, mà danh mục đầy đủ lệnh MOVE, SET, CLEAR, COMPLEMENT, OR, AND Toàn truy xuất bit dùng đònh vò trực tiếp với đòa từ 00H - 7FH 128 vùng nhớ thấp 80H - FFH vùng ghi chức đặc biệt Bit Carry C ghi PSW\ từ trạng thái chương trình dùng tích lũy đơn xử lý luận lý Bit Carry bit đònh vò có đòa trực tiếp nằm PSW Hai lệnh CLR C CLR CY có tác dụng xóa bit cờ Carry lệnh byte lệnh sau byte Hoạt động lệnh luận lý tóm tắt sau: SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 94 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành CLR C : Xóa cờ Carry xuống Có ảnh hưởng cờ Carry CLR BIT : Xóa bit xuống Không ảnh hưởng cờ Carry SET C : Set cờ Carry lên Có ảnh hưởng cờ Carry SET BIT : Set bit lên 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 SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 95 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành ANL C, BIT : (C) (C) AND (BIT) : Có ảnh hưởng cờ Carry ANL C, /BIT : (C) (C) AND NOT (BIT):Không ảnh hưởng cờ Carry ORL C, BIT : (C) (C) OR (BIT) : Tác động cờ Carry ORL C, /BIT : (C) (C) OR NOT (BIT) : Tác động cờ Carry MOV C, BIT : (C) (BIT) : Cờ Carry bò tác động MOV BIT, C : (BIT) (C) : Không ảnh hưởng cờ Carry f Các lệnh xen vào (Miscellamous Intstruction): NOP : Không hoạt động cả, tốn byte chu kỳ máy Ta dùng để delay khoảng thời gian nhỏ SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 96 [...]... vòng thanh ghi A qua phải 1 bit có cờ Carry (An + 1) (An); n = 06 (C) (A7) (A0) (C) SWAP A (A3A0)(A7A4) : Đổi chổ 4 bit thấp và 4 bit cao của A cho nhau c Các lệnh rẽ nhánh: Có nhiều lệnh để điều khiển lên chương trình bao gồm vi c gọi hoặc trả lại từ chương trình con hoặc chia nhánh có điều kiện hay không có điều kiện Tất cả các lệnh rẽ nhánh đều không ảnh hưởng đến cờ Ta có thể đònh nhản cần nhảy tới... A, direct : (A) (direct) XCH A, @ Ri : (A) ((Ri)) XCHD A, @ Ri : Đổi chổ 4 bit thấp của (A) với ((Ri)) (A3A0) ((Ri3Ri0)) e Các lệnh luận lý (Boolean Instruction): 8951 chứa một bộ xử lý luận lý đầy đủ cho các hoạt động bit đơn, đây là một điểm mạnh của họ vi điều khiển MSC-51 mà các họ vi điều khiển khác không có RAM nội chứa 128 bit đơn vò và các vùng nhớ các thanh ghi chức năng đặc biệt cấp lên đến... Trung Dũng trang 86 Luận Văn Tốt Nghiệp GVHD : T h a à y Nguyễn Thiện Thành a Chế độ 0 ÷ 64 Dao động trên chip ÷ 32 SMOD=1 Xung nhòp tốc độ baud SMOD=0 b Chế độ 2 ÷ 32 SMOD=0 Dao động từ tràn timer ÷ 16 Xung nhòp tốc SMOD=1 độ baud c Chế độ 1 và 3 3.2.9 Tổ chức ngắt trong 8951 Vi Điều Khiển có 5 nguồn ngắt:2 nguồn ngắt ngoài,2 ngắt timer và 1 ngắt Port nối tiếp, tất cả các nguồn ngắt bò cấm sau khi... External 1 Timer 1 Serial Port RST IE0 TF0 IE1 TF1 RI OR TI TF2 OR EXF2 0000 H 00 03 H 000B H 00 13 H 001B H 00 23 H 002B H Timer 2 3. 2.10 Đặc tính bộ dao động 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... 0 0 1 1 M0 0 1 0 1 MODE 0 1 2 3 DESCRIPTION Mode Timer 13 bit (mode 8048) Mode Timer 16 bit Mode tự động nạp 8 bit Mode Timer tách ra : Timer 0 : TL0 là Timer 8 bit được điều khiển bởi các bit của Timer 0 TH0 tương tự nhưng được điều khiển bởi các bit của mode Timer 1 Timer 1 : Được ngừng lại - TMOD không có bit đònh vò, nó thường được LOAD một lần bởi phần mềm ở đầu chương trình để khởi động mode... SBUF và SCON Bộ đệm port nối tiếp (SBUF) ở điạ chỉ 99H nhận dữ liệu để thu hoặc phát Thanh ghi điều khiển port nối tiếp (SCON) ở điạ chỉ 98H là thanh ghi có đòa chỉ bit chứa các bit trạng thái và các bit điều khiển Các bit điều khiển đặt chế độ hoạt động cho port nối tiếp, và các bit trạng thái báo cáo kết thúc vi c phát hoặc thu ký tự Các bit trạng thái có thể được kiểm tra bằng phần mềm hoặc có thể... Memory) : - Bộ nhớ chương trình bên ngoài là bộ nhớ ROM được cho phép của tín hiệu PSEN\ Sự kết nối phần cứng của bộ nhớ EPROM như sau: Port 0 EA 8951 D0 ÷ D7 74HC3 73 A0 ÷ A7 ALE O D EPROM Port 2 G A8 ÷ A15 PSEN OE - Trong một chu kỳ máy tiêu biểu, tín hiệu ALE tích 2 lần Lần thứ nhất cho phép 74HC3 73 mở cổng chốt đòa chỉ byte thấp, khi ALE xuống 0 thì byte thấp và byte cao của bộ đếm chương trình đều... phạm vi giới hạn 8K: 0000H÷1FFFH, 2000H÷3FFFH, - Một cách cụ thể, IC giải mã 74HC 138 được dùng với những ngõ ra của nó được nối với những ngõ vào chọn Chip CS (Chip Select) trên những IC nhớ EPROM, RAM, … Hình sau đây cho phép kết nối nhiều EPROM và RAM • Sự đè lên nhau của các vùng nhớ dữ liệu ngoài: - Vì bộ nhớ chương trình là ROM, nên nảy sinh một vấn đề bất tiện khi phát triển phần mềm cho vi điều. .. chứa nhiều bit điều khiển Thanh ghi PCON được tóm tắt như sau: √ Bit 7 (SMOD) : Bit có tốc độ Baud ở mode 1, 2, 3 ở Port nối tiếp khi set √ Bit 6, 5, 4 : Không có đòa chỉ √ Bit 3 (GF1) : Bit cờ đa năng 1 √ Bit 2 (GF0) : Bit cờ đa năng 2 √ Bit 1 (PD) : Set để khởi động mode Power Down và thoát để reset √ Bit 0 (IDL) : Set để khởi động mode Idle và thoát khi ngắt mạch hoặc reset Các bit điều khiển Power... thấp 3. 2.11 Chế độ 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 ... 3E 3D 3C 3B 3A 39 38 37 2F 27 1F 17 0F 07 36 2E 26 1E 16 0E 06 35 2D 25 1D 15 0D 05 34 33 2C 2B 24 23 1C 1B 14 13 0C 0B 04 03 Bank 32 2A 22 1A 12 0A 02 31 29 21 19 11 09 01 30 28 20 18 10 08 00... F3 F F1 F0 Luận Văn Tốt Nghiệ p GVHD n Thiện Thành FF RAM đa dụng : T h a y Nguyễ F0 E7 E6 E5 E4 E E E D7 D6 D5 D4 D E0 7F 7E 7D 7C 7B 7A 79 78 47 46 45 44 43 42 41 40 3F 3E 3D 3C 3B 3A 39 38 ... đơn, AT89C51 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 Luận Văn Tốt Nghiệp GVHD : T h a y Nguyễn Thiện Thành Các đặc điểm chủ yếu AT89C51

Ngày đăng: 28/11/2015, 06:27

Tài liệu cùng người dùng

Tài liệu liên quan