Ghép nối và điều khiển thiết bị ngoại vi - Chương 2
Số trang: 24
Loại file: pdf
Dung lượng: 322.70 KB
Lượt xem: 17
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tài liệu tham khảo giáo trình môn học Ghép nối và điều khiển thiết bị ngoại vi nhằm cung cấp kiến thức cơ bản trong việc tìm hiểu thiết kế mạch ghép nối ngoại vi với máy vi tính - Chương 2 Ghép nối vào ra song song điều khiển bằng chương trình
Nội dung trích xuất từ tài liệu:
Ghép nối và điều khiển thiết bị ngoại vi - Chương 2 Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi CHƯƠNG 2: GHÉP N I VÀO RA SONG SONG ðI U KHI N B NG CHƯƠNG TRÌNH 2.1. Các l nh vào ra d li u 2.1.1 Các l nh vào ra b ng h p ng : L nh ñ nh n d li u t thi t b vào/ra là INput và m t l nh ñ g i s li u ra thi t b vào/ra là OUTput. Có b n cách dùng khác nhau c a m i l nh này: hai lo i chuy n d li u 8 hay 16 bít thông qua các c ng vào/ra 8 bít, và hai chuy n d li u 8 hay 16 bít thông qua các c ng 16 bít. Ví d hai l nh sau ñây s ñ c các byte c a ñư ng d n d li u t c ng LPT1: ; n p ñ a ch c a thanh ghi d li u vào DX MOV DX,378H ; ñ c thông tin trên ñư ng d n d li u (D0 ñ n D7) c a LPT1 IN AL,DX sang thanh ghi AL B ng 2.1: B ng các l nh vào ra Instruction Data Comment Width IN AL,d8 8 Ð c m t byte t c ng vào/ra 8 bít IN AL,DX 8 Ð c m t byte t c ng vào/ra xác ñ nh b i thanh ghi DX IN AX,d8 16 Ð c m t word t c ng vào/ra 8 bít IN AX,DX 16 Ð c m t word t c ng vào/ra xác ñ nh b i thanh ghi DX OUT d8,AL 8 G i m t byte ra c ng vào/ra 8 bít OUT DX,AL 8 G i m t byte ra c ng vào/ra xác ñ nh b i thanh ghi DX OUT d8,AX 16 G i m t word ra c ng vào/ra 8 bít OUT DX,AX 16 G i m t word ra c ng vào/ra xác ñ nh b i thanh ghi DX Chú ý: d8 ch a ñ a ch là c ng vào/ra 8 bít, và DX ch a ñ a ch là c ng vào/ra 16 bít. Gi ng viên: Nguy n Văn Minh Trí 17 Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 2.1.2.Các l nh vào ra b ng Turbo C B ng 2.2: B ng các l nh vào ra Instruction Data Comment Width outportb(addr_port,data_var) 8 G i m t byte ra c ng vào/ra 8 bít xác ñ nh b i ñ a ch addr_port Data_var=inportb(addr_port) 8 Ð c m t byte t c ng vào xác ñ nh b i ñ a ch addr_port outport(addr_port,data_var) 16 G i m t word ra c ng vào/ra, 8 bít th p xác ñ nh b i ñ a ch addr_port, 8 bít cao xác ñ nh b i ñ a ch addr_port+1 Data_var=inportb(addr_port) 16 Ð c m t word t c ng vào/ra, 8 bít th p xác ñ nh b i ñ a ch addr_port, 8 bít cao xác ñ nh b i ñ a ch addr_port+1 outp(addr_port,data_var) 8 G i m t byte ra c ng vào/ra 8 bít xác ñ nh b i ñ a ch addr_port Data_var=inp(addr_port) 8 Ð c m t byte t c ng vào xác ñ nh b i ñ a ch addr_port outpw(addr_port,data_var) 16 G i m t byte ra c ng vào/ra, 8 bít th p xác ñ nh b i ñ a ch addr_port, 8 bít cao xác ñ nh b i ñ a ch addr_port+1 Data_var=inp(addr_port) 16 Ð c m t word t c ng vào/ra, 8 bít th p xác ñ nh b i ñ a ch addr_port, 8 bít cao xác ñ nh b i ñ a ch addr_port+1 Ví d các l nh sau xu t 5 (8 bít 00000101) qua thanh ghi d li u c a LPT1 #include #define Dat_reg 0x378 char data_var=5; outport(Dat_reg,data_var); 2.1.3 Các l nh vào ra b ng Turbo Pascal B ng 2.3: B ng các l nh vào ra Instruction Data Comment Width 8 G i m t byte ra c ng vào/ra 8 bít xác ñ nh b i ñ a ch addr Port[addr] := var1; 8 Ð c m t byte t c ng vào xác ñ nh b i ñ a ch addr Var := port[addr]; Ví d : Uses crt; Gi ng viên: Nguy n Văn Minh Trí 18 Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi Port[$378] := X; Xu t ra giá tr bi n X lên ñư ng d n d li u (D0 ñ n D7) c a c ng LPT1 Y := port[$379]; ð c n i dung thanh ghi tr ng thái c a LPT1 vào bi n Y Chú ý: M t ch s h 16 ph i thêm d u: 0x vào trư c s ñó trong ngôn ng C, và $ vào trư c s ñó trong ngôn ng Pascal. 2.1.4 Gi n ñ th i gian các l nh ñ c/ghi d li u: Bus h th ng, bao g m bus d li u (data bus), bus ñi u khi n (control bus) và bus ñ a ch (address bus), là các ñư ng d n truy n thông gi a vi x lý và TBNV. Các VXL 8 bit d li u thư ng có 8 ñư ng dây data bus, và 16 ñư ng dây tương ng 16 ñư ng ñ a ch address bus. Hai tín hi u RD, WR control bus thư ng ñư c s d ng ñ xác ñ nh th i ñi m d li u n ñ nh trên data bus. Hình 1.5 là gi n ñ th i gian tín hi u trên bus h th ng. D li u ñư c D li u ñư c ghi ra TBNV ñ c vào VXL Chu kỳ ñ c Chu kỳ ghi address bus D li u t D li u t TBNV VXL data bus RD WR Hình 1.5: Gi n ñ th i gian tín hi u trên bus h th ng. M i chu kỳ bus (bus cycle) bao g m vi c chuy n 1 t d li u gi a VXL v i b nh ho c TBNV. M i chu kỳ bus b t ñ u khi VXL xu t m t ñ a ch ñ ch n m t v trí b nh ho c các c ng vào ra. Trong gi n ñ này, các bus ñ a ch và d li u ñư c bi u di n b ng 1 c p ñư ng th ng ñ ch thông tin trên bus n ñ nh. Khi các ñư ng trên sơ ñ c t ngang nhau di n t d li u ñã thay ñ i. ðư ng nét ñ t là tr ng thái th n i khi không có thi t b nào lái nó. Gi ng viên: Nguy n Văn Minh Trí 19 Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 2.2 Ghép n i so ...
Nội dung trích xuất từ tài liệu:
Ghép nối và điều khiển thiết bị ngoại vi - Chương 2 Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi CHƯƠNG 2: GHÉP N I VÀO RA SONG SONG ðI U KHI N B NG CHƯƠNG TRÌNH 2.1. Các l nh vào ra d li u 2.1.1 Các l nh vào ra b ng h p ng : L nh ñ nh n d li u t thi t b vào/ra là INput và m t l nh ñ g i s li u ra thi t b vào/ra là OUTput. Có b n cách dùng khác nhau c a m i l nh này: hai lo i chuy n d li u 8 hay 16 bít thông qua các c ng vào/ra 8 bít, và hai chuy n d li u 8 hay 16 bít thông qua các c ng 16 bít. Ví d hai l nh sau ñây s ñ c các byte c a ñư ng d n d li u t c ng LPT1: ; n p ñ a ch c a thanh ghi d li u vào DX MOV DX,378H ; ñ c thông tin trên ñư ng d n d li u (D0 ñ n D7) c a LPT1 IN AL,DX sang thanh ghi AL B ng 2.1: B ng các l nh vào ra Instruction Data Comment Width IN AL,d8 8 Ð c m t byte t c ng vào/ra 8 bít IN AL,DX 8 Ð c m t byte t c ng vào/ra xác ñ nh b i thanh ghi DX IN AX,d8 16 Ð c m t word t c ng vào/ra 8 bít IN AX,DX 16 Ð c m t word t c ng vào/ra xác ñ nh b i thanh ghi DX OUT d8,AL 8 G i m t byte ra c ng vào/ra 8 bít OUT DX,AL 8 G i m t byte ra c ng vào/ra xác ñ nh b i thanh ghi DX OUT d8,AX 16 G i m t word ra c ng vào/ra 8 bít OUT DX,AX 16 G i m t word ra c ng vào/ra xác ñ nh b i thanh ghi DX Chú ý: d8 ch a ñ a ch là c ng vào/ra 8 bít, và DX ch a ñ a ch là c ng vào/ra 16 bít. Gi ng viên: Nguy n Văn Minh Trí 17 Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 2.1.2.Các l nh vào ra b ng Turbo C B ng 2.2: B ng các l nh vào ra Instruction Data Comment Width outportb(addr_port,data_var) 8 G i m t byte ra c ng vào/ra 8 bít xác ñ nh b i ñ a ch addr_port Data_var=inportb(addr_port) 8 Ð c m t byte t c ng vào xác ñ nh b i ñ a ch addr_port outport(addr_port,data_var) 16 G i m t word ra c ng vào/ra, 8 bít th p xác ñ nh b i ñ a ch addr_port, 8 bít cao xác ñ nh b i ñ a ch addr_port+1 Data_var=inportb(addr_port) 16 Ð c m t word t c ng vào/ra, 8 bít th p xác ñ nh b i ñ a ch addr_port, 8 bít cao xác ñ nh b i ñ a ch addr_port+1 outp(addr_port,data_var) 8 G i m t byte ra c ng vào/ra 8 bít xác ñ nh b i ñ a ch addr_port Data_var=inp(addr_port) 8 Ð c m t byte t c ng vào xác ñ nh b i ñ a ch addr_port outpw(addr_port,data_var) 16 G i m t byte ra c ng vào/ra, 8 bít th p xác ñ nh b i ñ a ch addr_port, 8 bít cao xác ñ nh b i ñ a ch addr_port+1 Data_var=inp(addr_port) 16 Ð c m t word t c ng vào/ra, 8 bít th p xác ñ nh b i ñ a ch addr_port, 8 bít cao xác ñ nh b i ñ a ch addr_port+1 Ví d các l nh sau xu t 5 (8 bít 00000101) qua thanh ghi d li u c a LPT1 #include #define Dat_reg 0x378 char data_var=5; outport(Dat_reg,data_var); 2.1.3 Các l nh vào ra b ng Turbo Pascal B ng 2.3: B ng các l nh vào ra Instruction Data Comment Width 8 G i m t byte ra c ng vào/ra 8 bít xác ñ nh b i ñ a ch addr Port[addr] := var1; 8 Ð c m t byte t c ng vào xác ñ nh b i ñ a ch addr Var := port[addr]; Ví d : Uses crt; Gi ng viên: Nguy n Văn Minh Trí 18 Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi Port[$378] := X; Xu t ra giá tr bi n X lên ñư ng d n d li u (D0 ñ n D7) c a c ng LPT1 Y := port[$379]; ð c n i dung thanh ghi tr ng thái c a LPT1 vào bi n Y Chú ý: M t ch s h 16 ph i thêm d u: 0x vào trư c s ñó trong ngôn ng C, và $ vào trư c s ñó trong ngôn ng Pascal. 2.1.4 Gi n ñ th i gian các l nh ñ c/ghi d li u: Bus h th ng, bao g m bus d li u (data bus), bus ñi u khi n (control bus) và bus ñ a ch (address bus), là các ñư ng d n truy n thông gi a vi x lý và TBNV. Các VXL 8 bit d li u thư ng có 8 ñư ng dây data bus, và 16 ñư ng dây tương ng 16 ñư ng ñ a ch address bus. Hai tín hi u RD, WR control bus thư ng ñư c s d ng ñ xác ñ nh th i ñi m d li u n ñ nh trên data bus. Hình 1.5 là gi n ñ th i gian tín hi u trên bus h th ng. D li u ñư c D li u ñư c ghi ra TBNV ñ c vào VXL Chu kỳ ñ c Chu kỳ ghi address bus D li u t D li u t TBNV VXL data bus RD WR Hình 1.5: Gi n ñ th i gian tín hi u trên bus h th ng. M i chu kỳ bus (bus cycle) bao g m vi c chuy n 1 t d li u gi a VXL v i b nh ho c TBNV. M i chu kỳ bus b t ñ u khi VXL xu t m t ñ a ch ñ ch n m t v trí b nh ho c các c ng vào ra. Trong gi n ñ này, các bus ñ a ch và d li u ñư c bi u di n b ng 1 c p ñư ng th ng ñ ch thông tin trên bus n ñ nh. Khi các ñư ng trên sơ ñ c t ngang nhau di n t d li u ñã thay ñ i. ðư ng nét ñ t là tr ng thái th n i khi không có thi t b nào lái nó. Gi ng viên: Nguy n Văn Minh Trí 19 Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 2.2 Ghép n i so ...
Tìm kiếm theo từ khóa liên quan:
thiết kế mạch hệ vi điều khiển điều khiển công nghiệp kỹ thuật ghép nối xử lý số liệuTài liệu liên quan:
-
Báo cáo thưc hành: Thiết kế mạch bằng phần mềm altium
9 trang 237 0 0 -
Tiểu luận: Tìm hiểu công nghệ OFDMA trong hệ thống LTE
19 trang 158 0 0 -
88 trang 107 0 0
-
Đồ án: Vẽ và thiết kế mạch in bằng Orcad
32 trang 103 0 0 -
Đồ án môn học: Thiết kế mạch chuyển nhị phân 4 Bit sang mã Gray và dư 3 sử dụng công tắc điều khiển
29 trang 94 0 0 -
BÀI GIẢNG VỀ ỨNG DỤNG TIN HỌC TRONG THIẾT KẾ THÍ NGHIỆM VÀ XỬ LÝ SỐ LIỆU
48 trang 90 0 0 -
Tiểu luận: Hệ thống thông tin quang
42 trang 82 0 0 -
Kỹ thuật số - Chương 4 Mạch tổ hợp (Combinational Circuits)
56 trang 76 0 0 -
Giáo trình Hệ vi điều khiển: Phần 1
129 trang 73 0 0 -
Bài tập lớn môn Vi điều khiển: Thiết kế mạch điều khiển cánh tay robot
11 trang 65 0 0