Khi sử dụng bộ ADC đơn cực mà có tín hiệu vào là lưỡng cực trong khoảng ±Vpp thì ta cần phải cộng điện áp vào Vi với một điện áp nền bằng +Vpp, khi đó ta sẽ có Vi nằm trong khoảng 0..+2Vpp;
BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ Đề tài : Đề tài : ỨNG DỤNG KIT 8051 DÙNG ĐỂ CHUYỂN ỨNG DỤNG KIT 8051 DÙNG ĐỂ CHUYỂN ĐỔI A/D & D/A ĐỔI A/D & D/A Sinh viên thực hiện : NGUYỄN VŨ ANH DUY Lớp : 95 KĐĐ Giáo viên hướng dẫn : LÊ THANH ĐẠO TPHCM, tháng 2-2000 LỜI CẢM ƠN Để hồn thành được luận án này, đầu tiên em xin được gửi lời cám ơn đến Ban Giám Hiệu, các Thầy Cô đặc biệt là Thầy Cô trong bộ môn Điện tử thuộc Khoa Điện – Điện Tử trường Đại Học Sư Phạm Kỹ Thuật TP.HCM, đã tận tình chỉ dạy, truyền đạt kiến thức cũng như tạo điều kiện thuận lợi cho em trong suốt quá trình học tập vừa qua Em xin chân thành cảm ơn Thầy Lê Thanh Đạo đã quan tâm theo dõi, tận tình hướng dẫn và động viên em để thực hiện tốt luận án tốt nghiệp này Ngồi ra em cũng xin gửi lời cảm ơn đến tất cả các bạn bè cùng khóa và người thân chung quanh đã giúp đỡ về vật chất và tinh thần để em đạt được thành tích như ngày hôm nay. MỤC LỤC PHẦN DẪN NHẬP PHẦN I : GIỚI THIỆU TỔNG QUÁT Chương I: Biến đổi tương tự số và số tương tự Trang 1 A. Biến đổi tương tự số 1 I – Tổng quát 1 II – Các kỹ thuật AD 4 III – Giao tiếp phần mềm 11 IV – Giao tiếp phần cứng 11 B. Biến đổi số tương tự 12 I – Tổng quát 12 II – Giao tiếp với vi xử lý 13 Chương II : Giao tiếp ngoại vi 8255 A 14 I – Tổng quát 14 II – Mô tả chi tiết 15 III – Chế độ hoạt động 17 Chương III: Tổng quan về họ vi điều khiển MCS-51 24 I – Cấu trúc 8051 24 II – Sơ lược về các chân 25 III – Cấu trúc cổng xuất nhập 28 IV – Tổ chức bộ nhớ 29 V – Các thanh ghi có chức năng đặc biệt 31 VI – Bộ nhớ ngồi 36 VII – Hoạt động reset 41 Chương IV: Tóm tắt tập lệnh 43 I – Giới thiệu 43 II – Các mode định vị 43 Chương V: Giới thiệu về KIT vi điều khiển 8051 53 I- Chức năng của các phím 53 II- Giới thiệu cấu trúc phần cứng kit vi điều khiển 55 PHẦN II: THIẾT KẾ Chương I: Thiết kế phần cứng 60 I – Mạch chuyển đổi AD 60 II – Mạch DA 62 Chương II: Thiết kế phần mềm 68 I – Lưu đồ giải thuật chương trình 68 II – Chương trình 71 PHẦN III: PHỤ LỤC PHẦN DẪN NHẬP I – ĐẶT VẤN ĐỀ: Vào đầu những năm thập niên 60, kỹ thuật số đã đưa vào ứng dụng trong thực tế nhưng ở phạm vi nhỏ. Cho đến ngày hôm nay kỹ thuật số đã được phát triển một cách mạnh mẽ và được ứng dụng vào mọi lãnh vực của cuộc sống. Từ những chiếc máy vi tính (computer), máy CD, máy VDC, truyền hình số … cho đến các băng diã CD đã dần dần thay thế các máy và băng từ tín hiệu tương tự (analog) bởi bộ phân giải rộng, độ chính xác cao và dễ dàng trong quá trình xử lý tín hiệu. Tuy nhiên trong cuộc sống hằng ngày chúng ta lại thường tiếp xúc với những tín hiệu tương tự nhiều hơn. vd: Điện thoại, sóng đài truyền hình, dòng điện sinh hoạt, âm thanh … vì thế phải cần có một sự chuyển đổi từ tín hiệu tương tự (Analog) – số (Digital) để xử lý dữ liệu, sau đó lại chuyển đổi ngược lại từ số (Digital) – tương tự (Analog) để đưa vào điều khiển, khống chế thiết bị. Đó là những lý do để em thực hiện đề tài này. II – MỤC ĐÍCH YÊU CẦU CỦA ĐỀ TÀI Có rất nhiều phương pháp để thực thi việc chuyển đổi A/D và D/A • Sử dụng vi mạch số • Sử dụng vi xử lý • Sử dụng vi điều khiển Với đề tài này em sử dụng vi điều khiển để thực hiện việc chuyển đổi A/D và D/A Mục đích: Chuyển đổi tín hiệu Analog – Digital để xử lý, sau đó chuyển đổi ngược lại từ Digital – Analog để điều khiển, khống chế thiết bị Yêu cầu: Hiểu rõ về kỹ thuật số, các quá trình chuyển đổi A/D và D/A bên trong những vi mạch chuyên dụng (IC ADC 0809 và DAC 0808), nắm vững cách sử dụng kết nối phần cứng và phần mềm của KIT 8051. III – GIỚI HẠN ĐỀ TÀI Do sự chuyển đổi A/D và D/A để điều khiển và xử lý bằng KIT 8051 rất phong phú và đa dạng mà kiến thức của em thì còn rất nhiều hạn chế đặt biệt đối với vi điều khiển 8051 là phần không có trong chương trình giảng dạy của nhà trường, chủ yếu là em tự tìm tòi học hỏi, nghiên cứu là chính. Bên cạnh đó chỉ với thời gian 6 tuần để tìm hiểu, viết luận văn và thi công thì đề tài này em xin được trình bày và thực hiện một quá trình chuyển đổi A/D và D/A cơ bản nhất. Ngày 25 Tháng 02 Năm 2000 Sinh viên thực hiện Nguyễn Vũ Anh Duy PHẦN I GIỚI THIỆU TỔNG QUÁT Chương I BIẾN ĐỔI TƯƠNG TỰ – SỐ VÀ SỐ – TƯƠNG TỰ A – BIẾN ĐỔI TƯƠNG TỰ SỐ (ADC): Biến đổi tương tự – số (analog – digital) là thành phần cần thiết trong việc xử lý thông tin và các cách điều khiển sử dụng phương pháp số. Tín hiệu thực ở Analog. Một hệ thống tiếp nhận dữ liệu phải có các bộ phận giao tiếp Analog – Digital (A/D). Các bộ chuyển đổi tương tự số, viết tắt là ADC thực hiện hai chức năng cơ bản là lượng tử hóa và mã hóa. Lượng tử hóa là gán cho những mã nhị phân cho từng giá trị rời rạc sinh ra trong quá trình lượng tử hóa. I – TỔNG QUÁT 1 – Quan hệ In – Out: Biến đổi AD có tính chất tỉ lệ. Tín hiệu vào Analog được biến đổi thành một phân số X bằng cách so sánh với tín hiệu tham chiếu Vref. Đầu ra của bộ ADC là mã của phân số này. Bất kỳ một sai số tín hiệu Vref nào cũng sẽ dẫn đến sai số mức ra, vì vậy người ta cố gắn giữ cho Vref càng ổn định càng tốt. Vref Vin Digital output Hình 2.1 Quan hệ vào ra các khối ADC Nếu bộ ADC xuất mã ra gồm n bit thì số mức ra rời rạc là 2 n . Đối quan hệ tuyến tính, tần vào được lượng tử hóa theo đúng mức này. Mỗi mức như vậy là một tín hiệu Analog được phân biệt với hai mã kế tiếp nhau, nó chính là kích thước của LSB (Least Significant Bit). FS Q=LSB= 2 N Trong đó : Q : Lượng tử LSB : bit có trọng số thấp nhất FS : giá trị tồn thang ADC Tất cả các giá trị Analog của lượng tử Q được biểu diễn bởi mã số, mà mã này tương ứng với giá trị trung bình của lượng tử (có thể hiểu là giữa khoảng LSB) gọi là mức ngưỡng. Các giá trị Analog nằm trong khoảng từ mức ngưỡng sai biệt đi ± ½ LSB vẫn được thể hiện bằng cùng một mãù, đó là sai số lượng tử hóa. Sai số này có thể sẽ giảm đi bằng cách tăng số bit trong mã ra bộ ADC. 2 – Độ phân giải: Là giá trị biến đổi nhỏ nhất của tín hiệu vào ra được yêu cầu để thay đổi mã lên một mức. Độ phân giải được đưa ra với giả thiết lý tưởng. 3 – Độ chính xác: Sự sai biệt giữa các giá trị điện áp tín hiệu vào so với giá trị FS tương đương với mã xuất ra. Thường có ghi trong đặc tính của các bộ ADC thương mại. 4 – ADC: Tùy theo công nghệ chế tạo mà bộ ADC có đầu vào đơn cực hay lưỡng cực, đa số nằm trong khoảng 0…5V hoặc 0…10V đối với đơn cực và -5…+5V hoặc –10V… +10V đối với ADC lưỡng cực. Tín hiệu vào cần phù hợp với tầm vào xác định cho từng bộ ADC. Nếu đầu vào không hết thang sẽ tạo mã vô dụng ở đầu ra. Vấn đề này được giải quyết bằng cách chọn tầm đầu vào bộ ADC sau đó chỉnh độ lợi thích hợp cho đầu vào của nguồn Analog. Khi sử dụng bộ ADC đơn cực mà có tín hiệu vào là lưỡng cực trong khoảng ±Vpp thì ta cần phải cộng điện áp vào Vi với một điện áp nền bằng +Vpp, khi đó ta sẽ có Vi nằm trong khoảng 0 +2Vpp; tín hiệu này sẽ được đưa tới đầu vào bộ ADC. Nếu sử dụng ADC lưỡng cực thì không cần cộng tín hiệu và đầu ra ta sẽ nhận được mã lưỡng cực. 5 – Đầu ra bộ ADC: Đa số các ADC có đầu ra 8 Bits, 16 Bits … dù vậy cũng có loại 3½ Digit, mã BCD, 10 Bits, 14 Bits. Đầu các bộ ADC thường là mã nhị phân tự nhiên hoặc có dấu. ADC dùng cho máy đo chỉ thị số đa dụng thường là mã BCD. 5 – Tín hiệu tham chiếu Vr: Vi+ (EOC) End of Convertion Vi - OE (Output Enable) Vr Start Digital Output Clock Hình 2.3 Các ngõ vào, ra chính của bộ ADC Hình vẽ cho thấy đầu vào và đầu ra của bộ ADC. Mọi ADC đều yêu cầu có tín hiệu Vr. Bất kỳ một sai số nào trên Vr đều gây ra lỗi độ lợi ở đặc tính của AD. Vì vậy Vr là tín hiệu đảm bảo độ chính xác và ổn định của bộ AD. Dùng IC ổn áp có thể thỏa mãn điều này. 7 – Tín hiệu điều khiển: Mọi bộ ADC đều có tính xung Clock và tín hiệu điều khiển để hoạt động. Thiết bị ngồi giao tiếp với ADC sẽ khởi động quá trình AD bằng cách phát một xung Start vào đầu vào Start của ADC, ADC sẽ nhận biết cạnh lên của xung Start và ngay sau đó nó sẽ kéo đường EOC (End of Conversion) xuống thấp (không tích cực). Lúc này ADC đang thực hiện quá trình biến đổi, tương ứng với mỗi xung Clock đưa vào ADC sẽ thực hiện được một bước biến đổi, sau một bước nhất định tùy theo bộ ADC, thì quá trình biến đổi hồn thành. Khi biến đổi xong, AD sẽ nâng đường EOC lên mức cao, tín hiệu này có thể dùng để kích một ngắt cứng của máy tính (nếu dùng giao tiếp với máy tính). Để đọc được dữ liệu đầu ra của bộ ADC thì phải nâng đường OE (Output Enable) của ADC lên mức cao, sau khi đọc xong thì lại trả đường này về mức thấp. ADC II – CÁC KỸ THUẬT AD: 1 – ADC có Vr dạng nấc thang: Analog Vht Vref input Vi Reference Comparateur Digital output Hình 2.4 Sơ đồ khối AD có Vr dạng nấc thang Counter: Bộ đếm tạo đầu ra cho bộ ADC bằng hoặc lớn hơn giá trị vào Vi. Nó được reset tại mọi thời điểm bắt đầu thực hiện AD và đếm dần lên sau mỗi xung Clock. Cứ mỗi lần đếm bộ DAC lại nâng lên mỗi nấc thang (1 LSB). Bộ so sánh sẽ dùng bộ đếm lại khi điện áp DAC (áp hồi tiếp) đạt tới giá trị vào Vi. Nhược điểm của phương pháp này là Tc (thời gian chuyển đổi) theo mức tín hiệu vào và đôi khi rất lâu. Tc=2ⁿ x T clock đối với bộ DAC n bit khi biến đổi một tín hiệu vào ở mức FS (Full Scale). Một cải tiến của phương này là “tracking” hay “servo” sử dụng bộ đếm thuận nghịch cho phép DAC đưa tín hiệu vào liên tục. Bằng sự khống chế bộ đếm từ bên ngồi tại một điểm nhất định ta dùng bộ DAC kiểu tracking như một bộ S & H (Sample and Hold). 2 – ADC thăng bằng liên tục: Sơ đồ khối giống như phương pháp trước, nhưng bộ đếm là bộ đếm thuận nghịch. Về cơ bản cũng giống như phương pháp trên nhưng bộ đếm hoạt động được ở chế độ thuận nghịch. Khi tín hiệu Vht < Vi thì bộ đếm sẽ đếm lên, ngược lại thì bộ đếm sẽ đếm xuống. Quá trình xác lập ghi nhận được khi giá trị Vht dao động xung quanh giá trị Vi. Tc cũng phụ thuộc vào Vi và nhược điểm sai số cũng giống phương pháp trên: sai số động phụ thuộc vào thời gian biến đổi và sai số tĩnh chủ yếu ở bộ biến đổi DA và bộ so sánh. ControlClock Counte r DAC 3 – Phương pháp biến đổi AD hàm dốc tuyến tính: (Phuơng pháp tích phân một độ dốc) Về bản chất thực hiện biến đổi trung gian từ điện áp ra khoảng thời gian sau đó đo khoảng thời gian theo phương pháp số. Quá trình biến đổi sẽ xảy ra như sau: Comparator Vi V1 Vs V2 Start Result Hình 2.6 Sơ đồ khối phương pháp ADC hàm dốc tuyến tính Sau thời gian kích khởi, bộ đếm sẽ bắt đầu đếm lên và mạch quét sẽ bắt đầu tạo ra tín hiệu tuyến tính thời gian. Tín hiệu quét và tín hiệu vào Vi được so sánh với nhau, khi hai tín hiệu này bằng nhau thì mạch so sánh sẽ đóng cổng không cho xung tới bộ đếm nữa. Như vậy nội dung của bộ đếm sẽ tỉ lệ với thời gian to, mà to lại tỉ lệ thuận với giá trị Vi nên nội dung bộ đếm tỉ lệ với Vi. Gate Clock Coute r Scan [...]... rất khó để có thể tạo ra một cách chính xác Mặt khác CPU cũng sẽ bị bận trong suốt quá trình xuất dữ liệu 2 – Cài đặt một ngắt ngoại vi: Phương pháp này sử dụng xung Start để mạch lấy mẫu ADC để kích hoạt một chương trình phục vụ ngắt, chương trình phục vụ này sẽ làm nhiệm vụ xuất một Byte dữ liệu ra cổng Xung Start ở được lợi dụng để tạo ra một tần số kích ngắt bằng tần số lấy mẫu 3 – Sử dụng ngắt... năm 1980 bởi hãng Intel, với sản phẩm đầu tiên là 8051 Các IC này gọi là vi điều khiển vì chúng bao gồm cả ROM, RAM, timer, các cổng nối tiếp và song song Đây là đặc điểm chính để ta phân biệt giữa vi điều khiển và vi xử lý 8051 không được sử dụng trong máy tính nhưng được sử dụng rộng rãi trong công nghiệp và trong sản phẩm máy móc tiêu dùng Cùng họ với 8051 có một số vi điều khiển khác Về cơ bản chúng... nội EA cũng chính là chân nhận điện áp mức cao để nạp EPROM nội • ALE (cho phép chốt địa chỉ) ALE là tín hiệu được xuất ra ở chân 20, rất quen thuộc với những ai đã từng làm việc với vi xử lý 8085, 8086 của Intel 8051 dùng ALE để phân kênh cho bus địa chỉ và bus dữ liệu Khi port 0 được dùng làm bus dữ liệu và byte thấp của bus địa chỉ – ALE là tín hiệu dùng để chốt địa chỉ vào thanh ghi chốt bên ngồi... Vùng nhớ 32 bytes bên dưới cũng có thể được dùng như vùng này mặc dù nó được dùng cho mục đích khác Bất kỳ vị trí nào trong vùng này đều có thể truy xuất tự do bằng địa chỉ trực tiếp hoặc gián tiếp Ví dụ để đọc nội dung byte nhớ nội của địa chỉ 5FH vào thanh ghi ACC, ta dùng lệnh sau: MOV A, 5FH ; Lệnh này chuyển một byte dữ liệu sử dụng địa chỉ trực tiếp để xác định địa chỉ nguồn (5FH) RAM nội cũng... hơn các phương pháp ban đầu, và độ chính xác cũng cao hơn do không cần sử dụng bộ biến đổi DA 4 – ADC xấp xỉ liên tiếp: Analog Input Vi Comparateur Vref Reference Clock SAR DAC Digital output Hình 2.8 ADC xấp xỉ liên tiếp Phương pháp này được dùng trong kỹ thuật biến đổi AD tốc độ cao – trung bình Nó cũng dùng một bộ DAC bên trong để tạo ra một điện áp bằng mức vào và của tín hiệu sau đúng bằng n chu... vậy mà độ phân giải tốt rất dễ đạt được và có thể thay đổi bằng cách chỉnh kích thước của vòng đếm và tần số xung Clock Tần số thấp là nhược điểm duy nhất của phương pháp Phương pháp này thường được dùng cho các đồng hồ hiện số, máy đo đa năng chỉ thị số, cảm biến nhiệt độ và những ứng dụng có yêu cầu không cao về tần số lấy mẫu 6 – ADC dùng biến đổi V – F (điện áp – tần số): VFC Bộ phát Bộ thu Định... vùng bộ nhớ thực sự chưa sử dụng Bên cạnh việc sử dụng tối đa bộ nhớ, ta có dùng phần cứng giải mã địa chỉ từ tối thiểu đến tối đa để không lãng phí không gian trong bộ nhớ 2 – Input / Output Mapped Tranfers (Truyền theo bản đồ I/O): Một vài hệ thống tạo ra vùng I/O có địa chỉ rất riêng biệt, mà ở đó địa chỉ có thể giống địa chỉ bộ nhớ, có thể phân biệt chúng với nhau bằng cách dùng tín hiệu điều khiển... (XTAL1) và 18 (XTAL2) Có thể mắc thêm tụ để ổn định dao động Thạch anh 12 MHz thường dùng cho họ MCs-51, trừ IC 80C31BH có thể dùng thạch anh lên đến 16 MHz Tuy nhiên, không nhất thiết phải dùng thạch anh mà ta có thể dùng mạch dao động TTL tạo xung Clock đưa vào chân XTAL1 và lấy đảo của nó đưa vào XTAL2 • RST (Reset) Ngõ vào RST (chân 19) là chân master reset của 8051 Khi nó ở mức cao (trong khoảng ít... Nó cho phép giải mã địa chỉ sử dụng phần cứng là tối thiểu, giải mã từ vùng IO đơn giản và tốt hơn bộ nhớ có giá trị chưa sử dụng 3 – DMA (Direct Memory Access : truy mất trực tiếp bộ nhớ): Khi chỉ có truyền dữ liệu đơn giản giữa bộ nhớ và ngoại vi được dùng tích lũy trong quá trình chuyền làm chậm quá trình một cách không cần thiết Bằng việc sử dụng kết hợp trong phần cứng trong dạng thiết bị phục vụ... bằng bảng dưới đây Vi điều khiển 8051 8031 8751 8052 8032 8732 Vùng mã lệnh nội 4K ROM 0K 4K EPROM 8K ROM 0K 4K EPROM Vùng dữ liệu nội 128 bytes 128 bytes 128 bytes 256 bytes 256 bytes 256 bytes Số timer 2 2 2 3 3 3 Bảng 4.1 So sánh các IC của họ Msc-51TM I – CẤU TRÚC CỦA 8051: Trung tâm của 8051 vẫn là vi xử lý trung tâm (CPU) Để kích thích cho tồn bộ hệ thống hoạt động, 8051 có bộ tạo dao động nội với . MÔN ĐIỆN TỬ Đề tài : Đề tài : ỨNG DỤNG KIT 8051 DÙNG ĐỂ CHUYỂN ỨNG DỤNG KIT 8051 DÙNG ĐỂ CHUYỂN ĐỔI A/D & D/A ĐỔI A/D & D/A Sinh viên thực hiện. số • Sử dụng vi xử lý • Sử dụng vi điều khiển Với đề tài này em sử dụng vi điều khiển để thực hiện việc chuyển đổi A/D và D/A Mục đích: Chuyển đổi tín