Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
704,4 KB
File đính kèm
BÁO CÁO THỰC HÀNH VDK.rar
(649 KB)
Nội dung
THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN GVHD: LÊ XỨNG I LÝ THUYẾT GIỚI THIỆU VỀ VI ĐIỀU KHIỂN AT89C51 : Bắt đầu xuất vào năm 1980, trải qua gần 30 năm, có tới hang trăm biến thể (derrivatives) sản xuất 20 hãng khác nhau, phải kể đến đại gia làng bán dẫn (Semiconductor) ATMEL, Texas Instrument, Philips, Analog Devices… Tại Việt Nam, biến thể hãng ATMEL AT89C51, AT89C52, AT89S51, AT89S52… có thời gian xuất thị trường lâu nói sử dụng rộng rãi loại vi điều khiển bit SVTH: Page THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN GVHD: LÊ XỨNG 1.1 Cấu trúc bus Bus địa họ vi điều khiển AT89C51 gồm 16 đường tín hiệu (thường gọi bus địa 16 bit) Với số lượng bit địa trên, không gian nhớ chip mở rộng tối đa 216 = 65536 địa chỉ, tương đương 64K Bus liệu họ vi điều khiển 8051 gồm đường tín hiệu (thường gọi bus liệu bit), lý nói AT89C51 họ vi điều khiển bit Với độ rộng bus liệu vậy, chip họ 8051 xử lý toán hạng bit chu kỳ lệnh 1.2 CPU (Central Processing Unit) CPU đơn vị xử lý trung tâm, não toàn hệ thống vi điện tử tích hợp chip vi điều khiển CPU có cấu tạo gồm đơn vị xử lý số học lôgic ALU (Arithmethic Logic Unit) - nơi thực tất phép toán số học phép lôgic cho trình xử lý 1.3 Bộ nhớ chƣơng trình (Program Memory) Không gian nhớ chương trình AT89C51là 64K byte, nhiên hầu hết vi điều khiển AT89C51 thị trường tích hợp sẵn chip lượng nhớ chương trình định chiếm dải địa từ 0000h trở không gian nhớ chương trình AT89C51/AT89S51 có 4K byte nhớ chương trình loại Flash tích hợp sẵn bên chip Đây nhớ cho phép ghi/xóa nhiều lần điện, cho phép người sử dụng thay đổi chương trình nhiều lần Số lần ghi/xóa thường lên tới hàng vạn lần.Bộ nhớ chương trình dùng để chứa mã chương trình nạp vào chip Mỗilệnh mã hóa hay vài byte, dung lư ợng nhớ chương trình phản ánh số lượng lệnh mà nhớ chứa Địa nhớ chương trình (0x0000) địa Reset 8051 Ngay sau reset (do tắt bật nguồn, mức điện áp chân RESET bị kéo lên 5V ), CPU nhảy đến thựchiện lệnh đặt địa trước tiên, luôn Phần trống không gian chương trình không dùng để làm Nếu muốn mở rộng nhớ chương trình, ta phải dùng nhớ chương trình bên có dung lượng ý muốn Tuy nhiên dùng nhớ chương trình ngoài, nhớ chương trình onchip không dùng nữa, nhớ chương trình chiếm dải địa từ địa 0x0000 1.4 Bộ nhớ liệu (Data Memory) Vi điều khiển họ AT89C51 có không gian nhớ liệu 64K địa chỉ, dung lượng nhớ liệu lớn mà chip thuộc họ có (nếu phối ghép cách tắc, sử dụng đường tín hiệu bus địa liệu) Bộ nhớ liệu chip họ AT89C51có thể thuộc hay hai loại: SRAM EEPROM Bộ nhớ liệu SRAM tích hợp bên chip thuộc họ vi điều khiển này, có dung lượng khác tùy loại chip, thường khoảng vài trăm byte Đây nơi chứa biến trung gian trình hoạt động chip điện, chất SRAM mà giá trị biến bị theo Khi có điện trở lại, nội dung ô nhớ chứa biến bất kỳ, xác định trước Bên cạnh nhớ loại SRAM, số chip thuộc họ AT89C51 có thêm nhớ liệu loại EEPROM với dung lượng tối đa vài Kbyte, tùytừng loại chip cụ thể Dưới vài ví dụ nhớ chương trình số loại chip thông dụng thuộc họ AT89C51 SVTH: Page THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN STT Tên chip GVHD: LÊ XỨNG Bộ nhớ SRAM Bộ nhớ EEPROM AT89C51 128 byte AT89C52 256 byte AT89C2051 128 byte AT89S51 128 byte AT89S52 256 byte AT89S8252 256 byte 2048 byte Đối với chip có nhớ SRAM 128 byte địa byte SRAM đánh số từ 00h đến 7Fh Đối với chip có nhớ SRAM 256 byte địa byte SRAM đánh số từ 00h đến FFh Ở hai loại chip, SRAM có địa từ 00h đến 7Fh gọi vùng RAM thấp, phần có địa từ 80h đến FFh (nếu có) gọi vùng RAM cao Bên cạnh nhớ, bên chip AT89C51còn có tập hợp ghi chức đặc biệt (SFR – Special Function Register) Các ghi lien quan đến hoạt động ngoại vi onchip (các cổng vào ra, timer, ngắt ) Địa chúng trùng với dải địa vùng SRAM cao, tức có địa từ 80h đến FFh 1.5 Các nghi đặc biệt SFR : SVTH: Page THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN GVHD: LÊ XỨNG 1.6 Cổng vào song song (I/O Port) Port 0: port hai chức chân 32 đến 39 AT89C51: Chức IO (xuất / nhập): dùng cho thiết kế nhỏ (không dùng nhớ ) thiết kế lớn với nhớ ngoài, port dồn kênh bus liệu (D0: D7) byte thấp bus địa (A0:A7) Khi dùng làm ngõ vào, Port phải set mức logic trước đó.Chức địa / liệu đa hợp: dùng thiết kế lớn, đòi hỏi phải sử dụng nhớ Port vừa bus liệu (8 bit) vừa bus địa (8 bit thấp).Ngoài lập trình cho AT89C51, Port dùng để nhận mã lập trình xuất mà kiểm tra (quá trình kiểm tra đòi hỏi phải có điện trở kéo lên) - Port1 (chân – 8): có chức I/O, không dùng cho mục đích khác (chỉ 8032/8052/8952 dùng thêm P1.0 P1.1 cho định thời thứ 3) Tại Port có điện trở kéo lên nên không cần thêm điện trở Port có khả kéo ngõ TTL dùng làm bit địachỉ thấp trình lập trình hay kiểm tra - Port (chân 21 – 28) port có chức năng: Chức IO (xuất / nhập) Chức địa chỉ: dùng làm bit địa cao cần nhớ ngoàicó địa 16 bit Khi đó, Port không dùng cho mục đích I/O Khi dùng làm ngõ vào, Port phải set mức logic trước Khi lập trình, Port dùng làm bit địa cao hay số tín hiệu điều khiển - Port (chân 10 – 17): port có chức năng: SVTH: Page THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN GVHD: LÊ XỨNG Chức I/O Chức khác: ta có bảng chức chân sau Nguồn: Chân 40: VCC = 5V ± 20% Chân 20: GND PSEN (Program Store Enable): PSEN (chân 29) cho phép đọc nhớ chương trình mở rộng đối vớicác ứng dụng sử dụng ROM ngoài, thường nối đến chân OC (Output Control) ROM để đọc byte mã lệnh PSEN mức logic thời gian AT89C51 lấy lệnh Trong trình này, PSEN tích cực lần chu kỳ máy Mã lệnh chương trình đọc từ ROM thông qua bus liệu(Port0) bus địa (Port0 + Port2) Khi 8951 thi hành chương trình ROM nội, PSEN mứclogic ALE/PROG (Address Latch Enable / Program):ALE/PROG (chân 30) cho phép tách đường địa liệu Port truy xuất nhớ ALE thường nối với chân Clock IC chốt (74373, 74573) Các xung tín hiệu ALE có tốc độ 1/6 lần tần số dao động chip dùng làm tín hiệu clock cho phần khác hệ thống Xung cấm cách set bit SFR địa 8Eh lên1 Khi đó, ALE có tác dụng dùng lệnh MOVX hay MOVC Ngoài ra, chân dùng làm ngõ vào xung lập trình cho ROM nội ( PROG) EA /VPP (External Access) EA (chân 31) dùng phép thực thi chương trình từ ROM Khi nối chân 31 với Vcc, AT89C51 thực thi chương trình từ ROM nội (tối đa 8KB), ngược lại thực thi từ ROM (tối đa 64KB) Ngoài ra, chân EA lấy làm chân cấp nguồn 12V lập trình cho ROM RST (Reset): SVTH: Page THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN GVHD: LÊ XỨNG RST (chân 9) cho phép reset AT89C51 ngõ vào tín hiệu đưa lên mức chu kỳ máy XTAL1,XTAL2: Ngõ vào ngõ dao động, sử dụng cần kết nối thêm thạch anh tụ hình vẽ sơ đồ Tần số thạch anh thường sử dụng cho AT89C51 12Mhz Chu kì máy (TM) = / (fOSC/12) = 12 / fOSC Nếu tần số thạch anh 12Mhz số chu kì máy 1us Sơ đồ mạch reset mô tả sau: Thanh ghi quan trọng ghi đếm chương trình PC Reset địa 0000H.Khi ngõ vào RST xuống mức thấp, chương trình bắt đầu địa 0000H nhớ chương trình Nội dung RAM chip không bị thay đổi tác động ngõ vào Reset 1.7 Cổng vào nối tiếp (Serial Port) Cổng nối tiếp AT89C51 chủ yếu dùng ứng dụng có yêu cầu truyền thông với máy tính, với vi điều khiển khác Liên quan đến cổng nối tiếp chủ yếu có ghi: SCON SBUF Ngoài ra, ghi khác ghi PCON (không đánh đ ịa bit) có bit tên SMOD quy định tốc độ truyền cổng nối tiếp có gấp đôi lên (SMOD = 1) hay không (SMOD = 0) 1.8 Ngắt (Interrupt) AT89C51chỉ có số lượng nguồn ngắt (interrupt source) gọi nguyên nhân ngắt Mỗi ngắt có vector ngắt riêng, địa cố định nằm nhớ chương trình, ngắt xảy ra, CPU tự động nhảy đến thực lệnh nằm địa này.Mỗi ngắt dành cho SVTH: Page THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN GVHD: LÊ XỨNG vector ngắt kéo dài 8byte Về mặt lý thuyết, chương trình đủ ngắn, mã tạo chứa đủ byte, người lập trình hoàn toàn đặt phần chương trình xử lý ngắt vector ngắt Tuy nhiên hầu hết trường hợp, chương trình xử lý ngắt có dung lượng mã tạo lớn 8byte nên vector ngắt, ta đặt lệnh nhảy tới chương trình xử lý ngắt nằm vùng nhớ khác Nếu không làm vậy, mã chương trình xử lý ngắt lấn sang, đè vào vector ngắt kế cận Bảng tóm tắt ngắt AT89C51 sau: Để cho phép ngắt, bit tương ứng với ngắt bit EA phải đặtbằng Thanh ghi IE ghi đánh địa bit, dùng lệnh tác động bit để tác động riêng rẽ lên bit mà không làm ảnh hưởng đến giá trị bit khác Cờ ngắt hoạt động độc lập với việc cho phép ngắt, điều có nghĩa cờ ngắt tự động đặt lên có kiện gây ngắt xảy ra, kiện có cho phép ngắt hay không Do vậy, trước cho phép ngắt, ta nên xóa cờ ngắt để đảm bảo sau cho phép, kiện gây ngắt khứ gây ngắt AT89C51 có ngắt INT0 INT1 Ngắt hiểu ngắt gây kiện mức lôgic (mức điện áp thấp, gần 0V) sườn xuống (sự chuyển mức điện áp từ mức cao mức thấp) xảy chân ngắt tương ứng (P3.2 với ngắt P3.3 với ngắt 1) Việc lựa chọn kiểu ngắt thực bit IT (Interrupt Type) nằm ghi TCON Đây ghi điều khiển timer bit LSB (bit0 3) dùng cho ngắt SVTH: Page THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN GVHD: LÊ XỨNG Khi bit ITx = ngắt tương ứng chọn kiểu ngắt theo sườn xuống, ngược lại bit ITx = ngắt tương ứng có kiểu ngắt ngắt theo mức thấp Các bit IE bit cờ ngắt ngoài, có tác dụng trường hợp kiểu ngắt chọn ngắt theo sườn xuống Khi kiểu ngắt theo sườn xuống chọn ngắt xảy lần có sườn xuống tín hiệu, sau tín hiệu mức thấp, có sườn lên, mức cao ngắt xảy có sườn xuống Cờ ngắt IE dựng lên có sườn xuống tự động bị xóa CPU bắt đầu xử lý ngắt Khi kiểu ngắt theo mức thấp chọn ngắt xảy tín hiệu chân ngắt mức thấp Nếu sau xử lý xong ngắt mà tín hiệu mức thấp lại ngắt tiếp, xử lý xong ngắt lần thứ n , tín hiệu lên mức cao không ngắt Cờ ngắt IE trường hợp ý nghĩa cả.Thông thường kiểu ngắt hay chọn ngắt theo sườn xuống Bộ định thời/Bộ đế m (Time r/Counter) AT89C51 có timer tên timer0 timer1 Các timer timer 16bit, giátrị đếm max 216 = 65536 (đếm từ đến 65535).Hai timer có nguyên lý hoạt động hoàn toàn giống độc lập Sau khicho phép chạy, có thêm xung đầu vào đếm, giá trị timer tự động tăng lên đơn vị, giá trị tăng lên vượt giá trị max mà ghi đếm biểu diễn giá trị đếm lại đưa trở giá trị (thông thường = 0) Sự kiện hiểu kiện tràn timer (overflow) gây ngắt ngắt tràn timer cho phép (bit ETx ghi IE = 1) Việc cho timer chạy/dừng thực bit TR ghi TCON (đánh địa đến bit) Khi bit TRx = 1, timerx đếm, ngược lại TRx = 0, timerx không đếm có xung đưa vào Khi dừng không đếm, giá trị timer giữ nguyên Các bit TFx cờ báo tràn timer, kiện tràn timer xảy ra, cờ tự động đặt lên ngắt tràn timer cho phép, ngắt xảy Khi CPU xử lý ngắt tràn timerx, cờ ngắt TFx tương ứng tự động xóa Giá trị đếm 16bit timerx lưu hai ghi THx (byte cao) TLx (byte thấp) Hai ghi ghi/đọc lúc Tuy nhiên nhà sản xuất khuyến cáo nên dừng timer (cho bit TRx = 0) trước ghi/đọc ghi chứa giá trị đếm Các timer hoạt động theo nhiều chế độ, quy định bittrong ghi TMOD (không đánh địa đến bit) Để xác định thời gian, người ta chọn nguồn xung nhịp (clock) đưa vào đếm timer xung nhịp bên (dành cho CPU) Nguồn xung nhịp thường đặn (có tần số ổn định), từ số đếm timer người ta nhân với chu kỳ xung nhịp để tính thời gian trôi qua Timer lúc gọi xác với tên “timer”, tức định thời.Để đếm kiện bên ngoài, người ta chọn nguồn xung nhịp đưa vào đếmtrong timer tín hiệu từ bên (đã chuẩn hóa dạng xung vuông(0V/5V) Các tín hiệu nối với bit cổng có dồn kênh thêm tính T0/T1/T2 Khi có kiện bên gây thay đổi mức xung đầu vào đếm, timer tự động tăng lên đơn vị giống trường SVTH: Page THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN GVHD: LÊ XỨNG hợp đếm xung nhịp bên Lúc này, timer gọi xác với tên khác: “counter”, tức đếm (sự kiện) Nhìn vào bảng mô tả ghi TMOD bên trên, ta nhận thấy có bit giống (gồm GATEx, C/Tx, Mx0 Mx1) dành cho timer0 Ý nghĩa bit timer Bit GATEx quy định việc cho phép timer đếm (run timer) Nếu GATEx = 0,timerx đếm bit TRx 1, dừng bit TRx Nếu GATEx = 1, timerx đếm bit TRx = tín hiệu chân INTx = 1, dừng hai điều kiện không thỏa mãn Thông thường người ta dùng timer với GATE = 0, dùng timer với GATE = trường hợp muốn đo độ rộng xung lúc timer đếm thời gian xung đưa vào chân INTx mức cao Bit C/Tx quy định nguồn clock đưa vào đếm timer Nếu C/Tx = 0, timer cấu hình định thời, C/Tx = 1, timer cấu hình đếm kiện Hai bit lại (Mx0 Mx1) tạo tổ hợp giá trị (00,01,10 11) ứng với chế độ hoạt động khác timerx Trong chế độ thường dùng chế độ timer/counter 16bit (Mx1 = 0, Mx0 = 1) chế độ Auto Reload 8bit timer/counter (Mx1 = 1, Mx0 = 0).Trong chế độ timer/counter 16bit, giá trị đếm (chứa hai ghi THx TLx) tự động tăng lên đơn vị lần nhận thêm xung nhịp Khi giá trị đếm tăng vượt giá trị max = 65535 tràn 0, cờ ngắt TFx tự động đặt = Chế độ dùng ứng dụng đếm thời gian đếm kiện Trong chế độ Auto Reload 8bit, giá trị đếm chứa ghi TLx, giá trị ghi THx số n (từ đến 255) người lập trình đưa vào Khi có thêm xung nhịp, giá trị đếm TLx đương nhiên tăng lên đơn vị bình thường Tuy nhiên trường hợp này, giá trị đếm lớn 255 65535 trường hợp timer/counter 8bit Do kiện tràn lúc xảy nhanh hơn, cần vượt 255 giá trị đếm tràn Cờ ngắt TFx tự động đặt = trường hợp tràn 16bit Điểm khác biệt thay tràn 0, giá trị THx tự động nạp lại (Auto Reload) vào ghi TLx, timer/counter sau tràn có giá trị n (giá trị chứa THx) đếm từ giá trị n trở Chế độ dùng việc tạo Baud rate cho truyền thông qua cổng nối tiếp Để sử dụng timer AT89C51, thực bước sau: - Quy định chế độ hoạt động cho timer cách tính toán ghi giá trị cho bit ghi TMOD - Ghi giá trị đếm khởi đầu mong muốn vào ghi đếm THx TLx Đôi ta không muốn timer/counter bắt đầu đếm từ mà từ giá trị để thời điểm tràn gần hơn, chẵn tính toán sau Ví dụ cho timer đếm từ 15535 sau 50000 xung nhịp (tức 50000 micro giây với thạch anh 12MHz) timer tràn, thời gian giây dễ dàng tính xác = 20 lần tràn timer (đương nhiên lần tràn lại phải nạp lại giá trị 15535) - Đặt mức ưu tiên ngắt cho phép ngắt tràn timer (nếu muốn) - Dùng bit TRx ghi TCON timer chạy hay dừng theo ý muốn SVTH: Page THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN GVHD: LÊ XỨNG II PHẦN MẠCH ĐIỀU KHIỂN TRUNG TÂM : 5VDC R3 10K KHOI DIEU KHIEN C5 10UF + 5VDC 4.7K R7 U18 X1 X2 19 18 5VDC MACH RESET 31 rst P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 XTAL1 XTAL2 EA/VPP RST AT89C51 5VDC 21 22 23 24 25 26 27 28 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 A1 A2 A3 A4 A5 A6 A7 A8 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD J1 A B C D 10 11 12 13 14 15 16 17 STEP MOTOR 30 29 ALE/PROG PSEN GND 39 38 37 36 35 34 33 32 20 B1 B2 B3 B4 B5 B6 B7 B8 40 5VCC VCC SW1 5VDC R2 C3 100 1n rst RESET SW3 C1 X1 33pF Q1 C2 R1 10K SVTH: 11.059MHZ X2 33pF Page 10 THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN GVHD: LÊ XỨNG MẠCH HIỂN THỊ LED : 5VDC R1 330 LED HIEN THI 74245 A1 A2 A3 A4 A5 A6 A7 A8 A11 A12 A13 A14 A21 A22 A23 A24 5VDC A2 LED1 A1 D1 RN1 B8 B7 B6 B5 B4 B3 B2 B1 DIR G 16 15 14 13 12 11 10 9 10 A B C D E F G H 330x8 5VDC R2 330 74245 B1 B2 B3 B4 B5 B6 B7 B8 A11 A12 A13 A14 A21 A22 A23 A24 5VDC DIR G B8 B7 B6 B5 B4 B3 B2 B1 A2 LED2 A1 D2 RN2 16 15 14 13 12 11 10 9 10 A B C D E F G H 330x8 MẠCH KẾT NỐI VỚI ĐỘNG CƠ : SVTH: Page 11 THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN GVHD: LÊ XỨNG LƢU ĐỒ THUẬT TOÁN Chƣơng trình : SVTH: Page 12 THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN GVHD: LÊ XỨNG Chƣơng trình hiển thị : SVTH: Page 13 THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN GVHD: LÊ XỨNG Chƣơng trình DELAY10MS : CHƢƠNG TRÌNH ĐIỀU KHIỂN MẠCH HẸN GIỜ CHO ĐỘNG CƠ ORG MOV MOV MOV MOV 0000H SP,#50H TMOD,#11H DPTR,#LED7 R0,#0 MOV MOV DIV CALL MOV MOV CALL MOV JB A,R0 B,#10 AB TRABANG P0,A A,B TRABANG P2,A P3.2,NEXT LP: SVTH: Page 14 THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN CALL JNB INC DELAY10MS P3.2,NEXT R0 JB CLR SETB P3.3,LP P3.0 P3.1 GVHD: LÊ XỨNG NEXT: LOP: DEC MOV MOV DIV CALL MOV MOV CALL MOV CALL CJNE SETB LJMP DELAY1: MOV LAP: MOV MOV SETB R0 A,R0 B,#10 AB TRABANG P0,A A,B TRABANG P2,A DELAY1 R0,#0,LOP P3.0 LP R7,#20 TH0,#HIGH(-50000) TL0,#LOW(-50000) TR0 LAP1: JNB CLR CLR DJNZ RET DELAY10MS: MOV MOV SETB JNB CLR CLR RET TRABANG: MOVC RET SVTH: TF0,LAP1 TF0 TR0 R7,LAP TH1,#HIGH(-10000) TL1,#LOW(-10000) TR1 TF1,$ TR1 TF1 A,@A+DPTR Page 15 THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN GVHD: LÊ XỨNG LED7: DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H END SVTH: Page 16 [...]... 15 14 13 12 11 10 9 7 6 4 2 1 9 10 5 A B C D E F G H 330x8 3 MẠCH KẾT NỐI VỚI ĐỘNG CƠ : SVTH: Page 11 THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN GVHD: LÊ XỨNG 1 LƢU ĐỒ THUẬT TOÁN Chƣơng trình chính : SVTH: Page 12 THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN GVHD: LÊ XỨNG Chƣơng trình con hiển thị : SVTH: Page 13 THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN GVHD: LÊ XỨNG Chƣơng trình con DELAY10MS : 2 CHƢƠNG TRÌNH ĐIỀU KHIỂN MẠCH...THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN GVHD: LÊ XỨNG 2 MẠCH HIỂN THỊ LED 7 : 5VDC R1 330 8 3 LED HIEN THI 74245 A1 A2 A3 A4 A5 A6 A7 A8 A11 A12 A13 A14 A21 A22 A23 A24 5VDC A2 LED1 A1 D1 RN1 B8 B7 B6 B5 B4 B3... KHIỂN MẠCH HẸN GIỜ CHO ĐỘNG CƠ ORG MOV MOV MOV MOV 0000H SP,#50H TMOD,#11H DPTR,#LED7 R0,#0 MOV MOV DIV CALL MOV MOV CALL MOV JB A,R0 B,#10 AB TRABANG P0,A A,B TRABANG P2,A P3.2,NEXT LP: SVTH: Page 14 THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN CALL JNB INC DELAY10MS P3.2,NEXT R0 JB CLR SETB P3.3,LP P3.0 P3.1 GVHD: LÊ XỨNG NEXT: LOP: DEC MOV MOV DIV CALL MOV MOV CALL MOV CALL CJNE SETB LJMP DELAY1: MOV LAP: MOV... TL0,#LOW(-50000) TR0 LAP1: JNB CLR CLR DJNZ RET DELAY10MS: MOV MOV SETB JNB CLR CLR RET TRABANG: MOVC RET SVTH: TF0,LAP1 TF0 TR0 R7,LAP TH1,#HIGH(-10000) TL1,#LOW(-10000) TR1 TF1,$ TR1 TF1 A,@A+DPTR Page 15 THỰC HÀNH THÍ NGHIỆM VI ĐIỀU KHIỂN GVHD: LÊ XỨNG LED7: DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H END SVTH: Page 16