Nghiên cứu ứng dụng của bộ vi xử lý trong quản lý thư viện trường tiểu học Kim Đồng
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 n khơng cịn m i thi t b , h th ng o lư ng i u n c ghép n i v i máy tính s có th i gian thu th p x lý d li u ng n m c xác v n c m b o, i u quan tâm c kh t ng hoá vi c thu th p x lý d li u Chính i u làm cho máy tính c ng d ng h u h t vào lĩnh v c cu 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ý s x lý k thu t s ây m t vi m ch i n t có m t i c a b vi tích h p cao bao g m r t nhi u m ch s có kh nh n, x lý xu t d li u c bi t trình x lý d li u c th c hi n theo m t chương trình m t t p h p l nh t bên mà ngư i s d ng có th thay i d dàng tùy thu c vào t ng ng d ng Do ó m t b vi x lý có th th c hi n c r t nhi u yêu c u i u n khác tuỳ thu c vào nhu c u s d ng S i c a k thu t vi x lý s k t h p gi a k thu t ph n c ng ph n m m ã làm cho ho t ng c a m ch i n t tr nên m m d o v i nh ng ph n m m r t linh ho t mà ngư i s d ng có th s a ch a, thay i ho c 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 toàn b Trong Atmel ng d ng án này, em s d ng vi m ch i u n AT90S8535 c a hãng thi t k m t m ch o nhi t ơn gi n ây m t b vi x lý bit lư ng th p (theo ki u chíp CMOS) s c u trúc RICS c a hãng Atmel, t c x lý d li u c a IC AT90S8535 r t cao (x p x MISP t i t n s 8MHz) cho phép h th ng có th c thi t k t i ưu làm tăng t c x lý Do ó, cung c p kh linh ho t r t cao ng d ng nhúng Vì v y, vi c tìm hi u c u trúc c tính c a vi m ch i u n AT90S8535 có th giúp s d ng vi m ch i u n cho ng d ng c n thi t 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 án Tuy nhiên, trình cịn nhi u h n ch nên em hoàn thành án khơng th tránh kh i nh ng thi u sót, v y em r t mong c s ch b o c a th y cô c a nh ng ngư i i trư c lĩnh v c án c a em hoàn thi n qua ó em có th xây d ng c nh ng ng d ng th c t THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN CHƯƠNG I NHI M V VÀ PHƯƠNG HƯ NG TH C HI N 1.1 Nhi m v c a án T m c ích t ng quát c a nhi t tài thi t k xây d ng m t h th ng o ơn gi n, có th phân tách thành nhi m v c n th c hi n sau: Thi t k xây d ng h th ng ghép n i vi i u n (µC) AT90S8535 v i module LCD (4x20 character), keypad (16 keys), c m bi n nhi t LM335 Ngồi h th ng cịn 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 c a h th ng c n thi t k LCD PC µC + I/O port KeyPad RS 232 L335 Thi t k xây d ng ph n m m i u n µC thu th p d li u t c m bi n nhi t nhi t LM335, t keypad ho c t PC X lý d li u nh n c hi n th LCD ho c truy n sang PC THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Xây d ng ph n m m PC có th giao ti p c v i µC qua c ng RS 232 1.2 Phân tích nhi m v có th thi t k xây d ng c h th ng c n ph i th c hi n bư c sau : Nghiên c u tìm hi u b vi x lý AT90S8535 Tìm hi u s ho t ng c a module LCD c m bi n nhi t LM 335 Tìm hi u s ho t ng phương pháp mã hố keypad có th 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 gi a µC v i LCD, keypad, IC LM335 gi a µ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 Vi t ph n m m PC th c hi n k t n i 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 qu Vi t báo cáo t t nghi p 1.3 Phương hư ng th c hi n 1.3.1 L a ch n thi t b a) L a ch n vi i u n : Trong th c t có r t nhi u h vi x lý khác có th s d ng c ng d ng h vi i u n 8051 c a Intel, 68hC11 c a Motorola hay h vi i u n 8515 c a ATMEL Tuy nhiên, án s d ng b vi THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN x lý AT90S8535 c a ATMEL, ây m t s n ph m m i c a hãng ATMEL nên vi c tìm hi u s em l i r t nhi u l i ích vi c thi t k ng d ng o lư ng i u n V m t c u t o tương t b vi x lý AT90S8515 ã có t lâu v i c ng I/O l p trình c Nhưng v m t cơng d ng b vi x lý AT90S8535 c tích h p nhi u ch c so v i b vi x lý AT90S8515, c bi t µC AT90S8535 c tích h p m t b ADC cho phép m i chân c a port A c s d ng u vào cho b ADC, làm cho vi c s d ng µC AT90S8535 ng d ng linh ho t r t nhi u so v i µC AT90S8515 ang c s d ng r ng rãi t i Vi t Nam b) Thi t b hi n th d li u : i v i lo i d li u c hi n th dư i 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 Tuy nhiên, ng d ng không ch hi n th ch s (giá tr nhi t ir ) mà ph i hi n th c 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 c ch ch s m t 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 d li u vô linh ho t ta có th i u n xu t d li u m t cách tr c ti p thông qua t p l nh i u n c a vi m ch i u n b mã ký t s n có CGRAM c a LCD M t i u c n quan tâm khác thi t b LCD tiêu t n r t lư ng Trên th trư ng hi n có nhi u module LCD c a 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 nh t thi t ph i ch n hãng cung c p module LCD u c xây d ng theo m t tiêu chu n, ó cách th c i u n ghép n i module LCD thông d ng hi n tương t THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN c) Thi t b vào d li u i u n (Keypad) : ngư i s d ng có th giao ti p c v i h th ng, c n ph i ghép n i µC v i m t module keypad Do ng d ng có th làm vi c v i c ch ch s nên ta s d ng keypad lo i 16 keys, ó m i m t phím c thi t k m t cơng t c có th nh p c d 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 n bao g m : Send, Bspace, Do s ký t có th , , / , Clear c s d ng v i phím ch c l n r t 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 m i m t phím module keypad có th mã hố c khơng hai ký t khác B ng cách này, v i keypad có 16 phím ta có th mã hố c tồn b b ng ch ch s ng th i v n có th th c hi n c ch c i u n trình b y d) Giao ti p gi a µC PC : M c dù h th ng c thi t k d a µC AT90S8535 ã có th làm vi c c l p qua trình thu th p, x lý hi n th d li u t i ngư i s d ng mà khơng c n có s tr giúp c a PC Tuy nhiên, h u h t ng d ng uc n ph i lưu tr l i d li u mà n u th c hi n vi c d a µC AT90S8535 ịi h i r t nhi u k thu t chi phí Trong ó, thao tác lưu tr d li u PC l i r t ơn gi n, v y gi i pháp t i ưu nh t s d ng PC ph c t p V n làm nhi m v l i ch thao tác truy n d li u c n lưu tr t µC sang PC, vi c c th c hi n ơn gi n b n thân µC AT90S8535 ã c tích h p m t b 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 a µC ta có th th c hi n truy n nh n d 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 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN PC theo chu n RS 232 s tương quan v m t i n áp tín hi u d ng TTL c a µC i n áp tín hi u d ng RS 232 c a PC th c hi n vi c chuy n hi u d ng TTL i tín 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 s tương thích v 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 c a 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 có th c th hi n sơ hình 1.2, ó : Kh i LCD display : S d ng module LCD s n có th trư ng c 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 d li u ho c i u n s ho t ngư i s d ng có th nh p ng c a h th ng Module c thi t k dư i d ng công t c s d ng tr c ti p I/O l p trình c c a µC c tính c a c ng th c hi n mà khơng c n ngu n h tr bên ngồi Kh i LM 335 : Là m t IC c m bi n nhi t làm nhi m v bi n môi trư ng sang d ng i n áp làm i nhi t u vào cho b ADC c a µ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 gi a µ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 m t chi u ±5V n nh Hình 1.2 : Sơ c p ngu n cho kh i khác ho t kh i thi t k ph n c ng Ngu n LCD display Keypad LM335 µC + I/O port Max 232 ng THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN 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 n AT90S8535 AT90S8535 m t vi m ch i u n lư ng th p bit (cơng ngh chíp CMOS) s c u trúc RICS c a hãng ATMEL, thu c h vi i u n AT90S/LS8535 B ng cách th c hi n m i l nh m t ơn chu kỳ, AT90S8535 có th t t i MIPS cho m i MHz cho phép h th ng có th k m t cách t i ưu nh t s tiêu th lư ng làm tăng t c c thi t 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 v m t ch c µC AT90S8535 c tích h p thêm nhi u tính m i mà µC AT90S8515 khơng có Các c trưng c a µC AT90S8535 c trình b y dư i ây : • 8KB b nh chương trình • 512 byte EEPROM • 512 byte SRAM • 32 line (4 c ng) I/O l p trình c • 32 ghi a bit • kênh • b Timer/Counter bit v i b • b Timer/Counter 16 bit v i b • b UART l p trình trao • b Watchdog Time l p trình c v i b t o giao • b so sánh analog u vào ADC riêng bi t v i 10 bit k t qu m m c l p ch so sánh c l p ch PWM i thông tin n i ti p ng 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 • Ngu n cung c p t 4.0 - 6.0V, t n s làm vi c - 8MHz làm vi c : Idle, Power-Save Power-down Vi m ch i u n AT90S8535 c ch t o theo cơng ngh chíp nh c nh v i m t có th cao B nh Flash ISP chíp cho phép b nh chương trình c l p trình l i thơng qua m t c ng SPI ph i ghép n i ti p v i thi t b ngo i vi Ngồi ra, µC AT90SS8535 cịn 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 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 c a m i lo i sau Hình 2.1 : C u hình chân c a µC AT90S8535 PLCC PDIP TQFP MLF THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Ch c chân c a µC AT90S8535 sau : VCC : Chân c p ngu n 5V GND : Chân n i RESET : Là t u vào reset Tín hi u reset bên s t o b i m c th p c a tr kháng chân Reset Xung reset dài 50ns s t o tín hi u reset Xung ng n s không XTAL1 : Là m t ng m b o phát sinh tín hi u reset u vào có tác d ng u vào c a m ch i u n XTAL2 : Là u c a tín hi u o chi u b khu ch i t o dao ng h bên o t b khu ch i t o dao AVCC : Là chân cung c p i n áp cho c ng A b chuy n ng i ADC, n u ADC không c s d ng chân ph i c n i v i ngu n 5V (chân VCC), n u ADC c s d ng chân ph i c n i t i ngu n 5V qua b l c thơng th p 10 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 Temp,16 ldi Instr,$D8 mov ZL,ShowRxL mov ZH,ShowRxH rcall DISPLAY_CHAR_IN_RxBUFF NoShiftL: ret ;Perform function Send SEND_TxBUFF_TO_PC: sbrc CtrlReg,SelectTxRx ;Selecting Rx rjmp NoSend cpi AddrShow,$97 ;No char in buff breq NoSend 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 ;Perform control key 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 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN rjmp EndControlKey Key10: rcall SEND_TxBUFF_TO_PC rjmp EndControlKey Key13To15:cpi KeyPress,14 breq Key14 cpi KeyPress,15 breq Key15 rcall SHIFT_RIGHT rjmp EndControlKey Key15: rcall CLEAR_Tx_OR_Rx rjmp EndControlKey Key14: rcall SELECT_TxRx EndControlKey:ldi OldKey,-1 ;Reset OldKey ret ;Service INT0 SCAN_CODE: in Save,SREG ldi KeyPress,$00 out GIMSK,KeyPress ldi TimeOut,2 ;Wait 0.2ms for settle 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 ldi KeyPress,12 ;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 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN 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 sbr KeyPress,EnOnKeyPress ;Confirm a key press in Temp,TIMSK ;Disable int KEY_RATE overflow sbrs Temp,TOIE1 Normal: ;Confirm Control key ;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 ;Reset register for compera push Temp in Temp,TIMSK cbr Temp,INTRATE out TIMSK,Temp ;Disable INT 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 198 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 RxData: cpi Data,CR ;End of receive brne SetStore sbr CtrlReg,EnShowRxBuff ldi Data,$7C SetStore: ;Reques show data in Rx buff ;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 GetHPtrRx: mov HPtrRxL,YL ;Get pointer head 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 199 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN mov r12,ResultADCL Mull_Data: dec Data breq HalfMull add ResultADCL,r12 adc ResultADCH,r11 rjmp Mull_Data 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 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 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 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 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 201 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 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 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 202 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 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 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 THƯ VIỆN ĐIỆN TỬ TRỰC TUYEÁN pop Temp pop Data ret ;TimeWait = (25*Temp)ms TIMEWAIT: ldi TimeOut,$FA rcall DELAY dec Temp brne TIMEWAIT ret 204 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN M CL 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 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 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 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 2.2.2.1 PHƯƠNG PHÁP CHUY N I AD .129 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 4.2 LƯU THU T TOÁ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 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 K T LU N 173 PH L C 175 CHƯƠNG TRÌNH I U KHI N µC AT90S8535 175 207 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN M CL 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 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 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 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 2.2.2.1 PHƯƠNG PHÁP CHUY N I AD .129 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 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 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 PH L C 175 CHƯƠNG TRÌNH I U KHI N µC AT90S8535 175 210 ... ch n vi i u n : Trong th c t có r t nhi u h vi x lý khác có th s d ng c ng d ng h vi i u n 8051 c a Intel, 68hC11 c a Motorola hay h vi i u n 8515 c a ATMEL Tuy nhiên, án s d ng b vi THƯ VI? ??N... i ti p ng 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 • Ngu n cung c p t 4.0 - 6.0V, t n s làm vi c - 8MHz làm vi c : Idle, Power-Save Power-down Vi m ch i... ng THƯ VI? ??N ĐIỆN TỬ TRỰC TUYẾN 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 n AT90S8535 AT90S8535 m t vi m