1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Kinh nghiệm sử dụng keil c để lập trình cho x51

37 426 2

Đ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 37
Dung lượng 269,41 KB

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

Nội dung

Ôn lại về ngôn ngữ lập trình C và x51• Hai tài liệu ngắn gọn về ngôn ngữ C bằng tiếng bạn đọc hết 2 tài liệu này, nó giúp bạn hiểu rõ vài vấn đề hóc búa trong C như con trỏ và bộ... Ôn l

Trang 1

Kinh nghiệm sử dụng Keil

C để lập trình cho x51.

Trang 2

• MCU 51 là loại vi điều khiển 8 bit, giá thành

thường rẻ hơn các loại vdk khác, dể sử dụng, tàiliệu về nó rất nhiều cho nên hiện nay nó vẫn cònđược sử dụng

• Có rất nhiều công cụ để lập trình cho x51 Trong

đó Keil C là công cụ mạnh, hổ trợ nhiều dẫn

xuất của x51, công cụ debug rất mạnh, sinh mã

có hiệu suất cao

Trang 3

Topics of Discussion

• Ôn lại về ngôn ngữ lập trình C và x51

• Giới thiệu sơ lược về Keil C

• Tạo 1 project để lập trình bằng ASM trên Keil C

• Tạo 1 project để lập trình bằng C trên Keil C

Trang 4

Ôn lại về ngôn ngữ lập trình C và x51

• Hai tài liệu ngắn gọn về ngôn ngữ C bằng tiếng

bạn đọc hết 2 tài liệu này, nó giúp bạn hiểu rõ

vài vấn đề hóc búa trong C như con trỏ và bộ

Trang 5

Ôn lại về ngôn ngữ lập trình C và

• #include <tên file header>

• #include “tên file header”

• Cách đầu tiên trình biên dịch sẽ tìm trong thư viện của

nó, cách thứ 2 compiler sẽ tìm trong thư mục hiện tại chứa project hoặc trong đường dẫn bạn cung cấp Vd:

#include “C:\vd.h” trình biên dịch sẽ tìm file vd.h ở ổ C

Trang 7

Ôn lại về ngôn ngữ lập trình

Trang 8

Ôn lại về ngôn ngữ lập trình

C và x51

• Ôn lại một chút về C :

– Typedef:

• Đặt tên lại kiểu dữ liệu

• typedef unsigned char BYTE;

– Struct:

• Khai báo kiểu cấu trúc

• struct time{int hour, min, sec};

• struct time{int hour, min, sec}STime;

Trang 9

Ôn lại về ngôn ngữ lập trình

C và x51

• Ôn lại một chút về C :

– Enum:

• Kiểu liệt kê

• enum day{Sun, Mon, Tue, Wed, Thu, Fri, Sat};

– Array:

• Kiểu mảng

• unsigned char Buffer[100];

Trang 10

Ôn lại về ngôn ngữ lập trình

• Khai báo kiểu con trỏ

• unsigned char *Buffer;

Trang 11

Giới thiệu sơ lược về Keil C

• volatile unsigned char reg1;

– Từ khóa static: khai báo biến tĩnh, biến tĩnh khỏi tạo 1 lần và giữ nguyên giá trị của nó sau mỗi lần gọi hàm nếu nó được khai báo trong hàm.

• static data-type name « = value »;

Trang 12

Giới thiệu sơ lược về Keil C

• Ôn lại một chút về C

– Từ khóa extern: Khai báo 1 biến toàn cục màbiến này đã được định nghĩa trong một

modun khác

• extern unsigned char my;

– Từ khóa register: khai báo biến mà biến đóđược lưu trong thanh ghi

• register data-type name « = value »;

• register unsigned char fastVar = 10;

Trang 13

Giới thiệu sơ lược về Keil C

• Để có bản Evaluation của Keil C bạn vào

trang web điền thông tin rồi download về.

• Nếu bạn có license code của keil C bạn hãy nhập vào như 2 hình sau đây

Trang 16

Giới thiệu sơ lược về Keil C

• Điểm khác biệt của Keil C với C chuẩn

– Kiểu dữ liệu mới:

• bit : khai báo 1 biến kiểu bit, các biến kiểu bit được lưu trữ ở vùng nhớ định địa chỉ bit

– bit name « = value »;

– Vd: bit myFlag = 1;

– Chú ý không thể khai báo con trỏ và mảng kiểu bit

• sbit: Khai báo bit trong các thanh ghi SFR

– sbit name = sfr-name ^ bit-position;

– sbit name = sfr-address ^ bit-position;

– sbit name = sbit-address;

– Vd: sbit output0 = P1^0;sbit output1 = 0x90^1; sbit output2 = 0x92;

Trang 17

Giới thiệu sơ lược về Keil C

• Điểm khác biệt của Keil C với C chuẩn

– Kiểu dữ liệu mới:

• sfr : định nghĩa 1 thanh ghi sfr

– sfr name = address;

– sfr P0 = 0x80;

– Chú ý sfr không thể khai báo bên trong hàm nhé bạn

• sfr16: định nghĩa 1 thanh ghi sfr 16 bit

– sfr16 name = address;

– sfr16 T2 = 0xCC; /* Timer 2: T2L 0CCh, T2H 0CDh */

– Chú ý sfr16 không thể khai báo bên trong hàm

Trang 18

Giới thiệu sơ lược về Keil C

• Điểm khác biệt của Keil C với C chuẩn

– Khai báo vùng nhớ của biến:

• code: vùng nhớ chương trình (thường là ROM) Dùng

để lưu trữ các hằng số hay bảng số liệu.

– unsigned char code code_constant;

• data: vùng nhớ dữ liệu (RAM) trong chip truy cập trực tiếp (128 byte đầu) Có thời gian truy cập nhanh nhất nên thường được sử dụng để khai báo biến.

– unsigned char data fast_variable;

– Chú ý ko thể khai báo hàm kiểu data

Trang 19

Giới thiệu sơ lược về Keil C

• Điểm khác biệt của Keil C với C chuẩn

– Khai báo vùng nhớ của biến:

• bdata: Khai báo 1 biến 8-bit (hoặc cao hơn) ở vùng nhớ định địa chỉ bit (0x20->0x2F)

– unsigned char bdata bdata_var;

– Chú ý ko thể khai báo hàm kiểu data

• idata: vùng nhớ dữ liệu (RAM) trong chip truy cập gián tiếp Vùng nhớ idata bao gồm vùng nhớ data và 128 byte cao truy cập gián tiếp trong 8052 (cái này đọc trong user guilde của c51) Tốc độ truy cập chậm hơn data

– unsigned char idata variable;

Trang 20

Giới thiệu sơ lược về Keil C

• Điểm khác biệt của Keil C với C chuẩn

– Khai báo vùng nhớ của biến:

• Từ khóa _at_: chỉ định địa chỉ mà biến được lưu trong bộ nhớ

– « memory_type » type variable_name _at_ constant; – data char tmp _at_ 0x30;// Khai báo biến tmp kiểu char trong vùng nhớ data tại địa chỉ 0x30.

– Chú ý không thể dùng _at_ với hàm, biến kiểu bit, biến khai báo với _at_ không thể khởi tạo trước Vd câu lệnh sau không hợp lệ

» data char tmp=24 _at_ 0x30;// ko hợp lệ

Trang 21

Tạo 1 project để lập trình bằng

ASM trên Keil C

• Bạn xem các bước ở các slide sau đây

Trang 34

Tạo 1 project để lập trình bằng C

trên Keil C

• Các bước hoàn toàn tương tự chỉ khác ở các slide sau đây:

Trang 37

Vài lời cuối hướng dẫn

• Hướng dẫn đầu tiên có vẻ buồn chán nhưng nó

sẽ giúp bạn ôn lại 1 chút về C, giúp bạn biết tạoproject để lập trình bằng ASM / C cho x51

Chuẩn bị cho mấy cái hướng dẫn tiếp theo

• Lần sau chúng ta sẽ làm 1 project thực thụ Đó

là làm 1 cái đồng hồ (dùng timer nên nó ko

chính xác) hiển thị ra LCD, điều khiển bằng máytính Mục tiêu là giúp bạn làm 1 project thực thụ, viết code,debug, mô phỏng,tối ưu v.v… (Rất thú

vị đó và tất nhiên ko chán như bài này rồi)

Ngày đăng: 14/11/2015, 20:37

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