Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
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 ngoi vi ca MCS 51™
Peripherals - MCS 51 2
Plan
¸
Timers/Counters
¸ Truyn tin ni tip
¸ Ngt và hot đng ca ngt trong 8051
Peripherals - MCS 51 3
Timer
¸ Timer là b đm nh phân vi ngun xung clock
̈ T b xung chun (thng ly t b on-chip oscillator ca VK)
̈
T tín hiu bên ngoài
¸ ng dng ca timer
̈
To các s kin vi chu k đnh trc (timer)
̈ m các s kin bên ngoài (counter)
¸ 8051 có 2 b timer 16 bits count-up (đm thun, giá tr tng
dn sau mi xung nhp) vi 4 mode hot đng
̈
mode 0: ch đ 13 bits
̈ mode 1: ch đ 16 bits
̈ mode 2: ch đ 8 bit có auto-reload
̈
mode 3: ch đ đc bit
Peripherals - MCS 51 4
iu khin Timer
̈ THn : thanh ghi 8 bit cha byte cao ca b đm
̈
TLn : thanh ghi 8 bit cha byte thp ca b đm
̈ TRn : bit cho phép timer hot đng
¸
TRn = 0 å timer ngng hot đng
¸ TRn = 1 å timer đc phép hot đng
̈ M1, M0 : 2 bit xác đnh 4 mode ca Timer
̈ TFn : bit c báo b đm tràn
̈ C/Tn : bit thit lp Timer hay Counter
¸ C/T = 0 å Timer ly xung clock t on-chip oscillator
¸ C/T = 1 å Timer ly xung clock t bên ngoài qua port Tn
̈ GATE : kt hp vi TRn đ điu khin b đm
¸
GATE = 1 å Timer ch hot đng khi TRn=1 và INTn = HIGH
¸ GATE = 0 å Timer hot đ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 thp là 5 bit MSB ca thanh ghi TLx (3 bit thp ca
thanh ghi TL không s dng)
¸ TFx = 1 khi ni dung ca b đm tràn
Peripherals - MCS 51 9
Mode 1
̈ Ging mode 0, ngoi tr s dng 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 dng thanh ghi TLx làm thanh ghi ca Timer
¸ Khi ni dung b đm tràn (TLx chuyn t FFå00)
̈ TFx đc dng lên
̈ Ni dung ca THx đc t đng np vào TLx
Peripherals - MCS 51 12
Mode 3
¸ Nu Timer0 mode 3
̈ B Timer/Counter 8 bit s dng TL0 å tác đng đn TF0
̈ B Timer 8 bit s dng TH0 å tác đng đn TF1
¸ Nu Timer1 mode 3
̈ dng hot đng
̈ ni dung ca các thanh ghi TH1 và TL1 không thay đi
¸ Trong khi Timer0 hot đng mode 3
̈ Timer1 vn có th hot đng bình thng các mode 0,
1, 2
̈ Timer1 không th s dng TF1 (vì đc Timer TH0 s
dng)
Peripherals - MCS 51 13
Timer 0 mode 3
Peripherals - MCS 51 14
Th tc khi to Timer
¸ Khi to TMOD
¸ Khi to các giá tr THx và TLx
¸ Thit lp bit TRx = 1 đ cho phép Timer làm vic
Peripherals - MCS 51 15
c ni dung Timer “On-the-fly”
¸ c ni dung Timer trong khi Timer đang hot đng
̈ c TL
̈ c TH
å Có th có sai sót: khi đc ni dung ca TH thì TL b thay
đi
¸ Khc phc
̈ c TH
̈ c TL
̈ c TH, kimt tra nu khác vi ln đc đu thì lp li
thao tác đc
Peripherals - MCS 51 16
Ví d 1
¸ Vit chng trình trình to xung vuông đu tn s
10KHz ti cng P1.0 s dng Timer0. Bit MCS-51
s dng tn s f
OSC
12MHz
Peripherals - MCS 51 17
¸ Tn s = 10KHz:
̈ P1.0 =LOW trong 50us
̈ P1.0 = HIGH trong 50us
¸ f
OSC
= 12MHz å chu k lnh = 1us
¸ S dng Timer0 đm 50us, mi ln tràn s lp bit P1.0
¸ Có th s dng Timer0 mode 2 (auto-reload). Khi đócn
np TH0 = 0x100 – 32 = 0xE0
̈ Khi to Timer0: TMOD = 00000010b
¸ Bit C\T = 0 å hot đng nh timer
¸ Bit M1 M0 = 10 å hot đ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
¸ Vit chng trình trình to xung vuông đu tn s
1KHz ti cng P1.0 s dng Timer0. Bit MCS-51
s dng tn s f
OSC
12MHz
Peripherals - MCS 51 20
¸ Tn s = 1KHz:
̈ P1.0 =LOW trong 500us
̈ P1.0 = HIGH trong 500us
¸ f
OSC
= 12MHz å chu k lnh = 1us
¸ S dng Timer0 đm 500us, mi ln tràn s lp bit P1.0
¸ Không th s dng Timer0 mode 2 (auto-reload) vì
maximun ch đm đc 255 us.
¸ S dng Timer0 mode 1 (mode 16 bit). Khi đócn np
TH0-TL0 = 0x10000-1F4 = 0xFE0C
̈ Khi to Timer0: TMOD = 00000010b
¸ Bit C\T = 0 å hot đng nh timer
¸ Bit M1 M0 = 10 å hot đ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 Ví 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 Ví 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 Ví 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 Ví 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 ngoi vi ca MCS 51™
Peripherals - MCS 51 2
Plan
¸
Timers/Counters
¸ Truyn. vi vi c truyn
̈ Bit RB8 đi vi vi c nhn
¸ Tc đ truyn c đnh bng 1/32 f
OSC
(SMOD = 0) hoc 1/64
f
OSC
(SMOD=1)
¸ Transmit đc start bi lnh vi t