Thiết kế các ch−ơng trình hệ thống

Một phần của tài liệu bai giang vi xu ly va LTHN 2013 (Trang 152 - 155)

- Kiểu MODEM 91h 92h Kích th−ớc bản tin nhận từ Host(RxSize) 93h

B ản đồ bộ nhớ vựng chương trỡnh

5.3 Thiết kế các ch−ơng trình hệ thống

Khi thiết kế các hệ vi xử lý nhỏ, các ch−ơng trình th−ờng đ−ợc viết rồi nạp trong ROM. Với các ch−ơng trình nhỏ có thể sử dụng ROM trong vi điều khiển hoặc ROM ngoài.

Cũng t−ơng tự, với các ứng dụng nhỏ thì RAM trong đã có thể đáp ứng nhu cầu sử dụng. Nếu cần dung l−ợng lớn hơn ta phải sử dụng RAM ngoài. Vớ dụ dưới đõy là chương trỡnh hệ thống và địa chỉ trong ROM.

CHƯƠNG TRèNH HỆ THỐNG

S_Start(ColdStart): 0100h

Input: + Bấm nút Reset hoặc

+ Thực hiện lệnh jump địa chỉ 0000h (ít dùng), hoặc + Do yêu cầu của Host

Output: đến ch−ơng trình SPOST Call: Non

Ch−ơng trình Reset dùng để xác định cấu hình hệ thống theo số liệu cố định trong ROM. Tiếp theo ch−ơng trình sẽ thực hiện POST

S_POST: Là ch−ơng trình kiểm tra toàn bộ hệ thống nnnmh

Input: + SStart hoặc (nnnmh là một địa chỉ nào đú) + Host

Output: + Byte trạng thái SSt, địa chỉ 4Ah-RAM + Sáng các giá trị t−ơng ứng trên LED 7 thanh + SInit

Call_ SDislay Bao gồm :

+Kiểm tra các thanh ghi CPU và các Int.RAM bằng cách ghi vào ô đầu tiên và chuyển sang các ô tiếp theo cho đến hết các mã 00, 0ffh

55h và 0aah.

+ Kiểm tra thanh ghi trạng thái CPU, bằng cách set/clear các cờ trạng thái rồi nhảy ng−ợc lại. Ví dụ:

SETB C ;Set carry Flag JNC CPUErr ;Báo CPU có lỗi

+ Kiểm tra ROM bằng cách tính CheckSum 2 bytes rồi so với ROMBCC, địa chỉ ROM 104h và 105h

+ Kiểm tra các thanh ghi của cổng vào ra và các thiết bị ghép nối

S_Init(WarmStart/Restart): nnnnmh

Dùng để khởi tạo (Initializing) các thiết bị cho phù hợp cấu hình của hệ. Input: + SPOST hoặc

+ Host hoặc

+ Lệnh JMP đến SInit Output: Main Program

Call: SDisplay, Blinking Ready LED

Khởi tạo các thiết bị có tính mềm dẻo, nh− xác định format character và tốc độ cho đ−ờng truyền tin nối tiếp, nạp mode cho các mạch PPI cho phù hợp với cấu hình hệ thống đã định.

S_Main nnmnh

Là ch−ơng trình th−ờng trực của RTU: • Lấy số đo f, U, I

• Tính cosϕ, P, Q cất vào vùng nhớ • So sánh giá trị set point

Điều khiển đóng cắt tụ bù

• Hiển thị LED 7 segment (default hiện cosϕ)

Input: + SInit

+ Các Subroutine khác Output: Các Subroutine

Call: SDisplay, A_P, A_Q, A_cosϕ, A_f, A_FFC, A_ADC

S_Display (Subroutine ) nmnnh

Là ch−ơng trình : • Đổi 2 bytes giá trị từ các ô nhớ I_RAM chứa hoặc: f, P, Q, U, I, cosϕ, thành 3bytes BCD rồi chuyển vào 3 ô nhớ 5Dh, 5Eh, 5Fh

• Đổi 3 bytes BCD ở các ô nhớ này thành 6 bytesmã 7 đoạn cất vào 6 ô nhớ từ 30h đến 35h

• Đ−a 6 ô nhớ ra cổng PA để hiển thị trên 6 LED Input : + Từ các ch−ơng trình, các Subroutine

Output: + Về Smain + Về Caller Call Non

S_Rx (Ch−ơng trình phục vụ ngắt) mmnnh

Dùng để thu 1 gói tin có kích th−ớc theo ROMData 92h, cất vào RxBuff, RAM 36h đến 3Ah.

Input: I_S_Routine gọi khi có số liệu thu về

Output: SRxCheck để kiểm tra Format và BCC có phù hợp. Call ISR thu 1 char

Dùng bộ thanh ghi RB1

S_Tx (Ch−ơng trình phục vụ ngắt) mnnnh

Dùng để gửi 1 gói tin có kích th−ớc theo TxSize, địa chỉ ROMData 93h. Nội dung tin từ địa chỉ RAM OdB 4Ah .. 5Ch về host theo giao thức đã định

Input: + Các modul ch−ơng trình khác Output: + Caller

Call I_S_Routine phát 1 char dùng bộ thanh ghi RB2

S_RxCheck nnnn

Để kiểm tra cú pháp của câu lệnh và mã BCC sau đó báo về host tình hình nhận lệnh bằng 2 mã ACK(06h) hoặc (15h) của ASCII.

Một phần của tài liệu bai giang vi xu ly va LTHN 2013 (Trang 152 - 155)

Tải bản đầy đủ (PDF)

(165 trang)