Thứ Bảy, 1 tháng 12, 2018

4. Đèn LED nhấp nháy với ARM7 LPC2148

Trong hướng dẫn trước của chúng ta, chúng ta đã thấy cách tạo ra dự án KEIL uVision mới cho vi điều khiển LPC2148. Ngoài ra chúng tôi đã thấy làm thế nào để chương trình ARM7 LPC2148 microchip. Ở đây chúng ta sẽ khám phá việc sử dụng GPIO. Đầu ra GPIO (Mục đích chung đầu vào) là các thiết bị ngoại vi cơ bản nhất trong bất kỳ vi điều khiển nào. Như một hướng dẫn đầu tiên trong loạt bài này, chúng tôi sẽ Blink LED với vi điều khiển ARM7 LPC2148. Mặc dù đó là nhiệm vụ đơn giản nhưng chúng tôi vẫn cảm thấy tốt khi bắt đầu. Trước khi chúng tôi tiến xa hơn nữa để nhấp nháy LED (Light Emitting Diode).

Hãy thảo luận về GPIO. Các dòng GPIO của bất kỳ vi điều khiển nào có thể được sử dụng chủ yếu để thực hiện hai điều. Một là tạo ra tín hiệu số và tín hiệu thứ hai là đọc tín hiệu số. Trong vi điều khiển LPC2148 hầu hết các chân cổng được ghép kênh, điều này có nghĩa là chúng được phép cung cấp nhiều chức năng. Cấu hình GPIO để sử dụng chức năng khác nhau nằm ngoài phạm vi của hướng dẫn này. Chỉ cần ghi nhớ rằng theo mặc định: tất cả các chân chức năng tức là Pins trên PORT0 và PORT1 được thiết lập để được như GPIO vì vậy chúng tôi có thể trực tiếp sử dụng chúng trong dự án ví dụ của chúng tôi.
Ở đây chúng tôi đã liệt kê một số thanh ghi liên quan đến GPIO và các chức năng của nó. Chúng ta cần phải thay thế ' x ' bằng số cổng để lấy tên đăng ký. Nói ví dụ: IOxPIN đăng ký trở thành IO0PIN khi được sử dụng cho PORT0 và IO1PIN khi được sử dụng cho PORT1. Tất cả các tên đăng ký được định nghĩa trong tệp tiêu đề “lpc2148.h” Các tên đăng ký được xác định trong tệp tiêu đề là không có gì ngoài một con trỏ chứa địa chỉ của sổ đăng ký thực tế trong LPC2148. x ' đại diện cho số cổng).

Đăng ký liên quan đến GPIO trong LPC2148

IOxPINThanh ghi này có thể được sử dụng để đọc hoặc ghi các giá trị trực tiếp vào các chân. Bất kể hướng thiết lập cho các chân cụ thể. Nó cung cấp cho trạng thái hiện tại của pin GPIO khi đọc.
IOxDIRĐây là thanh ghi điều khiển hướng GPIO. Đặt bit thành '0' trong thanh ghi này sẽ cấu hình ghim tương ứng được sử dụng làm đầu vào trong khi đặt nó thành '1' sẽ định cấu hình nó làm đầu ra.
IOxSETThanh ghi này có thể được sử dụng để điều khiển một chốt 'cấu hình' đầu ra thành logic 1 nghĩa là CAO. Viết zero không có bất kỳ hiệu ứng và do đó nó không thể được sử dụng để lái xe một pin để Logic 0 tức là LOW. Đối với chân lái xe LOW IOxCLR được sử dụng được giải thích như sau:
IOxCLRThanh ghi này có thể được sử dụng để điều khiển một chốt 'cấu hình' đầu ra thành logic 0 tức là LOW. Viết zero không có bất kỳ hiệu ứng nào và do đó nó không thể được sử dụng để lái một pin tới Logic 1.

Video: Đèn LED nhấp nháy với ARM7 LPC2148


Ví dụ: Đèn LED nhấp nháy với ARM7 LPC2148
Chúng ta hãy xem xét dự án ví dụ, nơi chúng tôi sẽ nháy đèn LED được kết nối với Pin P0.10 . Hãy chắc chắn rằng đèn LED này được kết nối trong cấu hình anode chung. Tham khảo các kết nối mạch như sau:
Đèn LED nhấp nháy với ARM7 LPC2148
Đèn LED nhấp nháy với ARM7 LPC2148
Trong khi viết một ứng dụng nhấp nháy LED, chúng ta phải làm theo các bước chung:
  • Khởi tạo hệ thống vi điều khiển, thực hiện quy trình thiết lập chăm sóc như tăng nguồn thiết bị ngoại vi, đặt tốc độ đồng hồ, v.v.
  • Kết nối pin cần thiết bằng cách sử dụng pin kết nối khối. Mục đích của pin kết nối khối là để cấu hình pin vi điều khiển để chức năng mong muốn. Theo mặc định, GPIO được bật.
  • Và sau đó đặt hoặc xóa bit tương ứng để bật BẬT & TẮT LED

Để tải xuống dự án: Nhấp vào đây

GIẢI THÍCH MÃ:

Chương trình hoàn chỉnh này chỉ bao gồm một vài dòng mã. Hãy để tôi cắt thành từng phần để xây dựng từng dòng
Điều này bao gồm tuyên bố thêm tiêu đề tập tin tiêu đề cho tất cả các LPC214x loạt các vi điều khiển. Tất cả các tên đăng ký đã được định nghĩa trong tệp lpc214x.h .
Vì chúng tôi đã kết nối LED với Pin P0.10 . Chúng ta phải đặt Pin thành chế độ đầu ra. Như P0.10 thuộc về PORT0. Bit điều khiển hướng trong thanh ghi IO0DIR được sử dụng để cấu hình ghim này.
Trong vòng lặp không bao giờ kết thúc này. Đầu tiên chúng ta phải xóa một chút bằng cách sử dụng IO0CLR = (1 << 10) , đây là cách chúng ta có thể làm cho P0.10 trở thành LOW (LED bật ON). IO0SET = (1 << 10) , sẽ làm cho đầu ra HIGH (LED OFF) cho Pin P0.10. Chúng ta có vòng lặp ở giữa tạo ra độ trễ đáng kể giữa quá trình chuyển LED ON và OFF.
Trong tương lai, chúng tôi sẽ khám phá chức năng trì hoãn để tạo thời gian trễ chính xác. Chúng tôi hy vọng hướng dẫn này sẽ hữu ích để giúp bạn bắt đầu. Trong hướng dẫn tiếp theo, chúng ta sẽ tìm hiểu cách thêm công tắc vào dự án Vi điều khiển LPC2148 của chúng ta

Không có nhận xét nào:

Đăng nhận xét

Bài đăng mới nhất

14. I2C trong LPC2148 vi điều khiển ARM7

Trong bài này, chúng ta sẽ tìm hiểu về cách lập trình I2C trong LPC2148 ARM7 Microcontroller.  Ngoài ra, chúng tôi sẽ giao diện nối tiếp EE...