Bài giảng Giám sát và điều khiển thiết bị

Hiện nay, vi xử lý và vi điều khiển đóng vai trò rất quan trọng trong lĩnh vực điều khiển tự động. Các bộ điều khiển dùng linh kiện rời dần dần được thay thế bởi các bộ điều khiển dùng vi xử lý. Mặc dù đã được học các vấn đề cơ bản như quét bàn phím, quét bảng đèn, điều khiển động cơ bước, điều rộng xung, tuy nhiên đa số sinh viên đều gặp nhiều khó khăn khi phải phối hợp các lý thuyết cơ bản trên để được chương trình hoàn chỉnh điều khiển một đối tượng cụ thể. Mục đích của bài thực hành này giúp sinh viên làm quen với vi điều khiển thông dụng hiện nay và ứng dụng chúng để điều khiển các đối tượng cụ thể. Bài thực hành tập trung vào phương pháp thiết kế chương trình sao cho dễ sửa chữa, mở rộng.

pdf15 trang | Chia sẻ: haohao89 | Lượt xem: 1894 | Lượt tải: 2download
Bạn đang xem nội dung tài liệu Bài giảng Giám sát và điều khiển thiết bị, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Xưởng điện tử Bài 7:Giám sát và điều khiển Thực tập công nhân Trang 34 BÀI 7 GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT BỊ I. MỤC ĐÍCH YÊU CẦU - Hiện nay, vi xử lý và vi điều khiển đóng vai trò rất quan trọng trong lĩnh vực điều khiển tự động. Các bộ điều khiển dùng linh kiện rời dần dần được thay thế bởi các bộ điều khiển dùng vi xử lý. Mặc dù đã được học các vấn đề cơ bản như quét bàn phím, quét bảng đèn, điều khiển động cơ bước, điều rộng xung,… tuy nhiên đa số sinh viên đều gặp nhiều khó khăn khi phải phối hợp các lý thuyết cơ bản trên để được chương trình hoàn chỉnh điều khiển một đối tượng cụ thể. Mục đích của bài thực hành này giúp sinh viên làm quen với vi điều khiển thông dụng hiện nay và ứng dụng chúng để điều khiển các đối tượng cụ thể. Bài thực hành tập trung vào phương pháp thiết kế chương trình sao cho dễ sửa chữa, mở rộng. - Bài thực hành này yêu cầu sinh viên phải biết trước cấu tạo và lập trình 89C51 II. NỘI DUNG 1. Kiến trúc của vi điều khiển 8951. 2. IC vi điều khiển 8951 thuộc họ MCS51 có các đặc điểm sau : + 4 kbyte Flash. U1 AT89C51 9 18 19 29 30 31 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 39 38 37 36 35 34 33 32 RST XTAL2 XTAL1 PSEN ALE/PROG EA/VPP P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 Xưởng điện tử Bài 7:Giám sát và điều khiển Thực tập công nhân Trang 35 + 128 byte RAM + 4 port I/0 8 bit + Hai bộ định thời 16 bits + Giao tiếp nối tiếp + 64KB không gian bộ nhớ chương trình ngoài + 64 KB không gian bộ nhớ dữ liệu ngoài a.Port0: là port có 2 chức năng, ở trên chân từ 32 đến 39 của MC 8951. Trong các thiết kế cỡ nhỏ không dùng bộ nhớ ngoài, P0 được sử dụng như là những cổng I/O. Còn trong các thiết kế lớn có yêu cầu một số lượng đáng kể bộ nhớ ngoài thì P0 trở thành các đường truyền dữ liệu và 8 bit thấp của bus địa chỉ. b. Port1: là một port I/O chuyên dụng, trên các chân 1-8 của MC8951. Chúng được sử dụng với một múc đích duy nhất là giao tiếp với các thiết bị ngoài khi cần thiết. c. Port2: là một cổng có công dụng kép trên các chân 21 – 28 của MC 8951. Ngoài chức năng I/O, các chân này dùng làm 8 bit cao của bus địa chỉ cho những mô hình thiết kế có bộ nhớ chương trình ROM ngoài hoặc bộ nhớ dữ liệu RAM có dung lượng lớn hơn 256 byte. d. Port3: là một cổng có công dụng kép trên các chân 10 – 17 của MC 8951. Ngoài chức năng là cổng I/O, những chân này kiêm luôn nhiều chức năng khác nữa liên quan đến nhiều tính năng đặc biệt của MC 8951, được mô tả trong bảng sau: Bit Tên Chức năng chuyển đổi P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RxD TxD 0INT 1INT T0 T1 ÖWR RD Ngõ vào dữ liệu nối tiếp. Ngõ xuất dữ liệu nối tiếp. Ngắt ngoài 0. Ngắt ngoài 1. Ngõ vào TIMER 0. Ngõ vào của TIMER 1. Điều khiển ghi dữ liệu lên bộ nhớ ngoài. Điều khiển đọc bộ nhớ dữ liệu ngoài. Bảng 2.1 : Chức năng của các chân trên port3 e. PSEN (Program Store Enable): 8951 có 4 tín hiệu điều khiển, PSEN là tín hiệu ra trên chân 29. Nó là tín hiệu điều khiển để cho phép truy xuất bộ nhớ chương trình mở rộng và thường được nối đến chân OE (Output Enable) của một EPROM để cho phép đọc các byte mã lệnh của chương trình. Tín hiệu PSEN ở mức thấp trong suốt phạm vi quá trình của một lệnh. Các mã nhị phân của chương trình được đọc từ EPROM qua bus và được chốt vào thanh ghi lệnh của 8951 để giải mã lệnh. Khi thi hành chương trình trong ROM nội PSEN sẽ ở mức cao. Xưởng điện tử Bài 7:Giám sát và điều khiển Thực tập công nhân Trang 36 f. ALE (Address Latch Enable ): Tín hiệu ra ALE trên chân 30 tương hợp với các thiết bị làm việc với các xử lý 8585, 8088. 8951 dùng ALE để giải đa hợp bus địa chỉ và dữ liệu, khi port 0 được dùng làm bus địa chỉ/dữ liệu đa hợp: vừa là bus dữ liệu vừa là byte thấp của địa chỉ 16 bit . ALE là tín hiệu để chốt địa chỉ vào một thanh ghi bên ngoài trong nữa đầu của chu kỳ bộ nhớ. Sau đó, các đường Port 0 dùng để xuất hoặc nhập dữ liệu trong nữa sau chu kỳ của chu kỳ bộ nhớ. Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có thể được dùng là nguồn xung nhịp cho các hệ thống. Nếu xung trên 8951 là 12MHz thì ALE có tần số 2MHz. Chân này cũng được làm ngõ vào cho xung lập trình cho EPROM trong 8951. g. EA (External Access): Tín hiệu vào EA trên chân 31 thường được nối lên mức cao (+5V) hoặc mức thấp (GND). Nếu ở mức cao, 8951 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp (4K). Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng. Người ta còn dùng chân EA làm chân cấp điện áp 21V khi lập trình cho EPROM trong 8951. h. RST (Reset): Ngõ vào RST trên chân 9 là ngõ reset của 8951. Khi tín hiệu này được đưa lên mức cao (trong ít nhất 2 chu kỳ máy), các thanh ghi trong 8951 được đưa vào những giá trị thích hợp để khởi động hệ thống. i.OSC: 8951 có một bộ dao động trên chip, nó thường được nối với thạch anh giữa hai chân 18 và 19. Tần số thạch anh thông thường là 12MHz. j. POWER: 8951 vận hành với nguồn đơn +5V ( 20%. Vcc được nối vào chân 40 và Vss (GND) được nối vào chân 20. 2. Tìm hiểu về tập lệnh của 89C51. Một số lệnh thường gặp. ACALL addr11 : Gọi chương trình con(gọi đến địa chỉ tuyệt đối). Mô tả: ACALL gọi không điều kiện một chương trình con đặt tại địa chỉ được chỉ ra trong lệnh. Lệnh này tăng nội dung của PC bởi 2 để PC chứa địa chỉ của lệnh kế lệnh ACALL, sau đó cất nội dung 16 bit của PC vào stack(Byte thấp cất trước) và tăng con trỏ stack SP bởi 2. Do vậy chương trình con được gọi phải được bắt đầu trong cùng khối 2K của bộ nhớ chương trình với Byte đầu tiên của lệnh theo sau lệnh ACALL. Các cờ khong bị ảnh hưởng. LCALL addr16 : Gọi chương trình con. Chương trình con được gọi phải được bắt đầu trong cùng khối 64K của bộ nhớ chương trình với Byte đầu tiên của lệnh theo sau lệnh LCALL. Các cờ khong bị ảnh hưởng. ADD A,: Cộng Mô tả: ADD Cộng nội dung của một byte ở địa chỉ được chỉ ra trong lệnh với nội dung thanh chứa và đặt kết quả vào thanh chứa. ADD có 4 kiểu định địa chỉ cho toán hạn nguồn: thanh ghi, trực tiếp, thanh ghi gián tiếp hoặc tức thời. AJMP addr11: Nhảy đến địa chỉ tuyệt đối. Đích nhảy đến phải trong cùng khối 2K của bộ nhớ chương trình với byte đầu tiên của lệnh theo sau lệnh AJMP. Xưởng điện tử Bài 7:Giám sát và điều khiển Thực tập công nhân Trang 37 ANL ,: thực hiện phép toán AND từng bít giữa hai toán hạng được chỉ ra trong lệnh và lưu kết quả vào toán hạn đích. Các cờ không bị ảnh hưởng. CJNE ,,rel : So sánh và nhảy nếu không bằng. Cờ nhớ được set bằng 1 nếu giá trị nguyên không dấu của toán hạn trước nhỏ hơn giá trị nguyên không dấu của toán hạn sau. Ngược lại cờ nhớ bị xoá. CLR bit: Xoá bít. CPL bit: Lấy bù bit. DEC byte: Byte chỉ ra trong lệnh được giảm đi 1, cờ nhớ không bị anhư hưởng. DIV AB: chia số nguyên không dấu 8 bit chứa trong thanh chứa cho số nguyên không dấu 8 bít chứa trong thanh ghi B. Thương số chứa trong thanh chứa A còn dư số chứa trong thanh ghi B. DJNZ ,<rel-addr): giảm byte chỉ ra trong toán hạn đầu trong lệnh và rẽ nhánh đến địa chỉ được chỉ ra bưởi toán hạn thứ hai trong lệnh nếu kết quả sau khi giảm khác 0. INC byte: Byte chỉ ra trong lệnh được tăng bởi 1, cờ nhớ không bị anhư hưởng. JB bit,ret : Nhảy nếu bít được set bằng 1. MOV dest-byte>, : Di chuyển nội dung của toán hạng nguồn đến toán hạn đích. MUL AB: Nhân các số nguyên không dấu 8 bit chứa trong thanh chứa A và trong thanh ghi B. Byte thấp của tích số 16 bit được cất trong thanh chứa cong byte cao cất trong thanh ghi B. RL A: 8 bít trong thanh chứa A được quay trái 1 bit. SETB : Set bit bằng 1. Một số ví dụ. Chương trình hiển thị giây và phút dùng bộ định thời. #include GIAY EQU 31H ; Địa chỉ của RAM lưu giá trị của giây PHUT EQU 32H ; Địa chỉ của RAM lưu giá trị của phút ORG 00H LJMP MAIN ORG 001BH ;Vector của bộ định thời 1 LJMP T0ISR ORG 0030H MAIN: MOV R1,#0 MOV GIAY,#0 MOV PHUT,#0 LAP: MOV A,GIAY CJNE A,#60,HT INC PHUT MOV GIAY,#00H MOV A,PHUT CJNE A,#60,HT MOV PHUT,#00H Xưởng điện tử Bài 7:Giám sát và điều khiển Thực tập công nhân Trang 38 HT: MOV A,GIAY ACALL HTGIAY MOV A,PHUT ACALL HTPHUT MOV TMOD,#12H MOV IE,#8AH ;Cho phép ngắt do các bộ định thời SETB TF1 ; Buột ngắt do bộ định thời 1 CJNE R1,#100,LAP MOV R1,#0 INC GIAY LJMP LAP ; Chương trình ngắt T0ISR: CLR TR1 MOV TH1,#HIGH(-10000) MOV TL1,#LOW(-10000) SETB TR1 INC R1 RETI ; Chương trình con hiển thị giây HTGIAY: MOV B,#10 DIV AB ADD A,#10H MOV P2,A ACALL DELAY MOV A,B ADD A,#00 MOV P2,A ACALL DELAY RET ; Chương trình con hiển thị phút HTPHUT: MOV B,#10 DIV AB ADD A,#30H MOV P2,A ACALL DELAY MOV A,B ADD A,#20H MOV P2,A ACALL DELAY RET DELAY: MOV R0,#200 DJNZ R0,$ RET END Chương trình sử dụng ngắt ngoài 0. Xưởng điện tử Bài 7:Giám sát và điều khiển Thực tập công nhân Trang 39 #include ORG 00H LJMP MAIN LJMP EXOISR ;Địa chỉ vector EXT 0 ORG 001BH LJMP T0ISR ORG 0030 MAIN: SETB IT0 ; Tác động cạnh âm MOV TMOD,#11H MOV IE,#81H ; Chỉ cho phép EX0 LJMP $ EXOISR: SETB TF1 ; Buột ngắt do bộ định thời 1 SETB ET0 SETB ET1 ; Cho phép các ngắt do bộ định thời RETI T0ISR: CLR TR1 MOV TH1,#HIGH(-50000) MOV TL1,#LOW(-50000) SETB TR1 CPL P0.1 ; Tạo xung ra RETI END 3. Điều khiển công suất. - Điều khiển tải DC: R1 Q2 R0 Vcc p1.0 Rtai Đây là sơ đồ điều khiển khá đơn giản cả về phần cứng lẫn phần mềm, tuy nhiên sơ đồ thường chỉ áp dụng để điều khiển các tải DC công suất nhỏ. dm on T dmhd IT TdtI T I on == ∫ 0 21 Ton: Thời gian dòng điện chạy qua tải TOFF: Thời gian dòng điện không chạy qua tải T = Ton + TOFF Xưởng điện tử Bài 7:Giám sát và điều khiển Thực tập công nhân Trang 40 Vậy muốn tăng dòng điện qua tải thì ta tăng Ton. Khi Ton = T thì dòng điện qua tải là lớn nhất. - Điều khiển tải AC: Ta dùng phương pháp điều khiển góc pha là phương pháp thay đổi góc kích α của Triac để làm biến đổi điện áp đặt lên tải, khi góc kích α = 0 thì coi như toàn bộ điện áp lưới đặt lên tải nếu như ta bỏ qua sụt áp trên Triac. Ưu điểm của phương pháp này là điều khiển liên tục và chính xác hơn. Q2 Rt Tai AC V1 220V R1 R2 Q1 TRIAC p1.0 R0 5V Hình :Sô ñoà maïch ñieàu khieån Vtaûi Ig VAC Hình : Sô ñoà daïng soùng treân taûi α Xưởng điện tử Bài 7:Giám sát và điều khiển Thực tập công nhân Trang 41 Giá trị điện áp hiệu dụng trên tải : Uo =    ∫π θθπ 2 0 2)sin( 2 1 2/1 dUm =    ∫π α θθπ dUm )sin( 1 2 2/1 = 2/1 ) 2 2sin( 2 1    +− ααππU m = 2/1 ) 2 2sin(1    +− ααππU Trong đó, U và Um lần lượt là giá trị điện áp hiệu dụng và điện áp đỉnh trên tải còn α là góc kích dẩn Triac. Từ đây, suy ra công suất trên tải là : P = Uo* Io = R U 20 =       +− 2 2sin1 2 ααππR U P =    +− π π π α 2 2sin1 2 R U Trong đó, P là công suất tiêu thụ trên tải còn R là trở kháng của tải. Như vậy, công suất tiêu thụ trên tải phụ thuộc vào góc kích dẩn α, khi góc kích α tăng thì P giảm và ngược lại, tại α= 0 công suất là lớn nhất và bằng công suất danh định của tải, tại giá trị α = π công suất tiêu thụ nhỏ nhất P = 0. Nghĩa là, bằng cách thay đổi góc kích dẩn α ta sẽ điều khiển được công suất tiêu thụ trên tải. 4. Điều khiển động cơ bước. - Đặc điểm chung của động cơ bước: Động cơ bước thực chất là động cơ đồng bộ hoạt động dưới tác dụng của các xung rời rạc và kế tiết nhau. Khi một xung dòng điện hoặc điện áp đặt vào cuộn dây phần ứng của động cơ bước, thì roto (phần cảm) của động cơ sẽ quay đi một góc nhất định, và được gọi là bước của động cơ, khi các xung dòng điện đặt vào cuộn dây phần ứng liên tục thì roto sẽ quay liên tục. Vị trí của động cơ bước được xác định bằng số lượng xung và vận tốc của động cơ tỷ lệ với tần số xung và được xác định bằng số bước/giây.Tính năng làm việc của động cơ bước được đặc trưng bởi bước được thực hiên, đặc tính góc (quan hệ của momen địên từ theo góc giữa trục của roto và trục của từ trường tổng, tần số xung giới hạn sao cho các quá trình quá độ, khi hoàn thành một bước có thể tắt đi trước khi bắt đầu bước tiếp theo.Tính năng mở máy của độn g cơ, Xưởng điện tử Bài 7:Giám sát và điều khiển Thực tập công nhân Trang 42 được đặc trưng bởi tần số xung cực đại có thể mở máy mà không làm cho roto mất đồng bộ ( bỏ bước) Bước của động cơ (giá trị của góc giữa hai vị trí ổn định kế nhau của roto) càng nhỏ thì độ chính xác trong điều khiển càng cao. Bước của động cơ phụ thuộc vào số cuộn dây phần ứng, số cực của stato, số răng của roto và phương pháp điều khiển bứơc đủ hoặc điều khiển nửa bước. Tuỳ theo yêu cầu về độ chính xác và kết cấu của động cơ mà bước của động cơ thay đổi trong giới hạn từ 0,180 ÷1800. Trong đó: động cơ bước nam châm vĩnh cữu dạng cực móng và có từ trở thay đổi từ 60 ÷450, động cơ bước có từ trở thay đổi có góc bước nằm trong giới hạn từ 1,80 ÷ 300 và động cơ bước hỗn hợp có góc bước thay đổi trong khoảng 0,360÷150. Các giá trị góc của các loại động cơ kể trên được tính trong chế độ điều khiển bước đủ. Chiều quay của động cơ bước không phụ thuộc vào chiều dòng điện chạy trong các cuộn dây phần ứng, mà phụ thuộc vào thứ tự cuộng dây phần ứng được cấp xung điều khiển. Số cuộn dây phần ứng ( hay còn gọi là cuộn dây pha) của động cơ bước đựợc chế tạo từ 2 ÷ 5 cuộn dây pha ( hay còn gọi là bối dây và được đặt đối diện nhau trong các rãnh ở stato. Đối với cuộn dây phải có hai cuộn dây thì chỉ dùng cho điều khiển lưỡng cực ( cuộc dây có cực tính thay đổi) với 4 cuộn dây có thể dùng cho cả hai chế độ điều khiển đơn cực và điều khiển lưỡng cực Phương pháp điều khiển động cơ bước: Có 3 phương pháp điều khiển động cơ bước: Đầy bước, nữa bước, vi bước nhưng ở đây ta chỉ xét trường hợp đầy bước. Nguyên lý làm việc của động cơ bước là dựa trên sự tác động tương hổ giữa từ trường của stato và roto, hình thành momen điện từ làm quay roto đi một góc nhất định. Khi cho xung dòng điện tác động vào cuộn dây pha A A’ roto sẽ quay đến vị trí, mà trục từ trường của roto (cũng chính là trục của roto) trùng với trục từ trường pha A. Xưởng điện tử Bài 7:Giám sát và điều khiển Thực tập công nhân Trang 43 Nếu cắt xung dòng điện vào pha A, cho xung dòng điện tác dụng vào cuộn dây BB’ thì véc tơ từ hoá của dòng điện sẽ quay đi một góc là 180, do đó roto cũng quay đi một góc 180 để cho trục của từ roto trùng với trục của từ trường tổng. Sau đó cắt xung tác động vào pha B và cho dòng điện tác động vào pha A nhưng đổi dấu thì roto quay tiếp một góc 180. Nếu tính từ góc đầu thì roto đã quay một góc 360 Quá trình chuyển phát xung dòng điện tác dụng vào một trong hai pha cho tới khi roto quay một vòng, động cơ sẽ thực hiện được 20 bước (Còn gọi 20 nhịp) Quá trình chuyển mạch các cuộn dây điều khiển theo một trình tự (A+,B+,A- , B-) và quá trình chuyển mạch theo trình tự (A+,B+),( A+,B-,),(A-,B+),(A-,B-) Trong trường hợp này thì trong một chu trình chuyển mạch có 20 nhịp (bước ) và ở mỗi nhịp có số cuộn dây điều khiển được cấp xung dòng điện cho nhau. Dạng điều khiển này được gọi là điều khiển bước đủ, hay còn gọi điều khiển đối xứng. Điều khiển động cơ bước 1 pha và hai pha theo phương pháp đầy bước Bảng trạng thái điều khiển động cơ bước 2 pha 4 pha Bước Pha 1 Pha 2 Bước Pha 1 Pha 2 Pha 3 Pha 4 1 1 1 1 1 0 1 0 2 -1 1 2 0 1 1 0 3 -1 -1 3 0 1 0 1 4 1 -1 4 1 0 0 1 Điều khiển động cơ 2 pha Xưởng điện tử Bài 7:Giám sát và điều khiển Thực tập công nhân Trang 44 Điều khiển động cơ 4 pha - Từ bảng trạng thái trên ta có thể dùng IC số để tạo mạch điều khiển. Pha2 VCC Pha3 U1A 7486 1 2 3 U2A 7473 14 1 3 12 13 2 J CLK K Q Q CLR VCC U1B 7486 4 5 6 Pha1 State U2B 7473 7 5 10 9 8 6 J CLK K Q Q CLR U1C 7486 9 10 8 U1D 7486 12 13 11 VCC Pha4 Clook - Đặc tính của động cơ bước : Vận tốc của động cơ bước phụ thuộc vào tần số xung điều khiển. Đặc điểm vận tốc của roto trên một bước thể hiện tính dao động của động cơ, đặc tính này có thể được cải thiện bằng việc thiết kế một hộp biến tốc đặc biệt nhằm hạn chế và loại trừ cộng hưởng để có được hằng số thời gian tốt hơn. Khi có một xung dòng điện vào cuộn dây stato, roto động cơ không chuyển động ngay từ góc này sang góc khác mà nó dao động một thời gian cần để quay 5% vòng thì mới đạt được vị trí ổn định. Hằng số thời gian phụ thuộc vào momen quán tính của từ thông Φ. Tần số xung càng cao thì hằng số thời gian điện từ sẽ càng ngắn. Nếu xung điều khiển động cơ có tần số quá cao thì roto sẽ quay liên tục và làm việc quá tần số giới hạn, ở chế độ này động cơ không thể dừng đột ngột và cũng không thể đảo Xưởng điện tử Bài 7:Giám sát và điều khiển Thực tập công nhân Trang 45 chiều. Muốn thực hiện dừng động cơ cần phải giảm tần số đến vùng làm việc theo bước. 5. Bàn phím - Ma trận phím Đ ể thực hiện ma trận bàn phím ta dùng phương pháp quét phím. Quét cột và đọc dữ liệu tại hàng hoặc ngược lại. Theo hình vẽ thì các cột cách nhau 1 đơn vị, các hàng cách nhau 4 đơn vi. Vậy giá trị của bàn phím được tính theo công thức sau Bp= C+h.4 Trong đó: Bp: Giá trị của phím được nhấn. C: Cột được quét. H: Hàng có phím nhấn. Ví dụ: Khi ta quét cột C0 mà phím 4 được nhấn thì H1 nhận được tín hiệu. Vậy giá trị nhận được của bàn phím là Bp = 0 + 1.4 = 4. Khi mạch cần nhiều phím thì ta mới tổ chức ma trận phím để giảm số lượng cổng sử dụng cho bàn phím. Chương trình hiển thị bàn phím. #include phim equ 30h ORG 0000H MAIN: ACALL IN_HEX ACALL HT SJMP MAIN ;......................................... IN_HEX: MOV R3,#50 BACK1: ACALL GET_KEY 1 4 2 3 1 4 2 3 1 4 2 3 C3 1 4 2 3 71 4 2 3 P1.3 1 H2 2 C 3 F1 4 2 3 H0 P1.1 1 4 2 3 5 P1.0 1 4 2 3 1 4 2 3 P1.5 E P1.4 1 4 2 3 D 1 4 2 3 64 1 4 2 3 98 0 1 4 2 3 C0 H1 1 4 2 3 P1.6 J1 CON8 1 2 3 4 5 6 7 8 C1 P1.7 1 4 2 3 H3 A C2 1 4 2 3 P1.2 B Xưởng điện tử Bài 7:Giám sát và điều khiển Thực tập công nhân Trang 46 JNB 10,EXP1 DJNZ R3,BACK1 BACK2: MOV R3,#50 BACK3: ACALL GET_KEY JB 10,BACK2 DjNZ R3,BACK3 SETB 11 MOV PHIM,R6 EXP1: NOP RET ;---------------------------------------------------------------------------- GET_KEY: MOV A,#0FEH MOV R2,#0 SCAN_ROW: MOV P0,A MOV R4,A ;luu gia tri cua A vao R4 ;chuan bi quet cac cot va nhay JNB P0.4,ROW_0 JNB P0.5,ROW_1 JNB P0.6,ROW_2 JNB P0.7,ROW_3 ;khong co phim an thi chuyen den cot tiep theo MOV A,R4 ;lay lai ma lan truoc tu r4 RL A ;quay trai 1 bit de chuyen den cot ke tiep INC R2 ;tang so lan quet len 1 CJNE R2,#4,SCAN_ROW ;khong du 4 cot thi quay lai quet SETB P2.6 SJMP NO_CODE ROW_0: MOV A,R2 ADD A,#0 SETB 10 MOV R6,A SJMP EXIT ROW_1: MOV A,R2 ADD A,#4 SETB 10 MOV R6,A SJMP EXIT ROW_2: MOV A,R2 Xưởng điện tử Bài 7:Giám sát và điều khiển Thực tập công nhân Trang 47 ADD A,#8 SETB 10 MOV R6,A SJMP EXIT ROW_3: MOV A,R2 ADD A,#12 SETB 10 MOV R6,A SJMP EXIT NO_CODE: ;NEU KHONG CO PHIM AN THI XOA BIT 10 CLR 10 EXIT: RET HT: MOV B,#10 DIV AB ADD A,#10H MOV P2,A ACALL DELAY MOV A,B ADD A,#00 MOV P2,A ACALL DELAY RET DELAY: MOV R0,#200 DJNZ R0,$ RET END Khi mạch không cần nhiều phím thì ta có thể dùng ph
Tài liệu liên quan