1. Trang chủ
  2. » Luận Văn - Báo Cáo

THIẾT kế hệ VI xử lý 8 BIT dể đo NHIỆT độ

33 329 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 33
Dung lượng 364,5 KB

Nội dung

Trờng đại học bách khoa hà nội Khoa điện Bộ môn tự động hoá ************ Bài tập dài vi xử lý Đề tài: thiết kế hệ vi xử lý bit dể đo nhiệt độ Giáo viên hớng dẫn : nguyễn văn khang Sinh viên thực : Nguyễn Danh Tuấn Lớp : TĐH2 - K45 Hà Nội - 2004 Đề tàI THIếT Kế Hệ VI Xử Lý BIT YÊU CầU Phần cứng : 4 Bộ vi xử lý bit (8085, 8051 .) Bộ nhớ chơng trình ROM : 8KB từ địa 0000H Bộ nhớ liệu RAM 8KB có địa tuỳ chọn Cổng vào tơng tự kênh nhận tín hiệu nhiệt độ từ 10Vtơng ứng với nhiệt độ từ 1000C Phần mềm : Tín hiệu cho phép chạy dừng chơng trình.Tín hiệu dừng khẩn cấp Đọc tín hiệu đo từ kênh lu trữ vùng nhớ RAM Sau lần đọc tính giá trị trung bình nhiệt độ gửi kết cổng hiển thị LED So sánh nhiệt độ trung bình với kênh Nếu cao thấp gửi tín hiệu báo kênh tơng ứng Giá trị cho phép đặt ô nhớ RAM Chơng trinh dừng lại báo động còi xảy số điều kiện sau: - Giá trị trung bình < > giá trị max tơng ứng cho trớc.Các giá trị max & đợc đặt ô nhớ RAM - Có kênh đo vợt nhỏ giá trị giới hạn cho phép so với giá trị trung bình Chơng I định hớng thiết kế Thiết kế hệ vi xử lý bao gồm việc thiết kế tổ chức phần cứng viết phần mềm cho phần cứng mà ta thiết kế Việc xem xét tổ chức phần cứng chơng trình phần mềm cho thiết kế vấn đề cần phải cân nhắc Vì tổ chức phần cứng phức tạp, có nhiều chức hỗ trợ cho yêu cầu thiết kế phần mềm đợc giảm bớt dễ dàng thực nhng lại đẩy cao giá thành chi phí cho phần cứng, nh chi phí bảo trì Ngợc lại với phần cứng tối thiểu lại yêu cầu chơng trình phần mềm phức tạp hơn, hoàn thiện hơn; nhng lại cho phép bảo trì hệ thống dễ dàng nh việc phát triển tính hệ thống từ đa giá cạnh tranh đợc Từ yêu cầu nhận định ta có định hớng sơ cho thiết kế nh sau: Chọn vi xử lý Từ yêu cầu dùng VXL bit ta dự kiến dùng chip vi điều khiển thuộc họ MCS-51 Intel, mà cụ thể dùng chip 8051 lý sau: + Thứ 8051 thuộc họ MCS-51, chip vi điều khiển Đặc điểm chip vi điều khiển nói chung đợc tích hợp với đầy đủ chức hệ VXL nhỏ, thích hợp với thiết kế hớng điều khiển Tức bao gồm: mạch VXL, nhớ chơng trình liệu, đếm, tạo xung, cổng vào/ra nối tiếp song song, mạch điều khiển ngắt + Thứ hai là, vi điều khiển 8051 với họ vi điều khiển khác nói chung năm gần đợc phát triển theo hớng sau: Giảm nhỏ dòng tiêu thụ Tăng tốc độ làm việc hay tần số xung nhịp CPU Giảm điệp áp nguồn nuôi lớn Có thể mở rộng nhiều chức chip, mở rộng cho thiết kế Những đặc điểm dẫn đến đạt đợc hai tính quan trọng là: giảm công suất tiêu thụ cho phép điều khiển thời gian thực nên mặt ứng dụng thích hợp với thiết kế hớng điều khiển + Thứ ba là, vi điều khiển thuộc họ MCS-51 đợc hỗ trợ tập lệnh phong phú nên cho phép nhiều khả mềm dẻo vấn đề viết chơng trình phần mềm điều khiển + Cuối là, chip thuộc họ MCS-51 đợc sử dụng phổ biến đợc coi chuẩn công nghiệp cho thiết kế khả dụng Mặt khác, qua việc khảo sát thị trờng linh kiện việc có đợc chip 8051 dễ dàng nên mở khả thiết kế thực tế Vì lý mà việc lựa chọn vi điều khiển 8051 giải pháp hoàn toàn phù hợp cho thiết kế Tổ chức ngoại vi + Xử lý tín hiệu vào ta dùng thiết bị chuyển đổi tơng tự/ số (ADC) có kênh vào tơng tự kết nối với tín hiệu đo nhiệt độ từ ữ 10V tơng ứng với nhiệt độ từ 0o ữ 100oC + Xử lý việc hiển thị kết nhiệt độ trung bình ta dùng LED để hiển thị tơng ứng với nhiệt độ dải ữ 1000C + Tín hiệu cho phép chạy đợc xử lý cách dùng nút ấn Reset hệ thống + Tín hiệu báo động đợc xử lý còi báo động kết nối với cổng phục vụ cho vào/ra + Nếu có yêu cầu dùng phím để định mode hoạt động, nh đặt lại giá trị MAX MIN bàn phím phải đợc kết nối với cổng giao tiếp vào/ra (ở yêu cầu dùng 8255) Tất thiết bị phải đợc kết nối với thông qua bus cần thiết gồm bus liệu, bus địa bus điều khiển Sơ đồ khối cho thiết kế phần cứng hệ thống nh sau: Address Bus VXL 8051 ROM Mạch giao tiếp 8255 RAM Khối vào tơng tự kênh Khối hiển thị Data Bus Chơng Bộ Vi Điều Khiển 8051 Control Bus Những tính chất đặc trng họ vi điều khiển MCS-51: * Đơn vị xử lý trung tâm (CPU) bit đợc tối u hoá để đáp ứng chức điều khiển * Khối lôgic (ALU) xử lý theo bit nên thuận tiện cho phép toán logic Boolean * Bộ tạo dao động giữ nhịp đợc tích hợp bên với tần số 12MHz * Giao diện nối tiếp có khả hoạt động song song, đồng * Các cổng vào/ra hai hớng đờng dẫn đợc định địa cách tách biệt * Có năm hay sáu nguồn ngắt với hai mức u tiên * Hai ba đếm định thời 16 bit * Bus khối định thời tơng thích với khối ngoại vi vi xử lý 8085/8088 * Dung lợng nhớ chơng trình (ROM) bên lên tới 64 kbyte * Dung lợng nhớ liệu (RAM) bên lên tới 64 kbyte * Dung lợng nhớ ROM bên lên đến kbyte * Dung lợng nhớ RAM bên đạt đến 256 byte * Tập lệnh phong phú 2.1 Cấu trúc chung : 2.1.1 Sơ đồ khối : Sơ đồ khối tổng quát vi điều khiển 8051 đợc mô tả nh sau: Nguồn ngắt Điều khiển ngắt Đếm kiện Nguồn ngắt 4Kbyte Bộ nhớ ch ơng trình 128byte 2bộ đếm / định thời Bộ nhớ RAM CPU Bộ tạo dao động XTAL 1.2 Khối đ.khiển quản lý Bus |PSEN/ALE Hình 2.1: Cấu Port Port Port Cổng I/O Cổng I/O Cổng I/O Đchỉ thấp bit Đchỉ cao Dữ liệu Dữ liệu trúcbitcủa vi điều khiểnbit8051 Port Giao diện nối tiép Cổng I/O Các chức đắc biệt Dữ liệu bit Chức khối : * Khối xử lý trung tâm CPU: Phần vi xử lý khối xử lý trung tâm (CPU=Central Processing Unit ), khối có chứa thành phần : +Thanh ghi tích luỹ (ký hiệu A ); +Thanh ghi tích luỹ phụ (ký hiệu B ) thờng đợc dùng cho phép nhân phép chia ; +Khối logic số học (ALU=Arithmetic Logical Unit) ; +Từ trạng thái chơng trình (PSW= Program Status Word ); +Bốn băng ghi +Con trỏ ngăn xếp (SP=Stack Point) nh trỏ liệu để định địa cho nhớ liệu bên ngoài; Ngoài ra, khối xử lý trung tâm chứa: -Thanh ghi đếm chơng trình (PC= Progam Counter ); -Bộ giải mã lệnh; -Bộ điều khiển thời gian logic; Sau đợc Reset, CPU bắt đầu làm việc địa 0000h, địa đầu đợc ghi ghi chứa chơng trình (PC) sau đó, ghi tăng lên đơn vị đến lệnh chơng trình *Bộ tạo dao động: Khối xử lý trung tâm nhận trực tiếp xung nhịp từ tạo dao động đợc lắp thêm vào, linh kiện phụ trợ khung dao động làm tụ gốm thạch anh Ngoài ra, đa tín hiệu giữ nhịp từ bên vào *Khối điều khiển ngắt: Chơng trình chạy cho dừng lại nhờ khối logic ngắt bên Các nguồn ngắt là: biến cố bên ngoài, tràn đếm/bộ định thời giao diện nối tiếp Tất ngắt đợc thiết lập chế độ làm việc thông qua hai ghi IE (Interrupt Enable) IP (Interrupt Priority) *Khối điều khiển quản lý Bus : Các khối vi điều khiển liên lạc với thông qua hệ thống Bus nội đợc điều khiển khối điều khiển quản lý Bus *Các đếm/định thời: Vi điều khiển 8051 có chứa hai đếm tiến 16 bit hoạt động nh định thời hay đếm kiện bên nh phát tốc độ Baud dùng cho giao diện nối tiếp Trạng thái tràn đếm đợc kiểm tra trực tiếp đợc xoá ngắt *Các cổng vào/ra: Vi điều khiển 8051 có bốn cổng vào/ra (P0 P3), cổng chứa bit, độc lập với Các cổng đợc sử dụng cho mục đích điều khiển đa dạng Ngoài chức chung, số cổng đảm nhận thêm số chức đặc biệt khác *Giao diện nối tiếp: Giao diện nối tiếp có chứa truyền nhận không đồng làm việc độc lập với Bằng cách đấu nối đệm thích hợp, ta hình thành cổng nối tiếp RS-232 đơn giản Tốc độ truyền qua cổng nối tiếp đặt đợc vùng rộng phụ thuộc vào định thời tần số dao động riêng thạch anh *Bộ nhớ chơng trình: Bộ nhớ chơng trình thờng nhớ ROM (Read Only Memory), nhớ chơng trình đợc sử dụng để cất giữ chơng trình điều khiển hoạt động vi điều khiển *Bộ nhớ số liệu: Bộ nhớ số liệu thờng nhớ RAM (Ramdom Acces Memory), nhớ số liệu dùng để cất giữ thông tin tạm thời trình vi điều khiển làm việc 2.1.2 Sự xếp chân vi điều khiển 8051: Phần lớn vi điều khiển 8051 đợc đóng vào vỏ theo kiểu hai hàng DIL(Dual In Line) với tổng số 40 chân ra, số lại đợc đóng vỏ theo kiểu hình vuông PLCC (Plastic Leaded Chip Carrier) với 44 chân loại thờng đợc dùng cho P1.0 hệ thống cần thiết phải tiết kiệm diệnVCC tích + 5V P1.1 P0.0 (A/D 0) P1.2 P0.1 (A/D 1) P1.3 P1.4 P0.2 (A/D 2) P1.5 P0.4 (/D 4) P1.6 P1.7 RST P0.3 (A/D 3) 8051 P0.5 (A/D 5) P0.6 (A/D 6) P0.7 (A/D 7) (RxD) P3.0 |EA (TxD) P3.1 ALE ( |INT0) P3.2 |PSEN ( |INT1) P3.3 P2.7 (A15) (T0) P3.4 P2.6 (A14) (T1) P3.5 P2.5 (A13) ( |WR) P3.6 P2.4 (A12) ( |RD) P3.7 P2.3 (A11) XTAL2 P2.2 (A10) XTAL2 P2.1 (A9) GND P2.0 (A8) Hình 2.2: Sơ đồ chân vi mạch 8051 DIL Bảng 2.1: Chức chân vi điều khiển 8051 Chân >8 10 >17 Ký hiệu P1.0 >P1.7 Reset P3.0 >P3.7 18 19 20 21 >28 XTAL2 XTAL1 Vss P2.0 >P2.7 29 |PSEN 30 ALE 31 |EA 32 >39 P1.0 >P1.7 40 Vdd Chức Cổng giả hai hớng P1, tự sử dụng Lối vào Reset, hoạt động mức High(1) Cổng giả hai hớng P3, xếp tất đờng dẫn với chức đặc biệt Lối dao động thạch anh bên Lối vào dao động thạch anh bên Nối mát ( 0V ) Cổng giả hai hớng P2, chức đặc biệt đờng dẫn địa A8 A15 Progam Strobe Enable, xuất xung đọc dùng cho nhớ chơng trình bên Address Latch Enable, xuất xung điều khiển để lu trữ trung gian địa External Access, đợc nối với mát để làm việc với ROM ngoại vi Cổng hai hớng cực máng hở P0 hay Bus liệu hai hớng dùng cho ROM, RAM thiết bị ngoại vi đồng thời chuyển giao bit địa thấp Nguồn nuôi dơng ( +5V ) Các chân vi điều khiển 8051 gồm có: *EA: Đóng vai trò định xem vi điều khiển làm việc với chơng trình bên hay bên Với loại 8051 ROM chân phải đợc nối với mát Loại thông thờng làm việc tuỳ theo cách lựa chọn ROM hay ROM ngoài, chế độ làm việc với nhớ ROM trong, loại có chứa nhớ ROM truy nhập tự động lên nhớ chơng trình bên *Reset: Trạng thái Reset đợc thiết lập cách giữ tín hiệu Reset mức cao thời gian chu kỳ máy *ALE: Tín hiệu chốt bit địa thấp suốt trìng truy nhập nhớ mở rộng Thông thờng tín hiệu ALE đợc phát với tần số 1/6 tần số dao động thạch anh sử dụng với mục đích định thời gian xung nhịp đồng hồ Tuy nhiên, tín hiệu ALE bị bỏ qua trình truy nhập nhớ liệu *PSEN: Tín hiệu đọc nhớ chơng trình ngoài, vi điều khiển truy nhập nhớ chơng trình nội PSEN đợc đặt mức cao *XTAL1, XTAL2: Một tạo tín hiệu giữ nhịp với tần số đợc xác định cộng hởng thạch anh đợc lắp thêm vào, tần số xác định tốc độ làm vi điều khiển Thông thờng lệnh đợc thực 1/12 tần số dao động thạch anh Các đếm cố thể làm việc nhiều chế độ khác Khi hoạt động nh định thời, đếm nhận đợc xung từ chia trớc bên trong, chia tần số riêng cộng hởng thạch anh cho 12 Thay cho định thời 16 bit, đinh thời bit đợc tạo việc nạp tự động sau cấp nguồn, xung dẫn từ bên vào qua T0 T1 đợc đếm, xung có tần số cực đại 1/24 giá trị tần số cộng hởng thạch anh *P0 P3: Các công vào/ra Cổng P3 đảm nhận số chức đặc biệt vi điều khiển : Chân Ký hiệu Chức P3.0 RxD Nhận liệu vào nhớ qua cổng nối tiếp P3.1 TxD Truyền liệu vào nhớ qua cổng nối tiếp P3.2 |INT0 Ngắt P3.3 |INT1 Ngắt P3.4 T0 Lối vào Timer P3.5 T1 Lối vào Timer P3.6 |WR Viết vào nhớ P3.7 |RD Đọc nhớ 2.2 Tổ chức nhớ: 2.2.1Cấu trúc chung nhớ: Tất vi điều khiển thuộc họ MCS-51 phân chia nhớ thành hai vùng địa cho nhớ liệu nhớ chơng trình Sự phân chia logic nhớ liệu nhớ chơng trình cho phép truy nhập nhớ liệu bit địa giúp cho việc lu trữ thao tác liệu nhanh hơn.Tuy nhiên, sử dụng địa nhớ liệu 16 bit thông qua ghi DPTR Bộ nhớ chơng trình loại nhớ cho phép đọc, không cho phép ghi Một số vi điều khiển đợc tích hợp sẵn nhớ chơng trình bên với dung lợng khoảng 4kbyte hay kbyte, số lại phải sử dụng chơng trình mở rộng mà trình truy nhập đợc thực thông qua điều khiển tín hiệu PSEN (Progam Strobe Enable) Tuy nhiên, vi điều khiển 8051 cho phép ta sử dụng đến 64kbyte nhớ chơng trình cách sử dụng nhớ chơng trình bên bên Bộ nhớ số liệu chiếm giữ vùng địa phân chia nhớ chơng trình Dung lợng nhớ liệu mở rộng lên tới 64 kbyte Trong trình truy nhập nhớ số liệu, CPU phát tín hiệu đọc tín hiệu viết số liệu thông qua chân RD WR Bộ nhớ Chơng trình Bộ nhớ FFFFH Bộ nhớ mở |EA=0 Bộ nhớ Bộ nhớ mở rộng FFH rộng |EA=1 Bộ nhớ 0000H |PSEN Số liệu 00H |WR |RD Hình 2.3: Cấu trúc nhớ họ MCS-51 Chúng ta kết hợp nhớ chơng trình mở rộng với nhớ số liệu mở rộng cách cho hai tín hiệu RD PSEN qua cổng logic AND, lối cổng AND tạo tín hiệu đọc cho nhớ mở rộng 2.2.2 Bộ nhớ chơng trình: Sau Reset, CPU bắt đầu thực chơng trình từ địa 0000H Vùng đầu nhớ chơng trình vùng chứa vector ngắt, ngắt đợc phân chia vùng địa cố định trong nhớ chơng trình Khi xuất ngắt, CPU nhảy tới địa này, địa đầu chơng trình phục vụ ngắt Các vector ngắt cách byte, chơng trình phục vụ ngắt dài (>8 byte) vector ngắt ta phải đặt lệnh nhảy không điều kiện tới vùng địa khác chứa chơng trình phục vụ ngắt 3.Vi mạch giao tiếp song song PPI 8255 Vi mạch 8255 vi mạch đợc sử dụng phổ biến để giao tiếp hệ VXL 16 bit Sử dụng 8255A làm cho việc thiết kế để ghép nối VXL với thiết bị ngoại vi đơn giản nhiều, độ mềm dẻo thiết kế tăng lên linh kiện phụ trợ kèm giảm nhiều Do có khả lập trình đợc nên vừa dùng nh cổng nhận số liệu nh xuất số liệu tuỳ nội dung từ điều khiển mà ngời lập trình đa vào a Sơ đồ chân sơ đồ chức 8255A Sơ đồ chức sơ đồ chân 8255A đợc thể dới hình vẽ sau: PA3 PA2 PA1 PA0 RD\ CS\ GND A1 A0 PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3 PB0 PB1 PB2 40 8255A 20 21 PA4 PA5 PA6 PA7 WR\ RESET D0 D1 D2 D3 D4 D5 D6 D7 Vcc PB7 PB6 PB5 PB4 PB3 PA0 PA7 D0 D7 8255A RD\ WR\ RESET A0 A1 CS\ PB0 PB7 PC0 PC7 Trong đó: Chân ữ 4, 37 ữ 40 (PA0 PA7): đờng xuất nhập có tên cổng A Chân 18 ữ 25 (PB0 PB7): đờng nhập xuất có tên cổng B Chân 10 ữ 13, 14 ữ 17 (PB0 PB7): đờng nhập xuất có tên cổng C Chân 27 ữ 34 (D0 D7): đờng liệu (data) hoạt động hai chiều, dẫn tín hiệu điều khiển từ vi xử lý thiết bị bên đồng thời nhận liệu từ thiết bị điều khiển bên vào vi xử lý Chân 35 (Reset input): ngõ vào xóa, chân reset phải đợc nối với tín hiệu reset out vi xử lý để không làm ảnh hớng đến mạch điều khiển Khi reset, cổng 8255A ngõ vào, đồng thời tất liệu ghi bên 8255A bị xóa, 8255A trở trạng thái ban đầu săn sàng làm việc Chân (CS\): tín hiệu ngõ vào chip select (CS\) đợc điều khiển vi xử lý, dùng để lựa chọn 8255A làm việc vi xử lý giao tiếp với nhiều thiết bị Chân (RD\): ngõ vào đọc liệu (Read Input) Chân 36 (WR\) : ngõ vào ghi liệu (Write Input) Chân 8,9 (A1, A0): ngõ vào địa (Address Input), dùng nhận địa vào để lựa chọn ghi cổng Bảng địa lựa chọn ghi cổng A1 0 1 A0 1 Cổng ghi Cổng A Cổng B Cổng C Thanh ghi điều khiển Chân 26 (Vcc) : nguồn VDC Chân (GND) : GND VDC b Cấu trúc bên hoạt động 8255A Sơ đồ khối cấu trúc bên vi mạch 8255A Port A PA7 PA0 Điều khiển nhóm A Port C D7 D0 (4 bit cao) Đệm bus liệu Nhóm A Port C Điều khiển nhóm B RD\ WR\ CS\ A0 A1 Logic điều khiển ghi/đọc PC7 PC4 PC3 PC0 (4 bit thấp) PB7 PC0 Port B Nhóm B Hoạt động vi mạch 8255A: Từ sơ đồ khối cấu trúc bên vi mạch 8255A ta thấy cổng 8255A đợc chia thành nhóm: Nhóm A gồm cổng A bit cao cổng C Nhóm B gồm cổng B bit thấp cổng C Cấu hình làm việc nhóm nội dung ghi điều khiển định Vi mạch 8255 giao tiếp với vi xử lý thông qua đờng sau : - Đờng liệu: gồm đờng liệu (D0 - D7) Mã lệnh, liệu đợc truyền đờng - Đờng địa chỉ: gồm đờng (A0 A1) dùng để lựa chọn cổng ghi điều khiển nh trình bày - Đờng điều khiển: gồm đờng RD\, WR\, CS\, Reset dùng để điều khiển việc hoạt động 8255A Để sử dụng cổng làm công cụ giao tiếp, ngời sử dụng phải gửi từ điều khiển ghi điều khiển để 8255A định cấu hình làm việc cho cổng nh yêu cầu ngời lập trình c.Từ điều khiển: Từ điều khiển liệu đợc gửi tới ghi điều khiển (CWR) 8255 Giá trị từ điều khiển xác định cấu hình làm việc cho cổng 8255A, việc lựa chọn chức nhập hay xuất cổng Trong từ điều khiển có bit để phân biệt hai chức điều khiển khác là: + Định nghĩa chế độ cửa (bit D7 từ điều kiển 1) + Lập/xoá bit Port C (bit D7của từ điều khiển 0) Định nghĩa chế độ cổng Khi D7 =1, 8255A sử dụng thông tin CWR để định nghĩa chế độ cửa Nội dung CWR xác định chức 24 đờng ghép nối với thiết bị ngoại vi Phần mềm hệ thống định nghĩa chế độ PA, PB cách độc lập; PC đợc định nghĩa độc lập hay chia làm hai phụ thuộc vào chế độ PA PB 1D6D5D4D3D2D1D0 Nhóm A Nhóm B Mode select 00 = mode 01 = mode 1x = mode 2Cổng A = Input = OutputPCH (4 bit cao) 1=Input 0=Output PCL (4 bit thấp) = Input = OutputPB = Input = OutputMode select = mode 0 = mode Trong chế độ có chế độ làm việc khác tuỳ thuộc vào nội dung hai bit D6D5 , cụ thể là: + Chế độ 0(Vào sở): D 6D5 = 00,ở chế độ 8255A cho khả xuất/nhập liệu đơn giản qua cổng A, B, C cách độc lập + Chế độ : D6D5 =01, chế độ vào có chốt (Strobe), nghĩa có đối thoại ngoại vi hệ VXL thông qua bit cổng C Trong chế độ này, với nhóm A PA dùng để trao đổi số liệu nửa cao PC (PC4 ữ PC7) để đối thoại ngoại vi VXL Còn nhóm B PB dùng để trao đổi số liệu PCL để đối thoại + Chế độ 2: D6D5 =1x Cổng A dùng vào/ra hai chiều, bit PC ữ PC7 dùng làm tín hiệu đối thoại Cổng PB làm việc nh chế độ Lập/xoá bit: Nếu D7=0 CWR lệnh để lập/xoá bit Port C Lệnh cho phép lập/xoá bit C cách độc lập 0D6D5D4D3D2D1D0 1: Lập 0: Xoá Không dùng=000 Cửa CD3 D2 bit bit bit bit bit bit bit 70 0 0 1 1 1 1 D1 bit 1 1 d Ghép nối 8255A với VXL8051 + Với hệ thống đơn giản phối ghép trực tiếp 8255A với VXL Đầu vào /CS đợc nối vào /CSi giải mã địa 74LS138 (sẽ đề cập sau) + Các tín hiệu /RD, /WR 8255 đợc kết nối tơng ứng với tín hiệu điều khiển việc xuất/nhập liệu 8051 + Đầu vào Reset (chân 35) kết nối với chân Reset 8051 muốn 8255A Reset với hệ thống ấn nút reset để mức tích cực thấp + Hai tín hiệu vào địa A1A0 đợc nối trực tiếp vào Bus địa hệ thống A1A0 đợc giải mã bên mạch 8255A để chọn cửa vào/ra A, B, C CWR nh đề cập + Các chân số liệu 8255 kết nối trực tiếp vào Bus số liệu hệ thống mà không cần đệm trạng thái, thân cổng P 8051 có đệm trạng thái e Ghép nối 8255A với thiết bị ngoại vi Phần ghép nối với thiết bị ngoại vi 8255A thông qua 24 đờng số liệu điều khiển cổng A, B, C Các đờng ghép nối đợc định nghĩa chơng trình nh giới thiệu Bằng cách chọn chế độ làm việc thích hợp xác vi mạch 8255A đáp ứng đợc nhu cầu ghép nối tinh vi AD0-AD7 P1 Đệm BUS S/L 74245 D0-D7 PA P2 8051 A0 A1 A14 A15 ALE/P P3.0ữP3 Chốt Đ/C Thấp 74373 Giải mã đ/c (3/8) CS 8255A PB PC (P3.7) RD (P3.6 WR RD WR Thiết kế khối hiển thị Ta sử dụng LED để phụ vụ cho việc hiển thị giá trị nhiệt độ trung bình Để phối ghép VXL LED ta sử dụng thêm vi mạch LS7447 để giải mã BCD nét để điều khiển đèn hiển thị Điều khiển hiển thị số liệu đơn giản ta cung cấp nguồn liên tục cho LED đa số liệu ra, nhng cách tốn lợng số lợng LED sử dụng lớn Vì thực tế đèn LED không đợc thắp sáng liên tục mà sáng luân phiên theo chu kỳ định với thời gian sáng hợp lý (cỡ 20ms) công suất tiêu thụ nhờ giảm mà đạt đợc hiệu hiển thị Một cách thực nguyên tắc hiển thị chế độ động đợc thể dới hình vẽ dới đây: *Nguyên tắc hoạt động: Giá trị số cần hiển thị số đợc gửi đến cổng PA 8255A từ 8051 dới dạng mã BCD Từ số BCD đợc mạch SL7447 giải mã tạo tín hiệu điều khiển thích hợp đa đến chân katot a,b,c,d,e,f,g LED Mỗi giá trị cần hiển thị đợc đa đến cổng PA 2ms lần cho đèn +Sơ đồ đèn LED : +Trong đó: g chân vcc nối với nguồn 5(v) chân GND nối với đát 0(v) chân a,b,c,d,e,f,g ,o nhận tín hiệu ĐK để đk đèn LED tơng ứng + Cấu trúc bên đèn LED bao gồm diode phát quang f vcc a b a f LED 7S b g e c d e d GND c +Với cấu trúc LED nh hình ta có bảng logic sau: A 1 1 1 1 b 1 1 0 1 c 1 1 1 1 d 1 1 1 e 1 0 1 f 0 1 1 g 0 1 1 1 Số hiển thị Các vi mạch phụ trợ khác a Mạch giải mã 74LS138: Nó bao gồm 14 chân, đó: Y0 ữ Y7 đờng địa chỉ, tích cực mức thấp A,B,C đờng địa vào , tích cực cao E1 ,E2 đầu vào cho phép làm viêc , tích cực mức thấp E3 đầu vào cho phép làm viêc , tích cực mức cao Ta có bảng chân chức 74LS138 nh sau: C B A X X X 0 X X X 0 X X X / / E1 /Y0 E1 E2 X X X X X X 0 0 1 /Y1 1 1 /Y2 /Y3 /Y4 /Y5 /Y6 1 1 1 1 1 1 1 1 1` 1 1 1 /Y7 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 b Vi mạch chốt 74HC573: Đây mạch có tác dụng chốt lại số liệu đầu vào có tín hiệu tích cực, đầu không bị biến đổi tín hiệu đầu vào Nó thay đổi tín hiệu chốt tích cực trở lại Bên vỏ có tín hiệu /OE cho phép hoạt động Khi có yêu cầu chốt chân LE đợc tích cực 8051 Trong ghép nối với 8051: + Chân /OE (số 1) 74HC573 đợc nối đất + Chân LE(số 11) 74HC573 đợc nối với chân ALE (số 30) PHầN 2: Xây dựng phần mềm CHƯƠNG : Lu đồ thuật toán 1 1 1.Lu đồ chơng trình a Chơng trình START Cha ấn start? Start Rồi -Khởi tạo chế độ 8255A R2=j=8 -Cho phép ngắt R1=đc đầu -Đọc giá trị kênh từ ADC -Tính trung bình -Hiển thị giá trị trung bình -Kiểm tra xem có thoả mãn? -Cho phép ngắt -Đọc kênh thứ i Chờ đọc xong N Stop? Đọc xong ? b Chơng trình đọc liệu kênh từ ADC Y Y Stop ++R1 j N j=0? Y Dừng N c Chơng trình phục vu ngắt có tín hiệu EOC ADC Start -Đọc kênh thứ i từ ADC -Đổi BCD -Đa gía trị đọc đợc vào vùng nhớ RAM tơng ứng d Chơng trình tính giá trị trung bình kênh đọc đợc từ ADC End Start -Đọc kênh thứ i(0i7) -Chia cho -Phần nguyên =Ai -Phần d=Bi N Đọc xong? Y TBC=Ai+(Bi)/8 e Chơng trình hiển thị LED End Start - Lấy giá trị trung bình - Hiển thị LED - Trễ khoảng End Start - tính g.h trên, dới - Địa đầu R0 = - Số kênh > g.h = i = -Số kênh < g.h dới =j =0 f Ch ơng -Thứ tự trình kênh = kiểm k = tra xem thoả mãn đầu cha? -Số kênh = h = Đọc kênh i Lớn g.h trên? Đ S Đ Nhỏ g.h dới ? Tìm kênh > g.h ++i S S Tìm kênh < g.h dới ++j ++R0 ++k h h=0? Đ i > j>4 S Dừng Đ Báo động Chơng trình viết mã ngữ MAX EQU 30H MIN EQU 31H TB EQU 32H LIM EQU 33H DATA EQU 34H ADC EQU 6000H LED(PA) EQU 4000H PB EQU 4001H PC EQU 4002H CW EQU 4003H ; ; ; ; ; địa MAX địa MIN địa chứa giá trị trung bình địa chứa sai lệch cho phép địa vùng liệu đọc vào ORG 0000H ;Điểm nhập chơng trình LJMP MAIN ORG 0003H ;Điểm nhập ngắt LJMP EX0ISR ORG 0013H ;Điểm nhập ngắt ngâfi LJMP EX1ISR ORG 0030H ;Bat dau chuong trinh chinh ;chơng trình khởi động START: JNB P3.0 ,START ;có tín hiệu khởi động thực chơng trình SETB EA ;Cho phép ngắt hoạt động MOV DPTR , #CW ;nạp địa từ điều khiển MOV A , #80H ;Các cổng 8244 cổng làm việc mode MOVE @DPTR , A *************************************************************************************************** MAIN: LCALL Delay LCALL Input LCALL Cal LCALL Display LCALL Check JB P3.0 , MAIN HERE : SJMP HERE *************************************************************************************************** Input: LOOP1: MOV MOV MOV INC INC DJNZ R2 , #08H ;đếm số kênh R1,#DATA ;địa đầu vùng liệu DPTR , #ADC R1 ; chuyển đến ô nhớ DPTR ;chuyển đến cổng R2 , LOOP1 RET ***************************************************************************************************** EX1IST: SETB EX1 JB P3.5 , Pause MOV A, @ADC ; đọc nội dung ADC vào A MOV B , 64H ;B = 100 MUL AB ;A.B A0 ,B8 15 MOV A,B ;chia 256 = dịch phải bit kết byte cao DA ;đổi BCD MOV @R1 , A ;cất nội dung đọc đợc vào RAM CLR EX1 SJMP next1 Pause: JNB P3.5 , Pause ; nút Pause cha nhả chơng trình dừng CLR EX1 next1 :RETI *************************************************************************************************** Cal: MOV R0 ,#DATA ;lấy địa vùng liệu MOV R2 , #O8H MOV R7 , #00H ;xoá R7 để lu tổng phần nguyên MOV R6 ,#00H ;xoá R6 để lu tổng phần d LOOP2: MOV A ,@DATA ;đọc nhiệt độ từ RAM vào A MOV B , #08H ;số kênh DIV AB ADD A, R7 ;cộng phần nguyên vào R7 MOV R7 , A ;trả lại tổng cho R7 MOV A , B ADD A, R6 ;cộng phần d vào R6 MOV R6 , A ;trả lại tổng cho R6 INC R0 DJNZ R2 , LOOP2 MOV A, R6 MOV B, #08H DIV AB ADD A, R7 MOV R0, #TB ;lấy địa vùng chứa giá trị trung bình MOV @R0, A ;cất giá trị nhiệt độ trung bình kênh vào RAM RET *************************************************************************************************** Display: MOV R0, #TB ;lấy địa lu giá trị trung bình MOV A, @R0 ;nạp giá trị trung bình A MOV DPTR, #LED MOV @DPTR, A ;hiển thị LED RET *************************************************************************************************** Check: MOV R0, #TB MOV A, @R0 ;lấy giá trị trung bình A MOV R1 , #LIM MOV B , @R1 ;lấy giá trị giới hạn B ADD A , B MOV R5, A ;R5 chứa TB + Lim MOV A, @R0 SUBB A, B MOV R4 , A ;R4 chứa TB - Lim MOV R1, #00H ;đếm số kênh nhỏ giới hạn cho phép MOV B, #00H ; đếm số kênh lớn giới hạn cho phép MOV R7, #00H ;đếm thứ tự kênh MOV R6, #08H ;số kênh MOV R3, #00H ;kênh hiển thị lớn (đèn đỏ- PC) MOV R2, #00H ;kênh hiển thị nhỏ (đèn xanh- PB) LOOP3 : MOV R0, #DATA MOV A, @R0 ;lấy nhiệt độ kênh SUBB A, R5 ;so sánh nhiệt độ với TB + Lim JNC n1 ;t0 > TB +Lim nhảy MOV A, @R0 ;lấy lại nhiệt độ kênh SUBB A, R4 ;so sánh nhiệt độ với TB Lim n1: Quay1: n2: Quay2 : nhan : speaker: JC n2 SJMP nhan INC R1 SETB C MOV A, #00H RLC A DJNZ R7, Quay1 OR A, R3 MOV R3, A CLR C SJMP nhan INC B MOV A,#00H RLC A DJNZ R7, Quay2 OR A, R2 MOV R2, A CLR C INC R0 INC R7 DJNZ LOOP3, R6 MOV DPTR, #PC MOV @DPTR, R3 MOV DPTR, #PB MOV @DPTR, R2 MOV R7, B MOV A, @R1 MOV B, #04H SUBB A, B JC speaker MOV A, R7 SUBB A, B JC speaker SJMP kt SETB P3.1 SJMP CHECK ;t0 < TB Lim nhảy ;nhảy nhiệt độ nằm giới hạn ;tăng số kênh vợt giới hạn ;lấy cờ C làm biến trung gian ;quay để nhảy đến vị trí kênh có t0 cao ;kết hợp với trạng thái trớc ;trả cho R3 trạng thái ;xoá cờ C ;tăng số kênh nhỏ giới hạn ;quay để nhảy đến vị trí kênh có t0 thấp ;kết hợp với trạng thái trớc ;trả trạng thái ;chuyển đến kênh ;tăng số kênh ;làm hết với kênh ;địa cổng PC ;hiển thị kênh cao giới hạn ;hiển thị kênh nhỏ giới hạn ;cất số kênh nhỏ giới hạn vào R7 ;lấy số kênh nhỏ giới hạn ;số kênh lớn giới hạn lớn nhảy ;nếu không so sánh số kênh nhỏ ;làm lại không báo động kt: RET *************************************************************************************************** ;chơng trình dịch vụ ngắt ISR0 *************************************************************************************************** EX0ISR: END *************************************************************************************************** Delay: MOV R0,#0FFH N1: MOV R1,#0FFH N2: DJNZ R1,N2 DJNZ R0,N1 RET [...]... bit TMO D Bank 3 18 17 88 8F 8E 8 8C 8B 8A 89 88 TCON D Bank 2 87 Không đợc địa chỉ hoá bit PCON Bank 1 83 Không đợc địa chỉ hoá bit DPH 82 Không đợc địa chỉ hoá bit DPL 10 0F 08 07 Bank thanh ghi 0 00 (Mặc định cho R0 -R7) 81 Không đợc địa chỉ hoá bit SP 88 87 86 85 84 83 82 81 80 P0 2.2.4 Thanh ghi ghi chức năng đặc biệt (SFR= Special Function Registers): Vi điều khiển 80 51 là một bộ vi điều khiển đa... D2 bit 1 bit 2 bit 3 bit 4 bit 5 bit 6 bit 70 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 D1 bit 0 1 0 1 0 1 0 1 0 d Ghép nối 82 55A với VXL8051 + Với hệ thống đơn giản có thể phối ghép trực tiếp 82 55A với VXL Đầu vào /CS đợc nối vào một trong các /CSi của giải mã địa chỉ 74LS1 38 (sẽ đề cập sau) + Các tín hiệu /RD, /WR của 82 55 cũng đợc kết nối tơng ứng với các tín hiệu điều khiển vi c xuất/nhập dữ liệu của 80 51 +... kiện và tổ chức phối ghép 1 Thiết kế bộ nhớ Xem xét cấu trúc của 80 51 và yêu cầu cần 8K cho nhớ chơng trình ta thiết kế thêm vùng nhớ chơng trình dùng thêm 4Kb ROM đặt ở ngoài Đối với yêu cầu cho nhớ dữ liệu, vì 80 51 đã có 1 28 bytes RAM trong và yêu cầu cần thiết kế bộ nhớ dữ liệu là 8Kb nên để dễ dàng cho thiết kế ta sử dụng thêm 8Kb RAM ngoài để mở rộng bộ nhớ dữ liệu cho hệ thống Nguyên tắc phối... phẳng ( loại bỏ hết các đột biến dơng ) ở ngõ ra để cung cấp cho mạch 2 Khối vi điều khiển 80 51 : VXL8051 đóng vai trò trung tâm trong hệ thống Nó có nhiệm vụ tơng tác với các khối nh vi c nhận, xử lý và chuyển dữ liệu tới các khối 80 51 đảm nhận tất cả các nhiệm vụ từ vi c nhận dữ liệu vào dới dạng tín hiệu nhị phân ở 8 cổng vào, xử lý dữ liêụ, chuyển dữ liệu thành mã Hexa và mã 7 đo n, lu giữ dữ liệu... 99 98 SCON D 26 37 36 35 34 33 32 31 30 25 2F 2E 2 2 2B 2 29 28 D C A 90 97 96 95 94 93 92 91 90 P1 24 27 26 25 24 23 22 21 20 23 1F 1E 1 1 1B 1 19 18 D C A 8D Không đợc địa chỉ hoá bit TH1 22 17 16 15 14 13 12 11 10 8C Không đợc địa chỉ hoá bit TH0 21 0F 0E 0 0 0B 0 09 08 D C A 8B Không đợc địa chỉ hoá bit TL1 20 07 06 05 04 03 02 01 00 8A Không đợc địa chỉ hoá bit TL0 1F 89 Không đợc địa chỉ hoá bit. .. hoạt động hai chiều, dẫn tín hiệu điều khiển từ vi xử lý ra các thiết bị bên ngoài đồng thời nhận các dữ liệu từ các thiết bị điều khiển bên ngoài vào vi xử lý Chân 35 (Reset input): ngõ vào xóa, chân reset phải đợc nối với tín hiệu reset out của vi xử lý để không làm ảnh hớng đến mạch điều khiển Khi reset, các cổng của 82 55A là các ngõ vào, đồng thời tất cả các dữ liệu trên thanh ghi bên trong 82 55A... ngoại vi Độ rộng bus địa chỉ của bộ nhớ số liệu ngoài có thể là 8 bit hoặc 16 bit Bus địa chỉ rộng 8 bit thờng đợc sử dụng để liên kết với một hoặc nhiều đờng vào ra khác để định địa chỉ cho RAM theo trang Trong trờng hợp bus địa chỉ rộng 16 bit, cổng P2 sẽ phát ra 8 bit địa chỉ cao còn cổng P1 sẽ phát ra 8 bit địa chỉ thấp Bằng cách này, ta có thể truy nhập trực tiếp lên bộ nhớ dữ liệu ngoài với độ lớn... trong các hệ VXL 8 16 bit Sử dụng 82 55A làm cho vi c thiết kế để ghép nối bộ VXL với các thiết bị ngoại vi đơn giản đi nhiều, độ mềm dẻo của thiết kế sẽ tăng lên và linh kiện phụ trợ đi kèm cũng giảm đi nhiều Do có khả năng lập trình đợc nên nó có thể vừa dùng nh cổng nhận số liệu cũng nh xuất số liệu tuỳ nội dung của từ điều khiển mà ngời lập trình đa vào a Sơ đồ chân và sơ đồ chức năng của 82 55A Sơ... dụng vi mạch LS7447 để giải mã số BCD ra mã 7 thanh và để điều khiển bộ đèn hiển thị 4 Khối các thiết bị giao tiếp/ghép nối Cổng vào ra tơng tự/số dùng ADC 080 9 Số liệu vào tơng tự từ 8 cảm biến nhiệt độ sẽ đợc kết nối vào 8 cổng vào của ADC, ADC đợc điều khiển bởi VXL8051 thực hiện vi c chuyển đổi số liệu sang dạng số và lu trữ vào một vùng nào đó trong RAM trong Cổng vào/ ra số dùng vi mạch PPI 82 55... ngoài ta sử dụng loại SRAM vi mạch dùng trong thiết kế là 6264 Cũng có 12 đờng địa chỉ 8 đờng dữ liệu Nó có địa chỉ 2000ữ2FFF, địa chỉ này đợc chọn ra trong vùng địa chỉ của vi điều khiển bởi chân /CS1 của giải mã địa chỉ và có hai đờng tín hiệu yêu cầu đọc vi t là /OE, /WE 2 Vi mạch ADC 080 9 Bộ ADC 080 9 là một thiết bị CMOS tích hợp với một bộ chuyển đổi tơng sang số 8 bit, bộ chọn kênh và mật bộ

Ngày đăng: 23/06/2016, 17:53

TỪ KHÓA LIÊN QUAN

w