1. Trang chủ
  2. » Giáo Dục - Đào Tạo

CHƯƠNG 1 VI điều KHIỂN

31 129 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 31
Dung lượng 345 KB

Nội dung

Chương I : Vi Điều Khiển 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 TIMER ON CHIP 128 Bytes 128 Bytes 128 Bytes 128 bytes 256 Bytes 256 Bytes 256 Bytes 256 Bytes II 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-51TM 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 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 Các đặc điểm chủ yếu AT89C51 : TM  Tương thích hoàn toàn với họ MCS-51 Intel  Bộ nhớ chương trình 4K Byte thuộc loại Flash Memory  64 K không gian nhớ chương trình mở rộng  64 K không gian nhớ liệu mở rộng  Độ bền : 1000 lần ghi/xóa  Tần số hoạt động : Hz đến 24 MHz  chế độ khóa nhơ ù chương trình  128 x 8-Bit RAM nội  32 đường I/O lập trình (4 port)  timer/counter 16-bit  nguồn ngắt  Đường truyền nhận nối tiếp lập trình  Chế độ hạ nguồn chế độ lười tiêu tốn công suất thấp  Xử lí Boolean (hoạt động bit đơn)  210 vò trí nhớ đònh vò bit  µs cho hoạt động nhân chia Cấu tạo chân 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 Sơ đồ khối 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 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 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 TÊN RXD TXD INT0 INT1 T0 T1 WR RD ĐỊA CHỈ BIT B0H B1H B2H B3H B4H B5H B6H B7H CHỨC NĂNG THAY THẾ 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 Ngõ vào từ bên cho timer/counter Xung ghi nhớ liệu 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 VCC, 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 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á tưng bit ,các bank ghi ghi chức đặc biệt FFFF FF 00 On - Chip Memory 0000 FFFF CODE Memory DATA Memory Enable via PSEN Enable via RD & WR 0000 External Memory Bảng tóm tắt vùng nhớ 8951 Đòa byte Đòa byte Đòa bit 7F Đòa bit FF F0 F7 F6 F5 F4 F F2 F1 F0 B RAM đa dụng E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW 30 2F 2E 2D 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 18 17 10 0F 08 07 00 B8 7F 77 6F 67 5F 57 4F 47 3F 37 2F 27 1F 17 0F 07 7E 76 6E 66 5E 56 4E 46 3E 36 2E 26 1E 16 0E 06 7D 75 6D 65 5D 55 4D 45 3D 35 2D 25 1D 15 0D 05 7C 7B 7A 74 73 72 6C 6B 6A 64 63 62 5C 5B 5A 54 53 52 4C 4B 4A 44 43 42 3C 3B 3A 34 33 32 2C 2B 2A 24 23 22 1C 1B 1A 14 13 12 0C 0B 0A 04 03 02 Bank 79 71 69 61 59 51 49 41 39 31 29 21 19 11 09 01 Bank Bank Bank ghi (mặc đònh cho R0 -R7) RAM 78 70 68 60 58 50 48 40 38 30 28 20 18 10 08 00 - - BC BB BA B9 B8 IP B0 B7 B6 B5 B4 B3 B2 B1 B0 P.3 A8 AF AC AB AA A9 A8 IE A0 A7 A6 A5 A4 A3 A2 A1 A0 P2 99 không đòa hoá bit 98 9F 9E 9D 9C 9B9A 99 98 SBUF SCON 90 97 96 95 94 93 92 91 90 P1 8D 8C 8B 8A 89 TH1 TH0 TL1 TL0 TMOD không đòa hoá bit không đòa hoá bit không đòa hoá bit không đòa hoá bit không đòa hoá bit 88 8F 8E 8D 8C 8B8A 89 88 87 không đòa hoá bit TCON PCON 83 không đòa hoá bit DPH 82 không đòa hoá bit DPL 81 không đòa hoá bit SP 88 87 86 85 84 83 82 81 80 P0 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 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 ;đọc byte ORL A,#10000000 ;set bit 67H MOV 2CH,A ;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 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 có giá trò ngẫu nhiên ghi giá triï có tác động không xác đònh trước • Thanh ghi trạng thái chương trình (PSW: Program Status Word): Từ trạng thái chương trình đòa D0H tóm tắt sau: Từ trạng thái chương trình đòa D0H tóm tắt sau: BIT PSW.7 PSW.6 PSW.5 PSW4 PSW.3 SYMBOL CY AC F0 RS1 RS0 ADDRESS D7H D6H D5H D4H D3H PSW.2 PSW.1 PSW.0 OV P D2H D1H DOH DESCRIPTION Cary Flag Auxiliary Cary Flag Flag Register Bank Select Register Bank Select 00=Bank 0; address 00H÷07H 01=Bank 1; address 08H÷0FH 10=Bank 2; address 10H÷17H 11=Bank 3; address 18H÷1FH Overlow Flag Reserved Even Parity Flag Chức bit trạng thái chương trình • Cờ Carry CY (Carry Flag): - Cờ nhớ có tác dụng kép Thông thường dùng cho lệnh toán học: C=1 phép toán cộng có tràn phép trừ có mượn ngược lại C= phép toán cộng không tràn phép trừ mượn • Cờ Carry phụ AC (Auxiliary Carry Flag): - Khi cộng giá trò BCD (Binary Code Decimal), cờ nhớ phụ AC set kết bit thấp nằm phạm vi điều khiển 0AH÷ 0FH Ngược lại AC= • Cờ (Flag 0): Cờ (F0) bit cờ đa dụng dùng cho ứng dụng người dùng • Những bit chọn bank ghi truy xuất: - RS1 RS0 đònh dãy ghi tích cực Chúng xóa sau reset hệ thống thay đổi phần mềm cần thiết - Tùy theo RS1, RS0 = 00, 01, 10, 11 chọn Bank tích cực tương ứng Bank 0, Bank1, Bank2, Bank3 RS1 0 1 RS0 1 BANK • Cờ tràn OV (Over Flag) : - Cờ tràn set sau hoạt động cộng trừ có tràn toán học Khi số có dấu cộng trừ với nhau, phần mềm kiểm tra bit để xác đònh xem kết có nằm tầm xác đònh không Khi số dấu cộng bit OV bỏ qua Các kết lớn +127 nhỏ –128 bit OV = • Bit Parity (P): - Bit tự động set hay Clear chu kỳ máy để lập Parity chẳn với ghi A Sự đếm bit ghi A cộng với bit Parity luôn chẵn Ví dụ A chứa 10101101B bit P set lên để tổng số bit A P tạo thành số chẵn - Bit Parity thường dùng kết hợp với thủ tục Port nối tiếp để tạo bit Parity trước phát kiểm tra bit Parity sau thu • Thanh ghi B: - Thanh ghi B đòa F0H dùng với ghi A cho phép toán nhân chia Lệnh MUL AB ⇐ nhận giá trò không dấu bit hai ghi A B, trả kết 16 bit A (byte cao) B(byte thấp) Lệnh DIV AB ⇐ lấy A chia B, kết nguyên đặt vào A, số dư đặt vào B - Thanh ghi B dùng ghi đệm trung gian đa mục đích Nó bit đònh vò thông qua đòa từ F0H÷F7H • Con trỏ Ngăn xếp SP (Stack Pointer) : - Con trỏ ngăn xếp ghi bit đòa 81H Nó chứa đòa byte liệu hành đỉnh ngăn xếp Các lệnh ngăn xếp bao gồm lệnh cất liệu vào ngăn xếp (PUSH) lấy liệu khỏi Thanh ghi Đế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) PCON (CMOS) Nội dung 0000H 00H 00H 00H 07H 0000H FFH XXX0 0000 B 0X0X 0000 B 00H 00H 00H 0XXX XXXXH 0XXX 0000 B -Thanh ghi quan trọng ghi đếm chương trình PC reset tai đò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 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 TCON TMOD TL0 TL1 TH0 TH1 Purpose Control Mode Timer low-byte Timer low-byte Timer high-byte Timer high-byte Address 88H 89H 8AH 8BH 8CH 8DH Bit-Addressable YES NO NO NO NO 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 Timer C/T M1 M0 GATE C/T M1 M0 1 0 0 Description Khi GATE = 1, Timer làm việc INT1=1 Bit cho đếm kiện hay ghi C/T = : Đếm kiện C/T = : Ghi đặn 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 TCON.6 TR1 8EH TCON.5 TCON.4 TCON.3 TF0 TR0 IE1 8DH 8CH 8BH TCON.2 IT1 8AH TCON.1 TCON IE0 IT0 89H 88H 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 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 Cờ cạnh ngắt 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ép chọn Timer khởi động On Chip Oscillator Crystal ÷12 T0 or T1 pin C/T Timer Clock = Up (internal Timing) = Down (Event Counting) Sự 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  Sự đếm kiện (Event Counting) : - 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 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ó điạ 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 : Bit Đòa Mô tả SCON.7 SCON.6 SCON.5 Ký hiệu SM0 SM1 SM3 9FH 9EH 9DH SCON.4 SCON.3 REN TB8 9CH 9BH SCON.2 SCON.1 RB8 TI 9AH 99H SCON.0 RI 98H -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 -Bit 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 SM1 Chế độ Mô tả Tốc độ baud 0 1 1 Thanh ghi dòch UART bit UART bit UART bit 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 chip ÷ 12 tốc độ baud a Chế độ ÷ 64 Dao động chip ÷ 32 SMOD = Xung nhòp tốc SMOD=1độ baud b Chế độ ÷ 32 Dao động từ tràn timer SMOD=0 Xung nhòp tốc ÷ 16 SMOD=1 độ baud c Chế độ Tổ chức ngắt 8051 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 SYMBOL BIT ADDRESS IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 EA EA ET2 ES ET1 EX1 ET0 EX0 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) INTERRUPT FLAG VECTOR ADDRESS System Reset External Timer External Timer Serial Port Timer 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 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 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ớ 12 Chế độ hạ nguồn 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 13 Trạng thái số chân chế độ lười chế độ hạ nguồn 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, ADD A, Rn : (A) (A) + (Rn) ADD A, direct : (A) ADD A, @ Ri : (A) ADD A, # data : (A) ADDC A, Rn ADDC A, direct ADDC A, @ Ri ADDC A, # data (A) + (direct) (A) + ((Ri)) (A) + # data : (A) (A) + (C) + (Rn) : (A) (A) + (C) + (direct) : (A) (A) + (C) + ((Ri)) : (A) (A) + (C) + # data SUBB A, SUBB A, Rn : (A) (A) - (C) - (Rn) SUBB A, direct : (A) (A) - (C) - (direct) SUBB A, @ Ri : (A) (A) - (C) - ((Ri)) SUBB A, # data : (A) (A) - (C) - # data INC INC A : (A) (A) + INC direct : (direct) (direct) + INC Ri : ((Ri)) ((Ri)) + INC Rn : (Rn) (Rn) + INC DPTR : (DPTR) (DPTR) + DEC DEC A : (A) (A) - DEC direct : (direct) (direct) - DEC @Ri : ((Ri)) ((Ri)) - DEC Rn : (Rn) (Rn) - MULL AB : (A) LOW [(A) x (B)];có ảnh hưởng cờ OV : (B) HIGH [(A) x (B)];cờ Cary xóa DIV AB : (A) Integer Result of [(A)/(B)]; cờ OV : (B) Remainder of [(A)/(B)]; cờ Carry xóa DA A :Điều chỉnh ghi A thành số BCD phép cộng BCD (thường DA A kèm với ADD, ADDC)  Nếu [(A3-A0)>9] [(AC)=1] (A3A0) (A3A0) +  Nếu [(A7-A4)>9] [(C)=1] (A7A4) (A7A4) + 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 ANL A, Rn : (A) (A) AND (Rn) ANL A, direct : (A) (A) AND (direct) ANL A,@ Ri : (A) (A) AND ((Ri)) ANL A, # data : (A) (A) AND (# data) ANL direct, A : (direct) (direct) AND (A) ANL direct, # data : (direct) (direct) AND # data ORL ORL A, Rn : (A) (A) OR (Rn) ORL A, direct : (A) (A) OR (direct) ORL A,@ Ri : (A) (A) OR ((Ri)) ORL A, # data : (A) (A) OR # data ORL direct, A : (direct) (direct) OR (A) ORL direct, # data : (direct) (direct) OR # data XRL XRL A, Rn : (A) (A) (Rn) XRL A, direct : (A) (A) (direct) XRL A,@ Ri : (A) (A) ((Ri)) XRL A, # data : (A) (A) # data XRL direct, A : (direct) (direct) (A) XRL direct, # data : (direct) (direct) # data CLR A : (A) CLR C : (C) CLR Bit : (Bit) RL A : Quay vòng ghi A qua trái bit (An + 1) (An); n = 06 (A0) (A7) RLC A : Quay vòng ghi A qua trái bit có cờ Carry RR A RRC A Carry (An + 1) (An); n = 06 (C) (A7) (A0) (C) : Quay vòng ghi A qua phải bit (An + 1) (An); n = 06 (A0) (A7) : Quay vòng ghi A qua phải bit có cờ SWAPA (A3A0)(A7A4) (An + 1) (An); n = 06 (C) (A7) (A0) (C) : Đổ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 bit, rel : Nhảy đến “rel” (bit) = 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) + (PC) (PC) + byte JMP @ A + DPTR:Nhảy không điều kiện đến đòa (A) + (DPTR) (PC) (A) + (DPTR) JZ rel : 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 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 : (A) (Rn) MOV A, direct : (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 : (PC) (PC) + (A) (A) + (PC) MOVX A, @ Ri : (A) ((Ri)) MOVX A, @ DPTR : (A) ((DPTR)) MOVX @ 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: 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 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 MOV C, BIT MOV BIT, C : (C) (C) OR NOT (BIT) : Tác động cờ Carry : (C) (BIT) : Cờ Carry bò tác động : (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ỏ [...]... (SP) + 1 ((SP)) (PC7PC0) (SP) (SP) + 1 ((SP)) (PC15PC8) (PC) Addr15Addr0 RET : Kết thúc chương trình con trở về chương trình chính (PC15PC8) (SP) (SP) (SP) - 1 (PC7PC0) ((SP)) (SP) (SP) -1 RETI : Kết thúc thủ tục phục vụ ngắt quay về chương trình chính hoạt động tương tự như RET AJMP Addr 11 : Nhảy tuyệt đối không điều kiện trong 2K (PC) (PC) + 2 (PC10PC0) page Address LJMP Addr16 : Nhảy dài không điều. .. ghi điều khiển chế độ timer TMOD (timer mode register) : - Thanh ghi mode gồm hai nhóm 4 bit là: 4 bit thấp đặt mode hoạt động cho Timer 0 và 4 bit cao đặt mode hoạt động cho Timer 1 8 bit của thanh ghi TMOD được tóm tắt như sau: Bit 7 Name GATE Timer 1 6 C/T 1 5 4 3 2 1 0 M1 M0 GATE C/T M1 M0 1 1 0 0 0 0 Description Khi GATE = 1, Timer chỉ làm vi c khi INT1 =1 Bit cho đếm sự kiện hay ghi giờ C/T = 1. .. mode của Timer 1 Bit chọn mode của Timer 1 Bit cổng của Timer 0 Bit chọn Counter/Timer của Timer 0 Bit chọn mode của Timer 0 Bit chọn mode của Timer 0 Hai bit M0 và M1 của TMOD để chọn mode cho Timer 0 hoặc Timer 1: M1 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... External 1 Timer 1 Serial Port Timer 2 RST IE0 TF0 IE1 TF1 RI OR TI TF2 OR EXF2 0000 H 0003 H 000B H 0 013 H 001B H 0023 H 002B H 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... “rel” nếu cờ Carry C = 1 JNC rel : Nhảy đến “rel” nếu cờ Carry C = 0 JB bit, rel : Nhảy đến “rel” nếu (bit) = 1 JNB bit, rel : Nhảy đến “rel” nếu (bit) = 0 JBC bit, rel : Nhảy đến “rel” nếu bit = 1 và xóa bit ACALL addr 11: Lệnh gọi tuyệt đối trong page 2K (PC) (PC) + 2 (SP) (SP) + 1 ((SP)) (PC7PC0) (SP) (SP) + 1 ((SP)) (PC15PC8) (PC10PC0) page Address LCALL addr16: Lệnh gọi dài chương trình con trong... lí đến thủ tục phục vụ ngắt ISR Bit điều khiển chạy Timer 1 được set hoặc xóa bởi phần mềm để chạy hoặc 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 0 (giống TR1) Cờ kiểu ngắt 1 ngoài Khi cạnh xuống xuất hiện trên INT1 thì IE1 được xóa bởi phần mềm hoặc phần cứng khi CPU đònh hướng đến thủ tục phục vụ ngắt ngoài Cờ kiểu ngắt 1 ngoài được set hoặc xóa bằng phấn... Address Bus (A0 ÷ 15 ) Data Bus (D0 ÷ D7) PSEN\ 74HC138 D0 - D7 OE EPROM A0 ÷ A12 8K Bytes CS CS E E0 E1 0 1 2 3 4 5 6 7 OE D0 - D7 W RAM A0 ÷ A12 8K Bytes CS CS CS C B A RD\ WR\ CS Select other EPROM/RAM Address Decoding (Giải mã đòa chỉ) • 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 khiển Một nhược... của (A) với ((Ri)) (A3A0) ((Ri3Ri0)) e Các lệnh luận lý (Boolean Instruction): 89 51 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 12 8 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 12 8 đơn vò khác Tất cả các đường Port là bit đònh vò, mỗi đường có thể được xử lí... Dao động trên chip ÷ 12 tốc độ baud a Chế độ 0 ÷ 64 Dao động trên chip ÷ 32 SMOD = 0 Xung nhòp tốc SMOD =1 ộ baud b Chế độ 2 ÷ 32 Dao động từ tràn timer SMOD=0 Xung nhòp tốc ÷ 16 SMOD =1 độ baud c Chế độ 1 và 3 9 Tổ chức ngắt trong 80 51 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 reset hệ thống và cho phép bởi phần mềm a Cho... 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 Timer Sau đó sự đònh giờ có thể dừng lại, được khởi động lại như thế bởi sự truy xuất các thanh ghi chức năng đặc biệt của Timer khác b Thanh ghi điều khiển timer TCON (timer control register): - Thanh ghi điều khiển bao ... 25 1D 15 0D 05 7C 7B 7A 74 73 72 6C 6B 6A 64 63 62 5C 5B 5A 54 53 52 4C 4B 4A 44 43 42 3C 3B 3A 34 33 32 2C 2B 2A 24 23 22 1C 1B 1A 14 13 12 0C 0B 0A 04 03 02 Bank 79 71 69 61 59 51 49 41 39 31. .. D4 D3 D2 D1 D0 PSW 30 2F 2E 2D 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 18 17 10 0F 08 07 00 B8 7F 77 6F 67 5F 57 4F 47 3F 37 2F 27 1F 17 0F 07 7E 76 6E 66 5E 56 4E 46 3E 36 2E 26 1E 16 0E 06... Instruction): 89 51 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 12 8 bit đơn vò vùng nhớ ghi chức đặc biệt cấp lên đến 12 8 đơn

Ngày đăng: 20/11/2015, 00:09

w