Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 106 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
106
Dung lượng
419,94 KB
Nội dung
Luận Văn Tốt Nghiệp CHƯƠNG I GIỚI THIỆU VI ĐIỀU KHIỂN 8051 I CẤU TẠO VI ĐIỀU KHIỂN 8051 TÓM TẮT PHẦN CỨNG HỌ MSC-51 (8051) MCS-51 họ IC vi điều khiển hãng Intel sản xuất Các IC tiêu biểu cho họ 8031, 8051, 8951 Những đặc điểm nguyên tắt hoạt động vi điều khiển khác không nhiều Khi sử dụng thành thạo loại vi điều khiển ta nhanh chóng vận dụng kinh nghiệm để làm quen làm chủ ứng dụng vi điều khiển khác Vì để có hiểu biết cụ thể vi điều khiển để phục vụ cho đề tài tốt nghiệp ta bắt đầu tìm hiểu vi điều khiển thông dụn g nhất, họ MCS-51 họ MCS-51 họ điển hình 8051 lại đại diện tiêu biểu Các đặc điểm 8051 tóm tắt sau : √ KB ROM beân √ 128 Byte RAM nội √ Port xuất /nhập I/O bit √ Giao tiếp nối tiếp √ 64 KB vùng nhớ mã √ 64 KB vùng nhớ liệu ngoại √ Xử lý Boolean (hoạt động bit đơn) √ 210 vị trí nhớ định vị bit √ μs cho hoạt động nhân chia Bảng mô tả khác IC họ MSC-51 : GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp Loại Bộ Nhớ Mã Trên CHIP Bộ Nhớ Dữ Liệu Trên CHIP Số Timer 8051 4K ROM 128 Byte 8031 0K ROM 128 Byte 8751 4K ROM 128 Byte 8052 K ROM 256Byte 8032 K ROM 256Byte 8752 8K EPROM 256Byte 2 CẤU TRÚC VĐK 8051, CHỨC NĂNG TỪNG CHÂN 40 30pF 19 12 MHz 18 30pF 29 XTAL.1 XTAL.2 PSEN 30 ALE 31 EA RD WR T1 T0 INT1 INT0 TXD RXD Vcc RST 17 16 15 14 13 12 11 10 8051 P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 32 AD7 33 AD6 34 AD5 35 AD4 36 AD3 37 AD2 38 AD1 39 AD0 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 28 A15 27 A14 26 A13 25 A12 24 A11 23 A10 22 A9 21 A8 Vss 20 Chức hoạt động chân (pin) tóm tắt sau : √ Từ chân 1÷ Port (P1.0, , P1.7) dùng làm Port xuất nhập I/O để giao tiếp bên GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp √ Chân (RST) chân để RESET cho 8051 Bình thường chân mức thấp Khi ta đưa tín hiệu lên cao (tối thiểu chu kỳ máy) Thì ghi nội 8051 LOAD giá trị thích hợp để khởi động lại hệ thống Từ chân 10÷17 Port3 (P3.0, P3.1, , P3.7) dùng vào hai mục đích : dùng Port xuất / nhập I/O chân giữ chức cá biệt tóm tắt sơ sau : • P3.0 (RXD) : Nhận liệu từ Port nối tiếp • P3.1 (TXD) : Phát liệu từ Port nối tiếp • P3.2 (INT0) : Ngắt bên • P3.3 (INT1) : Ngắt từ bên • P3.4 (T0) : Timer/Counter nhập từ bên • P3.5 (T1) : Timer/Counter nhập từ bên • P3.6 (WR) : Tín hiệu Strobe ghi liệu lên nhớ bên • P3.7 (RD) : Tín hiệu Strobe đọc liệu lên nhớ bên √ Các chân 18,19 (XTAL2 XTAL1) nối với dao động thạch anh 12 MHz để tạo dao động CHIP Hai tụ 30 pF thêm vào để ổn định dao động √ Chân 20 (Vss) nối đất (Vss = 0) √ Từ chân 21÷28 Port (P2.0, P2.1, , P2.7) dùng vào hai mục đích: làm Port xuất/nhập I/O dùng làm byte cao bus địa không tác dụng I/O Bởi ta muốn dùng EPROM RAM nên phải sử dụng Port làm byte cao bus địa √ Chân 29 (PSEN) tín hiệu điều khiển xuất 8051, cho phép chọn nhớ nối chung với chân OE (Outout Enable) EPROM phép đọc byte chương trình Các xung tín hiệu PSEN hạ thấp suốt thời gian thi hành lệnh Những mã nhị phân chương trình đọc từ EPROM qua bus liệu chốt vào ghi lệnh 8051 mã lệnh Chân 30 (ALE : Adress Latch Enable) tín hiệu điều khiển xuất 8051, cho phép phân kênh bus địa bus liệu Port √ Chân 31 (EA : Eternal Acess) đưa xuống thấp cho phép chọn nhớ mã ngoàiđối với 8031 Đối với 8051 : GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp • EA = 5V : Chọn ROM nội • EA = 0V : Chọn ROM ngoại • EA = 21V : Lập trình EPROM nội √ Các chân từ 32÷39 Port (P0.0, P0.1, , P0.7) dùng hai mục đích : Vừa làm byte thấp cho bus địa chỉ, vừa làm bus liệu, Port không chức xuất nhập I/O √ Chân 40 (Vcc) nối lên nguồn 5V TỔ CHỨC BỘ NHỚ Bản đồ nhớ data Chip sau : Địa byte Địa byte Địa bit 7F Địa bit FF F0 F7 F6 F5 F4 F3 F2 F1 F0 B E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW B8 - - - BC BB BA B9 B8 IP B0 B7 B6 B5 B4 B3 B2 B1 B0 P.3 A8 AF AC AB AA A9 A8 IE A0 A7 A6 A4 A3 A2 A1 A0 P2 99 98 9F không địa hoá bit 9E 9D 9C 9B 9A 99 98 SBUF SCON 90 97 96 90 P1 RAM đa dụng 30 2F 2E 2D 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 18 17 10 0F 08 07 00 7F 77 6F 67 5F 57 4F 47 3F 37 2F 27 1F 17 0F 07 7E 76 6E 66 5E 56 4E 46 3E 36 2E 26 1E 16 0E 06 7D 75 6D 65 5D 55 4D 45 3D 35 2D 25 1D 15 0D 05 7C 7B 74 73 6C 6B 64 63 5C 5B 54 53 4C 4B 44 43 3C 3B 34 33 2C 2B 24 23 1C 1B 14 13 0C 0B 04 03 Bank 7A 72 6A 62 5A 52 4A 42 3A 32 2A 22 1A 12 0A 02 79 71 69 61 59 51 49 41 39 31 29 21 19 11 09 01 Bank Bank Bank ghi (mặc định cho R0 -R7) RAM 78 70 68 60 58 50 48 40 38 30 28 20 18 10 08 00 8D 8C 8B 8A 89 88 87 83 82 81 88 8F 87 A5 95 94 93 92 91 không địa hoá bit không địa hoá bit không địa hoá bit không địa hoá bit không địa hoá bit 8E 8D 8C 8B 8A 89 không địa hoá bit không địa hoá bit không địa hoá bit không địa hoá bit 86 85 84 83 82 81 88 80 TH1 TH0 TL1 TL0 TMOD TCON PCON DPH DPL SP P0 CÁC THANH GHI CHỨC NĂNG ĐẶC BIỆT Tóm tắt nhớ liệu chip GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp 3.1 RAM mục đích chung Trong đồ nhớ trên, 80 byte từ địa 30H÷7FH RAM mục đích chung Kể 32byte phần từ 00H÷2FH sử dụng giống 80 byte trên, nhiên 32 byte có mục đích khác đề cập sau Bất kỳ vị trí RAM mục đích chung truy xuất tùy ý giống việc sử dụng mode để định địa trực tiếp hay gián tiếp Ví dụ để đọc nội dung RAM nội có địa 5FH vào ghi tích lũy ta dùng lệnh : MOV A, 5FH RAM nội truy xuất việc dùng địa gián tiếp qua R0 R1 Hai lệnh sau tương đương lệnh : MOV R0, #5FH MOV A, @R0 Lệnh thứ dùng định vị tức thời để đưa giá trị 5FH vào ghi R0, lệnh thứ hai dùng định vị gián tiếp để đưa liệu “đã trỏ đến R0” vào ghi tích lũy A 3.2 RAM định vị 8051 chứa 210 vị trí định vị bit, có 128 bit nằm địa từ 20H÷2FH phần lại ghi chức đặc biệt 3.3 Các băng ghi (Register Banks) 32 vị trí nhớ cuối nhớ từ địa byte 00H÷1FH chức dãy ghi Tập hợp lệnh 8051 cung cấp ghi từ R0÷R7 địa 00H÷07H máy tính chọn để thực thi Những lệnh tương đương dùng định vị trực tiếp Những giá trị liệu dùng thường xuyên chắn sử dụng ghi 3.4 Các ghi chức đặc biệt (Special Function Register) Có 21 ghichức đặc biệt SFR đỉnh RAM nội từ địa ghi chức đặc biệt định rõ, phần lại không định rõ Mặc dù ghi A truy xuất trực tiếp, hầu hết ghi chức đặc biệt truy xuất cách sử dụng định vị địa trực tiếp Chú ý vài ghi SFR có bit định vị byte định vị Người thiết kế cẫn thận truy xuất bit mà không truy xuất byte 3.4.1 Từ trạng thái chương trình (PSW : Program Status Word) : Từ trạng thái chương trình địa D0H tóm tắt sau : GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp BIT SYMBOL ADDRESS DESCRIPTION PSW.7 CY D7H Cary Flag PSW.6 AC D6H Auxiliary Cary Flag PSW.5 F0 D5H Flag PSW4 RS1 D4H Register Bank Select PSW.3 RS0 D3H Register Bank Select 00=Bank 0; address 00H÷07H 01=Bank 1; address 08H÷0FH 10=Bank 2; address 10H÷17H 11=Bank 3; address 18H÷1FH PSW.2 OV D2H Overlow Flag PSW.1 - D1H Reserved PSW.0 P DOH Even Parity Flag Chức bit trạng thái chương trình a) Cờ Carry CY (Carry Flag) : Cờ Carry set lên có tràn bit phép cộng có mượn vào bit phép trừ Cờ Carry “thanh ghi tích lũy luận lý”, dùng ghi bit thực thi bit lệnh luận lý Ví dụ lệnh : ANL C, 25H AND bit 25H với cờ Carryvà cất kết vào cờ Carry b) Cờ Carry phụ AC (Auxiliary Carry Flag) : Khi cộng giá trị BCD (Binary Code Decimal), cờ nhớ phụ AC đượcset có tràn từ bit sang bit thấp nằm phạm vi0AH÷0FH c) Cờ (Flag 0) : Cờ (F0) bit cờ có mục đích tổng hợp cho phép người ứng dụng dùng d) Những bit chọn dãy ghi RS1 RS0 : RS1 RS0 định dãy ghi tích cực Chúng xóa sau reset hệ thống thay đổi phần mềm cần thiết e Cờ tràn OV (Over Flag) : GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp Cờ tràn set sau hoạt động cộng trừ có tràn toán học Bit OV bỏ qua cộng trừ không dấu Khi cộng trừ có dấu, kết lớn + 127 hay nhỏ -128 set bit OV f Bit Parity (P) : Bit tự động set hay Clear chu kỳ máy để lập Parity chẳn với ghi A Sự đếm bit ghi A cộng với bit Parity luôn chẳn Ví dụ A chứa 10101101B bit P set lên để tổng số bit A P tạo thành số chẳn Bit Parity thường dùng kết hợp với thủ tục Port nối tiếp để tạo bit Parity trước phát kiểm tra bit Parity sau thu 3.4.2 Thanh ghi B : Thanh ghi B địa F0H dùng đôi với ghi A cho hoạt động nhân chia Thanh ghi B dùng ghi đệm trung gian đa mục đích Nó bit định vị thông qua địa từ F0H÷F7H 3.4.3 Con trỏ Stack SP (Stack Pointer) : Stack Pointer ghi bit địa 81H Nó chứa địa liệu hành đỉnh Stack Các hoạt động Stack bao gồm việc đẩy liệu vào Stack (PUSH) lấy liệu khỏi Stack (POP) √ Việc PUSH vào Stack tăng SP lên trước liệu vào √ Việc POP từ Stack lấy liệu trước giảm SP 3.4.4 Con trỏ liệu DPTR (Data Pointer) : Data Pointer để truy xuất nhớ mà nhớ liệu ngoài, ghi 16 bit mà byte thấp DPL địa 82H byte cao DPH địa 83H Để đưa nội dung 55H vào RAM ngoại có địa 1000H ta dùng lệnh sau : MOV A, #55H MOV DPTR, #1000H MOVX @ DPTR, A Lệnh thứ dùng định vị trực tiếp đưa số liệu 55H vào A Lệnh thứ hai tương tự lệnh thứ đưa số liệu 1000H vào GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp DPTR lệnh cuối dùng định vị gián tiếp để dịch chuyển giá trị 55H A vào vùng nhớ RAM ngoại 1000H nằm DPTR 3.4.5 Caùc ghi Port (Port Register) : Caùc Port 0, Port 1, Port 2, Port có địa tương ứng 80H, 90H, A0H, B0H Các Port 0, Port 1, Port 2, Port không tác dụng xuất nhập nhớ dùng vài cá tính đặc biệt 8051 dùng (như Interrupt, Port nối tiếp ) Do có Port1 có tác dụng xuất nhập I/O Tất Port có bit địa chỉ, có khả giao tiếp với bên mạnh mẽ 3.4.6 Các ghi Timer (Timer Register) : 8051 có : Một Timer 16 bit Counter 16 bit, hai dùng để định lúc nghỉ chương trình đếm kiện quan trọng Timer có bit thấp TL0 địa 8AH có bit cao TH0 địa 8CH Timer có bit thấp địa 8BH bit cao TH1 địa 8DH Hoạt động định thời cho phép ghi mode định thời TMOD (Timer Mode Register) Ở địa 89H ghi điều khiển định thời TCON (Timer Control Register) địa 88H Chỉ có TCON có bit định vị 3.4.7 Các ghi Port nối tiếp (Serial Port Register) : 8051 chứa Port nối tiếp Chip cho việc truyền thông tin với thiết bị nối tiếp thiết bị đầu cuối, modem, để giao tiếp IC khác với biến đổi A/D, ghi di chuyển, RAM ) Thanh ghi đệm liệu nối tiếp SBUF địa 99H giữ liệu phát lẫn liệu thu Việc ghi lên SBUF để LOAD liệu cho việc truyền đọc SBUF để truy xuất liệu cho việc nhận mode hoạt động khác lập trình thông qua ghi điều khiển Port nối tiếp SCON 3.4.8 Các ghi ngắt (Interrupt Register) : 8051 có hai cấu trúc ngắt ưu tiên, nguồn Những Interrupt bị tác dụng sau hệ thống reset (bị cấm) sau cho phép việc cho phép ghi lên ghi cho phép ngắt IE (Interrup Enable Register) địa A8H Mức ưu tiên đặt vào ghi ưu tiên ngắt IP (Interrupt Priority Level) địa B8H Cả ghi có bit địa 3.4.9 Thanh ghi điều khiển nguồn PCON (Power Control Register) : GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp Thanh ghi PCON bit định vị Nó địa 87H bao gồm bit địa tổng hợp Các bit PCON tóm tắt sau : √ Bit (SMOD) : Bit có tốc độ Baud mode 1, 2, Port nối tiếp set √ Bit 6, 5, : Không có địa √ Bit (GF1) : Bit cờ đa √ Bit (GF0) : Bit cờ đa √ Bit * (PD) : Set để khởi động mode Power Down thoát để reset √ Bit * (IDL) : Set để khởi động mode Idle thoát ngắt mạch reset Các bit điều khiển Power Down Idle có tác dụng tất IC họ MSC-51 thi hành biên dịch CMOS II TÓM TẮT TẬP LỆNH CỦA 8051 Các chương trình cấu tạo từ nhiều lệnh, chúng xây dựng logic, nối tiếp lệnh nghó cách hiệu nhanh, kết chương trình khả quan Tập lệnh họ MSC-51 kiểm tra mode định vị lệnh chúng có Opcode bit Điều cung cấp khả 28=256 lệnh thi hành lệnh không định nghóa Vài lệnh có byte liệu địa thêm vào Opcode Trong toàn lệnh có 139 lệnh byte, 92 lệnh byte 24 lệnh byte CÁC CHẾ ĐỘ ĐỊNH VỊ (ADDRESSING MODE) Các mode định vị phận thống tập lệnh máy tính Chúng cho phép định rõ nguồn nơi gởi tới liệu đường khác tùy thuộc vào trạng thái lập trình 8051 có mode định vị dùng sau : √ Thanh ghi √ Trực tiếp √ Gián tiếp √ Tức thời √ Tương đối √ Tuyệt đối √ Dài GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp √ Định vị 1.1 Sự định vị ghi (Register Addressing) Có dãy ghi 32 byte RAM liệu Chip địa 00H ÷ 1FH, thời điểm có dãy hoạt động bit PSW3, PSW4 từ trạng thái chương trình định dãy hoạt động Các lệnh để định vị ghi ghi mật mã cách dùng bit trọng số thấp Opcode lệnh để ghi vùng địa theo logic Như mã chức địa hoạt động kết hợp để tạo thành lệnh ngắn byte nhö sau : n Opcode n n Register Addressing 1.2 Sự định địa trực tiếp (Direct Addressing) Sự định địa trực tiếp truy xuất giá trị Chip ghi phần cứng Chip Một byte địa trực tiếp đưa vào Opcode để định rỏ vị trí dùng sau : Opcode Direct Addressing Tùy thuộc bit bậc cao địa trực tiếp mà vùng nhớ chọn Khi bit = 0, địa trực tiếp khoảng 0÷127 (00H÷7FH) 128 vị trí nhớ thấp RAM Chip chọn 1.3 Sự định vị địa gián tiếp (Indirect Addressing) Sự định địa gián tiếp tượng trưng ký hiệu @ đặt trước R0, R1 hay DPTR R0 R1 hoạt động ghi trỏ mà nội dung cho biết địa RAM nội nơi mà liệu ghi đọc Bit có trọng số nhỏ Opcode lệnh xác định R0 hay R1 dùng trỏ Pointer Opcode GVHD: NGUYỄN ĐÌNH PHÚ i SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp call con_hex ;goi chtr chuyen sang so hex lea dx,buffrr mov cx,256 call display mov cx,256 ;place in transmitter hoding register to send mov dx,card_base lea di,buffrr ;tro toi vung dem ppl: mov al,[di] ;lay byte data out dx,al jmp short $+2 call edelay inc di loop ppl ;display character ; call tty ppexit: mov bx,handle ;lay the file call close ;dong the file jmp monitor ; get_name proc near push ax push dx push di mov ah,9 ;ham hien thi chuoi lea dx,prompt int 21h cld lea di,filename ;DI tro toi ten file mov ah,1 ;ham doc ki tu tu ban phim read_name: int 21h cmp al,0dh ;co phai CR je done ;dung ket thuc stosb ;luu no vao chuoi jmp read_name ;tiep tuc doc vao done: mov al,0 stosb ;luu byte pop di pop dx pop ax ret GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp get_name endp open proc near mov ah,3dh mov al,0 int 21h ret open endp read proc near push cx mov ah,3fh mov cx,512 int 21h pop cx ret read endp display proc near push bx mov ah,40h mov bx,1 int 21h pop bx ret display endp close proc near mov ah,3eh int 21h ret close endp edelay proc near push ax push bx mov ax,06h edel2: mov bx,0ffffh edel1: dec bx jnz edel1 dec ax jnz edel2 pop bx pop ax ret edelay endp GVHD: NGUYỄN ĐÌNH PHÚ ;ham mo file ;chi doc ;ham mo file ;chi doc ;ham ghi file ;the file cho man hinh ;dong file ;ham dong file ;dong file SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp ; con_hex proc near push ax push bx push cx push dx push di push si mov ax,0b800h mov bx,0 cld lea si,buffrr mov cx,260 mov al,0 xxx8: mov [si],al inc si loop xxx8 lea si,buffrr lea di,buffer xxx3: mov al,[di] cmp al,3ah jz xxx2 inc di jmp xxx3 xxx2: call ktra_end cmp ax,0 jnz xxx4 xxx6: pop si pop di pop dx pop cx pop bx pop ax ret xxx4: mov al,[di] mov [si],al call goi_ht inc di inc si ;xu li so byte can goi mov al,[di] sub al,30h GVHD: NGUYỄN ĐÌNH PHUÙ ;lay byte data ;so sanh voi ma dau ':' ;nhay neu la dau ':' ;quay lai de tim dau ':' ;goi chuong trinh kiem tra ket thuc ;dung la het data thi lam cho AX=0000 ;lay byte data ;dung la byte 3Ah can luu vao ;lay so can goi MSD ;tru di 30 de so hex SVTH: NGUYEÃN NGỌC TOÀN Luận Văn Tốt Nghiệp call so_lon mov cl,4 rol al,cl mov ah,al inc di mov al,[di] sub al,30h call so_lon or al,ah mov [si],al add al,1 mov dl,al call goi_ht ;xu li phan dia chi can goi inc di inc si mov al,[di] sub al,30h call so_lon mov cl,4 rol al,cl mov ah,al inc di mov al,[di] sub al,30h call so_lon or al,ah mov [si],al call goi_ht inc di inc si mov al,[di] sub al,30h call so_lon mov cl,4 rol al,cl mov ah,al inc di mov al,[di] sub al,30h call so_lon or al,ah GVHD: NGUYỄN ĐÌNH PHÚ ;kiem tra so ABCDEF ;lay so can go LSD ;tru di 30 de so hex ;kiem tra so ABCDEF ;or data lai byte ;cat so HEX ADDR_H ;luu so byte can xu li lai ;lay byte ADDR_L-MSD ;tru di 30 de so hex ;kiem tra so ABCDEF ;lay byte ADDR_L-LSD ;tru di 30 de so hex ;kiem tra so ABCDEF ;or data lai byte ;cat so HEX ADDR_H ;lay byte ADDR_H-MSD ;tru di 30 de so hex ;kiem tra so ABCDEF ;lay byte ADDR_H-LSD ;tru di 30 de so hex ;kiem tra so ABCDEF ;or data lai byte SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp mov [si],al call goi_ht ;xu li cac byte lai inc di inc di xxx1: inc di inc si mov al,[di] sub al,30h call so_lon mov cl,4 rol al,cl mov ah,al inc di mov al,[di] sub al,30h call so_lon or al,ah mov [si],al call goi_ht dec dl cmp dl,0 jnz xxx1 inc di inc di inc di jmp xxx3 con_hex endp ;chuong trinh kiem tra ket thuc ktra_end proc near push di inc di mov al,[di] cmp al,30h jnz kt_exit inc di mov al,[di] cmp al,30h jnz kt_exit inc di mov al,[di] cmp al,30h GVHD: NGUYỄN ĐÌNH PHÚ ;cat so byte can goi dang HEX ;bo byte 00 ;lay so byte thu nhat ;tru di 30 de so hex ;kiem tra so ABCDEF ;lay so byte thu ;tru di 30 de so hex ;kiem tra so ABCDEF ;or data lai byte ;cat so byte can goi dang HEX ;quay lai vi chua ;bo byte cuoi thu nhat ;bo byte thu ;bo ma xuong hang ;het hang data ;lay byte data ;kiem tra byte thu nhat ;nhay den de thoat vi khong phai ;neu dung thi kiem tra byte thu ;lay byte data ;nhay den de thoat vi khong phai ;neu dung thi kiem tra byte thu ;lay byte data SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp jnz kt_exit inc di mov al,[di] cmp al,30h jnz kt_exit inc di mov al,[di] cmp al,30h jnz kt_exit inc di mov al,[di] cmp al,30h jnz kt_exit inc di mov al,[di] cmp al,30h jnz kt_exit inc di mov al,[di] cmp al,31h jnz kt_exit inc di mov al,[di] cmp al,46h jnz kt_exit inc di mov al,[di] cmp al,46h jnz kt_exit mov ax,0 pop di ret kt_exit: mov ax,1111h pop di ret ktra_end endp goi_ht proc near RET push di mov di,bx mov ah,1 GVHD: NGUYỄN ĐÌNH PHÚ ;nhay den de thoat vi khong phai ;neu dung thi kiem tra byte thu ;lay byte data ;nhay den de thoat vi khong phai ;neu dung thi kiem tra byte thu ;lay byte data ;nhay den de thoat vi khong phai ;neu dung thi kiem tra byte thu ;lay byte data ;nhay den de thoat vi khong phai ;neu dung thi kiem tra byte thu ;lay byte data ;nhay den de thoat vi khong phai ;neu dung thi kiem tra byte thu ;lay byte data ;nhay den de thoat vi khong phai ;neu dung thi kiem tra byte F thu ;lay byte data ;nhay den de thoat vi khong phai ;neu dung thi kiem tra byte F thu 10 ;lay byte data ;nhay den de thoat vi khong phai ;nap data cho khac khong la SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghieäp stosw mov bx,di pop di ret goi_ht endp so_lon proc near cmp al,9 jg yyy ret yyy: sub al,7 ret so_lon endp ♦ BÊN NHẬN (KIT VĐK 8051): ;chuong trinh cua may nhan du lieu (receiver) dk equ 0c001h ht equ 0c000h org 5200h mov ie,#00h mov tmod,#20h mov th1,#-13 setb tr1 mov scon,#0fch mov 24h,#00 mov 25h,#00 xr1: jnb ri,xr1 ;nhan ma dau ':' clr ri mov a,sbuf cjne a,#3ah,xr1 xr2: jnb ri,xr2 ;nhan so byte can goi clr ri mov r1,sbuf xr3: jnb ri,xr3 clr ri mov dph,sbuf xr4: jnb ri,xr4 clr ri mov dpl,sbuf xr5: jnb ri,xr5 clr ri mov 11h,dph ;chuyen dia chi de giai ma hthi mov 10h,dpl mov a,sbuf GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp movx @dptr,a mov 14h,a ;cat de giai ma hien thi lcall decode inc dptr djnz r1,xr5 sjmp xr1 ;chuong trinh giai ma hien thi decode: push dpl push dph mov dptr,#0200h mov a,11h ;lay byte B_A_H de giai ma hien thi push 0e0h ;cat A swap a ;xu li so thu nhat anl a,#0fh mov dpl,a movx a,@dptr mov 20h,a pop 0e0h ;lay lai A anl a,#0fh ;xu li so thu mov dpl,a movx a,@dptr mov 21h,a mov a,10h ;lay byte B_A_L de giai ma hien thi push 0e0h ;cat A swap a ;xu li so thu nhat anl a,#0fh mov dpl,a movx a,@dptr mov 22h,a pop 0e0h ;lay lai A anl a,#0fh ;xu li so thu mov dpl,a movx a,@dptr mov 23h,a mov a,14h ;lay byte DATA de giai ma hien thi push 0e0h ;cat A swap a ;xu li so thu nhat anl a,#0fh mov dpl,a GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghieäp movx a,@dptr mov 26h,a pop 0e0h ;lay lai A anl a,#0fh ;xu li so thu mov dpl,a movx a,@dptr mov 27h,a lcall display pop dph pop dpl ret display: mov r2,#80h ;tu dieu khien 8279 chong nhap nhay mov r0,#20h ;quan li dia chi ma hien thi dis1: mov dptr,#dk mov a,r2 movx @dptr,a mov dptr,#ht mov a,@r0 movx @dptr,a inc r2 inc r0 mov a,r0 cjne a,#28h,dis1 ret end GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp Q G T P K I C D E F R A B S Các phím chức Các phím nhập liệu I GIỚI THIỆU CẤU TRÚC PHẦN CỨNG KIT VI XỬ LÝ: Tần số làm việc: Kít vi điều khiểnsử dụng vi điều khiển 8051 8951 Intel với tần số hoạt động 12MHZ Các chương trình thời gian viết tương ứng với địa Tổ chức nhớ: a Bộ nhớ EPROM: Có dung lượng 16kbyte sử dụng EPROM 2764, chương trình hệ thống chứa EPROM thứ nhất, EPROM thứ chưa sử dụng thiết kế dạng socket EPROM có địa từ 0000H - 1FFFH EPROM có địa từ 2000H - 3FFFH b Bộ nhớ RAM: Bộ nhớ RAM có dung lượng 16kbyte sử dụng IC 6264 RAM có địa từ 4000H - 5FFFH RAM có địa từ 6000H - 7FFFH Chương trình sử dụng toàn vùng nhớ RAM GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp Các IC ngoại vi: hệ thống có sử dụng IC 8255A dùng để giao tiếp với thiết bị ngoại vi Bảng đồ nhớ IC 8255: Địa port Port A Port B Port C Thanh ghi điều khiển 8255_1 8000H 8001H 8002H 8003H 8255-2 A000H A001H A002H A003H Các ngõ IC 8255A -1, 8255 -2, đưa bên connect 64 chân có sơ đồ chân tra bảng tra Mỗi IC 8255A có port, port có chân điều khiển nên số chân đưa bên để điều khiển 48 Khối giải mã hiển thị – quét phím sử dụng IC 8279: Vùng địa sử dụng IC 8279 C000H - C001H, đó: Địa C000H địa dùng để gởi liệu cần hiển thị đọc mã phím Địa C001H địa dùng để gởi từ điều khiển 8279 – đọc ghi trạng thái a Phần giải mã hiển thị: Gồm có led với thứ tự Led đến led theo hướng từ phải sang trái hình 2: Hình Led8 Led7 Led6 Led5 Led4 Led3 Led2 Led1 ♦ Cấu trúc byte liệu led: p g f e d c b a Hệ thống sử dụng Led loại Anode chung nên muốn đoạn sáng bit liệu tương ứng với đoạn Đoạn tắt bit tương ứng với đoạn Ví dụ muốn sáng số “9” byte liệu gởi led là: GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp 1 1 1 Tương ứng với số hex 6FH Sau mã đoạn số chữ số chữ cái: p g f e d c b a hex Soá 0 1 1 1 3F Soá 0 0 1 06 Soá 1 1 5B Soá 0 1 1 4F Soá 1 0 1 66 Soá 1 1 6D Soá 1 1 1 7D Soá 0 0 1 07 Soá 1 1 1 7F Soá 1 1 1 6F Chữ A 1 1 1 77 Chữ b 1 1 0 7C Chữ C 0 1 0 39 Chữ d 1 1 5E Chữ E 1 1 0 79 Chữ F 1 0 71 Chữ P 1 0 1 73 Chữ H 1 1 76 Chữ U 0 1 1 3E Có thể tìm mã tương ứng lại Có cách hiển thị liệu Led: Cách 1: gởi liệu địa C000H liệu hiển thi led 1, liệu trước led dịch sang trái theo chiều mũi tên hình Riêng byte liệu trước Led8 dịch LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1 Mũi tên nằm ngang chiều nhận liệu từ vi điều khiển đưa đến led Các mũi tên vòng cung chiều dịch chuyển liệu GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp ⊥ Chú ý: muốn xóa hết hình led gởi byte 00h liên tiếp A000h Cách 2: kiểu gởi liệu cách gọi kiểu dịch chuyển liệu Bên cạnh 8279 cho phép gởi liệu trực tiếp đến led led – tổ chức led thay đổi địa gởi liệu C000H led có thêm địa điều khiển hình Địa điều khiển led phải gởi địa C001H trước gởi liệu địa C000H LED8 LED7 LED6 80H 81H 82H LED5 LED4 LED3 83H 84H 85H LED2 86H LED1 87H b Phần giải mã bàn phím: Chương trình giải mã bàn phím viết địa 0223H sử dụng ghi R2, A, DPTR, R6, R7, ô nhớ 41h Khi gọi chương trình 0223H: • Nếu không ấn phím sau thực xong chương trình trở chương trình với nội dung ghi A =FFH • Nếu có ấn phím mã phím ấn chứa A Chương trình có ấn phím không ấn phím trở chương trình sau thực xong phải ý cất liệu ghi gọi chương trình Bảng mã phím số: Phím Mã Phím M Phím Mã Phím Mã ã 00 04 08 C 0C 01 05 09 D 0D 02 06 A 0A E 0E 03 07 B 0B F 0F Bảng mã phím chức năng: Phím Mã Phím M ã T 10 S 14 G 11 15 R 12 P 16 13 K 17 GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp II HƯỚNG DẪN SỬ DỤNG KIT VI ĐIỀU KHIỂN 8051 Bàn phím: ♦ Kít vi điều khiển có tất 26 phím nhấn hình chia thành nhóm sau: 16 phím nhập liệu chương trình dạng số thập lục phân từ đến F Các phím chức Q Chức phím: ♦ Khi cấp điện cho máy Led bên trái thị số 0000, bốn led bên phải tắt ♦ Nếu không hiển thị nhấn phím “Q” Phím “Q” có chức Reset mạch khởi động muốn thoát khỏi chương trình vi điều khiển thực (chức phím RESET máy vi tính) S Chức phím: ♦ Muốn nhập liệu vào ô nhớ có địa ví dụ 4000, dùng phím nhập liệu đánh số 4000, địa xuất led bên phải ♦ Nhấn phím “S” địa 4000 thay cho địa trước led bên trái ♦ led lại có led sáng nội dung ô nhớ tương ứng với địa led bên trái ↑ Chức phím: ♦ Dùng để lưu trữ liệu vào ô nhớ có địa Led bên trái, ví dụ muốn lưu trữ liệu “3F” vào ô nhớ có địa 4000, đánh “3F” từ phím liệu, liệu “3F” thay liệu cũ trước ♦ Sau nhấn phím “ ↑ “ để lưu trữ liệu vào ô nhớ 4000 Địa tăng lên 4001 để sẵn sàng nhận liệu led bên trái hiển thị nội dung ô nhớ 4001 ♦ Chức phím lưu trữ liệu đồng thời tăng địa ô nhớ ↓ Chức phím: ♦ Có chức giảm địa ô nhớ xuống đơn vị tương ứng với lần nhấn Ví dụ muốn kiểm tra lại ô nhớ vừa nhập 4000 xem có liệu “3F” không, nhấn phím “ ↓ “ Nếu sai nhập lại, nhấn phím tăng địa để nạp liệu P GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp Chức phím: ♦ Sau nhập liệu chương trình địa 4000, để vi điều khiển thực chương trình nhấn phím “P” Khi hình Led xuất “PC 4000” Nếu muốn thực chương trình địa 4000 nhấn phím tăng địa chỉ, hình xuất thêm dấu “=“ sau: “PC =4000’ Sau nhấn phím “G” Chương trình thi hành ♦ Nếu chương trình lưu địa khác với địa 4000 trước nhấn phím tăng địa đánh địa chương trình vào phím nhập liệu Sau nhấn phím tăng địa chỉ, ví dụ muốn thực chương trình địa 5000 hình led hiển thị “PC =5000” Nhấn tiếp phím “G” chương trình thi hành địa 5000 R Chức phím: ♦ Dùng để xem nội dung ghi, trước tiên nhấn phím “R” sau nhấn phím thập phân tương ứng từ “6” “F” Nhấn phím thập phân “A”: xem nội dung ghi A Nhấn phím thập phân “B”: xem nội dung ghi B Nhấn phím thập phân “C”: xem nội dung ghi C Nhấn phím thập phân “D”: xem nội dung ghi D Nhấn phím thập phân “E”: xem nội dung ghi E Nhấn phím thập phân “F”: xem nội dung ghi F Nhấn phím thập phân “8”: xem nội dung ghi H Nhấn phím thập phân “9”: xem nội dung ghi L Nhấn phím thập phân “7”: xem nội dung cặp ghi SP Nhấn phím thập phân “6”: xem nội dung cặp ghi PC I Chức phím: ♦ Phím tác động đến ngắt cứng hệ thống vi xử lý Chương trình bị ngừng sau nhấn phím “I”, nhấn “I” thêm lần hệ thống đặt lại trạng thái mặc định ban đầu tương đương với reset máy phím Q T Chức phím: ♦ Chức phím thực chương trình bước Trình tự nhấn phím giống phím “G” Nếu nhấn phím “G” để thực chương trình địa chứa cặp ghi PC, ta nhấn phím “T” chương trình thực lệnh địa chứa PC GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOAØN ... Các lệnh luận lý (Boolean Instruction) : GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp 8051 chứa xử lý luận lý đầy đủ cho hoạt động bit đơn, điểm mạnh họ vi điều khiển MSC-51... khác THANH GHI ĐIỀU KHIỂN TIMER TCON (TIMER CONTROL REGISTER) : GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGUYỄN NGỌC TOÀN Luận Văn Tốt Nghiệp Thanh ghi điều khiển bao gồm bit trạng thái bit điều khiển Timer... NGỌC TOÀN Luận Văn Tốt Nghiệp * Sơ đồ kết nối cổng COM với KIT Vi điều khiển 8051 : 10 RXD 11 TXD MAX RXD TXD Vi mạch MAX232 dùng để tương thích tín hiệu mức (+12V, -12V) giao diện RS232 Vi mạch