Bài tập lớn Thiết kế mạch hiển thị chữ chạy dùng vi điều khiển 89C51

17 247 1
Bài tập lớn Thiết kế mạch hiển thị chữ chạy dùng vi điều khiển 89C51

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Lời mở đầu Ngày nay, ứng dụng vi điều khiển sâu vào đời sống sinh hoạt sản xuất người, phần tất yếu thiếu đời sông đại Thế kỷ 21 xem kỷ khoa học cơng nghệ, kỷ mà máy móc thiết kế lập trình cách tự động để thay hoạt động người sản xuất, để phục vụ công việc sinh hoạt Trong sống mang tính tự động hố cao mạch vi xử lý công cụ đắc lực, quan trọng , hỗ trợ cho người thực nhu cầu ngày cao hồn thiện Một số ứng dụng rộng rãi vi xử lý ngành cơng nghiệp quảng cáo Hiện mơ hình quảng cáo cách tạo chữ chạy phổ biến Vì vậy, qua q trình học tập mơn học vi điều khiển, với hướng dẫn giáo viên, chọn nội dung tập: “Thiết kế mạch hiển thị chữ chạy dùng vi điều khiển 89C51” Nội dung tập gồm phần: Phần I: Giới thiệu vi điều khiển 89C51 Phần II: Phần mềm cho họ vi điều khiển MCS-51 Phần III: Sơ đồ mạch chương trình Do điều kiện tiếp xúc với mơn học khơng nhiều, kiến thức hạn chế nên tập chúng tơi nhiều thiếu sót Chúng tơi mong góp ý thầy giáo bạn I Giới thiệu vi điều khiển 80C51 Những vấn đề chung: Vi điều khiển 8051 thành viên họ MCS-51 lõi cho tất vi điều khiển thuộc họ MCS-51 sau Đặc trưng lõi 8051 là: -CPU bit tối ưu cho ứng dụng điều khiển -Khả sử lý bit -Không gian địa nhớ chương trình 64K -Khơng gian địa nhớ liệu 64K -Có 4Kb nhớ chương trình chip -Có 128 byte RAM liệu chip -Có 32 đường vào/ra định địa riêng hướng -Có Timer/Counter 16 bit -Cấu trúc ngắt nguồn/ vecto với mức ưu tiên -Bộ dao động on-chip Cấu trúc lõi 8051 sau: 1.1 Tổ chức nhớ: Tất vi điều khiển họ MCS-51 có khơng gian địa riêng cho nhớ chương trình nhớ liệu Việc tách riêng nhớ chương trình nhớ liệu cho phép nhớ liệu truy cập địa bit truy cập CPU bit Ngoài địa nhớ 16 bit tạo thông qua ghi DPTR Bộ nhớ chương trình đọc mà khơng ghi Có thể có đến 64Kb nhớ chương trình Trong phiên ROM EPROM vi điều khiển dung lượng 4K, 8K, 16K thuộc vùng địa thấp cung cấp chip Trong phiên khơng chứa ROM tồn bộ nhớ chương trình bên ngồi chip Tín hiệu đọc nhớ PSEN Bộ nhớ liệu có địa tách biệt với nhớ chương trình Có đến 64Kb nhớ RAM ngồi định địa không gian nhớ liệu ngồi CPU tạo tín hiệu đọc ghi, RD WR, cần thiết cho trình truy nhập nhớ ngồi Có thể kết hợp nhớ chương trình ngồi nhớ kiệu ngồi cách sử dụng tín hiệu RD PSEN làm đầu vào cho mạch AND sử dụng đầu tín hiệu đọc nhớ kết hợp chương trình liệu 1.2 Các chế độ định địa chỉ: Các chế độ định địa tập lệnh MCS-51 gồm có: Định địa trực tiếp: Trong chế độ định địa trực tiếp, toán hạng rõ trường địa bit lệnh Chỉ có RAM liệu ghi chức đặc biệt (SFR) định địa trực tiếp Định địa gián tiếp: Lệnh rõ ghi mà nội dụng chứa địa tốn hạng Cả RAM ngồi định địa gián tiếp Thanh ghi địa cho địa bit R0 R1 băng ghi chọn, trỏ ngăn xếp Thanh ghi địa cho địa 16 bit ghi trỏ liệu 16 bit, DPTR 1.3 Các lệnh ghi: Các băng ghi, gồm ghi từ R0 đến R7, truy nhập lệnh chứa mã ghi bit với mã lệnh Các lệnh rõ ghi: vài lệnh rõ ghi cần truy nhập Ví dụ vài lệnh ln làm việc với chứa, trỏ liệu,…, khơng có byte địa cần để trỏ đến Bản thân mã lệnh sữ thực điều lệnh có chức truy nhập đến ghi Hằng số tức thời: giá trị số kết hợp lệnh Định địa chỉ số: có nhớ chương trình truy nhập theo cách này, đọc Chế độ định địa thay cho cách tìm kiếm bảng truyền thống Một ghi sở 16 bit (DPTR đếm chương trình) trỏ đến địa sở bảng, chứa lưu số phần tử bảng Địa phần tử bảng nhớ chương trình tạo cách cộng nội dung chứa với trỏ sở Một cách sử dụng khác chế độ định địa chỉ số lệnh nhảy, địa đích lệnh tính tốn cách cộng trỏ sở nội dụng chứa 2.Cấu trúc vi xử lý AT89C51 (8051): 2.1 Sơ đồ chân: Vi xử lý AT8951 có 40 chân có 32 chân dnhà cho cổng P0, P1, P2 P3 với cổng có chân Các chân lại dành cho nguồn Vcc, đất GND, chân giao động XTLA1 XTLA2, tái lập RST, cho phép chốt địa ALE, truy cập địa ngồi EA , cho phép cất chương trình PSEN 2.2 Các ghi chức đặc biệt : Các ghi chức đặc biệt (SFR) ghi đảm nhiệm chức khác chíp Chúng nằm RAM bên chíp chiếm vùng khơng gian nhớ 128 bytes định địa từ 80h đến FFh a) Thanh ghi tích luỹ (Acc): Đây ghi quan trọng chíp, dùng để lưu trử tốn hạng kết phép tính Thanh ghi Acc dài bist, có địa E0h SFR b) Thanh ghi B : Thanh ghi thường sử dụng thực phép toán nhân, chia Đối với lệnh khác, ghi B xem ghi đệm tạm thời Trong SFR ghi B dài bits có địa F0h c) Con trỏ ngăn xếp (SP): Thanh ghi dài bits, có địa SFR 81h, giá trị tăng tự động trước thực lệnh CALL, PUSH Ngăn xếp đặt nơi RAM chíp, sau khởi động lại ngăn xếp trỏ ngăn xếp mặc định trỏ tới địa khởi đầu 07h, ngăn xếp tạo 08h d) Con trỏ liệu (DPTR): Là ghi dài 16 bits, gồm hai ghi dài bit hợp lại ghi byte cao DPH ghi byte thấp DPL Con trỏ liệu sử dụng ghi 16 bits hai ghi bits độc lập Trong SFR ghi DPH có địa 83h, ghi DPL có địa 82h e) Từ trạng thái chương trình (PSW): Là ghi dài bits, có địa SFR D0h Thanh ghi PSW dùng để chứa thông tin trạng thái chương trình Mỗi bit PSW đảm nhiệm chức cụ thể Thanh ghi phép truy cập dạng mức bit f) Đệm liệu truyền nối tiếp (SBUF): Đệm liệu truyền nối tiếp gồm ghi, ghi đệm phát ghi đệm thu Khi liệu truyền tới SBUF, chuyển tới ghi đệm thu giữ để chế biến thành dạng truyền nối tiếp Khi liệu truyền từ SBUF chuyển từ ghi đệm thu Địa SBUF SFR 99h g) Thanh ghi thời gian sở : Trong chíp 8951 có hai đơi ghi TH0, TL0 TH1, TL1 Mỗi đôi ghi dài 16 bits dùng làm đếm khối “thời gian/bộ đếm” tương ứng Địa ghi SFR từ 8Ah đến 8Dh h) Thanh ghi điều khiển Mode “thời gian/bộ đếm” (TMOD): Trong chíp sử dụng kiểu “thời gian/bộ đếm”, điều khiển chức “thời gian” hay chức “bộ đếm” ghi TMOD Thanh ghi dài bits có địa 89h i) Thanh ghi điều khiển “thời gian/bộ đếm” (TCON): Tuy chíp hoạt động theo kiểu “thời gian” hay “bộ đếm”, kiểu lại có chêếđộ hoạt động, viêc chọn hoạt đọng chế độ thực ghi Trong SFR ghi TCON có đia 88h j) Thanh ghi điều khiển cổng nối tiếp (SCON): Thanh ghi giúp chíp thiết lập trạng thái điều khiển cổng thực chức truyền thông nối tiếp Thanh ghi có địa 98h k) Thanh ghi cho phép ngắt (IE): Là ghi dài byte, có địa A8h Chip có khả truy cập địa mức bit tới ghi IE Trong ghi bit EA cho phép chip làm việc chế độ ngắt, bit khác cho phép ngắt tương ứng khác hoạt động Khi bit có giá trị logic ngắt tương ứng bị cấm, bit có mức logic cho phép ngắt hoạt động II Phần mềm cho họ vi điều khiển MCS - 51 Bài tập sử dụng ngôn ngữ Assembly viết cho họ vi điều khiển MCS-51 CÊu tróc cđa hợp ngữ Một chơng trình hợp ngữ bao gồm chuỗi dòng lệnh hợp ngữ Một lệnh hợp ngữ có chứa từ gợi nhớ tuỳ theo lệnh mà sau có hai toán hạng Các toán hạng liệu cần đợc thao tác từ gợi nhớ lệnh CPU nói làm với liệu Cấu trúc lệnh hợp ngữ bao gồm trờng sau: [Nhãn:] [từ gợi nhớ] [Các toán hạng] [;Chú giải] Các trờng dấu ngoặc vuông tuỳ chọn dòng lệnh có chúng Các dấu ngoặc vuông không đợc viết vào Trờng nhãn cho phép chơng trình tham chiếu đến dòng lệnh tên Nó không đợc viết 31 ký tự trình dịch ASM-51, số ký tự trờng nhãn phụ thuộc vào trình dịch hợp ngữ mà ta sử dụng Từ gợi nhớ (lệnh) toán hạng trờng kết hợp với thực thi công việc thực tế chơng trình hoàn thiện nhiệm vụ mà chơng trình đợc viết cho chúng Trờng giải phải bắt đầu dấu chấm phẩy (;) Các giải bắt đầu đầu dòng phần lại dòng Hợp ngữ bỏ qua không dịch giải nhng ngời lập trình nên dùng chúng để mô tả chơng trình giúp cho chơng trình sáng sủa Tập lệnh mã ngữ hä bé vi ®iỊu khiĨn MCS - 51 TËp lƯnh Assembly họ MCS - 51 đợc chia thành nhóm lệnh số học, lệnh logic, lệnh chuyển số liệu, lệnh xử lý bit lệnh rẽ nhánh Các lệnh xử lý bit điểm mạnh họ MCS -51, thích hợp với ứng dụng cần thay đổi giá trị bít nh bật tắt thiết bị Tập lệnh mã ngữ họ MCS - 51 đợc xây dựng sở mã ngữ vi xử lý bit, với phát triển nhằm tối u hoá cho ứng dụng điều khiển Mỗi lệnh mã ngữ xử lý byte mét bit sè liƯu n»m ë mét ghi hc ô nhớ đó, nên lệnh phải có địa số liệu để CPU tìm đợc số liệu cần xử lý Cấu trúc lệnh mã ngữ cđa MCS - 51 gåm cã mét m· lƯnh bit quy định thao tác xử lý, kèm theo từ đến byte toán hạng số liệu địa cần thiết cho việc thực lệnh Các lệnh mã ngữ sử dụng nhiều phơng pháp định địa khác Các phơng pháp định địa đợc sử dụng lệnh mã ngữ định địa tức thời, định địa trực tiếp, định địa gián tiếp, định địa ghi, định địa tơng đối, định địa tuyệt đối, định địa dài địa chỉ số Các lệnh sử dụng địa tức thời có toán hạng (ký hiệu #data) số liệu cần xử lý, trình biên dịch nhận biết toán hạng số liệu tức thời nhờ ký tự # đặt trớc toán hạng Các lệnh sử dụng địa trực tiếp đợc dïng ®Ĩ truy cËp vïng 128 byte thÊp cđa bé nhớ RAM ghi chức đặc biệt SFR có địa vùng 128 byte cao nhớ RAM trong, chúng có toán hạng (ký hiệu Direct) địa bit ô nhớ tên ghi SFR chứa số liệu cần xử lý Phơng pháp định địa gián tiếp cho phép xác định tính toán địa biến để truy cập đến ô nhớ có giá trị biến đổi chơng trình chạy, điều thực đợc định địa trực tiếp Các lệnh sử dụng địa gián tiếp để truy cập nhớ RAM phải dùng ghi R0 R1 làm trỏ liệu (ký hiệu @Ri, với i = 1) Các lệnh truy cập đến nhớ RAM phải dùng ghi R0, R1 ghi 16 bit DPTR làm trỏ liệu (ký hiệu @DPTR) Ký hiệu @Ri đợc hiểu ô nhớ đợc trỏ Ri, nghĩa Ri chứa địa ô nhớ cần cập, cần thiết lập địa « nhí chøa sè liƯu cÇn xư lý ë ghi dïng lµm trá tríc thùc hiƯn lƯnh dùng trỏ Các lệnh sử dụng địa ghi đợc dùng cho ghi băng ghi thời, chúng có toán hạng tên cđa mét c¸c ghi R0  R7( ký hiƯu Rn lµ ghi thø n, víi n = 7) Chỉ có lệnh nhảy sử dụng địa tơng đối, chúng có toán hạng (ký hiệu Rel ) tên nhãn điểm nhảy đến đợc trình biên dịch tính thành địa Offset khoảng cách từ lệnh đến vị trí nhãn, địa tuyệt đối điểm nhảy đến giá trị đếm chơng trình PC cộng với giá trị Offset Do Offset giá trị bit có dấu nên tầm nhảy sử dụng địa tơng đối bị giới hạn khoảng cách 127 byte đến -128 byte từ vị trí lệnh tiếp sau lệnh nhảy Chỉ có lệnh Acall Ajmp sử dụng địa tuyệt đối, chúng có toán hạng tên nhãn điểm nhảy đếnvà đợc trình biên dịch tính thành giá trị 11 bit Absolute khoảng cách từ lệnh đến vị trí nhãn 11 bit thấp địa chỉ, bit cao địa bit cao thời đếm chơng trình PC, lệnh rẽ nhánh chơng trình giới hạn 2K nhớ chơng trình Chỉ có lệnh Lcall Ljmp sử dụng kểu định địa dài, chúng có toán hạng tên nhãn điểm nhảy đến đợc trình biên dịch tính thành giá trị địa 16 bit, lệnh cho phép rẽ nhánh chơng trình không gian 64K nhớ chơng trình Chỉ có lệnh Movc Jmp sử dụng địa chỉ số, chúng có toán hạng địa chỉ số đợc tính tổng số đợc cất chứa A với giá trị sở nội dung thời đếm chơng trình PC trỏ liệu DPTR ( ký hiệu @A + PC @A + DPTR) Kiểu địa chỉ số cho phép truy cập xác đến phần tử bảng số liệu đợc dùng để lập bảng rẽ nhánh chơng trình Tập lệnh mã ngữ họ MCS -51 đợc chia thành nhóm nhóm lệnh số học, nhóm lƯnh logic, nhãm c¸c lƯnh di chun sè liƯu, nhãm lệnh rẽ nhánh nhóm lệnh xử lý bit Mỗi dạng lệnh mã ngữ thực thao tác định số liệu, nhng sử dụng với kiểu định địa khác tạo nhiều lệnh cụ thể, lệnh có mã lệnh yêu cầu toán hạng kèm theo khác Để ngắn gọn tiện cho sử dụng sau này, ta trình bày tập lệnh mã ngữ họ MCS - 51 dới dạng bảng theo nhóm lệnh phần phụ lục Họ MCS - 51 hỗ trợ lệnh xử lý theo bit, bit đợc set xoá bằngmột lệnh Điều khiển đơn bit đợc dùng cho nhiều thiết bị xuất/nhập, bao gồm xuất rơ le, động cơ, LED Lập trình cho đếm/định thời (Coutter/Timer) dùng để định khoảng thời gian đếm kiện, truyền thông nối tiếp khả lập trình ngắt, từ cho phÐp ta thùc hiƯn c¸c øng dơng thùc tế cách mềm dẻo III S mch v chương trình: Bài tập thực thiết kế mạch điện tạo chữ chạy với nội dung định, sử dụng vi điều khiển 89C51, mạch giải mã Decoder_2_4 Decoder_4_16 Khối hiển thị dùng matrận led 8x8 Chương trình viết ngơn ngữ Assembly, sau viết chương trình dịch mã máy họ MCS 51 trình biên dịch ASM-51 sau nạp vào nhớ chương trình EEPROM bên bờn ngoi MCS-51 Để viết nạp phần mềm cho MCS - 51, ta phải có công cụ máy vi tính, trình biên dịch ngôn ngữ mã máy họ MCS - 51 nạp chơng trình mã máy từ máy vi tính vào nhớ chơng trình EEPROM MCS - 51 nhớ EPROM ngoµi Bảng mã tổng quát tổng hợp bảng: Chu Cot cai A 0C0H Cot4 Cot3 Cot2 Cot1 MA 0B7H 77H 0B7H 0C0H 00H 81H 00H 00H 00H 81H 00H 6EH 7EH 7EH 6EH 6FH 7EH 0EFH 6EH 7EH 7EH 6EH 6FH 7EH 0EFH 6EH 7EH 7EH 6EH 6FH 76H 0EFH 91H 0BDH 81H 7EH 7FH 0B0H 00H I J K 0FDH 00H 7EH 7EH 0E7H 00H 01H 0DBH 7EH 7FH 0BDH 7EH L 00H 0FEH 0FEH 0FEH 0FEH N 00H 0DFH 0EFH 0F7H 00H M 00H 0BFH 0DFH 0BFH 00H 0C0H,0B7H,77H,0B7H,0C 0H 00H,6EH,6EH,6EH,91H 81H,7EH,7EH,7EH,0BDH 00H,7EH,7EH,7EH,81H 00H,6EH,6EH,6EH,7EH 00H,6FH,6FH,6FH,7FH 81H,7EH,7EH,76H,0B0H 00H,0EFH,0EFH,0EFH,00 H 7EH,00H,7EH 0FDH,7EH,01H,7FH 00H,0E7H,0DBH,0BDH,7E H 00H,0FEH,0FEH,0FEH,0F EH 00H,0DFH,0EFH,0F7H,00 H 00H, 0BFH,0EFH,0BFH,00H B C D E F G H O P Q U 81H 00H 81H 01H 7EH 77H 7EH 0FEH 7EH 77H 7EH 0FEH 7EH 77H 7CH 0FEH 81H 8FH 80H 01H 81H,7EH,7EH,7EH,81H 00H,77H,77H,77H,8FH 81H,7EH,7EH,7CH,80H 01H,0FEH,0FEH,0FEH,01 H S 9DH 6EH 6EH 6EH 0B1H 9DH,6EH,6EH,6EH,0B1H R 00H 67H 6BH 6DH 9EH 00H,67H,6BH,6DH,9EH T 7FH 7FH 00H 7FH 7FH 7FH,7FH,00H,7FH,7FH V 03H 0FDH 0FEH 0FDH 03H 03H,0FDH,0FEH,0FDH,03 H X 38H 0D7H 0EFH 0D7H 38H 38H,0D7H,0EFH,0D7H,38 H Y 1FH 0EFH 0F0H 0EFH 1FH 1FH,0EFH,0FH,0EFH1FH Z 78H 76H 6EH 5EH 3EH 78H,76H,6EH,5EH,3EH 0EFH 0EFH 0EFH 0EFH,0EFH,0EFH * 0BBH 0D7H 29H 0D7H 0BBH 0BBH,0D7H,29H,0D7H,0B BH + 0EFH 0EFH 83H 0EFH 0EFH 0EFH,0EFH,83H,0EFH,0E FH VI 0BBH,0D7H,29H,0D7H,0BBH,0FFH,03H,0FDH,0FEH,0FDH,03H,0FFH,7 EH,00H,7EH, 0FFH,0EFH,0EFH,0EFH DIE 0FFH,00H,7EH,7EH,7EH,81H,0FFH,7EH,00H,7EH,0FFH,00H,6EH,6EH,6 U EH,7EH,0FFH,01H,0FEH,0FEH,0FEH,01H,0FFH,0EFH,0EFH,0EFH KHI 0FFH,00H,0E7H,0DBH,0BDH,7EH,0FFH,00H,0EFH,0EFH,0EFH,00H,0F EN FH,7EH,00H,7EH,0FFH,00H,6EH,6EH,6EH,7EH,0FFH,00H,0DFH,0EFH, 0F7H,00H,0FFH Sơ đồ mạch mô biểu diễn hình vẽ: Dưới chương trình hợp ngữ viết cho vi điều khiển 89C51: ; CHUONG TRINH CHU CHAY: "* VI-DIEU-KHIEN *" ORG 00H MOV DPTR, #MA MOV R3, #75 MAIN: MOV R2, #10 LAP: MOV R1, #48 MOV R0, #00 L: MOV A, R0 MOVC A, @A+DPTR MOV P1, R0 MOV P2, A CALL TRE MOV P2,#0FFH NOP NOP INC R0 DJNZ R1, L DJNZ R2, LAP INC DPTR DJNZ R3, MAIN MOV DPTR, #MA MOV R3, #75 SJMP MAIN TRE: MOV R7, #3 T: ;TRE 64 COT =2*246 MOV R6, #170 DJNZ R6, $ DJNZ R7, T RET MA: DB 0BBH,0D7H,29H,0D7H,0BBH,0FFH,03H DB 0FDH,0FEH,0FDH,03H,0FFH,7EH,00H DB 7EH, 0FFH,0EFH,0EFH,0EFH 0FFH,00H DB 7EH,7EH,7EH,81H,0FFH,7EH,00H DB 7EH,0FFH,00H,6EH,6EH,6EH DB 7EH,0FFH,01H,0FEH,0FEH,0FEH,01H DB 0FFH,0EFH,0EFH,0EFH,0FFH,00H,0E7H DB 0DBH,0BDH,7EH,0FFH,00H,0EFH,0EFH DB 0EFH,00H,0FFH,7EH,00H,7EH,0FFH DB 00H,6EH,6EH,6EH,7EH,0FFH,00H DB 0DFH,0EFH,0F7H,00H,0FFH,0BBH,0D7H DB 29H,0D7H,0BBH,0FFH,03H,0FDH,0FEH DB 0FDH,03H,0FFH,7EH,00H,7EH, 0FFH DB 0EFH,0EFH,0EFH,0FFH,00H,7EH,7EH DB 7EH,81H,0FFH,7EH,00H,7EH,0FFH DB 00H,6EH,6EH,6EH,7EH,0FFH,01H DB 0FEH,0FEH,0FEH,01H,0FFH,0EFH,0EFH DB 0EFH,0FFH,00H,0E7H,0DBH,0BDH,7EH DB 0FFH,00H,0EFH,0EFH,0EFH,00H,0FFH DB 7EH,00H,7EH,0FFH,00H,6EH,6EH DB 6EH,7EH,0FFH,00H,0DFH,0EFH,0F7H DB 00H,0FFH END ... bị cấm, bit có mức logic cho phép ngắt hoạt động II PhÇn mỊm cho hä bé vi ®iỊu khiĨn MCS - 51 Bài tập sử dụng ngôn ngữ Assembly viết cho họ vi điều khiển MCS-51 Cấu trúc hợp ngữ Một chơng trình... lập trình ngắt, từ cho phép ta thực ứng dụng thực tế cách mềm dẻo III Sơ đồ mạch chương trình: Bài tập thực thiết kế mạch điện tạo chữ chạy với nội dung định, sử dụng vi điều khiển 89C51, mạch... dịch giải nhng ngời lập trình nên dùng chúng để mô tả chơng trình giúp cho chơng trình sáng sủa Tập lệnh mã ngữ họ vi điều khiển MCS - 51 TËp lƯnh Assembly cđa hä MCS - 51 đợc chia thành nhóm

Ngày đăng: 20/11/2019, 18:52

Từ khóa liên quan

Mục lục

  • II. PhÇn mÒm cho hä bé vi ®iÒu khiÓn MCS - 51.

Tài liệu cùng người dùng

Tài liệu liên quan