Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 293 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
293
Dung lượng
3,51 MB
Nội dung
LỜI NÓI ĐẦU Ngày này, việc ứng dụng máy tính vào kỹ thuật đo lường điều khiển không thiết bị, hệ thống đo lường điều khiển ghép nối với máy tính có thời gian thu thập xử lý liệu ngắn mức độ xác đảm bảo, điều đáng quan tâm khả tự động hoá việc thu thập xử lý liệu Chính điều làm cho máy tính ứng dụng hầu hết vào lĩnh vực sống hàng ngày đặc biệt lĩnh vực công nghiệp Một bước tiến quan trọng kỹ thuật vi xử lý đời vi xử lý kỹ thuật số Đây vi mạch điện tử có mật độ tích hợp cao bao gồm nhiều mạch số có khả nhận, xử lý xuất liệu Đặc biệt trình xử lý liệu thực theo chương trình tập hợp lệnh từ bên mà người sử dụng thay đổi dễ dàng tùy thuộc vào ứng dụng Do vi xử lý thực nhiều yêu cầu điều khiển khác tuỳ thuộc vào nhu cầu sử dụng Sự đời kỹ thuật vi xử lý kết hợp kỹ thuật phần cứng phần mềm làm cho hoạt động mạch điện tử trở nên mềm dẻo với phần mềm linh hoạt mà người sử dụng sửa chữa, thay đổi bổ sung làm cho ứng dụng ngày trở nên hoàn thiện mà không cần phải thiết kế lại toàn ứng dụng Trong đồ án này, em sử dụng vi mạch điều khiển AT90S8535 hãng Atmel để thiết kế mạch đo nhiệt độ đơn giản Đây vi xử lý bit lượng thấp (theo kiểu chíp CMOS) sở cấu trúc RICS hãng Atmel, tốc độ xử lý liệu IC AT90S8535 cao (xấp xỉ MISP tần số 8MHz) cho phép hệ thống thiết kế tối ưu làm tăng tốc độ xử lý Do đó, cung cấp khả linh hoạt cao ứng dụng nhúng Vì vậy, việc tìm hiểu cấu trúc đặc tính vi mạch điều khiển AT90S8535 giúp sử dụng vi mạch điều khiển cho ứng dụng cần thiết Em xin chân thành cảm ơn thầy cô tận tình hướng dẫn để em hoàn thành đồ án Tuy nhiên, trình độ nhiều hạn chế nên đồ án tránh khỏi thiếu sót, em mong bảo thầy cô người trước lĩnh vực để đồ án em hoàn thiện qua em xây dựng ứng dụng thực tế CHƯƠNG I NHIỆM VỤ VÀ PHƯƠNG HƯỚNG THỰC HIỆN 1.1 Nhiệm vụ đồ án Từ mục đích tổng quát đề tài thiết kế xây dựng hệ thống đo nhiệt độ đơn giản, phân tách thành nhiệm vụ cần thực sau: Thiết kế xây dựng hệ thống ghép nối vi điều khiển (µC) AT90S8535 với module LCD (4x20 character), keypad (16 keys), cảm biến nhiệt LM335 Ngoài hệ thống phải có khả giao tiếp với máy tính (PC) qua cổng RS 232 Hình 1.1 : Sơ đồ tổng thể hệ thống cần thiết kế LCD display KeyPad 16 PC µC + I/O port RS 232 L335 Thiết kế xây dựng phần mềm điều khiển µC để thu thập liệu từ cảm biến nhiệt nhiệt LM335, từ keypad từ PC Xử lý liệu nhận để hiển thị LCD truyền sang PC Xây dựng phần mềm PC để giao tiếp với µC qua cổng RS 232 1.2 Phân tích nhiệm vụ Để thiết kế xây dựng hệ thống cần phải thực bước sau : Nghiên cứu tìm hiểu vi xử lý AT90S8535 Tìm hiểu hoạt động module LCD cảm biến nhiệt LM 335 Tìm hiểu hoạt động phương pháp mã hoá keypad để ghép nối với µC Tìm hiểu phương pháp truyền thông sử dụng chuẩn RS 232 Thiết kế sơ đồ mạch nối ghép µC với LCD, keypad, IC LM335 µC với máy tính thông qua cổng RS 232 Lập trình phần mềm nạp cho µC để thực kết nối Viết phần mềm PC để giao tiếp với µC qua cổng RS 232 Lắp giáp mạch thiết kế, chạy kiểm thử đánh giá kết Viết báo cáo tốt nghiệp 1.3 Phương hướng thực 1.3.1 Lựa chọn thiết bị a) Lựa chọn vi điều khiển : Trong thực tế có nhiều họ vi xử lý khác sử dụng ứng dụng họ vi điều khiển 8051 Intel, 68hC11 Motorola hay họ vi điều khiển 8515 ATMEL Tuy nhiên, đồ án sử dụng vi xử lý AT90S8535 ATMEL, sản phẩm hãng ATMEL nên việc tìm hiểu đem lại nhiều lợi ích việc thiết kế ứng dụng đo lường điều khiển Về mặt cấu tạo tương tự vi xử lý AT90S8515 có từ lâu với cổng I/O lập trình Nhưng mặt công dụng vi xử lý AT90S8535 tích hợp nhiều chức so với vi xử lý AT90S8515, đặc biệt µC AT90S8535 tích hợp ADC cho phép chân port A sử dụng đầu vào cho ADC, làm cho việc sử dụng µC AT90S8535 ứng dụng linh hoạt nhiều so với µC AT90S8515 sử dụng rộng rãi Việt Nam b) Thiết bị hiển thị liệu : Đối với loại liệu hiển thị dạng số giải pháp tối ưu sử dụng LED loại thiết bị hiển thị có giá thành tương đối rẻ Tuy nhiên, ứng dụng không hiển thị chữ số (giá trị nhiệt độ) mà phải hiển thị ký tự bảng chữ cái, lựa chọn thiết bị hiển thị LCD loại thiết bị hiển thị có khả hiển thị chữ chữ số cách rõ nét Mặc dù so với loại đèn LED LCD có giá thành cao hơn, bù lại thiết bị hiển thị LCD có nhiều đặc tính ưu việt hẳn so với loại đèn LED Đặc biệt, thiết bị LCD cung cấp khả hiển thị liệu vô linh hoạt ta điều khiển xuất liệu cách trực tiếp thông qua tập lệnh điều khiển vi mạch điều khiển mã ký tự sẵn có CGRAM LCD Một điều cần quan tâm khác thiết bị LCD tiêu tốn lượng Trên thị trường có nhiều module LCD hãng khác Samsung, Hitachi, Motorola với nhiều loại kích thước Trong đồ án sử dụng module LCD có kích thước 4x20 characters với 16 chân ghép nối Không thiết phải chọn hãng cung cấp module LCD xây dựng theo tiêu chuẩn, cách thức điều khiển ghép nối module LCD thông dụng tương tự c) Thiết bị vào liệu điều khiển (Keypad) : Để người sử dụng giao tiếp với hệ thống, cần phải ghép nối µC với module keypad Do ứng dụng làm việc với chữ chữ số nên ta sử dụng keypad loại 16 keys, phím thiết kế công tắc để nhập liệu có dạng sau : 10 chữ số hệ thập phân từ 26 chữ la tinh từ A Z Các phím điều khiển bao gồm : Send, Bspace, , , /, Clear Do số ký tự sử dụng với phím chức lớn nhiều so với tổng số phím sẵn có module keypad Vì vậy, bắt buộc phải sử dụng phương pháp Multikey, tức sử dụng phần mềm để phím module keypad mã hoá không hai ký tự khác Bằng cách này, với keypad có 16 phím ta mã hoá toàn bảng chữ chữ số đồng thời thực chức điều khiển trình bầy d) Giao tiếp µC PC : Mặc dù hệ thống thiết kế dựa µC AT90S8535 làm việc độc lập qua trình thu thập, xử lý hiển thị liệu tới người sử dụng mà không cần có trợ giúp PC Tuy nhiên, hầu hết ứng dụng cần phải lưu trữ lại liệu mà thực việc dựa µC AT90S8535 đòi hỏi nhiều kỹ thuật chi phí Trong đó, thao tác lưu trữ liệu PC lại đơn giản, giải pháp tối ưu sử dụng PC để làm nhiệm vụ phức tạp Vấn đề lại thao tác truyền liệu cần lưu trữ từ µC sang PC, việc thực đơn giản thân µC AT90S8535 tích hợp UART để sử dụng hoạt động truyền tin với thiết bị xa Như vậy, dựa vào mạch UART µC ta thực truyền nhận liệu với PC theo chuẩn RS 232 Một vấn đề cần quan tâm ghép nối µC với PC theo chuẩn RS 232 tương quan mặt điện áp tín hiệu dạng TTL µC điện áp tín hiệu dạng RS 232 PC Để thực việc chuyển đổi tín hiệu dạng TTL sang dạng tín hiệu RS 232 ta sử dụng IC Max232, IC có nhiệm vụ tạo tín hiệu ±10V từ mức điện áp TTL để tạo tương thích mức điện áp với chuẩn RS 232 1.3.2 Phương hướng thiết kế Từ sơ đồ tổng thể hệ thống hình 1.1 từ việc lựa chọn thiết bị trình bầy trên, hệ thống cần thiết kế thể sơ đồ hình 1.2, : Khối LCD display : Sử dụng module LCD sẵn có thị trường ghép nối với µC để hiển thị thông tin cần thiết cho người sử dụng Khối Keypad : Được nối ghép với µC để người sử dụng nhập liệu điều khiển hoạt động hệ thống Module thiết kế dạng công tắc sử dụng trực tiếp đặc tính cổng I/O lập trình µC để thực mà không cần nguồn hỗ trợ bên Khối LM 335 : Là IC cảm biến nhiệt làm nhiệm vụ biến đổi nhiệt độ môi trường sang dạng điện áp để làm đầu vào cho ADC µC làm việc Khối Max 232 : Sử dụng IC Max 232 ghép nối trược tiếp với µC làm nhiệm vụ trao đổi thông tin µC PC theo chuẩn RS 232 Khối nguồn : Làm nhiệm vụ biến nguồn xoay chiều 220 V sang nguồn chiều ±5V ổn định để cấp nguồn cho khối khác hoạt động Hình 1.2 : Sơ đồ khối thiết kế phần cứng Nguồn LCD display Keypad LM335 µC + I/O port 10 Max 232 ldi Temp,$0F ;Set pullup on upper out PORTB,Temp ldi TimeOut,2 ;Wait 0.2ms for settle rcall DELAY ;Find Row sbis PINB,Row1 subi KeyPress,0 sbis PINB,Row2 subi KeyPress,-1 sbis PINB,Row3 subi KeyPress,-2 sbis PINB,Row4 subi KeyPress,-3 ;Get sort KeyPress cpi KeyPress,10 brlo Normal sbr CtrlReg,EnImpKey ;Confirm Control key Normal: sbr KeyPress,EnOnKeyPress in Temp,TIMSK ;Confirm a key press ;Disable int overflow sbrs Temp,TOIE1 ;Enable? rjmp HalfScanCode cbr Temp,INTRATE out TIMSK,Temp 279 KEY_RATE HalfScanCode:pop Temp out SREG,Save reti ;Service INT delay for reloop of keypress KEY_RATE: in Save,SREG ldi OldKey,-1 ;Reset register for compera push Temp in Temp,TIMSK cbr Temp,INTRATE out TIMSK,Temp ;Disable KEY_RATE pop Temp out SREG,Save reti ;Service INT Receive compelet Rx_COMPELET: in Save,SREG push Data in Data,UDR ;Get data sbrs CtrlReg,Instroduc rjmp Get_Code ;Get symbol of Statement mov Implement,Data cbr CtrlReg,EnInstroduc rjmp HalfRx 280 INT Get_Code: cpi Data,Statement ;Receive symbol Statement brne RxData sbr CtrlReg,EnInstroduc rjmp HalfRx RxData: cpi Data,CR ;End of receive brne SetStore sbr CtrlReg,EnShowRxBuff ;Reques show data in Rx buff ldi Data,$7C SetStore: ;Symbol "|" end of char cpi YL,EndRxBuffL+1 brne StoreRx clr YH ;Back to head RxBuff ldi YL,StartRxBuff inc HPtrRxL StoreRx: ;Increment head pointer st Y+,Data ;Store data to RxBuff push Temp ldi Temp,StartRxBuff cp HPtrRxL,Temp breq HalfRx cpi YL,EndRxBuffL+1 brne GetHPtrRx clr HPtrRxH ;Reset pointer head RxBuff mov HPtrRxL,Temp rjmp ResetHPtrRx 281 GetHPtrRx: mov HPtrRxL,YL ;Get pointer RxBuff mov HPtrRxH,YH ResetHPtrRx:pop Temp HalfRx: pop Data out SREG,Save reti ;Service INT enable adc ENABLE_ADC: in Save,SREG sbi ADCSR,ADSC ;Enable convert out SREG,Save reti ;Mull result convert with content Data to divide ;Mulled in Data MULL_RESULT_CONVER: clc clr r11 mov r12,ResultADCL Mull_Data: dec Data breq HalfMull add ResultADCL,r12 adc ResultADCH,r11 rjmp Mull_Data 282 head HalfMull: ret ;Divide result convert to get temperature ;result in ResultADCH, remainde in ResultADCL ;Divider in Data DIVIDE_TO_GET_TEMPR: clr r11 sub r12,r12 LoopDivide:cp ResultADCH,r11 brne Divide cp ResultADCL,Data brlo EndDivide Divide: sub ResultADCL,Data sbc ResultADCH,r11 clc inc r12 rjmp LoopDivide EndDivide: mov ResultADCH,r12 ret ;Service INT end convert adc ;Result in ResultADCH, remainde in ResultADCL END_CONVERT: in Save,SREG in ResultADCL,ADCL in ResultADCH,ADCH lsr ResultADCH ;Get bit result 283 ror ResultADCL lsr ResultADCH ror ResultADCL push Data ldi Data,Statement SendConfirm:sbis USR,UDRE rjmp SendConfirm out UDR,Data ldi Data,$64 ;Mull result with 100 rcall MULL_RESULT_CONVER ldi Data,$FF ;Divide with 255 to get tempr rcall DIVIDE_TO_GET_TEMPR SendResult: sbis USR,UDRE rjmp SendResult out UDR,ResultADCH ;Get result push ResultADCH clr ResultADCH ;Clear upper byte ldi Data,$0A rcall MULL_RESULT_CONVER ldi Data,$FF rcall DIVIDE_TO_GET_TEMPR ldi Data,$80 cp ResultADCL,Data brlo Get_Remainder inc ResultADCH Get_Remainder:mov ResultADCL,ResultADCH 284 pop ResultADCH SendRemainde:sbis USR,UDRE rjmp SendRemainde out UDR,ResultADCL ;Get remainder ;thay bng dung co bao rcall DISPLAY_TEMPR_TO_LCD pop Data out SREG,Save reti ;Show temperature to LCD DISPLAY_TEMPR_TO_LCD: push Instr ldi Instr,$CB rcall LCD_INSTR push ResultADCL mov ResultADCL,ResultADCH clr ResultADCH sbrs StatementReg,Show_CK rjmp ShowTemprC clr Instr ldi Data,$C8 ;Get Kelvin add ResultADCL,Data adc ResultADCH,Instr ldi Data,$49 add ResultADCL,Data adc ResultADCH,Instr 285 ShowTemprC:ldi Data,$64 rcall DIVIDE_TO_GET_TEMPR ldi Data,0 cp ResultADCH,Data breq No100 mov Data,ResultADCH subi Data,-$30 rjmp Show100 No100: ldi Data,$20 Show100: rcall LCD_BUSY rcall LCD_DATA ldi Data,$0A clr ResultADCH rcall DIVIDE_TO_GET_TEMPR ldi Data,0 cp ResultADCH,Data breq No10 mov Data,ResultADCH rjmp Show10 No10: ldi Data,$30 Show10: rcall LCD_BUSY rcall LCD_DATA mov Data,ResultADCL subi Data,-$30 rcall LCD_BUSY rcall LCD_DATA 286 ;Get number hundres ldi Data,$2E rcall LCD_BUSY rcall LCD_DATA pop ResultADCL mov Data,ResultADCL subi Data,-$30 rcall LCD_BUSY rcall LCD_DATA pop Instr ret ;Show symbol temperature SHOW_SYMBOL_CK: mov Temp,StatementReg cbr Temp,EnShowSymbolTempr mov StatementReg,Temp ldi Instr,$D0 rcall LCD_INSTR ldi Data,$DF rcall LCD_BUSY rcall LCD_DATA sbrs StatementReg,Show_CK rjmp ShowSymbolC ldi Data,$4B ;Ascii of K rjmp DisplaySymbol ShowSymbolC: ldi Data,$43 ;Ascii of C 287 DisplaySymbol: rcall LCD_BUSY rcall LCD_DATA ret ;Excuter statement from PC EXCUTER_FROM_PC: ldi Temp,EnCencius cp Implement,Temp brne EnKenvin mov Temp,StatementReg cbr Temp,EnShow_CK rjmp Excuted EnKenvin: mov Temp,StatementReg sbr Temp,EnShow_CK Excuted: sbr Temp,EnShowSymbolTempr mov StatementReg,Temp ldi Temp,-1 mov Implement,Temp ret ;Program time out delay ;TimeOut delay = (0.1*TimeOut)ms DELAY: push Data push Temp Reloop: ldi Data,$03 288 Back: ldi Temp,$56 Loop: dec Temp brne Loop dec Data brne Back dec TimeOut brne ReLoop pop Temp pop Data ret ;TimeWait = (25*Temp)ms TIMEWAIT: ldi TimeOut,$FA rcall DELAY dec Temp brne TIMEWAIT ret 289 MỤC LỤC LỜI NÓI ĐẦU .1 CHƯƠNG I NHI ỆM V Ụ VÀ PH ƯƠNG H ƯỚNG TH ỰC HI ỆN 1.1 Nhiệm vụ đồ án 1.2 Phân tích nhiệm vụ .4 1.3 Phương hướng thực 1.3.1 Lựa chọn thiết bị .5 1.3.2 Phương hướng thiết kế CHƯƠNG .11 L ỰA CH ỌN LINH KI ỆN THI ẾT K Ế 11 VÀ M ỘT S Ố LÝ THUY ẾT V Ề CHUY ỂN ĐỔI A/D 11 2.1 Lựa chọn linh kiện thiết kế 11 2.1.1 Giới thiệu vi mạch điều khiển AT90S8535 11 2.1.1.1 Cấu trúc vi mạch AT90S8535 18 2.1.1.2 Tập ghi đa µ C AT90S8535 21 2.1.1.3 Bộ số học Logic - ALU 23 2.1.1.4 Đặc điểm nhớ µ C AT90S8535 24 2.1.1.5 Các chế độ địa µ C AT90S8535 29 2.1.1.6 Thời gian truy cập nhớ thời gian thực lệnh 33 2.1.1.7 Không gian nhớ I/O 35 2.1.1.8 Ngắt xử lý ngắt µ C AT90S8535 46 2.1.1.9 Các chế độ nghỉ µ C AT90S8535 .66 2.1.1.10 Các mạch điều khiển µ C AT90S8535 69 2.1.2 Module LCD (20x4 characters) 161 2.1.3 IC Max232 .174 2.1.3.1 Giới thiệu chuẩn RS232 174 2.1.3.2 IC Max232 179 2.1.4 Cảm biến nhiệt LM335 .182 2.2 Một số lý thuyết chuyển đổi A/D 184 2.2.1 Khái niệm chung 184 2.2.2 Một số phương pháp chuyển đổi AD 186 2.2.2.1 Phương pháp chuyển đổi song song .186 2.2.2.2 Phương pháp xấp xỉ liên tiếp 188 2.2.2.3 Phương pháp tích phân hai sườn dốc 189 CHƯƠNG 192 THI ẾT K Ế H Ệ TH ỐNG PH ẦN C ỨNG 192 3.1 Sơ đồ cấu trúc phần cứng hệ thống .192 3.2 Sơ đồ ghép nối µC với module LCD 192 3.3 Sơ đồ ghép nối µC với module KeyPad 194 3.4 Sơ đồ ghép nối µC với cảm biến nhiệt LM335 .196 290 3.4 Sơ đồ ghép nối µC với IC Max232 198 3.5 Sơ đồ kết nối nguồn nuôi cho vi mạch điều khiển .199 CHƯƠNG 201 THI ẾT K Ế H Ệ TH ỐNG PH ẦN M ỀM CHO µC AT90S8535 201 4.1 Biểu đồ chức lưu đồ tổng thể chương trình điều khiển µC 201 4.2 Lưu đồ thuật toán chức 209 4.2.1 Chức giao tiếp với LCD controller 209 4.2.2 Chức điều khiển hiển thị kết ADC 211 4.2.3 Chức giao tiếp với KeyPad 217 4.2.4 Chức truyền nhận liệu nối tiếp với PC 227 CHƯƠNG 231 THI ẾT K Ế H Ệ TH ỐNG PH ẦN M ỀM TRÊN PC 231 5.1 Mục đích phần mềm PC 231 5.2 Một số chức chương trình 234 5.3 Nhận xét đánh giá 237 KẾT LUẬN .239 PHỤ LỤC .241 CH ƯƠNG TRÌNH ĐI ỀU KHI ỂN µC AT90S8535 241 MỤC LỤC .292 291 MỤC LỤC LỜI NÓI ĐẦU .1 CHƯƠNG I NHI ỆM V Ụ VÀ PH ƯƠNG H ƯỚNG TH ỰC HI ỆN 1.1 Nhiệm vụ đồ án 1.2 Phân tích nhiệm vụ .4 1.3 Phương hướng thực 1.3.1 Lựa chọn thiết bị .5 1.3.2 Phương hướng thiết kế CHƯƠNG .11 L ỰA CH ỌN LINH KI ỆN THI ẾT K Ế 11 VÀ M ỘT S Ố LÝ THUY ẾT V Ề CHUY ỂN ĐỔI A/D 11 2.1 Lựa chọn linh kiện thiết kế 11 2.1.1 Giới thiệu vi mạch điều khiển AT90S8535 11 2.1.1.1 Cấu trúc vi mạch AT90S8535 18 2.1.1.2 Tập ghi đa µ C AT90S8535 21 2.1.1.3 Bộ số học Logic - ALU 23 2.1.1.4 Đặc điểm nhớ µ C AT90S8535 24 2.1.1.5 Các chế độ địa µ C AT90S8535 29 2.1.1.6 Thời gian truy cập nhớ thời gian thực lệnh 33 2.1.1.7 Không gian nhớ I/O 35 2.1.1.8 Ngắt xử lý ngắt µ C AT90S8535 46 2.1.1.9 Các chế độ nghỉ µ C AT90S8535 .66 2.1.1.10 Các mạch điều khiển µ C AT90S8535 69 2.1.2 Module LCD (20x4 characters) 161 2.1.3 IC Max232 .174 2.1.3.1 Giới thiệu chuẩn RS232 174 2.1.3.2 IC Max232 179 2.1.4 Cảm biến nhiệt LM335 .182 2.2 Một số lý thuyết chuyển đổi A/D 184 2.2.1 Khái niệm chung 184 2.2.2 Một số phương pháp chuyển đổi AD 186 2.2.2.1 Phương pháp chuyển đổi song song .186 2.2.2.2 Phương pháp xấp xỉ liên tiếp 188 2.2.2.3 Phương pháp tích phân hai sườn dốc 189 CHƯƠNG 192 THI ẾT K Ế H Ệ TH ỐNG PH ẦN C ỨNG 192 3.1 Sơ đồ cấu trúc phần cứng hệ thống .192 292 3.2 Sơ đồ ghép nối µC với module LCD 192 3.3 Sơ đồ ghép nối µC với module KeyPad 194 3.4 Sơ đồ ghép nối µC với cảm biến nhiệt LM335 .196 3.4 Sơ đồ ghép nối µC với IC Max232 198 3.5 Sơ đồ kết nối nguồn nuôi cho vi mạch điều khiển .199 CHƯƠNG 201 THI ẾT K Ế H Ệ TH ỐNG PH ẦN M ỀM CHO µC AT90S8535 201 4.1 Biểu đồ chức lưu đồ tổng thể chương trình điều khiển µC 201 4.2 Lưu đồ thuật toán chức 209 4.2.1 Chức giao tiếp với LCD controller 209 4.2.2 Chức điều khiển hiển thị kết ADC 211 4.2.3 Chức giao tiếp với KeyPad 217 4.2.4 Chức truyền nhận liệu nối tiếp với PC 227 CHƯƠNG 231 THI ẾT K Ế H Ệ TH ỐNG PH ẦN M ỀM TRÊN PC 231 5.1 Mục đích phần mềm PC 231 5.2 Một số chức chương trình 234 5.3 Nhận xét đánh giá 237 KẾT LUẬN .239 PHỤ LỤC .241 CH ƯƠNG TRÌNH ĐI ỀU KHI ỂN µC AT90S8535 241 MỤC LỤC .292 293 [...]...CHƯƠNG 2 LỰA CHỌN LINH KIỆN THIẾT KẾ VÀ MỘT SỐ LÝ THUYẾT VỀ CHUYỂN ĐỔI A/D 2.1 Lựa chọn linh kiện thiết kế 2.1.1 Giới thiệu vi mạch điều khiển AT90S8535 AT90S8535 là một vi mạch điều khiển năng lượng thấp 8 bit (công nghệ chíp CMOS) trên cơ sở cấu trúc RICS của hãng ATMEL, nó thuộc họ vi điều khiển AT90S/LS8535 Bằng cách thực hiện mỗi lệnh trong một đơn chu kỳ, AT90S8535 có thể... và bộ chuyển đổi ADC, nếu ADC không được sử dụng thì chân này phải được nối với nguồn 5V (chân VCC), nếu ADC được sử dụng thì chân này phải được nối tới nguồn 5V qua bộ lọc thông thấp 14 AREF : Là đầu vào chuẩn của tín hiệu tương tự cho bộ chuyển đổi ADC Để cho ADC hoạt động được, nguồn sử dụng cho chân này phải có phạm vị từ 2V đến AVCC AGND : Chân nối đất của tín hiệu analog, nếu bo mạch có một. .. tại địa chỉ đã lựa chọn Nếu bit EEMWE là 0, thì sự thiết lập của bit EEWE sẽ không có kết quả Khi bit EEMWE đã được thiết lập bởi phần mềm, phần cứng xoá bit này về 0 sau 4 chu kỳ đồng hồ • Bit 1 - EEWE : Bit cho phép ghi EEPROM Tín hiệu cho phép ghi EEPROM (EEWE) là một xung chọn ghi tới EEPROM Khi địa chỉ và dữ liệu đã được thiết lập phù hợp, bit EEWE phải được thiết lập để ghi giá trị vào trong EEPROM... tự động tăng, giảm hoặc không đổi 2.1.1.3 Bộ số học và Logic - ALU Bộ ALU của µC AT90S8535 được nối trực tiếp với 32 thanh ghi đa năng Trong một đơn chu kỳ đồng hồ, các thao tác của ALU giữa các thanh ghi trong tập thanh ghi được thực hiện và giữa một thanh ghi với một hằng số hoặc trên một đơn thanh ghi Các hoạt động của ALU được chia làm 3 loại chính là : số học, logic và các phép toán trên bit 23... điều khiển thiết bị ngoại vi của µC như : Các thanh ghi điều khiển, bộ Timer/Couter, bộ chuyển đổi ADC và các chức năng I/O khác Vùng nhớ I/O có thể được truy nhập trực tiếp hoặc gián tiếp thông qua tập các thanh ghi µC AT90S8535 sử dụng kiến trúc Harvard - với bộ nhớ và bus độc lập cho chương trình và dữ liệu Bộ nhớ chương trình được thực hiện với một “pipeline” hai trạng thái Trong khi một lệnh đang... đầu vào ADC riêng biệt với 10 bit kết quả • 2 bộ Timer/Counter 8 bit với bộ đếm độc lập và chế độ so sánh • 1 bộ Timer/Counter 16 bit với bộ đếm độc lập và các chế độ PWM • 1 bộ UART lập trình trao đổi thông tin nối tiếp • 1 bộ Watchdog Time lập trình được với bộ tạo giao động trong • 1 bộ so sánh analog • 1 cổng phối ghép nối tiếp thiết bị ngoại vi SPI • 3 chế độ làm việc là : Idle, Power-Save và Power-down... : Là một cổng vào ra hai chiều 8 bit Các chân của cổng có thể cung cấp các trở kháng trong cho phép chọn từng bit Đệm ra của cổng A có khả năng kéo dòng lên tới 20mA và có thể điều khiển trực tiếp sự hiển thị LED Khi các chân PA0 đến PA7 được sử dụng như các cổng vào và ở mức thấp, chúng sẽ là đầu vào hiện thời nếu các điện trở trong được kích hoạt Cổng A cũng có thể được sử dụng như những đầu vào analog... chỉ đạt được hiệu quả cao Một trong 3 con trỏ địa chỉ này cũng được sử dụng giống như con trỏ địa chỉ tới vùng nhớ dữ liệu cố định Các thanh ghi địa chỉ này là các thanh ghi 16 bit X, Y, Z 18 Hình 2.3 : Sơ đồ khối kiến trúc của µC AT90S8535 Bộ ALU cung cấp các chức năng tính toán số học và logic giữa các thanh ghi hoặc giữa một hằng số và một thanh ghi Những thao tác của một thanh ghi đơn cũng được... EEEMWE phải được thiết lập khi giá trị logic 1 được ghi vào bit EEWE, nếu không thì không xẩy ra thao tác ghi EEPROM Quy trình dưới đây phải được tuân theo khi ghi EEPROM (thứ tự của bước 2 và 3 không cần quan tâm) 1 Đợi cho đến khi bit EEWE trở về 0 2 Ghi địa chỉ mới của EEPROM tới thanh ghi địa chỉ EEPROM (tuỳ chọn) 3 Ghi dữ liệu mới vào thanh ghi EEDR (tuỳ chọn) 27 4 Ghi giá trị logic 1 vào bit EEMWE... logic 1 vào bit EEMWE, thì bit EEWE phải được ghi là 0 trong cùng một chu kỳ đồng hồ) 5 Trong vòng 4 chu kỳ đồng hồ sau khi thiết lập bit EEMWE, ghi giá trị logic 1 tới bit EEWE Chú ý : Một ngắt giữa bước 4 và 5 sẽ làm lỗi chu kỳ ghi, vì bit EEMWE sẽ hết thời gian Nếu một thủ tục ngắt truy xuất tới EEPROM trong khi một ngắt khác cũng đang truy xuất EEPROM, thì nội dung của các thanh ghi EEAR và EEDR ... đồ khối thiết kế phần cứng Nguồn LCD display Keypad LM335 µC + I/O port 10 Max 232 CHƯƠNG LỰA CHỌN LINH KIỆN THIẾT KẾ VÀ MỘT SỐ LÝ THUYẾT VỀ CHUYỂN ĐỔI A/D 2.1 Lựa chọn linh kiện thiết kế 2.1.1... ACI ADIF ADC4 ACIE ADIE ADC3 ACIC MUX2 ADPS2 ADC2 ACIS1 MUX1 ADPS1 ADC9 ADC1 ACIS0 MUX0 ADPS0 ADC8 ADC0 $01 ($21) Res $00 ($20) Res Res : Reserved 43 Một vài bit cờ trạng thái xoá cách ghi trị vào... ADMUX Thanh ghi lựa chọn dồn kênh ADC Thanh ghi điều khiển trạng thái ADCSR ADC ADCH Thanh ghi liệu byte cao ADC ADCL Thanh ghi liệu byte thấp ADC 38 Tất cổng I/O µC AT90S8535 thiết bị ngoại vi