logo

Đồ án " Môn học vi xử lý"

Trong đồ án này, chúng ta sẽ nêu ra một phương án (trên lí thuyết) môđun điều khiển tự động động cơ bước theo nhiệt độ. Tốc độ động cơ tăng khi nhiệt độ tăng và tốc độ động cơ giảm khi nhiệt độ giảm. Đây là một đồ án cơ bản nhất trong việc áp dụng kĩ thuật vi xử lí trong đo lường và điều khiển. Giả sử khoảng biến thiên nhiệt độ là T1-T2 (T1
ĐỒ ÁN Vi xử lí. Đồ án môn học Vi xử lí. Điều khiển động cơ bước theo nhiệt độ. 1.Mở đầu. -Giới thiệu chức năng hệ thống: Trong đồ án này, chúng ta sẽ nêu ra một phương án (trên lí thuyết) môđun điều khiển tự động động cơ bước theo nhiệt độ. Tốc độ động cơ tăng khi nhiệt độ tăng và tốc độ động cơ giảm khi nhiệt độ giảm. Đây là một đồ án cơ bản nhất trong việc áp dụng kĩ thuật vi xử lí trong đo lường và điều khiển. Giả sử khoảng biến thiên nhiệt độ là T1->T2 (T1 Hình: Sơ đồ khối hệ thống điều khiển motor bước theo nhiệt độ. Phương pháp vận hành: Bộ cảm biến gồm 8 đầu vào sẽ ghi lại sự thay đổi nhiệt độ của nguồn nhiệt và chuyển về đại lượng điện. Khối khuếch đại đệm vào khuếch đại tín hiệu nhận được từ cảm biến và chuẩn hoá theo yêu cầu của bộ biến đổi AD. Bộ biến đổi AD chuyển tín hiệu Analog thành tín hiệu Digital đưa vào 8255. 8255 là IC hỗ trợ lập trình giao tiếp với CPU thông qua cổng song song. Tín hiệu nhận được sẽ được xử lí và cấp tín hiệu điều khiển động cơ. Thông qua cổng song song và 8255, tín hiệu điều khiển được khuếch đại công suất làm quay động cơ. Khối CLOCK cung cấp xung chuẩn để điều khiển tốc độ động cơ và cung cấp xung nhịp cho bộ biến đổi AC. 3.Sơ đồ nguyên lí từng khối các kết nối: a)Bộ cảm biến và khuếch đại đệm vào: U U2 Khoảng tuyến tính U1 T T1 T2 Hình: Đặc tuyến một đầu cảm biến. Kí hiệu: T Bộ khuếch đại đệm vào đưa khoảng giá trị (U1,U2) về khoảng giá trị (0,5V) cho phù hợp với khoảng điện áp của bộ ADC. Như vậy, điện áp đầu ra từ 0 5V sẽ tỉ lệ thuận với nhiệt độ đầu vào của bộ cảm biến. + T - Ura (0 đến5V) Hình: Sơ đồ một bộ khuếch đại đệm vào. Do yêu cầu của khoảng nhiệt độ cần đo thường lớn hơn khoảng tuyến tính của một đầu cảm biến nên ta phải kết hợp nhiều đầu cảm biến tuyến tính ở các khoảng nhiệt độ khác nhau. Chọn khoảng làm việc trên đặc tuyến của các cảm biến giống nhau T. U .............. . T T0 T T1 T T2 Tn-2 T Tn-1 T Tn Cảm biến thứ Cảm biến thứ 2 Cảm biến thứ n- Cảm biến thứ 1 1 n Hình: Làm việc với 8 đầu cảm biến. b)Cấu trúc cổng song song: Cổng song song (LPT) có 25 chân, trong đó có 17 chân có tác dụng. Ở đồ án này chúng ta sử dụng cổng LPT1 có địa chỉ cơ sở 378h. Cổng LPT được giao tiếp thông qua 3 thanh ghi. Hình: Sơ đồ chân của cổng song song LPT. Thanh ghi số liệu (đọc và ghi), địa chỉ 378h Tín hiệu D7 D6 D5 D4 D3 D2 D1 D0 Chân số 9 8 7 6 5 4 3 2 Thanh ghi trạng thái (chỉ đọc), địa chỉ 379h Tín hiệu BUSY ACK PE SLCT ERROR X X X Chân số 11 10 12 13 15 -- -- -- Thanh ghi điều khiển, địa chỉ 37Ah Tín hiệu X X X X SLCTIN INIT AFD STR Chân số -- -- -- -- 17 16 14 1 c)Bộ biến đổi AD (ADC) và IC hỗ trợ lập trình 8255A. Sau khi phân tích yêu cầu của tín hiệu Analog cần biến đổi, ta chọn IC ADC 0808 (ADC 0809) là IC 8bit và 8 đầu vào Analog. Để giảm bớt công việc cho bộ vi xử lí trong việc điều khiển vào ra cho ADC, ta ghép nối ADC với cổng song song qua 8255A. 8255A được thiết lập ở chế độ vào ra cơ sở (mode 0). Trong mode 0, ta có 4 cổng làm việc độc lập là PA,PB,PC H,PCL có thể vào hoặc ra tuỳ ý. Cấu trúc ADC 0808 (ADC 0809)như sau. Xung CLK giữ nhịp CLK (200kHz -1Mhz) 8bit output Chuẩn điện thế VRef( dương Chuẩn điện thế âm VRef(- +) ) Start EOC ='1': đã chuyển đổi xong Chốt địa chỉ A2A1A0 ALE 8 kênh Analog và o Bắt đầu chuyển đổi OE A2 A1 A0 3 bit chọn kênh Analog Hình: Cấu trúc ADC0808(0809). Một chu kỳ làm việc của ADC: Hình: Một chu kỳ làm việc của ADC0808(0809) Ghép nối giữa 8255A và ADC: 8bit output PA0-PA7 A0 PC0 A1 PC1 A2 PC2 Start RD PC4 ALE WR OE PC5 ADC 8255A Hình: Sơ đồ ghép nối giữa ADC và 8255A PA: lấy dữ liệu từ ADC 0808 (ADC 0809) PC0, PC1, PC2: cổng điều khiển địa chỉ cho ADC. PC4: điều khiển chốt địa chỉ của kênh hiện hành và bắt đầu biến đổi ADC. PC5: chốt địa chỉ đầu ra để 8255A đọc. (Không dùng PC3 để độc lập việc điều khiển địa chỉ cho cổng PC L) d)Ghép nối 8255A với động cơ bước: Cấu trúc của động cơ bước: A B A',B',C',D' C D Hình: Cấu trúc của motor bước. Hoạt động của động cơ bước: Các cuộn dây được cấp dòng theo một vòng tròn, mỗi chu kì cấp dòng động cơ quay được 1 vòng. AA' BB' t CC' t DD' t t Hình: Hoạt động của từng cuộn dây trong motor bước. QA A Step motor B QB QC C D QD 12V Hình: Sơ đồ nguyên lí của khối khuếch đại công suất động cơ. Bộ khuếch đại công suất sử dụng 1 transitor công suất cho mỗi cuộn dây: "ABCD"= "0001" "0010" "0100" "1000" "0001" ...... "ABCD" thực hiện lệnh dịch 4 lần, động cơ quay 1 vòng. Giả sử động cơ quay 1000vòng/phút đến 10000vòng/phút trong khoảng T 1 đến T2. Ta có công thức: n=k T n1=1000vòng/phút = 16,6vòng/giây "ABCD" quay16,6x4lần = 66,4lần/giây. Với xung nhịp = 17,4kHz cứ 17,4kHz/66.4=262 xung = 1 "ABCD" quay 1 lần. n2=10000vòng phút, tương tự trên, 26 xung = 2 "ABCD" quay 1 lần. Khi nhiệt độ biến thiên từ T0 đến T8, thì biến chỉ báo nhiệt độ VT biến thiên từ 000.0000.0000b đến 8x255=2040=111.1111.1000b. 1/26-1/262=kx2040 k=1.69.10-5 Khi ở nhiệt độ TX 1/ - 1/262 = 1,69.10-5x(VT-0) = 59172/(VT+227). Như vậy, với tần số xung là 17,4kHz thì cứ xung thì "ABCD" quay 1 lần. e)Ghép nối giữa khối động cơ và 8255A: PB0 A PB1 B PB2 C PB3 D 8255A Step motor block Hình: Ghép nối giữa 8255A và động cơ bước. PB dùng để điều khiển động cơ, sử dụng 4 bit PB0 đến PB3. f)Kết nối giữa cổng song song và 8255A: 8bit DATA D0-D7 D0-D7 RD STR WR /CS nối đất vì A0 AFD chip luôn /CS A1 INIT được chọn. 8255A Cổng song song Hình: Kết nối giữa cổng song song và 8255A. g)Mạch tạo xung CLOCK 8254 và ghép nối với ADC và cổng song song fXTAL/6 = 2,5MHz XTAL 15MHZ PCLK độ rỗng = 50% 8284 +5V Reset Reset: Dùng reset lại 8255A 10k khi khởi động. /RES + C F/C CSYNC 10uF Hình: Mạch tạo xung CLK 2,5MHz dùng thạch anh. - F/C: khi nối đất dùng thạch anh trong là m xung nhịp. - CSYNC: lối và o cho xung đồng bộ từ bên ngoà i, nếu dùng thạch anh trong thì phải nối đất. - /RES: chân khởi động, nối với mạch RC để tự khởi động. Đối với đối tượng điều khiển là ADC và Stepmotor thì tần số của CLK không cần lớn lắm. Đối với ADC cần tần số CLK là 200Khz-1MHz. Stepmotor cần TS khoảng 1KHz, ta dùng thêm các bộ chia tần. Để đơn giản cho thiết bị, ta chỉ chia tần cho ADC, còn Stepmotor ta dùng một biến đếm lớn để chia tần và điều khiển. Sơ đồ nguyên lí bộ chia tần 12. 74LS92 MR1 Q3 f/12 f MR2 Q2 CP0 Q1 CP1 Q0 Hình: Sơ đồ nguyên lí bộ chia tần 12. Một chu kỳ làm việc của ADC: Sơ đồ khối mạch CLK có chia tần: CLK Chia 2.5MHz 12 CLKA=208kHz Chia 12 CLKB=17,6kHz Hình: Sơ đồ khối mạch chia tần từ 2,5MHz xuống 208kHz và 17,6kHz. Sơ đồ ghép nối giữa CLK với ADC và VXL thông qua cổng song song. 17.4kHz CLKB /ERROR CLKA 200kHz Reset Reset SLCT 8255A CLK Cổng song song ADC EOC EOC='1': ADC đã chuyển đổi xong Hình: Sơ đồ ghép nối giữa CLK với các IC 8255A, ADC và cổng song song. 4)Đoạn mã chương trình: a)Các chế độ của 8255A và cổng song song: 8255A làm việc ở mode 0 (vào ra cơ sở) Thiết lập mode cho 8255A: CWR (A0='1',A1='1') 1 0 0 1 0 0 0 0 Điều Chọn mode 0 PA PCH Chọn PA PCL khiển cho nhóm A nhận xuất dữ mode 0 xuất dữ xuất dữ cấu (gồm PA và dữ liệu liệu cho liệu liệu hình PCH) nhóm 8255A B (gồm PB và PCL) Các chân chức năng mới của cổng song song: Thanh ghi số liệu (đọc và ghi), địa chỉ 378h Tín hiệu D7 D6 D5 D4 D3 D2 D1 D0 Chức năng địa chỉ cho D7 D6 D5 D4 D3 D2 D1 D0 8255A Thanh ghi trạng thái (chỉ đọc), địa chỉ 379h Tín hiệu BUSY ACK PE SLCT ERROR X X X Chức -- -- -- EOC CLK(200kHz) -- -- -- năng (ADC) Thanh ghi điều khiển, địa chỉ 37Ah Tín hiệu X X X X SLCTIN INIT AFD STR Chức A1 A0 RD ,WR -- -- -- -- -- năng (8255A) (8255A) (8255A) Mô hình phương pháp thu thập nhiệt độ: T0 T1 T2 T3 T4 T5 T6 T7 T8 S0 S1 S2 S3 S4 S5 S6 S7 T TX Hình: Mô hình phương pháp thu thập nhiệt độ. Mỗi cảm biến Si (i=0,7) trong khoảng nhiệt độ Ti đến Ti+1 qua bộ khuếch đại đệm vào chuẩn Ura tuyến tính theo nhiệt độ trong khoảng 0-5V, qua ADC biến thiên từ 0000.0000b đến 1111.1111b. Như vậy, khi nhiệt độ môi trường TX trong khoảng Ti đến Ti+1, các cảm biến S0 đến Si-1 đều cho giá trị 1111.1111b, các cảm biến Si+1 đến S7 đều cho giá trị 0000.0000b, còn cảm biến Si cho giá trị trung gian giữa 0000.0000b và 1111.1111b. Lấy tổng các giá trị này, ta biết được giá trị tuyến tính theo Tx. b)Lưu đồ thuật toán chương trình: Begin Lập mode 0 cho 8255A Cho động cơ khởi động ADC biến đổi xong Đọc nhiệt độ Đếm xung đồng hồ Đủ xung cho động cơ nhảy tiếp? Cho động cơ nhảy 1 bước Chú thích: - Sau khi chạy chương trình, hệ thống sẽ là m việc liên tục đến khi tắt nguồn cung cấp. c)Đoạn mã chương trình: TITLE Chuong trinh dieu khien dong co buoc theo nhiet do .MODEL SMALL .STACK 100H .DATA CWR DB 90h; 10010000b giá trị thiết lập mode cho 8255A TGDL DW 378; Địa chỉ thanh ghi dữ liệu cổng song song TGDK DW 37A; Địa chỉ thanh ghi điều khiển cổng song song TGTT DW 379; Địa chỉ thanh ghi trạng thái cổng song song VT DW 0; khởi tạo giá trị 0 cho biến chỉ báo nhiệt độ Delta DW 26; biến điều khiển tốc độ động cơ quay DW 00010001b; biến điều khiển động cơ quay demxung DW 0; biến đếm xung CLK Daucambien DB 0; biến chứa số liệu đầu cảm biến hiện thời temp DB 0; .CODE MAIN PROC OUT TGDK,111b; yêu cầu thanh ghi CWR chuẩn bị nhận dl OUT TGDL,CWR; thiết lập mode cho 8255A OUT TGDK,011b; yêu cầu PB chuẩn bị nhận dữ liệu OUT TGDL,quay; cho động cơ bắt đầu khởi động vonglap IN AH, TGTT; lấy thanh ghi trạng thái AND AH,10000b; chọn ra bit 4 (bit EOC của ADC) CMP AH,10000b; so sánh với 1 JNE ADCchuaxong; nếu không =1 (ADC biến đổi chưa xong) thì chưa ;đọc nhiệt độ. CALL Docnhietdo; nếu =1 (ADC đã biến đổi xong) thì đọc nhiệt độ ADCchuaxong: CALL Demxungclk; gọi thủ tục đếm xung CLK CMP demxung,delta; so sánh biến đếm xung với biến điều khiển tốc độ JNE khongquay; nếu chưa đếm đủ thì chưa cho động cơ nhảy tiếp CALL Quaydongco; nếu đã đủ thì cho động cơ nhảy tiếp MOV demxung,0; reset lại biến đếm xung khongquay: JMP vonglap; Docnhietdo PROC NEAR OUT 37A, 101b; yêu yêu cầu PC chuẩn bị nhận dữ liệu OUT 00100000b; yêu cầu ADC chốt địa chỉ ra. OUT 37Ah, 000b; yêu cầu PA chuẩn bị xuất dữ liệu IN AX, 378h; nhận chỉ báo nhiệt độ từ đầu cảm biến ADD VT, AX; cộng giá trị vào biến nhiệt độ INC Daucambien; CMP daucambien 8; JNE alabel; MOV daucambien,0; bắt đầu lại từ đầu cảm biến 0 ADD VT,227; MOV AX,59712; MOV DX,0; DIV VT; MOV delta,AX; suy ra delta=59712/(VT+227) MOV VT,0; khởi tạo lại biến chỉ báo nhiệt độ alabel: RET Quaydongco PROC NEAR OUT TGDK,011b; yêu cầu PB chuẩn bị nhận dữ liệu ROL quay; OUT TGDL, quay; cho động cơ quay theo biến điều khiển quay RET Demxungclk PROC NEAR IN AH, TGTT; lấy thanh ghi trạng thái vào AH AND AH,1000b; lấy riêng bít 3 (bit CLK) CMP temp,AH; so sánh trạng thái trước và trạng thái mới của CLK JE boqua; nếu không có gi khác thì bỏ qua CMP temp,1; nếu khác thì kiểm tra biến trạng thái trước JNE khongdem; nếu trạng thái trước khác 1(=0) thì không đếm INC demxung; nếu trạng thái trước = 1 (xung CLK nhảy từ 1 xuống 0) thì ;đếm. khongdem: MOV temp,AH boqua: RET MAIN ENDP END MAIN
DMCA.com Protection Status Copyright by webtailieu.net