Giáo trình môn Kỹ thuật Vi điều khiển - Chương VI: Phụ lục

Sau khi đã nắm vững bản đồ bộ nhớ, một số lưu ý cần phải nhớ khi thí nghiệm với KIT như sau:

- Nếu nạp chương trình vào KIT để chạy ở chế độ "Chương trình người sử dụng", tức chạy độc lập với chương trình MONITOR quản lý KIT thì chương trình của người học phải bắt đầu ở địa chỉ 00H, tức bắt đầu chương trình bằng lệnh ORG 0. Sau khi KIT báo nạp hoàn tất thì ấn công tắc MODE SELECT để ở trạng thái hở (nhô lên), tiếp đó bấm nút reset để bắt đầu chạy chương trình của mình. ở trạng thái này thì tất cả các tài nguyên phần cứng và các thiết bị ngoại vi của KIT đều được phép sử dụng mà không có một giới hạn nào.

- Nếu nạp vào để chạy ở chế độ DEBUG ư gỡ rối, chạy và xem kết quả các vùng nhớ sau mỗi lệnh thì:

o Chương trình phải bắt đầu ở vị trí 4000H (vị trí khởi đầu của bộ nhớ RAM). Thực hiện bằng lệnh ORG 4000H.

o Các vector ngắt phải được cộng thêm 4000H. Cụ thể như sau:

Giáo trình môn Kỹ thuật Vi điều khiển - Chương VI: Phụ lục trang 1

Trang 1

Giáo trình môn Kỹ thuật Vi điều khiển - Chương VI: Phụ lục trang 2

Trang 2

Giáo trình môn Kỹ thuật Vi điều khiển - Chương VI: Phụ lục trang 3

Trang 3

Giáo trình môn Kỹ thuật Vi điều khiển - Chương VI: Phụ lục trang 4

Trang 4

Giáo trình môn Kỹ thuật Vi điều khiển - Chương VI: Phụ lục trang 5

Trang 5

Giáo trình môn Kỹ thuật Vi điều khiển - Chương VI: Phụ lục trang 6

Trang 6

Giáo trình môn Kỹ thuật Vi điều khiển - Chương VI: Phụ lục trang 7

Trang 7

Giáo trình môn Kỹ thuật Vi điều khiển - Chương VI: Phụ lục trang 8

Trang 8

Giáo trình môn Kỹ thuật Vi điều khiển - Chương VI: Phụ lục trang 9

Trang 9

Giáo trình môn Kỹ thuật Vi điều khiển - Chương VI: Phụ lục trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 29 trang Trúc Khang 10/01/2024 3721
Bạn đang xem 10 trang mẫu của tài liệu "Giáo trình môn Kỹ thuật Vi điều khiển - Chương VI: Phụ lục", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Giáo trình môn Kỹ thuật Vi điều khiển - Chương VI: Phụ lục

Giáo trình môn Kỹ thuật Vi điều khiển - Chương VI: Phụ lục
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 61 :Phần phụ lục 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng –Bộ môn TĐH Trang 93 
Ch−ơng VI 
phụ lục 
6.1 H−ớng dẫn sử dụng KIT 
Ng−ời học phải nắm vững bản đồ bộ nhớ của KIT sau: 
Địa chỉ Thiết bị Ghi chú 
0000h - 1FFFh EEPROM Chứa ch−ơng trình Monitor 
4000h - 7FFFh RAM Chứa ch−ơng trình ứng dụng 
8000h - 8003h 8255 (1) 
8000h - PortA : Điều khiển LCD. 
8001h - PortB : Data bus của LCD. 
8002h - PortC : Nhận m/ của bàn phím. 
8003h - CW : Thanh ghi điều khiển. 
8004h - 8007h 8255 (5) 
8004h - PortA: Điều khiển cấp nguồn cho các Anot chung 
của LED matrix (các hàng). 
8005h - PortB: Điều khiển đèn màu xanh của LED matrix 
(các cột xanh). 
8006h - PortC: Điều khiển đèn màu đỏ của LED matrix 
(các cột đỏ). 
8007h - CW: Thanh ghi điều khiển. 
8008h - 800Bh 8255 (2) 
8008h - PortA : Đ−ờng Data của ADC0809. 
8009h - PortB : Đ−ờng Data của DAC0808. 
800Ah - PortC : Điều khiển ADC0809. 
800Bh - CW : Thanh ghi điều khiển. 
800Ch - 800Fh 8255 (3) 
800Ch - PortA : Đầu vào Digital. 
800Dh - PortB : Điều khiển động cơ b−ớc(PB0-PB3) và 
động cơ một chiều (PB4 - PB5). 
800Eh - PortC : 4 đầu vào xung dạng nút ấn (PC4-
PC7), 4 đầu vào cho các thiết bị ngoài nh− encoder (PC0 - 
PC3). 
800Fh - CW : Thanh ghi điều khiển. 
C000h - C003h 8255 (4) 
C000h - PortA : Hiển thị 8 LED đơn. 
C001h - PortB : Hiển thị 2 LED 7 thanh (trái). 
C002h - PortC : Hiển thị 2 LED 7 thanh (phải). 
C003h - CW : Thanh ghi điều khiển. 
C004h – C007h 8255-EX BUS mở rộng dự trữ, có thể gắn thêm 1 module khác 
Bảng 2.1 Sắp xếp bộ nhớ và cách phân địa chỉ cho các thiết bị ngoại vi của KIT 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 61 :Phần phụ lục 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng –Bộ môn TĐH Trang 94 
Sau khi đ/ nắm vững bản đồ bộ nhớ, một số l−u ý cần phải nhớ khi thí nghiệm với KIT 
nh− sau: 
- Nếu nạp ch−ơng trình vào KIT để chạy ở chế độ "Ch−ơng trình ng−ời sử dụng", tức 
chạy độc lập với ch−ơng trình MONITOR quản lý KIT thì ch−ơng trình của ng−ời 
học phải bắt đầu ở địa chỉ 00H, tức bắt đầu ch−ơng trình bằng lệnh ORG 0. Sau khi 
KIT báo nạp hoàn tất thì ấn công tắc MODE SELECT để ở trạng thái hở (nhô lên), 
tiếp đó bấm nút reset để bắt đầu chạy ch−ơng trình của mình. ở trạng thái này thì 
tất cả các tài nguyên phần cứng và các thiết bị ngoại vi của KIT đều đ−ợc phép sử 
dụng mà không có một giới hạn nào. 
- Nếu nạp vào để chạy ở chế độ DEBUG - gỡ rối, chạy và xem kết quả các vùng nhớ 
sau mỗi lệnh thì: 
o Ch−ơng trình phải bắt đầu ở vị trí 4000H (vị trí khởi đầu của bộ nhớ RAM). 
Thực hiện bằng lệnh ORG 4000H. 
o Các vector ngắt phải đ−ợc cộng thêm 4000H. Cụ thể nh− sau: 
Nguồn ngắt Cờ 
Địa chỉ vector ngắt ở 
chế độ bình th−ờng 
Địa chỉ vector ngắt ở 
chế độ DEBUG 
Reset hệ thống RST 0000H 4000H 
Ngắt ngoài 0 IE0 0003H 4003H 
Bộ định thời 0 TF0 000BH 400BH 
Ngắt ngoài 1 IE1 0013H 4013H 
Bộ định thời 1 TF1 001BH 401BH 
Port nối tiếp RI or TI 0023H 4023H 
Bộ định thời 2 TF2 or EXF2 002BH 402BH 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 61 :Phần phụ lục 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng –Bộ môn TĐH Trang 95 
o Ngoài ra ng−ời học còn không đ−ợc sử dụng ngắt ngoài 1 đ/ đ−ợc thiết kế để 
phục vụ chế độ DEBUG. Còn đối với ngắt ngoài 0 nh− ở ch−ơng 2 đ/ giới 
thiệu, phục vụ giao tiếp với bàn phím của KIT. 
o Vùng nhớ RAM nội 32 byte từ 7FH-5FH không sử dụng, tuy nhiên 128 byte 
RAM nội đ−ợc định địa chỉ gián tiếp còn lại và 32 K-Byte RAM ngoài đ−ợc 
sử dụng thoải mái. 
Các h−ớng dẫn cụ thể bằng hình ảnh của KIT sẽ đ−ợc trình bày ở phần trợ giúp của 
ch−ơng trình chạy trên môi tr−ờng Windows đi kèm theo KIT, ch−ơng trình hỗ trợ biên 
dịch và dịch ng−ợc các file ch−ơng trình dạng hợp ngữ, nạp và xóa bộ nhớ EEPROM của 
KIT và một số bài ví dụ của ch−ơng trình nh− bài 7, thí nghiệm về "Truyền thông nối 
tiếp"... 
Sau đây sẽ là các khai báo mẫu của các ch−ơng trình chạy đ−ợc trên KIT cũng nh− ch−ơng 
trình MONITOR và các ví dụ. 
6.2 Các khai báo về địa chỉ các hằng và biến số sử dụng trong ch−ơng trình 
MONITOR và trong các ví dụ DEMO của KIT 
; ################################################################## 
; CAC KHAI BAO 
; ################################################################## 
; Khai bao dia chi cua cac 8255 
; 8255-1 
LCD_CONTROL EQU 8000H ; PA: Cac tin hieu dieu khien cua LCD 2408 
 ; PA0 = LCD_RS; PA1 = RW; PA2=E1; PA3 = E2 
LCD_DATA EQU 8001H ; PB: BUS data cua LCD 2408 
KEYPAD EQU 8002H ; D0-D6 lam bus nhan ma phim 
CW1 EQU 8003H ; Tu dieu khien CW cua 8255-1 
; 8255-5 
MATRIX_LED_ANOD EQU 8004H ; Cac hang`, tuc cac anod chung cua led ma tran 
MATRIX_LED_G EQU 8005H ; Cac cot xanh cua LED ma tran 
MATRIX_LED_R EQU 8006H ; Cac cot do cua LED ma tran 
CW5 EQU 8007H ; Tu dieu khien CW cua 8255-5 
; 8255-2 
ADC_DB EQU 8008H ; Bus du lieu cua ADC0809 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 61 :Phần phụ lục 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng –Bộ môn TĐH Trang 9 ... em_Xuong: 
 cjne A, #1, TiepTucDemLen 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 61 :Phần phụ lục 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng –Bộ môn TĐH Trang 108 
 mov KEY, #0FFH 
 jmp Exit_DEMO2_1 
TiepTucDemLen: 
 mov A, Led7Doan4 
 inc A 
 mov Led7Doan4, A 
 cjne A, #0AH, Dem_Len 
 add A, #6 
 anl A, #00001111B 
 mov Led7Doan4, A 
 mov A, Led7Doan3 
 inc A 
 mov Led7Doan3, A 
 cjne A, #0AH, Dem_Len 
 add A, #6 
 anl A, #00001111B 
 mov Led7Doan3, A 
 mov A, Led7Doan2 
 inc A 
 mov Led7Doan2, A 
 cjne A, #0AH, Dem_Len 
 add A, #6 
 anl A, #00001111B 
 mov Led7Doan2, A 
 mov A, Led7Doan1 
 inc A 
 mov Led7Doan1, A 
 cjne A, #0AH, Dem_Len 
 add A, #6 
 anl A, #00001111B 
 mov Led7Doan1, A 
 jmp Dem_Len 
Exit_DEMO2_1: 
 ; Thoat dem len, chuyen sang dem xuong 
 mov KEY, #0FFH 
 mov A, #DONG2 
 call Command_To_LCD 
 mov DPTR, #MSG13 
 call Str_To_LCD 
 mov A, #DONG3 
 call Command_To_LCD 
 mov DPTR, #MSG14 
 call Str_To_LCD 
DEMO2_2: ; ---- Dem xuong' 
 call Display_Four_7Seg_Led 
 call Delay_100ms 
 mov A, KEY 
 cjne A, #KEY_BSP, Sang_Dem_Len 
 mov KEY, #0FFH 
 jmp Exit_DEMO2 
Sang_Dem_Len: 
 cjne A, #0, TiepTucDemXuong 
 mov KEY, #0FFH 
 jmp DEMO2_1 
TiepTucDemXuong: 
 mov A, Led7Doan4 
 dec A 
 mov Led7Doan4, A 
 cjne A, #0FFH, DEMO2_2 
 mov Led7Doan4, #9 
 mov A, Led7Doan3 
 dec A 
 mov Led7Doan3, A 
 cjne A, #0FFH, DEMO2_2 
 mov Led7Doan3, #9 
 mov A, Led7Doan2 
 dec A 
 mov Led7Doan2, A 
 cjne A, #0FFH, DEMO2_2 
 mov Led7Doan2, #9 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 61 :Phần phụ lục 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng –Bộ môn TĐH Trang 109 
 mov A, Led7Doan1 
 dec A 
 mov Led7Doan1, A 
 cjne A, #0FFH, DEMO2_2 
 mov Led7Doan1, #9 
 jmp DEMO2_2 
Exit_DEMO2: 
 ret 
; ------------------------------------------- 
DEMO3: ; LED MA TRAN 
DEMO3_1: 
 mov DPTR, #MATRIX_LED_ANOD 
 mov A, #0FFH 
 movx @DPTR, A 
 mov A, #11001100B 
 mov DPTR, #MATRIX_LED_R 
 mov R7, #32 
Again_DM3_1: ; Nhay LED cua cac cot, xen ke 
 movx @DPTR, A 
 cpl A 
 call Delay_100ms 
 djnz R7, Again_DM3_1 
DEMO3_2: 
 mov DPTR, #MATRIX_LED_ANOD 
 mov A, #0FFH 
 movx @DPTR, A 
 mov A, #11001100B 
 mov DPTR, #MATRIX_LED_R 
 mov R7, #32 
Again_DM3_2: ; Chay LED 
 movx @DPTR, A 
 rr A 
 call Delay_100ms 
 djnz R7, Again_DM3_2 
DEMO3_3: 
 mov DPTR, #MATRIX_LED_ANOD 
 mov A, #0FFH 
 movx @DPTR, A 
 mov A, #11001100B 
 mov DPTR, #MATRIX_LED_R 
 mov R7, #32 
Again_DM3_3: ; Chay LED 
 movx @DPTR, A 
 rl A 
 call Delay_100ms 
 djnz R7, Again_DM3_3 
DEMO3_4: ; Thi nghiem voi cac cot 
 mov A, #0FFH 
 mov DPTR, #MATRIX_LED_R 
 movx @DPTR, A 
 mov A, #0FFH 
 mov DPTR, #MATRIX_LED_G 
 movx @DPTR, A 
 mov DPTR, #MATRIX_LED_ANOD 
 mov A, #01H 
 movx @DPTR, A 
 mov R7, #64 
Again_DM3_4: ; Chay LED 
 movx @DPTR, A 
 rl A 
 call Delay_100ms 
 djnz R7, Again_DM3_4 
 ret 
DEMO4: ; BAN PHIM, LCD 
 ret 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 61 :Phần phụ lục 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng –Bộ môn TĐH Trang 110 
DEMO5: ;ADC, DAC 
; 8255-2 
; ADC_DB EQU 8008H ; Bus du lieu cua ADC0809 
; DAC_DB EQU 8009H ; Bus du lieu cua DAC0808 
; ADC_CONTROL EQU 800AH ; Cac tin hieu dieu khien ADC0809 
; CW2 EQU 800BH ; Tu dieu khien CW cua 8255-2 
; Cac bit cua ADC_CONTROL nhu sau 
; 7 6 | 5 | 4 | 3 | 2 | 1 | 0 | 
; ----|-----|----|--------|------|------|------| 
; X X | EOC | OE | ALE+SC | ADDC | ADDB | ADDA | 
ADC: 
 mov DPTR, #CW2 
 mov A, #CW_100 ; A vao, B, C ra 
 movx @DPTR, A 
 mov DPTR, #ADC_CONTROL ; Chon 
kenh analog 0 
 mov A, #00001000B 
 movx @DPTR, A 
 nop 
 nop 
 nop 
 mov A, #00100000B ; Chot 
dia chi va bat dau chuyen doi 
 movx @DPTR, A 
 mov DPTR, #CW2 ; Chuyen PC - 
ADC_CONTROL lam dau vao 
 mov A, #CW_101 ; A, C vao, B ra 
 movx @DPTR, A 
Wait_EOC: ; Cho` cho 
qua trinh convert ket thuc 
 mov DPTR, #ADC_CONTROL 
 movx A, @DPTR 
 anl A, #00100000B 
 cjne A, #00100000B, Wait_EOC 
 ; Ket thuc qua trinh chuyen doi 
 mov DPTR, #CW2 ; Dat lai PC lam dau 
ra 
 mov A, #CW_100 ; A vao, B, C ra 
 movx @DPTR, A 
 mov DPTR, #ADC_CONTROL 
 mov A, #00110000B ; Cho phep dau ra OE 
= 1 
 movx @DPTR, A 
 mov DPTR, #ADC_DB ; Doc du lieu tra ve 
 movx A, @DPTR 
 mov Nhiet_Do, A 
 mov E, #2 
 mov A, #DONG1 
 call Command_To_LCD 
 mov DPTR, #MSG34 
 call Str_To_LCD 
 mov A, #DONG2 
 call Command_To_LCD 
 mov DPTR, #MSG35 
 call Str_To_LCD 
 mov A, #DONG3 
 call Command_To_LCD 
 mov DPTR, #MSG33 
 call Str_To_LCD 
 mov A, Nhiet_Do 
 clr CY 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 61 :Phần phụ lục 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng –Bộ môn TĐH Trang 111 
 subb A, #100 
 jc Nhiet_Do_Nho_Hon_100 
Nhiet_Do_Lon_Hon_100: 
 mov A, Nhiet_Do 
 dec A ; Tru 1 
 rl A 
 rl A ; Nhan 4 de nhay cho dung 
vi tri chuoi can tra trong bang 
 mov R6, #4 
 mov R0, A 
 mov DPTR, #LON_HON_100_DO 
In_Nhiet_Do_1: 
 movc A, @A + DPTR 
 call In_Ki_Tu 
 inc R0 
 mov A, R0 
 djnz R6, In_Nhiet_Do_1 
 jmp In_Do_C 
Nhiet_Do_Nho_Hon_100: 
 mov A, Nhiet_Do 
 dec A ; Tru 1 
 rl A ; Nhan 2 de nhay cho dung 
vi tri chuoi can tra trong bang 
 mov R6, #2 
 mov R0, A 
 mov DPTR, #NHO_HON_100_DO 
In_Nhiet_Do_2: 
 movc A, @A + DPTR 
 call In_Ki_Tu 
 inc R0 
 mov A, R0 
 djnz R6, In_Nhiet_Do_2 
In_Do_C: 
 mov A, #' ' 
 call In_Ki_Tu 
 mov A, #'d' 
 call In_Ki_Tu 
 mov A, #'o' 
 call In_Ki_Tu 
 mov A, #' ' 
 call In_Ki_Tu 
 mov A, #'C' 
 call In_Ki_Tu 
 mov A, #' ' 
 call In_Ki_Tu 
 call Delay_500ms 
 call Delay_500ms 
 mov A, KEY 
 cjne A, #KEY_ENTER, KT_Thoat_ADC 
 mov KEY, #0FFH 
 jmp DAC 
KT_Thoat_ADC: 
 cjne A, #KEY_BSP, Tiep_Tuc_ADC 
 mov KEY, #0FFH 
 call Restore_SCR 
 ret 
Tiep_Tuc_ADC: 
 jmp ADC 
; -------------------------------------------
---- 
DAC: 
 mov E, #2 
 mov A, #01 
 call Command_To_LCD 
 mov A, #DONG2 
 call Command_To_LCD 
 mov DPTR, #MSG38 ; 'Thi nghiem voi 
DAC' 
 call Str_To_LCD 
 ; DAC_DB EQU 8009H 
 ; Bus du lieu cua DAC0808 
 mov A, #DONG3 
 call Command_To_LCD 
 mov DPTR, #MSG36 
 call Str_To_LCD 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 61 :Phần phụ lục 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng –Bộ môn TĐH Trang 112 
 mov Ap_Ra, #10 
Tang_Ap_DAC: 
 mov A, Ap_Ra 
Dao_Gia_Tri: 
 rrc A 
 mov 07H, C 
 rrc A 
 mov 06H, C 
 rrc A 
 mov 05H, C 
 rrc A 
 mov 04H, C 
 rrc A 
 mov 03H, C 
 rrc A 
 mov 02H, C 
 rrc A 
 mov 01H, C 
 rrc A 
 mov 00H, C 
 mov A, 20H 
 mov DPTR, #DAC_DB 
 movx @DPTR, A 
 mov A, Ap_Ra 
 add A, #2 
 mov Ap_Ra, A 
 call Delay_500ms 
 call Delay_500ms 
 call Delay_500ms 
 call Delay_500ms 
 call Delay_500ms 
 call Delay_500ms 
 mov A, Ap_Ra 
 cjne A, #254, KT_Thoat_Tang_Ap_DAC 
 jmp Exit_DEMO5 
KT_Thoat_Tang_Ap_DAC: 
 mov A, KEY 
 cjne A, #KEY_BSP, Tang_Ap_DAC 
 mov KEY, #0FFH 
Exit_DEMO5: 
 call Restore_SCR 
 ret 
DEMO6: ; STEPPER, DC MOTOR 
;DIGITAL_INPUT EQU 800CH ; Dau vao so 
;DC_STEPPER EQU 800DH ; Dieu khien dong co 
buoc (PB0-PB3), dong co 1 chieu(PB4-PB7
; PULSE_INPUT EQU 800EH ; 4 dau vao xung = 
nut(PC4-PC7), 4 tu cac nguon phat 
xung(PC0-PC3) 
; CW3 EQU 800FH ; Tu dieu khien CW cua 
8255-3 
 mov DPTR, #DC_STEPPER 
 mov R4, #00110011B 
 mov R7, #255 
 mov R6, #5 
 mov Nut1, #0 
 mov Nut2, #0 
 mov Nut3, #0 
 mov Nut4, #0 
Quay_Thuan: 
 mov A, R4 
 movx @DPTR, A 
 rl A 
 mov R4, A 
 call Delay_7ms 
 call Delay_7ms 
 call Delay_7ms 
 mov A, KEY 
 cjne A, #KEY_BSP, Case_Enter_QT 
 mov KEY, #0FFH 
 call Restore_SCR 
 ret 
 ; MSG29: db 'ENTER=Test pulse input', 0 
 ; MSG30: db 'ENTER=Test digital 
input',0 
Case_Enter_QT: 
 mov A, KEY 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 61 :Phần phụ lục 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng –Bộ môn TĐH Trang 113 
 cjne A, #KEY_ENTER, Du_So_Buoc1 
 mov KEY, #0FFH 
 ;Hien thi thong bao bam enter de quay 
nguoc 
 mov E, #2 
 mov A, #DONG1 
 call Command_To_LCD 
 mov DPTR, #MSG29 
 call Str_To_LCD 
 mov R7, #255 
 mov R6, #5 
 mov R4, #00110011B 
 mov DPTR, #DC_STEPPER 
 jmp Quay_Nguoc 
Du_So_Buoc1: 
 djnz R7, Quay_Thuan 
 mov R7, #255 
 djnz R6, Quay_Thuan 
Quay_Nguoc: 
 mov A, R4 
 movx @DPTR, A 
 rr A 
 mov R4, A 
 call Delay_7ms 
 call Delay_7ms 
 call Delay_7ms 
 mov A, KEY 
 cjne A, #KEY_BSP, Case_Enter_QN 
 mov KEY, #0FFH 
 call Restore_SCR 
 ret 
Case_Enter_QN: 
 mov A, KEY 
 cjne A, #KEY_ENTER, Du_So_Buoc2 
 mov KEY, #0FFH 
 ;Hien thi thong bao bam enter de quay 
TEST pulse input 
 mov E, #2 
 mov A, #DONG1 
 call Command_To_LCD 
 mov DPTR, #MSG30 
 call Str_To_LCD 
 mov DPTR, #DC_STEPPER 
 mov A, #0 
 movx @DPTR, A 
 jmp Pulse_Digital_Input_Test 
Du_So_Buoc2: 
 djnz R7, Quay_Nguoc 
 mov R7, #255 
 djnz R6, Quay_Nguoc 
Pulse_Digital_Input_Test: 
; MSG32: db 'Digital input value: ',0 
 mov E, #2 
 mov A, #DONG2 
 call Command_To_LCD 
 mov DPTR, #MSG31 
 call Str_To_LCD 
 mov A, #DONG3 
 call Command_To_LCD 
 mov DPTR, #MSG32 
 call Str_To_LCD 
 ; DIGITAL_INPUT EQU 800CH ; 
Dau vao so 
 ; DC_STEPPER EQU 800DH ; 
Dieu khien dong co buoc (PB0-PB3), dong co 1 
chieu(PB4-PB7) 
 ; PULSE_INPUT EQU 800EH ; 
4 dau vao xung = nut(PC4-PC7), 4 tu cac nguon 
phat xung(PC0-PC3) 
 ; CW3 EQU 800FH
 ; Tu dieu khien CW cua 8255-3 
Quet_phim: 
 mov DPTR, #PULSE_INPUT 
 movx A, @DPTR 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 61 :Phần phụ lục 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng –Bộ môn TĐH Trang 114 
 cjne A, #0FFH, Phim1 
 jmp Cap_nhat_gia_tri 
Phim1: 
 movx A, @DPTR 
 anl A, #11110000B ; Neu phim 
thu 1 dc an 
 cjne A, #01110000B, Phim2 
Cho_Phim1_tha: 
 mov DPTR, #PULSE_INPUT 
 movx A, @DPTR 
 anl A, #11110000B 
 cjne A, #11110000B, Cho_Phim1_tha 
 call Delay_7ms 
 call Delay_7ms 
 call Delay_7ms 
 inc Nut1 ; Duoc tha roi thi tang 
Nut1 - chua tong so lan bam len 
 jmp Cap_nhat_gia_tri 
Phim2: 
 movx A, @DPTR 
 anl A, #11110000B ; Neu phim 
thu 2 duoc an 
 cjne A, #10110000B, Phim3 
Cho_Phim2_tha: 
 movx A, @DPTR 
 anl A, #11110000B 
 cjne A, #11110000B, Cho_Phim2_tha 
 call Delay_7ms 
 call Delay_7ms 
 call Delay_7ms 
 inc Nut2 ; Duoc tha roi thi tang 
Nut1 - chua tong so lan bam len 
 jmp Cap_nhat_gia_tri 
Phim3: 
 movx A, @DPTR 
 anl A, #11110000B ; Neu phim 
thu 3 duoc an 
 cjne A, #11010000B, Phim4 
Cho_Phim3_tha: 
 movx A, @DPTR 
 anl A, #11110000B 
 cjne A, #11110000B, Cho_Phim3_tha 
 call Delay_7ms 
 call Delay_7ms 
 call Delay_7ms 
 inc Nut3 ; Duoc tha roi thi tang 
Nut1 - chua tong so lan bam len 
 jmp Cap_nhat_gia_tri 
Phim4: 
 movx A, @DPTR 
 anl A, #11110000B ; Neu phim 
thu 4 duoc an 
 cjne A, #11100000B, Cap_nhat_gia_tri 
Cho_Phim4_tha: 
 movx A, @DPTR 
 anl A, #11110000B 
 cjne A, #11110000B, Cho_Phim4_tha 
 call Delay_7ms 
 call Delay_7ms 
 call Delay_7ms 
 inc Nut4 ; Duoc tha roi thi tang 
Nut1 - chua tong so lan bam len 
Cap_nhat_gia_tri: 
Cap_nhat_gia_tri_digital_input: 
 mov A, #DONG3 + 28 
 call Command_To_LCD 
 mov DPTR, #DIGITAL_INPUT 
 movx A, @DPTR 
 call phex8 ; in ra gia tri cua 
digital input 
; MSG31: db 'B1: |B2: |B3: |B4: ',0 
Cap_nhat_so_lan_bam_cac_nut: 
 mov A, #DONG2 + 3 
 call Command_To_LCD 
 mov A, Nut1 
 call phex8 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 61 :Phần phụ lục 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng –Bộ môn TĐH Trang 115 
 mov A, #DONG2 + 9 
 call Command_To_LCD 
 mov A, Nut2 
 call phex8 
 mov A, #DONG2 + 15 
 call Command_To_LCD 
 mov A, Nut3 
 call phex8 
 mov A, #DONG2 + 21 
 call Command_To_LCD 
 mov A, Nut4 
 call phex8 
 mov A, KEY 
 cjne A, #KEY_BSP, Tiep_tuc 
 mov KEY, #0FFH 
 call Restore_SCR 
 ret 
Tiep_tuc: 
 jmp Quet_Phim 
 ret 
DEMO7: ; RS232 
 call Disable_SERIAL_INT 
; Lam viec voi nua man hinh 2 
 mov E, #2 
 mov A, #01 
 call Command_To_LCD ; Xoa LCD 
 mov A, #DONG1 
 call Command_TO_LCD 
 ; Select receive mode, bam nut 0 
 mov DPTR, #MSG24 
 call Str_TO_LCD 
 mov A, #DONG2 
 call Command_TO_LCD 
 ; Select receive mode, bam nut 1 
 mov DPTR, #MSG25 
call Str_TO_LCD 
 mov A, #0CH ; Giau con tro 
 call Command_To_LCD 
Cho_Phim_0_DM7: 
 mov A, KEY 
 cjne A, #0, Cho_Phim_1_DM7 
 mov KEY, #0FFH 
 jmp Receive_Mode 
Cho_Phim_1_DM7: 
 mov A, KEY 
 cjne A, #1, Cho_Phim_BSP_DM7 
 mov KEY, #0FFH 
 jmp Send_Mode 
Cho_Phim_BSP_DM7: 
 mov A, KEY 
 cjne A, #KEY_BSP, Cho_Phim_0_DM7 
 mov KEY, #0FFH 
 call Enable_SERIAL_INT 
 ret 
Receive_Mode: 
 mov A, #DONG3 
 call Command_To_LCD 
 mov DPTR, #MSG26 
 call Str_To_LCD 
 mov A, #DONG4 
 call Command_To_LCD 
 mov A, #0FH ; Nhap nhay con tro 
 call Command_To_LCD 
 clr RI 
 mov R7, #23 
Doi_Nhan_Du_Lieu: 
 mov A, KEY 
 cjne A, #KEY_BSP, Co_Du_Lieu_Den 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 61 :Phần phụ lục 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng –Bộ môn TĐH Trang 116 
 mov KEY, #0FFH 
 jmp DEMO7 
Co_Du_Lieu_Den: 
 jnb RI, Doi_Nhan_Du_Lieu 
 mov A, SBUF 
 call In_Ki_Tu 
 djnz R7, Chua_Het_Hang 
 mov R7, #24 
 mov A, #DONG4 ; Tro ve dau dong 
 call Command_To_LCD 
Chua_Het_Hang: 
 clr RI 
 jmp Doi_Nhan_Du_Lieu 
; ------------------------------------ 
Send_Mode: 
 mov A, #DONG3 
 call Command_To_LCD 
 mov DPTR, #MSG27 
 call Str_To_LCD 
Continue_Transfer: 
 mov DPTR, #MSG22 
 call Send_String 
 mov A, #13 
 call Send_Char 
 mov A, #10 
 call Send_Char 
 mov DPTR, #MSG23 
 call Send_String 
 mov A, #13 
 call Send_Char 
 mov A, #10 
 call Send_Char 
 call Delay_500ms 
 call Delay_500ms 
 call Delay_500ms 
 call Delay_500ms 
 mov A, KEY 
 cjne A, #KEY_BSP, Continue_Transfer 
 mov KEY, #0FFH 
 jmp DEMO7 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 61 :Phần phụ lục 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng –Bộ môn TĐH Trang 117 
6.5 Sơ đồ mạch in của các board
Sơ đồ mạch in của BOARD CPU - mặt trên 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 61 :Phần phụ lục 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng –Bộ môn TĐH Trang 118 
Sơ đồ mạch in của BOARD CPU - mặt d−ới 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 61 :Phần phụ lục 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng –Bộ môn TĐH Trang 119 
Sơ đồ mạch in của BOARD ADC - mặt trên 
Sơ đồ mạch in của BOARD xung số, động cơ b−ớc- mặt d−ới 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 61 :Phần phụ lục 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng –Bộ môn TĐH Trang 120 
Sơ đồ mạch in của BOARD LED 
đơn, LED 7 đoạn và LED ma trận 
(mặt trên) 
(mặt d−ới) 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 61 :Phần phụ lục 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng –Bộ môn TĐH Trang 121 
Tài liệu tham khảo 
1. Cấu trúc và lập trình họ vi điều khiển 8051 – Nguyễn Tăng C−ờng – Nhà 
xuất bản khoa học kỹ thuật – 2004 
2. Họ vi điều khiển 8051 – Tống Văn On, Hoàng Đức Hải – Nhà xuất bản 
Lao động –X/ hội – 2001 
3. Các tài liệu tham khảo khác d−ới dạng html và dạng pdf đi kèm theo CD 
ở th− mục “Tai lieu tham khao” 

File đính kèm:

  • pdfgiao_trinh_mon_ky_thuat_vi_dieu_khien_chuong_vi_phu_luc.pdf