Cùng với sự phát triển của nền kinh tế và khoa học kỹ thuật trên con đường công nghiệp hóa, hiện đại hóa đất nước. Ngành điện tử nói chung đã có những bước tiến vượt bậc và mang lại những thành quả đáng kể. Trong đó vi xử lí là lĩnh vực đã thực sự mang lại những hiệu qủa chính xác và gọn nhẹ trong quá trình điều khiển, sản xuất. Để sử dụng triệt để bộ nhớ EPROM bên trong cũng như sự cần thiết có một chương trình hệ thống nào đó được nạp vào trong EPROM để thi hành khi vừa mở máy.
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 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 Khảo sát sơ đồ chân 8951 chức chân: 2.1 Sơ đồ chân 8951: 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 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 P3.0 P3.1 P3.2 P3.3 P3.4 RXT TXD INT0\ INT1\ T0 P3.5 T1 P3.6 WR\ P3.7 RD\ Chức chuyển đổi Ngõ vào liệu nối tiếp Ngõ xuất liệu nối tiếp Ngõ vào ngắt cứng thứ Ngõ vào ngắt cứng thứ Ngõ vào củaTIMER/COUNTER thứ Ngõ vào củaTIMER/COUNTER thứ Tín hiệu ghi liệu lên nhớ 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, 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 FFFF Code Memory 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 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 Bản đồ nhớ Data Chip sau: 7F FF F0 F7 F6 F5 F4 F3 F2 F1 F0 B RAM ña duïng E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC D0 D7 D6 D5 D4 D D2 D1 D0 PSW 30 B8 - - - BC B BA B9 B8 IP B 2F 7F 7E 7D 7C 7B 7A 79 78 2E 77 76 75 74 73 72 71 70 B0 B7 B6 B5 B4 B3 B2 B1 B0 P.3 2D 6F 6E 6D 6C 6B 6A 69 68 2C 67 66 65 64 63 62 61 60 A8 AF AC AB AA A9 A8 IE 2B 5F 5E 5D 5C 5B 5A 59 58 2A 57 56 55 54 53 52 51 50 A0 A7 A6 A5 A4 A3 A2 A1 A0 P2 29 4F 4E 4D 4C 4B 4A 49 48 28 47 46 45 44 43 42 41 40 99 không địa hoaù bit SBUF 27 3F 3E 3D 3C 3B 3A 39 38 98 9F 9E 9D 9C 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 khoâng địa hoá bit TH1 22 17 16 15 14 13 12 11 10 8C không địa hoaù bit TH0 21 0F 0E 0D 0C 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 Bank 89 không địa hoá bit TMOD 18 88 8F 8E 8D 8C 8B 8A 89 88 TCON 17 Bank 87 không địa hoá bit PCON 10 0F Bank 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 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 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 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 nhö 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): 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 Vpp=12 Vpp=5 v v AT8951 XXXX YYWW AT8951 XXXX-5 YYWW Ở loại IC mà em lập trình 12v Giải thuật lập trình: Khởi tạo 8255 Trỏ địa đến vùng nhớ cần nạp Xuất liệu bus liệu Xuất tín hiệu điều khiển Nâng điện áp Vpp lên 12v Tạo xung lập trình ALE/PROG Kết thúc Chú ý: Chu kỳ viết 1byte không 1,5ms 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 L ƯU ĐỒ CHƯƠNG TRÌNH ĐỌC MÃ DỮ LIỆU BEGIN Khởi tạo 8255 1-2 PROG=L;V P 2.6 =L;P pp Điều khiển 2.7 =L;P 3.6 =5V =H;P 3.7 =H Chuyển địa bắt đầu kết thúc EPROM vào ô nhớ Xuất địa cần đọc EPROM Nhận liệu từ EPROM Giải mã địa liệu Hiển thị Lcall Key No Yes Tăng địa đọc EPROM So sánh với địa cuối Yes Hiển thị END No L ƯU ĐỒ CHƯƠNG TRÌNH NẠP EPROM BEGIN Khởi tạo 8255 1-2 Điều khiển V pp =5V, PROG=H 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 P 2.6 =L;P Điều khiển =H;P 3.6 =H;P 2.7 Tạo xung L vaø V pp 3.7 =H =12V Delay 100us Điều khiển PROG=H,V pp =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 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 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 ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x ;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; PC2=H mov a,#0ch ;P3.7=PC3=H P2.7=PC1=L; P3.6= Phuï luïc 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 ;cat tam byte E_A_L vao o nho 12h inc dptr movx a,@dptr 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 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 rd5: lcall key ke ;goi chtr quet phim cho nhan phim de doc byte Phuï luïc 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 sjmp $ rd1: inc 10h ;ngung ;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 anl a,#0fh mov dpl,a movx a,@dptr mov 20h,a ;xu li so thu nhat Phuï luïc 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 Phuï luïc mov 24h,#00 mov 25h,#00 ret org 52d5h display: mov r1,#80h ;tu dieu khien 8279 chong nhap nhay mov r0,#20h ;quan li dia chi ma hien thi dis1: mov dptr,#dk mov a,r1 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: ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x ;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 Phuï luïc 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 ;cat tam byte E_A_H vao o nho 1Ah inc dptr movx a,@dptr 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 movx @dptr,a ;chuyen byte B_A_E_H vao dph Phuï luïc ;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 ;delay wr1: 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 ... tiếp kit vi điều khiển với hệ thống ứng dụng bên ngoài, vi mạch 8255, địa port, ghi điều khiển sau: 5255-1 : Địa port A : 8000H : Địa port B : 8001H : Địa port C : 8002H : Địa ghi từ điều khiển. .. 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: ... chọn sau: A0 =0 : 8279 xem liệu từ vi điều khiển gởi đến liệu để hiển thị A0 =1 : 8279 xem liệu từ vi điều khiển gởi đến liệu lệnh điều khiển 8279 Các lệnh điều khiển 8279: Keyboard/ Display Mode