Tài liệu môn kỹ thuật vi điều khiển 8

47 35 0
Tài liệu môn kỹ thuật vi điều khiển 8

Đ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

3 LẬP TRÌNH HỢP NGỮ 3.1 Khái niệm hợp ngữ + Hợp ngữ • CPU làm việc với số nhị phân , chương trình chứa số gọi ngôn ngữ máy • Các nguồn ngữ hợp ngữ phát, cung cấp từ gợi nhớ cho lệnh mã máy cộng với đặc tính khác giúp cho việc lập trình nhanh mắc lỗi • Các chương trình hợp ngữ phải dịch thành mã máy chương trình trình hợp ngữ (hợp dịch) • Hợp ngữ coi ngơn ngữ bậc thấp giao tiếp trực tiếp với cấu trúc bên CPU • Để lập trình hợp ngữ, lập trình viên phải biết tất ghi CPU kích thước chúng chi tiết khác Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com 3.2 Cấu trúc hợp ngữ + Cấu trúc hợp ngữ • Một chương trình hợp ngữ bao gồm chuỗi dòng lệnh hợp ngữ • Một lệnh hợp ngữ có chứa từ gợi nhớ (memonic) Tùy theo lệnh mà sau có hai tốn hạng • Các tốn hạng liệu cần thao tác Các từ gợi nhớ thơng báo CPU làm với liệu Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com 3.2 Cấu trúc hợp ngữ + Cấu trúc hợp ngữ ORG 00H COUNT EQU ORG 500H DATA1: DB MOV MOV MOV ; Bắt đầu (origin) ngăn nhớ 25 2BH ; Số thập phân (2B dạng Hex) R5, #01101H ; Nạp 01101H vào R5 R7, #01101B ; Nạp 01101B vào R7 R6, #01101 ; Nạp 01101 vào R6 Lap : MOV ADD ADD ADD SJMP END lap A, #0 ; Nạp vào ghi A A, R5 ; Cộng nôi dụng R5 vào A (A = A + R5) A, R7 ; Cộng nội dung R7 vào A (A = A + R7) A, #0AH ; Cộng giá trị 0AH vào A (A = A + 0AH) ; Nhảy đến vòng lặp ; Kết thúc file nguồn hợp ngữ Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com 3.2 Cấu trúc hợp ngữ + Cấu trúc câu lệnh hợp ngữ • Cấu trúc lệnh hợp ngữ có trường sau: [nhãn:] [từ gợi nhớ] [các toán hạng] [; giải] Ví dụ: Batdau: mov R0, #00H ; xóa ghi R0 • Trường nhãn cho phép chương trình tham chiếu đến dòng lệnh tên Nó không viết số ký tự định • Từ gợi nhớ (lệnh) toán hạng trường kết hợp với thực thi công việc thực tế chương trình hồn thiện nhiệm vụ mà chương trình viết cho chúng • Trường thích ln phải bắt đầu dấu chấm phẩy (;) Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com 3.2 Cấu trúc hợp ngữ + Chỉ lệnh hợp ngữ • Chỉ lệnh ORG: dùng để báo bắt đầu địa • Số sau ORG có kể dạng Hex thập phân Nếu số có kèm chữ H đằng sau dạng Hex khơng có chữ H sau số thập phân hợp ngữ chuyển thành số Hex Một số hợp ngữ sử dụng dấu chấm đứng trước “ORG” thay cho “ORG” • Chỉ lệnh EQU: Được dùng để định nghĩa số mà không chiếm ngăn nhớ • Chỉ lệnh EQU không dành chỗ cất cho liệu gắn giá trị số với nhãn liệu cho nhãn xuất chương trình giá trị số thay nhãn Ví dụ: sang tat EQU EQU 0; 1; Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com 3.2 Cấu trúc hợp ngữ + Chỉ lệnh hợp ngữ • Chỉ lệnh DB (định nghĩa byte): dùng để định nghĩa liệu bit DATA1: DATA2: DATA3: DB DB DB 2B 00110101B 39H ; Số thập phân (1C dạng Hex) ; Số nhị phân (35 dạng Hex) ; Số dạng Hex • Chỉ lệnh END: Nó báo cho trình hợp ngữ kết thúc file nguồn “asm” lệnh END dòng cuối chương trình 8051 • Trong mã nguồn thứ sau lệnh END để bị trình hợp ngữ bỏ qua • Một số trình hợp ngữ sử dụng END có dấu chấm đứng trước thay cho END Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com 3.2 Cấu trúc hợp ngữ + Lưu đồ thuật tốn •Cơng cụ trực quan để diễn đạt thuật tốn •Biểu diễn thuật tốn lưu đồ giúp người đọc theo dõi phân cấp trường hợp trình xử lý thuật tốn •Phương pháp lưu đồ thường dùng thuật tốn có tính rắc rối, khó theo dõi trình xử lý Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng Bắt đầu/ kết thúc trìn Vào/ liệu Thực thi Ra định Bước A Nối với nhánh A caonam@gmail.com 3.3 Các chế độ định địa -Khi lệnh thực thi lệnh yêu cầu liệu, câu hỏi đặt "Dữ liệu chứa đâu?" Câu trả lời cho câu hỏi tạo kiểu (mode) định địa 8051 -Các kiểu định địa cho phép ta xác định rõ nguồn đích liệu theo nhiều cách khác phụ thuộc vào tình lập trình -Dữ liệu chứa RAM, ROM nhớ Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com 3.3 Các chế độ định địa 7F 7E 7D 7C 7B 7A 79 78 … Byte address 7FH 2F 2E RAM đa mục đích 30H 2FH RAM định địa bit 20H 1FH 18H 17H 10H 0FH 08H 07H 00H Bank Bank Bank (Stack) Default Register Bank for R0-R7 R7 R6 R5 R4 1F 17 0F 07 1E 1D 1C 1B 1A 16 15 14 13 12 0E 0D 0C 0B 0A 06 05 04 03 02 19 11 09 01 … 18 10 08 00 20 R3 R2 Bit address R1 R0 Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com Tập lệnh Nhóm lệnh điều khiển rẽ nhánh + Nhảy không điều kiện LỆNH AJMP addr11 LJMP addr16 SJMP rel MÔ TẢ Nhảy (chuyển việc thực thi chương trình) khơng điều kiện đến địa lệnh Nhảy ngắn, rẽ nhánh không điều kiện JMP @A+DPTR Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng Nhảy gián tiếp caonam@gmail.com Tập lệnh Nhóm lệnh điều khiển rẽ nhánh + Nhảy có điều kiện LỆNH MƠ TẢ rel Nhảy đến địa chỉ(hoặc nhãn) lệnh nêú nội dung A Jump if A Zero JNZ rel Nhảy đến địa chỉ(hoặc nhãn) lệnh nêú nội dung A khác Jump if A Not Zero JZ Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com Tập lệnh Nhóm lệnh điều khiển rẽ nhánh + Nhảy có điều kiện LỆNH DJNZ DJNZ Rn,rel direct,rel MÔ TẢ Giảm byte toán hạng lệnh rẽ nhánh đến địa kết sau giảm khác Nếu kết sau giảm thực lệnh Decrease and Jump if Not Zero Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com Tập lệnh Nhóm lệnh điều khiển rẽ nhánh + Nhảy có điều kiện LỆNH CJNE dest,source,rel CJNE A,direct,rel CJNE A,#data,rel CJNE @Ri,#data,rel CJNE Rn,#data,rel Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng MÔ TẢ So sánh nhảy đến địa (hoặc label) lệnh dest source không Nếu nhau, thực lệnh Compare and jump if not equal caonam@gmail.com Tập lệnh Nhóm lệnh điều khiển rẽ nhánh + Nhảy có điều kiện LỆNH MƠ TẢ JNB bit,rel Nếu bit lệnh 0, nhảy đến địa lệnh Ngược lại, thực lệnh JB bit,rel Nếu bit lệnh 1, xóa bit nhảy đến địa lệnh Ngược lại, thực lệnh Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com Tập lệnh Nhóm lệnh điều khiển rẽ nhánh + Nhảy có điều kiện LỆNH MƠ TẢ JC rel Nếu C =1, nhảy đến địa lệnh Ngược lại, thực lệnh JNC rel Nếu C=0, xóa bit nhảy đến địa lệnh Ngược lại, thực lệnh Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com Tạo thời gian trễ 4.1 Chu kỳ máy Đối với CPU để thực lệnh chu kỳ đồng hồ coi chu kỳ máy Độ dài chu kỳ máy phụ thuộc vào tần số dao động thạch anh nối vào hệ thống 8051 (4MHz đến 30 MHz)  Thông thường sử dụng thạch anh tần số 11.0592MHz 12MHz Một chu kỳ máy kéo dài 12 chu kỳ dao động Do vậy, để tính tốn chu kỳ máy ta lấy 1/12 tần số tinh thể thạch anh Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com Tạo thời gian trễ 4.1 Chu kỳ máy • VD TA 12MHz => f=12.106 Hz t MC t= f MC= 12.t = 12.106S 11.0592/12 = 921.6kHz; Mc=1/921.6kHz = 1.085s 16MHz/12 = 1.333MHz; Mc= 1/1.333MHz = 0.75s 20MHz/12 = 1.66MHz ; MC = 1/1.66MHz = 0.60s Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com Tạo thời gian trễ 4.1 Chu kỳ máy • Ví dụ: Đối với hệ thống 8051 có 16MHz tìm thời gian cần thiết để thực lệnh sau a)MOV R3, #55 b) DEC R3 c) DJNZ R2, target d) LJMP dich e) SJMP dich f) NOP g) MUL AB Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com Tạo thời gian trễ 4.1 Chu kỳ máy Lệnh (a) MOV R3, #55 (b) DEC R3 (c) DJNZ R2, target (d) LJMP dich (e) SJMP dich (f) NOP (g) MUL AB MC 1 2 Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng Thời gian thực  1.085 s = 1.085 s  1.085 s = 1.085 s  1.085 s = 2.17 s  1.085 s = 2.17 s  1.085 s = 2.17 s  1.085 s = 1.085 s  1.085 s = 4.34 s caonam@gmail.com Tạo thời gian trễ 4.2 Tính tốn độ trễ ví dụ: AGAIN: CPL P2.0 ACALL DELAY SJMP AGAIN ; Time delay DELAY: MOV R3, #200 HERE : DJNZ R3, HERE RET Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com Tạo thời gian trễ 4.2 Tính tốn độ trễ DELAY : HERE : MOV DJNZ RET R3, #200 R3, HERE Delay Gán R3=200 HERE R3=R3-1 -Kiểm tra R3=0 Sai Đúng Thoát Tổng thời gian giữ chậm là: [(200  2) + + 1]  1.085 = 436.17s Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com Tạo thời gian trễ 4.2 Tính tốn độ trễ Vẽ lưu đồ thuật tốn tính thời gian trễ hàm DELAY sau: DELAY HERE2: HERE1: HERE : DELAY: MOV HERE2: HERE1: HERE : DJNZ NOP DJNZ ADD RET :MOV MOV MOV ADD DJNZ DJNZ NOP NOP DJNZ RET R0, #20 R1,#150 R2,#200 A,R2 R2, HERE R1, HERE1 Ví dụ Ví dụ DELAY HERE2: HERE1: HERE : R0, HERE2 NOP R0, #20 MOV R1,#150 MOV R2,#200 DJNZ R2, HERE R1, HERE1 Ví dụ :MOV NOP NOP MOV ADD MOV DJNZ DJNZ DJNZ RET R0, #20 R1,#150 A,R2 R2,#200 R2,HERE R1, HERE1 R0, HERE2 Ví dụ DELAY: R0, HERE2 A,R2 Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng NOP MOV R0, #20 HERE2: MOV R1,#150 HERE1: MOV R2,#200 MUL AB HERE : DJNZ R2, HERE NOP DJNZ R1, HERE1 DJNZ R0, HERE2 ADD A,R2 RET caonam@gmail.com Tạo thời gian trễ 4.2 Tính tốn độ trễ Ví dụ 1: Viết chương trình nhấp nháy (xuất xung vng) LED nối chân P3.2 với chu kì 0.5 giây (tần số 2Hz) Ví dụ 2: Viết chương trình điều khiển bóng đèn nối vào chân P1.0 hoạt động lặp lại theo quy trình sau: Sáng 1sTắt 0.5s  Sáng 0.7s Tắt 2s Trong đó: Sáng: mức 1, tắt: mức Ví dụ 3: Thiết kế sơ đồ, vẽ lưu đồ thuật tốn viết chương trình điều khiển bóng đèn nối vào chân P2.3 với điều kiện sau: - Khi bóng đèn sáng: nhấn nút P3.3 lần tắt - Khi bóng đèn tắt: nhấn nút P3.3 lần sáng Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com Tập lệnh Ví dụ: Viết chương trình điều khiển đèn giao thông - Yêu cầu: + X1, D1,V1: P0.0, P0.1, P0.2 + X2, D2, V2: P0.3, P0.4, P0.5 + 1: sáng; tắt + Xanh sáng 25 giây, vàng 5s, đỏ 30s - Hướng giải quyết: + Tạo hàm trễ 1s + Tạo biến đếm lên sau giây + So sánh với 25, 30, 55, 60 để bật tắt bóng đèn tương ứng Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com ... thay biến byte liệu tức thời - Trước liệu phải có dấu # -Tất lệnh sử dụng kiểu định địa tức thời sử dụng liệu 8- bit làm liệu tức thời -Có ngoại lệ ta khởi động trỏ liệu 16-bit DPTR, liệu 16-bit... Lưu đồ thuật tốn •Cơng cụ trực quan để diễn đạt thuật tốn •Biểu diễn thuật toán lưu đồ giúp người đọc theo dõi phân cấp trường hợp trình xử lý thuật tốn •Phương pháp lưu đồ thường dùng thuật tốn... đầu/ kết thúc q trìn Vào/ liệu Thực thi Ra định Bước A Nối với nhánh A caonam@gmail.com 3.3 Các chế độ định địa -Khi lệnh thực thi lệnh yêu cầu liệu, câu hỏi đặt "Dữ liệu chứa đâu?" Câu trả lời

Ngày đăng: 23/05/2020, 11:54

Mục lục

    3. LẬP TRÌNH HỢP NGỮ

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

  • Đang cập nhật ...

Tài liệu liên quan