Bộ chỉnh lưu dùng để biến đổi điện áp xoay chiều thành điện áp một chiều

Trong sự phát triển của khoa học kỹ thuật, kỹ thuật điện tử, đặc biệt là việc phát triển các bộ vi điều khiển, đã làm thay đổi sâu sắc đời sống con người.Trong sản xuất, những dây chuyền được tự động hóa, con người đã hạn chế được việc tham gia trực tiếp vào các công việc nguy hiểm. Nói chung, Vi điều khiển tham gia vào rất nhiều lĩnh vực trong đời sống và sản xuất. Trong các thiết bị điện tử dân dụng, các bộ vi điều khiển điều khiển hoạt động của TV, máy giặt, lò vi-ba Trong hệ thống sản xuất tự động, bộ vi điều khiển được sử dụng trong Robot, dây chuyền tự động. Nhưng cho dù hoạt động ở lĩnh vực nào thì vi điều khiển cung cần có nguồn DC để hoạt động. Do đó, các bộ vi điều khiển luôn có một bộ chỉnh lưu. Đây cũng chính là đề tài của nhóm em. Bộ chỉnh lưu dùng để biến đổi điện áp xoay chiều thành điện áp một chiều. Việc chuyển đổi này có nhiều cách để thực hiện như: dùng diode để chỉnh lưu bán kỳ, toàn kỳ, hay dùng Thyristor, Triac để tạo ra điện áp một chiều theo góc kích. Nhóm em sử dụng Triac kết hợp với cầu diode để làm bộ chỉnh lưu.

doc34 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2975 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Bộ chỉnh lưu dùng để biến đổi điện áp xoay chiều thành điện áp một chiều, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI ---------------------------------- Trong sự phát triển của khoa học kỹ thuật, kỹ thuật điện tử, đặc biệt là việc phát triển các bộ vi điều khiển, đã làm thay đổi sâu sắc đời sống con người.Trong sản xuất, những dây chuyền được tự động hóa, con người đã hạn chế được việc tham gia trực tiếp vào các công việc nguy hiểm. Nói chung, Vi điều khiển tham gia vào rất nhiều lĩnh vực trong đời sống và sản xuất. Trong các thiết bị điện tử dân dụng, các bộ vi điều khiển điều khiển hoạt động của TV, máy giặt, lò vi-ba…Trong hệ thống sản xuất tự động, bộ vi điều khiển được sử dụng trong Robot, dây chuyền tự động. Nhưng cho dù hoạt động ở lĩnh vực nào thì vi điều khiển cung cần có nguồn DC để hoạt động. Do đó, các bộ vi điều khiển luôn có một bộ chỉnh lưu. Đây cũng chính là đề tài của nhóm em. Bộ chỉnh lưu dùng để biến đổi điện áp xoay chiều thành điện áp một chiều. Việc chuyển đổi này có nhiều cách để thực hiện như: dùng diode để chỉnh lưu bán kỳ, toàn kỳ, hay dùng Thyristor, Triac để tạo ra điện áp một chiều theo góc kích. Nhóm em sử dụng Triac kết hợp với cầu diode để làm bộ chỉnh lưu. Nhóm em sẽ sử dụng 89C51 kết hợp với ADC để điều khiển Triac. Việc kết hợp ADC trong mạch điều khiển Triac sẽ tạo ra một bộ điều khiển kín, tín hiệu ngỏ ra luôn được hồi tiếp về và so sánh, nhờ đó tín hiệu ngỏ ra luôn được đảm bảo. Bộ chỉnh lưu này có thể được sử dụng ở những nơi mà điện áp một chiều ngỏ ra luôn phải thay đổi như trong các phòng thí nghiệm, thực hành của các trung tâm điện tử hay ở các trường dạy kỹ thuật. CHƯƠNG II: THIẾT KẾ VÀ TÍNH TOÁN ----------------------- I) Yêu cầu của đề tài: Đối với đề tài này khi thực hiện cần đảm bảo hai yêu cầu cơ bản: - Hiển thị phải rõ ràng. - Điện áp chỉnh lưu phải được hồi tiếp để dảm bảo tính ổn định. II) Sơ đồ khối: Dựa vào các yêu cầu của đề tài, chúng em có sơ đồ khối như sau: Nút nhấn Bộ chuyển đổi ADC Khối hiển thị led 7 đoạn Vi xử lí Khối công suất - Nút nhấn: giao tiếp với vi xử lí, dùng để nhập giá trị điện áp. - Bộ chuyển đổi ADC: chuyển đổi tín hiệu Analog từ khối công suất thành tín hiệu Digital. - Khối hiển thị led 7 đoạn: hiển thị giá trị đặt và giá trị đo. - Vi xử lí: nhận dữ liệu từ bộ chuyển đổi ADC, giao tiếp nút nhấn, điều khiển khối công suất và hiển thị dữ liệu lên led 7 đoạn. - Khối công suất: thực thi tín hiệu điều khiển từ vi xử lí. Ngoài các khối cơ bản trên, chúng ta còn có một khối quan trọng khác là khối nguồn và mạch đồng bộ. - Khối nguồn: dùng để cung cấp nguồn cho mạch điều khiển. - Mạch đồng bộ: mạch này có tác dụng giúp vi xử lí tính toán góc kích cho Triac của khối công suất. III) Chức năng các khối: A. Khối nguồn: 1) Chức năng: cung cấp nguồn cho mạch điều khiển. 2) Sơ đồ nguyên lí khối nguồn: điện áp 9VAC được lấy từ máy biến áp, được chỉnh lưu toàn kỳ, qua IC 7805 để tạo nguồn 5VDC. 3) Các thành phần trong khối nguồn: a) Diode bán dẫn: - Khi đã có được hai chất bán dẫn là P và N , nếu ghép hai chất bán dẫn theo một tiếp giáp P-N ta được một Diode, tiếp giáp P-N  có đặc điểm: Tại bề mặt tiếp xúc, các điện tử dư thừa trong bán dẫn N khuyếch tán sang vùng bán dẫn P để lấp vào các lỗ trống => tạo thành một lớp Ion trung hoà về điện => lớp Ion này tạo thành miền cách điện giữa hai chất bán dẫn. - Kí hiệu: - Các loại Diode: diode zener, diode quang, diode biến dung, diode nắn điện,… - Diode dẫn khi được phân cực thuận (UAK > 0) - Diode phát quang ( Light Emiting Diode: LED): là Diode phát ra ánh sáng khi được phân cực thuận, điện áp làm việc của LED khoảng 1,7 đến 2,2V dòng qua LED khoảng từ 5mA đến20mA. Led được sử dụng để làm đèn báo nguồn, đèn nháy trang trí, báo trạng thái có điện . vv… - Trong mạch chỉnh lưu, Diode có thể được tích hợp thành Diode cầu. b) Tụ điện: -Tụ điện là một linh kiện điện tử thụ động, là phần tử có giá trị dòng điên qua nó tỷ lệ với tốc độ biến đổi của điện áp trên nó theo thời gian. Tụ điện đươc chia thành hai loại: tụ phân cực và tụ không phân cực. -Tụ điện có hai bản cực làm bằng chất dẫn điện đặt song song, ở giữa có lớp cách điện. - Các loại tụ thường gặp ở hai nhóm có trị số cố định hay có trị số thay đổi được. Theo đặc điểm laọi vật liệu sử dụng khi chế tạo, tụ điện đựơc phân chia thành các loại sau: + Tụ gốm. + Tụ mica + Tụ polistiren. + Tụ polycacbonat. + Tụ poyeste + ….. - Tụ điện có giá trị điện dung thay đổi được bao gồm hai dạng cơ bản. + Dạng tụ điều chuẩn dung điện môi là lớp không khí giữa 2 bộ cánh cách kim loại nhôm lắp xen kẽ nhau một cách cố định, bộ kia có thể xoay 1800 nhờ một trục quay. + Dạng tụ tinh chỉnh dùng mica làm vật liệu điện môi cách ly giữa hai hay nhiều phiến kim loại xen kẽ, điện dung thay đổi được nhờ xoay vít trục để đều chỉnh phần điện tích trùng nhau giữa các phiến kim loại, phần trùng càng nhiều thì giá trị tụ càng tăng. - Kí hiệu: c) IC ổn áp 7805: là loại IC dùng để ổn định điện áp +5V đầu ra. - Output (3): Chân điện áp ra 5V. - Command (2): Chân nối mass. - Input (1) : Chân điện áp vào. - Điện áp ngõ vào Vin>=5V (lớn hơn từ 3V hay 4V), điện áp ngõ ra Vout =5V. - Chân nối mass cũng rất quan trọng, nếu chân này bị hở thì áp tại ngõ ra sẽ có thể bằng với điện áp ngõ vào. Điều này sẽ rât nguy hiểm nếu vi xử lý nhận được mức điện áp này. B. Mạch đồng bộ: 1) Chức năng: điện áp 9VAC sau khi qua cầu chỉnh lưu sẽ cho ra điện áp 9VDC có dạng sóng như hình dưới, mỗi khi chân VBE ≤ 0.7V thì chân ZERO sẽ có một xung cạnh lên. Xung này được đưa vào vi xử lí để tính toán góc kích cho SCR. 2) Sơ đồ nguyên lí: - khi VBE ≤ 0.7V, VZERO = 5V. - khi VBE ≥ 0.7V, VZERO = 0V. C. Khối hiển thị LED 7 đoạn: 1) Chức năng: hiển thị giá trị đặt và giá trị điện áp sau khi chỉnh lưu (trong tài liệu này giá trị sau khi chỉnh lưu được gọi là VDC). 2) Thành phần của khối hiển thị: a) LED 7 đoạn: - LED 7 đoạn có cấu tạo bao gồm 7 LED đơn có dạng thanh xếp theo hình bên dưới và có thêm một LED đơn hình tròn nhỏ thể hiện dấu chấm tròn ở góc dưới, bên phải của LED 7 đoạn. 8 LED đơn trên LED 7 đoạn có Anode hoặc Cathode được nối chung với nhau (COM). 8 cực còn lại trên mỗi LED đơn được đưa thành 8 chân riêng, cũng được đưa ra ngoài để kết nối với mạch điện. Nếu LED 7 đoạn có Anode chung, COM được nối với +Vcc, các chân c̣n lại dùng để điều khiển trạng thái sáng tắt của các LED đơn, LED chỉ sáng khi tín hiệu đặt vào các chân này ở mức 0. Nếu LED 7 đoạn có Cathode chung, COM được nối xuống Ground (hay Mass), các chân còn lại dùng để điều khiển trạng thái sáng tắt của các LED đơn, LED chỉ sáng khi tín hiệu đặt vào các chân này ở mức 1. Anode chung: LED 7 đoạn Cathode chung: 3) Sơ đồ nguyên lý khối hiển thị LED 7 đoạn: - Trên sơ đồ nguyên lý , LED 7 đoạn là loại Anode chung, các chân Anode chung lần lượt nối với cực C của 3 Transistor PNP (Q1,Q2,Q3), cực E của Transistor nối nguồn 5V, các cực B lần lượt nối chân P2.0, P2.1, P2.2 của Vi xử lí. Các chân còn lại của LED 7 đoạn được nối với Port 0 (data led). - Phương pháp quét LED: Khi kết nối chung data LED của LED 7 đoạn như trên, ta không thể cho các LED này sáng đồng thời (do ảnh hưởng lẫn nhau giữa các LED) mà phải thực hiện phương pháp quét, nghĩa là tại mỗi thời điểm chỉ sáng một LED và tắt các LED còn lại. Do hiện tượng lưu ảnh của mắt, ta sẽ thấy các LED sáng đồng thời. Lúc này, các Transistor hoạt động giống như "công tắc". Muốn LED nào sáng thì Transistor tương ứng với LED đó phải dẫn. - Bảng mã LED: Số Mã LED(Hex) 0 11 1 D7 2 32 3 92 4 D4 5 98 6 18 7 D3 8 10 9 90 4) Tính toán linh kiện: - Chọn dòng qua LED là 15mA. Ta có, RLED= VCC / 15mA= 5/15mA= 0.333KΩ. Chọn RLED= 330Ω - Chọn dòng qua cực B của A1013 là 0.5mA. Ta có, RB= VCC / 0.5mA= 5/0.5mA= 10KΩ. Chọn RB= 10KΩ D. Nút nhấn: 1) Chức năng: dùng để nhập giá trị điện áp cần chỉnh lưu. 2) Sơ đồ nguyên lý mạch nút nhấn: E. Vi xử lí - AT89C51: 1) Chức năng: nhận tín hiệu từ bộ chuyển đổi ADC0804 và nút nhấn. Sau đó tính toán và xuất tín hiệu điều khiển cho khối công suất. Đồng thời xử lí tín hiệu để hiển thị lên LED 7 đoạn. 2) Các thành phần trong khối: Thành phần chính của khối là MCU AT89C51 a) Tổng quát về AT89C51: 8951 là IC vi điều khiển (Microcontroller) do hãng Intel sản xuất. IC này có đặc điểm như sau: - 4k byte ROM,128 byte RAM - 4 Port I/O 8 bit. - 2 bộ đếm/ định thời 16 bit. - Giao tiếp nối tiếp. - 64k byte không gian bộ nhớ chương trình mở rộng. - 64k byte không gian bộ nhớ dữ liệu mở rộng. - Một bộ xử lý luận lý (thao tác trên các bít đơn). - 210 bit được địa chỉ hóa. - Bộ nhân / chia trong 4µs. b) Chức năng các chân: Port 0: từ chân 32 đến chân 39 (P0.0 _P0.7). Port 0 có 2 chức năng: trong các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường IO, đối với thiết kế lớn có bộ nhớ mở rộng nó được kết hợp giữa bus địa chỉ và bus dữ liệu. Port 1: từ chân 1 đến chân 8 (P1.0 _ P1.7). Port 1 là port IO dùng cho giao tiếp với thiết bị ngoài nếu cần. Port 2: từ chân 21 đến chân 28 (P2.0 _ P2.7). Port 2 là một port có tác dụng kép dùng như các đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị dùng bộ nhớ mở rộng. Port 3: từ chân 10 đến chân 17 (P3.0 _ P3.7). Port 3 là port có tác dụng kép. Các chân của port này có nhiều chức năng, có công dụng chuyển đổi có liên hệ đến các đặc tính đặc biệt của 8051 như ở bảng sau: Bit Tên Chức năng chuyển đổi P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RXD TXD INT0 INT1 T0 T1 WR RD Ngõ vào dữ liệu nối tiếp Ngõ xuất dữ liệu nối tiếp Ngõ vào ngắt cứng thứ 0 Ngõ vào ngắt cứng thứ 1 Ngõ vào TIMER/ COUNTER thứ 0 Ngõ vào của TIMER/ COUNTER thứ 1 Tín hiệu ghi dữ liệu lên bộ nhớ ngoài Tín hiệu đọc bộ nhớ dữ liệu ngoài PSEN (Program store enable): PSEN là tín hiệu ngõ ra có tác dụng cho phép đọc bộ nhớ chương trình mở rộng và thường được nối đến chân OE\ của Eprom cho phép đọc các byte mã lệnh. PSEN ở mức thấp trong thời gian 8051 lấy lệnh. Các mã lệnh của chương trình được đọc từ Eprom qua bus dữ liệu, được chốt vào thanh ghi lệnh bên trong 8051 để giải mã lệnh. Khi 8051 thi hành chương trình trong ROM nội PSEN ở mức cao. ALE (Address Latch Enable): Khi 8051 truy xuất bộ nhớ bên ngoài, Port 0 có chức năng là bus địa chỉ và dữ liệu do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ra ALE ở chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối chúng với IC chốt. Tín hiệu ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động. EA\ (External Access): tín hiệu vào EA\ ở chân 31 thường được mắc lên mức 1 hoặc mức 0. Nếu ở mức 1, 8051 thi hành chương trình từ ROM nội. Nếu ở mức 0, 8051 thi hành chương trình từ bộ nhớ mở rộng. Chân EA\ được lấy làm chân cấp nguồn 21V khi lập trình cho Eprom trong 8051. RST (RESET): Khi ngõ vào tín hiệu này đưa lên mức cao ít nhất 2 chu kỳ máy, các thanh ghi bên trong được nạp những giá trị thích hợp để khởi động hệ thống. Khi cấp điện mạch phải tự động reset. Các ngõ vào bộ dao động X1, X2: Bộ tạo dao động được tích hợp bên trong 8051. Khi sử dụng 8051, người ta chỉ cần nối thêm tụ thạch anh và các tụ. Tần số của thạch anh thường là 12 Mhz còn tụ thường là 33 pF. c) Tổ chức bộ nhớ RAM: Ram bên trong 8051 được phân chia như sau: - Các bank thanh ghi có địa chỉ từ 00H đến 1Fh. - Ram địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH. - Ram đa dụng từ 30H đến 7FH. - Các thanh ghi chức năng đặc biệt từ 80H đến FFH. d) Trạng thái các thanh ghi sau khi reset: Thanh ghi Nội dung Đếm chương trình PC Thanh ghi tích lũy A Thanh ghi B Thanh ghi trạng thái PSW SP DPTR Port 0 đến Port 3 IP IE Các thanh ghi định thời SCON SBUF 0000H 00H 00H 00H 07H 0000H FFH XXX0 0000B 0X0X 0000B 00H 00H 00H Thanh ghi quan trọng nhất là thanh ghi bộ đếm chương trình PC được Reset tại địa chỉ 0000H. Khi ngõ vào RST xuống mức thấp, chương trình luôn bắt đầu tại địa chỉ 0000H của bộ nhớ chương trình. Nội dung của Ram trong chip không bị hay đổi bởi tác động của ngõ vào Reset. e) Hoạt động định thời: 8951 có hai timer 16 bit, mỗi timer có bốn cách làm việc. Người ta sử dụng các timer để: - Định khoảng thời gian. - Đếm sự kiện. - Tạo tốc độ baud cho port nối tiếp trong 8951. Truy xuất các timer của 8951 dùng sáu thanh ghi chức năng đặc biệt cho trong bảng sau: SFR Mục Đích Địa chỉ Địa chỉ hóa từng bit TCON Điều khiển Timer 88H Có TMOD Chế độ Timer 89H Không TL0 Byte thấp của Timer 0 90H Không TL1 Byte thấp của Timer 1 91H Không TH0 Byte cao của Timer 0 92H Không TH1 Byte cao của Timer 1 93H Không Các thanh ghi chức năng của timer trong 8031. f) Hoạt động ngắt: - Một ngắt là sự xảy ra một điều kiện, một sự kiện mà nó gây ra treo tạm thời thời chương trình chính trong khi điều kiện đó được phục vụ bởi một chương trình khác. Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng dụng vi điều khiển. Chúng cho phép hệ thống đáp ứng bất đồng bộ với một sự kiện và giải quyết sự kiện đó trong khi một chương trình khác đang thực thi. - Có 5 nguồn ngắt ở 8951: 2 ngắt ngoài, 2 ngắt từ timer và 1 ngắt port nối tiếp. Tất cả các ngắt theo mặc nhiên đều bị cấm sau khi reset hệ thống và được cho phép từng cái một bằng phần mềm. - Mỗi nguồn ngắt được cho phép hoặc cấm ngắt qua một thanh ghi chức năng đặt biệt có định địa chỉ bit IE ( Interrupt Enable : cho phép ngắt ) ở địa chỉ A8H. - Các cờ ngắt: Ngắt Cờ Thanh ghi SFR và vị trí bit Bên ngoài 0 IE0 TCON.1 Bên ngoài 1 IE1 TCON.3 Timer 1 TF1 TCON.7 Timer 0 TF0 TCON.5 Port nối tiếp TI SCON.1 Port nối tiếp RI SCON.0 Các lọai cờ ngắt - Các vectơ ngắt: Ngắt Cờ Địa chỉ vector Reset hệ thống RST 0000H Bên ngoài 0 IE0 0003H Timer 0 TF0 000BH Bên ngoài 1 IE1 0013H Timer 1 TF1 001BH Port nối tiếp TI và RI 0023H Vector reset hệ thống (RST ở địa chỉ 0000H) được để trong bảng này vì theo nghĩa này, nó giống ngắt : nó ngắt chương trình chính và nạp cho PC giá trị mới. 3) Tính toán linh kiện: - Bộ phận dao động của vi xử lý được kết nối như hình dưới: IC 89C51 với tần số làm việc là 12 MHz. Chân 18, 19 của 89C51 được nối với thạch anh (cũng có thể thay thế thạch anh bằng tín hiệu xung clock). 1 chu kỳ máy của 89C51 là 1µs. - Bộ phận Reset được kết nối như hình dưới: khi cấp nguồn, áp trên R2 (chân 9 của 89C51) lên mức cao 5V ( = VCC ) sau đó sẽ xuống 0V do tụ C nạp. Nếu ấn nút Reset, thì áp trên R2 sẽ tăng gần bằng VCC nhờ cầu phân áp R1 và R2. VRST = R1 = Chọn VRST = 4.939V, R2 = 8.2K R1 = = 0.101K Chọn R1 = 0.1K 4) Sơ đồ kết nối với AT89C61 F. Khối công suất: 1) Chức năng: tạo ra điện áp VDC theo tín hiệu hiệu điều khiển của 89C51. 2) Các thành phần trong khối: a) GBJ1506: - VRRM = 600V - Io = 15A - VF (max) = 1.05V b) Triac BTA16-600B : - Kí hiệu Triac: - IT(RMS) = 16A; IT(AV) = 9.5A - VRRM = 600V - IGT = 10-50mA - Hai tụ CL1 và CL2 mắc song song R22 và R23 tạo thành mạch lọc. R22 và R23 tạo thành cầu phân áp cho 2 tụ CL1 và CL2 (VCL1= VCL2 = VDC/2). 3) Sơ đồ nguyên lý khối công suất: G. Bộ chuyển đổi ADC0804: 1) Chức năng: chuyển đổi tín hiệu Analog từ khối công suất thành tín hiệu Digital, đưa vào 89C51. 89C51 sẽ so sánh giá trị này với giá trị đặt để điều khiền góc kích SCR sao cho điện áp VDC luôn được ổn định. 2) Thành phần chính trong khối: a) Tổng quan về ADC0804: Chip ADC0804 là bộ chuyển đổi tương tự số thuộc họ ADC800 của hãng NationalSemiconductor. Chip này cũng được nhiều hãng khác sản xuất. Chip có điện áp nuôi +5V và độ phân giải 8 bit. Ngoài độ phân giải thì thời gian chuyển đổi cũng là một tham số quan trọng khi đánh giá bộ ADC. Thời gian chuyển đổi được định nghĩa là thời gian mà bộ ADC cần để chuyển một đầu vào tương tự thành một số nhị phân. Đối với ADC0804 thì thời gian chuyển đổi phụ thuộc vào tần số đồng hồ được cấp tới chân CLK R và CLK IN và không bé hơn 110ms. Các chân khác của ADC0804 có chức năng như sau: - CS (Chip select): Chân số 1, là chân chọn Chip, đầu vào tích cực mức thấp được sử dụng để kích hoạt Chip ADC0804. Để truy cập ADC0804 thì chân này phải ở mức thấp. - RD (Read): Chân số 2, là một tín hiệu vào, tích cực ở mức thấp. Các bộ chuyển đổi đầu vào tương tự thành số nhị phân và giữ nó ở một thanh ghi trong. RD được sử dụng để có dữ liệu đã được chyển đổi tới đầu ra của ADC0804. Khi CS = 0 nếu có một xung cao xuống thấp áp đến chân RD thì dữ liệu ra dạng số 8 bit được đưa tới các chân dữ liệu (DB0 – DB7). - WR (Write): Chân số 3, đây là chân vào tích cực mức thấp được dùng để báo cho ADC biết bắt đầu quá trình chuyển đổi. Nếu CS = 0 khi WR tạo ra xung cao xuống thấp thì bộ ADC0804 bắt đầu quá trình chuyển đổi giá trị đầu vào tương tự Vin về số nhị phân 8 bit. Khi việc chuyển đổi hoàn tất thì chân INTR được ADC hạ xuống thấp. - CLK IN và CLK R: CLK IN (chân số 4), là chân vào nối tới đồng hồ ngoài được sử dụng để tạo thời gian.Tuy nhiên ADC0804 cũng có một bộ tạo xung đồng hồ riêng. Để dùng đồng hồ riêng thì các chân CLK IN và CLK R (chân số 19) được nối với một tụ điện và một điện trở (như hình vẽ). Khi ấy tần số được xác định bằng biểu thức: - Ngắt INTR (Interupt): Chân số 5, là chân ra tích cực mức thấp. Bình thường chân này ở trạng thái cao và khi việc chuyển đổi hoàn tất thì nó xuống thấp để báo cho CPU biết là dữ liệu chuyển đổi sẵn sàng để lấy đi. Sau khi INTR xuống thấp, cần đặt CS = 0 và gửi một xung cao xuống thấp tới chân RD để đưa dữ liệu ra. - Vin(+) và Vin(-): Chân số 6 và chân số 7, đây là 2 đầu vào tương tự vi sai, trong đó Vin = Vin(+) – Vin(-). Thông thường Vin(-) được nối tới đất và Vin(+) được dùng làm đầu vào tương tự và sẽ được chuyển đổi về dạng số. - Vcc: Chân số 20, là chân nguồn nuôi +5V. Chân này còn được dùng làm điện áp tham chiếu khi đầu vào Vref/2 để hở. - Vref/2: Chân số 9, là chân điện áp đầu vào được dùng làm điện áp tham chiếu. Nếu chân này hở thì điện áp đầu vào tương tự cho ADC0804 nằm trong dải 0 - +5V. Tuy nhiên, có nhiều ứng dụng mà đầu vào tương tự áp đến Vin khác với dải 0 - +5V. Chân Vref/2 được dùng để thực hiện các điện áp đầu ra khác 0 - +5V. - Bảng quan hệ điện áp Vref/2 với Vin: 3) Tính toán linh kiện: - Chân Vin(+) được nối với cầu phân áp tạo bởi R16 và R17, sao cho VDC = 0 - 250V tương ứng với Vin(+) = 0 - 5V. Ta suy ra công thức: với Vin(+) = 5V, VDC = 250V Suy ra: R16 = 50R17. Chọn R17 = 10KΩ thì R16 = 500KΩ. Chọn R16 = 510 KΩ Nhưng thực tế, các giá trị điện trở đều có sai số nên ngỏ vào của ADC0804 không như tính toán. Sai số trên điện trở cộng với sai số trong quá trình tính toán chọn linh kiện sẽ tạo ra sai số không nhỏ đối với ADC0804. Điều này sẽ tạo ra sai lệch giữa giá trị hiển thị trên Led 7 đoạn và giá trị thực tế (ở đây là giá trị VDC thực tế). Để giảm sai số ở ngỏ vào của ADC0804, ta cần mắc thêm biến trở RV2 như sơ đồ nguyên lý. Theo tính toán thì R17 = 10 KΩ, ta chọn R17 = 4.7 KΩ nên chọn RV2 = 10 KΩ. - Chân Vref/2 được nối với biến trở RV1 để có thể điều chỉnh điện áp từ 1.6V đến 3.75V. Theo tính toán thì chân Vref/2 = 2.5V nhưng do chân Vin(+) thực tế có sai số (sai số chủ yếu trên cầu phân áp R16 và R17) nên chân Vref/2 thực tế sẽ không bằng 2.5V. Do đó biến trở RV1 được sử dụng để giảm sai số này. Thay đổi Vref/2 đồng nghĩa với việc thay đổi dãy điện áp ngỏ vào. - Tốc độ chuyển đổi ADC0804 (TC): Chọn TC = 100µs = 0.1ms. Suy ra fCLK = 660KHz Ta lại có: với fCLK = 660KHz = 660000Hz Suy ra, RC ≈ 1.4×10-6. Chọn R = 10KΩ suy ra C = 1.4×10-10 F. Chọn C = 150pF - Diode D4 - Bảng tỉ lệ giữa VDC, Vin(+) và ngỏ ra DB: VDC (V) Vin(+) (V) DB(Hex) 0 0 0 1 5x(1/250) = 0.02 1 2 5x(2/250) = 0.04 2 3 5x(3/250) = 0.06 3 4 5x(4/250) = 0.08 4 5 5x(5/250) = 0.1 5 10 5x(10/250) = 0.2 A (10D) 50 5x(50/250) = 1 32(50D) 100 5x(100/250) = 2 64(100D) 200 5x(200/250) = 4 C8(200D) Ta có ADC0804 có độ phân giải là 28 = 256 (0 - 255) tương ứng (0 - 5V). Gọi n là kích thước bước 1 bước (V). Ta có: (chia 255 vì từ 0 - 255 có 255 bước) Ta chọn lại n = 0.02V để tìm ra số bước mới tương ứng (0 - 5V). Với n = 0.02V thì số bước = 5/0.02 = 250 (nghĩa là (0 - 5V) tương ứng (0 - 250) với n = 0.02V). Lúc này, Vin(+) = 0 - 5V được biểu diển bằng ngỏ ra DB = 0 – 250 4) Sơ đồ nguyên lý: CHƯƠNG III: LƯU ĐỒ THUẬT GIẢI VÀ CHƯƠNG TRÌNH ------------------------------ Trong chương trình sử dụng bốn hoạt động ngắt: ngắt timer 0, ngắt timer 1, ngắt ngoài 0 và ngắt ngoài 1. Chức năng của các ngắt như sau: - Ngắt timer 0: dùng2 để tạo góc kích. - Ngắt timer 1: dùng để hiển thị. - Ngắt ngoài 0: so sánh giá trị đặt và giá trị hồi tiếp về để điều chỉnh góc kích. - Ngắt ngoài 1: đọc ADC I) Lưu đồ thuật giải: 1) Ngắt ngoài 0: BEGIN TR0=1 SOTHUC<SOAO S Đ TAM-- TAM==0 S SOTHUC>SOAO S Đ TAM++ TAM==500 S Đ END 2) Ngắt ngoài 1: BEGIN RD=0 SOTHUC=DULIEU STBINH==255 SOTHUC=TONG/STBINH Đ S TONG=TONG+DULIEU STBINH++ RD=1 WR=0 WR=1 END 3) Ngắt timer 0: TAM==500 TAM==500 BEGIN TH0=-20>>8 TL0=-20 DEM==0 END KICH=1 DEM=TAM TR0=0 KICH=0 DEM-- TAM==500 TAM==500 TAM==500 TAM==500 TAM==500 TAM==500 TAM==500 S Đ chtang>=20 Chtang=0; Tam++ Chtang++ 4) Ngắt timer 1: BEGIN TH1= -400>>8; TL1= -400; chontang++; chontang>=250 S D chontang=0; sothuc<soao S D chgiam++; chgiam==20 S D chgiam=0; tam--; TAM<=2 S D tam=2; sothuc==soao S D sothuc>=soao sothuc>=soao sothuc==soao D Chtang++ chtang>=20 S D Chtang=0; Tam++ TAM>=390 S D Tam=390; CHTHI==1 CHTHI==2 S D D S HIENTHI=SOAO HIENTHI=SOTHUC TRAM=HIENTHI/100 DU=HIENTHI%100 CHUC=DU/10 DONVI=DU%10 CQUET==2 CQUET==1 S S Đ Đ LED1=1 RALED=MALED[CHUC] LED2=0 CQUET=3 LED3=1 RALED=MALED[TRAM] LED1=0 CQUET=2 LED2=1 RALED=MALED[DONVI] LED3=0 CQUET=1 END TRAM=3 CHAY==0 soao=donvi+chuc*10+tram*100 chthi=1 layao=0 LAYAO==1 NHAP==0 CHTHI=2 LAYAO=1 SKTRA=0 LAYAO==1 NHAP==0 NTRAM==0 CHAY==0 TRAM++ Nhập đầy đủ thông tin (timer0,1; chế độ 2; IT0=1; IT1=0; kich=1; tam=490; dem=tam; sothuc=0; soao=0; cquet=1; chthi=1; sktra=0; tong=0;stbinh=0; P2=0ffh; cho các ngắt hoạt động; bắt đầu cho ADC dịch; timer chạy BEGIN 5) Chương trình chính: S S S Đ S S Đ Đ S Đ Đ S S TRAM=0 Đ NTRAM==0 S SKTRA=TRAM*100+CHUC*10+DONVI SKTRA>200 TRAM=0 Đ Đ II) Code chương trình: #include #define led1 P2_0 #define led2 P2_1 #define led3 P2_2 #define ntram P2_6 #define nchuc P2_5 #define ndonvi P2_4 #define nnhap P2_3 #define nchay P2_7 #define raled P0 //port data led #define dulieu P1 //port de lay so volt #define kich P3_0 //chan kich cho SCR #define dich P3_6 //chan cho ADC bat dau dich #define doc P3_7 //chan lay du lieu ra cua ADC unsigned char layao,sktra,stbinh,chontang,chtang,chgiam;// chon so sanh, lay ao unsigned int dem,tam;// timer0 goc kich unsigned int tong;//ngat1 ADC unsigned char hienthi,sothuc,soao; // ngat0 ZERO unsigned char chthi,cquet,tram,chuc,donvi,du; //timer1 hien thi unsigned char maled[10]={0x11,0xd7,0x32,0x92,0xd4,0x98,0x18,0xd3,0x10,0x90}; /* tam la de tao goc kich, sothuc la so volt thuc te, soao la so volt minh chon hay nhap vao chthi la chon hien thi, cquet dung de quet led, sktra dung de kiem tra k cho so nhap qua 200 stbinh la so de chia lay' trinh binh cho tat ca cac lan dich */ void ngat0(void) interrupt 0 //ngat zero { TH0=-25>>8; TL0=-25; dem=tam;//nap gia tri goc kich moi kich=1;//chan kich triac TR0=1; //cho timer chay } void timer0(void) interrupt 1 //timer dung de tao ra goc kich { TH0=-25>>8; TL0=-25; if (dem==0)//kiem tra neu du thi kich { kich=0;//chan kich triac TR0=0;// k cho timer chay nua } else//neu k thi giam dem' { dem--; } } void ngat1(void) interrupt 2 { doc=0;//dua data ADC ra cac chan ADC if(stbinh==255)//xem du 10lan lay' volt vao chua { sothuc=tong/stbinh;//neu du 10lan thi chia trung binh ra so thuc tong=0;//cho tong=0 va bat dau cong lai tu dau stbinh=0;//cho so trung binh=0 de bat dau lai } else { tong=tong+dulieu;//neu chua thi cong don vao tong stbinh++;//tang so de chua lay tong len 1 lan } doc=1; dich=0;//tiep tuc cho adc bat dau chuyen doi tiep theo dich=1; } void timer1(void) interrupt 3 { TH1=-400>>8; TL1=-400; chontang++; if(chontang>=250) { chontang=0; if(sothuc<soao)//volt thuc tu lon hon volt nhap thi tang goc kich { chgiam++; if(chgiam>=20) { chgiam=0; tam--; if(tam<=2) { tam=2; } } } if(sothuc==soao)//volt thuc tu bang volt nhap thi tang goc kich { } if(sothuc>soao)//volt thuc tu nho hon volt nhap thi giam goc kich { chtang++; if(chtang>=20) { chtang=0; tam++; if(tam>=390) { tam=390; } } } } switch (chthi) { case 1: hienthi=sothuc;//nhap nut' chay thi lay volt thuc dua vao so' hien thi break; case 2: hienthi=sktra;//nhap nut' nhap thi lay volt can nhap dua vao so' hien thi break; default: break; } tram=hienthi/100;//tach so hien thi thui du=hienthi%100; chuc=du/10; donvi=du%10; switch (cquet)// dung de quet led theo thu tu thui ah,hjhj { case 1: led3=1;//lan dau vao quet led1 rui cho cquet=2 de lan sau vao quet led2 raled=maled[donvi]; led1=0; cquet=2; break; case 2: led1=1;//lan2 vao quet led2 rui cho cquet=3 de lan sau vao quet led3 raled=maled[chuc]; led2=0; cquet=3; break; default: led2=1;//lan3 vao quet led3 rui cho cquet=1 de lan sau vao quet led1 raled=maled[tram]; led3=0; cquet=1; break; } } void main(void) { kich=1; tam=5; dem=tam; sothuc=0; soao=200; cquet=1; chthi=1; sktra=0; tong=0; stbinh=0; chontang=0; chgiam=0; chtang=0; TMOD=0x11; TH0=-25>>8; TL0=-25; TH1=-400>>8; TL1=-400; IT0=1;//ngat ZERO tat dong bang canh xuong IT1=0;//ngat ADC tat dong muc 0 cho an toan, hjhjhj ET0=1; ET1=1; EX0=1; EX1=1; EA=1; P2=0xff; doc=1; dich=1; dich=0; dich=1; TR0=0; TR1=1; while(1) { if(ntram==0)//kiem tra nut tram co duoc nhan' hay khong { if(layao==1)//nut nhap chua nhan' thi k lam tiep { tram++; if(tram==3) { tram=0; } while(ntram==0) { sktra=tram*100+chuc*10+donvi;//so' de kiem tra so ao if(sktra>200)//neu nhap qua 200 thi tram = 0 { tram=0; } } } } if(nchuc==0)//kiem tra nut chuc co duoc nhan' hay khong { if(layao==1)//nut nhap chua nhan' thi k lam tiep { chuc++; if(chuc==10) { chuc=0; } while(nchuc==0) { sktra=donvi+chuc*10+tram*100;//so' de kiem tra so ao if(sktra>200)//neu nhap qua 200 thi chuc = 0 { chuc=0; } } } } if(ndonvi==0)//kiem tra nut donvi co duoc nhan' hay khong { if(layao==1)//nut nhap chua nhan' thi k lam tiep { donvi++; if(donvi==10) { donvi=0; } while(ndonvi==0) { sktra=donvi+chuc*10+tram*100;//so' de kiem tra so ao if(sktra>200)//neu nhap qua 200 thi donvi = 0 { donvi=0; } } } } if(nnhap==0) { chthi=2;//lay' so ao ra hien thi tat' hien thi so thuc layao=1;//cho phep' cac nut tram, chuc, donvi duoc lam viec sktra=0; while(nnhap==0) { } } if(nchay==0) { if(layao==1)//nut nhap truoc thi nut chay moi' co tac dung { soao=donvi+chuc*10+tram*100;//so ao cuoi' cung dung de so sanh de tang giam goc kich layao=0;// lam mat tac' dung cac' nut tram,chuc,donvi,chay chthi=1;//lay so volt thuc ra hien thi tat' hien thi so' ao } while(nchay==0) { } } } }

Các file đính kèm theo tài liệu này:

  • docBộ chỉnh lưu dùng để biến đổi điện áp xoay chiều thành điện áp một chiều.doc