Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
720,9 KB
Nội dung
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG KHOA CÔNG NGHỆ THÔNG TIN - - CÁC HỆ THỐNG NHÚNG ĐỀ TÀI : Thiết kế mạch quét nledbảy Giáo Viên : Cô Đỗ Thị Loan Thành Viên Nhóm : Trương Minh Vương Vũ Quang Vinh Vũ Quyết Tiến Dương Thành Đô Lớp : KTPM_K12B THÁI NGUYÊN, NĂM 2017 CHƯƠNG 1: VI ĐIỀU KHIỂN 8051 1.1 Tổng quan họ vi điều khiển 8051 1.1.1 Sự khác vi xử lý vi điều khiển a) cấu trúc phần cứng Bộ vi xử lý CPU đơn chip vi điều khiển vi mạch đơn chứa bên CPU mạch khác để tạo nên hệ máy vi tính đầy đủ Ngoài CPU, vi điều khiển chứa bên RAM, ROM, mạch giao tiếp nối tiếp, mạch giao tiếp song song, định thời mạch điều khiển ngắt, tất diện vi mạch Data bus CPU RAM ROM I/O Time CPU RAM I/O Time Serial COM Address bus (a) Microprocessor ROM Serial COM (b) Microcontroller Hình 1.1 Sự khác VXL VĐK Dung lượng RAM chip vi điều khiển đạt dung lượng RAM máy vi tính vi điều khiển dùng cho thiết kế riêng Các vi xử lý có tỷ lệ RAM: ROM cao vi điều khiển có tỷ lệ ROM :RAM cao Một đặc trưng quan trọng hệ thống ngắt thiết kế bên chip Các vi điều khiển đáp ứng với tác động bên (các ngắt) theo thời gian thực Chúng phải chuyển đổi ngữ cảnh nhanh, treo trình thực thi trình khác theo yêu cầu kiện Các vi xử lý có khả thực sơ đồ ngắt phải sử dụng thành phần bên mạch bên chip vi điều khiển bao gồm mạch quản lý ngắt cần thiết b) ứng dụng Các vi xử lý hầu hết dùng làm CPU hệ máy vi tính vi điều khiển ứng dụng thiết kế nhỏ với số thành phần thêm vào tối thiểu nhằm thực hoạt động hướng điều khiển Trước thiết kế yêu cầu hàng chục chí hàng trăm vi mạch số Bộ vi điều khiển giúp giảm thiểu số lượng tổng thể thành phần Tất cần vi điều khiển, số thành phần hỗ trợ chương trình điều khiển chứa ROM Các vi điều khiển thích hợp với điều khiển xuất nhập với yêu cầu thành phần tối thiểu vi xử lý thích hợp với ứng dụng xử lý thông tin hệ máy tính c) đặc trưng tập lệnh Các tập lệnh vi xử lý bao gồm lệnh xử lý bao quát nên chúng mạnh kiểu định địa với lệnh hoạt động lượng liệu lớn Các vi điều khiển có tập lệnh điều khiển việc xuất nhập Mạch giao tiếp nhiều ngõ nhập ngõ xuất sử dụng bit Đặc trưng thấy vi xử lý thường thiết kế hoạt động byte đơn vị liệu lớn Do kết cấu phần cứng nên lệnh vi điều khiển phải thật động hầu hết thực thi byte 1.1.2 Các vi điều khiển họ 8051 a) cấu trúc bên vi điều khiển 8051 Bộ vi điều khiển 8051 thành viên họ 8051 Hãng Intel ký hiệu MCS51 EXTERNAL ETC ON - CHIP INTERRUPT TIMER TIMER CPU OSC BUS I/O P0 P1 P2 P3 SERIAL TXD RXD ADDRESS/DATA Hình 1.2 Bố trí bên sơ đồ khối 8051 1.2 Cấu trúc phần cứng 8051 1.2.1 Cấu trúc chân vi điều khiển Hình 1.3 Vi điều khiển 8051 a) Port0 (cổng 0) : Port có chức chân từ 32 đến 39 thiết kế cỡ nhỏ (không dùng nhớ mở rộng ) có hai chức đường I/O Đối với thiết kế cỡ lớn (với nhớ mở rộng) kết hợp kênh bus b) Port1(cổng 1) : Port1 port I/O chân 1-8 Các chân ký hiệu P1.0, P1.1, P1.2 … dùng cho thiết bị cần Port1 chức khác, dùng giao tiếp với thiết bị c) Port2(cổng 2) : Port2 port công dụng kép chân 21 - 28 dùng đường xuất nhập byte cao bus địa thiết kế dùng nhớ mở rộng d) Port3(cổng 3) : Port3 port công 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ín đặc biệt 8051 / 8031 sau : Bit P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 Tên RDX TXD INTO INT1 TO T1 WR RD Chức chuyển đổi Dữ liệu phát cho port nối tiếp Dữ liệu phát cho port nối tiếp Ngắt bên Ngắt bên Ngõ vào timer/counter0 Ngõ vào timer/counter1 Xung đọc nhớ liệu Xung đọc nhớ liệu e) PSEN(Program Store Enable) : có tín hiệu điều khiển PSEN tín hiệu chân 29 Nó tín hiệu điều khiển phép nhớ chương trình mở rộng thường nối đến chân OE (Output Enable) EPROM phép đọc bytes mã lệnh PSEN mức thấp thời gian lấy lệnh Các mã nhị phân chương trình đọc từ EPROM qua bus chốt vào ghi lệnh 8051 để giải mã lệnh Khi thi hành chương trình ROM nội (8051), PSEN mức thụ động (mức cao) f) ALE(Address Latch Enable) tín hiệu ALE chân 30 tương hợp với thiết bị làm việc với xử lí 8585, 8088, 8086, 8051 dùng ALE cách tương tự cho làm việc giải kênh bus địa liệu Khi Port dùng chế độ chuyển đổi, vừa bus liệu vừa bus thấp địa chỉ, ALE tín hiệu để chốt địa vào ghi bên nửa đầu chu kỳ nhớ Sau đó, đường Port dùng để xuất nhập liệu nửa sau chu kỳ nhớ Các xung tín hiệu ALE có tốc độ 1/6 lần tần số dao động chip dùng nguồn xung nhịp cho hệ thống Nếu xung 8051 12MHz ALE có tần số 2MHz Chỉ ngoại trừ thi hành lệnh MOVX, xung ALE bị Chân làm ngõ vào cho xung lập trình cho EPROM 8051 g) EA(External Access) Tín hiệu vào EA chân 31 thường mắc lên mức cao (+5V) mức thấp (GND) Nếu mức cao, 8051 thi hành chương trình từ ROM nội khoảng địa thấp (4K) Nếu mức thấp, chương trình thi hành từ nhớ mở rộng Khi dùng 8031, EA nối mức thấp nhớ chương trình chip Nếu EA nối mức thấp nhớ bên trong, chương trình 8051 bị cấm chương trình thi hành từ EPROM mở rộng h) RST(Reset) Ngõ vào RST chân ngõ reset 8051 Khi tín hiệu đưa lên múc cao (trong chu kỳ máy), ghi 8051 tải giá trị thích hợp để khởi động hệ thống i) ngõ vào dao động chip Như thấy hình trên, 8051 có dao động chip Nó thường nối với thạch anh hai chân 18 19 Các tụ cần thiết vẽ Tần số thạch anh thông thường 12MHz j) chân nguồn 8051 vận hành với nguồn đơn +5V Vcc nối vào chân 40 Vss (GND) nối vào chân 20 1.2.2 Tổ chức nhớ 8051 có nhớ theo cấu trúc Harvard: có vùng cho nhớ riêng biệt cho chương trình liệu Như nói trên, chương trình liệu bên 8051, dù chúng mở rộng thành phần lên đến tối đa 64 Kbytes nhớ chương trình 64 Kbytes nhớ liệu Bộ nhớ bên bao gồm ROM (8051) RAM chip, RAM chip bao gồm nhiều 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 Hình 1.4 Không gian nhớ Hai đặc tính cần lưu ý là: - Các ghi port xuất nhập xếp nhớ - truy xuất trực tiếp địa nhớ khác Ngăn xếp bên RAM nội nhỏ so với RAM vi xử lí khác Chi tiết nhớ RAM chip : Như ta thấy hình sau, RAM bên 8051/ 8031 phân chia bank ghi (00H - 1FH), RAM địa hóa bit (20H - 2FH), RAM đa dụng (30H - 7FH) ghi chức đặc biệt (80H - FFH) Địa byte FF 30 7F 7E RAM đa dụng 7D 7C 7B 7A 79 78 77 76 75 72 71 70 6F 6E 6D 6C 6B 6A 69 68 67 66 65 62 61 60 5F 5E 5D 5C 5B 5A 59 58 2C 57 56 55 52 51 50 2B 4F 4E 4D 4C 4B 4A 49 48 2A 47 46 45 42 41 40 29 3F 3E 3D 3C 3B 3A 39 38 28 37 36 35 32 31 30 27 2F 2E 2D 2C 2B 2A 29 28 26 27 26 25 22 21 20 1F 1E 1D 1C 1B 1A 19 18 17 16 15 12 11 10 0F 0E 0D 0C 0B 0A 09 08 07 06 05 01 00 2F 2E 2D 25 24 23 22 21 20 74 64 54 44 34 24 14 04 73 63 53 43 33 23 13 03 02 BANK BANK BANK 1F 17 Default register 10 Bank for R0÷R7 0F 08 07 00 Mọi địa vùng RAM đa dụng truy xuất tự dùng cách đánh địa trực tiếp gián tiếp 1.2.3 Các bank ghi 32 byte thấp nhớ nội dành cho bank ghi Bộ lệnh 8051/8031 hỗ trợ ghi (R0 đến R7) theo mặc định (sau Reset hệ thống) ghi địa 00H-07H Lệnh sau đọc nội dung địa 05H vào ghi tích lũy Bank ghi tích cực chuyển đổi cách thay đổi bit chọn bank ghi từ trạng thái chương trình (PSW) ý tưởng dùng "các bank ghi" cho phép "chuyển hướng" chương trình nhanh hiệu (từng phần riêng rẽ phần mềm có ghi riêng không phụ thuộc vào phần khác) 1.2.4 Các ghi chức đặc biệt Các ghi nội 8051 truy xuất ngầm định lệnh Ví dụ lệnh "INC A" tăng nội dung ghi tích lũy A lên Tác động ngầm định mã lệnh Các ghi 8051/8031 định dạng phần RAM chip Vì ghi có địa (ngoại trừ ghi trực tiếp, lợi đặt chúng vào RAM chip) Đó lý để 8051có nhiều ghi Cũng R0 đến R7, có 21 ghi chức đặc biệt (SFR: Special Funtion Rgister) vùng RAM nội, từ địa 80H đến FFH Chú ý hầu hết 128 địa từ 80H đến FFH không định nghĩa Chỉ có 21 địa SFR định nghĩa Ngoại trừ tích lũy (A) truy xuất ngầm nói, đa số SFR truy xuất dùng địa trực tiếp Chú ý vài SFR địa hóa bit byte Người thiết kế phải thận trọng truy xuất bit byte a) Thanh ghi từ trạng thái chương trình Từ trạng thái chương trình (PSW: Program Status Word) địa D0H chứa bit trạng thái bảng tóm tắt sau: Bit Ký hiệu Địa Y nghĩa PSW.7 CY D7H Cờ nhớ PSW.6 AC D6H Cờ nhớ phụ PSW.5 F0 D5H Cờ PSW.4 RS1 D4H Bit chọn bank ghi PSW.3 RS0 D3H Bit chọn bank ghi 00=bank 0; địa 00H-07H 01=bank 1: địa 08H-0FH 10=bank 2:địa 10H-17H 11=bank 3:địa 18H-1FH PSW.2 OV PSW.1 PSW.0 P D2H Cờ tràn D1H Dự trữ D0H Cờ Parity chẵn Bảng Thanh ghi từ trạng thái chương trình b) Thanh ghi B Thanh ghi B địa F0H dùng với ghi tích lũy A cho phép toán nhân chia Lệnh MUL AB nhân giá trị không dấu bit A B trả kết 16 bit A (byte thấp) B (byte cao) Lệnh DIV AB chia A cho B trả kết nguyên A phần dư B Thanh ghi B xem ghi đệm đa dụng Nó địa hóa ttừng bit địa bit F0H đến F7H c) Con trỏ ngăn xếp Con trỏ ngăn xếp (SP) ghi bit địa 81H Nó chứa địa byte liệu hành đỉnh ngăn xếp Các lệnh ngăn xếp bao gồm thao tác cất liệu vào ngăn xếp lấy liệu khỏi ngăn xếp Lệnh cất liệu vào ngăn xếp làm tăng SP trước ghi liệu, lệnh lấy liệu khỏi ngăn xếp dọc liệu làm giảm SP Ngăn xếp 8051/8031 giữ RAM nội giới hạn địa truy xuất địa gián tiếp Chúng 128 byte đầu 8051 d) Con trỏ liệu Con trỏ liệu (DPTR) dùng để truy xuất nhớ ghi 16 bit địa 82H (DPL: byte thấp) 83H (DPH: byte cao) e) Các ghi port xuất nhập Các port 8051/8031 bao gồm Port địa 80H, Port địa 90 H, Port địa A0H Port địa B0H Tất Port địa hóa bit Điều cung cấp khả giao tiếp thuận lợi f) Các ghi timer 8051/8031 chứa định thời đếm 16 bit dùng việc định thời đếm kiện Timer địa 8AH (TL0:byte thấp) 8CH (TH0:byte cao).Timer địa 8BH (TL1:byte thấp) 8DH (TH1: byte cao) Việc vận hành timer set ghi Timer Mode (TMOD) địa 89H ghi điều khiển timer (TCON) địa 88H Chỉ có TCON địa hóa bit g) Các ghi port nối tiếp 8051/8031 chứa port nối tiếp chip dành cho việc trao đổi thông tin với thiết bị nối tiếp máy tính, modem cho việc giao tiếp với IC khác có giao tiếp nối tiếp (có chuyển đổi A/D, ghi dịch ) Một ghi gọi đệm liệu nối tiếp (SBUF) địa 99H ssẽ giữ hai liệu truyền nhận Khi truyền liệu ghi lên SBUF, nhận liệu đọc SBUF Các mode vận hành khác lập trình qua ghi điều khiển port nối tiếp (SCON) (được địa hóa bit) địa 98H h) Các ghi ngắt 8051có cấu trúc nguồn ngắt, mức ưu tiên Các ngắt bị cấm sau reset hệ thống cho phép việc ghi ghi cho phép ngắt (IE) địa 8AH Cả hai ghi địa hóa bit i) Các ghi điều khiển công suất Thanh ghi điều khiển công suất (PCON) địa 87H chứa nhiều bit điều khiển 1.3 Bộ nhớ 8051/8031 có khả mở rộng nhớ đến 64K nhớ chương trình 64K nhớ liệu bên Do dùng thêm ROM RAM cần Khi dùng nhớ ngoài, Port không port I/O túy Nó hợp kênh bus địa (A0-A7) bus liệu (D0-D7) với tín hiệu ALE để chốt byte thấp địa bắt đầu chu kỳ nhớ Port thông thường dùng cho byte cao bus địa Trong nửa đầu chu kỳ nhớ, byte thấp địa cấp port chốt xung ALE Một IC chốt 74HC373 (hoặc tương đương) giữ byte địa thấp phần lại chu kỳ nhớ Trong nửa sau chu kỳ nhớ Port dùng bus liệu đọc ghi tùy theo lệnh 1.3.1 Truy xuất nhớ chương trình Bộ nhớ chương trình IC ROM phép tín hiệu PSEN Hình sau mô tả cách nối EPROM vào 8051/8031: Hình 1.6 Giao tiếp 8051/8031 EPROM Một chu kỳ máy 8051/8031 có 12 chu kỳ xung nhịp Nếu dao động chip tạo thạch anh 12MHz chu kỳ máy kéo dài 1s Trong chu kỳ máy có xung ALE byte đọc từ nhớ chương trình (nếu lệnh hành byte byte thứ hai loại bỏ) 1.3.2 Truy xuất nhớ liệu Hình 1.7 Giao tiếp 8051/8031 RAM Bộ nhớ liệu nhớ RAM cho phép ghi/đọc tín hệu WR/ RD (các chân P3.6 P3.7 thay đổi chức năng) Chỉ có cách truy xuất nhớ liệu với lệnh MOVX dùng trỏ liệu (DPTR) 16 bit R0 R1 xem ghi địa Kết nối bus địa bus liệu RAM 8051/8031 giống EPROM lên đến 64 byte nhớ RAM Ngoài ra, chân RD 8051/8031 nối tới chân cho phép xuất (OE) RAM chân WR nối tới chân ghi (WR) RAM 1.4 Các ngắt 8051 1.4.1 Trình phục vụ ngắt Đối với ngắt phải có trình phục vụ ngắt ISR hay trình quản lý ngắt Khi ngắt gọi vi điều khiển chạy trình phục vụ ngắt Đối với ngắt có vị trí cố định nhớ để giữ địa ISR Nhóm vị trí nhớ dành riêng để gửi địa ISR gọi bảng véc tơ ngắt 1.4.2 Các bước thực ngắt Khi kích hoạt ngắt vi điều khiển qua bước sau : B1 : Nó kết thúc lệnh thực lưu địa lệnh (PC) vào ngăn xếp B2 : Nó lưu tình trạng tất ngắt vào bên (nghĩa không lưu vào ngăn xếp) B3 : Nó nhảy đến vị trí cố định nhớ gọi bảng véc tơ ngắt nơi lưu giữ địa trình phục vụ ngắt B4 : Bộ vi điều khiển nhận địa ISR từ bảng véc tơ ngắt nhảy tới Nó bắt đầu thực trình phục vụ ngắt lệnh cuối ISR RETI (trở từ ngắt) B5 : Khi thực lệnh RETI vi điều khiển quay trở nơi bị ngắt Trước hết nhận địa đếm chương trình PC từ ngăn xếp cách kéo hai byte đỉnh ngăn xếp vào PC Sau bắt đầu thực lệnh từ địa Lưu ý bước đến vai trò nhạy cảm ngăn xếp, lý mà phải cẩn thận thao tác nội dung ngăn xếp ISR Đặc biệt ISR chương trình CALL số lần đẩy vào ngăn xếp (PUSH) số lần lấy từ (POP) phải 1.4.3 Sáu ngắt 8051 Thực tế có ngắt dành cho người dùng 8051 nhiều nhà sản xuất đưa bảng liệu có sáu ngắt họ tính lệnh tái thiết lập lại RESET Sáu ngắt 8051 phân bố sau: RESET: Khi chân RESET kích hoạt từ 8051 nhảy địa 0000 Đây địa bật lại nguồn Gồm hai ngắt dành cho định thời: cho Timer0 cho Timer1 Địa ngắt 000B H 001B H bảng véc tơ ngắt dành cho Timer0 Timer1 tương ứng Hai ngắt dành cho ngắt phần cứng bên chân 12 (P3.2) 13 (P3.3) cổng P3 ngắt phần cứng bên INT0 INT1 tương ứng Các ngắt coi EX1 EX2 vị trí nhớ bảng véc tơ ngắt ngắt 0003H 0013H gán cho INT0 INT1 tương ứng Truyền thông nối tiếp có ngắt thuộc thu phát Địa ngắt bảng véc tơ ngắt 0023H Ngắt Bật lại nguồn(RESET) Ngắt phần cứng ngoài(INT0) Ngắt timer0 (TF0) Ngắt phần cứng ngoài(INT1) Ngắt timer0 (TF1) Ngắt COM nối tiếp (RI TI) Bảng 1.8 Bảng vecter ngắt Địa ROM 0000 0003 000B 0013 001B 0023 Chân 12 (P3.2) 13 (P3.3) Chú ý bảng 3.17 có số giới hạn byte dành riêng cho ngắt Ví dụ, ngắt INT0 ngắt phần cứng bên có tổng cộng byte từ địa 0003H đến 000AH dành cho Tương tự vậy, byte từ địa 000BH đến 0012H dành cho ngắt định thời T0 Nếu trình phục vụ ngắt đối mặt với ngắt cho mà ngắt đủ đặt vừa không gian nhớ Nếu không vừa lệnh LJMP đặt vào bảng véc tơ ngắt để đến địa ISR, trường hợp byte lại cấp cho ngắt không dùng đến Từ bảng 3.17 ta để ý thấy thực tế có byte không gian nhớ ROM gán cho chân RESET Đó vị trí địa 0, ROM Vị trí địa thuộc ngắt phần cứng bên với lý chương trình phải đặt lệnh LJMP lệnh hướng xử lý lệnh khỏi bảng véc tơ ngắt 1.4.4các bước cho phép ngắt Để cho phép ngắt ta phải thực bước sau Bít D7 ghi IE EA phải bật lên cao phép bít lại ghi nhận hiệu ứng Nếu EA = tất ngắt phép đáp ứng bít tương ứng chúng IE có mức cao Nếu EA = ngắt đáp ứng cho dù bít tương ứng IE có giá trị cao 1.4.5 Ngắt phần cứng bên Bộ vi điều khiển 8051 có hai ngắt phần cứng bên chân 12 (P3.2) chân 13 (P3.3) dùng cho ngắt INT0 INT1 Khi kích hoạt chân 8051 bị ngắt công việc mà thực nhảy đến bảng véc tơ ngắt để thực trình phục vụ ngắt Level INTO IT0 IE0 0003 Edge - triggered Level INTO IT1 IE0 0013 Edge - triggered a) Các ngắt INT0 INT1 Chỉ có hai ngắt phần cứng 8051 INT0 INT1 Chúng bố trí chân P3.2 P3.3 địa chúng bảng véc tơ ngắt 0003H 0013H Chúng ghép bị cấm việc sử dụng ghi IE Có hai mức kích hoạt cho ngắt phần cứng ngoài: Ngắt theo mức ngắt theo sườn b) Ngắt theo mức chế độ ngắt theo mức chân INT0 INT1 bình thường mức cao (giống tất chân cổng I/O) tín hiệu mức thấp cấp tới chúng ghi nhãn ngắt Sau vi điều khiển dừng tất công việc thực nhảy đến bảng véc tơ ngắt để phục vụ ngắt Điều gọi ngắt kích hoạt theo mức hay ngắt theo mức chế độ ngắt mặc định cấp nguồn lại cho 8051 Tín hiệu mức thấp chân INT phải lấy trước thực lệnh cuối trình phục vụ ngắt RETI, không ngắt khác lại tạo Hay nói cách khác, tín hiệu ngắt mức thấp không lấy ISR kết thúc ngắt khác 8051 nhảy đến bảng véc tơ ngắt để thực ISR Hình 1.9 bảng giá trị logic giả mã 7447 CHƯƠNG DEMO CHƯƠNG TRÌNH 2.1 Thiết bị sử dụng Máy tính Phần mềm Proteus Phần mềm KeilC 2.2 sơ đồ mạch thiết kế code chương trình Hình 2.1 sơ đồ mạch thiết kế Hình 2.2 code chương trình ... INT0 INT1 tương ứng Truy n thông n i tiếp có ngắt thuộc thu phát Địa ngắt bảng véc tơ ngắt 0023H Ngắt Bật lại ngu n( RESET) Ngắt ph n cứng ngoài(INT0) Ngắt timer0 (TF0) Ngắt ph n cứng ngoài(INT1)... tương ứng Hai ngắt dành cho ngắt ph n cứng b n ch n 12 (P3.2) 13 (P3.3) cổng P3 ngắt ph n cứng b n INT0 INT1 tương ứng Các ngắt coi EX1 EX2 vị trí nhớ bảng véc tơ ngắt ngắt 0003H 0013H g n cho... tình trạng tất ngắt vào b n (nghĩa không lưu vào ng n xếp) B3 : N nhảy đ n vị trí cố định nhớ gọi bảng véc tơ ngắt n i lưu giữ địa trình phục vụ ngắt B4 : Bộ vi điều khi n nh n địa ISR từ bảng