8.1.1 Vài nét về trình biên dịch ccs:
Vì sao ta sử dụng ccs
Sự ra đời của một loại vi điều khiển đi kem với việc phát triển phần mềm ứng dụng cho việc lập trình cho vi điều khiển đó. Vi điều khiển chỉ hiểu và làm việc với hai con số 0
và số 1. ban đầu để việc lập trình cho vdk là làm việc với dãy các con số 0 và 1. sau này khi kiến trúc của vi điều khiển ngày càng phức tạp, số lượng thanh ghi lệnh nhiều lên , việc lập trình với dãy số 0 và 1 không còn phù hợp nữa , đòi hỏi sự ra đời của một ngôn ngữ mới.người ta đã dùng ngôn ngữ c để thay thế cho asembly trong việc mô tả các lệnh lập trình cho vi điều khiển một cách ngắn gọn và dễ hiểu hơn đã dẫn đến sự ra đời của nhiều chương trình soạn thảo và biên dịch c cho vi điều khiển :keil c,ht_pic,mikro c,ccs…. Giới thiệu về ccs:
Ccs là trình biên dịch lập trình ngôn ngữ c cho vi điều khiển pic của hãng microcchip. Chương trình là sự tích hợp của 3 trình biên dịch riêng biệt của 3 dòng pic khác nhau đó là:
Pcb cho dòng pic 12_bit opcodes
Pcm cho dòng pic 14_bit opcodes
Pch cho dòng pic 16 và 18_bit
Tất cả 3 trình biên dịch này được tích hợp lại vào trong 1 chương trình bao gồm cả trình soạn thảo và biên dịch là ccs.
Giống như nhiều trình biên dịch c khác cho pic, ccs giúp cho người sử dụng nắm bắt nhanh được vi điều khiển pic và sử dụng pic trong các dự án . các chương trình điều khiển
sẽ được thực hiện nhanh chóng và đạt hiệu quả cao thông qua vieeccj suer dụng ngôn ngữ lập trình cấp cao _ngôn ngữ c.
8.1.2Cơ chế hoạt động của ngắt trong ccs
Ngắt 1 cấp:
Trên pic 16,14,12,19, tất cả các ngắt chỉ có một cấp ưu tiên. Nghĩa là ngắt nào đang được phục vụ thì không thể bị ngắt bởi 1 ngắt khác xảy ra. Cơ chế sinh mã cho ngắt của ccs như sau:nhảy đến địa chỉ ngắt, thường là 004h, sao lưu thanh ghi W, STATUS, PCLATCH,FSR, và nhiều thứ vớ vẫn khác , sau đó nó mới hỏi vòng xem cờ ngắt nào xảy
ra thì nhảy đến hàm phục vụ ngắt đó. Thực hiện xong thì phục hồi tất cả thanh ghi trên rồi mới retfie thoát ngắt. số chu kỳ thực thi từ chỗ ngắt đến khi nhảy vào hàm ngắt cỡ 20 chu
kỳ lệnh ,nhảy ra cũng cỡi đó.
SVTH:ĐẶNG ANH DUY MSSV:20762046 48
Điều gì xảy ra nếu chương trình dùng nhiều ngắt và khi có ngắt thì có 2 ngắt trở lên xảy ra đồng thời. nghĩa là 2 ngắt xảy ra cùng lúc , hay khi ngắt a kích hoạt và ccs đang lưu các thanh ghi(chua tới hỏi vòng cờ ngắt) thì ngắt b xảy ra. Dĩ nhiên ngắt b không thể kích vector ngắt nhảy tới 004h vì bit cho phép ngắt toàn cục (gie) bị khóa tự động khi có ngắt , chỉ có cờ ngắt b bật mà thôi. Sau khi lưu các thanh ghi , chương trình kiểm tra cờ ngắt , rõ ràng là nếu bit nào được kiểm tra trước thì phục vụ trước , dù nó xảy ra sau. Để tránh phục
vụ không đúng chỗ , bạn dùng #priority để xác định ưu tiên ngắt. ngắt ưu tiên nhất sẽ luôn được hỏi vòng trước. sau khi xác định cờ ngắt cần phục vụ , nó sẽ thực thi hàm ngắt tương ứng. xong thì xóa cờ ngắt đó và thoát ngắt. phục vụ ngắt nào xong thì chỉ xóa cờ ngắt đó. Nếu a ưu tiên hơn b thì sau khi làm a, nó sẽ lại ngắt tiếp (vì cờ b đã bật), lại hỏi vòng cờ ngắt từ đầu:nếu cờ a chưa bật thì xét b , lúc này b bật nên phục vụ b , xong thì xóa cờ b và thoát ngắt.
Một chương trình dùng nhiều ngắt phải lưu ý điều này , tránh trường hợp :ngắt xảy ra liển tục(tràn ngắt), 1 ngắt bị đáp ứng trễ , ngắt không dúng
8.2 Giới thiệu về ngôn ngữ lập trình C#
8.2.1 Giới thiệu về c #
Ngôn ngữ c# khá đơn giản , chỉ với khoảng hơn 80 từ khóa và hơn mười mấy kiểu
dữ liệu được dựng sẵn. tuy nhiên , ngôn ngữ c# có ý nghĩa to lớn khi có thực thi những khái niệm lập trình hiện đại. c# bao gồm tất cả những hỗ trợ cho cấu trúc , thành phần component, lập trình hướng đối tượng. những tính chất đó hiện diện trong một ngôn ngữ lập trình hiện đại.hơn nữa ngôn ngữ c# được xây dựng trên nền tảng hai ngôn ngữ mạnh nhất là c++ và java.
Nhìn chung c# có các đặc trưng sau đây:
C# là ngôn ngữ đơn giản.
C# là ngôn ngữ hiện đại.
C# là ngôn ngữ hướng đối tượng.
C# là ngôn ngữ mạnh mẽ và mềm dẻo.
C# là ngôn ngữ hướng module.
C# là ngôn ngữ phổ biến.
8.3 Một số phần mềm hỗ trợ khác
Phần mềm mô phỏng: proteus
Phần mềm giả lập cổng com: terminal
Phần mềm thiết kế mạch:orcad
SVTH:ĐẶNG ANH DUY MSSV:20762046 49
8.4 Lưu đồ giải thuật
BẮT ĐẦU
KHỞI TẠO
HIỂN THỊ TT
HIỂN THỊ NHIỆT
ĐỘ
XUẤT LÊN MÁY TINH
25<T<35 ĐÈN TẮT
LOA ON
ĐÈN SÁNG LOA OFF
SVTH:ĐẶNG ANH DUY MSSV:20762046 50