Thiết kế và 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

210 222 0
Thiết  kế  và  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

Đ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

http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN 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 OBO OKS CO M 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 hố 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 q trình xử lý liệu thực theo chương trình tập hợp lệnh từ bên ngồi 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 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 hồn thiện mà khơng cần phải thiết kế lại tồn ứng dụng Trong đồ án này, em sử dụng vi mạch điều khiển AT90S8535 hãng KI L 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 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Em xin chân thành cảm ơn thầy tận tình hướng dẫn để em hồn thành đồ án Tuy nhiên, trình độ nhiều hạn chế nên đồ án khơng thể tránh khỏi thiếu sót, em mong bảo thầy OBO OKS CO M người trước lĩnh vực để đồ án em hồn thiện KI L qua em xây dựng ứng dụng thực tế http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN CHƯƠNG I OBO OKS CO M NHIỆM VỤ VÀ PHƯƠNG HƯỚNG THỰC HIỆN 1.1 Nhiệm vụ đồ án Từ mục đích tổng qt đề 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 Ngồ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 PC µC + I/O port KeyPad RS 232 KI L 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 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Xây dựng phần mềm PC để giao tiếp với µC qua cổng RS 232 OBO OKS CO M 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ã hố 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 KI L 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 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN 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ý OBO OKS CO M 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 KI L 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ự http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN 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ố OBO OKS CO M 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ã hố khơng hai ký tự khác Bằng cách này, với keypad có 16 phím ta mã hố tồ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 KI L 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 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN 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 OBO OKS CO M 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 ngồi 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 KI L 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 220V 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 Keypad LM335 µC + I/O7 port Max 232 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN CHƯƠNG LỰA CHỌN LINH KIỆN THIẾT KẾ OBO OKS CO M 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 vi mạch điều khiển lượng thấp bit (cơng nghệ chíp CMOS) sở cấu trúc RICS hãng ATMEL, thuộc họ vi điều khiển AT90S/LS8535 Bằng cách thực lệnh đơn chu kỳ, AT90S8535 đạt tới MIPS cho MHz cho phép hệ thống thiết kế cách tối ưu tiêu thụ lượng làm tăng tốc độ xử lý Về mặt cấu tạo µC tương tự µC AT90S8515 với cổng I/O lập trình được, nhiên mặt chức µC AT90S8535 tích hợp thêm nhiều tính mà µC AT90S8515 khơng có Các đặc trưng µC AT90S8535 trình bầy : 8KB nhớ chương trình • 512 byte EEPROM • 512 byte SRAM • 32 line (4 cổng) I/O lập trình • 32 ghi đa bit • kênh đầu vào ADC riêng biệt với 10 bit kết • Timer/Counter bit với đếm độc lập chế độ so sánh • Timer/Counter 16 bit với đếm độc lập chế độ PWM • UART lập trình trao đổi thơng tin nối tiếp • Watchdog Time lập trình với tạo giao động • so sánh analog KI L • http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN • cổng phối ghép nối tiếp thiết bị ngoại vi SPI • chế độ làm việc : Idle, Power-Save Power-down • Nguồn cung cấp từ 4.0 - 6.0V, tần số làm việc - 8MHz OBO OKS CO M Vi mạch điều khiển AT90S8535 chế tạo theo cơng nghệ chíp nhớ cố định với mật độ cao Bộ nhớ Flash ISP chíp cho phép nhớ chương trình lập trình lại thơng qua cổng SPI phối ghép nối tiếp với thiết bị ngoại vi Ngồi ra, µC AT90SS8535 hỗ trợ cho việc lập trình thơng qua cơng cụ pháp triển hệ thống C, assemblers Vi điều khiển AT90S8535 có cấu hình chân khác : PDIP (Có 40 chân), PLCC, TQFP, MLF (Có 44 chân) Sơ đồ chân loại sau Hình 2.1 : Cấu hình chân µC AT90S8535 PDIP MLF KI L TQFP PLCC http://kilobooks.com OBO OKS CO M THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Chức chân µC AT90S8535 sau : VCC : Chân cấp nguồn 5V GND : Chân nối đất RESET : Là đầu vào reset Tín hiệu reset bên ngồi tạo mức thấp trở kháng chân Reset Xung reset dài q 50ns tạo tín hiệu reset Xung ngắn khơng đảm bảo phát sinh tín hiệu reset XTAL1 : Là đầu vào có tác dụng đảo chiều khuếch đại tạo dao KI L động đầu vào mạch điều khiển đồng hồ bên XTAL2 : Là đầu tín hiệu đảo từ khuếch đại tạo dao động AVCC : Là chân cung cấp điện áp cho cổng A chuyển đổi ADC, ADC khơng sử dụng chân phải nối với nguồn 5V (chân VCC), ADC sử dụng chân phải nối tới nguồn 5V qua lọc thơng thấp 10 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN ldi Position,EndRxBuffL ldi PositionH,EndRxBuffH NoGetNewPoint:mov ShowRxL,Position ;Get new pointor mov ShowRxH,PositionH ldi Instr,$D8 mov ZL,ShowRxL OBO OKS CO M ldi Temp,16 mov ZH,ShowRxH rcall DISPLAY_CHAR_IN_RxBUFF NoShiftL: ret ;Perform function Send SEND_TxBUFF_TO_PC: sbrc CtrlReg,SelectTxRx rjmp NoSend cpi AddrShow,$97 breq NoSend ;Selecting Rx ;No char in buff Get_Addr_String $98,ZL,ZH,SendTo,16 rcall SHOW_STRING ldi XL,LOW(TxBuff) SendChar: ld Data,X WaitReady:sbis USR,UDRE rjmp WaitReady out UDR,Data cp XL,LPtrTx breq ClearToSend inc XL rjmp SendChar ClearToSend:rcall CLEAR_Tx_OR_Rx NoSend: ret CONTROL_KEY: KI L ;Perform control key cbr CtrlReg,EnImpKey ;Clear confirm controlkey cpi KeyPress,13 brge Key13To15 cpi KeyPress,11 brne Key10Or12 rcall BACK_SPACE rjmp EndControlKey Key10Or12:cpi KeyPress,10 breq Key10 rcall SHIFT_LEFT 196 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN rjmp EndControlKey Key10: rcall SEND_TxBUFF_TO_PC rjmp EndControlKey Key13To15:cpi KeyPress,14 cpi KeyPress,15 breq Key15 OBO OKS CO M breq Key14 rcall SHIFT_RIGHT rjmp EndControlKey Key15: rcall CLEAR_Tx_OR_Rx rjmp EndControlKey Key14: rcall SELECT_TxRx EndControlKey:ldi OldKey,-1 ret ;Service INT0 SCAN_CODE: in Save,SREG ldi KeyPress,$00 ;Reset OldKey out GIMSK,KeyPress ldi TimeOut,2 rcall DELAY ;Find col sbis PINB,Col1 ldi KeyPress,0 sbis PINB,Col2 ldi KeyPress,4 sbis PINB,Col3 ldi KeyPress,8 sbis PINB,Col4 KI L ldi KeyPress,12 ;Wait 0.2ms for settle ;invert port to find col push Temp ldi Temp,$F0 ;Lower ninble is output out DDRB,Temp ldi Temp,$0F ;Set pullup on upper out PORTB,Temp ldi TimeOut,2 ;Wait 0.2ms for settle rcall DELAY ;Find Row 197 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN sbis PINB,Row1 subi KeyPress,0 sbis PINB,Row2 subi KeyPress,-1 subi KeyPress,-2 sbis PINB,Row4 subi KeyPress,-3 ;Get sort KeyPress cpi KeyPress,10 brlo Normal Normal: OBO OKS CO M sbis PINB,Row3 sbr CtrlReg,EnImpKey ;Confirm Control key sbr KeyPress,EnOnKeyPress ;Confirm a key press in Temp,TIMSK ;Disable int KEY_RATE overflow sbrs Temp,TOIE1 ;Enable? rjmp HalfScanCode cbr Temp,INTRATE out TIMSK,Temp HalfScanCode:pop Temp out SREG,Save reti ;Service INT delay for reloop of keypress KEY_RATE: in Save,SREG ldi OldKey,-1 push Temp in Temp,TIMSK ;Reset register for compera cbr Temp,INTRATE out TIMSK,Temp pop Temp reti KI L out SREG,Save ;Disable INT KEY_RATE ;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 198 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN rjmp HalfRx Get_Code: cpi Data,Statement ;Receive symbol Statement brne RxData sbr CtrlReg,EnInstroduc rjmp HalfRx cpi Data,CR brne SetStore SetStore: ;End of receive OBO OKS CO M RxData: sbr CtrlReg,EnShowRxBuff ;Reques show data in Rx buff ldi Data,$7C ;Symbol "|" end of char cpi YL,EndRxBuffL+1 brne StoreRx clr YH ;Back to head RxBuff ldi YL,StartRxBuff inc HPtrRxL StoreRx: st Y+,Data push Temp ;Increment head pointer ;Store data to RxBuff 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 GetHPtrRx: mov HPtrRxL,YL mov HPtrRxH,YH ResetHPtrRx:pop Temp HalfRx: pop Data out SREG,Save reti ENABLE_ADC: KI L ;Service INT enable adc ;Get pointer head RxBuff 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 199 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN mov r12,ResultADCL Mull_Data: dec Data breq HalfMull add ResultADCL,r12 rjmp Mull_Data HalfMull: ret OBO OKS CO M adc ResultADCH,r11 ;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 ;Get bit result KI L lsr ResultADCH 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 200 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN ldi Data,$FF ;Divide with 255 to get tempr rcall DIVIDE_TO_GET_TEMPR SendResult: sbis USR,UDRE rjmp SendResult push ResultADCH clr ResultADCH ldi Data,$0A ;Get result OBO OKS CO M out UDR,ResultADCH ;Clear upper byte 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 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 KI L 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 201 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN ShowTemprC:ldi Data,$64 rcall DIVIDE_TO_GET_TEMPR ;Get number hundres ldi Data,0 cp ResultADCH,Data breq No100 subi Data,-$30 rjmp Show100 No100: ldi Data,$20 Show100: rcall LCD_BUSY rcall LCD_DATA ldi Data,$0A clr ResultADCH OBO OKS CO M mov Data,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 ldi Data,$2E rcall LCD_BUSY rcall LCD_DATA pop ResultADCL mov Data,ResultADCL KI L 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 202 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN ldi Instr,$D0 rcall LCD_INSTR ldi Data,$DF rcall LCD_BUSY rcall LCD_DATA OBO OKS CO M sbrs StatementReg,Show_CK rjmp ShowSymbolC ldi Data,$4B ;Ascii of K rjmp DisplaySymbol ShowSymbolC: ldi Data,$43 ;Ascii of C 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 KI L DELAY: push Data push Temp Reloop: ldi Data,$03 Back: ldi Temp,$56 Loop: dec Temp brne Loop dec Data brne Back dec TimeOut brne ReLoop 203 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN pop Temp pop Data ret ;TimeWait = (25*Temp)ms ldi TimeOut,$FA rcall DELAY dec Temp ret KI L brne TIMEWAIT OBO OKS CO M TIMEWAIT: 204 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN OBO OKS CO M MỤC LỤC LỜI NĨI ĐẦU CHƯƠNG I NHIỆM VỤ VÀ PHƯƠNG HƯỚNG THỰC HIỆN 1.1 NHIỆM VỤ CỦA ĐỒ ÁN 1.2 PHÂN TÍCH NHIỆM VỤ 1.3 PHƯƠNG HƯỚNG THỰC HIỆN 1.3.1 LỰA CHỌN THIẾT BỊ 1.3.2 PHƯƠNG HƯỚNG THIẾT KẾ 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 GIỚI THIỆU VI MẠCH ĐIỀU KHIỂN AT90S8535 2.1.1.1 CẤU TRÚC CỦA VI MẠCH AT90S8535 13 2.1.1.2 TẬP THANH GHI ĐA NĂNG CỦA µC AT90S8535 16 2.1.1.3 BỘ SỐ HỌC VÀ LOGIC - ALU 18 KI L 2.1.1.4 ĐẶC ĐIỂM CÁC BỘ NHỚ TRONG CỦA µC AT90S8535 18 2.1.1.5 CÁC CHẾ ĐỘ ĐỊA CHỈ CỦA µC AT90S8535 22 2.1.1.6 THỜI GIAN TRUY CẬP BỘ NHỚ VÀ THỜI GIAN THỰC HIỆN LỆNH 26 2.1.1.7 KHƠNG GIAN BỘ NHỚ I/O 27 2.1.1.8 NGẮT VÀ XỬ LÝ NGẮT TRONG µC AT90S8535 33 2.1.1.9 CÁC CHẾ ĐỘ NGHỈ CỦA µC AT90S8535 46 205 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN 2.1.1.10 CÁC MẠCH ĐIỀU KHIỂN TRONG µC AT90S8535 48 2.1.2 MODULE LCD (20X4 CHARACTERS) 115 2.1.3 IC MAX232 .121 2.1.3.1 GIỚI THIỆU CHUẨN RS232 121 OBO OKS CO M 2.1.3.2 IC MAX232 125 2.1.4 CẢM BIẾN NHIỆT LM335 127 2.2 MỘT SỐ LÝ THUYẾT VỀ CHUYỂN ĐỔI A/D 128 2.2.1 KHÁI NIỆM CHUNG 128 2.2.2 MỘT SỐ PHƯƠNG PHÁP CHUYỂN ĐỔI AD .129 2.2.2.1 PHƯƠNG PHÁP CHUYỂN ĐỔI SONG SONG 130 2.2.2.2 PHƯƠNG PHÁP XẤP XỈ LIÊN TIẾP 131 2.2.2.3 PHƯƠNG PHÁP TÍCH PHÂN HAI SƯỜN DỐC 132 CHƯƠNG THIẾT KẾ HỆ THỐNG PHẦN CỨNG 3.1 SƠ ĐỒ CẤU TRÚC PHẦN CỨNG CỦA HỆ THỐNG 134 3.2 SƠ ĐỒ GHÉP NỐI µC VỚI MODULE LCD 134 3.3 SƠ ĐỒ GHÉP NỐI µC VỚI MODULE KEYPAD 136 3.4 SƠ ĐỒ GHÉP NỐI µC VỚI CẢM BIẾN NHIỆT LM335 .137 3.4 SƠ ĐỒ GHÉP NỐI µC VỚI IC MAX232 139 3.5 SƠ ĐỒ KẾT NỐI NGUỒN CHO VI MẠCH ĐIỀU KHIỂN 140 CHƯƠNG THIẾT KẾ HỆ THỐNG PHẦN MỀM CHO µC AT90S8535 KI L 4.1 BIỂU ĐỒ CHỨC NĂNG CỦA CHƯƠNG TRÌNH ĐIỀU KHIỂN µC 142 4.2 LƯU ĐỒ THUẬT TỐN CỦA CÁC CHỨC NĂNG CHÍNH 148 4.2.1 CHỨC NĂNG GIAO TIẾP VỚI LCD CONTROLLER 148 4.2.2 CHỨC NĂNG ĐIỀU KHIỂN VÀ HIỂN THỊ KẾT QUẢ ADC 150 4.2.3 CHỨC NĂNG GIAO TIẾP VỚI KEYPAD 155 4.2.4 CHỨC NĂNG TRUYỀN NHẬN DỮ LIỆU NỐI TIẾP VỚI PC 164 CHƯƠNG THIẾT KẾ HỆ THỐNG PHẦN MỀM TRÊN PC 206 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN 5.1 MỤC ĐÍCH CỦA PHẦN MỀM TRÊN PC .167 5.2 MỘT SỐ CHỨC NĂNG CHÍNH CỦA CHƯƠNG TRÌNH 168 5.3 NHẬN XÉT VÀ ĐÁNH GIÁ 170 OBO OKS CO M KẾT LUẬN 173 PHỤ LỤC 175 KI L CHƯƠNG TRÌNH ĐIỀU KHIỂN µC AT90S8535 175 207 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN OBO OKS CO M MỤC LỤC LỜI NĨI ĐẦU CHƯƠNG I NHIỆM VỤ VÀ PHƯƠNG HƯỚNG THỰC HIỆN 1.1 NHIỆM VỤ CỦA ĐỒ ÁN 1.2 PHÂN TÍCH NHIỆM VỤ 1.3 PHƯƠNG HƯỚNG THỰC HIỆN 1.3.1 LỰA CHỌN THIẾT BỊ 1.3.2 PHƯƠNG HƯỚNG THIẾT KẾ 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 GIỚI THIỆU VI MẠCH ĐIỀU KHIỂN AT90S8535 2.1.1.1 CẤU TRÚC CỦA VI MẠCH AT90S8535 13 2.1.1.2 TẬP THANH GHI ĐA NĂNG CỦA µC AT90S8535 16 2.1.1.3 BỘ SỐ HỌC VÀ LOGIC - ALU 18 2.1.1.4 ĐẶC ĐIỂM CÁC BỘ NHỚ TRONG CỦA µC AT90S8535 KI L 18 2.1.1.5 CÁC CHẾ ĐỘ ĐỊA CHỈ CỦA µC AT90S8535 22 2.1.1.6 THỜI GIAN TRUY CẬP BỘ NHỚ VÀ THỜI GIAN THỰC HIỆN LỆNH 26 2.1.1.7 KHƠNG GIAN BỘ NHỚ I/O 27 2.1.1.8 NGẮT VÀ XỬ LÝ NGẮT TRONG µC AT90S8535 33 2.1.1.9 CÁC CHẾ ĐỘ NGHỈ CỦA µC AT90S8535 46 2.1.1.10 CÁC MẠCH ĐIỀU KHIỂN TRONG µC AT90S8535 48 208 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN 2.1.2 MODULE LCD (20X4 CHARACTERS) 115 2.1.3 IC MAX232 .121 2.1.3.1 GIỚI THIỆU CHUẨN RS232 121 2.1.3.2 IC MAX232 125 OBO OKS CO M 2.1.4 CẢM BIẾN NHIỆT LM335 127 2.2 MỘT SỐ LÝ THUYẾT VỀ CHUYỂN ĐỔI A/D 128 2.2.1 KHÁI NIỆM CHUNG 128 2.2.2 MỘT SỐ PHƯƠNG PHÁP CHUYỂN ĐỔI AD .129 2.2.2.1 PHƯƠNG PHÁP CHUYỂN ĐỔI SONG SONG 130 2.2.2.2 PHƯƠNG PHÁP XẤP XỈ LIÊN TIẾP 131 2.2.2.3 PHƯƠNG PHÁP TÍCH PHÂN HAI SƯỜN DỐC 132 CHƯƠNG THIẾT KẾ HỆ THỐNG PHẦN CỨNG 3.1 SƠ ĐỒ CẤU TRÚC PHẦN CỨNG CỦA HỆ THỐNG 134 3.2 SƠ ĐỒ GHÉP NỐI µC VỚI MODULE LCD 134 3.3 SƠ ĐỒ GHÉP NỐI µC VỚI MODULE KEYPAD 136 3.4 SƠ ĐỒ GHÉP NỐI µC VỚI CẢM BIẾN NHIỆT LM335 .137 3.4 SƠ ĐỒ GHÉP NỐI µC VỚI IC MAX232 139 3.5 SƠ ĐỒ KẾT NỐI NGUỒN CHO VI MẠCH ĐIỀU KHIỂN 140 CHƯƠNG THIẾT KẾ HỆ THỐNG PHẦN MỀM CHO µC AT90S8535 4.1 BIỂU ĐỒ CHỨC NĂNG CỦA CHƯƠNG TRÌNH ĐIỀU KHIỂN µC 142 KI L 4.2 LƯU ĐỒ THUẬT TỐN CỦA CÁC CHỨC NĂNG CHÍNH 148 4.2.1 CHỨC NĂNG GIAO TIẾP VỚI LCD CONTROLLER 148 4.2.2 CHỨC NĂNG ĐIỀU KHIỂN VÀ HIỂN THỊ KẾT QUẢ ADC 150 4.2.3 CHỨC NĂNG GIAO TIẾP VỚI KEYPAD 155 4.2.4 CHỨC NĂNG TRUYỀN NHẬN DỮ LIỆU NỐI TIẾP VỚI PC 164 CHƯƠNG THIẾT KẾ HỆ THỐNG PHẦN MỀM TRÊN PC 5.1 MỤC ĐÍCH CỦA PHẦN MỀM TRÊN PC .167 209 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN 5.2 MỘT SỐ CHỨC NĂNG CHÍNH CỦA CHƯƠNG TRÌNH 168 5.3 NHẬN XÉT VÀ ĐÁNH GIÁ 170 KẾT LUẬN 173 OBO OKS CO M PHỤ LỤC 175 KI L CHƯƠNG TRÌNH ĐIỀU KHIỂN µC AT90S8535 175 210 [...]... TIM1_COMPA ;Điều khiển so sánh A của Timer1 TIM1_COMPB ;Điều khiển so sánh B của Timer1 TIM1_OVF ;Điều khiển tràn Timer1 TIM0_OVF ;Điều khiển tràn Timer0 KI L Địa chỉ rjmp SPI_STC ;Điều khiển kết thúc truyền dữ liệu qua SPI rjmp UART_RXC ;Điều khiển kết thúc UART RX rjmp UART_DRE ;Điều khiển thơng báo hết dữ liệu trong UDR rjmp UART_TXC ;Điều khiển kết thúc UART TX rjmp ADC ;Ngắt thơng báo kết thúc chuyển... địa chỉ của µC AT90S8535 Vi mạch điều khiển AT90S8535 hỗ trợ các chế độ địa chỉ rất mạnh và hiệu quả cao cho vi c truy nhập tới bộ nhớ chương trình (bộ nhớ Flash) và bộ nhớ dữ liệu (SRAM, tập thanh ghi và bộ nhớ I/O) Dưới đây là các chế độ địa chỉ của KI L µC AT90S8535 : a) Địa chỉ trực tiếp một thanh ghi Tốn hạng được chứa trong thanh ghi d (Rd) 22 http://kilobooks.com OBO OKS CO M THƯ VI N ĐIỆN TỬ... bất kỳ cờ nào đã được thiết lập đồng nghĩa với vi c xố cờ đó Tuy nhiên, các lệnh CBI và SBI chỉ làm vi c với các thanh ghi có địa chỉ từ $00 đến $1F Chức năng của mỗi bit trong các thanh ghi sẽ được giới thiệu trong từng phần có liên quan, dưới đây là hai thanh ghi chính của vi mạch điều khiển AT90S8535 Thanh ghi trạng thái µC : SREG Thanh ghi trạng thái (Status register) của µC AT90S8535 có địa chỉ... khơng xác định khi reset, ngay cả khi đồng khơng hoạt động KI L Hình 2.2 : Sơ đồ khối vi mạch điều khiển AT90S8535 12 http://kilobooks.com THƯ VI N ĐIỆN TỬ TRỰC TUYẾN 2.1.1.1 Cấu trúc của vi mạch AT90S8535 Vi mạch điều khiển AT90S8535 có những phương thức truy cập nhanh tới tâp thanh ghi đa năng bao gồm 32 thanh ghi 8 bit với thời gian truy cập trong OBO OKS CO M một đơn chu kỳ đồng hồ Điều này có nghĩa... liệu được đẩy vào Stack bởi lệnh PUSH và nó giảm đi 2 byte khi một địa chỉ được đẩy vào Stack trong lời gọi chương trình con hoặc ngắt SP được tăng lên 1 byte khi dữ liệu được lấy ra khỏi Stack với lệnh POP và nó được tăng 2 byte khi một địa chỉ được lấy ra từ Stack với lệnh trở về từ chương trình con RET hoặc lệnh trở về từ một ngắt RETI 2.1.1.8 Ngắt và xử lý ngắt trong µC AT90S8535 µC AT90S8535 cung... 2048 tới 2047 2.1.1.6 Thời gian truy cập bộ nhớ và thời gian thực hiện lệnh µC AT90S8535 được điều khiển bởi đồng hồ hệ thống 0, được tạo trực tiếp từ đồng hồ bên ngồi của chip và khơng sử dụng bộ chia thời gian trong Hình 2.8 mơ tả q trình tìm và thực hiện lệnh song song theo cấu trúc Harvard và khái niệm tập thanh ghi truy nhập nhanh Hình 2.8: Q trình tìm và thực hiện lênh song song Hình 2.9 mơ tả khái... ($28) ACSR Thanh ghi điều khiển và trạng thái của mạch so sánh Analog $07 ($27) ADMUX Thanh ghi lựa chọn của bộ dồn kênh ADC $06 ($26) ADCSR Thanh ghi điều khiển và trạng thái của bộ ADC $05 ($25) ADCH Thanh ghi dữ liệu byte cao của bộ ADC $04 ($24) ADCL Thanh ghi dữ liệu byte thấp của bộ ADC OBO OKS CO M $09 ($29) Tất cả các cổng I/O của µC AT90S8535 và các thiết bị ngoại vi đều được đặt trong gian... hưởng dữ liệu, cổng D PIND Các chân vào của cổng D SPDR Thanh ghi dữ liệu cổng vào/ra của thiết bị ngoại vi SPSR Thanh ghi trạng thái của SPI SPCR Thanh ghi điều khiển SPI UDR Thanh ghi dữ liệu vào/ra của bộ UART $0B ($2B) USR Thanh ghi trạng thái UART $0A ($2A) UCR Thanh ghi điều khiển UART $10 ($30) $0F ($2F) $0E ($2E) $0D ($2D) $0C ($2C) 28 http://kilobooks.com THƯ VI N ĐIỆN TỬ TRỰC TUYẾN UBRR Thanh... 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...http://kilobooks.com THƯ VI N ĐIỆN TỬ TRỰC TUYẾN 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 OBO OKS CO M AGND : Chân nối đất của tín hiệu analog, nếu bo mạch có một mức nối đất riêng của tín hiệu analog, thì chân này phải được nối tới mức nối đất này Nếu khơng có, chân này được nối tới chân GND Port ... ISC00 - - - - - - EXTRF PORF - - - - - CS02 CS01 CS00 COM1 B1 COM1 B0 - - PWM11 PWM10 Timer/Counter0 (8 Bits) COM1 A1 COM1 A0 29 http:/ /kilobooks. com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN TCCR1B ICNC1 $2D ($4D)... OCR1AH Timer/Counter1 – Output Compare Register A High Byte $2A ($4A) OCR1AL Timer/Counter1 – Output Compare Register A Low Byte $29 ($49) OCR1BH Timer/Counter1 – Output Compare Register B High Byte... Timer/Counter2 Output Compare Register $22 ($42) ASSR - $21 ($41) WDTCR - $20 ($40) Res $1F ($3F) EEARH $1E ($3E) EEARL $1D ($3D) EEDR - EEAR7 ICES1 - - CTC1 CS12 OBO OKS CO M $2E ($4E) PWM2 COM2 1 COM2 0 CS11

Ngày đăng: 02/12/2015, 08:37

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan