Giáo trình vi điều khiển 8051 - Chương 12 ppsx

17 372 2
Giáo trình vi điều khiển 8051 - Chương 12 ppsx

Đ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

Ch­¬ng 12 Phèi ghÐp víi thÕ giíi thùc: LCD, ADC cảm biến Chương khám phá số øng dơng cđa 8051 víi thÕ giíi thùc Chóng ta giải thích làm cách phối ghép 8051 với thiết bị LCD, ADC cảm biến 12.1 Phối ghép LCD với 8051 phần ta mô tả chế độ hoạt động LCD sau mô tả cách lập trình phối ghép LCD tới 8051 12.1.1 Hoạt động LCD Trong năm gần LCD ngày sử dụng rộng rÃi thay dần cho đèn LED (các đèn LED đoạn hay nhiều đoạn) Đó nguyên nhân sau: Các LCD có giá thành hạ Khả hiển thị số, ký tự đồ hoạ tốt nhiều so với đèn LED (vì đèn LED hiển thị số số ký tự) Nhờ kết hợp điều khiển làm tươi vào LCD làm giải phóng cho CPU công việc làm tươi LCD Trong đèn LED phải làm tươi CPU (hoặc cách đó) để trì việc hiển thị liệu Dễ dàng lập trình cho ký tự đồ hoạ 12.1.2 Mô tả chân LCD LCD nói mục có 14 chân, chức chân cho bảng 12.1 Vị trí chân mô tả hình 12.1 cho nhiều LCD khác Chân VCC, VSS VEE: Các chân VCC, VSS VEE: Cấp dương nguồn - 5v đất tương ứng VEE dùng để điều khiển độ tương phản LCD Chân chọn ghi RS (Register Select) Cã hai ghi rÊt quan träng bªn LCD, chân RS dùng để chọn ghi sau: Nếu RS = ghi mà lệnh chọn phép người dùng gửi lệnh chẳng hạn xoá hình, đưa trỏ đầu dòng v.v Nếu RS = ghi liệu chọn cho phép người dùng gửi liệu cần hiển thị LCD Chân đọc/ ghi (R/W) Đầu vào đọc/ ghi cho phép người dùng ghi thông tin lên LCD R/W = đọc thông tin từ R/W = Ch©n cho phÐp E (Enable) Ch©n cho phÐp E sử dụng LCD để chốt thông tin hữu chân liệu Khi liệu cấp đến chân liệu xung mức cao xuống thấp phải áp đến chân để LCD chốt liệu chân liêu Xung phải rộng tối thiểu 450ns Chân D0 - D7 Đây chân liệu bít, dùng để gửi thông tin lên LCD đọc nội dung ghi LCD Để hiển thị chữ số, gửi mà ASCII chữ từ A đến Z, a đến f số từ - đến chân bật RS = Cũng có mà lệnh mà gửi đến LCD để xoá hình đưa trỏ đầu dòng nhấp nháy trỏ Bảng 12.2 liệt kê mà lênh Chúng ta sư dơng RS = ®Ĩ kiĨm tra bÝt cê bận để xem LCD có sẵn sàng nhân thông tin Cờ bận D7 đượcđọc R/W = vµ RS = nh­ sau: NÕu R/W = 1, RS = D7 = (cê bận 1) LCD bận công việc bên không nhận thông tin Khi D7 = LCD sẵn sàng nhận thông tin Lưu ý nên kiểm tra cờ bận trước ghi liệu lên LCD Bảng 12.1: Mô tả chân LCD Ch©n Ký hiƯu VSS VCC VEE RS I/O I 10 11 12 13 14 R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 I I/O I/O I/O I/O I/O I/O I/O I/O I/O Mô tả Đất Dương nguồn 5v Cấp nguồn điều khiển phản RS = chọn ghi lƯnh RS = chän d÷ liƯu R/W = đọc liệu R/W = ghi Cho phép Các bít liệu Các bít liệu Các bít liệu Các bít liệu Các bít liệu Các bít liệu Các bít liệu Các bít liệu Bảng 12.2: Các mà lệnh LCD Mà (Hex) A C E F 10 14 18 LƯnh ®Õn ghi cđa LCD Xoá hình hiển thị Trở đầu dòng Giả trỏ (dịch trỏ sang trái) Tăng trỏ (dịch trỏ sang phải) Dịch hiển thị sang phải Dịch hiển thị sang trái Tắt trỏ, tắt hiển thị Tắt hiển thị, bật trỏ Bật hiển thị, tắt trỏ Bật hiển thị, nhấp nháy trỏ Tắt trỏ, nhấp nháy trỏ Dịch vị trí trỏ sang trái Dịch vị trí trỏ sang phải Dịch toàn hiển thị sang trái 1C 80 C0 38 Dịch toàn hiển thị sang phải ép trỏ Vũ đầu dòng thứ ép trỏ Vũ đầu dòng thứ hai Hai dòng ma trận Ghi chú: Bảng mở rộng tõ b¶ng 12.4 12 14 13 14 DMC1610A DMC1606C DMC16117 DMC16128 DMC16129 DMC1616433 DMC20434 14 DMC16106B 21 DMC16207 DMC16230 DMC20215 DMC32216 DMC20261 DMC24227 DMC24138 DMC32132 DMC32239 DMC40131 DMC40218 Hình 12.1: Các vị trí chân LCD khác Optrex 12.1.3 Gửi lệnh liệu ®Õn LCD víi mét ®é trƠ §Ĩ gưi mét lƯnh từ bảng 12.2 đến LCD ta phải đưa chân RS Đối với liệu bật RS = sau ®ã gưi mét s­ên xung cao xuống thấp đến chân E phép chốt liệu LCD Điều đoạn mà chương trình (xem hình 12.2) ; gọi ®é thêi gian trƠ tr­íc gưi d÷ liƯu/ lƯnh ; chân P1.0 đến P1.7 nối tới chân dữ liệu D0 - D7 LCD ; Chân P2.0 nối tới chân RS LCD ; Chân P2.1 nối tới chân R/W LCD ; Chân P2.2 nối đến chân E LCD ORG MOV A, # 38H ; Khởi tạo LCD hai dòng víi ma trËn ´ ACALL COMNWRT ; Gäi chương trình lệnh ACALL DELAY ; Cho LCD độ trễ MOV A, # 0EH ; Hiển thị hình trỏ ACALL COMNWRT ; Gọi chương trình lênh ACALL DELAY ; Cấp độ trễ cho LCD MOV AM # 01 ; Xo¸ LCD ACALL COMNWRT ; Gọi chương trình lệnh ACALL DELAY ; Tạo ®é trƠ cho LCD MOV A, # 06H ; DÞch trỏ sang phải ACALL COMNWRT ; Gọi chương trình lệnh ACALL DELAY ; Tạo độ trễ cho LCD MOV AM # 48H ; Đưa trỏ dòng cột ACALL COMNWRT ; Gọi chương trình lÖnh AGAIN: COMNWRT: DATAWRT: DELAY: HERE2: HERE: ACALL MOV ACALL ACALL MOV ACALL SJMP DELAY A, # “N” DATAWRT DELAY AM # “0” DATAWRT AGAIN MOV CLR CLR SETB CLR RET P1, A P2.0 P2.1 P2.2 P2.2 ; Tạo độ trễ cho LCD ; Hiển thị chữ N ; Gọi chương trình hiển thij DISPLAY ; Tạo độ trễ cho LCD ; Hiển thị chữ ; Gọi DISPLAY ; Chờ ; Gửi lệnh đến LCD ; Sao chép ghi A đến cổng P1 ; Đặt RS = để gửi lệnh ; Đặt R/W = để ghi liệu ; Đặt E = cho xung cao ; Đặt E = cho xung cao xuèng thÊp MOV SETB CLR SETB CLR RET MOV MOV DJNZ DJNZ RET END P1, A P2.0 P2.1 P2.2 P2.2 ; Ghi d÷ liƯu LCD ; Sao chÐp ghi A đến cổng P1 ; Đặt RS = để gửi liệu ; Đặt R/W = để ghi ; Đặt E = cho xung cao ; Đặt E = cho xung cao xuống thấp R3, # 50 R4, # 255 R4, HERE R3, HERE2 ; Đặt độ trễ 50ms cao cho CPU nhanh ; Đặt R4 = 255 ; Đợi cho ®Õn R4 = LCD 8051 D0 +5v VCC VEE P1.0 D7 V RS R/W E SS 10K POT P1.0 P2.1 P2.2 H×nh 12.2: Nèi ghÐp LCD 12.1.4 Gửi mà lệnh liệu đến LCD có kiểm tra cờ bận Đoạn chương trình đà cách gửi lệnh đến LCD mà kiĨm tra cê bËn (Busy Flag) L­u ý r»ng chóng ta phải đặt độ trễ lớn ảtình xuất liệu lệnh LCD Tuy nhiên, cách tốt nhiều hiển thị cờ bận trước xuất lệnh liệu tới LCD Dưới chương trình ; Kiểm tra cê bËn tr­íc gưi d÷ liƯu, lƯnh LCD ; Đặt P1 cổng liệu ; Đặt P2.0 nối tới cổng RS ; Đặt P2.1 nối tới chân R/W ; Đặt P2.2 nối tới chân E ORG MOV A, # 38H ACALL COMMAND MOV A, # 0EH ACALL COMMAND MOV A, # 01H ACALL COMMAND MOV A, # 86H ACALL COMMAND MOV A, # “N” ACALL DATA DISPLAY MOV A, # “0” ACALL DATA DISPLAY HERE: SJMP HERE COMMAND: ACALL READY MOV P1, A CLR P2.0 CLR P2.1 SETB P2.2 CLR P2.2 RET DATA-DISPLAY:: ACALL READY MOV P1, A SETB P2.0 CLR P2.1 SETB P2.2 CLR P2.2 RET DELAY: SETB P1.7 CLR P2.0 SETB P2.1 ; §äc ghi lƯnh vµ kiĨm tra cê lƯnh BACK: CLR P2.2 SETB P2.2 JB P1.7, BACK RET END ; Khëi t¹o LCD hai dßng víi ma trËn ´ ; Xuất lệnh ; Dịch trỏ sang phải ; Xuất lệnh ; Xoá lệnh LCD ; Xuất lệnh ; Dịch trỏ sang phải ; Đưa trỏ dòng lệnh ; Hiển thị chữ N ; Hiển thị chữ ; Chờ ; LCD đà sẵn sàng chưa? ; Xuất mà lệnh ; Đặt RS = cho xuất lệnh ; Đặt R/W = để ghi liệu tới LCD ; Đặt E = xung cao xuống thấp ; Đặt E = chốt liệu ; LCD đà sẵn sàng chưa? ; Xuất liệu ; Đặt RS = cho xuất liệu ; Đặt R/W = để ghi liệu LCD ; Đặt E = xung cao xuống thấp ; Đặt E = chốt liệu ; Lấy P1.7 làm cổng vào ; Đặt RS = để truy cập ghi lệnh ; Đặt R/W = đọc ghi lệnh ; E = ®èi víi xung cao xng thÊp ; E = cho xung cao xuèng thÊp? ; Đợi cờ bận = Lưu ý chương trình cờ bận D7 ghi lệnh Để đọc ghi lệnh ta phải đặt RS = 0, R/W = xung cao - xng - thÊp cho bÝt E ®Ĩ cÊp ghi lƯnh cho chóng ta Sau ®äc ghi lƯnh, nÕu bÝt D7 (cê bËn) ë møc cao th× LCD bận thông tin (lệnh) xuất đến D7 = gửi liệu lệnh đến LCD Lưu ý phương phát không sử dụng độ trễ thời gian ta kiểm tra cờ bận trước xuất lệnh liệu lên LCD 12.1.5 Bảng liệu LCD Trong LCD ta đặt liệu vào chỗ vị trí địa cách chúng truy cËp RS E/W DB7 DB6 A DB5 A DB4 A DB3 A DB2 A DB1 A DB0 A Khi AAAAAAA = 0000000 đến 0100111 cho dòng lệnh AAAAAAA = 1100111 cho dòng lệnh2 Xem bảng 12.3 Bảng 12.3: Đánh địa cho LCD Dòng (min) Dßng (max) Dßng (min) Dßng (max) DB7 1 1 DB6 0 1 DB5 1 DB4 0 0 DB3 0 0 DB2 1 DB1 1 DB0 1 Dải địa cao 0100111 cho LCD 40 ký tù ®èi víi CLD 20 ký tự đến 010011 (19 thập phân = 10011 nhị phân) Để ý dải 0100111 (nhị phân) = 39 thập phân ứng với vị trí đến 39 cho LCD kÝch th­íc 40 ´ Tõ nh÷ng điều nói ta nhận địa vị trí trỏ có kích thước LCD khác Xem hình 12.3 ý tất địa dạng số Hex Hình 12.4 cho biểu đồ việc phân thời gian LCD Bảng 12.4 danh sách liệt kê chi tiết lệnh lệnh LCD Bảng 12.2 mở rộng từ bảng 16 LCD 20 ´ LCD 20 ´ LCD 20 ´ LCD 20 ´ LCD 80 C0 80 80 C0 80 C0 94 D4 80 C0 81 C0 81 81 C0 81 C0 95 D5 81 C0 82 C2 82 82 C2 82 C2 96 D6 82 C2 83 C3 83 83 C3 83 C3 97 D7 83 C3 84 C4 Through Through Through Through Through Through Through Through Through 85 C5 93 93 D3 93 D3 A7 E7 A7 E7 Note: All data is in hex Hình 12.3: Các địa trỏ sè LCD 86 C6 Through Through 8F CF Data E tDSW tPWH tAS R/W tH tAH RS tPwh = Enable pulse width = 450 ns (minimum) tDSW = Data set up time = 195 ns (minimum) tH = Data hold time 10 ns (minimum) tAS = Set up time prior to E (going high) for both RS and R/W = 140 ns (minimum) tAH = Hold time afterr E has come down for both RS and R/W = 10 ns (minimum) Hình 12.4: Phân khe thời gian LCD Bảng 12.4: Danh sách liệt kê lệnh địa lƯnh cđa LCD LƯnh DB4 DB3 DB2 DB1 DB0 Xo¸ hình Trở đầu dòng Đặt chế ®é truy nhËp 0 0 0 0 0 0 0 - 0 0 0 1/ D S Điều khiển Bật/tắt hiển thị Dịch hiển thị trỏ Đặt chức 0 0 D C B 0 0 S / C R / L - - Dịch trỏ dịch hiển thị mà không thay ®ỉi DD RAM 40 ms 0 D L N F - - Thiết lập độ dài liệu (DL) số dòng hiển thị (L) phòng ký tù (F) 40 ms RS DB5 1.64 ms DB6 Xoá toàn hình đặt địa DD RAM vào đếm địa Đặt địa DD RAM đếm địa Trả hiển thị dịch vị trí gốc DD RAM không thay đổi Đặt hướng chuyển dịch trỏ xác định dịch hiển thị thao tác thực đọc ghi liệu Đặt Bật/ tắt hình (D) Bật/ tắt trỏ (C) nhấp nháy ký tự vị trí trỏ (B) DB7 Thời gian thực R/W Mô tả 1.64 ms 40 ms 40 ms Đặt địa CGRA M Thiết lập địa DD RAM Cờ bận đọc địa Ghi liệu CG DD RAM Đọc liƯu CG hc DD RAM 0 AGC 0 1 Ghi d÷ liƯu 1 Đọc liệu ADD BF ADD Thiết lập địa C6 RAM liệu CG RAM gửi ®i vµ nhËn sau thiÕt lËp nµy 40 ms ThiÕt lập địa DD RAM liệu DD RAM gưi vµ nhËn sau thiÕt lËp nµy 40 ms Cê bận đọc (BF) báo hoạt động bên thực đọc nội dung đếm địa Ghi liệu vào DD RAM CG RAM 40 ms Đọc liệu từ DD RAM CG RAM 40 ms 40 ms Ghi chó: Thêi gian thùc thời gian cực đại tần số fCP fosc 250KHz Thời gian thực thay đổi tần số thay đổi Khi tần số fEP hay fosc Là 270kHz thời gian thực tính 250/270 ´ 40 = 35ms v.v… C¸c ký hiƯu viÕt tắt bảng là: DD RAM CG RAM ACC ADD AC RAM 1/D = S=1 S/C = R/L = DL = N=1 F=1 BF = RAM liệu hiển thị (Display Data RAM) RAM máy phát ký tự (character Generator) Địa chỉa RAM máy phát ký tự Địa RAM liệu hiển thị phù hợp với địa trỏ Bộ đếm địa (Address Counter) dùng cho địa DD RAM CG Tăng Kèm dịch hiển thị Dịch hiển thị Dịch sang phải bít dòng Ma trËn ®iĨm ´ 10 BËn 1/D = Gi¶m S/C = R/L = DL = N=1 F=0 BF = Dịch trỏ Dịch trái bít dòng Ma trận điểm Cã thĨ nhËn lªnh 12.2 Phèi ghÐp 8051 víi ADC cảm biến Phần khám phá ghép chíp ADC (bộ chuyển đổi tương tự số) cảm biến nhiệt với 8051 12.1.1 Các thiết bị ADC Các chuyển đổi ADC thuộc thiết bị sử dụng rộng rÃi để thu liệu Các máy tính số sử dụng giá trị nhị phân, giới vật lý đại lượng dạng tương tự (liên tục) Nhiệt độ, áp suất (khí chất lỏng), độ ẩm vận tốc số trọng đại lượng vật lý giới thực mà ta gặp hàng ngày Một đại lượng vật lý chuyển dòng điện điện áp qua thiết bị gọi biến đổi Các biến đổi coi cảm biến Mặc dù có cảm biến nhiệt, tốc độ, áp suất, ánh sáng nhiều đại lượng tự nhiên khác chúng cho tín hiệu dạng dòng điện điện áp dạng liên tục Do vậy, ta cần chuyển đổi tương tự số cho vi điều khiển đọc chúng Một chíp ADC sử dụng rộng rÃi ADC 804 12.2.2 ChÝp ADC 804 ChÝp ADC 804 lµ bé chuyển đổi tương tự số họ loạt ADC 800 từ hÃng National Semiconductor Nó nhiều hÃng khác sản xuất, làm việc với +5v có độ phân giải bít Ngoài độ phân giải thời gian chuyển đổi yếu tố quan trọng khác đánh giá ADC Thời gian chuyển đổi định nghĩa thời gian mà ADC cần để chuyển đầu vào tương tự thành số nhị phân Trong ADC 804 thời gian chuyển đổi thay đổi phụ thuộc vào tần số đồng hồ cấp tới chân CLK CLK IN nhanh 110ms Các chân ADC 804 mô tả sau: Chân CS - chọn chíp: Là đầu vào tích cực mức thấp sử dụng để kích hoạt chíp ADC 804 Để truy cập ADC 804 chân phải mức thấp Chân RD (đọc): Đây tín hiệu đầu vào tích cực mức thấp Các ADC chuyển đổi đầu vào tương tự thành số nhị phân tương đương với giữ ghi RD sử dụng để nhận liệu chuyển đổi đầu ADC 804 Khi CS = nÕu mét xung cao - xuèng - thấp áp đến chân RD đầu số bít hiển diện chân liệu D0 - D7 Chân RD coi cho phép đầu Chân ghi WR (thực tên xác Bắt đầu chuyển đổi) Đây chân đầu vào tích cực mức thấp dùng để báo cho ADC 804 bắt đầu trình chuyển đổi Nếu CS = WR t¹o xung cao - xuống - thấp ADC 804 bắt đầu chuyển đổi giá trị đầu vào tương tự Vin số nhị phân bít Lượng thời gian cần thiết để chuyển đổi thay đổi phụ thuộc vào tần số đưa đến chân CLK IN CLK R Khi việc chuyển đổi liệu hoàn tất chân INTR Ðp xuèng thÊp bëi ADC 804 Ch©n CLK IN CLK R Chân CLK IN chân đầu vào nối tới nguồn đồng hồ đồng hồ sử dụng để tạo thời gian Tuy nhiên 804 có máy tạo xung đồng hồ Để sử dụng máy tạo xung đồng hồ (cũng gọi máy tạo đồng hồ riêng) 804 chân CLK IN CLK R nối tới tụ điện điện trở hình 12.5 Trong trường hợp tần số đồng hồ xác định biểu thức: f= 1,1RC giá trị tiêu biểu đại lượng R = 10kW C= 150pF tần số nhận f = 606kHz thời gian chuyển đổi 110ms ADC0804 +5V 10k POT 1 19 10k 150pF 10 20 Vin(+) Vin(-) A GND Vref/2 CLK R CLK in CS RD D GND Vcc D0 D1 D2 D3 D4 D5 D6 D7 WR INTR 18 17 16 15 14 13 12 11 to LEDs Nomally Open START H×nh 12.5: KiĨm tra ADC 804 ë chế độ chạy tự Chân ngắt INTR (ngắt hay gọi xác kết thúc chuyển đổi) Đây chân đầu tích cực mức thấp Bình thường trạng thái cao việc chuyển đổi hoàn tất xuống thấp để báo cho CPU biết liệu chuyển đổi sẵn sàng ®Ĩ lÊy ®i Sau INTR xng thÊp, ta ®Ỉt CS = vµ gưi mét xung cao xng - thấp tới chân RD lấy liệu 804 Chân Vin (+) Vin (-) Đây đầu vào tương tự vi sai mà Vin = Vin (+) - Vin (-) Thông thường Vin (-) nối xuống đất Vin (+) dùng đầu vào tương tự chuyển đổi dạng số Chân VCC Đây chân nguồn nuối +5v, dùng điện áp tham chiếu đầu vào Vref/2 (chân 9) để hở Chân Vref/2 Chân điện áp đầu vào dùng cho điện áp tham chiếu Nếu chân hở (không nối) điện áp đầu vào tương tự cho ADC 804 nằm dải đến +5v (giống chân VCC) Tuy nhiên, có nhiều ứng dụng mà đầu vào tương tự áp đến Vin cần phải khác dải đến 5v Chân Vref/2 đượcdùng để thực thi điện áp đầu vào khác dải - 5v Ví dụ, dải đầu vào tương tự cần phải đến 4v Vref/2 nối với +2v Bảng 12.5 biểu diễn dải điện áp Vin đầu vào Vref/2 khác Bảng 12.5: Điện áp Vref/2 liên hệ với dải Vin Vref/ 2(V) Hở * 2.0 1.5 1.28 1.0 0.5 Vin(V) ®Õn ®Õn ®Õn ®Õn 2.56 ®Õn ®Õn Step Size (mV) 5/256 = 19.53 4/255 = 15.62 3/256 = 11.71 2.56/256 = 10 2/256 = 7.81 1/256 = 3.90 Ghi chó: - VCC = 5V - * Khi Vref/2 hở đo khoảng 2,5V - Kích thước bước (độ phân dải) thay đổi nhỏ mà ADC phân biệt Các chân liệu D0 - D7 Các chân liệu D0 - D7 (D7 bít cao nhÊt MSB vµ D0 lµ bÝt thÊp nhÊt LSB) chân đầu liệu số Đây chân đệm ba trạng thái liệu chuyển đổi truy cập chân CS = chân RD bị đưa xuống thấp Để tính điện áp đầu ta sử dụng c«ng thøc sau: D out = V in kich thuoc buoc Với Dout đầu liệu số (dạng thập phân) Vin điện áp đầu vào tương tự độ phân dải thay đổi nhỏ tính (2 Vref/2) chia cho 256 ADC bít 10 Chân đất tương tự chân đất số Đây chân đầu vào cấp đất chung cho tín hiệu số tương tự Đất tương tự nối tới đất chân Vin tương tự, đất số nối tới đất chân Vcc Lý mà ta phải có hai đất để cách ly tín hiệu tương tự Vin từ điện áp ký sinh tạo việc chuyển mạch số xác Trong phần trình bày chân nối chung với đất Tuy nhiên, thực tế thu đo liệu chân đất nối tách biệt Từ điều ta kết luận bước cần phải thực chuyển đổi liệu ADC 804 lµ: a) BËt CS = vµ gưi mét xung thấp lên cao tới chân WR để bắt đầu chuyển đổi b) Duy trì hiển thị chân INTR Nếu INTR xuống thấp việc chuyển đổi hoàn tÊt vµ ta cã thĨ sang b­íc kÕ tiÕp NÕu INTR cao tiếp tục thăm dò xuèng thÊp c) Sau ch©n INTR xuèng thÊp, ta bËt CS = vµ gưi mét xung cao - xuống - thấp đến chân RD để lấy liệu khái chÝp ADC 804 Ph©n chia thêi gian cho trình trình bày hình 12.6 CS WR D0 – D7 Data out INTR Start conversion RD End conversion Read it Hình 12.6: Phân chia thời gian ®äc vµ ghi cđa ADC 804 12.2.3 KiĨm tra ADC 804 Chóng ta cã thĨ kiĨm tra ADC 804 b»ng cách sử dụng sơ đồ mạch hình 12.7 thiết lập gọi chế độ kiểm tra chạy tự nhà sản xuất khuyến cao nên sử dụng Hình 12.5 trình bày biến trở dùng để cắp điện áp tương tự từ đến 5V tới chân đầu vào Vin(+) ADC 804 đầu nhị phân hiển thị đèn LED bảng huấn luyện số Cần phải lưu ý chế độ kiểm tra chạy tự đầu vào CS nối tới đất đầu vào WR nối tới đầu INTR Tuy nhiên, theo tài liệu hÃng National Semiconductor nút WR INTR phải tạm thời đưa xuống thấp kế sau chu trình cấp nguồn để bảo đảm hoạt động 8051 ADC804 P2.5 P2.6 RD P1.0 D0 WR VCC CLK R CLK IN Vin(+) Vin(-) 5V 10k 150pF A GND Vref/2 GND P1.7 P2.7 D7 INTR CS H×nh 12.7: Nèi ghép ADC 804 với nguồn đồng hồ riêng 10k POT VÝ dơ 12.7: H·y thư nèi ghÐp ADC 804 víi 8051 theo sơ đồ 12.7 Viết chương trình để hiển thị chân INTR lấy đầu vào tương tự vào ghi A Sau gọi chương trình chuyển đổi mà Hex ASCII chương trình hiển thị liệu Thực điều liên tục Lời giải: ; Đặt P2.6 = WR (bắt đầu chuyển đổi cần xung thấp lên cao) ; Đặt chân P2.7 = kết thúc chuyển đổi ; Đặt P2.5 = RD (xung cao - xuèng - thÊp sÏ ®äc d÷ liƯu tõ ADC) ; P1.0 – P1.7 cđa ADC 804 MOV P1, # 0FFH ; Chän P1 lµ cổng đầu vào BACK: CLR P2.6 ; Đặt WR = SETB P2.6 ; Đặt WR = để bắt ®Çu chun ®ỉi HERE: JB P2.7, HERE ; Chê cho P2.7 to ®Ĩ kÕt thóc chun ®ỉi CLR P2.5 ; KÕt thóc chun ®ỉi, cho phÐp ®äc RD MOV A, P1 ; Đọc liệu vào ghi A ACALL CONVERSION ; Chun ®ỉi sè Hex m· ASCII ACALL DATA-DISPLAY ; Hiển thị liệu SETB P2.5 ; Đưa RD = lần đọc sau SJMP BACK 8051 ADC804 P2.5 P2.6 P1.0 D RD D0 WR Q Q 10k POT A GND Vref/2 GND Q D VCC CLK R CLK IN Vin(+) Vin(-) 5V P1.7 P2.7 D0 INTR CS Q 74LS74 H×nh 12.8: Nèi ghÐp ADC 804 với đồng hồ từ XTAL2 8051 Trên hình 12.8 ta cã thĨ thÊy r»ng tÝn hiƯu ®ång hå ®i vào ADC 804 từ tần số thạch anh 8051 Vì tần số cao nên ta sử dơng hai m¹ch lËt Rlip - Flop kiĨu D (74LS74) để chia tần số cho Một mạch lật chia tần số cho ta nối đầu Q tới đầu vào D Đối với tần số cao ta cần sử dụng nhiều mạch Flip Plop 12.2.4 Phèi ghÐp víi mét c¶m biÕn nhiƯt cđa 8051 Các biến đổi (Transducer) chuyển đổi đại lượng vật lý ví dụ nhiệt độ, cường độ ánh sáng, lưu tốc tốc độ thành tín hiệu điện phụ thuộc vào biến đổi mà đầu tín hiệu dạng điện áp, dòng, trở kháng hay dung kháng Ví dụ, nhiệt độ biến đổi thành tín hiệu điện sử dụng biến đổi gọi Rhermistor (bộ cảm biến nhiệt), cảm biến nhiệt đáp ứng thay đổi nhiệt độ cách thay đổi trở kháng đáp ứng không tuyến tính (xem bảng 12.6) Bảng 12.6: Trở kháng cảm biến nhiệt theo nhiệt ®é NhiÖt ®é (0C) 25 50 75 100 Trë kháng cảm biến (kW) 29.490 10.000 3.893 1.700 0.817 Bảng 12.7: Hướng dẫn chọn loạt cảm biến họ LM34 M· ký hiƯu LM34A LM34 LM34CA LM34C LM34D D¶i nhiƯt ®é -55 F to + 300 C -55 F to + 300 C -40 F to + 230 C -40 F to + 230 C -32 F to + 212 C Độ xác + 2.0 F + 3.0 F + 2.0 F + 3.0 F + 4.0 F Đầu 10mV/F 10mV/F 10mV/F 10mV/F 10mV/F Bảng 12.8: Hướng dẫn chọn loạt cảm biến nhiệt họ LM35 Mà sản phẩm LM35A LM35 LM35CA LM35C LM35D Dải nhiệt độ -55 C to + 150 C -55 C to + 150 C -40 C to + 110 C -40 C to + 110 C C to + 100 C §é chÝnh x¸c + 1.0 C + 1.5 C + 1.0 C + 1.5 C + 2.0 C Đầu 10 mV/F 10 mV/F 10 mV/F 10 mV/F 10 mV/F Tính chất gắn liện với việc viết phần mềm cho thiết bị phi tuyến đà đưa nhiều nhà sản xuất tung thị trường loạt cảm biến nhiệt tuyến tính Các cảm biến nhiệt đơn giản sử dụng rộng rÃi bao gồm loạt họ LM34 LM35 hÃng National Semiconductor Corp 12.2.5 Các cảm biến nhiệt họ LM34 LM35 Loạt cảm biến LM34 cảm biến nhiệt mạch tích hợp xác cao mà điện áp đầu tỷ lệ tuyến tính vơí nhiệt độ Fahrenheit (xem hình 12.7) loạt LM34 không yêu cầu cân chỉnh bên vốn đà cân chỉnh Nó đưa điện áp 10mV cho thay đổi nhiệt độ 10F bảng 12.7 hướng dẫn ta chọn cảm biến loạt LM34 Loạt cảm biến LM35 cảm biến nhiệt mách tích hợp xác cao mà điện áp ®Çu cđa nã tû lƯ tun tÝnh víi nhiƯt độ theo thang độ Celsius Chúng không yêu cầu cân chỉnh vốn chúng đà cân chỉnh Chúng đưa điện áp 10Mv cho thay đổi 10C Bảng 12.8 hướng dẫn ta chọn cảm biến họ LM35 12.2.6 Phối hợp tín hiệu phối ghép LM35 với 8051 Phối hợp tín hiệu thuật ngữ sử dụng rộng rÃi lĩnh vực thu đo liệu Hầu hết biến đổi đưa tín hiệu điện dạng điện áp, dòng điện, dung kháng trở kháng Tuy nhiên, cần chuyển đổi tín hiệu điện áp nhằm gửi đầu vào đến chuyển đổi ADC Sự chuyển đổi (biến đổi) gọi chung phèi hỵp tÝn hiƯu Phèi hỵp tÝn hiƯu cã thĨ việc chuyển đổi dòng điện thành điện áp khuyếch đại tín hiệu Ví dụ, cảm biến nhiệt thay đổi trở kháng với nhiệt độ Sự thay đổi trở kháng phải chuyển thành điện áp để sử dụng cho ADC Xét trường hợp nối LM35 tới ADC 804 ADC 804 có độ phân dải bít với tối đa 256 bước (28) LM35 (hoặc ML34) tạo điện áp 10mV cho thay đổi nhiệt độ 10C nên ta tạo điều kiện Vin ADC 804 tạo Vout = 2560mV (2,56V) cho đầu đầu thang đo vậy, nhằm tạo Vout đầy thang 2,56V cho ADC 804 ta cần đặt điện áp Vref/2 = 1,28V Điều làm cho Vout ADC 804 đáp ứng trực tiếp với nhiệt độ hiển thị LM35 (xem bảng 12.9) Các giá trị Vref/2 cho bảng 12.5 Bảng 12.9: Nhiệt độ NhiƯt ®é (0C) 10 30 Vin (mV) 10 20 30 100 300 Các đại lượng vật lý (nhiệt độ, áp suất, lưu tốc v.v) Bộ biến đổi Phối hợp tín hiệu ADC Bộ vi điều khiÓn Vout (D7 – D0) 0000 0000 0000 0001 0000 0010 0000 0011 0000 1010 0001 1110 H×nh 12.9: Thu đo đại lượng vật lý 8051 P2.5 P2.6 RD P1.0 D D0 WR Q VCC CLK R CLK IN Vin(+) Vin(-) LM35 or LM34 GND 2.5k P1.7 P2.7 Q D7 INTR CS Set to 1.28V 10k LM336 A GND Vref/2 GND Q D 5V ADC804 Q H×nh 12.10 H×nh 12.10: Nối ghép 8051 với DAC 804 cảm biến nhiệt độ Hình 12.10 biểu diễn nối ghép cảm biến nhiệt đến ADC 804 Lưu ý ta sư dơng ®i èt zener LM336 - 2.5 ®Ĩ cè định điện áp qua biến trở 10kW 2,5V Việc sử dụng LM336 - 2.5 vượt qua dao động lên xuống nguồn nuôi 12.2.7 Chíp ADC 808/809 với kênh tương tự Một chíp hữu ích khác National Semiconductor ADC 808/809 (xem hình 12.11) Trong ADC 804 có đầu vào tương tự chíp có kênh đầu vào Như cho phép ta hiển thị lên biến đổi khác qua chíp Lưu ý rằng, ADC 808/809 có đầu liệu bít ADC 804 kênh đầu vào tương tự dồn kênh chọn theo bảng 12.10 sử dụng ba chân địa A, B C IN0 IN7 GND Clock D0 Vcc ADC808/809 Vref(+) EOC Vref(-) OE SC ALE A C C (LSB) D7 H×nh 12.11: Bộ biến đổi ADC 808/809 Bảng 12.10: Chọn kênh tương tự ADC 808 Chọn kênh tương tự IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 C 0 0 1 1 B 0 1 0 1 A 1 1 Trong ADC 808/809 Vrer(+) Vref(-) thiết lập điện áp tham chiếu Nếu Vref (-1) = Gnd Vref (+) = 5V độ phân dải 5V/256 = 19,53mV Do vậy, để có độ phân dải 10mV ta cần đặt Vref (+) = 2,56V Vref (-) = Gnd Từ hình 12.11 ta thấy có chân ALE Ta sử dụng địa A, B C để chọn kênh đầu vào IN0 IN7 kích hoạt chân ALE để chốt địa Chân SetComplete để bắt đầu chuyển đổi (Start Conversion) Chân EOC dùng để kết thúc chuyển đổi (End - Of - Conversion) chân OE cho phép đọc đầu (Out put Enable) 12.2.7 Các bước lập trình cho ADC 808/809 Các bước chuyển liệu từ đầu vào ADC 808/809 vào vi điều khiển sau: Chọn kênh tương tự cách tạo địa A, B C theo bảng 12.10 Kích hoạt chân ALE (cho phép chốt địa Address Latch Enable) Nó cần xung thấp lên cao để chốt địa Kích hoạt chân SCbằng xung cao xuống thấp để bắt đầu chuyển đổi Hiển thị OEC để báo kết thúc chuyển đổi Đầu cao - xuống - thấp báo liệu đà chuyển đổi cần phải lấy Kích hoạt OE cho phép đọc liệu ADC Một xung cao xuống thấp tới chân OE đem liÖu sè khái chÝp ADC L­u ý r»ng ADC 808/809 đồng hồ riêng phải cấp xung đồng đến chân CLK Mặc dù tốc độ chuyển đổi phụ thuộc vào tần số đồng hồ nối đến CLK không nhanh h¬n 100ms ... xng - thÊp tới chân RD lấy liệu 804 Chân Vin (+) Vin (-) Đây đầu vào tương tự vi sai mà Vin = Vin (+) - Vin (-) Thông thường Vin (-) nối xuống đất Vin (+) dùng đầu vào tương tự chuyển đổi dạng số... Ví dụ 12. 7: H·y thư nèi ghÐp ADC 804 víi 8051 theo sơ đồ 12. 7 Vi? ??t chương trình để hiển thị chân INTR lấy đầu vào tương tự vào ghi A Sau gọi chương trình chuyển đổi mà Hex ASCII chương trình. .. Bộ vi điều khiển Vout (D7 – D0) 0000 0000 0000 0001 0000 0010 0000 0011 0000 1010 0001 1110 Hình 12. 9: Thu đo đại lượng vật lý 8051 P2.5 P2.6 RD P1.0 D D0 WR Q VCC CLK R CLK IN Vin(+) Vin (-)

Ngày đăng: 08/07/2014, 03:20

Từ khóa liên quan

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

Tài liệu liên quan