BÁO CÁO THỰC HÀNH LẬP TRÌNH KỸ THUẬT
Trang 1BỘ 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
TP.HCM Ngày 5 tháng 9 năm 2010
1
Trang 3LỜI NÓI ĐẦUTrong 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ụngmá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ủngloạ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ếnthứ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ểnAVR Do còn hạn chế về thời gian và kinh nghiêm nên trong bài làm còn nhiềuthiế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 đượctốt hơn
Xin chân thành cảm ơn
3
Trang 5I.Lưu đồ giải thuật:
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
Trang 6xuấ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
Trang 7II.Lập trình cho AVR:
volatile unsigned char nhan; // khai bao bien nhan 8bit
//chuong trinh con truyen du lieu
void truyendulieu(unsigned char truyen)
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
Trang 8return ADCW;// gia tri cua thanh gi ADCW duoc tra ve }
// chuong trinh con xuat led 7 doan
void LED7doan(uint16_t val)
Trang 9DDRB=0xFF;// khai bao PORTB out DDRC=0xFF;// khai bao PORTC out
//set baud, 57.6k ung voi f=8Mhz,
ISR (SIG_UART_RECV)//ngat khi nhan
{ nhan=UDR;// dua gia thanh ghi nhan vao bien nhan
9
Trang 10PORTD=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
Trang 11Private Sub chaydc_Click()
dongco = 1
End Sub
-'DIEU KHIEN DONG CO DUNG
Private Sub dungdc_Click()
dongco = 0
End Sub
-'THOAT CHUONG TRINH
Private Sub exit_Click()
End
End Sub
-Private Sub Form_Load()
On Error Resume Next
Trang 12.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
Trang 13End Sub
-'GAN THUOC TINH CHO NUT PAUSE/PLAY
Private Sub pause_Click()
Timer9.Enabled = Not Timer9.Enabled
If Timer9.Enabled = True Then
Private Sub Print_Click()
On Error Resume Next
Trang 14'hien chu tren hang led1
Private Sub Timer1_Timer()
-' HIEN CHU TREN HANG LED 1
Private Sub Timer2_Timer()
hangled1.AlphaText = hangled1.AlphaText + Space(1)
If Len(hangled1.AlphaText) = hangled1.LEDBitNum + 15 Then
-' HIEN CHU TREN HANG LED 1
Private Sub Timer3_Timer()
14
Trang 15-' HIEN CHU TREN HANG LED 1
Private Sub Timer4_Timer()
hangled1.AlphaText = hangled1.AlphaText + Space(1)
If Len(hangled1.AlphaText) = hangled1.LEDBitNum + 16 Then
-' Hien chu "+-+-atmega32-+-+" tren hang led 2
Private Sub Timer5_Timer()
hangled2.AlphaText = "+-+-atmega32-+-+"
If dem = 2 Then
15
Trang 16-'HIEN CHU " welcome " TREN HANG LED2
Private Sub Timer6_Timer()
-'DONG MO CONG COM
Private Sub Timer7_Timer()
On Error Resume Next
Select Case congtac.Value
16
Trang 18-Private Sub Timer8_Timer()
Dim gioihan As Integer
Trang 19-'//// QUET GIA TRI DE XUAT RA DONG HO VA BIEU DO
Private Sub Timer9_Timer()
Do
19
Trang 20-' HIEN THONG BAO TAT CHUONG TRINH
Private Sub Timer10_Timer()
If congtac.Value = True Then
Trang 22KẾT LUẬNBà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 đơ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
Trang 2323