có fide code và fide mo phỏng trên proteuscó slides thuyết trình có tài liệu tham khảoDANH MỤC CÁC BẢNG, SƠ ĐỒ, HÌNH:0Chương 1: GIỚI THIỆU PHẦN CỨNG.11.1. Khối điều khiển trung tâm:11.1.1. Sơ đồ khối của một hệ vi xử lý11.1.2. Đơn vị xử lý trung tâm:21.1.3. Các chân của chip 89V51RB2:31.2. IC 74LS15471.2.1. Sơ đồ chân IC 74LS15471.2.2. Bảng trạng thái IC74LS15491.2.3. Nguyên tắc hoạt động của IC 74LS15491.3. IC 7805(IC ổn áp):101.4. TRANSISTOR ỔN DÒNG 2SB68810Chương 2: SƠ ĐỒ KHỐI112.1. Khối vi điều khiển và port mở rộng:122.2. Khối LED 7 đoạn132.3. Khối phím Matrix:132.4. Khối nguồn:14Chương 3: LƯU ĐỒ GIẢI THUẬT CỦA CHƯƠNG TRÌNH.15Chương 4: PHỤ LỤC17TÀI LIỆU THAM KHẢO30
MỤC LỤC DANH MỤC CÁC BẢNG, SƠ ĐỒ, HÌNH: Chương 1: GIỚI THIỆU PHẦN CỨNG 1.1 Khối điều khiển trung tâm: 1.1.1 Sơ đồ khối hệ vi xử lý 1.1.2 Đơn vị xử lý trung tâm: 1.1.3 Các chân chip 89V51RB2: 1.2 IC 74LS154 1.2.1 Sơ đồ chân IC 74LS154 1.2.2 Bảng trạng thái IC74LS154 1.2.3 Nguyên tắc hoạt động IC 74LS154 1.3 IC 7805(IC ổn áp): .10 1.4 TRANSISTOR ỔN DÒNG 2SB688 10 Chương 2: SƠ ĐỒ KHỐI .11 2.1 Khối vi điều khiển port mở rộng: 12 2.2 Khối LED đoạn .13 2.3 Khối phím Matrix: 13 2.4 Khối nguồn: .14 Chương 3: LƯU ĐỒ GIẢI THUẬT CỦA CHƯƠNG TRÌNH 15 Chương 4: PHỤ LỤC 17 TÀI LIỆU THAM KHẢO 30 GVHD: Đào Thị Thu Thủy SVTH: Nguyễn Huỳnh Minh Tân – Nguyễn Đình Phương DANH MỤC CÁC BẢNG, SƠ ĐỒ, HÌNH Các bảng: BẢNG 1.1: Chức chân Port3 BẢNG 1.2: Tổ chức nhớ chip 89V51RB2 BẢNG 1.3: Bảng trạng thái IC74LS154 Các sơ dồ: SƠ ĐỒ 2.1: Sơ đồ khối tồn chương trình Các hình: HÌNH 1.1: Sơ đồ khối hệ vi xử lý HÌNH 1.2: Sơ đồ chân chip 89V51RB2 HÌNH 1.3: Cấu tạo bên IC 74LS154 HÌNH 1.4: Sơ đồ chân IC 74LS154 HÌNH 1.5: a,b: cấu tạo sơ đồ chân IC 7805 HÌNH 1.6: Transistor ổn dòng 2SB688 HÌNH 2.1: Sơ đồ ngun lí khối IC HÌNH 2.2: Sơ đồ ngun lí khối LED đoạn HÌNH 2.3: Sơ đồ ngun lí khối bàn phím HÌNH 2.4: Sơ đồ ngun lí khối nguồn GVHD: Đào Thị Thu Thủy SVTH: Nguyễn Huỳnh Minh Tân – Nguyễn Đình Phương Chương 1: GIỚI THIỆU PHẦN CỨNG 1.1 Khối điều khiển trung tâm: Vi điều khiển 89V51RB2 Với Port điều khiển 1.1.1.Sơ đồ khối hệ vi xử lý: 1.1.1.1.Định nghĩa hệ vi xử lý: Khả lập trình để thao tác liệu mà không cần can thiệp người Khả lưu trữ phục hồi liệu 1.1.1.2.Tổng quát hệ vi xử lý gồm: Hình 1.1: Sơ đồ khối hệ vi xử lý Phần cứng (hardware): thiết bị ngoại vi để giao tiếp với người Phần mềm (software): chương trình để xử lý liệu - CPU (Central Processing Unit): đơn vị xử lý trung tâm - RAM (Random Access Memory): nhớ truy xuất ngẫu nhiên - Rom (Read Only Memory): nhớ đọc - Interface Circuitry: mạch điện giao tiếp - Peripheral Devices (Input): thiết bị ngoại vi (thiết bị nhập) - Peripheral Devices (Output): thiết bị ngoại vi (thiết bị xuất) GVHD: Đào Thị Thu Thủy SVTH: Nguyễn Huỳnh Minh Tân – Nguyễn Đình Phương - Addressbus: bus địa - Data bus: bus liệu - Control bus: bus điều khiển 1.1.2.Đơn vị xử lý trung tâm: CPU đóng vai trò chủ đạo hệ vi xử lý, quản lý tất hoạt động hệ thực tất thao tác liệu CPU vi mạch điện tử có độ tích hợp cao Khi hoạt động CPU đọc mã lệnh ghi dạng bit bit từ nhớ, sau thực giải mã lệnh thành dãy xung điều khiển tương ứng với thao tác lệnh để điều khiển khối khác thực bước thao tác từ tạo xung điều khiển cho toàn hệ IR/IP (Instruction Register/Intruction Pointer): ghi lệnh/con trỏ lệnh PC (Program Counter): đếm chương trình Instruction decode and control unit: đơn vị giải mã lệnh điều khiển ALU (arithmetic and Logic Unit): đơn vị số học logic Registers: Các ghi Khi hoạt động CPU thực liên tục thao tác: tìm nạp lệnh giải mã - thực lệnh 1.1.2.1 Thao tác tìm nạp lệnh: Nội dung ghi PC CPU đưa lên bus địa Tín hiệu điều khiển đọc (Read) chuyển sang trạng thái tích cực Mã lệnh (Opcode) từ nhớ đưa lên bus liệu Nội dung ghi PC tăng lên đơn vị để chuẩn bị tìm nạp lệnh từ nhớ 1.1.2.2 Thao tác giải mã - thực lệnh: Mã lệnh từ ghi IR đưa vào đơn vị giải mã lệnh điều khiển Đơn vị giải mã lệnh điều khiển thực giải mã opcode tạo tín hiệu để điều khiển việc xuất nhập liệu giữ ALU ghi Căn tín hiệu điều khiển này, ALU thực hịên thao tác xác định Một chuỗi lệnh (Opcode) kết hợp lại với để thực cơng việc có nghĩa gọi chương trình (Program) hay phần mềm 1.1.2.3 Bộ nhớ bán dẫn khác quan trọng hệ vi xử lý, chương trình liệu lưu trữ nhớ: Bộ nhớ bán dẫn hệ vi xử lý gồm: GVHD: Đào Thị Thu Thủy SVTH: Nguyễn Huỳnh Minh Tân – Nguyễn Đình Phương ROM: nhớ chương trình _ lưu giữ chương trình điều khiển hoạt động tồn hệ thống RAM: nhớ liệu _ lưu giữ liệu, phần chương trình điều khiển hệ thống, ứng dụng kết tính tốn Sơ lược cấu trúc phân loại ROM – RAM: ROM (Read Only Memory): nhớ đọc RAM (Random Access Memory): nhớ truy xuất ngẫu nhiên (bộ nhớ ghi đọc) 1.1.3.Các chân chip 89V51RB2: 1.1.3.1 Sơ đồ khối chức khối chip 89V51RB2: CPU (Central Processing Unit): Đơn vị xử lý trung tâm tính tốn điều khiển q trình hoạt động hệ thống OSC (Oscillator): Mạch dao động tạo tín hiệu xung clock cung cấp cho khối chip hoạt động Interrupt control: Điều khiển ngắt nhận tín hiệu ngắt từ bên ngồi (INT0\, INT1\), từ định thời (TIMER0, TIMER1) từ cổng nối tiếp (SERIAL PORT), đưa tín hiệu ngắt đến CPU để xử lý Other registers: Các ghi khác lưu trữ liệu port xuất/nhập, trạng thái làm việc khối chip suốt trình hoạt động hệ thống RAM (Random Access Memory): Bộ nhớ liệu chip lưu trữ liệu ROM (Read Only Memory): Bộ nhớ chương trình chip lưu trữ chương trình hoạt động chip I/O ports (In/Out ports): Các port xuất/nhập điều khiển việc xuất nhập liệu dạng song song ngồi chip thơng qua port P0, P1, P2, P3 Serial port: Port nối tiếp điều khiển việc xuất nhập liệu dạng nối tiếp ngồi chip thơng qua chân TxD, RxD Timer 0, Timer 1: Bộ định thời 0, dùng để định thời gian đếm kiện (đếm xung) thông qua chân T0, T1 Bus control: Điều khiển bus _ điều khiển hoạt động hệ thống bus việc di chuyển thông tin hệ thống bus Bus system: Hệ thống bus _ liên kết khối chip lại với 1.1.3.2 Chức chân chip 8051: Chip 89V51: gồm 40 chân GVHD: Đào Thị Thu Thủy SVTH: Nguyễn Huỳnh Minh Tân – Nguyễn Đình Phương chân nguồn cấp điện (VCC, VSS) 32 chân xuất/nhập chân chức (EA, ALE, PSEN, XTAL1, XTAL2, RST) Port xuất/nhập bit (P0.0 – P0.7) Port xuất/nhập bit (P1.0 – P1.7) Port xuất/nhập bit (P2.0 – P2.7) Port xuất/nhập bit (P3.0 – P3.7) Hình 1.2: Sơ đồ chân chip 89V51RB2 Port 0: - Port (P0.0 – P0.7) có số chân từ 32 – 39 - Port có hai chức năng: • Port xuất nhập liệu (P0.0 - P0.7) khơng sử dụng nhớ ngồi • Bus địa byte thấp bus liệu đa hợp (AD0 – AD7) có sử dụng nhớ ngồi + Lưu ý: Khi Port đóng vai trò port xuất nhập liệu phải sử dụng điện trở kéo lên bên ngồi Khi lập trình cho ROM chip Port đóng vai trò ngõ vào liệu (D0 -> D7) Port 1: - Port (P1.0 – P1.7) có số chân từ – - Port có chức năng: GVHD: Đào Thị Thu Thủy SVTH: Nguyễn Huỳnh Minh Tân – Nguyễn Đình Phương Port xuất nhập liệu (P1.0 – P1.7) sử dụng không sử dụng nhớ ngồi - Khi lập trình cho ROM chip Port đóng vai trò ngõ vào địa byte thấp (A0 – A7) Port 2: - Port (P2.0 – P2.7) có số chân từ 21 – 28 - Port có hai chức năng: Port xuất nhập liệu (P2.0 – P2.7) không sử dụng nhớ Bus địa byte cao (A8 – A15) có sử dụng nhớ ngồi - Khi lập trình cho ROM chip Port đóng vai trò ngõ vào địa byte cao (A8 – A11) tín hiệu điều khiển Port 3: - Port (P3.0 – P3.7) có số chân từ 10 – 17 - Port có hai chức năng: Port xuất nhập liệu (P3.0 – P3.7) khơng sử dụng nhớ ngồi chức đặc biệt Các tín hiệu điều khiển có sử dụng nhớ ngồi chức đặc biệt - Khi lập trình cho ROM chip Port đóng vai trò ngõ vào tín hiệu điều khiển Bit Tên Địa bit Chức P3.0 RxD B0H Chân nhận liệu port nối tiếp P3.1 TxD B1H Chân phát liệu port nối tiếp P3.2 INT0\ B2H Ngõ vào ngắt P3.3 INT1\ B3H Ngõ vào ngắt P3.4 T0 B4H Ngõ vào định thời đếm P3.5 T1 B5H Ngõ vào định thời đếm P3.6 WR\ B6H Điều khiển ghi nhớ liệu Ram P3.7 RD\ B7H Điều khiển đọc nhớ liệu Ram Bảng 1.1: Chức chân Port3 Chân PSEN\: - PSEN (Program Store Enable): cho phép nhớ chương trình, chân số 29 - Chức năng: GVHD: Đào Thị Thu Thủy SVTH: Nguyễn Huỳnh Minh Tân – Nguyễn Đình Phương • Là tín hiệu cho phép truy xuất (đọc) nhớ chương trình (ROM) ngồi • Là tín hiệu xuất, tích cực mức thấp PSEN\ = _ thời gian CPU tìm-nạp lệnh từ ROM ngồi PSEN\ = _ CPU sử dụng ROM (khơng sử dụng ROM ngồi) - Khi sử dụng nhớ chương trình bên ngồi, chân PSEN\ thường nối với chân OE\ ROM phép CPU đọc mã lệnh từ ROM Chân ALE: - ALE (Address Latch Enable): cho phép chốt địa chỉ, chân số 30 - Chức năng: • Là tín hiệu cho phép chốt địa để thực việc giải đa hợp cho bus địa byte thấp bus liệu đa hợp (AD0 – AD7) • Là tín hiệu xuất, tích cực mức cao ALE = _ thời gian bus AD0 – AD7 đóng vai trò bus D0 – D7 ALE = _ thời gian bus AD0 – AD7 đóng vai trò bus A0 – A7 - Khi lập trình cho ROM chip chân ALE đóng vai trò ngõ vào xung lập trình (PGM\) Khi lệnh lấy liệu từ RAM (MOVX) thực xung ALE bị bỏ qua Chân EA\: - EA (External Access): truy xuất ngoài, chân số 31 - Chức năng: • Là tín hiệu cho phép truy xuất (sử dụng) nhớ chương trình (ROM) ngồi • Là tín hiệu nhập, tích cực mức thấp EA\ = _ Chip 8051 sử dụng chương trình ROM EA\ = _ Chip 8051 sử dụng chương trình ROM - Khi lập trình cho ROM chip chân EA đóng vai trò ngõ vào điện áp lập trình (Vpp = 12V/89xx, 21V/80xx, 87xx) + Lưu ý: Chân EA\ luôn phải nối lên Vcc (sử dụng chương trình ROM trong) xuống Vss (sử dụng chương trình ROM ngoài) Chân XTAL1, XTAL2: - XTAL (Crystal): tinh thể thạch anh, chân số 18-19 - Chức năng: • Dùng để nối với thạch anh mạch dao động tạo xung clock bên ngồi, cung cấp tín hiệu xung clock cho chip hoạt động GVHD: Đào Thị Thu Thủy SVTH: Nguyễn Huỳnh Minh Tân – Nguyễn Đình Phương • XTAL1 _ ngõ vào mạch tạo xung clock chip • XTAL2 _ ngõ mạch tạo xung clock chip Chân RST: - RST (Reset): thiết lập lại, chân số - Chức năng: • Là tín hiệu cho phép thiết lặp (đặt) lại trạng thái ban đầu cho hệ thống • Là tín hiệu nhập, tích cực mức cao RST = _ Chip 8051 hoạt động bình thường RST = _ Chip 8051 thiết lặp lại trạng thái ban đầu Chân Vcc, GND: - Vcc, GND: nguồn cấp điện, chân số 40-20 - Chức năng: • Cung cấp nguồn điện cho chip 89V51 hoạt động • Vcc = +5V ± 10% • GND = 0V 1.1.3.3.Tổ chức nhớ: Bộ vi xử lý có khơng gian nhớ chung cho liệu vàchương trình Chương trình liệu nằm chung RAM Bộ vi điều khiển có khơng gian nhớ riêng cho liệu vàchương trình Chương trình liệu nằm riêng ROM RAM Bảng 1.2: Tổ chức nhớ chip 89V51RB2 1.2 IC 74LS154: IC 74LS154 loại IC dùng để giải mã ,giải đa hợp (Decoder/Demultiplexer) GVHD: Đào Thị Thu Thủy SVTH: Nguyễn Huỳnh Minh Tân – Nguyễn Đình Phương 1.2.1 Sơ đồ chân IC 74LS154 Chức chân IC 74LS154: Chân 24, 12(VCC, GND): dùng cấp nguuồn cho IC hoạt động Chân 18, 19(G1, G2): ngõ vào cho phép IC hoạt động, thời điểm có IC hoạt động, IC bị cấm hoạt động tất ngõ mức logic cao (bất chấp ngõ vào trạng thái nào) Chân 23, 22, 21, 20(A,B,C,D): ngõ vào quy định trạng thái ngõ Chân 1-11,13-15(O0-O15): ngõ IC Tuỳ thuộc vào trạng thái đường địa mà ta có ngõ tương ứng, hai ngõ vào G1, G2 mức logic thấp IC hoạt động bình thường, thời điểm có ngõ mức logíc thấp, tất ngõ lại mức logic cao Sơ đồ bên ic 74LS154: Hình 1.3: Cấu tạo bên IC 74LS154 GVHD: Đào Thị Thu Thủy SVTH: Nguyễn Huỳnh Minh Tân – Nguyễn Đình Phương Chương 3: Lưu đồ giải thuật chương trình Chương 4: PHỤ LỤC $MOD51 ORG 00H MAIN: MOV 20H,#0 MOV 21H,#0 MOV 22H,#0 MOV 23H,#0 MOV 24H,#0 MOV 25H,#0 MOV 26H,#0 MOV 27H,#0 MOV 30H,#0 MOV 31H,#0 MOV 32H,#0 MOV 33H,#0 MOV 34H,#0 MOV 35H,#0 MOV 36H,#0 MOV 37H,#0 MOV R1,#0 MOV R2,#0 MOV R3,#0 MOV R4,#0 MOV R0,#4 CHUONG_TRINH_CHINH: LCALL SCANKEYPAD JC SKIP LJMP SCAN SKIP: CJNE A,#00,ENTER2 ENTER1: CLR C LJMP CHINH_SELECT1 ENTER2: Trang 15 Chương 3: Lưu đồ giải thuật chương trình CJNE A,#4,ENTER3 CLR C LJMP CHINH_SELECT2 ENTER3: CJNE A,#8,ENTER4 CLR C LJMP CHINH_SELECT3 ENTER4: CJNE A,#12,CHUONG_TRINH_CHINH CLR C LJMP CHINH_SELECT4 SCAN: LCALL SCAN_LED1 LCALL SCAN_LED2 LCALL SCAN_LED3 LCALL SCAN_LED4 LJMP CHUONG_TRINH_CHINH CHINH_SELECT1: MOV R0,#4 MOV R6,#1 MOV R4,#10 MOV R3,#10 MOV R2,#10 MOV R1,#10 LAP1: LCALL LED1 LCALL SCANLED LCALL SCANKEYPAD JC SKIP11 SJMP LAP1 SKIP11: LCALL DELAY300 CJNE A,#13,TRONG1 LCALL REMOVE LCALL LED1 SJMP CHINH_SELECT1 TRONG1: Trang 15 Chương 3: Lưu đồ giải thuật chương trình Trang 15 Chương 4: Phụ lục CJNE A,#15,SUA1 SJMP LAP1 SUA1: CJNE A,#00,SUA11 SJMP LAP1 SUA11: CJNE A,#04,SUA111 SJMP LAP1 SUA111: CJNE A,#08,SUA1111 SJMP LAP1 SUA1111: CJNE A,#12,NHAY1 SJMP LAP1 NHAY1: LJMP HIEN_THI_SO HOITIEP1: DJNZ R0,LAP1 LJMP CHUONG_TRINH_CHINH RET CHINH_SELECT2: MOV R0,#4 MOV R6,#2 MOV R4,#10 MOV R3,#10 MOV R2,#10 MOV R1,#10 LAP2: LCALL LED2 LCALL SCANLED LCALL SCANKEYPAD JC SKIP22 LJMP LAP2 SKIP22: LCALL DELAY300 CJNE A,#13,TRONG2 LCALL REMOVE Trang 19 Chương 4: Phụ lục LCALL LED2 SJMP CHINH_SELECT2 TRONG2: CJNE A,#15,SUA2 SJMP LAP2 SUA2: CJNE A,#00,SUA22 SJMP LAP2 SUA22: CJNE A,#04,SUA222 SJMP LAP2 SUA222: CJNE A,#08,SUA2222 SJMP LAP2 SUA2222: CJNE A,#12,NHAY2 SJMP LAP2 NHAY2: LJMP HIEN_THI_SO HOITIEP2: DJNZ R0,LAP2 LJMP CHUONG_TRINH_CHINH RET CHINH_SELECT3: MOV R0,#4 MOV R6,#3 MOV R4,#10 MOV R3,#10 MOV R2,#10 MOV R1,#10 LAP3: LCALL LED3 LCALL SCANLED LCALL SCANKEYPAD JC SKIP33 LJMP LAP3 SKIP33: Trang 19 Chương 4: Phụ lục LCALL DELAY300 CJNE A,#13,TRONG3 LCALL REMOVE LCALL LED3 SJMP CHINH_SELECT3 TRONG3: CJNE A,#15,SUA3 SJMP LAP3 SUA3: CJNE A,#00,SUA33 SJMP LAP3 SUA33: CJNE A,#04,SUA333 SJMP LAP3 SUA333: CJNE A,#08,SUA3333 SJMP LAP3 SUA3333: CJNE A,#12,NHAY3 SJMP LAP3 NHAY3: LJMP HIEN_THI_SO HOITIEP3: DJNZ R0,LAP3 LJMP CHUONG_TRINH_CHINH RET CHINH_SELECT4: MOV R0,#4 MOV R6,#4 MOV R4,#10 MOV R3,#10 MOV R2,#10 MOV R1,#10 LAP4: LCALL LED4 LCALL SCANLED LCALL SCANKEYPAD Trang 19 Chương 4: Phụ lục JC SKIP44 LJMP LAP4 SKIP44: LCALL DELAY300 CJNE A,#13,TRONG4 LCALL REMOVE LCALL LED4 SJMP CHINH_SELECT4 TRONG4: CJNE A,#15,SUA4 SJMP LAP4 SUA4: CJNE A,#00,SUA44 SJMP LAP4 SUA44: CJNE A,#04,SUA444 SJMP LAP4 SUA444: CJNE A,#08,SUA4444 SJMP LAP4 SUA4444: CJNE A,#12,NHAY4 SJMP LAP4 NHAY4: LJMP HIEN_THI_SO HOITIEP4: DJNZ R0,LAP4 LJMP CHUONG_TRINH_CHINH RET SCANLED: LCALL SCAN_LED1 LCALL SCAN_LED2 LCALL SCAN_LED3 LCALL SCAN_LED4 RET REMOVE: MOV R0,#4 Trang 19 Chương 4: Phụ lục MOV MOV MOV MOV R4,#0 R3,#0 R2,#0 R1,#0 RET HIEN_THI_SO: SO10: CJNE A,#1,SO11 MOV @R0,#9 LJMP O SO11: CJNE A,#2,SO12 MOV @R0,#8 LJMP O SO12: CJNE A,#3,SO13 MOV @R0,#7 LJMP O SO13: CJNE A,#5,SO14 MOV @R0,#6 LJMP O SO14: CJNE A,#6,SO15 MOV @R0,#5 LJMP O SO15: CJNE A,#7,SO16 MOV @R0,#4 LJMP O SO16: CJNE A,#9,SO17 MOV @R0,#3 LJMP O SO17: CJNE A,#10,SO18 MOV @R0,#2 Trang 19 Chương 4: Phụ lục LJMP O SO18: CJNE A,#11,SO19 MOV @R0,#1 LJMP O SO19: CJNE A,#14,HIEN_THI_SO MOV @R0,#0 LJMP O RET O: O1: CJNE R6,#1,O2 ;CUM LED THU LCALL LED1 LJMP HOITIEP1 O2: CJNE R6,#2,O3 ;CUM LED THU LCALL LED2 LJMP HOITIEP2 O3: CJNE R6,#3,O4 ;CUM LED THU LCALL LED3 LJMP HOITIEP3 O4: CJNE R6,#4,O ;CUM LED THU LCALL LED4 LJMP HOITIEP4 RET LED1: MOV MOV MOV MOV 23H,R4 22H,R3 21H,R2 20H,R1 RET LED2: MOV 27H,R4 MOV 26H,R3 Trang 19 Chương 4: Phụ lục MOV 25H,R2 MOV 24H,R1 RET LED3: MOV MOV MOV MOV 33H,R4 32H,R3 31H,R2 30H,R1 MOV MOV MOV MOV 37H,R4 36H,R3 35H,R2 34H,R1 RET LED4: RET SCAN_LED1: PUSH 05H PUSH 00H MOV DPTR,#MA7DOAN MOV R5,#03H MOV R0,#23H LOOP1: MOV A,@R0 MOVC A,@A+DPTR MOV P2,A MOV A,R5 MOV P1,A DEC A MOV R5,A LCALL DELAYED DEC R0 CJNE R0,#1FH,LOOP1 POP 00H POP 05H RET SCAN_LED2: PUSH ACC Trang 19 Chương 4: Phụ lục PUSH 05H PUSH 00H MOV DPTR,#MA7DOAN MOV R5,#07H MOV R0,#27H LOOP2: MOV A,@R0 MOVC A,@A+DPTR MOV P2,A MOV A,R5 MOV P1,A DEC A MOV R5,A LCALL DELAYED DEC R0 CJNE R0,#23H,LOOP2 POP 00H POP 05H POP ACC RET SCAN_LED3: PUSH ACC PUSH 05H PUSH 00H MOV DPTR,#MA7DOAN MOV R5,#0BH MOV R0,#33H LOOP3: MOV A,@R0 MOVC A,@A+DPTR MOV P2,A MOV A,R5 MOV P1,A DEC A MOV R5,A LCALL DELAYED DEC R0 Trang 19 Chương 4: Phụ lục CJNE POP POP POP R0,#2FH,LOOP3 00H 05H ACC RET SCAN_LED4: PUSH ACC PUSH 05H PUSH 00H MOV DPTR,#MA7DOAN MOV R5,#0FH MOV R0,#37H LOOP4: MOV A,@R0 MOVC A,@A+DPTR MOV P2,A MOV A,R5 MOV P1,A DEC A MOV R5,A LCALL DELAYED DEC R0 CJNE R0,#33H,LOOP4 POP 00H POP 05H POP ACC RET DELAYED: PUSH 00H PUSH 01H MOV R1,#1 DEL: MOV R0,#125 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H Trang 19 Chương 4: Phụ lục RET DELAY300: PUSH 07H MOV R7,#50 D3: MOV TH1,#HIGH(-50000) MOV TL1,#LOW(-50000) SETB TR1 JNB TF1,$ CLR TR1 CLR TF1 DJNZ R7,D3 POP 07H RET MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH RET SCANKEYPAD: PUSH 03H MOV R3,#100 BACK: ACALL GETKEY JNC NOPRESSED DJNZ R3,BACK NOPRESSED: POP 03HRET GETKEY: PUSH 05H PUSH 06H PUSH 07H MOV A,#0EFH MOV R6,#4 TEST: MOV P0,A MOV R7,A MOV A,P0 Trang 19 Chương 4: Phụ lục ANL A,#0FH CJNE A,#0FH,KEYPRESSED MOV A,R7 RL A DJNZ R6,TEST CLR C SJMP EXIT KEYPRESSED: MOV R7,A MOV A,#4 CLR C SUBB A,R6 MOV R6,A MOV A,R7 MOV R5,#4 AGAIN: RRC A JNC DONE INC R6 INC R6 INC R6 INC R6 DJNZ R5,AGAIN DONE: SETB C MOV A,R6 EXIT: POP 07H POP 06H POP 05H RET END Trang 19 Chương 4: Phụ lục Trang 19 TÀI LIỆU THAM KHẢO Datasheet 74LS154, 2BS688 Giáo trình vi xử lý, Phạm Quang Trí, Trường ĐHCN TP Hồ Chí Minh Họ vi điều khiển 8051, Tống Văn On, Microcontroller, Nguyễn Tăng Cường, Phan Quốc Thắng Thí nghiệm vi xử lý, Phạm Quang Trí Trường ĐHCN TP Hồ Chí Minh