Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 91 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
91
Dung lượng
1,56 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ VŨ XUÂN MẠNH XÂY DỰNG HỆ THỜI GIAN THỰC VÀ ỨNG DỤNG CHO BÀI TOÁN QUẢN LÝ NHÀ HÀNG DỊCH VỤ LUẬN VĂN THẠC SĨ Hà Nội 2011 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ VŨ XUÂN MẠNH XÂY DỰNG HỆ THỜI GIAN THỰC VÀ ỨNG DỤNG CHO BÀI TOÁN QUẢN LÝ NHÀ HÀNG DỊCH VỤ LUẬN VĂN THẠC SĨ Ngành: Công nghệ Thông tin Chuyên ngành: Công nghệ Phần mềm Mã số: 60.48.10 Hướng dẫn khoa học: PGS.TS Nguyễn Văn Vỵ Hà Nội 2011 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC BẢNG KÝ HIỆU CÁC TỪ VIẾT TẮT BẢNG GIẢI THÍCH CÁC THUẬT NGỮ DANH MỤC CÁC HÌNH VẼ DANH MỤC CÁC BẢNG MỞ ĐẦU 10 CHƢƠNG - TỔNG QUAN VỀ HỆ THỜI GIAN THỰC VÀ HỆ NHÚNG 12 1.1 Khái niệm hệ thời gian thực 12 1.2 Phân loại hệ thời gian thực 13 1.2.1 Hệ thời gian thực cứng 14 1.2.2 Hệ thời gian thực mềm 14 1.3 Đặc điểm hệ thời gian thực 15 1.4 Cấu trúc thành phần hệ thời gian thực 15 1.5 Xử lý thời gian thực 17 1.5.1 Xử lý ngắt 20 1.5.2 Quản lý tiến trình 22 CHƢƠNG 2: PHÁT TRIỂN HỆ THỐNG THÔNG TIN THỜI GIAN THỰC CHO QUẢN LÝ DỊCH VỤ NHÀ HÀNG 24 2.1 Khảo sát, phân tích mơ hình quản lý dịch vụ nhà hàng đề xuất toán 24 2.1.1 Khảo sát hoạt động quản lý dịch vụ nhà hàng 24 2.1.2 Những vấn đề từ mơ hình hoạt động dịch vụ nhà hàng truyền thống 26 2.1.3 Đề xuất giải pháp 27 2.2 Lƣa chọn công nghệ môi trƣờng phát triển hệ thống 33 2.2.1 Công nghệ môi trƣờng phát triển phần cứng 33 2.2.2 Công nghệ môi trƣờng phát triển phần mềm 33 2.2.3 Môi trƣờng triển khai hệ thống 33 2.3 Phân tích 34 2.3.1 Xác định yêu cầu toán 34 2.3.2 Biểu đồ use case 37 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang 2.3.3 Biểu đồ lớp 41 2.4 Thiết kế 47 2.4.1 Biểu đồ tƣơng tác 47 2.4.2 Biểu đồ hoạt động 50 2.4.3 Biểu đồ thành phần biểu đồ triển khai hệ thống 55 2.4.4 Thiết kế thiết bị xử lý trung tâm 56 2.4.5 Thiết kế thiết bị chọn 59 2.5 Xây dựng module phần mềm 61 2.5.1 Xây dựng module phát tín hiệu RF 61 2.5.2 Xây dựng module nhận tín hiệu RF 62 2.5.3 Xây dựng module giao tiếp bàn phím hiển thị LCD 63 2.5.4 Xây dựng module xử lý liệu 69 KẾT LUẬN 73 a> Những kết đạt đƣợc 73 b> Những hạn chế hƣớng phát triển 74 TÀI LIỆU THAM KHẢO 75 PHỤ LỤC 76 PLI Tính vi điều khiển ATmega8 ATmega48 76 ATmega8 76 ATmega48 77 PLII Chức khối vi điều khiển AVR [3] 78 Bộ nhớ chƣơng trình (Program memory) 78 Bộ nhớ liệu (Data memory) 78 Khối tính tốn logic (Arithmetic Logic Unit) 81 Khối ngăn xếp 82 PLIII Các tập lệnh dùng cho lập trình AVR [5] 83 Tập lệnh dùng cho ghi file 83 Tập lệnh dùng cho ghi I/O 88 Các lệnh truy cập nhớ 89 Các lệnh rẽ nhánh vòng lặp 89 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang BẢNG KÝ HIỆU CÁC TỪ VIẾT TẮT Từ viêt tắt Inpt Stus Up Down Clr OK Mnu NV K.Vực Max-Tbl Max-SoLuong Max-MaNV Max-KV NSX VĐK AP CSDL DL Ý nghĩa Dịng nhập liệu Dịng trạng thái Phím cuộn lên Phím cuộn xuống Phím xóa Phím xác nhận Danh sách lựa chọn lệnh thiết bị chọn Nhân viên Khu vực Số lượng bàn lớn Số lượng đơn vị ăn lớn Số lượng nhân viên lớn Số lượng khu vực lớn Nhà sản xuất Vi điều khiển, chíp Access point - điểm truy cập Cơ sở liệu Dữ liệu LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang BẢNG GIẢI THÍCH CÁC THUẬT NGỮ Thuật ngữ Chip VCC GND Vol Driver DLL ASM Ý nghĩa Là loại vi điều khiển Đường nguồn Đường trung tính (đất) Đơn vị hiệu điện Trình điều khiển thiết bị (một loại phần mềm mức thấp để máy tính giao tiếp với thiết bị) Thư viện liên kết động Trình biên dịch Assembly LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang DANH MỤC CÁC HÌNH VẼ Số Tên hình Trang Hình 1.1: Các mức đáp ứng kiện mặt thời gian Hình 1.2: Đồ thị mô tả đặc trưng hai loại hệ thời gian thực Hình 1.3: Các thành phần hoạt động thời gian thực Hình 1.4: Các kiểu tác vụ theo chuẩn IEC 61131-3 Hình 1.5: Mơ hình chung hệ thời gian thực Hình 1.6: Mơ hình xử lý ngắt Hình 1.7: Ưu tiên ngắt Hình 1.8: Hành động thực thi thời gian thực yêu cầu bắt đầu tiến trình Hình 2.1: Sơ đồ tiến trình phân tích hoạt động nghiệp vụ Hình 2.2 : Kiến trúc hệ thống cần xây dựng Hình 2.3: Ví dụ bảng phân giá theo khu vực thời điểm Hình 2.4: Ví dụ bảng giá Hình 2.5: Biểu đồ use case mức tổng quát Hình 2.6: Biểu đồ use case “Khai báo liệu nhà hàng” Hình 2.7: Biểu đồ use case “Xử lý bán hàng” Hình 2.8: Biểu đồ use case “Chế biến” Hình 2.9: Biểu đồ lớp phần khai báo liệu nhà hàng Hình 2.10: Biểu đồ lớp phần xử lý báng hàng Hình 2.11: Biểu đồ lớp phần cho phần chế biến Hình 2.12: Biểu đồ cho use case khai báo khu vực Hình 2.13: Biểu đồ cho use case chọn món, hủy Hình 2.14: Biểu đồ cho use case lập phiếu chế biến Hình 2.15: Biểu đồ hoạt động chức gọi món/hủy thiết bị Hình 2.16: Biểu đồ hoạt động chức chuyển bàn/ ghép bàn Hình 2.17: Biểu đồ hoạt động chức Thanh tốn/ gọi nhân viên Hình 2.18: Biểu đồ hoạt động chức Thanh tốn/ gọi nhân viên Hình 2.19: Biểu đồ hoạt động thiết bị xử lý trung tâm Hình 2.20: Biểu đồ thành phần Hình 2.21: Biểu đồ triển khai hệ thống Hình 2.22: Kiến trúc thiết bị xử lý trung tâm Hình 2.23: Mạch nguyên lý thiết bị xử lý trung tâm Hình 2.24: Kiến trúc thiết bị chọn Hình 2.25: Mạch ngun lý thiết bị chọn khơng dây Hình 2.26: Sơ đồ khối phát tín hiệu RF Hình 2.27: Sơ đồ khối module thu tín hiệu RF Hình 2.28: Nối ghép bàn phím ma trận tới cổng 12 14 16 18 19 20 21 22 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 29 32 34 35 37 38 39 40 45 46 46 47 48 49 50 51 52 53 54 55 56 57 59 59 60 61 62 63 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang 37 38 39 40 41 42 43 Hình 2.29: Sơ đồ khối dị tìm phím bấm Hình 2.30: Vị trí chân LCD khác Optrex Hình 2.31: Lưu đồ thuật tốn xử lý chung Hình 2.32: Lưu đồ thuật tốn xử lý riêng Hình PLII.1: Bản đồ nhớ liệu Hình PLII.2: Thanh ghi nhớ liệu Hình PLII.3: Mơ tả ngăn xếp 65 67 69 70 79 79 82 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang DANH MỤC CÁC BẢNG Số Tên bảng Trang Bảng 2.1: Giải pháp cho vấn đề đặt 30 Bảng 2.2 : Các tác nhân nghiệp vụ vai trò 37 Bảng 2.3 :Vai trò use case khai báo liệu nhà hàng 378 Bảng 2.4 : Vai trò use case xử lý bán hàng 40 Bảng 2.5 : Vai trò use case chế biến 41 Bảng 2.6: Mục đích use case thực thể 41 Bảng 2.7: Các lớp ứng cử viên 43 Bảng 2.8: Ký hiệu chân LCD 67 Bảng 2.9: Mã lệnh LCD 67 10 Bảng 2.10: Các quy tắc hoạt động thiết bị 70 11 Bảng 2.11: Định dạng tổng quát gói liệu 71 12 Bảng 2.12: Gói liệu chọn / hủy 72 13 Bảng 2.13: Gói liệu ghép bàn / chuyển bàn 72 14 Bảng 2.14: Gói liệu tốn/ gọi nhân viên 72 15 Bảng PLII.3: Mô tả ghi VĐK AVR 80 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang 10 MỞ ĐẦU Hiện nay, hệ thống nhúng ứng dụng rộng rãi hầu hết thiết bị điện tử chuyên dụng, từ đồ điện tử gia đình Ti vi, máy giặt, lị vi sóng đến hệ thống lớn máy bay, tên lửa, vệ tinh nhân tạo… Nghiên cứu công nghệ nhúng hướng nghiên cứu mang nhiều tính ứng dụng công nghệ Việt Nam Mặc dù số trường đại học nước đưa vào giảng dạy số mơn học Lập trình hệ thống, Hệ vi xử lý, Công nghệ phần mềm nhúng… Nhưng việc ứng dụng kiến thức lĩnh vực để phát triển ứng dụng cụ thể gặp nhiều khó khăn Lý đơn giản việc xây dựng hệ thống yêu cầu linh kiện điện tử, phịng thí nghiệm, cơng cụ làm việc Osillo, đồng hồ vạn năng… người xây dựng phải có kiến thức hệ thống, điện tử, phát triển phần mềm kinh nghiệm định Trong có nhiều ứng dụng giải thiết bị nhúng Từ yêu cầu thực tiễn, để nâng cao kỹ thực hành củng cố lý thuyết, đề tài “Xây dựng Hệ hệ thời gian thực ứng dụng cho toán quản lý nhà hàng dịch vụ” chọn làm đề tài luận văn Hiện nhà hàng dịch vụ lớn phát triển mạnh Việc quản lý vận hành chủ yếu dùng sức người làm cho chất lượng dịch vụ kém, hạn chế kết kinh doanh Việc đưa ứng dụng thiết bị truyền thông công nghệ thông tin nâng cao chất lượng, quy mô phục vụ đem lại hiệu kinh tế to lớn Đối tượng nghiên cứu đề tài hệ thống thời gian thực, xây dựng hệ thống thông tin kết hợp với thiết bị nhúng để phục vụ cho sở dịch vụ nhà hàng Ngoài phần mở đầu, kết luận phụ lục, luận văn chia làm chương: Chương I: Tổng quan hệ thời gian thực hệ nhúng Chương trình bày khái niệm chung hệ thời gian thực đặc biệt hệ thống nhúng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang 77 − Có 23 ngõ vào để kết nối với thiết bị bên ngồi − Có 28 chân bao gồm chân, nguồn, đất chân dao động − Điện áp sử dụng: 4,5 – 5,5 Vol − Công suất tiêu thụ: Chế độ làm việc: 3,6 mA Chế làm việc hạn chế (Idle Mode): 1mA Chế độ nghỉ (Stand by): 0,5 uA ATmega48 ATmega48 có tính tương tự Atmega8 có số khác biệt mơ tả đây: − Có thể sử dụng nguồn dao động lên tới 20 MHz phù hợp với ứng dụng đòi hỏi tốc độ xử lý cao − Có nhớ liệu (EEPROM) 256 Bytes − Hỗ trợ chế độ: Nghỉ Standby đánh thức việc thay đổi trạng thái chân vào Cho phép đánh thức ngắt − Điện áp sử dụng: từ 1.8 - 2.5V − Công suất tiêu thụ: Chế độ làm việc: − Dao động MHz, 1.8V: 240μA − Dao động 32 kHz, 1.8V: 15μA (including Oscillator) Chế độ nghỉ: 0.1μA at 1.8V Vì u cầu điện áp thấp, cơng suất tiêu thu nên sử dụng nguồn ni loại pin nhỏ thích hợp với ứng dụng cho thiết bị di động không dây LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang 78 PLII Chức khối vi điều khiển AVR [3] Bộ nhớ chương trình (Program memory) Bộ nhớ chương trình (Flash) nhớ để lưu trữ file chương trình sau biên dịch sang mã máy, nhớ lập trình lại nhiều lần, chip AVR cũ (như dòng AT90S1200 hay ATxx2313…) nhớ chương trình gồm phần gọi Application Flash Section chip AVR chúng có thêm phần Boot Flash setion Application section bao gồm hai phần: phần chứa mã lệnh cho hoạt động chip (instruction) phần chứa vector ngắt (interrupt vectors) Các vector ngắt nằm phần đầu application section (từ địa 0x0000) dài đến tùy thuộc vào loại chip Phần chứa lệnh nằm liền sau đó, chương trình viết cho chip phải nạp vào phần Ngắt chương trình địa người lập trình chọn khơng vượt qua địa giới hạn mà chíp quy định Đối với vector ngắt chip ATMEGA8 kéo dài đến địa 0x012, chương trình vị trí sau Để biết độ dài vector ngắt chip phải tham khảo datasheet [Atm.MG8] Bộ nhớ liệu (Data memory) Đây phần chứa ghi quan trọng chip, việc lập trình cho chip chủ yếu truy cập nhớ Bộ nhớ liệu chip AVR có độ lớn khác tùy theo chip, nhiên phần nhớ chia thành năm phần hình PLII.1: 2.1 Các ghi file Phần cốt lõi VĐK AVR kết hợp tập lệnh phong phú 32 ghi làm việc đa Toàn 32 ghi nối trực tiếp với khối ALU (Arithmetic Logic Unit), cho phép truy cập hai ghi độc lập chu kì xung nhịp Phần phần nhớ liệu, mô tả hình PLII.3, bao gồm 32 ghi có tên gọi register file, đơn giản LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang 79 ghi Tất ghi ghi bits hình PLII.2 Hình PLII.1: Bản đồ nhớ liệu Hình PLII.2: Thanh ghi nhớ liệu − Tất chip họ AVR bao gồm 32 ghi file có địa tuyệt đối từ 0x0000 đến 0x001F Mỗi ghi chứa giá trị dương từ đến 255 giá trị có dấu từ -128 đến 127 mã ASCII ký tự đó…Các ghi đặt tên theo thứ tự R0 đến R31 Chúng chia thành hai phần, phần bao gồm ghi từ R0 đến R15 phần ghi R16 đến R31 − Hầu hết lệnh truy nhập trực tiếp tất ghi file, ngoại trừ lệnh SBCI, SUBI, CPI, ANDI LDI truy nhập ghi từ R16 đến R31 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang 80 Thanh ghi R0 ghi sử dụng lệnh LPM (Load Program Memory) Các ghi R26, R27, R28, R29, R30 R31 chức thơng thường cịn sử dụng trỏ (Pointer register) số lệnh truy xuất gián tiếp Địa Địa Chức IO SRam Rx (x=0->31) $00:5F Các ghi thông thường R26->R31 Sử dụng làm trỏ R25:R24 Sử dụng làm biến đếm 16 bít R31:R30 R0 Sử dụng làm biến đọc chương trình R16->R23 Truy cập bít ghi R0->R15 Khơng nạp trực tiếp (Ldi) số SP $3E $5E Con trỏ vào Stack SPH $3E $5E Byte cao SP SPL $3D $5D Byte thấp SP SREG Thanh ghi trạng thái X=R26:R27 Thanh ghi 16 bit Y=R28:R29 Thanh ghi 16 bit Z=R30:R31 Thanh ghi 16 bit Ký hiệu Bảng PLII.3: Mô tả ghi VĐK AVR Tóm lại, 32 ghi file AVR xem phần CPU, chúng CPU truy cập trực tiếp, để gọi ghi cần gọi trực tiếp tên chúng Thanh ghi file thường sử dụng toán hạng phép tốn lập trình 2.2 Các ghi vào (IO) Đây phần nằm sau ghi file, phần bao gồm 64 ghi gọi ghi vào (I/O register) hay gọi vùng nhớ vào (I/O Memory) Để thống thuật ngữ từ sau gọi chúng “vùng nhớ IO” Vùng nhớ IO cửa ngõ giao tiếp CPU thiết bị ngoại vi Tất ghi điều khiển, trạng thái…của thiết bị ngoại vi nằm Vùng nhớ I/O truy cập SRAM hay ghi I/O Nếu sử dụng lệnh truy xuất SRAM để truy xuất vùng nhớ địa chúng tính LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang 81 từ 0x0020 đến 0x005F Nhưng truy xuất ghi I/O địa chúng đựơc tính từ 0x0000 đến 0x003F 2.3 Bộ nhớ (Internal Ram) Đây vùng nhớ có địa sau vùng nhớ IO, vùng nhớ khơng có tên, người lập trình muốn truy cập vào vùng nhớ phải truy cập gián tiếp thơng qua ghi địa 2.4 Bộ nhớ mở rộng (External Ram) Đây nhớ không nằm VĐK Các chip AVR cho phép người sử dụng gắn thêm nhớ để chứa biến vùng nhớ không đủ, vùng thực chất tồn ứng dụng gắn thêm nhớ vào chip 2.5 Bộ nhớ EEPROM EEPROM (Electrically Ereasable Programmable ROM) phần quan trọng chip AVR mới, Bộ nhớ khơng bị xóa điện chí chúng cịn khơng bị xóa nạp trình lại cịn ghi chương trình chip Nó thích hợp cho ứng dụng cần lưu trữ liệu Như hình PLII.1, phần nhớ EEPROM tách riêng có địa tính từ 0x0000 Khối tính tốn logic (Arithmetic Logic Unit) Trong AVR, khối ALU (Arithmetic Logic Unit) khối tính tốn logic, kết nối trực tiếp với 32 ghi File (ALU xem CPU AVR) hai đường, ALU truy xuất trực tiếp lúc hai ghi file chu kỳ xung clock Các lệnh chứa nhớ chương trình Flash memory dạng ghi 16 bit Mỗi lệnh chứa nhớ chương trình nạp vào ghi lệnh, ghi lệnh truyền lệnh vào ghi file RAM cho ALU thực thi Trong lúc thực thi chương trình, địa dịng lệnh thực thi định đếm chương trình – PC (Program counter) LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang 82 Khối ngăn xếp Ngăn xếp (Stack) hiểu “tháp” liệu, dùng để lưu trữ liệu địa tạm thời ghi Cũng ngăn xếp thơng thường, hoạt động theo ngun tắc LIFO (Last In First Out – vào sau trước)(Hinh PLII.3) Hình PLII.3: Mô tả ngăn xếp LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang 83 PLIII Các tập lệnh dùng cho lập trình AVR [5] Tập lệnh dùng cho ghi file Tên lệnh Chức Cú pháp Phạm vi Ví dụ Load số K vào ghi Từ R16 đến R31 Rd LDI R16, 99 MOV Rd, Rr Copy giá trị ghi Rr vào ghi Rd Tất ghi file MOV R15, R16 kết R15 có giá trị với R16 (R15=R16=99) CLR (CLEAR Register) CLR Rd Rd=0x00 Tất ghi file CLR R16 kết R16 = 0x00 SER (SET Register) SER Rd Rd=0xFF Từ R16 đến R31 SER R16 kết R16 = 0xFF CBR (CLEAR Bit in Register) CBR Rd, K Nếu Bit K Bit tương ứng Rd bị xóa Từ R16 đến R31 CBR R16, 0xF0 kết bit cao R16 bị xóa K=11110000 (B) SBR (SET Bit in Register) SBR Rd, K Bit K Từ R16 đến R31 SBR R16, 0xF0 kết bit cao R16 set lên LDI(LoaD Immediate) LDI Rd, K MOV (MOVE) Bit tương ứng Rd set lên BLD (Bit LoaD from BLD Rd, b Load giá trị cờ T T Flag) ghi SREG vào bit thứ b Thanh ghi R16 mang giá trị 99 K=11110000 (B) Tất ghi file SET ; set bit T lên LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang 84 ghi Rd BLD R16, Kết bit thứ ghi R16 set lên giá trị bit T BST (Bit Storage from T Flag) BST Rd, b Copy bit thứ b ghi Tất ghi Rd vào cờ T file ghi SREG BST R16, kết cờ T chứa giá trị bit ghi R16 CPI (COMPARE with Immediate) CPI Rd, K so sánh ghi Rd với Từ R16 đến R31 số K, lệnh làm thay đổi nhiều bit LDI R16, 10 ghi SREG thay đổi cờ Zero quan trọng nhất, Rd = K cờ CPI R16, 10 Kết cờ Z set thành lúc R16 =10 Z=1, ngược lại Z=0, sử dụng đặc điểm thay đổi cờ Z kết hợp với lệnh BRNE BREQ tạo thành lệnh rẽ nhánh ANDI (AND with Immediate) ANDI Rd, K AND (Logical AND) AND Rd, Thực phép Logic AND Từ R16 đến R31 ghi Rd với số K kết đặt Rd ANDI R17, 0x00 kết R17 có 0x00 Thực phép Logic AND LDI R1, 0xFF ; Gán 0xFF vào R1 Tất ghi LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang 85 Rr ghi Rd Rr, kết file đặt lại Rd LDI R17, 0xAA; Gán 0xAA vào R17 AND R1, R17 Kết R1=0xAA ORI (Logical OR with Immediate) ORI Rd, K OR (Logical OR) OR Rd, Rr Thực phép Logic OR Từ R16 đến R31 ghi Rd với số K kết đặt Rd ORI R17, 0xFF Thực phép Logic OR Tất ghi ghi Rd Rr, kết file đặt lại Rd LDI R1, 0xFF ;(11111111) kết R17 = 0xFF LDI R17, 0xAA; (10101010) AND R1, R17 Kết R1=0xFF LSL(Logical Shift Left) LSL Rd LSR(Logical Shift Right) LSR Rd Dịch tất ghi Rd sang trái vị trí, Bit (bit cao nhất) Rd chứa cờ nhớ C, bit Rd bị xóa thành Thực chất LSL tương đương với phép nhân ghi Rd với Tất ghi file LDI R1, 0B11000011; Dịch tất ghi Rd sang phải vị trí, Bit (bit thấp nhất) Rd chứa cờ nhớ C, bit Rd Tất ghi file LDI R1, 0B11000110; Kết R1=10000110 cờ C =1 ghi R1 dịch sang trái vị trí, trước dịch bit R1 nên sau dịch bit chứa C, C=1 Kết R1=01100001 cờ C =1 ghi R1 dịch sang phải vị LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang 86 bị xóa thành Thực chất LSR tương đương với trí, trước dịch bit R1 nên sau dịch bit chứa C, phép chia ghi Rd cho C=1 ADD(ADD without Carry) ADC(ADD with Carry) INC (INCrement) ADD Rd, Rr ADC Rd, Rr INC Rd Thực phép cộng ghi Rd Rr , kết đặt Rd Cờ nhớ C không bị tác động Tất ghi file Thực phép cộng ghi Rd Rr , kết đặt lại Rd Cờ nhớ C =1 kết vượt 252 Tất ghi file Tăng ghi Rd đơn vị kết đặt Rd Tất ghi file INC R17 kết R17 tăng thêm đơn vị Tất ghi LDI R16, 30 LDI R16, 30 LDI R17, 25 ADD R16, R17 Kết R16=52 LDI R16, 255 LDI R17, ADC R16, R17 Kết R16=0 cờ C=1vì kết phép cộng 256=100000000 Lệnh thường sử dụng cho ứng dụng lặp, kết hợp với BREQ hay BRNE tạo thành vòng lặp FOR SUB(SUBtract SUB Rd, Thực phép trừ LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang 87 without Carry) SUBI(SUBtract Immediate) Rr SUBI Rd, K ghi Rd - Rr, kết đặt lại Rd Cờ nhớ C không bị tác động file Thực phép trừ ghi Rd với số K, kết đặt lại Rd Từ R16 đến R31 LDI R17, 25 SUB R16, R17 Kết R16=2 LDI R16, 30 SUBI R16, 20 Kết R16=10 DEC (DECrement) DEC Rd Giảm ghi Rd đơn vị kết đặt lại Rd Tất ghi file DEC R17 kết R17 giảm đơn vị MUL (MULtiply unsigned) MUL Rd, Rr Thực phép nhân không dấu ghi bit Rd, Rr, kết số 16 bit đặt ghi R1:R0 Khi Rd Rr ghi R1 R0 kết sau tính ghi đè lên Tất ghi file LDI R16, 30 LDI R17, 25 MUL R16, R17 Kết R1=0x2, R0=0xEE, 30x25=750=0x02EE LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang 88 Tập lệnh dùng cho ghi I/O Tên lệnh Cú pháp Chức Phạm vi Ví dụ OUT(OUTPUT Data ) OUT A,Rr Xuất giá trị từ ghi Rr ghi có địa A vùng nhớ I/O Rr ghi file A bị giới hạn từ đến 62 LDI R16, 0xFF Nạp giá trị từ ghi có địa A vùng nhớ I/O vào ghi Rr Rr ghi file A bị giới hạn từ đến 63 IN R16, 0x10 Đặt Bit thứ b ghi có địa A vùng nhớ I/O lên Lệnh khơng có tác dụng tồn vùng I/O mà có tác 32 ghi đầu (địa từ đến 31) A bị giới hạn từ đến 31 SBI 0x12, IN(INPUT Data SBI(Set Bit in I/O Register) IN Rr, A SBI A, b OUT 0x11, R16 Kết ghi có địa 0x11 vùng I/O, tức ghi DDRD, có giá trị 0xFF Kết ghi R16 nhận giá trị ghi có địa 0x11 vùng I/O, tức ghi PIND, ví dụ đọc giá trị chân PORTD vào R16 Kết bit ghi có địa 0x12 vùng I/O, tức ghi PORTD, set lên Đây ví dụ set chân PD2 PORTD LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang 89 Các lệnh truy cập nhớ Tên lệnh Cú pháp Chức Phạm vi LDS(Load direct from data Space) LDS Rd, k Nạp giá trị byte từ ghi có địa k SRAM vào ghi Rd, k dạng địa tuyệt đối có giới hạn từ đến 65535 Rd ghi ghi file, giá trị lớn k 65535, với lệnh khôngthể truy cập vượt khoảng không gian 64KB AVR chưa có nhớ vượt qua 64KB STS(STorage direc to data Space) STS k, Rr Ví dụ LDS R2, 0x0060 Kết ghi R2 chứa giá trị ghi có địa 0x0060, ghi khoảng SRAM (sau ghi file vùng I/O) Lệnh hoàn toàn giống LDS dùng để xuất liệu từ ghi Rr RAM Các lệnh rẽ nhánh vòng lặp Tên lệnh Cú pháp BRNE (BRanch if Not EQual ) BRNE LABEL Chức Ví dụ Nhảy đến nhãn LABEL cờ Z DELAY0: =0 Cờ Z chịu tác động LDI R20, 0xFF nhiều lệnh CP, CPI, SUB, DELAY0: SUBI…vì BRNE thường LDI R21, 0xFF sử dụng sau lệnh LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang 90 DELAY1: DEC R21 BRNE DELAY1 DEC R20 BRNE DELAY0 RET BREQ(BRanch BREQ if EQual ) LABEL Trái ngược với lệnh BRNE, lệnh BREQ kiểm tra cờ Z=1? LDI R16, 0xFF LDI R17, 0xFF CP R16, R17 ; so sanh ghi R16, R17 BREQ RENHANH … RENHANH: Kết việc rẽ nhánh xảy so sánh CP, R17=R16 nên cờ Z tự động set 1, lệnh BREQ thực thi nhảy đến nhãn RENHANH Ví dụ tương đương cấu trúc if (R16=R17) {thực việc rẽ nhánh} BRLO(BRanch BRLO if LOwer LABEL Bản chất câu lệnh nhảy đến nhãn LABEL cờ C =1 Thông thường lệnh sử dụng theo sau lệnh CP, CPI, XOR R16, R16 ; R16 =0 VONG LAP: INC R16 ;tăng R16 thêm đơn vị LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trang 91 SUB, SUBI…khi việc rẽ CPI R16, $10 ; So sánh R16 với số hexa $10 nhánh xảy ghi Rd BRLO VONGLAP; nhảy VONGLAP R16