Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 69 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
69
Dung lượng
315,21 KB
Nội dung
Khảo sát vi điều khiển 8951 I Đặt vấn đề: Cùng với phát triển kinh tế khoa học kỹ thuật đường công nghiệp hóa, đại hóa đất nước Ngành điện tử nói chung có bước tiến vượt bậc mang lại thành đáng kể Trong vi xử lí lónh vực thực mang lại hiệu qủa xác gọn nhẹ trình điều khiển, sản xuất Để sử dụng triệt để nhớ EPROM bên cần thiết có chương trình hệ thống nạp vào EPROM để thi hành vừa mở máy II Mục đích yêu cầu: Mục đích: Thực mạch nạp EPROM cho vi điều khiển để sử dụng hiệu nhớ EPROM Viết chương trình hệ thống nạp vào máy Yêu cầu: Mạch hoạt động xác, nạp đọc phải nạp liệu cần nạp hay đọc, đồng thời xoá phải xoá toàn vùng nhớ Mạch gọn nhẹ, dễ sử dụng, dễ kiểm soát vận hành Trong thời gian giới hạn tuần kiến thức nhiều hạn chế nên đề tài: “ MẠCH GHI ĐỌC EPROM CHO VI ĐIỀU KHIỂN 8951” em thực chắn có sai sót, mong thông cảm, đóng góp thầy, cô bạn tham khảo để đề tài hoàn thiện mang lại hiệu thiết thực thực tế I Cấu tạo vi điều khiển họ MSC-51: Giới thiệu cấu trúc phần cứng họ MSC-51 (8951): Đặc điểm chức hoạt động IC họ MSC-51 hoàn toàn tương tự Ở giới thiệu IC 8951 họ IC vi điều khiển hãng Intel Mỹ sản xuất Chúng có đặc điểm chung sau: Các đặc điểm 8951 tóm tắt sau: • KB EPROM bên • 128 Byte RAM nội • Port xuất /nhập I/O bit • Giao tiếp nối tiếp nguyenvanbientbd47@gmail.com Khảo sát vi điều khiển 8951 • 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 • 4s cho hoạt động nhân chia nguyenvanbientbd47@gmail.com Khảo sát vi điều khiển 8951 Khảo sát sơ đồ chân 8951 chức chân: 2.1 Sơ đồ chân 8951: U2 39 38 37 36 35 34 33 32 19 18 31 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 RST 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/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD PSEN ALE/PROG 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 29 30 EA/VPP AT89C51 Sơ đồ chân IC 8951 2.2 Chức chân 8951 8951 có tất 40 chân có chức đường xuất nhập Trong có 24 chân có tác dụng kép (có nghóa chân có chức năng), đường hoạt động đường xuất nhập đường điều khiển thành phần bus liệu bus đòa a.Các Port: Port 0: Port port có chức chân 32 - 39 8951 Trong thiết kế cỡ nhỏ không dùng nhớ mở rộng có chức đường I/O Đối với thiết kế cỡ lớn có nhớ mở rộng, kết hợp bus đòa bus liệu Port 1: Port port I/O chân 1-8 Các chân ký hiệu P1.0, P1.1, p1.2, p1.7 dùng cho giao tiếp với thiết bò cần Port chức khác, chúng dùng cho giao tiếp với thiết bò bên Port 2: Port port có tác dụng kép chân 21- 28 dùng đường xuất nhập byte cao bus đòa thiết bò dùng nhớ mở rộng nguyenvanbientbd47@gmail.com Khảo sát vi điều khiển 8951 Port 3: Port port có tác dụng kép chân 10-17 Các chân port có nhiều chức năng, công dụng chuyển đổi có liên hệ với đặc tính đặc biệt 8951 bảng sau: Bit Tên Chức chuyển đổi P3.0 RXT Ngõ vào liệu nối tiếp P3.1 TXD Ngõ xuất liệu nối tiếp P3.2 INT0\ Ngõ vào ngắt cứng thứ P3.3 INT1\ Ngõ vào ngắt cứng thứ P3.4 T0 Ngõ vào củaTIMER/COUNTER thứ P3.5 T1 Ngõ vào củaTIMER/COUNTER thứ P3.6 WR\ Tín hiệu ghi liệu lên nhớ P3.7 RD\ Tín hiệu đọc nhớ liệu b.Các ngõ tín hiệu điều khiển: Ngõ tín hiệu PSEN (Program store enable): PSEN tín hiệu ngõ chân 29 có tác dụng cho phép đọc nhớ chương trình mở rộng thường nối đến chân OE\ (output enable) Eprom cho phép đọc byte mã lệnh PSEN mức thấp thời gian Microcontroller 8951 lấy lệnh Các mã lệnh chương trình đọc từ Eprom qua bus liệu chốt vào ghi lệnh bên 8951 để giải mã lệnh Khi 8951 thi hành chương trình EPROM nội PSEN mức logic Ngõ tín hiệu điều khiển ALE (Address Latch Enable) Khi 8951 truy xuất nhớ bên ngoài, port có chức bus đòa bus liệu phải tách đường liệu đòa Tín hiệu ALE chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp đường đòa liệu kết nối chúng với IC chốt Tín hiệu chân ALE xung khoảng thời gian port đóng vai trò đòa thấp nên chốt đòa hoàn toàn tự động 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 Chân ALE dùng làm ngõ vào xung lập trình cho EPROM 8951 Ngõ tín hiệu EA\(External Access): Tín hiệu vào EA\ chân 31 thường mắc lên mức mức Nếu mức 1, 8951 thi hành chương trình từ EPROM nội khoảng đòa thấp Kbyte Nếu mức 0, nguyenvanbientbd47@gmail.com Khảo sát vi điều khiển 8951 8951 thi hành chương trình từ nhớ mở rộng Chân EA\ lấy làm chân cấp nguồn 12V lập trình cho Eprom 8951 Ngõ tín hiệu RST (Reset) : Ngõ vào RST chân ngõ vào Reset 8951 Khi ngõ vào tín hiệu đưa lên cao chu kỳ máy, ghi bên nạp giá trò thích hợp để khởi động hệ thống Khi cấp điện mạch tự động Reset Các ngõ vào dao động X1,X2: Bộ dao động được tích hợp bên 8951, sử dụng 8951 người thiết kế 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 8951 12Mhz Chân 40 (Vcc) nối lên nguồn 5V Cấu trúc bên vi điều khiển: 3.1 Tổ chức nhớ: FFFF FF Code Memory FFFF Enable via PSEN 00 On -Chip Memory Data Memory Enable via RD&WR 0000 0000 External Memory Bảng tóm tắt vùng nhớ 8951 Bộ nhớ 8951 bao gồm EPROM RAM RAM 8951 bao gồm nhiều thành phần: phần lưu trữ đa dụng, phần lưu trữ đòa hóa bit, bank ghi ghi chức đặc biệt nguyenvanbientbd47@gmail.com Khảo sát vi điều khiển 8951 8951 có nhớ theo cấu trúc Harvard: có vùng nhớ riêng biệt cho chương trình liệu Chương trình liệu chứa bên 8951 8951 kết nối với 64K byte nhớ chương trình 64K byte liệu nguyenvanbientbd47@gmail.com Khảo sát vi điều khiển 8951 Bản đồ nhớ Data Chip sau: 7F FF F0 F7 F6 F5 F4 F3 F2 F1 F0 B E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC RAM đa dụng D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW 30 2F 7F 2E 77 76 75 74 73 72 71 70 2D 6F 2C 7E 6E 7D 7C 6D 6C 7B 6B 5E 5D 5C 5B 4E 4D 4C 4B - BC BB BA B9 B8 IP B0 B7 B6 B5 B4 B3 B2 B1 AC AB AA A9 A8 IE A8 AF 5A 59 58 A0 A7 A6 A5 A4 A3 A2 A1 99 không đòa hoá bit 27 3F 98 9F 3D 3C 3B A0 P2 4A 49 48 28 47 46 45 44 43 42 41 40 3E B0 P.3 6A 69 68 2A 57 56 55 54 53 52 51 50 29 4F - 7A 79 78 67 66 65 64 63 62 61 60 2B 5F B8 - 3A 39 38 9E 9D 9C SBUF 9B 9A 99 98 SCON 26 37 36 35 34 33 32 31 30 25 2F 2E 2D 2C 2B 2A 29 28 90 97 96 95 94 93 92 91 90 P1 24 27 26 25 24 23 22 21 20 23 1F 1E 1D 1C 1B 1A 19 18 8D không đòa hoá bit TH1 8C không đòa hoá bit TH0 0B 0A 09 08 8B không đòa hoá bit TL1 20 07 06 05 04 03 02 01 00 8A không đòa hoá bit TL0 1F 89 không đòa hoá bit TMOD 22 17 16 15 14 13 12 11 21 0F 0E 0D 0C 10 Bank 18 88 8F 8E 8D 8C 8B 8A 89 88 TCON 17 Bank 87 không đòa hoá bit PCON 83 không đòa hoá bit DPH 08 82 không đòa hoá bit DPL 07 Bank ghi 81 không đòa hoá bit SP 00 (mặc đònh cho R0 -R7) 88 87 86 85 84 83 82 81 80 P0 10 0F Bank Hai đặc tính cần ý là: • Các ghi port xuất nhập đònh vò (xác đònh) nhớ truy xuất trực tiếp giống đòa nhớ khác • Ngăn xếp bên Ram nội nhỏ so với Ram ngoại Microcontroller khác nguyenvanbientbd47@gmail.com Khảo sát vi điều khiển 8951 RAM bên 8951 phân chia sau: •Các bank ghi có đòa từ 00H đến 1FH •RAM đòa hóa bit có đòa từ 20H đến 2FH •RAM đa dụng từ 30H đến 7FH •Các ghi chức đặc biệt từ 80H đến FFH RAM đa dụng: Mặc dù hình vẽ cho thấy 80 byte đa dụng chiếm đòa từ 30H đến 7FH, 32 byte từ 00H đến 1FH dùng với mục đích tương tự (mặc dù đòa có mục đích khác) Mọi đòa vùng RAM đa dụng truy xuất tự dùng kiểu đòa trực tiếp gián tiếp RAM truy xuất bit: 8951 chứa 210 bit đòa hóa, có 128 bit có chứa byte chứa đòa từ 20H đến 2FH bit lại chứa nhóm ghi có chức đặc biệt Ý tưởng truy xuất bit phần mềm đăëc tính mạnh microcontroller xử lý chung Các bit đặt, xóa, AND, OR, … , với lệnh đơn Đa số microcontroller xử lý đòi hỏi chuỗi lệnh đọc-sửa- ghi để đạt mục đích tương tự Ngoài port truy xuất bit 128 bit có chứa byte có đòa từ 00H -1FH truy xuất byte bit phụ thuộc vào lệnh dùng Các bank ghi : 32 byte thấp nhớ nội dành cho bank ghi Bộ lệnh 8951 hổ trợ ghi có tên R0 -R7 theo mặc đònh sau reset hệ thống, ghi có đòa từ 00H - 07H Các lệnh dùng ghi RO - R7 ngắn nhanh so với lệnh có chức tương ứng dùng kiểu đòa trực tiếp Các liệu dùng thường xuyên nên dùng ghi Do có bank ghi nên thời điểm có bank ghi truy xuất ghi RO - R7 đểà chuyển đổi việc truy xuất bank ghi ta phải thay đổi bit chọn bank ghi trạng thái nguyenvanbientbd47@gmail.com Khảo sát vi điều khiển 8951 3.2 Các ghi có chức đặc biệt: Các ghi nội 8951 truy xuất ngầm đònh lệnh Các ghi 8951 đònh dạng phần RAM chip ghi có đòa (ngoại trừ ghi đếm chương trình ghi lệnh ghi bò tác động trực tiếp) Cũng R0 đến R7, 8951 có 21 ghi có chức đặc biệt (SFR: Special Function Register) vùng RAM nội từ đòa 80H - FFH Chú ý: tất 128 đòa từ 80H đến FFH không đònh nghóa, có 21 ghi có chức đặc biệt đònh nghóa sẵn đòa Ngoại trừ ghi A truy xuất ngầm nói, đa số ghi có chức điệt biệt SFR đòa hóa bit byte Thanh ghi 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: 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 00H07H 01=Bank 1; address 08H0FH 10=Bank 2; address 10H17H 11=Bank 3; address 18H1FH 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 Cờ Carry CY (Carry Flag): Cờ nhớ có tác dụng kép Thông thường dùng cho lệnh toán học: C=1 phép toán cộng có tràn phép trừ có mượn ngược lại C=0 phép toán cộng không tràn phép trừ mượn Cờ Carry phụ AC (Auxiliary Carry Flag): nguyenvanbientbd47@gmail.com Khảo sát vi điều khiển 8951 Khi cộng giá trò BCD (Binary Code Decimal), cờ nhớ phụ AC set kết bit thấp nằm phạm vi điều khiển 0AH - 0FH Ngược lại AC=0 Cờ (Flag 0): Cờ (F0) bit cờ đa dụng dùng cho ứng dụng người dùng Những bit chọn bank ghi truy xuất: 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 Tùy theo RS1, RS0 = 00, 01, 10, 11 chọn Bank tích cực tương ứng Bank 0, Bank1, Bank2, Bank3 RS1 0 1 RS0 1 BANK Cờ tràn OV (Over Flag): Cờ tràn set sau hoạt động cộng trừ có tràn toán học Khi số có dấu cộng trừ với nhau, phần mềm kiểm tra bit để xác đònh xem kết có nằm tầm xác đònh không Khi số dấu cộng bit OV bỏ qua Các kết lớn +127 nhỏ -128 bit OV=1 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 Thanh ghi B : Thanh ghi B đòa F0H dùng với ghi A cho phép toán nhân chia Lệnh MUL AB nhận giá trò không dấu bit hai ghi A B, trả kết 16 bit A (byte cao) B(byte thấp) Lệnh DIV AB lấy A chia B, kết nguyên đặt vào A, số dư đặt vào B Thanh ghi B dùng ghi đệm trung gian đa mục đích Nó bit đònh vò thông qua đòa từ F0H - F7H nguyenvanbientbd47@gmail.com Hướng phát triển đề tài Khi nạp liệu cho vi điều khiển chương trình nạp phải nạp byte, đồng thời phải chạy chương trình xóa trước lập trình cho EPROM nội Giản đồ thời gian lập trình cho EPROM nội: VI Chương trình xoá EPROM nội: Chương trình xoá phải thực trước lập trình Khi xoá xoá toàn vùng nhớ bên Giải thuật lập trình: •Khởi tạo 8255 •Xuất tín hiệu điều khiển •Điều khiển điện áp Vpp=12v •Điều khiển xung ALE /PROG •Kết thúc Chú ý: Để xoá nội dung bên đòi hỏi xung lập trình PROG\ phải mức thấp khoảng 10ms Hướng phát triển đề tài L ƯU ĐỒCHƯƠNG TRÌNH XOÁ EPROM BEGIN Khởi tạo 8255 1-2 Xuất tín hiệu điều khiển V pp=12V Tạo xung L Delay 100ms Tạo xung H END Hướng phát triển đề tài L ƯU ĐỒCHƯƠNG TRÌNH NẠP EPROM BEGIN Khởi tạo 8255 1-2 Điều khiển V =5V, PROG=H pp Chuyển đòa bắt đầu viết cho EPROM vào ô nhớ Chuyển đòa đầu liệu kết thúc liệu vào ô nhớ Gọi đòa cần nạp EPROM 8255 Giải mã hiển thò đòa liệu cần nạp Điều khiển P 2.6=L;P 2.7=H;P 3.6=H;P 3.7=H Tạo xung L Vpp=12V Delay 100us Điều khiển PROG=H,Vpp=5V Tăng đòa cần viết cho EPROM Tăng đòa vùng liệu cần nạp So sánh cần nạp với đòa cuối vùng liệu No Yes Hiển thò END END Hướng phát triển đề tài THI CÔNG MẠCH Được giúp đỡ thầy Nguyễn Đình Phú, thời gian thi công em thực số phần trải qua bước sau: •Tiến hành làm mạch in (ứng dụng phần mềm vẽ mạch in EAGLE) •Kiểm tra mạch in •Ráp hàn linh kiện •Kết nối board mạch với kit vi điều khiển thông qua connector •Kiểm tra mạch •Nạp chương trình Hướng phát triển đề tài HƯỚNG PHÁT TRIỂN ĐỀ TÀI Sau thời gian thực em thấy đề tài nhiều hạn chế khả sử dụng rộng rãi thực tế Nếu có điều kiện đề tài nên phát triển theo hướng sau đây: Mạch mở rộng ghi đọc cho loại vi điều khiển thuộc họ AT89 như: AT89C51, AT89VL51, AT89C52, AT89VL52, AT89C1051, AT89C2051 Mạch ghi đọc cho loại vi điều khiển nhỏ (loại 20 chân) Nếu đơn ghi đọc kết nối trực tiếp vi điều khiển với vi điều khiển khác mà không cần thông qua 8255 để mạch có tính kinh tế Nếu không dùng kit vi điều khiển dùng card nạp từ máy vi tính thông qua cổng COM Khi ngôn ngữ lập trình ngôn ngữ Pascal, ngôn ngữ C… Phụ lục KẾT LUẬN Sau tuần làm việc khẩn trương với nhiệt tình thầy hướng dẫn Nguyễn Đình Phú Đề tài: “MẠCH GHI ĐỌC EPROM CHO VI ĐIỀU KHIỂN 8951” hoàn thành thời gian qui đònh Đây đề tài mang tính tổng hợp, kết hợp kỹ thuật điện tử kỹ thuật lập trình Với tâm nỗ lực không ngừng, tập luận văn giúp cho em bước đầu làm quen với đề tài khoa học em thật tích lũy số kiến thức vi điều khiển, thiết kế mạch kỹ thuật lập trình Mặt dù thời gian hạn hẹp, tài liệu tham khảo ít, có nhiều vấn đề nảy sinh trình thiết kế phần mềm, em cố gắng tận tâm giúp đỡ thầy hướng dẫn nên đạt yêu cầu đặt Qua trình thực luận văn, em tự đánh giá phần hạn chế nhiều bổ xung kiến thức hạn hẹp thời gian học trường môn kỹ thuật vi xử lí Em xin chân thành cảm ơn giúp đỡ tận tình, qúy báu thầy - cô trường thầy hướng dẫn, tạo nhiều điều kiện giúp chúng em hoàn thành tốt nhiệm vụ giao thời gian qui đònh Một lần nữa, em mong đóng góp ý kiến q thầy - cô với bạn sinh viên tham khảo để tập luận văn hoàn hảo Thành Phố Hồ Chí Minh Ngày 28-02-2000 Sinh viên thực BÙI VĂN TRÍ Phụ lục PHỤ LỤC Nội dung chương trình porta1 equ 8000h ;quan li dia chi thap a7-a0 portb1 equ 8001h ;quan li dia chi cao a11-a8 portc1 equ 8002h cw1 equ 8003h porta2 equ 0a000h portb2 equ 0a001h portc2 equ 0a002h cw2 equ 0a003h ht equ 0c000h dk equ 0c001h ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh kiem tra - hien thi org 5200h mov dptr,#cw1 ; khoi tao 8255 mov a,#80h movx @dptr,a mov dptr,#cw2 mov a,#90h movx @dptr,a mov dptr,#portc2 ;pc0=prog\=H mov a,#03h ;pc1=Vpp=H movx @dptr,a mov dptr,#portc1 ;P2.6=PC0=L; P2.7=PC1=L; P3.6= PC2=H mov a,#0ch ;P3.7=PC3=H movx @dptr,a ;chuyen dia chi bat dau doc va dia chi ket thuc vao cac o nho ben mov dptr,#4f00h ;nap dia chi luu Begin_Addr can doc movx a,@dptr mov 10h,a ;cat tam byte B_A_L vao o nho 10h inc dptr movx a,@dptr mov 11h,a ;cat tam byte B_A_H vao o nho 11h inc dptr movx a,@dptr mov 12h,a inc dptr movx a,@dptr ;cat tam byte E_A_L vao o nho 12h Phụ lục mov 13h,a ;cat tam byte E_A_H vao o nho 13h ;goi dia chi can doc 8255 de dieu khien Addr cua EPROM 8951 rd2: mov dptr,#porta1 mov a,10h ;chuyen byte B_A_L vao dpl movx @dptr,a mov dptr,#portb1 mov a,#11h ;chuyen byte B_A_H vao dph movx @dptr,a mov dptr,#porta2 rd5: movx a,@dptr ;xuat data ghi a mov 14h,a ;cat byte data vua doc vao o nho 14h lcall decode ;goi chtr giai ma hien thi lcall display ;goi chtr hien thi lcall key ;goi chtr quet phim cho nhan phim de doc byte ke cjne a,#0ffh,rd4 sjmp rd5 ;quay lai cho rd4: mov a,11h ;chuyen dia chi byte H vao a de so sanh cjne a,13h,rd1 ;so sanh dia chi byte H neu chua bang thi tang len mov a,10h ;chuyen dia chi byte L vao a de so sanh cjne a,12h,rd1 ;so sanh dia chi byte L neu chua bang thi tang len ;hien thi chu END de bao ket thuc mov 25h,#79h ;ma chu E mov 26h,#37h ;ma chu N mov 27h,#5eh ;ma chu d lcall display rd1: sjmp $ ;ngung inc 10h ;tang B_A_L len mov a,10h ;kiem tra xem co bang hay khong cjne a,#00,rd2 ;nhay ve vi chua bang inc 11h ;tang B_A_H len sjmp rd2 ;chuong trinh giai ma hien thi org 5280h decode: 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 Phụ lục 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 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 mov 24h,#00 mov 25h,#00 ret org 52d5h display: dis1: mov r1,#80h ;tu dieu khien 8279 chong nhap nhay mov r0,#20h ;quan li dia chi ma hien thi mov dptr,#dk mov a,r1 Phụ lục movx @dptr,a mov dptr,#ht mov a,@r0 movx @dptr,a inc r1 inc r0 mov a,r0 cjne a,#28h,dis1 ret org 0223h key: ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh nap EPROM 8951 co hien thi dia chi va du lieu org 5300h mov dptr,#cw1 ; khoi tao 8255 mov a,#80h movx @dptr,a mov dptr,#cw2 mov a,#80h movx @dptr,a ;dieu khien Vpp = 5V mov dptr,#portc2 ;pc0=prog\=H mov a,#00000011b ;pc1=Vpp=H=5v movx @dptr,a ;chuyen dia chi bat dau Write cho EPROM vao cac o nho noi ;dia chi bat dau DATA va dia chi ket thuc DATA vao cac o nho ben mov dptr,#4f10h ;nap dia chi luu Begin_Addr can doc movx a,@dptr mov 16h,a ;cat tam byte B_A_E_L vao o nho 16h inc dptr movx a,@dptr mov 17h,a ;cat tam byte B_A_E_H vao o nho 17h inc dptr movx a,@dptr mov 18h,a ;cat tam byte B_D_L vao o nho 18h inc dptr movx a,@dptr mov 19h,a ;cat tam byte B_D_H vao o nho 19h inc dptr movx a,@dptr mov 1Ah,a inc dptr movx a,@dptr ;cat tam byte E_A_H vao o nho 1Ah Phụ lục mov 1Bh,a ;cat tam byte E_A_H vao o nho 1Bh ;goi ADDR can write 8255 de dieu khien Addr cua EPROM 8951 wr4: mov dptr,#porta1 mov a,16h ;chuyen byte B_A_E_L vao dpl movx @dptr,a mov dptr,#portb1 mov a,#17h ;chuyen byte B_A_E_H vao dph movx @dptr,a ;goi DATA data bus de nap cho EPROM mov dpl,18h ;lay Addr_L quan li vung data mov dph,19h ;lay Addr_H quan li vung data movx a,@dptr ;lay DATA can nap tu RAM ngoai mov dptr,#porta2 ;nap dia chi dieu khien DATA vao dptr movx @dptr,a ;xuat DATA bus data ;chuyen dia chi va data can nap de hien thi mov 10h,16h ;chuyen dia chi cua EPROM mov 11h,17h mov 14h,a ;cat tam vao o nho 14H de giai ma hien thi lcall decode ;goi chtr giai ma lcall display ;goi chtr hien thi ;tao xung Vpp va PROG\ mov dptr,#portc1 ;P2.6=PC0=L; P2.7=PC1=H; P3.6= PC2=H mov a,#00001110b ;P3.7=PC3=H movx @dptr,a mov dptr,#portc2 ;pc0=prog\=H mov a,#01h ;pc1=Vpp=L tuong duong 12V movx @dptr,a ;pc0=prog\=L mov a,#00h ;pc1=Vpp=L movx @dptr,a mov 1fh,#10 wr1: ;delay djnz 1fh,wr1 mov a,#01h ;pc1=Vpp=L tuong duong 12V movx @dptr,a ;pc0=prog\=H mov a,#03h ;pc1=Vpp=H tuong duong 5V movx @dptr,a ;pc0=prog\=H ;ket thuc doan chtr tao xung nap cham dut qua trinh nap BYTE inc 16h mov a,16h ;tang ADDR_L cua EPROM len Phụ lục cjne a,#00h,wr2 wr2: inc 17h ;tang ADDR_H cua EPROM len byte L ve 00h mov a,19h ;chuyen dia chi byte H vao a de so sanh cjne a,1bh,wr3 ;so sanh dia chi byte H neu chua bang thi tang len mov a,18h ;chuyen dia chi byte L vao a de so sanh cjne a,1ah,wr3 ;so sanh dia chi byte L neu chua bang thi tang len ;hien thi chu END de bao ket thuc mov 25h,#79h ;ma chu E mov 26h,#37h ;ma chu N mov 27h,#5eh ;ma chu d lcall display wr3: sjmp $ ;ngung inc 18h ;tang B_A_L len mov a,18h ;kiem tra xem co bang hay khong cjne a,#00,wr4 ;nhay ve vi chua bang inc 19h ;tang B_A_H len sjmp wr4 ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh xoa eprom org 5400h ; dia chi xoa mov dptr ,# cw1 ; tu dieu khien 8255-1 mov a, #80h ; A,B,C: xuat movx @dptr,a mov dptr, #cw2 ; tu dieu khien 8255-2 mov a ,#80h ; A,B,C:xuat movx @dptr ,a ;xuat cac tin hieu dieu khien xoa eprom mov dptr,#portc1 mov a,#01h ;p2.6=h , p2.7=p3.6=p3.7=l movx @dptr,a mov dptr,#portc2 ;tao xung prog\ =h movx @dptr ,a mov a,#00h movx @dptr ,a ;toa xung delay 10ms push #06h push #07h mov r6,#28h ;tao xung prog\ =l Phụ lục y2: mov r7,#FFh y1: djnz r7 ,y1 ;nhay neu r7 chua bang ffh djnz r6 ,y2 ;nhay neu r6 chua bang 28h pop #07h pop #06h mov a,#01h movx @dptr ,a ;ket thuc hien thi chu END mov 25h ,79h ;ma chu E mov 26h ,37h ;ma chu N mov 27h ,5eh ;ma chu D lcall display ; goi chuong trinh hien thi sjmp $ ; ngung end Mục lục Trang Chương I : Dẫn nhập I Đặt vấn đề: II Mục đích yêu cầu: 1 Mục đích: .1 Yêu cầu: I Cấu tạo vi điều khiển họ MSC-51: Giới thiệu cấu trúc phần cứng họ MSC-51 (8951): 2 Khảo sát sơ đồ chân 8951 chức chân: 3 Cấu trúc bên vi điều khiển: .6 II Tóm tắt tập lệnh 8951 : 21 Các mode đònh vò (Addressing Mode) : .22 Các kiểu lệnh (Instruction Types): 27 III Chương trình ngôn ngữ Assembly 8951: 36 Giới thiệu : 36 Hoạt động trình biên dòch (Assembler Operation) .37 Sự đặt chương trình ngôn ngữ Assmebly: .39 Sự tính toán biểu thức Assemble Time (Assemble Time Expression Evaluation):43 Các thò biên dòch: 46 I Cấu trúc phần cứng IC 8279 .52 II Cấu trúc phần mềm 8279 53 Keyboard/ Display Mode Set: 53 Program Clock: 54 Read FIFO / sensor RAM: 54 Read Display RAM: .55 End Interrupt: 55 Lệnh Write Display Ram: 55 Lệnh Clear: 56 I Sơ đồ khối kit vi điều khiển 8951: 57 Đơn vò xử lý trung tâm: .57 Luận văn tốt nghiệp Bộ nhớ: .57 Thi công mạch 62 Hướng phát triển đề tài 63 Kết luận 64 Tài liệu tham khảo Phụ lục 65 Luận văn tốt nghiệp ... trình đọc từ Eprom qua bus liệu chốt vào ghi lệnh bên 8951 để giải mã lệnh Khi 8951 thi hành chương trình EPROM nội PSEN mức logic Ngõ tín hiệu điều khiển ALE (Address Latch Enable) Khi 8951 truy... hiệu clock cho phần khác hệ thống Chân ALE dùng làm ngõ vào xung lập trình cho EPROM 8951 Ngõ tín hiệu EA(External Access): Tín hiệu vào EA chân 31 thường mắc lên mức mức Nếu mức 1, 8951 thi... nguyenvanbientbd47@gmail.com Khảo sát vi điều khiển 8951 8951 có nhớ theo cấu trúc Harvard: có vùng nhớ riêng biệt cho chương trình liệu Chương trình liệu chứa bên 8951 8951 kết nối với 64K byte nhớ chương