1. Trang chủ
  2. » Công Nghệ Thông Tin

L P TRÌNH H TH NG NHÚNGBÙI QU C B OVi ñi u khi n 8051BM K Thu t .i n T - .H Bách Khoa TP.HCM21.Vi ñi u khi n 8051BM K Thu t .i n T - .H Bách Khoa TP.HCM3Ph n m mKEIL PROTEUSBM K Thu t .i n T - .H Bách Khoa TP.HCM42.C u trúc b nh pdf

21 489 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 21
Dung lượng 1,04 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 7Cấu trúc bộ nhớ của 8051 chương trình, bộ nhớ dữ liệu trong, bộ nhớ dữ liệu ngoài.. Cấu trúc bộ nhớ của ARM7 LPC2000 Các vi xử lý có kiến trúc

Trang 1

BÙI QUỐC BẢO

LẬP TRÌNH HỆ THỐNG

NHÚNG

Vi ñiều khiển 8051

Trang 2

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 3

Vi ñiều khiển 8051

Phần mềm

Trang 3

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 5

Cấu trúc bộ nhớ của 8051

Trang 4

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 7

Cấu trúc bộ nhớ của 8051

chương trình, bộ nhớ dữ liệu trong, bộ

nhớ dữ liệu ngoài) Mỗi vùng nhớ ñược

truy cập bằng các câu lệnh khác nhau

vùng nhớ cho các biến ñó

Cấu trúc bộ nhớ của ARM7

LPC2000

Các vi xử lý có kiến trúc Newman (VD: ARM) dùng chung 1 không gian nhớ cho

Von-bộ nhớ chương trình và dữ liệu.

Trang 5

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 9

Không gian bộ nhớ chương trình

các số từ 0 ñến 3:

code char square[4] = {0,1,4,9};

Không gian bộ nhớ dữ liệu nội

 Vùng nhớ nội truy xuất trực tiếp (00H-7FH) ñược ký

 VD: khai báo một biến integer:

 idata unsigned int temp;

Trang 6

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 11

Không gian bộ nhớ dữ liệu ngoài

 ðược gọi là external data space (xdata)

 Lnh assembly:

 MOV DPTR, #2000H

 MOVX A,@DPTR

 Chứa các biến ít dùng, các khối dữ liệu lớn

hoặc ngoại vi theo kiểu memory-mapped

 VD:

 xdata unsigned int[1000] ADC_value;

unsigned int checksum (unsigned int

start , unsigned int end )

ñể tính checksum của vùng nhớ

ch*+ng trình từ ñịa chỉ start ñến end

(code)

Trang 7

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 13

unsigned int checksum (unsigned int start, unsigned int end)

 {

 unsigned int code *codeptr, *codeend;

 unsigned int data checksum = 0;



codeptr = (unsigned int code *)start;

 codeend = (unsigned int code *)end;



while (codeptr <= codeend)

 {

 checksum = checksum + (unsigned int data)*codeptr;

 codeptr++; /* go to the next address */

32 unsigned long

-2,147,483,648 to 2,147,483,647 4

32 long

0 to 65,535 2

16 unsigned int

-32,768 to +32,767 2

16 int

0 to 65,535 2

16 unsigned short

-32,768 to +32,767 2

16 short

-32,768 to +32,767 2

16 enum

0 to 255 1

8 unsigned char

-128 to +127 1

8 char

Range Bytes

Bits Type

Trang 8

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 15

Kiêủ float và double

Các kiểu ñặc biệt của C51

0 to 65,535 2

16 sf16

0 to 255 1

8 sfr

0 or 1 1

sbit

0 or 1 1

bit

Range Bytes

Bits Type

Trang 9

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 17

tác ñộng ñến bit trong thanh ghi ta dùng

khai báo sbit

sbit name = sbit-address;

Trang 10

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 19

Trang 11

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 21

Vùng nhớ ñược ñịnh ñịa chỉ bit

 8051 có vùng nhớ ñược ñịnh ñịa chỉ bit ðể

tác ñộng ñến vùng nhớ này ta dùng khai báo

bdata

 bit flag = temp ^0;

sfr, sbit là ñặc biệt cho trường hợp lập

trình 8051

Trang 12

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 23

Trang 13

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 25

Endless loop

 ðơn giản.

 Dễ thực hiện, sửa lỗi và bảo trì

 Không cần sử dụng nhiều tài nguyên hệ

 Tiêu tốn năng lượng vì CPU hoạt ñộng ở

chế ñộ bình thường trong toàn bộ thời gian

Trang 14

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 27

Trang 15

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 29

các số lớn hơn 9 tắt tất cả ñoạn LED)

và hiển thị lên LCD (Dùng bảng tra ñể

lấy mã 7 ñoạn)

Giao tiếp switch

giao tiếp chính của hệ thống nhúng

hoặc mở

Trang 16

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 31

Press detected

delay

Read again Just a bounce

Giao tiếp switch

Với 8051, trước khi ñọc switch ta phải ghi “1” ra bộ chốt của chân port ñang giao tiếp switch

Trang 17

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 33

chống rung) và xuất ra LED

Giao tiếp keypad

Trang 18

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 35

Giao tiếp keypad

Trang 19

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 37

Giao tiếp keypad

getkey_Debound()

Trang 20

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 39

Giao tiếp keypad

 Mặc ñịnh, hàm printf xuất 1 chuỗi ký tự ra

serial port của 8051

 Cấu trúc:

 int printf ( const char * format, );

 Chi tiết tham khảo tại:

 http://www.cplusplus.com/reference/clibrary/cs

Trang 21

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 41

Thư viện của Keil C

viện xuất nhập (stdio), toán (math), …

tham khảo tại:

http://www.keil.com/support/man/docs/c5

1/c51_library.htm

Ngày đăng: 23/03/2014, 12:21

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w