Tải bản đầy đủ - 0 (trang)
d. Tạo chương trình giao tiếp PC-MCU:

d. Tạo chương trình giao tiếp PC-MCU:

Tải bản đầy đủ - 0trang

7



CIDL



6

5-3

2-1



WDTE

CPS1CPS0

ECF



0



Điều khiển trạng thái rỗi của Counter PCA. CIDL=0 sẽ cho

Counter PCA tiếp tục hoạt động bất chấp đang trong trạng

thái rỗi. CIDL=1 sẽ lập trình cho nó khơng hoạt động trong

trạng thái rỗi.

Cho phép Watchdog Timer trên modul 4.

Chưa được khai báo

Lựa chọn nguồn xung đếm cho PCA

Cho phép ngắt khi tràn Counter PCA.



Bảng 3.5 Các bit định nghĩa cho thanh ghi CMOD

Ta sẽ lợi dụng chức năng PWM của PCA để điều xung, nhằm chỉnh mức

áp đặt vào động cơ, qua đó, thay đổi tốc độ của nó. PCA là Timer 16bit đặc biệt,

gồm 5 modul. Mỗi modul có thể lập trình để vận hành 1 trong 4 chế độ: capture

cạnh lên/xuống, timer, ngõ ra tốc độ cao, hay PWM. Timer PCA có thể vận hành

nhờ các nguồn xung nhịp: ½ OscFreq; 1/6OscFreq; tốc độ tràn của timer 0; hay từ

ngõ vào trên chân ECI(P1.2). Nguồn xung nhịp của PCA được chọn nhờ các bit

CPS1-CPS0 trên thanh ghi đa dụng CMOD.

CPS1

0

0

1

1



C

0

1

0

1



Chọn xung nhịp cho PCA

F

F

Tr

Xung nhịp ngoài (ECI) Tốc độ lớn nhất

Bảng 3.6 Quy định cách chọn xung nhịp cho PCA



 Thanh ghi chức năng đặc biệt CCON:



Bảng 3.7 Các bit định nghĩa của thanh ghi CCON

 Thanh ghi chức năng so sánh/capture cho các modul PCA: CCAPMn



- 57 -



Không can thiệp được vào từng bit.



Bảng 3.8 Các bit định nghĩa thanh ghi CCAPMn

 Các chế độ hoạt động của modul PCA

Xem bảng sau:



Bảng 3.9 Các chế độ hoạt động modul PCA

 Chế độ Capture của PCA:

Phải có ít nhất 1 bit trong CAPP hoặc CAPN được bật; sự chuyển mức CEX

sẽ thành ngõ vào Capture cho modul này.Khi có sự chuyển mức hợp lệ trên CEX,

phần cứng của modul PCA sẽ tự nạp các giá trị thanh ghi Timer/Counter của PCA

(CH và CL) vào các thanh ghi Capture modul PCA đó .

Xem hình vẽ dưới để thấy rõ hơn chức năng đấy.



- 58 -



Hình 3.22 Chế độ capture của modul PCA



Ứng dụng của chức năng Capture vào việc đọc Encoder ngắt cạnh ở các

mode Normal, x2, x4 tỏ ra rất tiện lợi, dùng kết hợp 2 modul này để phát hiện

thêm hướng di chuyển cũng rất tốt



Hình 3.23 Mơ hình sử dụng chức năng Capture đề nghị

với 4 chế độ quy định bởi Mode Select

Khi sử dụng hai dây Encoder, giản đồ xung của chúng như hình vẽ trên, giả

sử bạn dùng ngắt cạnh lên, 2số 1-1 biểu thị mode 1, số 1-2 biểu hiện mode x2:

bạn dùng chế độ ngắt cạnh, số 1-4 biểu hiện mode x4. đồng thời, đọc theo thứ tự

ngắt cạnh lên E1-E2 là hướng tới, theo thứ tự E2-E1 là hướng lùi, ta cũng có thể

dùng mode x4 để triệt tiêu nhiễu đo: trường hợp khi dừng, bánh xe khơng dừng

hẳn mà nhích tới nhích lui, dao động quanh vị trí cân bằng, bằng cách tính tổng số

xung tiến lùi trong một lần lấy mẫu, ta có thể biết được vị trí góc quay tương đối

của động cơ.

 Chức năng PWM của PCA:



- 59 -



Hình 3.24 Chức năng PWM của PCA

Ở chức năng này, giá trị ở ngõ ra CEX phụ thuộc vào giá trị của 2 thanh

ghi: CCAPnL và CL, khi CL tăng lớn hơn CCAPnL thì CEX sẽ chuyển sang mức

1, ngược lại, sẽ ở mức 0, mỗi lần tràn cờ, CCAPnL sẽ nạp lại giá trị từ CCAPnH,

chính điều này cũng cho phép ta cập nhật duty cycle mới mà không gây ảnh

hưởng tới quá trình PWM. Chức năng PWM này có độ phân giải 8 bit, tức là ta

được 256 mức chia
24/256≈94mV>

Kết luận:

Mục đích của phần giới thiệu là nêu một cách khái quát về các tính năng

của Vi Điều Khiển để chúng ta có thể ừng dụng một cách dễ dàng những tính năng

của vi điều khiển P89V51RD2 vào điều khiển động cơ bước trong đề tài tốt

nghiệp này. Đồng thời trình biên dịch C-Compiler của Keil-uV3, nó sẽ giúp bạn

nhiều trong các ứng dụng sau này, cho cả nhữngvi điều khiển khác, không phải

chỉ riêng P89V51RD2

3.2.4 Giới thiệu về phần mềm lập trình Keik C:

a. Giới thiệu:

C là ngơn ngữ lập trình được sử dụng rộng rãi và đa năng, chương trình

viết rất chạt chẽ, hiệu quả và thể hiện rõ tính cấu trúc. Ngơn ngữ C được phát

triển cho tất cả các máy tính và các loại vi điều khiển. C là ngơn ngữ lập trình cấp

cao, được để sử dụng rất phổ biến để lập trình hệ thống cùng với Assembler và

phát triển các ứng dụng

Vào những năm cuối của thập ky60 đầu thập kỷ 70 của thế kỷ XX,

Dennish Ritchie (làm việc tại phòng thí nghiệm Bell) đã phát triển ngơn ngữ lập

trình C dựa trên ngơn ngữ BCPL (do Martin Richards đưa ra vào năm 1967) và

ngôn ngữ B (do Ken Thompson phát triển từ ngôn ngữ BCPL vào năm 1970 khi

- 60 -



viết hệ điều hành UNIX đầu tiên trên máy PDP-7và được cài đặt lần đầu tiên trên

hệ điều hành UNIX của máy DEC PDP-11.

Năm 1978, Dennish Ritchie và B.W Kernighan đã cho xuât bản cuốn “

Ngơn ngữ lập trình C “ và được phổ biến rọng rãi cho tới ngày nay. Lúc đẩu, C

được thiết kế nhằm lập trình trong mơi truờng của hệ điều hành UNIX nhằm mục

đích hỗ trợ cơng việc lập trình phức tạp. Nhưng về sau với những nhu cầu phát

triển ngày một tăng của việc lập trình, ngơn ngữ C đã vượt qua khn khổ của

phòng thí nghiệm Bell và nhanh chóng hội nhập vào thế giới lập trình để rồi các

Cong ty lập trình sử dụng một cách rộng rãi. Sau đó các Cơng ty sản xuất phần

mềm lần lượt đưa ra các phiên bản hỗ trợ cho việc lập trình bằng ngơn ngữ C và

chuẩn ANSI C cũng được khai sinh từ đó. Ngơn ngữ lập trình C là một ngơn ngữ

lập trình hệ thống rất mạnh và mêm dẻo, nó có thư viện gầm rất nhiều hàm

(function) đã được tạo sẵn. Ngưòi lập trình có thể tận dụng những hàm này để

giải quyết cái tình huống, các bài tốn mà khơng cần phải tạo mới. Ngồi ra,

ngơn ngữ C còn hỗ trợ rất nhiều phép tốn nên rất phù hợp cho việc giải quyết

các bài toán kỹ thậut có nhiều cơng thức phức tạp; C còn cho phép ngưòi lập

trình tự định nghĩa thêm các kiểu dữ liệu trừu tượng khác. Tuy nhiên, với ngưòi

mới làm quen lập trình với ngơn ngữ C thì sẽ gặp phải một số khó khăn, khó hiểu

vì tính “ mềm dẻo “ của ngôn ngữ C. Dù thế, ngôn ngữ C vẫn được ưa chuộng và

phổ biến khá rông rãi, C đã trở thành một cơng cụ lập trình mạnh và được sử

dụng là một ngơn ngữ lập trình chủ yếu trong việc xây dựng những phần mềm

hiện nay.

Trong khi BCPL và B khơng hỗ trợ kiểu dữ liệu, thì C đã có nhiều kiểu

dữ liệu khác nhau. Những kiểu dữ liệu chính gồm: kiểu ký tự (character), kiểu số

nguyên (interger) và kiểu số thực (float).

C liên kết chặt chẽ với hệ thống UNIX nhưng khơng bị trói buộc vào bất

cứ một máy tính hay hệ điều hành nào. C rất hiệu quả để viết các chương trình

thuộc nhiều những lĩnh vực khác nhau.

C cũng được dùng để lập trình hệ thống. Một chương trình hệ thống có ý

nghĩa liên quan đến hệ điều hành của máy tính hay những tiện ích hỗ trợ nó. Hệ

điều hành (OS), trình thơng dịch (Interpreters), trình soạn thảo (Editors), chương



- 61 -



trình Hợp Ngữ (Assembly) là các chương trình hệ thống. Hệ điều hành UNIX

được phát triển dựa vào C. C đang được sử dụng rộng rãi bởi vì tính hiệu quả và

linh hoạt. Trình biên dịch (compiler) C có sẵn cho hầu hết các máy tính. Mã lệnh

viết bằng C trên máy này có thể được biên dịch và chạy trên máy khác chỉ cần

thay đổi rất ít hoặc khơng thay đổi gì cả. Trình biên dịch C dịch nhanh và cho ra

mã đối tượng không lỗi.

C khi thực thi cũng rất nhanh như hợp ngữ (Assembly). Lập trình viên có

thể tạo ra và bảo trì thư viện hàm mà chúng sẽ được tái sử dụng cho chương trình

khác. Do đó, những dự án lớn có thể được quản lý dễ dàng mà tốn rất ít cơng sức.

 Các đặc điểm cơ bản của ngơn ngữ C:

 Tính cơ đọng (compact): C chỉ có 32 từ khóa chuẩn và 40 tốn tử

chuẩn, nhưng hầu hết đều được biểu diễn bằng chuỗi ký tự ngắn gọn

 Tình cấu trúc (structured): C có một tập hợp những chỉ thị của lập

trình như cấu trúc lựa chọn, cấu trúc lặp, …Từ đó các chương trình

viết bằng C được tổ chức rỗ ràng, mạch lạc và rất khoa học.

 Tính tương thích (compatible): C có bộ tiền xử lý và một thư viện

chuẩn vô cùng phong phú nên khi chuyền từ máy tính này sang máy

tính khác các chương trình viết bằng C vẫn hồn tồn tương thích.

 Tính linh động (flexible): C là ngơn ngữ rất uyển chuyển về cú pháp,

chấp nhận nhiều cách thể hiện có thể thu gọn kích thước các mã lệnh

làm chương trìnhchạy nhanh hơn.

 Biên dịch (compile): C cho phép biên dịch nhiều tập tin chương

trình riêng rẽ thành các tập tin đối tượng (object) và liên kết (link)

các đối tượng đó lại với nhau thành một chương trình có thể thực thi

được (executable) thống nhất.

b. Ra lệnh cho máy tính làm việc:

Khi một máy tính được khởi động, nó sẽ tự động thực thi một số tiến trình

và xuất kết quả ra màn hình. Ðiều này diễn ra thế nào? Câu trả lời đơn giản là

nhờ vào Hệ điều hành cài đặt bên trong máy tính. Hệ điều hành (operating

system) được xem như phần mềm hệ thống. Phần mềm này khởi động máy tính

và thiết lập các thơng số ban đầu trước khi trao quyền cho người dùng. Để làm

- 62 -



được điều này, hệ điều hành phải được cấu tạo từ một tập hợp các chương trình.

Mọi chương trình đều cố gắng đưa ra lời giải cho một hay nhiều bài tốn nào đó.

Mọi chương trình cố gắng đưa ra giải pháp cho một hay nhiều vấn đề. Mỗi

chương trình là tập hợp các câu lệnh giải quyết một bài tốn cụ thể. Một nhóm

lệnh tạo thành một chương trình và một nhóm các chương trình tạo thành một

phần mềm.

Máy tính cũng xử lý dữ liệu dựa vào tập lệnh mà nó nhận được. Ðương

nhiên các chỉ thị đưa cho máy vi tính cũng cần phải hồn chỉnh và có ý nghĩa rõ

ràng. Những chỉ thị này cần phải tn thủ các quy tắc:

1.



Tuần tự



2.



Có giới hạn



3.



Chính xác.



Mỗi chỉ thị trong tập chỉ thị được gọi là “câu lệnh” và tập các câu lệnh được gọi

là “chương trình”.

Khi khối lượng cơng việc giao cho máy tính ngày càng trở nên nhiều và

phức tạp thì tất cả các câu lệnh khơng thể được đưa vào một chương trình, chúng

cần được chia ra thành một số chương trình nhỏ hơn. Tất cả các chương trình này

cuối cùng được tích hợp lại để chúng có thể làm việc với nhau. Một tập hợp các

chương trình như thế được gọi là phần mềm.

Mối quan hệ giữa ba khái niệm câu lệnh, chương trình và phần mềm có

thể được biểu diễn bằng sơ đồ trong hình 1:

Software



Program 2



Program 1



Commands



Commands



Commands



Hình 3.25 Phần mềm, chương trình và câu lệnh

C–Ngơn ngữ bậc trung:



- 63 -



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

d. Tạo chương trình giao tiếp PC-MCU:

Tải bản đầy đủ ngay(0 tr)

×