- 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.4 Thiết kế các ch−ơng trình ứng dụng
Tuỳ theo yêu cầu cụ thể mà hệ vi xử lý phải đảm nhiệm. Các ch−ơng trình cũng có thể chỉ cần chứa trong ROM trong nếu kích th−ớc nhỏ, hoặc trong ROM ngoài nếu có kích th−ớc lớn.
Chương trỡnh chớnh của một chương trỡnh ứng dụng trờn một hệ vi xử lý thường chỉ làm cỏc nhiệm vụ nhất định nào đú như: thu thập dữ liệu, truyền tớn hiệu đúng chuyển động cho thiết bị, đưa thụng tin ra thiết bị, hiển thị...; nhiều khi chỉ đơn giản là hiển thị thụng tin. Việc xỏc định chương trỡnh chớnh làm gỡ rất cú ý nghĩa vỡ xỏc định khụng đỳng chương trỡnh chớnh thỡ người kỹ sư khụng làm chủ được hệ thống vi xử lý và khụng thiết lập đỳng hoạt động của cỏc chương trỡnh trong hệ. Bàn phớm của hệ vi xử lý thường được thực hiện theo kiểu ngắt; với hệ đơn giản cú thể sử dụng kiểu polling. Chương trỡnh truyền tin cũng thường được thực hiện theo ngắt hoặc kiểu polling. Cỏc trao đổi dữ liệu vào/ra cũng cú thể theo ngắt. Cơ chế này cho phộp hệ vi xử lý thực hiện cỏc đỏp ứng nhanh chúng và hiệu quả. Một số vớ dụ:
Chương trỡnh chớnh của thiết bịđo kiểm tra cosϕ
Bắt đầu Init • Lấy số đo f, U, I • Tính cosϕ, P, Q cất vào vùng nhớ ODB • So sánh giá trị default đ/k đóng cắt tụ bù • Hiển thị LED 7 đoạn
S_Main (Chương trỡnh chớnh) f U I P Q Auto Man SET
Esc Mode - Display + Enter
Hỡnh 5. 6. Mặt hiển thị của thiết bị và cỏc phớm
Khi hoạt động, thiết bị luôn hiển thị cosàϕ (default). Bình th−ờng đèn Auto luôn sáng. Khi ấn phím " Mode ", nhả ra rồi lại ấn tiếp: đèn Auto tắt, đèn "Man" sáng (Chế độ
bằng tay). Nếu sau 20 giây không ấn tiếp thì đèn '''Man" vẫn tiếp tục sáng và thiết bi ở chế độ Điều khiển bằng tay. Nếu nhả ra rồi ấn tiếp: đèn SET sáng. Khi này ấn nhả phím Display các đèn P, Q, U, I, cosϕ sẽ lần l−ợt sáng. Khi đèn nào sáng dùng các phím "+","- " (ấn - nhả) sẽ thay đổi các giá trị mẫu cho thiết bị. Sau đó nhấn phím "Enter" kết thúc việc đặt chế độ. Lúc này chỉ còn đèn Auto sáng, đèn cosϕ sáng, 6LED hiển thị trị số cosϕ. Muốn các xem giá trị P, Q, U, I đầu tiên ta ấn Display (Phím này vừa để xem vừa để đặt giá trị - Nếu không ấn Enter thì các giá trị hiện hành không đ−ợc chuyển vào trong vùng nhớ Default) rồi nhả_ ấn để xem các giá trị cần xem. Trong quá trình set nếu sai giá trị ta có thể dùng phím " Esc " để trở về thiết lập lại (Giống chức năng th−ờng dùng của phím Esc trên bàn phím máy PC).
(Tr−ớc 1 số quyết định đều kiểm tra phím Esc có đóng không ?)
CHƯƠNG TRèNH ỨNG DỤNG
A_F :
Xác định số đếm trong nửa chu kỳ d−ơng của dòng điện đã đ−ợc biến đổi ra dạng xung vuông. Tra bảng ra tần số dòng điện t−ơng ứng
Input: Counters in Timer/Counter TH0
Output: Value f gồm 2bytes cất vào vùng nhớ 55h Call non
A- cosϕ:
So sánh độ chênh lệch số đếm trong nửa chu kỳ d−ơng của dòng điện và điện áp đã đ−ợc biến đổi ra dạng xung vuông. Tra bảng ra cosϕ t−ơng ứng
Input: Counters in Timer/Counter TH0 and TH1
Output: Value góc ϕ gồm 2bytes cất vào vùng nhớ 4Fh..50h call:
A_ Q:
Tính giá trị công suất phản kháng Q=UIsinϕ ở vị trí hiện hành Input: Value U, I, ϕ từ các ô nhớ t−ơng ứng
output: Value Q gồm 2bytes cất vào vùng nhớ 51h, 52h call
A_P :
Tính giá trị công suất Tác dụng P=UIcosϕ ở vị trí hiện hành Input: Value U, I, ϕ từ các ô nhớ t−ơng ứng
output: Value P gồm 2bytes cất vào vùng nhớ 53h, 54h call
A_ Ffc: (Fower factor controller)
So sánh tỷ lệ S (Công suất biểu kiến) và P (Công suất tác dụng) với giá trị set point. Điều khiển đóng cắt tụ
Input: Q, P từ các ô nhớ 51h ..54h
Output: Lập xoá các bit của cổng P1 để đóng cắt tụ bù. Call:
A_ADC:
Input: Lập xoá các bit PB6, PB7
Output: + Value U gồm 2bytes cất vào vùng nhớ 4Bh, 4Ch Internal RAM l−u giữ value U
+ Value I gồm 2bytes cất vào vùng nhớ 4Dh, 4Eh Internal RAM l−u giữ value I
call:
S_KB: (Ch−ơng trình phục vụ ngắt)
; Khi có phím bấm :
•@Bdau:- Xem phím nào ? - Trễ 20 ms
- Nếu là phím "+" ,"-" , "Enter" : Không tác động - Nếu là phím MODE : JMP to @MODE - N ếu là phím DISPLAY : JMP to @DISPLAY - Nếu là phím ESC : JMP to @Bdau
• @MODE : { Khi phím MODE đ−ợc ấn }
- Call Blinking (Auto): Đèn LED nhỏ AUTO sáng - Giữ cho 6 LED lớn hiển thị trạng thái hiện hành - Test xem phím MODE đã nhả ra ch−a ?
+ Ch−a nhả: Quay về Test MODE đợi phím này nhả +Nhả rồi: Test xem Mode đóng không ?
* Nếu không đóng: Đợi 20 giây. Test "Esc" đóng ?
+Nếu có jmp @Bdau
+Nếu không về Reset (Mainprogram) * Nếu tr−ớc 20 giây đóng → đèn " Man " sáng jmp continue
- Continue: Test xem phím MODE đã nhả ra ch−a ?
+ Ch−a nhả: Quay về Test MODE đợi phím này nhả +Nhả rồi: Test xem Mode đóng không ?
* Nếu không đóng: Đợi 20 giây. Test "Esc" đóng ? +Nếu có jmp @Bdau
+Nếu không call Man_Play (Đóng cắt bằng tay) * Nếu tr−ớc 20 giây đóng → đèn "SET"
sáng jmp @SET • @SET:
-6 đèn LED lớn nhấp nháy
- Test xem phím "Display" có đ−ợc ấn không ?
* Nếu không đóng: đợi 10 giây. Test "Esc" đóng ? +Nếu có jmp @Bdau
+Nếu không về Reset (Mainprogram) * Nếu tr−ớc 10 giây đ−ợc ấn → jmp @Display
• @DISPLAY :
- Test xem phím "Display" có đ−ợc ấn - nhả không để chuyển f, U, I, P, Q, cosϕ
+Nếu không sau 20 giây: Return Mainprogram
+Nếu có tr−ớc 20 giây: Test xem các phím "+","-" có đ−ợc tác động để đặt các giá trị vào các ô nhớ giá trị của chúng.jmp next
-Next: Test "Esc" đóng ? * Nếu có jmp @Bdau
* Nếu không Xem "Enter" có đ−ợc ấn không ?
+ Nếu có ấn: Chuyển giá trị do ta set vào vùng nhớ Set point Call Roll Subroutine.
Jmp to Mainprogram
+ Nếu không sau 10 giây: Chuyển giá trị default từ ROM vào vùng nhớ set point. Jmp to Mainprogram
Một vớ dụ khỏc về
Bắt đầu chương trỡnh chớnh
của hệ vi xử lý
Hỡnh 5. 7. Ch−ơng trình chính Kiểm tra CPU: + Các thanh ghi + ROM, RAM trong
của recorder
Thiết lập chế độ:
+ Ngắt
+ Truyền tin nối tiếp
+ Timer/Counter
+ Khởi tạo 8255 + Kiểm tra RAMngoài
Hiện màn hình bản quyền thiết bị
Chế độ 1 ?
Chế độ 1: Thu dữ
liệu các kênh cất vào RAM ngoài Có lệnh từ CPU ? S S Đ Đ Xử lý lệnh của PC Chế độ 3 ? Chế độ 3: Xử lý lệnh từ
PC, khụng ghi vào RAM ngoài
Đ S
Chế độ 2: Chuyển toàn bộ dữ liệu đang có trong RAM ngoài về PC
Câu hỏi và bài tập
1. Vòng lặp hoạt động của vi xử lý là gì? 2. Vi xử lý và vi điều khiển khác nhau thế nào?
3. Khỏi niệm Hệ trung tõm gồm những thành phần nào?
4. Số l−ợng thanh ghi trong các CPU là khác nhau nh−ng có một thanh ghi nào bắt buộc CPU nào cũng phải có?
5. Cơ chế địa chỉ segment:offset giải quyết vấn đề gì ?
6. Có phải chỉ có 1 loại hợp ngữ duy nhất cho tất cả các bộ vi xử lý? 7. Có phải CPU nào cũng hoạt động đ−ợc với cơ chế bảo vệ không?
8. Có phải CPU nào cũng hoạt động đ−ợc với cơ chế bộ nhớ ảo không?
9. Một bit nhớ trong đơn vị đo thông tin có tồn tại thực không? 10. Vì sao DRAM phải đ−ợc làm t−ơi?
11. EEPROM, FlashROM có gì giống nhau không?
12. Tại sao chiếu tia cực tím vào ROM (loại đọc xoá đ−ợc) lại xoá đ−ợc nội dung của nó. 13. Xây dựng các bộ giải mã dùng NAND, OR, NOT ghép nối 1 vi mạch, 2, vi mạch, 3
vi mạch ROM 27 64 tại các địa chỉ 80000h, 8A000h , F8000h.
14. Xây dựng các bộ giải mã dùng NAND, OR, NOT ghép nối 1 vi mạch, 2, vi mạch, 3 vi mạch SRAM 6264 tại các địa chỉ 88000h, A8000h , F8000h.
15. Các đầu bài nh− 13 và 14 nh−ng sử dụng 74138. 16. Tớn hiệu chốt địa chỉ ALE được sử dụng để làm gỡ? 17. Một lệnh của bộ vi xử lý gồm cú những thành phần nào? 18. CPU 8088/86 sử dụng cỏc chếđộđịa chỉ nào?
19. Xung nhịp đồng hồ clk là gỡ?
20. Ngắt ngoài tỏc động vào những chõn nào của vi xử lý 80x86? 21. Chương trỡnh .EXE khỏc chương trỡnh .COM ở chỗ nào?
22. Cú thể sử dụng cỏc phương phỏp điều khiển trao đổi dữ liệu nào trong truyền tin nối tiếp?
23. Thế nào là thu đố, phỏt đố trong truyền tin nối tiếp khụng đồng bộ?
24. Truyền tin đồng bộ thực hiện được trờn khoảng cỏch xa hay truyền tin khụng đồng bộ?
25. Mức logớc ‘0’, ‘1’ cú phải là luụn luụn cốđịnh với mọi chuẩn? 26. Bộđếm/định thời gian được sử dụng để làm gỡ?
27. Mụ tả hoạt động của truyền tin I2C, SPI.
28. Kiến trỳc Haward và Paul Noumann khỏc nhau thế nào? 29. Tớnh địa chỉ hexa của ngắt khi biết số hiệu ngắt như thế nào? 30. Bản chất của kỹ thuật thay vộc tơ ngắt là gỡ?
31. Một bộ vi xử lý cú điện ỏp nuụi +5 V nếu điện ỏp này lớn hơn hay nhỏ hơn +5V thỡ vi xử lý cú hoạt động khụng? Cụ thểảnh hưởng trong cỏc trường hợp?
32. Cần xõy dựng bản đồ bộ nhớ của hệ vi xử lý để làm gỡ?
33. Làm thế nào để kiểm tra xem một vi mạch ROM cú tốt hay khụng? 34. Làm thế nào để kiểm tra xem một vi mạch RAM cú tốt hay khụng?
Phụ lục CÁC HỆ SỐ