Tư vấn: 0979.466.469 / 0938.128.290

MENU

PIC16F84A – Chương trình Hello World.

Báo giá đặt hàng nhập

PIC16F84A – Chương trình Hello World.

 

Các bài viết trước về PIC16F84A đã giải thích về việc điều khiển các chân GPIO (I/O tổng quát) của IC. Các mạch trước đã giải thích chỉ về cách bật hoặc tắt một đèn LED. Bạn chỉ cần đặt chân mong muốn thành đầu ra và sau đó gửi một tín hiệu cao/thấp để bật/tắt đèn LED. Bây giờ, trong bài viết này, hãy thực hiện chớp nháy đèn LED - "Chương trình hello world của điện tử nhúng". Vậy để làm cho một đèn LED nhấp nháy bạn phải làm gì? Chỉ cần bật và tắt nó trong một vòng lặp vô hạn - đúng, nhưng điều này không hoạt động trong trường hợp của chúng ta. Vì PIC hoạt động ở tốc độ rất cao, mặc dù đèn LED đang nhấp nháy nhưng bạn sẽ không thể thấy đèn LED nhấp nháy và nó sẽ xuất hiện như là đèn bật liên tục.

 

 

 

Routines chờ:

Vậy, chúng ta làm thế nào để giải quyết vấn đề này? Rất đơn giản, thêm một chương trình chờ để PIC bận rộn trong một thời gian ngắn để bạn có thể thực sự nhìn thấy đèn LED nhấp nháy. Vậy, làm thế nào để thêm một vòng lặp chờ?

Lưu một số, ví dụ 255, vào một thanh ghi tổng quát Giảm giá trị của số đó đi 1 cho đến khi nó đạt đến 0.

Tôi biết điều này nghe có vẻ ngớ ngẩn và đó là lãng phí thời gian, trì hoãn hoạt động của PIC. Nhưng bạn sẽ hiểu sau này rằng các chương trình chờ rất quan trọng. Vậy, làm thế nào để thực hiện các bước trên trong chương trình? Bây giờ, đến lúc chơi với các chương trình chờ.

MOVLW 255

MOVWF 0CH

DELAY DECFZ 0C,1

GOTO DELAY

bất kỳ mã nào ở đây….

Bây giờ, chương trình trên hoạt động khá tốt để giữ cho PIC bận rộn khoảng 255 lệnh. Giải mã chương trình trên như sau, Đầu tiên, chúng ta di chuyển giá trị 255 (giá trị lớn hơn 255 không được phép vì thanh ghi của 16F84A có kích thước 8 bit) vào một địa chỉ 0CH chỉ định một thanh ghi tổng quát. Dòng tiếp theo giới thiệu một lệnh mới DECFZ thực hiện hai công việc. Lệnh này DECFZ giảm giá trị của thanh ghi bằng một số lượng được chỉ định. Ở đây, nó giảm giá trị của thanh ghi đi 1 và cũng kiểm tra xem nội dung của thanh ghi 0CH (trong trường hợp của chúng ta) có trở thành không hay không. Nếu nội dung của thanh ghi trở thành không, thì nó bỏ qua dòng tiếp theo và chương trình tiếp tục. Vì vậy, thanh ghi được giảm đến khi nó đạt đến số không trong một vòng lặp liên tục. Còn một lệnh khác: EQU - thực hiện phép gán. Ví dụ REG EQU 0CH có nghĩa, oCH được gán cho biến REG và trong chỗ của 0CH, bạn có thể sử dụng REG. Đây là một lệnh tiện lợi giúp chương trình trở nên dễ đọc hơn.

Chương trình chờ trên chưa đủ cho PIC của chúng ta!. PIC thông minh đến mức thực hiện các lệnh ở tốc độ đáng kinh ngạc. Vì vậy, bạn cần phải giới thiệu một chương trình chờ khác - một chương trình chờ trong một chương trình chờ.

DELAY DECFZ 0C,1

GOTO DELAY

DECFZ 0D,1

GOTO DELAY

Hmm… đó là một lượng chờ khá tốt. Ở đây, bộ điều khiển giảm 255 xuống 0 255 lần. Điều này đủ để làm cho đèn LED nhấp nháy trong mắt của chúng ta.

 

 

Đèn LED nhấp nháy:

Dưới đây là chương trình đầy đủ để làm cho một đèn LED kết nối với chân 13 (PORTB,0) nhấp nháy. (Chú ý đến lệnh EQU được sử dụng ở đây)

 

assembly

Copy code

NUM1 EQU 0CH

NUM2 EQU 0DH

 

BSF STATUS,05H

Module điện tử 932*50

 

MOVLW B ‘00000000’

MOVWF TRISB

 

BCF STATUS,05H

 

START BSF PORTB,0

 

DELAY DECFZ NUM1,1  ; Chương trình trì hoãn 1

 

GOTO DELAY

 

DECFZ NUM2,1

 

GOTO DELAY

 

BCF PORTB,0

 

DELAY DECFZ NUM1,1  ; Chương trình trì hoãn 2

 

GOTO DELAY

 

DECFZ DECFZ NUM2,1

 

GOTO DELAY

 

GOTO START

Chú ý: Các lệnh khác ngoại trừ nhãn như START và DELAY phải bắt đầu bằng một dấu cách vì trình biên dịch oshon sẽ hiểu mọi thứ không có dấu cách như là một nhãn.

 

Sơ đồ mạch cho đoạn mã trên:

 

Nếu đèn LED nhấp nháy, bạn đã làm một công việc tuyệt vời!. Thử với các chương trình trì hoãn khác nhau như một chương trình trì hoãn, hai chương trình trì hoãn, v.v., ở các tần số tinh thể khác nhau (4, 10, 16, 20 MHz) và quan sát kết quả.

Gia công pcb 932*150
Sản phẩm nổi bật
Sale 0%
40000 /Cái
/ Cái

Code: 7204-238 Còn hàng

Lưu xem sau
Sale 0%
85000 /Cái
/ Cái

Code: 7204-243 Liên hệ

Lưu xem sau
Sale 0%
PIC16 PIC16F Microcontroller IC 8-Bit 20MHz 7KB...
44000 /Cái
/ Cái

Code: 7204-076 Còn hàng

Lưu xem sau
Sale 0%
51000 - 58000 /Cái
/ Cái

Code: 7204-045 Còn hàng

Lưu xem sau
Hỗ trợ liên kết
0979466469
0899909838
0938128290
0899909838
Khiếu nại: 0964238397
0979466469
0868565469
0868565469

Hotline: 0979 466 469

Loading
0979 466 469
Bạn cần linh kiện mẫu ? 7-11 ngày