Vi xử lý và đo lường

39 564 1
Vi xử lý và đo lường

Đ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

Vi xử lý và đo lường

Đồ án môn: Vi xử Đo lờng Sinh viên: Chu Tiến Đạt Đồ án môn: Vi Xử Đo Lờng. Yêu cầu của đề bài 1. Phần cứng: + Bộ Vi điều khiển 8051. + Bộ nhớ chơng trình Rom 8k byte từ địa chỉ 0000H + Bộ nhớ dữ liệu Ram 4k byte về địa chỉ tùy chọn. + Cổng vào ra tơng tự gồm n kênh nhận tín hiệu nhiệt độ từ 0~5V, tơng ứng trong trờng hợp m từ các cổng vào ra các mạch điều khiển. + Thiết bị đo nhiệt độ tùy chọn. 2. 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 tín hiệu từ n kênh đo, lu trữ trong vùng Ram. + Sau mỗi lần đọc đánh giá, giá trị trung bình của nhiệt độ gửi kết quả ra cổng hiển thị Led. + So sánh nhiệt độ trung bình với từng kênh, nếu cao hơn hoặc thấp hơn gửi kết quả báo ra từng kênh. (giá trị cho phép này đặt tại ô nhớ của Ram). + Chơng trình dừng lại báo động bằng còi nếu xảy ra các điều kiện sau: - Giá trị trung bình hoặc giá trị min hoặc max tơng ứng cho trớc. Các giá trị min hoặc max này đặt trong hai ô nhớ của Ram. Có i kênh đo vợt quá hoặc nhỏ hơn giá trị giới hạn cho phép so với giá trị trung bình. - n = số d ( phép chia STT:3) +5. - m= số d ( phép chia STT:4) - 0 từ 0~200C - 1 từ 0~300C - 2 từ 0~400C - 3 từ 0~500C - i= phần nguyên của phép chia n:2 Yêu cầu viết 30~40 trang. ************************************************************************** Chơng 1. Tổng quan về vi điều khiển Giới thiệu về các họ vi xử các họ vi điều khiển thông dụng Lịch sử phát triển của bộ vi xử bộ vi điều khiển Sự ra đời là phát triển nhanh chóng của kỹ thuật vi điện tử là đặc tr ng là kỹ thuật vi xử lí đã tạo ra một b ớc ngoặt quan trọng trong sự phát triển của khoa học tính toán, điều khiển vi xử lí thông tin. Kỹ thuật vi xử lí đóng một vai trò rất quan trọng trong tất cả các lĩnh vực của cuộc sống khoa học kỹ thuật, đặc biệt là lĩnh vực Tin học Tự động hóa. Năm 1971, hãng Intel đã cho ra đời bộ vi xử lí (microprocessor) đầu tiên trên thế giới tên gọi là Intel-4004/4bit , nhằm đáp ứng nhu cầu cấp thiết của một công ty kinh doanh là hãng truyền thông BUSICOM. Intel-4004 là kết quả của một ý t ởng quan trọng trong kỹ thuật vi xử lí số. Đó là một kết cấu logic mà có thể thay đổi đ ợc chức năng của nó bằng ch ơng trình ngoài chứ không phát triển theo h ớng tạo ra một cấu trúc cứng chỉ thực hiện một số chức năng nhất định nh tr ớc đây. Sau đó, các bộ vi xử lí mới liên tục đ ợc đ a ra thị tr ờng ngày càng đ ợc phát triển, hoàn thiện hơn trong các thế hệ sau : Vào năm 1972, hãng Intel đ a ra bộ vi xử lí 8-bit đầu tiên với tên Intel-8008/8bit. Từ 1974 đến 1975 , Intel chế tạo các bộ vi xử lí 8-bit 8080 8085A. Cũng vào khoảng thời gian này, một loạt các hãng khác trên thế giới cũng đã cho ra đời các bộ vi xử lí t ơng tự nh : 6800 của Motorola với 5000 tranzitor, Signetics 6520, 1801 của RCA, kế đến là 6502 của hãng MOS Technology Z80 của hãng Zilog. ****************************************** Chơng 2. Các bộ vi điều khiển 2.1 Các bộ vi điều khiển v các bộ xử nhúng. 1 Đồ án môn: Vi xử Đo lờng Sinh viên: Chu Tiến Đạt Trong mục n y chúng ta b n về nhu cầu đối với các bộ vi điều khiển (VĐK) v so sánh chúng với các bộ vi xử cùng dạng chung nh Pentium v các bộ vi xử ì 86 khác. Chúng ta cùng xem xét vai trò của các bộ vi điều khiển trong thị tr ờng các sản phẩm nhúng. Ngo i ra, chúng ta cung cấp một số tiêu chuẩn về cách lựa chọn một bộ vi điều khiển nh thế n o. 2.2 Bộ vi điều khiển so với bộ vi xử cùng dùng chung Sự khác nhau giữa một bộ vi điều khiển v một bộ vi xử l gì? Bộ vi xử ở đây l các bộ vi xử công dung chung nh họ Intell là 86 (8086, 80286, 80386, 80486 v Pentium) hoặc họ Motorola 680 là 0(68000, 68010, 68020, 68030, 68040 v.v .). Những bộ VXL n y không có RAM, ROM v không có các cổng v o ra trên chíp. Với do đó m chúng đ ợc gọi chung l các bộ vi xử công dụng chung. Hình 2.1: Hệ thống vi xử đ ợc so sánh với hệ thống vi điều khiển. a) Hệ thống vi xử công dụng chung b) Hệ thống vi điều khiển Một nh thiết kế hệ thống sử dụng một bộ vi xử công dụng chung chẳng hạn nh Pentium hay 68040 phải bổ xung thêm RAM , ROM, các cổng v o ra v các bộ định thời ngo i để l m cho chúng hoạt động đ ợc. Mặc dù việc bổ xung RAM, ROM v các cổng v o ra bên ngo i l m cho hệ thống cồng cềnh v đắt hơn, nh ng chúng có u điểm l linh hoạt chẳng hạn nh ng ời thiết kế có thể quyết định về số l ợng RAM, ROM v các cổng v o ra cần thiết phù hợp với b i toán trong tầm tay của mình. Điều n y không thể có đ ợc đối với các bộ vi điều khiển. Một bộ vi điều khiển có một CPU (một bộ vi xử lý) cùng với một l ợng cố định RAM, ROM, các cổng v o ra v một bộ định thời tất cả trên cùng một chíp. Hay nói cách khác l bộ xử lý, RAM, ROM các cổng v o ra v bộ định thời đều đ ợc nhúng với nhau trên một chíp; do vậy ng ời thiết kế không thể bổ xung thêm bộ nhớ ngo i, cổng v o ra hoặc bộ định thời cho nó. Số l ợng cố định của RAM, ROM trên chíp v số các cổng v o - ra trong các bộ vi điều khiển l m cho chúng trở nên t ởng đối với nhiều ứng dụng m trong đó giá th nh v không gian lại hạn chế. Trong nhiều ứng dụng, dụ một điều khiển TV từ xa thì không cần công suất tính toán của bộ vi sử 486 hoặc thậm chí nh 8086. Trong rất nhiều ứng dụng thì không gian nó chiếm, công suất nó tiêu tốn v giá th nh trên một đơn vị l những cân nhắc nghiêm ngặt hơn nhiều so với công suất tính toán. Những ứng dụng th ờng yêu cầu một số thao tác v o - ra để đọc các tín hiệu v tắt - mở những bit nhất định. do n y m một số ng ời gọi các bộ xử n y l IBP (Itty- Bitty-Processor), (tham khảo cuốn Good things in small packages are Generating Big product opportunities do Rick Grehan viết trên tạp BYTE tháng 9.1994; WWW. Byte. Com để biết về những trao đổi tuyệt vời về các bộ vi điều khiển). Điều thú vị l một số nh sản xuất các bộ vi điều khiển đã đi xa hơn l tích hợp cả một 2 Đồ án môn: Vi xử Đo lờng Sinh viên: Chu Tiến Đạt bộ chuyển đổi ADC v các ngoại vi khác v o trong bộ vi điều khiển. Chơng 3. Sơ lợc về các bộ định thời, bản đồ Ram, Rom 3.1 Bộ đếm ch ơng trình trong 8051. Một thanh ghi quan trọng khác trong 8051 l bộ đếm ch ơng trình . Bộ đếm ch ơng trình chỉ đếm địa chỉ của lệnh kế tiếp cần đ ợc thực hiện. Khi CPU nạp mã lệnh từ bộ nhớ ROM ch ơng trình thì bộ đếm ch ơng trình tăng lên chỉ đếm lệnh kết tiếp. Bộ đếm ch ơng trình trong 8051 có thể truy cập các địa chỉ ch ơng trình trong 8051 rộng 16 bit. Điều n y có nghĩa l 8051 có thể truy cập các địa chỉa ch ơng trình từ 0000 đến FFFFH tổng cộng l 64k byte mã lệnh. Tuy nhiên, không phải tất cả mọi th nh viên của 8051 đều có tất cả 64k byte ROM trên chíp đ ợc c i đặt. Vậy khi 8051 đ ợc bật nguồn thì nó đánh thức ở địa chỉa n o? 3.2 Địa chỉ bắt đầu khi 8051 đ ợc cấp nguồn. Một câu hỏi m ta phải hỏi về bộ vi điều khiển bất kỳ l thì nó đ ợc cấp nguồn thì nó bắt đầu từ địa chỉ n o? Mỗi bộ vi điều khiển đều khác nhau. Trong tr ờng hợp họ 8051 thì mọi th nh viên kể từ nh sản xuất n o hay phiên bản n o thì bộ vi điều khiển đều bắt đầu từ địa chỉ 0000 khi nó đ ợc bật nguồn. Bật nguồn ở đây có nghĩa l ta cấp điện áp Vcc đến chân RESET nh sẽ trình b y ở ch ơng 4. Hay nói cách khác, khi 8051 đ ợc cấp nguồn thì bộ đếm ch ơng trình có giá trị 0000. Điều n y có nghĩa l nó chờ mã lệnh đầu tiên đ ợc l u ở địa chỉa ROM 0000H. do n y m trong vị trí nhớ 0000H của bộ nhở ROM ch ơng trình đây l nơi m nó tìm lệnh đầu tiên khi bật nguồn. Chúng ta đạt đ ợc điều n y bằng câu lệnh ORG trong ch ơng trình nguồn nh đã trình b y tr ớc đây. D ới đây l hoạt động từng b ớc của bộ đếm ch ơng trình trong qúa trình nạp v thực thi một ch ơng trình mẫu. 3.3 Đặt mã v o ROM ch ơng trình. Để hiểu tốt hơn vai trò của bộ đếm ch ơng trình trong quá trình nạp v thực thi một ch ơng trình, ta khảo sát một hoạt động của bộ đếm ch ơng trình khi mỗi lệnh đ ợc nạp v thực thi. Tr ớc hết ta khảo sát một lần nữa tệp liệt kê của ch ơng trình mẫu v cách đặt mã v o ROM ch ơng trình 8051 nh thế n o? Nh ta có thể thấy, mã lệnh v toán hạng đối với mỗi lệnh đ ợc liệt kê ở bên trái của lệnh liệt kê. Đây l một chuỗi các câu lệnh hoặc các dòng lệnh đ ợc viết hoặc bằng các lệnh hợp ngữ nh ADD v MOV hoặc bằng các câu lệnh đ ợc gọi l các chỉ dẫn. Trong khi các lệnh hợp ngữ thì nói CPU phải l m gì thì các chỉ lệnh (hay còn gọi l giả lệnh) thì đ a ra các chỉ lệnh cho hợp ngữ. dụ, trong ch ơng trình 2.1 thì các lệnh ADD v MOV l các lệnh đến CPU, còn ORG v END l các chỉ lệnh đối với hợp ngữ. ORG nói hợp ngữ đặt mã lệnh tại ngăn nhớ 0 v END thì báo cho hợp ngữ biết kết thúc mã nguồn. Hay nói cách khác một chỉ lệnh để bắt đầu v chỉ lệnh thứ hai để kết thúc ch ơng trình. Cấu trúc của một lệnh hợp ngữ có 4 tr ờng nh sau: [nhãn:] [từ gợi nhớ] [các toán hạng] [; chú giải] Các tr ờng trong dấu ngoặc vuông l tuỳ chọn v không phải dòng lệnh n o cũng có chúng. Các dấu ngoặc vuông không đ ợc viết v o. Với dạng thức trên đây cần l u ý các điểm sau: Tr ờng nhãn cho phép ch ơng trình tham chiếu đến một dòng lệnh bằng tên. Nó không đ ợc viết quá một số ký tự nhất định. Hãy kiểm tra quy định n y của hợp ngữ m ta sử dụng. Từ gợi nhớ (lệnh) v các toán hạng l các tr ờng kết hợp với nhau thực thi công việc thực tế của ch ơng trình v ho n thiện các nhiệm vụ m ch ơng trình đ ợc viết cho chúng. Trong hợp ngữ các câu lệnh nh : ADD A, B MOV A, #67H Thì ADD v MOV l những từ gơi nhớ tạo ra mã lệnh, còn A, B v A, #67H l những toán hạng thì hai tr ờng có thể chứa các lệnh giả hoặc chỉ lệnh của hợp ngữ. Hãy nhớ rằng các chỉ lệnh không tạo ra mã lệnh n o (mã máy) v chúng chỉ dùng bởi hợp ngữ, ng ợc lại đối với các lệnh l chúng đ ợc dịch ra mã máy (mã lênh) cho CPU thực hiện. Trong ch ơng trình 2.1 các lệnh ORG v END l các chỉ lệnh (một số hợp ngữ của 8051 sử dụng 3 Đồ án môn: Vi xử Đo lờng Sinh viên: Chu Tiến Đạt dạng .ORG v .END). Hãy đọc quy định cụ thể của hợp ngữ ta sử dụng. Tr ơng chú giải luôn phải bắt đầu bằng dấu chấm phẩy (;). Các chú giải có thể bắt đầu ở đầu dòng hoặc giữa dòng. Hợp ngữ bỏ qua (l m ngơ) các chú giải nh ng chúng lại rất cần thiết đối với lập trình viên. Mặc dù các chú giải l tuỳ chọn, không bắt buộc nh ng ta nên dùng chúng để mô tả ch ơng trình để giúp cho ng ời khác đọc v hiểu ch ơng trình dễ d ng hơn. L u ý đến nhãn HERE trong tr ờng nhãn của ch ơng trình 2.1. Một nhãn bất kỳ tham chiếu đến một lệnh phải có dấu hai chấm (:) đứng ở sau. Trong câu lệnh nhảy ngắn SJMP thì 8051 đ ợc ra lệnh ở lại trong vòng lặp n y vô hạn. Nếu hệ thống của chúng ta có một ch ơng trình giám sát thì takhông cần dòng lệnh n y v nó có thể đ ợc xoá đi ra khỏi ch ơng trình. 3.4 Tệp liệt kê Sau khi ch ơng trình đ ợc đốt v o trong ROM của th nh viên họ 8051 nh 8751 hoặc AT 8951 hoặc DS 5000 thì mã lệnh v toán hạng đ ợc đ a v o các vị trí nhớ ROM bắt đầu từ địa chỉ 0000 nh bảng liệt kê d ới đây. Địa chỉ ROM Ngôn ngữ máy Hợp ngữ 0000 7D25 MOV R5, #25H 0002 7F34 MOV R7, #34H 0004 7400 MOV A, #0 0006 2D ADD A, R5 0007 2F ADD A, R7 0008 2412 ADD A, #12H 000A 80EF HERE: SJMP HERE Bảng nội dung ROM Bảng liệt kê chỉ ra địa chỉ 0000 chứa mã 7D l mã lệnh để chuyển một giá trị v o thanh ghi R5 v địa chỉ 0001 chứa toán hạng (ở đây l giá trị 254) cần đ ợc chuyển v o R5. Do vậy, lệnh MOV R5, #25H có mã l 7D25 trong đó 7D l mã lệnh, còn 25 l toán hạng. T ơng tự nh vậy, mã máy 7F34 đ ợc đặt trong các ngăn nhớ 0002 v 0003 v biểu diễn mã lệnh v toán hạng đối với lệnh MOV R7, #34H. Theo cách nh vậy, mã máy 7400 đ ợc đặt tại địa chỉ 0004 v 0005 v biểu diễn mã lệnh v toán hạng đối với lệnh MOV A, #0. Ngăn nhớ 0006 có mã 2D l mã đối với lệnh ADD A, R5 v ngăn nhớ 0007 có nội dung 2F l mã lệnh cho ADD A, R7. Mã lệnh đối với lệnh ADD A, #12H đ ợc đặt ở ngăn nhớ 0008 v toán hạng 12H đ ợc đặt ở ngăn nhớ 0009. Ngăn nhớ 000A có mã lệnh của lệnh SJMP v địa chỉ đích của nó đ ợc đặt ở ngăn nhớ 000B. do sao địa chỉ đích l FE đ ợc giải thích ở 3.5 Bản đồ nhớ ROM trong họ 8051. Nh ta đã thấy ở ch ơng tr ớc, một số th nh viên họ 8051 chỉ có 4k byte bộ nhớ ROM trên chíp (ví dụ 8751, AT 8951) v một số khác nh AT 8951 có 8k byte ROM, DS 5000-32 của Dallas Semiconductor có 32k byte ROM trên chíp. Dallas Semiconductor cũng có motọ 8051 với ROM trên chíp l 64k byte. Điểm cần nhớ l không có th nh viên n o của họ 8051 có thể truy cập đ ợc hơn 64k byte mã lệnh bộ đếm ch ơng trình của 8051 l 16 bit (dải địa chỉ từ 0000 đến FFFFH). Cần phải ghi nhớ l lệnh đầu tiên của ROM ch ơng trình đều đặt ở 0000, còn lệnh cuối cùng phụ thuộc v o dung l ợng ROM trên chíp của mỗi th nh viên họ 8051. Trong số các th nh viên họ 8051 thì 8751 v AT 8951 có 4k byte ROM trên chíp. Bộ nhớ ROM trên chíp n y có các địa chỉ từ 0000 đến 0FFFH. Do vậy, ngăn nhớ đầu tiên có địa chỉ 0000 v ngăn nhớ cuối cùng có địa chỉa 0FFFH. Hãy xét dụ. dụ: Tìm địa chỉ bộ nhớ ROM của mỗi th nh viên họ 8051 sau đây. a) AT 8951 (hoặc 8751) với 4k byte b) DS 5000-32 với 32k byte Lời giải: 4 Đồ án môn: Vi xử Đo lờng Sinh viên: Chu Tiến Đạt a) Với 4k byte của không gian nhớ ROM trên chíp ta có 4096 byte bằng 1000H ở dạng Hex (4 ì 1024 = 4096 hay 1000 ở dạng Hex). Bộ nhớ n y đ ợc xắp xếp trong các ngăn nhớ từ 0000 đến 0FFFFH. L u ý 0 luôn l ngăn nhớ đầu tiên. b) Với 32k byte nhớ ta có 32.768 byte (32 ì 1024). Chuyển đổi 32.768 về số Hex ta nhận đ ợc giá trị 8000H. Do vậy, không gian nhớ l dải từ 0000 đến 7FFFH. Dải địa chỉ của ROM trên chíp một số th nh viên họ 8051 . 3.6 Các kiểu dữ liệu v các chỉ lệnh . a) Phân bố không gian bộ nhớ RAM trong 8051. Có 128 byte RAM trong 8051 (một số th nh viên đang chú ý l 8052 có 256 byte RAM). 128 byte RAM bên trong 8051 đ ợc gán địa chỉ từ 00 đến 7FH. Nh ta sẽ thấy ở ch ơng 5, chúng có thể đ ợc truy cập trực tiếp nh các ngăn nhớ 128 byte RAM n y đ ợc phân chia th nh từng nhóm nh sau: 1. Tổng cộng 32 byte từ ngăn nhớ 00 đến 1FH đ ợc d nh cho các thanh ghi v ngăn xếp. 2. Tổng cộng 16 byte từ ngăn nhớ 20H đến 2FH đ ợc d nh cho bộ nhớ đọc/ ghi đánh địa chỉ đ ợc theo bit. Ch ơng 8 sẽ b n chi tiết về bộ nhớ v các lệnh đánh địa chỉ đ ợc theo bit. 3. Tổng cộng 80 byte từ ngăn nhớ 30H đến 7FH đ ợc dùng cho l u đọc v ghi hay nh vẫn th ờng gọi l bảng nháp (Serach pad). Những ngăn nhớ n y (80 byte) của RAM đ ợc sử dụng rộng rãi cho mục đích l u dữ liệu v tham số bởi các lập trình viên 8051. Chúng ta sẽ sử dụng chúng ở các ch ơng sau để l u dữ liệu nhận v o CPU qua các cổng v o-ra. b) Các băng thanh ghi trong 8051. Nh đã nói ở tr ớc, tổng cộng 32 byte RAM đ ợc d nh riêng cho các băng thanh ghi v ngăn xếp. 32 byte n y đ ợc chia ra th nh 4 băng các thanh ghi trong đó mỗi băng có 8 thanh ghi từ R0 đến R7. Các ngăn nhớ RAM số 0, R1 l ngăn nhớ RAM số 1, R2 l ngăn nhớ RAM số 2 v.v . Băng thứ hai của các thanh ghi R0 đến R7 bắt đầu từ thanh nhớ RAM số 2 cho đến ngăn nhớ RAM số 0FH. Băng thứ ba bắt đầu từ ngăn nhớ 10H đến 17H v cuối cùng từ ngăn nhớ 18H đến 1FH l dùng cho băng các thanh ghi R0 đến R7 thứ t . 5 Đồ án môn: Vi xử Đo lờng Sinh viên: Chu Tiến Đạt Ngăn xếp các thanh nhớ RAM trong 8051 Các băng thanh ghi của 8051 v địa chỉ của chúng . Nh ta có thể nhìn thấy từ hình 2.5 băng 1 sử dụng cùng không gian RAM nh ngăn xếp. Đây l một vấn đề chính trong lập trình 8051. Chúng ta phải hoặc l không sử dụng băng 1 hoặc l phải đánh một không gian khác của RAM cho ngăn xếp Chơng 4. Lập trình cho cổng v o - ra I/0, các Timer. 4.1 Mô tả chân của 8051. Mặc dù các th nh viên của họ 8051 (ví dụ 8751, 89C51, DS5000) đều có các kiểu đóng vỏ khác nhau, chẳng hạn nh hai h ng chân DIP (Dual In-Line Pakage) dạng vỏ dẹt vuông QFP (Quad Flat Pakage) v dạng chíp không có chân đỡ LLC (Leadless Chip Carrier) thì chúng đều có 40 chân cho các chức năng khác nhau nh v o ra I/0, đọc RD , ghi WR , địa chỉ, dữ liệu v ngắt. Cần phải l u ý rằng một số hãng cung cấp một phiên bản 8051 có 20 chân với số cổng v o-ra ít hơn cho các ứng dụng yêu cầu thấp hơn. Tuy nhiên, hầu hết các nh phát triển chính sử dụng chíp đóng vỏ 40 chân với hai h ng chân DIP nên ta chỉ tập chung mô tả phiên bản n y. 6 Đồ án môn: Vi xử Đo lờng Sinh viên: Chu Tiến Đạt Sơ đồ bố trí chân của 8051. Trên hình l sơ đồ bố trí chân của 8051. Ta thấy rằng trong 40 chân thì có 32 chân d nh cho các cổng P0, P1, P2 v P3 với mỗi cổng có 8 chân. Các chân còn lại đ ợc d nh cho nguồn VCC, đất GND, các chângiao động XTAL1 v XTAL2 tái lập RST cho phép chốt địa chỉ ALE truy cập đ ợc địa chỉ ngo i EA , cho phép cất ch ơng trình PSEN . Trong 8 chân n y thì 6 chân VCC , GND, XTAL1, XTAL2, RST v EA đ ợc các họ 8031 v 8051 sử dụng. Hay nói cách khác l chúng phải đ ợc nối để cho hệ thống l m việc m không cần biết bộ vi điều khiển thuộc họ 8051 hay 8031. Còn hai chân khác l PSEN v ALE đ ợc sử dụng chủ yếu trong các hệ thống dựa trên 8031. 1. Chân VCC: Chân số 40 l VCC cấp điện áp nguồn cho chíp. Nguồn điện áp l +5V. 2. Chân GND: Chân GND: Chân số 20 l GND. 3. Chân XTAL1 v XTAL2: 8051 có một bộ giao động trên chíp nh ng nó yêu cầu có một xung đồng hồ ngo i để chạy nó. Bộ giao động thạch anh th ờng xuyên nhất đ ợc nối tới các chân đầu v o XTAL1 (chân 19) v XTAL2 (chân 18). Bộ giao động thạch anh đ ợc nối tới XTAL1 v XTAL2 cũng cần hai tụ điện giá trị 30pF. Một phía của tụ điện đ ợc nối xuống đất nh đ ợc trình b y trên hình vẽ. Cần phải l u ý rằng có nhiều tốc độ khác nhau của họ 8051. Tốc độ đ ợc coi nh l tần số cực đại của bộ giao động đ ợc nối tới chân XTAL. dụ, một chíp 12MHz hoặc thấp hơn. T ơng tự nh vậy thì một bộ vi điều khiển cũng yêu cầu một tinh thể có tần số không lớn hơn 20MHz. Khi 8051 đ ợc nối tới một bộ giao động tinh thể thạch anh v cấp nguồn thì ta có thể quan sát tần số trên chân XTAL2 bằng máy hiện sóng. Nếu ta quyết định sử dụng một nguồn tần số khác bộ giao động thạch anh chẳng hạn nh l bộ giao động TTL thì nó sẽ đ ợc nối tới chân XTAL1, còn chân XTAL2 thì để hở không nối. 7 Đồ án môn: Vi xử Đo lờng Sinh viên: Chu Tiến Đạt Nối XTAL tới 8051 b) Nối XTAL tới nguồn đồng bộ ngo i. 4. Chân RST. Chân số 9 l chân tái lập RESET. Nó l một đầu v o v có mức tích cực cao (bình th ờng ở mức thấp). Khi cấp xung cao tới chân n y thì bộ vi điều khiển sẽ tái lập v kết thúc mọi hoạt động. Điều n y th ờng đ ợc coi nh l sự tái bật nguồn. Khi kích hoạt tái bật nguồn sẽ l m mất mọi giá trị trên các thanh ghi. Bảng 4.1 cung cấp một cách liệt kê các thanh ghi của 8051 v các giá trị của chúng sau khi tái bật nguồn. 4.2 Lập trình cho bộ đếm/ bộ định thời trong 8051 8051 có hai bộ định thời/ bộ đếm. Chúng có thể đ ợc dùng nh các bộ định thời để tạo một bộ trễ thời gian hoặc nh các bộ đếm để đếm các sự kiện xảy ra bên ngo i bộ BVĐK. Trong ch ơng n y chúng ta sẽ tìm hiểu về cách lập trình cho chúng v sử dụng chúng nh thế n o? 4.3 Lập trình các bộ định thời gian của 8051. 8051 có hai bộ định thời l Timer 0 v Timer1, ở phần n y chúng ta b n về các thanh ghi của chúng v sau đó trình b y cách lập trình chúng nh thế n o để tạo ra các độ trễ thời gian. 4.4 Các thanh ghi cơ sở của bộ định thời. Cả hai bộ định thời Timer 0 v Timer 1 đều có độ d i 16 bít đ ợc truy cập nh hai thanh ghi tách biệt byte thấp v byte cao. Chúng ta sẽ b n riêng về từng thanh ghi. 4.5 Các thanh ghi của bộ Timer 0. Thanh ghi 16 bít của bộ Timer 0 đ ợc truy cập nh byte thấp v byte cao. Thanh ghi byte thấp đ ợc gọi l TL0 (Timer 0 bow byte) v thanh ghi byte cao l TH0 (Timer 0 High byte). Các thanh ghi n y có thể đ ợc truy cập nh mọi thanh ghi khác chẳng hạn nh A, B, R0, R1, R2 v.v . dụ, lệnh MOV TL0, #4FH l chuyển giá trị 4FH v o TL0, byte thấp của bộ định thời 0. Các thanh ghi n y cũng có thể đ ợc đọc nh các thanh ghi khác. dụ MOV R5, TH0 l l u byte cao TH0 của Timer 0 v o R5. Các thanh ghi của bộ Timer 0. 4.6 Các thanh ghi của bộ Timer 1. Bộ định thời gian Timer 1 cũng d i 16 bít v thanh ghi 16 bít của nó đ ợc chia ra th nh hai byte l TL1 v TH1. Các thanh ghi n y đ ợc truy cập v đọc giống nh các thanh ghi của bộ Timer 0 ở trên. 8 Đồ án môn: Vi xử Đo lờng Sinh viên: Chu Tiến Đạt Các thanh ghi của bộ Timer 1. 4.7 Thanh ghi TMOD (chế độ của bộ định thời). Cả hai bộ định thời Timer 0 v Timer 1 đều dùng chung một thanh ghi đ ợc gọi l IMOD để thiết lập các chế độ l m việc khác nhau của bộ định thời. Thanh ghi TMOD l thanh ghi 8 bít gồm có 4 bít thấp đ ợc thiết lập d nh cho bộ Timer 0 v 4 bít cao d nh cho Timer 1. Trong đó hai bít thấp của chúng dùng để thiết lập chế độ của bộ định thời, còn 2 bít cao dùng để xác định phép toán. Các phép toán n y sẽ đ ợc b n d ới đây. Thanh ghi TMOD. 4.8 Các bít M1, M0: L các bít chế độ của các bộ Timer 0 v Timer 1. Chúng chọn chế độ của các bộ định thời: 0, 1, 2 v 3. Chế độ 0 l một bộ định thời 13, chế độ 1 l một bộ định thời 16 bít v chế độ 2 l bộ định thời 8 bít. Chúng ta chỉ tập chung v o các chế độ th ờng đ ợc sử dụng rộng rãi nhất l chế độ 1 v 2. Chúng ta sẽ sớm khám phá ra các đặc tính củ các chế độ n y sau khi khám phần còn lại của thanh ghi TMOD. Các chế độ đ ợc thiết lập theo trạng thái của M1 v M0 nh sau: 4.9 C/ T (đồng hồ/ bộ định thời). Bít n y trong thanh ghi TMOD đ ợc dùng để quyết định xem bộ định thời đ ợc dùng nh một máy tạo độ trễ hay bộ đếm sự kiện. Nếu bít C/T = 0 thì nó đ ợc dùng nh một bộ định thời tạo độ chễ thời gian. Nguồn đồng hồ cho chế độ trễ thời gian l tần số thạch anh của 8051. ở phần n y chỉ b n về lựa chọn n y, công dụng của bộ định thời nh bộ đếm sự kiện thì sẽ đ ợc b n ở phần kế tiếp. dụ: Hãy hiển thị xem chế độ n o v bộ định thời n o đối với các tr ờng hợp sau: a) MOV TMOD, #01H b) MOV TMOD, #20H c) MOV TMDO, #12H Lời giải: Chúng ta chuyển đổi giá trị từ số Hex sang nhị phân v đối chiếu hình 93 ta có: a) TMOD = 0000 0001, chế độ 1 của bộ định thời Timer 0 đ ợc chọn. b) TMOD = 0010 0000, chế độ 1 của bộ định thời Timer 1 đ ợc chọn. c) TMOD = 0001 0010, chế độ 1 của bộ định thời Timer 0 v chế độ 1 của Timer 1 đ ợc chọn. 4.10 Nguồn xung đồng hồ cho bộ định thời: Nh chúng ta biết, mỗi bộ định thời cần một xung đồng hồ để giữ nhịp. Vậy nguồn xung đồng hồ cho các bộ định thời trên 8051 lấy ở đâu? Nếu C/T = 0 thì tần số thạch anh đi liền với 8051 đ ợc l m nguồn cho đồng hồ của bộ định thời. Điều đó có nghĩa l độ lớn của tần số thạch anh đi kèm với 8051 quyết định tốc độ nhịp của các bộ định thời trên 8051. Tần số của bộ định thời luôn bằng 1/12 tần số của thạch anh gắn với 8051. dụ: Hãy tìm tần số đồng bộ v chu kỳ của bộ định thời cho các hệ dựa trên 8051 với các tần số thạch anh sau: a) 12MHz b) 16MHz 9 Đồ án môn: Vi xử Đo lờng Sinh viên: Chu Tiến Đạt Mặc dù các hệ thống dựa trên 8051 khác với tần số thạch anh từ 10 đến 40MHz, song ta chỉ tập chung v o tần số thạch anh 11,0592MHz. do đằng sau một số lẻ nh vậy l hải l m việc với tần suất bouid đối với truyền thông nối tiếp của 8051. Tần số XTAL = 11,0592MHz cho phép hệ 8051 truyền thông với IBM PC m không có lỗi. 4.11 Bít cổng GATE. Một bít khác của thanh ghi TMOD l bít cổng GATE. Để ý trên hình 9.3 ta thấy cả hai bộ định thời Timer0 v Timer1 đều có bít GATE. Vậy bít GATE dùng để l m gì? Mỗi bộ định thời thực hiện điểm khởi động v dừng. Một số bộ định thời thực hiện điều n y bằng phần mềm, một số khác bằng phần cứng v một số khác vừa bằng phần cứng vừa bằng phần mềm. Các bộ định thời tren 8051 có cả hai. Việc khởi động v dừng bộ định thời đ ợc khởi động bằng phần mềm bởi các bít khởi động bộ định thời TR l TR0 v TR1. Điều n y có đ ợc nhờ các lệnh SETB TR1 v CLR TR1 đối với bộ Timer1 v SETB TRO v CLR TR0 đối với bộ Timer0. Lệnh SETB khởi động bộ định thời v lệnh CLR dùng để dừng nó. Các lệnh n y khởi động v dừng các bộ định thời khi bít GATE = 0 trong thanh ghi TMOD. Khởi động v ngừng bộ định thời bằng phần cứng từ nguồn ngo i bằng cách đặt bít GATE = 1 trong thanh ghi TMOD. Tuy nhiên, để tránh sự lẫn lộn ngay từ bây giờ ta đặt GATE = 0 có nghĩa l không cần khởi động v dừng các bộ định thời bằng phần cứng từ bên ngo i. Để sử dụng phần mềm để khởi động v dừng các bộ định thời phần mềm để khởi động v dừng các bộ định thời khi GATE = 0. Chúng ta chỉ cần các lệnh SETB TRx v CLR TRx. Việc sử dụng phần cứng ngo i để khởi động v dừng bộ định thời ta sẽ b n ở ch ơng 11 khi b n về các ngắt. 4.12 Lập trình cho mỗi chế độ Mode1. a) Những đặc tính v những phép toán của chế độ Mode1: 1. Nó l bộ định thời 16 bít, do vậy nó cho phép các giá trị 0000 đến FFFFH đ ợc nạp v o các thanh ghi TL v TH của bộ định thời. 2. Sau khi TL v TH đ ợc nạp một giá trị khởi tạo 16 bít thì bộ định thời phải đ ợc khởi động. Điều n y đ ợc thực hiện bởi SETB TR0 đối với Timer 0 v SETB TR1 đối với Timer1. 3. Sau khi bộ định thời đ ợc khởi động, nó bắt đầu đếm lên. Nó đếm lên cho đến khi đạt đ ợc giới hạn FFFFH của nó. Khi nó quay qua từ FFFFH về 0000 thì nó bật lên bít cờ TF đ ợc gọi l cờ bộ định thời. Cờ bộ định thời n y có thể đ ợc hiển thị. Khi cờ bộ định thời n y đ ợc thiết lập từ một trong các ph ơng án để dừng bộ định thời bằng các lệnh CLR TR0 đối với Timer0 hoặc CLR TR1 đối với Timer1. ở đây cũng cần phảI nhắc lại l đối với bộ định thời đều có cờ TF riêng của mình: TF6 đối với Timer0 v TF1 đối với Timer1. 10 [...]... IN3 IN4 IN5 IN6 IN7 256.(VIN Vref ( ) ) Vref ( +) Vref ( ) Trong đó Vin là điện áp ngõ vào Vin Nếu chọn Vref(-) = 0 thì: N = 256 V ref ( +) Vref(+) = 5VDC 5 1 LSB = 8 = 0,0196 V/byte 2 1 Biểu đồ thời gian của ADC 0808 22 Đồ án môn: Vi xử Đo lờng Sinh vi n: Chu Tiến Đạt *) Để 8051 có thể đọc đợc giá trị nhiệt độ từ PT100 thì ta phải làm một mạch điện chuẩn hoá tín hiệu đầu vào thành tín hiệu điện... để cấp nguồn cho khuếch đại thuật toán LM324 + Nguồn ổn áp 5VDC dùng để cấp nguồn cho Vi điều khiển các vi mạch số ADC0809 74HC74 + LM7812 là vi ổn áp +12V Vi mạch này có thể chịu đợc dòng điện qua nó là 1A + LM7912 là vi ổn áp -12V Vi mạch này có thể chịu đợc dòng điện qua nó là 1A + LM7805 là vi ổn áp +5V Vi mạch này có thể chịu đợc dòng điện qua nó là 1A + Các tụ điện C11, C12, C13, C14, C18... (polling) ậ chơng ny ta khám phá truyền thông dựa trên ngắt m nó cho phép 8051 lm vi c rất nhiều vi c ngoi vi c truyền v nhận dữ liệu từ cổng truyền thông nối tiếp 5.9 Các cờ RI v TI v các ngắt Nh đã nói ở chơng 10 thì cờ ngắt truyền TI (Transfer interrupt) đợc bật lên khi bít 18 Đồ án môn: Vi xử Đo lờng Sinh vi n: Chu Tiến Đạt cuối cùng của khung dữ liệu, bít stop đợc truyền đi báo rằng thanh... môn: Vi xử Đo lờng Sinh vi n: Chu Tiến Đạt *) Đồ thị thể hiện điện trở của PT100 ứng với nhiệt độ từ 0 C~400 C + Thiết bị chuyển đổi tơng tự sang số, ta chọn loại ADC0808 - Điện áp đầu vào (0->5V) VDC - Có 8 kênh đầu vào IN0-> IN7 - Độ phân giải bit (có 8 bit đầu ra) - Điện áp chuẩn Uref=5VDC - Tần số xung nhịp, fclk=500KHz, cao nhất là 640KHz - Sai số lợng tử là 1LSB - IN0->IN7: là 8 kênh đầu vào... hay còn gọi là chu kỳ lấy mẫu Nh vậy với 8051 thì ta dùng Timer 1 làm vi c ở chế độ 1 ( chế độ 16 bit) với chu kỳ 10ms Tức là cứ 10ms cập nhật số liệu đo một lần Chơng trình bao gồm các phần sau: + Đọc số liệu từ 7 kênh đo ( Doc_cackenh) + Tính giá trị trung bình của 7 kênh (Tinh_giatriTB) 24 Đồ án môn: Vi xử Đo lờng Sinh vi n: Chu Tiến Đạt + Hiển thị giá trị trung bình lên Led 7 thanh (Hienthi)... ****************************************************************** Phần bài làm 1) Xử số liệu: Sinh vi n: Chu Tiến Đạt có STT=14 Số kênh đo là n = số d(14/3)+5= 7 kênh Giải đo nhiệt độ là m = số d(14/4) = 2 Suy ra giải đo là 0~400 C Số kênh vợt quá hoặc nhỏ hơn giá trị giá trị cho phép so với giá trị trung bình i = 7/2 = 3 kênh 2) Tính toán chọn thiết bị + EEPROM 28C64 8k byte Bộ nhớ EEPROM 8K 28C64 Đây là bộ nhớ không bay hơi có thể đọc ghi đợc bằng ch... để xác định địa chỉ của các vùng nhớ trong RAM - /OE : Output Enable, cho phép đọc dữ liệu từ RAM ra Data Bus 20 Đồ án môn: Vi xử Đo lờng Sinh vi n: Chu Tiến Đạt - /WE : Write Enable, cho phép ghi dữ liệu vào RAM - CS1, CS2 : Dùng để chọn chip - D0 D7 : là các chân nối vào Data Bus của hệ thống Sơ đồ chân của 6264: U 26 10 9 8 7 6 5 4 3 25 24 21 23 2 2 2 2 2 A A A A A A A A A A A A A O W C C... theo nhiều vi c khác Bộ Timer0 đợc bật lên bằng phần mềm qua lệnh SETB TR0 v nằm ngoi sự kiểm soát của ngời dùng sản phẩm đó Tuy nhiên, khi nối một công tắc chuyển mạch tới chân P2.3 ta có thể dừng v khởi động bộ định thời gian bằng cách đó để tắt báo động 14 Đồ án môn: Vi xử Đo lờng Sinh vi n: Chu Tiến Đạt Chơng 5 Cấu trúc ngắt ngoài 8051 5.1 Lập trình các ngắt phần cứng bên ngoi Bộ vi điều khiển... Ngắt theo mức ở chế độ ngắt theo mức thì các chân INT0 v INT1 bình thờng ở mức cao (giống nh 15 Đồ án môn: Vi xử Đo lờng Sinh vi n: Chu Tiến Đạt tất cả các chân của cổng I/O) v nếu một tín hiệu ở mức thấp đợc cấp tới chúng thì nó ghi nhãn ngắt Sau đó bộ vi điều khiển dừng tất cả mọi công vi c nó đang thực hiện v nhảy đến bảng véc tơ ngắt để phục vụ ngắt Điều ny đợc gọi l ngắt đợc kích hoạt theo... ADC0808 Với các sensor 2->7 tơng tự + Sử dụng mạch khuêch đại vi sai với khuếch đại thuật toán LM324 23 IN 0 _ A D C Đồ án môn: Vi xử Đo lờng Sinh vi n: Chu Tiến Đạt + Điều chỉnh các biến trở để khi nhiệt độ tăng từ 0~400C thì đầu ra tăng từ 0~4,902V đa đến ADC 0808 + Hệ số khuếch đại tầng 1 là: K1=(1+R8/R7) = (1+R9/R7)=1,2 ; chọn R7 R8 sao cho R7=R8 ta chọn R8=R9=10k +Tầng 2 là mạch trừ Hệ . liệu từ EEPROM ra Data Bus. - /WR : Write Enable, cho phép ghi dữ liệu vào EEPROM. - /CE : Dùng để chọn chip. - D0 D7 : l_ các chân nối vào Data Bus của hệ. cung cấp một số tiêu chu n về cách lựa chọn một bộ vi điều khiển nh thế n o. 2.2 Bộ vi điều khiển so với bộ vi xử lý cùng dùng chung Sự khác nhau giữa

Ngày đăng: 24/04/2013, 11:26

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan