1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Các module ngoại vi của MCS-51 doc

28 325 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 478,73 KB

Nội dung

Peripherals - MCS 51 1 Các module ngoi vi ca MCS 51™ Peripherals - MCS 51 2 Plan ¸ Timers/Counters ¸ Truyn tin ni tip ¸ Ngt và hot đng ca ngt trong 8051 Peripherals - MCS 51 3 Timer ¸ Timer là b đm nh phân vi ngun xung clock ̈ T b xung chun (thng ly t b on-chip oscillator ca VK) ̈ T tín hiu bên ngoài ¸ ng dng ca timer ̈ To các s kin vi chu k đnh trc (timer) ̈ m các s kin bên ngoài (counter) ¸ 8051 có 2 b timer 16 bits count-up (đm thun, giá tr tng dn sau mi xung nhp) vi 4 mode hot đng ̈ mode 0: ch đ 13 bits ̈ mode 1: ch đ 16 bits ̈ mode 2: ch đ 8 bit có auto-reload ̈ mode 3: ch đ đc bit Peripherals - MCS 51 4 iu khin Timer ̈ THn : thanh ghi 8 bit cha byte cao ca b đm ̈ TLn : thanh ghi 8 bit cha byte thp ca b đm ̈ TRn : bit cho phép timer hot đng ¸ TRn = 0 å timer ngng hot đng ¸ TRn = 1 å timer đc phép hot đng ̈ M1, M0 : 2 bit xác đnh 4 mode ca Timer ̈ TFn : bit c báo b đm tràn ̈ C/Tn : bit thit lp Timer hay Counter ¸ C/T = 0 å Timer ly xung clock t on-chip oscillator ¸ C/T = 1 å Timer ly xung clock t bên ngoài qua port Tn ̈ GATE : kt hp vi TRn đ điu khin b đm ¸ GATE = 1 å Timer ch hot đng khi TRn=1 và INTn = HIGH ¸ GATE = 0 å Timer hot đng khi TRn=1 Peripherals - MCS 51 5 TMOD Peripherals - MCS 51 6 TCON Peripherals - MCS 51 7 Mode 0 Timer1 mode 0 Timer clock Peripherals - MCS 51 8 ¸ Timer/Counter 13 bit ̈ 8 bit cao là thanh ghi THx ̈ 5 bit thp là 5 bit MSB ca thanh ghi TLx (3 bit thp ca thanh ghi TL không s dng) ¸ TFx = 1 khi ni dung ca b đm tràn Peripherals - MCS 51 9 Mode 1 ̈ Ging mode 0, ngoi tr s dng b đm 16 bit, thay vì 13 bit ¸ 8 bit MSB là thanh ghi THx ¸ 8 bit LSB là thanh ghi TLx Timer1 mode 1 Peripherals - MCS 51 10 Mode 2 Peripherals - MCS 51 11 ¸ S dng thanh ghi TLx làm thanh ghi ca Timer ¸ Khi ni dung b đm tràn (TLx chuyn t FFå00) ̈ TFx đc dng lên ̈ Ni dung ca THx đc t đng np vào TLx Peripherals - MCS 51 12 Mode 3 ¸ Nu Timer0  mode 3 ̈ B Timer/Counter 8 bit s dng TL0 å tác đng đn TF0 ̈ B Timer 8 bit s dng TH0 å tác đng đn TF1 ¸ Nu Timer1  mode 3 ̈ dng hot đng ̈ ni dung ca các thanh ghi TH1 và TL1 không thay đi ¸ Trong khi Timer0 hot đng  mode 3 ̈ Timer1 vn có th hot đng bình thng  các mode 0, 1, 2 ̈ Timer1 không th s dng TF1 (vì đc Timer TH0 s dng) Peripherals - MCS 51 13 Timer 0  mode 3 Peripherals - MCS 51 14 Th tc khi to Timer ¸ Khi to TMOD ¸ Khi to các giá tr THx và TLx ¸ Thit lp bit TRx = 1 đ cho phép Timer làm vic Peripherals - MCS 51 15 c ni dung Timer “On-the-fly” ¸ c ni dung Timer trong khi Timer đang hot đng ̈ c TL ̈ c TH å Có th có sai sót: khi đc ni dung ca TH thì TL b thay đi ¸ Khc phc ̈ c TH ̈ c TL ̈ c TH, kimt tra nu khác vi ln đc đu thì lp li thao tác đc Peripherals - MCS 51 16 Ví d 1 ¸ Vit chng trình trình to xung vuông đu tn s 10KHz ti cng P1.0 s dng Timer0. Bit MCS-51 s dng tn s f OSC 12MHz Peripherals - MCS 51 17 ¸ Tn s = 10KHz: ̈ P1.0 =LOW trong 50us ̈ P1.0 = HIGH trong 50us ¸ f OSC = 12MHz å chu k lnh = 1us ¸ S dng Timer0 đm 50us, mi ln tràn s lp bit P1.0 ¸ Có th s dng Timer0  mode 2 (auto-reload). Khi đócn np TH0 = 0x100 – 32 = 0xE0 ̈ Khi to Timer0: TMOD = 00000010b ¸ Bit C\T = 0 å hot đng nh timer ¸ Bit M1 M0 = 10 å hot đng mode 2 ̈ Thanh ghi TH0 = 205 Peripherals - MCS 51 18 ; source file “wave1.a51” org 0000h ljmp start org 100h start: mov TMOD,#02 ; timer + mode 2 mov TH0,#0xE0 setb TR0 ; start timer 0 here: jnb TF0,here clr TF0 ; xóa c TF0 cpl P1.0 sjmp here END Peripherals - MCS 51 19 Ví d 2 ¸ Vit chng trình trình to xung vuông đu tn s 1KHz ti cng P1.0 s dng Timer0. Bit MCS-51 s dng tn s f OSC 12MHz Peripherals - MCS 51 20 ¸ Tn s = 1KHz: ̈ P1.0 =LOW trong 500us ̈ P1.0 = HIGH trong 500us ¸ f OSC = 12MHz å chu k lnh = 1us ¸ S dng Timer0 đm 500us, mi ln tràn s lp bit P1.0 ¸ Không th s dng Timer0  mode 2 (auto-reload) vì maximun ch đm đc 255 us. ¸ S dng Timer0  mode 1 (mode 16 bit). Khi đócn np TH0-TL0 = 0x10000-1F4 = 0xFE0C ̈ Khi to Timer0: TMOD = 00000010b ¸ Bit C\T = 0 å hot đng nh timer ¸ Bit M1 M0 = 10 å hot đng mode 2 ̈ Thanh ghi TH0 = 0xFE, TL0 = 0x0C [...]... ̈ Vi t m t byte c n truy n n SBUF nh n thông tin ¸ ̈ Thi t l p các bit REN=1 và RI=0 trong thanh ghi SCON Peripherals - MCS 51 27 Peripherals - MCS 51 28 Mode 1 – UART 8-bit, t c ¸ ¸ có th thay i UART: Universal Asynchronous Recever/Transmitter Truy n tin n i ti p không ng b 10 bit ̈ ̈ ̈ ̈ ̈ ̈ 1 bit START 8 bit DATA (LSB u tiên) 1 bit STOP T c truy n c quy t nh b i Timer1 Transmit c start b i l nh vi. .. Peripherals - MCS 51 30 Mode 2 ¸ Truy n tin 11 bit ̈ ̈ ¸ Bit th 9 c a data: ̈ ̈ ¸ ¸ ¸ 9 bit data 1 bit start, 1 bit stop Bit TB8 Bit RB8 i v i vi c truy n i v i vi c nh n T c truy n c nh b ng 1/32 fOSC (SMOD = 0) ho c 1/64 fOSC (SMOD=1) Transmit c start b i l nh vi t n SBUF Khi nh n 9 bit data, c RI s c set lên 1 (c n xóa b i ph n m m) Peripherals - MCS 51 31 Peripherals - MCS 51 32 Mode 3 ¸ Gi ng nh... c software g i n CPU yêu c u th c hi n m t thao tác hardware interrupt: CPU c t gi các thông tin c n thi t sau ó chuy n qua ch ng trình ph c v ng t ( ISR interupt service routine) software interrupt: do m t l nh c thi t k c bi t trong t p l nh c a CPU gây ra ̈ ̈ ¸ 8051 có 5 ngu n ng t 2 ngu n ng t ngoài 2 ngu n ng t t các b timer 1 ngu n ng t t b truy n tin n i ti p ̈ ̈ ̈ Peripherals - MCS 51 Th c hi... n u ng t c CPU ch p nh n thì ch ng trình chính s b “ng t” và các thao tác sau s c ti n hành (b i ph n c ng): ̈ ̈ ̈ ̈ ̈ ̈ ¸ L nh hi n t i s c hoàn thành n t PC c x p vào ng n x p Tr ng thái c a ng t hi n t i c c t gi Các ng t cùng m c s b c m PC c n p giá tr a ch c a vector ng t t ng ng t i ó ch a ch ng trình ph c v ng t (ISR: Interrupt Service Routine) C báo ngu n ng t s b xóa (ngo i tr c báo ng t RI... reception TI ; TR1 ; start timer 1 Peripherals - MCS 51 39 Ch ng trình trên có th vi t g n l i nh sau ; uart_init.a51 org 0000h ljmp start start: mov SCON,#0x52 mov TMOD,#0x20 mov TH1,#0xF4 ; clr RI ; setb REN ; enables serial reception ; setb TI ; ; setb TR1 ; start timer 1 END ¸ Peripherals - MCS 51 40 d - truy n ký t ASCCI ¸ Vi t ch ng trình con OUTCHR truy n ký t ASCII c t trong thanh ghi A lên ng... is not empty ;yes, Tx is empty ;send character Peripherals - MCS 51 42 d - nh n ký t ¸ Vi t ch ng trình con INCHAR nh n ký t t Rx, ký t nh n c c t thanh ghi A Peripherals - MCS 51 ; inchar.a51 inchar: jnb RI,$ clr RI mov a,SBUF ret 43 ; wait for character Peripherals - MCS 51 44 d - truy n và nh n ký t ¸ Vi t ch t Rx ̈ ̈ ¸ ¸ ng trình nh n ký t ch theo chu n ASCII N u ký t là ch th ng å i qua ch... sai, hãy hi u ch nh l i Peripherals - MCS 51 22 s d ng thông tin v state (ho c sec) o kho ng th i gian th c hi n các l nh Peripherals - MCS 51 23 Truy n tin n i ti p u i m ¸ ̈ ̈ ¸ Nh ̈ Ti t ki m dây n i n gi n khi thi t k m ch in c i m T c ch m Peripherals - MCS 51 24 C ng n i ti p c a MCS-51TM c i m ¸ ̈ ̈ Truy n nh n theo t ng byte Hai c ng n i ti p TxD RxD ¸ ¸ ̈ ̈ Có kh n ng truy n, nh n ng th i... tin, khi ó t c truy n c xác nh theo công th c Peripherals - MCS 51 35 Peripherals - MCS 51 36 d - kh i t o UART ¸ Vi t o n ch ng trình kh i t o c ng truy n tin n i ti p ch UART – 8bit, s d ng Timer1 t o t c truy n 2400 bps Bi t fOSC = 11.0592 MHz Peripherals - MCS 51 ¸ B truy n tin làm vi c ̈ ̈ ¸ T c ̈ ̈ ̈ ̈ ¸ ¸ SM0 = 0 SM1 = 1 ch 37 mode 1: SCON = 01000000b 2400 bps v i fOSC = 11.0592MHz: SMOD = 0 . Peripherals - MCS 51 1 Các module ngoi vi ca MCS 51™ Peripherals - MCS 51 2 Plan ¸ Timers/Counters ¸ Truyn. vi vi c truyn ̈ Bit RB8 đi vi vi c nhn ¸ Tc đ truyn c đnh bng 1/32 f OSC (SMOD = 0) hoc 1/64 f OSC (SMOD=1) ¸ Transmit đc start bi lnh vi t

Ngày đăng: 23/03/2014, 02:20

TỪ KHÓA LIÊN QUAN

w