Trong bài trước, chúng ta đã thấy cách cấu hình và lập trình GPIO Port Pin để điều khiển đèn LED. Điều này có thể là nhiệm vụ đơn giản bằng cách lái xe chân vào chế độ đầu ra. Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách thêm switch vào dự án vi điều khiển ARM7 LPC2148. Một vi điều khiển không thể đưa ra bất kỳ quyết định nào về việc kiểm soát thứ gì đó trong thế giới thực mà không cảm nhận điều gì đó về nó. Điều đơn giản nhất cho vi điều khiển để kiểm tra là trạng thái của công tắc. Nó mở hay đóng cửa? Có thể sử dụng các công tắc làm điều khiển toán tử. Chúng có thể được sử dụng cho nhiều mục đích, nhưng chúng có thể chỉ ở một trong hai trạng thái: ON (closed) hoặc OFF (mở).
Ví dụ: Thêm Chuyển sang ARM7 LPC2148
Trong dự án này, chúng tôi sẽ làm sáng LED kết nối với Pin P0.10 . Khi chuyển đổi kết nối tại Pin P1.16 được nhấn. Công tắc phát hành sẽ có hiệu lực để TẮT đèn LED. Bây giờ chúng ta hãy trở lại ban phát triển của chúng tôi trong đó có vài đèn LED và SWITCH trên tàu. Nếu trong trường hợp bộ đánh giá của bạn không có nó thì hãy kết nối chúng bên ngoài. Như thể hiện trong sơ đồ mạch.
GHI CHÚ: Một số vi điều khiển có điện trở kéo lên bên trong có thể được kích hoạt trong bộ điều khiển chương trình. Bạn không cần phải nối dây điện trở nếu bạn sử dụng một điện trở kéo lên bên trong. Nếu bạn sử dụng điện trở kéo lên bên ngoài, hãy buộc đầu cao vào cùng một điện áp được sử dụng để chạy vi điều khiển.
VIDEO: Thêm công tắc vào ARM7 LPC2148
Mã nguồn: Thêm chuyển sang ARM7 LPC2148
GIẢI THÍCH MÃ:
Chương trình hoàn chỉnh này chỉ chứa vài dòng mã. Hãy để tôi cắt thành từng mảnh để 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 .
Chúng tôi đã chuyển đổi kết nối với Pin P1.16 của Bộ vi điều khiển LPC2148. Chúng ta phải thiết lập một cách rõ ràng hướng của chân cổng trong chế độ đầu vào. Ngay cả khi theo mặc định, nó ở chế độ đầu vào. Viết '0' tại P1.16 trong thanh ghi điều khiển hướng (tức là IO1DIR ) sẽ cấu hình P1.16 làm đầu vào.
Chúng tôi có đèn LED kết nối với Pin P0.10 của Bộ vi điều khiển LPC2148. Để lái xe LED. Đầu tiên chúng ta sẽ cấu hình P0.10 vào chế độ đầu ra. Viết '1' đến P0.10 trong thanh ghi điều khiển hướng (tức là IO0DIR ) sẽ cấu hình P0.10 làm đầu ra.
Để tải xuống dự án: Nhấp vào đây
Trong vòng lặp không bao giờ kết thúc này. Nếu (! (IO1PIN & (1 << 16))) , câu lệnh if này đánh giá là TRUE cho giá trị 'LOW' trên Pin P1.16. Ở đây trong dự án này, chúng tôi liên tục theo dõi tình trạng của công tắc kết nối tại Pin P1.16. '(1 << 16)' chỉ đơn giản là 16 bit thứ 1 '(tức là 0x10000) và phần còn lại tất cả các bit là số không. Khi '(1 << 16)' là ANDed với IO1PIN, nó sẽ làm cho tất cả các bit khác trừ bit thứ 16 đến '0'. Giá trị của bit thứ 16 sẽ phụ thuộc vào bit thứ 16 của IO1PIN . Nếu đó là '1' (có nghĩa là đầu vào là CAO) thì kết quả sau khi ANDing sẽ là 0x10000 lớn hơn 0 và do đó sẽ đánh giá là ' TRUE '. Ngoài ra khi chúng ta sử dụng ' ! '(tức là logic KHÔNG) rồi' ! (TRUE)'đánh giá thành FALSE do đó mã không được thực hiện cho đầu vào CAO. Khi P1.16 được đưa ra 'LOW', bit tương ứng trong IO1PIN tức là bit thứ 16 sẽ được đặt thành 0. Trong trường hợp này kết quả của 'IO1PIN & (1 << 16)' sẽ là ' 0x0 ' được đánh giá là FALSE . Do đó ' ! (FALSE) ' đánh giá thành TRUE và mã bên trong khối ' if ' được thực thi.
Đây là cách bạn có thể nắm bắt đầu vào hoặc chỉ đơn giản là thêm chuyển sang dự án vi điều khiển ARM7 LPC2148. Trong hướng dẫn tiếp theo, chúng tôi sẽ khám phá tính năng hẹn giờ trong LPC2148. Chúng tôi hy vọng bạn sẽ tìm thấy giáo dục hướng dẫn này.
Không có nhận xét nào:
Đăng nhận xét