Đồ án Thiết kế mạch thí nghiệm dùng Vi điều khiển 80C51 phối ghép với các thiết bị ngoại vi : LCD, ADC0809, RTC DS12887 và bàn phím sè HEX

Điều khiển tự động, ngày nay đã và đang được ứng dụng vào rất nhiều ngành sản xuất và cuộc sống. Từ những nhà máy, dây chuyền sản xuất cho đến những đồ dùng phục vô sinh hoạt nh­: máy giặt, lò vi sóng

Để thực hiện việc điều khiển tự động có nhiều phương pháp, cách thức nh­ bằng máy tính, vi xử lý hay hệ điều khiển chuyên dụng. Tùy vào lĩnh vực mà lùa chọn hệ thống điều khiển thích hợp. Với sinh viên học chuyên ngành điều khiển tự động phải nắm bắt được tất cả những kiến thức cơ sở, tổng quát nhất để từ đó có thể giải quyết các bài toán điều khiển đặt ra trong công việc sau này. Một trong những kiến thức cần phải có đó là việc nghiên cứu và thiết kế mạch ứng dụng sử dụng bộ vi điều khiển. Do đó chúng em đã chọn đề tài : Thiết kế mạch thí nghiệm dùng Vi điều khiển 80C51 phối ghép với các thiết bị ngoại vi LCD, ADC0809, RTC DS12887 và HEX-keypad.

 

doc82 trang | Chia sẻ: oanh_nt | Lượt xem: 1242 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Đồ án Thiết kế mạch thí nghiệm dùng Vi điều khiển 80C51 phối ghép với các thiết bị ngoại vi : LCD, ADC0809, RTC DS12887 và bàn phím sè HEX, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
BỘ GIÁO DỤC VÀ ĐÀO TẠO CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Độc lập – Tù do – Hạnh phóc NHIỆM VÔ THIẾT KẾ TỐT NGHIỆP Họ và tên Ngô Quốc Toàn Khoá: 4 Khoa: Điện Ngành Điều khiển Tự động 1. ĐÒ tài: Thiết kế mạch thí nghiệm dùng Vi điều khiển 80C51 phối ghép với các thiết bị ngoại vi : LCD, ADC0809, RTC DS12887 và bàn phím sè HEX. 2. Các số liệu ban đầu: ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………… 3. Nội dung các phần thuyết minh và tính toán: ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… 4. Các bản vẽ đồ thị (ghi rõ các loại bản vẽ và kích thước các bản vẽ): ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 5. Cán bộ hướng dẫn: …………..…Vũ Vân Hà … ……………………… 6. Ngày giao nhiệm vụ thiết kế:…………………………..………………... 7. Ngày hoàn thành nhiệm vụ:..…………………………………………….. Ngày tháng 04 năm 2006 CHỦ NHIỆM BỘ MÔN CÁN BỘ HƯỚNG DẪN (Ký, ghi rõ họ tên) (Ký, ghi rõ họ tên) Sinh viên đã hoàn thành Ngày tháng 04 năm 2006 (Ký, ghi rõ họ tên) Mục Lục Lời cảm ơn.......................................................................................................7 MỞ ĐẦU .............................................................................................................8 Phần I: Tổng quan về VđK 8051 và Các thiết bị ngoại vi.........9 CHƯƠNG I: VI ĐIỀU KHIỂN 8051..............................................................9 I. KHÁI NIỆM CHUNG VỀ VI ĐIỀU KHIỂN...........................................9 I.1 Sù ra đời..............................................................................................9 I.2 Điểm khác biệt giữa VĐK và VXL dùng chung................................9 I.3 Tiêu chuẩn lùa chọn 1 bé vi điều khiển............................................10 II. VI ĐIỀU KHIỂN 8051..........................................................................10 II.1 Sơ đồ khối của 8051........................................................................10 II.2 Sơ đồ và chức năng các chân của 8051...........................................11 II.2.1 Sơ đồ các chân.........................................................................11 II.2.2 Chức năng của các chân..........................................................11 II.2.3 Cấu trúc của các cổng xuất/nhập............................................14 II.3 Tổ chức bộ nhớ 8051.......................................................................14 II.3.1 Vùng RAM đa mục đích.........................................................15 II.3.2 Vùng RAM định địa chỉ bit....................................................15 II.3.3 Các dãy thanh ghi....................................................................15 II.3.4 Các thanh ghi chức năng đặc biệt...........................................15 II.3.4.1 Từ trạng thái chương trình PSW...................................15 II.3.4.2 Thanh ghi B.................................................................16 II.3.4.3 Con trá stack................................................................16 II.3.4.4 Con trỏ dữ liệu.............................................................17 II.3.4.5 Các thanh ghi port........................................................17 II.3.4.6 Các thanh ghi định thời TMOD và TCON...................17 II.3.4.7 Thanh ghi của cổng nối tiếp.........................................19 II.3.4.8 Các thanh ghi ngắt........................................................20 II.3.4.9 Thanh ghi điều khiển nguồn.........................................20 II.4 Bộ nhớ ngoài...................................................................................21 II.4.1 Truy xuất bộ nhớ chương trình ngoài......................................21 II.4.2 Truy xuất bé nhớ dữ liệu ngoài..............................................22 II.4.3 Hoạt động Reset......................................................................23 III. TẬP LỆNH CỦA 8051.........................................................................24 III.1 Các kiểu định địa chỉ.....................................................................24 III.1.1 Định địa chỉ thanh ghi...........................................................24 III.1.2 Định địa chỉ trực tiếp.............................................................24 III.1.3 Định địa chỉ gián tiếp............................................................25 III.1.4 Định địa chỉ tức thời..............................................................26 III.1.5 Định địa chỉ tương đối...........................................................26 III.1.6 Định địa chỉ tuyệt đối............................................................26 III.1.7 Định địa chỉ dài.....................................................................27 III.1.8 Định địa chỉ chỉ số.................................................................27 III.2 Các loại lệnh.......................................................................................27 III.2.1 Lệnh số học............................................................................27 III.2.2 Các lệnh Logic.......................................................................28 III.2.3 Nhóm lệnh di chuyển dữ liệu.................................................30 III.2.4 Các lệnh xử lý bit...................................................................31 III.2.5 Các lệnh rẽ nhánh..................................................................31 III.2.6 Nhóm lệnh dịch, quay............................................................33 III.2.7 Các lệnh làm việc với Stack...................................................33 IV. HOẠT ĐỘNG ĐỊNH THỜI.................................................................33 IV.1 Các bộ định thời của 8051.............................................................33 IV.2 Thanh ghi chế độ bộ định thời......................................................34 IV.2.1 Các chế độ định thời và cờ tràn.............................................34 IV.2.1.1 Chế độ định thời 13-bit..................................................34 IV.2.1.2 Chế độ định thời 16-bit..................................................34 IV.2.1.3 Chế độ tự nạp lại 8-bit...................................................34 IV.2.1.4 Chế độ định thời chia xẻ................................................35 IV.3 Nguồn xung clock định thời .........................................................35 V. HOẠT ĐỘNG NGẮT............................................................................35 V.1 Tổ chức ngắt của 8051....................................................................35 V.1.1 Cho phép và không cho phép ngắt... ..........................................35 V.1.2 Ưu tiên ngắt............................................................................35 V.1.3 Chuỗi vòng..............................................................................36 V.2 Xử lý ngắt......................................................................................36 V.3 Các vector ngắt...............................................................................36 V.4 Các ngắt do port nối tiếp ................................................................36 V.5 Các ngắt ngoài................................................................................37 VI. LẬP TRÌNH HỢP NGỮ........................................................................37 VI.1 Trình dịch hợp ngữ........................................................................37 VI.2 Khuôn dạng của chương trình hợp ngữ..........................................37 VI.3 Cấu trúc chương trình....................................................................38 VI.4. Tổ chức chương trình....................................................................38 CHƯƠNG II: CÁC THIẾT BỊ NGOẠI VI......................................................39 I. ĐỒNG HỒ THỜI GIAN THỰC DS12887..............................................39 I.1 Hoạt động.........................................................................................40 I.2 Chức năng các chân .........................................................................41 I.3 Bản đồ địa chỉ................................ ...................................................................................43 I.4 Các thanh ghi điều khiển..................................................................46 I.5 Minh họa ghép nối giữa DS12887 với 8051.....................................49 II. THIẾT BỊ HIỂN THỊ LCD....................................................................49 II.1 LCD.................................................................................................49 II.2 Minh họa ghép nối giữa LCD với 8051...........................................52 III. ADC0809..............................................................................................52 III.1 Sơ đồ các chân của ADC0809........................................................53 III.2 Các bước lập trình cho ADC0809..................................................54 III.3 Minh họa ghép nối ADC0809 với 8051.........................................55 IV.BÀN PHÍM HEX..................................................................................55 IV.1 Minh họa ghép nối bàn phím với 8051..........................................56 V. GIẢI MÃ ĐỊA CHỈ 74LS138................................................................57 VI. CHỐT ĐỊA CHỈ 74HC373...................................................................57 V.1.Sơ đồ chân của 74HC373................................................................57 V.2 Hoạt động của 74LS373..................................................................57 PHẦN II. THIẾT KẾ..........................................................................................59 CHƯƠNG I: THIẾT KẾ PHẦN CỨNG...........................................................59 I. Mạch nguyên lý.......................................................................................59 II.Sơ đồ mạch..............................................................................................61 CHƯƠNG II: THIẾT KẾ PHẦN MỀM...........................................................62 I. Chuơng trình quét bàn phím HEX...........................................................62 II. Đọc thời gian từ đồng hồ thời gian thực RTC DS12887........................67 III. ĐiÒu khiển ADC0809 để thực hiện chuyển đổi....................................74 KẾT LUẬN.........................................................................................................78 TÀI LIỆU THAM KHẢO..................................................................................79 Lời cảm ơn Trước hết chúng em gửi lời cám ơn tới tập thể các thầy cô giáo bộ môn Điều khiển tự động - Khoa điện trường Đại học Bách khoa Hà Nội. Đã luôn giúp đỡ và truyền đạt cho chóng em những kiến thức quý báu trong qúa trình học tập tại trường. Chóng em xin chân thành cảm ơn thầy giáo hướng dẫn Vũ Vân Hà đã nhiệt tình hưỡng dẫn chúng em trong quá trình làm đồ án . Sinh viên thực hiện Trịnh Mạnh Hùng Nguyễn Xuân Linh Ngô Quốc Toàn MỞ ĐẦU Đề tài: Thiết kế mạch thí nghiệm dùng Vi điÒu khiển 80C51 phối ghép với thiết bị ngoại vi : LCD, ADC0809, RTC DS12887 và bàn phím sè HEX. Điều khiển tự động, ngày nay đã và đang được ứng dụng vào rất nhiều ngành sản xuất và cuộc sống. Từ những nhà máy, dây chuyền sản xuất cho đến những đồ dùng phục vô sinh hoạt nh­: máy giặt, lò vi sóng… Để thực hiện việc điều khiển tự động có nhiều phương pháp, cách thức nh­ bằng máy tính, vi xử lý hay hệ điều khiển chuyên dụng. Tùy vào lĩnh vực mà lùa chọn hệ thống điều khiển thích hợp. Với sinh viên học chuyên ngành điều khiển tự động phải nắm bắt được tất cả những kiến thức cơ sở, tổng quát nhất để từ đó có thể giải quyết các bài toán điều khiển đặt ra trong công việc sau này. Một trong những kiến thức cần phải có đó là việc nghiên cứu và thiết kế mạch ứng dụng sử dụng bộ vi điều khiển. Do đó chúng em đã chọn đề tài : Thiết kế mạch thí nghiệm dùng Vi điều khiển 80C51 phối ghép với các thiết bị ngoại vi LCD, ADC0809, RTC DS12887 và HEX-keypad. Các công việc thực hiện: · Tìm hiểu về Vi điều khiển 8051, và các thiết bị ngoại vi. · Thiết kế mạch nguyên lý. · Xây dựng các bài toán điều khiển. Phương pháp thực hiện · Tìm hiểu các thiết bị · Vẽ mạch nguyên lý bằng phần mềm Protel · Viết phần mềm bằng hợp ngữ bằng KeilC Phần I :tổng quan về Vi đIều khiển 8051 và các thiết bị ngoại vi CHƯƠNG I: VI ĐIỀU KHIỂN 8051 I. KHÁI NIỆM CHUNG VỀ VI ĐIỀU KHIỂN I.1. Sù ra đời Vào năm 1971 tập đoàn Intel đã giới thiệu 8080, bé vi xử lí thành công đầu tiên, tiếp đó không lâu Motorola, RCA, MOS Technology và Zilog còng đã giới thiệu các bộ vi xử lí tương tù : 6800, 1801, 6502 và Z80. Bản thân các vi mạch này tuy không có nhiều hiệu quả sử dụng nhưng khi là một phần của một máy tinh đơn board (Single Board Computer), chóng trở thành thành phần trung tâm trong các sản phẩm có Ých dùng để nghiên cứu và thiết kế. Năm 1976 Intel giới thiệu bộ vi điều khiển( Micro Controller) 8748, mét chip tương tù nh­ các bộ vi xử lí và là chip đầu tiên trong họ vi điều khiển MCS-48. 8748 là một vi mạch chứa trên 17000 transistor bao gồm một CPU, 1Kbyte EPROM, 64 byte RAM, 27 chân xuất nhập và một bộ định thời 8 bit. Sù ra đời của IC này và các IC khác của họ MCS-48 đã nhanh chóng trở thành chuẩn công nghiệp trong các ứng dụng hướng điều khiển (Control Oriented Application). Độ phức tạp, kích thước và khả năng của bộ vi điều khiển được tăng thêm một bậc quan trọng vào năm 1980 khi Intel công bè chip 8051, bé vi điều khiển đầu tiên của họ vi điều khiển MCS-51. So với 8048, chip 8051 chứa trên 60000 transistor bao gồm 4Kbyte ROM, 128 byte RAM, 32 đường xuất nhập, 1 port nối tiếp và 2 bộ định thời 16 bit. Vi điều khiển 8051 còng nh­ họ vi điều khiển MCS-51 là một trong những bộ vi điều khiển 8-bit mạnh và linh hoạt nhất, đã trở thành bộ vi điều khiển hàng đầu trong những năm gần đây. I.2 ĐiÓm khác biệt giữa vi điÒu khiển và vi xử lý dùng chung Những bé vi xử lý dùng chung thường gặp nh­ họ Intel x86 (8086, 80286, 80386, 80486, Pentium..) hoặc họ 680x0 của Motorola (6800, 68010, 68020, 68030, 68040…). Những bộ vi xử lý này không có RAM, ROM và không có các port I/O trên chip, do đã khi sử dụng thiết kế hệ thống phải bổ sung thêm RAM, ROM, I/O và các bộ định thời (Timer/Counter) ngoài để cho chúng hoạt động được. Tuy việc này làm cho hệ thống cồng kềnh, phức tạp và giá thành cao hơn nhưng chúng lại có ưu điÓm là linh hoạt hơn so với vi điều khiển. Trong khi đó với vi điều khiển nó có sẵn : 1 CPU( bé vi xử lý) cùng 1 lượng cố định RAM, ROM, các cổng I/O và Timer/Counter được tích hợp tất cả trên cùng 1 chip. I.3 Tiêu chuẩn lùa chọn 1 bé vi điều khiển Hiện nay có nhiều loại vi điều khiển, với loại vi điều khiển 8bit có 4 loại chính sau: 6811 (Motorola), 8051 (Intel), Z8 (Zilog) và PIC16x (Micro Technology). Mỗi loại trên đều có 1 tập lệnh và thanh ghi riêng nên chúng đều không tương thích lẫn nhau. Ngoài ra còn có những bộ vi điều khiển 16bit và 32bit, vì thế để lùa chọn bé vi điÒu khiển trong thiết kế cần phải dùa trên những tiêu chuẩn sau: Đáp ứng nhu cầu tính toán của bài toán 1 cách hiệu quả về giá thành và đầy đủ chức năng có thể nhìn thấy được: Tốc độ: tốc độ lớn nhất mà bộ vi điều khiển hỗ trợ là bao nhiêu? Kiểu đóng vỏ: kiểu DIP (Dual In-line Package) hay QFP (Quadrangle Flat Package). Đây là điÒu quan trọng đối với yêu cầu về không gian, kiểu lắp ráp và tạo mẫu cho sản phẩm. Công suất tiêu thụ. Dung lượng RAM, ROM trên chip. Số cổng vào/ra và Timer/Counter trên chip. Giá thành trên 1 đơn vị sản phẩm. Công cụ phát triển phần mềm. Nguồn cung cấp các bộ vi điều khiển: tức khả năng sẵn sàng đáp ứng về số lượng trong hiện tại và tương lai. II. VI ĐIỀU KHIỂN 8051 Vi điều khiển 8051 là thành viên đầu tiên của họ MCS-51 của Intel, sau đố các nhà sản xuất IC khác nh­ Siemens, Advanded Devices, Phillips …được cấp phép làm nhà cung cấp thứ 2 cho các chip của họ MCS-51. II.1 Sơ đồ khối của 8051 Chip 8051 có các đặc trưng cơ bản sau: 4 Kbyte ROM 128 Byte RAM 4 I/O port 8bit 1 bộ điÒu khiển ngắt ( Interrupt Control) 1 Mạch dao động nội (Oscillatior) 1 bộ điÒu khiển bus (Bus Control) 2 Timer 16bit Mạch giao tiếp nối tiếp Không gian nhớ chương trình (mã) ngoài 64Kbyte Không gian nhớ dữ liệu ngoài 64Kbyte Bộ xử lý bit 210 vị trí nhớ được định địa chỉ Nhân/chia trong 4ms Hình 1: Sơ đồ khối của chip 8051 II.2 SƠ ĐỒ VÀ CHỨC NĂNG CÁC CHÂN CỦA 8051 II.2.1 Sơ đồ các chân : Hình 2: Sơ đồ các chân của 8051 II.2.2 Chức năng của các chân Port 0 : Port 0 (các chân từ 32 ® 39) có 2 công dụng: có thể được sử dụng làm nhiệm vụ xuất/nhập hoặc trở thành bus địa chỉ và bus dữ liệu đa hợp. Port 1: Port 1 (các chân từ 1® 8) chỉ có 1 công dụng là xuất/nhập. Port 2: Port 2 (các chân từ 21® 28) có 2 công dụng: hoặc làm nhiệm vụ xuất/nhập hoặc là byte địa chỉ cao của bus địa chỉ 16-bit. Port 3: Port 3 (các chân 10® 17) có 2 công dụng. Khi không hoạt động xuất/nhập, các chân của Port 3 có nhiều chức năng riêng. Bit Tên Địa chỉ bit Chức năng P3.0 RXD B0H Chân nhận dữ liệu của port nối tiếp P3.1 TXD B1H Chân phát dữ liệu của port nối tiếp P3.2 B2H Ngõ vào ngắt ngoài 0 P3.3 B3H Ngõ vào ngắt ngoài 1 P3.4 T0 B4H Ngõ vào của Timer/Counter 0 P3.5 T1 B5H Ngõ vào của Timer/Counter 0 P3.6 B6H ĐiÒu khiển ghi bé nhớ dữ liệu ngoài P3.7 B7H ĐiÒu khiển đọc bộ nhớ dữ liệu ngoài Hình 2: Sơ đồ các chân của 8051 Chân (Program Store Enable) : (chân 29) đây là tín hiệu điÒu khiển cho phép truy xuất bộ nhớ chương trình ngoài. Chân này thường được nối với chân cho phép xuất OE (Output Enable) của EPROM (hoặc ROM) để cho phép đọc các byte lệnh. Tín hiệu ở mức logic 0 trong suốt thời gian tìm và nạp lệnh. Khi thực thi chương trình ở ROM nội , được duy trì ở mức logic 1 (logic không tích cực). Chân ALE (chân 30): chân xuất tín hiệu cho phép chốt địa chỉ (Address Latch Enable) để giải đa hợp (Demultiplexing) bus dữ liệu và bus địa chỉ. Tín hiệu ALE có tần số f=1/6 fosc (fosc: tần số của bộ dao động bên trong 8051) và có thể được dùng làm xung clock cho các phần còn lại của hệ thống. Chân ALE còn được dùng để nhận xung ngõ vào lập trình cho EPROM. Chân truy xuất ngoài (chân 31) : ngõ vào này có thể được nối +5V (mức logic 1) hoặc nối đất (mức logic 0). Nếu chân này có mức logic 1: 8051 thực thi chương trình trong ROM nội, còn khi ở mức logic 0 thì 8051 thực thi chương trình chứa ở bộ nhớ ngoài. Các phiên bản EPROM của 8051 còn sử dụng chân làm chân nhận điện áp cấp điện 21V cho việc lập trình EPROM nội. Chân RESET (chân 9): đây là ngõ vào xóa chính (Master reset) của 8051, dùng để thiết lập lại trạng thái ban đầu cho hệ thống hay gọi tắt là Reset hệ thống. Khi ngõ vào này được treo ở mức logic 1 tối thiểu là 2 chu kỳ máy, các thanh ghi bên trong 8051 được nạp các giá trị thích hợp cho việc khởi động lại hệ thống. XTAL1 và XTAL2 ( chân 18 và 19): Mạch dao động bên trong chip 8051 được ghép với thạch anh bên ngoài ở hai chân XTAL1 và XTAL2 (chân 18 và 19). Tần số danh định của thạch anh là 12 MHz cho hầu hết các chip của họ MCS-51. XTAL1: Ngõ vào đến mạch khuếch đại đảo của mạch dao động. XTAL2: Ngõ ra từ mạch khuếch đại đảo của mạch dao động. Chân Vcc (chân 40) lấy nguồn nuôi +5V để cấp cho chip. Chân Vss ( chân 20) chân nối đất. II.2.3. Cấu trúc của các cổng xuất/nhập. Việc ghi đến một chân của port sẽ nạp dữ liệu bộ chốt điều khiển của port, ngõ ra Q của bộ chốt điều khiển của mét transistor trường và transistor này nối với chân của port. Khả năng fanout của port 1,2,3 là 4 tải vi mạch TTL loại schottky công suất thấp còn của port 0 là 8 tải loại LS. Lưu ý: khi điện trở kéo lên sẽ không có ở port 0 (trừ khi port làm nhiệm vô của bus địa chỉ/dữ liệu đa hợp). Do vậy một điện trở kéo lên bên ngoài phải được cần đến. Giá trị của điện trở này phụ thuộc vào đặc tính ngõ vào của thành phần ghép nối với chân của port. II.3 Tổ chức bộ nhớ 8051 8051 có không gian bộ nhớ riêng cho chương trình và dữ liệu: cả 2 bộ nhớ chương trình và dữ liệu đều đặt bên trong chip, tuy nhiên vẫn có thể mở rộng bộ nhớ chương trình và bộ nhớ dữ liệu bằng cách sử dông chip nhí bên ngoài với dung lượng tối đa 64Kbyte cho bộ nhớ chương trình và bộ nhớ dữ liệu. Bộ nhớ nội trong chip bao gồm cả RAM và ROM. RAM trên chip bao gồm vùng RAM đa chức năng, vùng RAM với từng bit được định địa chỉ, dãy thanh ghi (bank register) và các thanh ghi chức năng đặc biệt SFR (special function register). Hai đặc tính đáng lưu ý là : các thanh ghi và các port xuất/nhập được định địa chỉ theo kiểu ánh xạ bộ nhí (memory mapped) và được truy xuất nh­ mét vị trí nhớ trong bộ nhớ vùng stack thường trú trong RAM trên chip (RAM nội) thay vì ở trong RAM ngoài nh­ các bộ vi xử lý. II.3.1 Vùng RAM đa mục đích Vùng RAM đa mục đích có 80 byte đặt ở địa chỉ từ 30H đến 7FH, bên dưới vùng này từ địa chỉ 00H đến 2FH là vùng nhớ có thể được sử dụng tương tự. Bất kỳ vị trí nhớ nào trong vùng RAM đa mục đích đều có thể được truy xuất tự do bằng cách sử dụng các kiểu định địa chỉ trực tiếp hoặc gián tiếp. II.3.2. Vùng RAM định địa chỉ bit 8051 chứa 210 vị trí bit được định địa chỉ trong đó 128 bit chứa trong các byte ở địa chỉ từ 20H đến 2FH (16 byte x 8 bit = 128 bit) và phần còn lại chứa trong các thanh ghi đặc biệt. Ngoài ra 8051 còn có các port xuất/nhập có thể định địa chỉ từng bit, điều này làm đơn giản việc giao tiếp bằng phần mềm với các thiết bị xuất/nhập đơn bit. II.3.3 Các dãy thanh ghi 32 vị trí thấp nhất của bộ nhớ nội chứa các dãy thanh ghi . Các lệnh của 8051 hỗ trợ 8 thanh ghi từ R0 đến R7 thuộc dãy 0 (bank 0). Đây là dãy mặc định sau khi reset hệ thống. Các thanh ghi này ở các địa chỉ từ 00H đến 07H. Lệnh sử dụng các thanh ghi từ R0 đến R7 là các lệnh ngắn và thực hiện nhanh hơn so với các lệnh tương đương sử dụng kiểu định địa chỉ trực tiếp. Các giá trị dữ liệu thường được sử dụng nên chứa trong các thanh ghi này. Dãy thanh ghi đang được sử dụng gọi là dãy thanh ghi tích cực. II.3.4 Các thanh ghi chức năng đặc biệt (SFR) Cũng như các thanh ghi từ R0 đến R7, ta có 21 thanh ghi chức năng đặc biệt SFR chiếm phần trên của RAM nội từ địa chỉ 80H đến FFH. Ta cần lưu ý là không phải tất cả 128 địa chỉ từ 80H đến FFH đều được định nghĩa mà chỉ có 21 địa chỉ được định nghĩa. II.3.4.1 Từ trạng thái chương trình PSW ( Program Status Word) Địa chỉ byte: D0H 7 6 5 4 3 2 1 0 CY AC F0 RS1 RS0 OV - P Bit Ký hiệu Địa chỉ Mô tả bit PSW.7 CY D7H Cờ nhí (carry flag). Cờ này được set nếu có bit nhí từ bit 7 trong phép cộng hoặc được set nếu có bit mượn cho bit 7 trong phép trừ PSW.6 AC D6H Cờ nhí phụ. Cờ này được set trong phép cộng nếu có bit nhí từ bit 3 sang bit 4 hoặc nếu kết quả trong 4 bit thấp nằm trong khoảng từ 0AH → 0FH PSW.5 F0 D5H Cờ O, cờ này dành cho người sử dụng PSW.4 RS1 D4H Chọn dãy thanh ghi (bit 1) PSW.3 RS0 D3H Chọn dãy thanh ghi (bit 0) 00 = bank 0 : địa chỉ từ 00H → 07H 01 = bank 1 : địa chỉ từ 08H → 0FH 10 = bank 2 : địa chỉ từ 10H → 17H 11 = bank3 : địa chỉ từ 18H → 1FH PSW.2 OV D2H Cờ tràn (Overflow flag), cờ này được set sau khi cộng hoặc trừ nếu có 1 số tràn số học (nghĩa là tràn trên các phép toán số có dấu: kết quả của phép toán lớn hơn +127 hoặc nhỏ hơn -128) PSW.1 -- D1H Dự trữ PSW.0 P D0H Cờ kiểm tra chẵn/lẻ. Cờ này được set hoặc clear bởi phần cứng sau mỗi 1 chu kỳ lệnh, để chỉ ra rằng có 1 số chẵn hoặc số lẻ bit 1 trong thanh chứa II.3.4.2 Thanh ghi B Thanh ghi B ở địa chỉ F0H được dùng chung với thanh chứa A trong các phép toán nhân, chia. Lệnh MUL AB nhân 2 sè 8 bit không dấu chứa trong A và B và chứa kết quả 16 bit vào cặp thanh ghi B, A (thanh chứa A cất byte thấp và thanh ghi B cất byte cao). Lệnh chia DIV AB chia A bởi B, thương số cất trong thanh chứa A và dư số cất trong thanh ghi B. Thanh ghi B còn được xử lý nh­ mét thanh ghi nháp. Các bit được định địa chỉ của thanh ghi B có địa chỉ từ F0H đến F7H. II.3.4.3 Con trá stack (Stack pointer) Con trá stack SP (stack pointer) là 1 thanh ghi 8 bit ở địa chỉ 81H. SP chứa địa chỉ của dữ liệu hiện đang ở đỉnh của stack. Các lệnh liên quan đến stack bao gồm lệnh cất dữ liệu vào stack và lệnh lấy dữ liệu ra khái stack. Việc cất vào stack làm tăng SP trước khi ghi dữ liệu và việc lấy dữ liệu ra khái stack sẽ giảm SP. Vùng stack của 8051 được giữ trong RAM nội và được giới hạn đến các địa chỉ truy

Các file đính kèm theo tài liệu này:

  • doc8051.doc