BÁO CÁO THỰC HÀNH LẬP TRÌNH KỸ THUẬT

23 642 0
BÁO CÁO THỰC HÀNH LẬP TRÌNH KỸ THUẬT

Đ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

BÁO CÁO THỰC HÀNH LẬP TRÌNH KỸ THUẬT

Bùi Kim Thành & Nguyễn Văn Tân BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ TP.HCM KHOA CƠ - ĐIỆN - ĐIỆN TỬ BÁO CÁO THỰC HÀNH LẬP TRÌNH KỸ THUẬT GVHD: TH.S PHẠM QUỐC PHƯƠNG SVTH : NGUYỄN VĂN TÂN BÙI KIM THÀNH MSSV: 107106030 107106032 TP.HCM Ngày 5 tháng 9 năm 2010 1 Bùi Kim Thành & Nguyễn Văn Tân Mục lục Trang Lời nói đầu 2 Phần I: Mạch điện 3 I: Linh kiện 3 II: Sơ đồ mạch điện 3 Phần II: Lập trình 4 I:Lưu đồ giải thuật 4 I: Lập trình cho AVR 6 II: Lập trình VB 9 Kết luận 22 Tài liệu tham khảo 22 2 Bùi Kim Thành & Nguyễn Văn Tân LỜI NÓI ĐẦU Trong thời đại ngày nay, khoa học kỹ thuật phát triển rất nhanh. Các hệ thống dây truyền sản xuất tự động phát triển rất mạnh. Việc áp dụng công nghệ thông tin vào sản xuất ngày càng nhiều. Mọi dây truyền sản xuất đều được áp dụng máy tính để điều khiển và giám sát. Các họ vi điều khiển ngày càng nhiều chủng loại, với nhiều loại chuyên dụng. Các dòng vi điều khiển như 89Cxx, AMR, AVR, PIC ngày càng được phát triển đa dạng với tốc độ xử lý cao, chuyên dụng. Sau quá trình học môn lập trình kỹ thuật, chúng em đã có được những kiến thức cơ bản về truyền thông giữa máy tính và vi điều khiển. Để đúc kết lại những gì đã học, nhóm chúng em đã làm bài về giao tiếp giữa máy tính và vi điều khiển AVR. Do còn hạn chế về thời gian và kinh nghiêm nên trong bài làm còn nhiều thiếu sót. Chúng em rất mong được sự chỉ bảo của thầy và các bạn để bài làm được tốt hơn. Xin chân thành cảm ơn 3 Bùi Kim Thành & Nguyễn Văn Tân Phần I: MẠCH ĐIỆN Nhóm làm một mạch điện dùng ATMEGA32 để truyền lên máy tính nhiệt độ đo được từ LM35 I. Linh kiện: Các linh kiện dùng trong mạch gồm có: ATMEGA32, LM35, điện trở, cổng RS232, led 7 đoạn, led, 7447, thạch anh, tụ điện II. Sơ đồ mạch điện: Phần II: LẬP TRÌNH 4 Bùi Kim Thành & Nguyễn Văn Tân I.Lưu đồ giải thuật: 5 BEGIN khái báo các chương trình Đọc giá trị ADC Chương trình con đọc ADC Khai báo kênh đọc ADC Lặp đến khi nào thanh ghi ADIF =1 trả về giá trị của thanh ghi ADCW Bùi Kim Thành & Nguyễn Văn Tân 6 xuất led 7 đoạn chương con xuất led 7 đoạn truyền giá trị ADC lên máy tính chương trình con truyền lặp cho đến khi thanh ghi UDRE=0 Đua giá trị truyền vào thanh ghi UDR ngắt khi nhận END Bùi Kim Thành & Nguyễn Văn Tân II.Lập trình cho AVR: #include <avr/io.h> #include <avr/interrupt.h> #include <avr/delay.h> #define VCC (1<<REFS0) #define giatrithamchieuADC VCC volatile unsigned char nhan; // khai bao bien nhan 8bit //chuong trinh con truyen du lieu void truyendulieu(unsigned char truyen) { while (bit_is_clear(UCSRA,UDRE)) {}; //vo lap ket thuc cho den khi bit UDRE=0 UDR=truyen;// dua gia tri bien truyen vao thanh ghi truyen UDR } uint16_t giatriADC;// dat ten bien ADC_val 16bit // chuong trinh con doc gia tri ADC uint16_t docADC(unsigned char kenhADC) { ADMUX|=kenhADC;// chon kenh doc adc ADCSRA|=(1<<ADSC);//khoi tao bat dau chuyen doi loop_until_bit_is_set(ADCSRA,ADIF);// vong lap ket thuc cho den khi 2 thanh ghi ADCSRA,ADIF =1 7 Bùi Kim Thành & Nguyễn Văn Tân return ADCW;// gia tri cua thanh gi ADCW duoc tra ve } // chuong trinh con xuat led 7 doan void LED7doan(uint16_t val) { uint16_t dvi,chuc,tram,nghin,temp_val; temp_val=val; nghin=temp_val/1000; temp_val-=(1000*nghin); tram=temp_val/100; temp_val-=(100*tram); chuc=temp_val/10; dvi=temp_val-(10*chuc); PORTB=(chuc<<4)+dvi; PORTC=(nghin<<4)+tram; } int main(void) { ADCSRA=(1<<ADEN)|(1<<ADPS2)|(1<<ADPS0);// ADMUX=giatrithamchieuADC; DDRA=0x00;// khai bao PORTA in DDRD=0xFE;// khai bao PORTD out 8 Bùi Kim Thành & Nguyễn Văn Tân DDRB=0xFF;// khai bao PORTB out DDRC=0xFF;// khai bao PORTC out //set baud, 57.6k ung voi f=8Mhz, UBRRH=0; UBRRL=51; //set khung truyen va kich hoat bo nhan du lieu UCSRA=0x00; UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); UCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE);// khai bao truyen ,nhan,ngat khi nhan sei(); while(1) { giatriADC=docADC(0)/2.05;//dua gia tri ADC vao bien ADC_val LED7doan(giatriADC);// xuat led truyendulieu(giatriADC);// truyen ADC len may tinh _delay_ms(100);// delay 100 ms } } ISR (SIG_UART_RECV)//ngat khi nhan { nhan=UDR;// dua gia thanh ghi nhan vao bien nhan 9 Bùi Kim Thành & Nguyễn Văn Tân PORTD=nhan;// dua gia tri bien nhan vao PORTD } III.Lập trình VB: Giao diện VB: Code: Dim a, b, dongco As Variant Dim c, d, e, f, s, dem, dem2, bdo, i, tat As Integer 'DIEU KHIEN DONG CO CHAY 10 [...]... THONG DUNG HOAT DONG" 20 Bùi Kim Thành & Nguyễn Văn Tân End If Else Label4.Caption = "HE THONG DUNG HOAT DONG" canhbao.Value = False congtac.Value = False Timer10.Enabled = False tat = 10 Text1.Text = 150 dongco = 0 End If End Sub 21 Bùi Kim Thành & Nguyễn Văn Tân KẾT LUẬN Bài báo cáo của nhóm của nhóm còn khá ngắn gọn, chưa sử dụng hết các chân của AVR Trong lập trình dao diện với người sử dụng còn... Trong lập trình dao diện với người sử dụng còn đơn giản nhưng cũng phần nào cho thấy sự giao tiếp giữa vi điều khiển và máy tính Bài báo cáo của nhóm còn nhiều hạn chế mong thầy và các bạn góp ý thêm TÀI LIỆU THAM KHẢO [1].www.hocavr.com [2].Visual basic 6.0 22 Bùi Kim Thành & Nguyễn Văn Tân 23 ... = Len(a) 11 Bùi Kim Thành & Nguyễn Văn Tân d = Len(b) e=1 f=1 s=0 dem = 0 tat = 10 dongco = 0 dem2 = 0 i=1 Text1.Text = 150 'khai bao bieu do With bieudo AutoRedraw = False XSpan = 1 / 24 / 60 XMax = Now XMin = XMax - XSpan SetXDisplay XMin, XMax End With End Sub 'DONG CONG COM KHI THOAT CHUONG TRINH Private Sub Form_Unload(Cancel As Integer) MSComm1.PortOpen = False 12 Bùi Kim Thành & Nguyễn Văn Tân... Bùi Kim Thành & Nguyễn Văn Tân Case True With MSComm1 CommPort = 2 Settings = "9600,N,8,1" PortOpen = True InputLen = 0 End With If i = 1 Then Timer9.Enabled = True pause.Caption = "PAUSE" End If i=i+1 Timer8.Enabled = True Case False MSComm1.Output = Chr(0) bieudo.ClearAll dongho.HandValue = 0 i=1 Timer11.Enabled = False Timer9.Enabled = False chay.Value = False dung.Value = False 17 Bùi Kim Thành &... Timer4.Enabled = False End If End Sub ' Hien chu "+-+-atmega32-+-+" tren hang led 2 Private Sub Timer5_Timer() hangled2.AlphaText = "+-+-atmega32-+-+" If dem = 2 Then 15 Bùi Kim Thành & Nguyễn Văn Tân Timer5.Enabled = False Timer6.Enabled = True dem = 0 End If dem = dem + 1 End Sub -'HIEN CHU " welcome " TREN HANG LED2 Private Sub Timer6_Timer()...Bùi Kim Thành & Nguyễn Văn Tân Private Sub chaydc_Click() dongco = 1 End Sub 'DIEU KHIEN DONG CO DUNG Private Sub dungdc_Click() dongco = 0 End Sub 'THOAT CHUONG... > bdo And dongco = 0 Then chay.Value = False dung.Value = True antoan.Value = True canhbao.Value = False MSComm1.Output = Chr(32) ElseIf gioihan > bdo And dongco = 1 Then chay.Value = True 18 Bùi Kim Thành & Nguyễn Văn Tân dung.Value = False antoan.Value = True canhbao.Value = False MSComm1.Output = Chr(160) ElseIf gioihan . Bùi Kim Thành & Nguyễn Văn Tân BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ TP.HCM KHOA CƠ - ĐIỆN - ĐIỆN TỬ BÁO CÁO THỰC HÀNH LẬP TRÌNH KỸ THUẬT GVHD: TH.S PHẠM QUỐC. kiện 3 II: Sơ đồ mạch điện 3 Phần II: Lập trình 4 I:Lưu đồ giải thuật 4 I: Lập trình cho AVR 6 II: Lập trình VB 9 Kết luận 22 Tài liệu tham khảo 22 2 Bùi Kim Thành & Nguyễn Văn Tân LỜI NÓI ĐẦU Trong. mạch điện: Phần II: LẬP TRÌNH 4 Bùi Kim Thành & Nguyễn Văn Tân I.Lưu đồ giải thuật: 5 BEGIN khái báo các chương trình Đọc giá trị ADC Chương trình con đọc ADC Khai báo kênh đọc ADC Lặp

Ngày đăng: 03/07/2015, 09:47

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