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

TIỂU LUẬN bộ VI xử lý 8051 và điều KHIỂN 1 LED 7 đoạn đếm từ 0 đến 9

19 13 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

TRƯỜNG ĐẠI HỌC KHOA HỌC KHOA CÔNG NGHỆ THÔNG TIN ***** HỌ VÀ TÊN SINH VIÊN: HUỲNH VĂN NGỌC TUẤN MÃ SINH VIÊN: 19T1021294 ĐỀ TÀI TIỂU LUẬN BỘ VI XỬ LÝ 8051 VÀ ĐIỀU KHIỂN LED ĐOẠN ĐẾM TỪ ĐẾN KiẾN TRÚC MÁY TÍNH – TIN2013 GIẢNG VIÊN HƯỚNG DẪN: LÊ VĂN THANH VŨ HUỂ, THÁNG NĂM 2021 MỤC LỤC Trang PHẦN I: MỞ ĐẦU PHẦN II: NỘI DUNG Kiến trúc Vi điều khiển 8051………………….……………………….2 1.1 Tổ chức nhớ …………… ……………………………….….3 1.2 Bộ nhớ chương trình ….……………………………………… 1.3 Các ghi đặc biệt………………………………………….5 Tập lệnh 8051 chia thành nhóm…………….………… 2.1 2.2 2.3 2.4 Nhóm lệnh xử lý số học……….……………………………… Nhóm lệnh luân lý………………………………………………9 Nhóm lệnh chuyên liệu…………………………………… Nhóm lệnh chuyên điều khiển ……………………………… 10 Các chế độ đánh địa 8051…………………………………….10 Điều khiển led đoạn đếm từ đến 9………………….………… 11 PHẦN III: KẾT LUẬN 15 PHẦN I: MỞ ĐẦU Trong năm gần giới với phát triển mạnh mẽ nghành công nghệ chế tạo linh kiện bán dẫn vi mạch tổng hợp, hướng phát triển vi xử lý hình thành vi điều khiển Ngồi khối xử lý trung tâm, vi điều khiển bao gồm ngoại vi tích hợp sẵn để thực yêu cầu đặt Bên cạnh đó, vi điều khiển cịn cho phép lập trình điều khiển chúng cách phong phú đặc biệt chúng tiêu thụ công suất thấp Với ưu điểm trên, vi điều khiển sử dụng rộng rãi nhiều lĩnh vực khác Bằng cách áp dụng vi điều khiển trình sản xuất xử lý, vi điều khiển thực thể ưu so với thiết bị điều khiển thơng thường Vì lý trên, nhiều trường Đại học, vi xử lý thực trở thành môn học quan trọng, vi xử lý 8051 gần môn học sử dụng để trang bị cho kiến thức vi xử lý, từ mở rộng loại vi xử lý khác có cấu trúc phức tạp AVR, PIC, Việc tìm hiểu AVR đề tài lớn nên em chi vào nghiên cứu tập trung vào phần tìm hiểu lõi CPU AVR PHẦN II: NỘI DUNG Kiến trúc Vi điều khiển 8051 1.1 Tổ chức nhớ Các vi điều khiển thuộc họ 8051 tổ chức thành khơng gian chương trình liệu, hình hình mơ tả điều Kiến trúc vi xử lý bit 8051 cho phép truy nhập tính tốn nhanh khơng gian liệu nhờ việc phân chia không gian nhớ chương trình liệu Tuy nhiên nhớ truy nhập hệ thống 16 bit địa thực nhờ ghi trỏ Bộ nhớ chương trình (ROM, EPROM) nhớ đọc, mở rộng tối đa 64Kbyte Với họ vi điều khiển 89xx, nhớ chương trình tích hợp sẵn chip có kích thước nhỏ 4kByte Với vi điều khiển không tích hợp sẵn nhớ chương trình chip, buộc phải thiết kế nhớ chương trình bên ngồi Ví dụ sử dụng EPROM: 2764 (64Kbyte), chân PSEN phải mức tích cực (5V) Hình 1: Cấu trúc vi điều khiển 89C51 Bộ nhớ liệu (RAM) tồn độc lập so với nhớ chương trình Họ vi điều khiển 8051 có nhớ liệu tích hợp chip nhỏ 128byte mở rộng với nhớ liệu lên tới 64kByte Với vi điều khiển khơng tích hợp ROM chip có RAM chip 128byte Khi sử dụng RAM ngoài, CPU đọc ghi liệu nhờ tín hiệu chân RD WR Khi sử dụng nhớ chương trình nhớ liệu bên ngồi buộc phải kết hợp chân RD PSEN cổng logic AND để phân biệt tín hiệu truy xuất liệu ROM hay RAM ngồi 1.2 Bộ nhớ chương trình: Hình 2: Cấu trúc nhớ chương trình Hình 3: Địa ngắt nhớ chương trình Hình mơ tả cấu trúc nhớ chương trình Sau khởi động, CPU bắt đầu thực chương trình vị trí 0000H Hình mơ tả địa ngắt mặc định nhớ chương trình Mối xảy ngắt, trỏ CPU nhảy đến địa ngắt tương ứng thực thi chương trình Ví dụ ngắt ngồi có địa 0003H, xảy ngắt ngồi trỏ chương trình nhảy đến địa 0003H để thực thi chương trình Nếu chương trình ứng dụng khơng xử dụng đến ngắt ngồi địa 0003H dùng cho mục đích khác (sử dụng cho nhớ chương trình) Bộ nhớ liệu: Hình 4: Cấu trúc nhớ liệu Hình mơ tả cấu trúc nhớ liệu nhớ liệu họ vi điều khiển 8051 CPU dùng đến chân RD WR truy cập đến nhớ liệu ngồi Hình mơ tả cấu trúc nhớ liệu chip, chia thành khối 128 byte thấp, 128 byte cao 128 byte đặc biệt Hình 5: Cấu trúc nhớ Hình mô tả cấu trúc 128 byte thấp nhớ liệu họ vi điều khiển 8051 32 byte (00H-1FH) sử dụng cho ghi R0-R7 Hai bit ghi đặc biệt PSW lựa chọn ghi mà vi điều khiển dùng thực thi chương trình Hình 6: Cấu trúc 128 byte thấp nhớ liệu 8051 chứa 210 vị trí bit định địa 128 bit chứa byte địa từ 20H đến 2FH (16 byte x bit = 128 bit) phần lại chứa ghi đặc biệt Ngồi 8051 cịn có port xuất/nhập định địa bit, điều làm đơn giản việc giao tiếp phần mềm với thiết bị xuất/nhập đơn bit Hình 7: 128 byte cao nhớ liệu 1.3 Các ghi đặc biệt 8051 có 21 ghi chức đặc biệt SFR chiếm phần Ram nội từ địa 80H đến FFH Cần lưu ý tất 128 địa từ 80H đến FFH định nghĩa mà có 21 địa định nghĩa Hình mơ tả ghi đặc biệt vùng nhớ liệu 80H đến FFH giá trị chúng sau Reset Hình 8: Các ghi đặc biệt Thanh ghi chính: Thanh ghi tính tốn vi điều khiển 8051 ACC (Accumulator) Là ghi đặc biệt 8051 dùng để thực phép tốn CPU, thường kí hiệu A Thanh ghi phụ: Thanh ghi tính tốn phụ vi điều khiển 8051 B Thanh ghi B địa F0H dùng chung với chứa A phép toán nhân, chia Lệnh MUL AB nhân số bit không dấu chứa A B chứa kết 16 bit vào cặp ghi B, A (thanh chứa A cất byte thấp ghi B cất byte cao) Thanh ghi trạng thái chương trình (PSW): Thanh ghi trạng thái chương trình PSW (địa chỉ: D0H) ghi mơ tả tồn trạng thái chương trình hoạt động hệ thống Bảng Bảng mô tả ghi CY AC F0 RS1 RS0 OV - P Bảng 7: Thanh ghi trạng thái chương trình PSW Bit Ký Hiệu Địa Chỉ Mô tả Bit PSW.7 CY D7H Cờ nhớ (Carry Flag): Set có Bit nhớ từ Bit phép cộng có Bit mượn cho Bit phép trừ PSW.6 AC D6H Cờ nhớ phụ: Set phép cộng có Bit nhớ từ Bit sang Bit kết Bit thấp nằm khoảng 0AH->0FH PSW.5 FO D5H Cờ O: dành cho người sử dụng PSW.4 RS1 D4H Chọn dãy ghi (Bit 1) PSW.3 RS0 D3H Chọn dãy ghi (Bit 0) 00=Bank 0: Địa 00H->07H 01=Bank 1: Địa 08H->0FH 10=Bank 2: Địa 10H->17H 11=Bank 3: Địa 18H->1FH PSW.2 OV D2H Cờ tràn (Overflow Flag): Set phép tốn có dấu có kết > +127 < -128 PSW.1 - D1H Chưa dùng PSW.0 P D0H Cờ kiểm tra chẵn lẻ: Set Clear phần cứng sau chu kỳ lệnh, để có số chẵn số lẻ Bit chứa Bảng 8: Chi tiết bit ghi PSW Thanh ghi ngăn xếp (Stack Pointer): Con trỏ stack SP (stack pointer) ghi bit địa 81H SP chứa địa liệu đỉnh stack Các lệnh liên quan đến satck bao gồm lệnh cất liệu vào stack lệnh lấy liệu khỏi stack Việc cất vào stack làm tăng SP trước ghi liệu việc lấy liệu khỏi stack giảm SP Vùng stack 8051 giữ RAM nội giới hạn đến địa truy xuất kiểu định địa gián tiếp Các lệnh PUSH POP cất liệu vào stack lấy liệu từ stack, lệnh gọi chương trình (ACALL, LCALL) lệnh trở (RET, RETI) cất phục hồi nội dung đếm chương trình PC (Program counter) Con trỏ liệu DPTR: Con trỏ liệu DPTR (data pointer) dùng để truy xuất nhớ chương trình ngồi nhớ liệu ngồi DPTR ghi 16 bit có địa 82H (DPL, byte thấp) 83H (DPH, byte cao) Thanh ghi cổng P0-P3: Các port xuất/nhập 8051 bao gồm Port địa 80H, Port địa 90H, Port địa A0H Port địa B0H Tất port định địa bit nhằm cung cấp khả giao tiếp mạnh Thanh ghi đệm truyền thông nối tiếp (Serial Data Buffer): Bộ đệm truyền thông chia thành hai đệm, đệm truyền liệu đệm nhận liệu Khi liệu chuyển vào ghi SBUF, liệu chuyển vào đệm truyền liệu lưu giữ q trình truyền liệu qua truyền thông nối tiếp kết thúc Khi thực việc chuyển liệu từ SBUF ngoài, liệu lấy từ đệm nhận liệu truyền thông nối tiếp Thanh ghi định thời/bộ đếm: 8051 có đếm/định thời (counter/timer) 16 bit để định khoảng thời gian để đếm kiện Các cặp ghi (TH0, TL0) (TH1, TL1) ghi đếm thời gian Bộ định thời có địa 8AH (TL0, byte thấp) 8CH (TH0, byte cao) Bộ định thời có địa 8BH (TL1, byte thấp) 8DH (TH1, byte cao) Hoạt động định thời thiết lập ghi chế độ định thời TMOD (Timer Mode Register) địa 88H Chỉ có TCON định địa bit Các ghi điều khiển: Các ghi điều khiển đặc biệt IP, IE, TMOD, TCON, SCON PCON ghi điều khiển ghi nhận trạng thái hệ thống ngắt, đếm/định thời, truyền thông nối tiếp Chi tiết ghi mô tả sau Tập lệnh 8051 chia thành nhóm: 2.1 Nhóm lệnh xử lý số học DD 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 ADD 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 ADD A, Rn (1,1): Cộng ghi cờ nhớ vào A ADD 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 10 ADDC A, #data (2,1): Cộng liệu tức thời cờ nhớ vào A 2.2 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 RAM (1,1): AND nội dung ghi A với liệu gián tiếp 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 A 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 2.3 Nhóm lệnh chuyển liệu MOV A,Rn (1,1): Chuyển nội dung ghi Rn vào ghi A MOV A,data (2,1): Chuyển liệu trực tiếp vào ghi A MOV A,@Ri (1,1): Chuyển liệu gián tiếp vào ghi A MOV A,#data (2,1): Chuyển liệu tức thời vào ghi A MOV Rn,data (2,2): Chuyển liệu trực tiếp vào ghi Rn MOV Rn,#data (2,1): Chuyển liệu tức thời vào ghi Rn MOV data,A (2,1): Chuyển nội dung ghi A vào liệu trực tiếp 11 MOV data,Rn trực tiếp (2,2): Chuyển nội dung ghi Rn vào liệu 2.4 Nhóm lệnh chuyên điều khiển ACALL addr11 (2,2): Gọi chương trình dùng địa chì tuyệt đối LCALL addr16 (3,2): Gọi chương trình dùng địa dài RET (1,2): Trở từ lệnh gọi chương trình RET1 (1,2): Trở từ lệnh gọi ngắt AJMP addr11 (2,2): Nhảy tuyệt đối LJMP addr16 (3,2): Nhảy dài SJMP rel (2,2): Nhảy ngắn JMP @A+DPTR (1,2): Nhảy gián tiếp từ trỏ liệu Các chế độ đánh địa 8051 8051 CPC truy cập liệu theo nhiều cách khác Dữ liệu ghi nhớ cho giá trị tức thời cách truy cập liệu khác gọi chế độ đánh địa Chương bàn luận chế độ đánh địa 8051 phạm vi số ví dụ Các chế độ đánh địa khác vi xử lý xác định thiết kế người lập trình đánh địa khác là: tức thời Theo ghi Trực tiếp gián tiếp qua ghi Theo số ĐIỀU KHIỂN LED ĐOẠN ĐẾM TỪ ĐẾN #include void delay(int time){ while(time );} 12 void main(){ while(1){ // so if (!P2_0) continue; P0_6 = 1; P0_0 = P0_1 = P0_2 = P0_3 = P0_4 = P0_5 = 0; delay(30000); // so if (!P2_0) continue; P0_1 = P0_2 = 0; P0_0 = P0_3 = P0_4 = P0_5 = P0_6 = 1; delay(50000); // so if (!P2_0) continue; P0_0 = P0_1 = P0_4 = P0_6 = P0_3 = 0; P0_5 = P0_2 = ; delay(50000); // so if (!P2_0) continue; P0_0 = P0_1 = P0_2 = P0_3 = P0_6 = 0; P0_5 = P0_4 = 1; 13 delay(50000); // so if (!P2_0) continue; P0_1 = P0_2 = P0_5 = P0_6 = 0; P0_0 = P0_3 = P0_4 = 1; delay(50000); // so if (!P2_0) continue; P0_0 = P0_2 = P0_3 = P0_5 = P0_6 = 0; P0_1 = P0_4 = 1; delay(50000); // so if (!P2_0) continue; P0_0 = P0_2 = P0_3 = P0_4 = P0_5 = P0_6 = 0; P0_1 = 1; delay(50000); // so if (!P2_0) continue; P0_0 = P0_1 = P0_2 = 0; P0_3 = P0_4 = P0_5 = P0_6 = 1; delay(50000); 14 // so if (!P2_0) continue; P0_0 = P0_1 = P0_2 = P0_3 = P0_4 = P0_5 = P0_6 = 0; delay(50000); // so if (!P2_0) continue; P0_0 = P0_1 = P0_2 = P0_3 = P0_5 = P0_6 = 0; P0_4 = 1; delay(50000); } } 15 16 PHẦN III: KẾT LUẬN Cùng với tiến trình phát triển cơng nghệ diễn mạnh mẽ, vấn đề xã hội nảy sinh ảnh hưởng đến xu hướng phát triển chung đất nước Việc xuất thiết bị công nghệ đại, đặc biệt máy tính xu hướng phát triển tất yếu xã hội Cơng nghệ đại thiết bị cấu thành máy tính phức tạp Vì vậy, việc phát triển thiết bị máy tính vơ quan trọng thiết bị có vai trò khác Vi xử lý 8051 phận số đóng vai trị vơ quan trọng máy tính Vi xử lý dường phổ biến hầu hết hệ máy tính Việc phát triển, cải tiến vi xử lý vô cần thiết cho phát triển máy tính Như vậy, tiểu luận nêu cấu trúc phương thức quản lý nhớ Vi xử lý 8051 PC Với mục đích tìm hiểu sâu vào chế vi xử lý, để hiểu rõ cấu tạo hoạt động Đồng thời, làm bước đệm để phát triển Vi xử lý 8051 lên thiết bị tân tiến Bởi việc phát triển loại thiết bị xu hướng xã hội để bắt kịp xu hướng phát triển thời đại 17 TÀI LIỆU THAM KHẢO Tiếng Việt: [1] Bộ giáo dục đào tạo, Giáo trình hệ vi điều khiển, KS Dương Quốc Hưng - Nhà xuất Khoa học kỹ thuật, Hà Nội (2010) [2] Giáo trình Tổ chức Cấu trúc máy tính, Nguyễn Xuân Minh - Đại học Bách khoa thành phố Hồ Chí Minh (2002) TRƯỜNG ĐẠI HỌC KHOA HỌC CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN Độc lập – Tự – Hạnh phúc PHIẾU ĐÁNH GIÁ TIỂU LUẬN HỌC KỲ: HÈ NĂM HỌC: 2020 – 2021 Điểm kết luận: Bằng số ……………………….Bằng chữ…………………………………… Thừa Thiên Huế, ngày …… tháng …… năm 2021 CBChT1 CBChT2 (Ký ghi rõ họ tên) (Ký ghi rõ họ tên) ... P0_4 = 1; 13 delay( 500 00) ; // so if (!P2 _0) continue; P0 _1 = P0_2 = P0_5 = P0_6 = 0; P0 _0 = P0_3 = P0_4 = 1; delay( 500 00) ; // so if (!P2 _0) continue; P0 _0 = P0_2 = P0_3 = P0_5 = P0_6 = 0; P0 _1. .. = P0_4 = 1; delay( 500 00) ; // so if (!P2 _0) continue; P0 _0 = P0_2 = P0_3 = P0_4 = P0_5 = P0_6 = 0; P0 _1 = 1; delay( 500 00) ; // so if (!P2 _0) continue; P0 _0 = P0 _1 = P0_2 = 0; P0_3 = P0_4 = P0_5... P0_6 = 1; delay( 500 00) ; 14 // so if (!P2 _0) continue; P0 _0 = P0 _1 = P0_2 = P0_3 = P0_4 = P0_5 = P0_6 = 0; delay( 500 00) ; // so if (!P2 _0) continue; P0 _0 = P0 _1 = P0_2 = P0_3 = P0_5 = P0_6 = 0;

Ngày đăng: 25/12/2021, 23:01

Xem thêm:

TỪ KHÓA LIÊN QUAN

Mục lục

    2.3 Nhóm lệnh chuyển dữ liệu

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w