Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 51 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
51
Dung lượng
410,82 KB
Nội dung
Xung & Hoi1 1.Giớithiệu 2.Sơ đồ khốivàchân 3.Tổchứcbộnhớ 4.Cácthanhghichứcnăng đặcbiệt(SFR) 5.Dao độngvàhoạt độngreset 6.Tậplệnh 7.Cácmode định địachỉ 8.LậptrìnhIO 9.Tạotrễ 10. 10. L L ậ ậ p p tr tr ì ì nh nh Timer/Counter Timer/Counter 11.Lậptrìnhgiaotiếpnốitiếp 12.Lậptrìnhngắt 13.Lậptrìnhhợpngữ Xung & Hoi2 •8051 có2 timers/counters: timer/counter 0 & timer/counter 1. Chúngcóthểđượcdùngnhư: 1.Bộđịnhthời (Timer) dùngnhư 1 bộ tạotrễ –Nguồnxungclock chínhlàdao độngthạchanhbêntrong 2.Bộđếmsựkiện (Event Counter) – Đầuvàotừchânbênngoài đểđếmsốsựkiện –Cóthể dùng đếmsốngười điqua cổng, số vòngquay của bánhxe, hay bấtkểcácsựkiệnmàchuyển đượcsang dạng xung 3.Tạotốcđộ baud (baud rate) choport nốitiếpcủa8051 10-1. Giớithiệu Xung & Hoi3 Timer •Khởitạogiátrị ban đầuchocácthanhghi •KíchhoạtTimer, sau đó8051 tínhlên •Ngõvàolàtừclock nội(machine cycle) •Khicácthanhghibằng0 thì8051 sẽ set cờ tràn to LCD P1 8051 TL0 TH0 P2 Set Timer 0 Xung & Hoi4 Counter • Đếmsốsựkiện: –Chỉ rasốsựkiệntrêncácthanhghi –Counter 0: NgõvàotừchânbênngoàiT0 (P3.4) –Counter 1: NgõvàotừchânbênngoàiT1 (P3.5) T0 to LCD P3.4 P1 a switch TL0 TH0 Xung & Hoi5 CácthanhghidùngtruyxuấtTimer/Counter •TH0, TL0, TH1, TL1 •TMOD thanhghichếđộđịnhthời(Timer mode register) •TCON thanhghi điềukhiển địnhthời(Timer control register) •8052 với3 timers/counters sẽ cóthêmcácthanhghiT2CON (Timer 2 control register), TH2 and TL2 89hTimer ModeTMOD 88hTimer ControlTCON 8BhTimer 1 Low ByteTL1 8DhTimer 1 High ByteTH1 8AhTimer 0 Low ByteTL0 8ChTimer 0 High ByteTH0 SFR AddressDescriptionSFR Name Xung & Hoi6 TH0, TL0, TH1, TL1 (not bit addressable) •Cảtimer 0 & timer 1 đềucó độ rộng16 bits –Cácthanhghinàylưutrữ •Giátrị tạothờigiantrễ (time delay) (nếulàtimer) •Sốsựkiện(number of events) (nếulàcounter) –Timer 0: TH0 & TL0 •Timer 0 high byte, timer 0 low byte –Timer 1: TH1 & TL1 •Timer 1 high byte, timer 1 low byte –Mỗibộđịnhthời16-bit cóthểđượctruycậpnhư 2 thanhghi8-bit táchbiệt Xung & Hoi7 D15 D8D9D10D11D12D13D14 D7 D0D1D2D3D4D5D6 TH0TL0 D15 D8D9D10D11D12D13D14 D7 D0D1D2D3D4D5D6 TH1TL1 Timer 0 Timer 1 Xung & Hoi8 10-2. ThanhghichếđộđịnhthờiTMOD •Timer mode register: TMOD (not bit addressable) –Thanhghi8-bit –Thiếtlậpchếđộ hoạt độngchocácbộđịnhthời: •4 bits thấpdànhchoTimer 0 (Set to 0000 if not used) •4 bits caodànhchoTimer 1 (Set to 0000 if not used) GATE C/T M1 M0 GATE C/T M1 M0 Timer 1 Timer 0 (MSB)(LSB) Xung & Hoi9 GATE Bit điềukhiểncổng. Khiset lên1, timer chỉ hoạt độngkhi chân/INTx ở mứccaovàTRx= 1. Khixóa, timer hoạt động khiTRx= 1 C/T Bit chọnchứcnăng đếmhoặc địnhthời: 1: đếm; 0: địnhthời M1 Chọnmode -bit 1 M0 Chọnmode -bit 0 GATE C/T M1 M0 GATE C/T M1 M0 Timer 1 Timer 0 (MSB)(LSB) Xung & Hoi10 GATE –GATE=0 • Điềukhiểnbêntrong(Internal control) •Bậthay tắttimer bằngphầnmềm •Timer đượcchophépkhiTR đượcset –GATE=1 • Điềukhiểnbênngoài(External control) •Bậthay tắttimer bằngphầnmềm& mộtnguồnbên ngoài(external source) •Timer đượcchophépkhichân/INT ở mứccao& TR đượcset [...]... Hoi timer mode) 12 VD: Tìm giá trị TMOD nếu muốn lập trình Timer 0 làm vi c ở mode 2 ? Dùng 8051 XTAL cho xung clock, & dùng lệnh để bật hay tắt timer Giải đáp: timer 1 timer 0 TMOD= 0000 0010 Timer 1 không dùng Timer 0, mode 2 C/T = 0 à dùng nguồn xung clock (Timer) GATE = 0 à điều khiển bằng phần mềm Xung & Hoi 13 10-3 Thanh ghi điều khiển định thời TCON • Timer control register: TCON – ½ byte cao... auto reload timer/counter; THx lưu trữ giá trị nạp lại cho TLx mỗi khi tràn (overflow) Chế độ định thời chia sẻ (Split timer mode) Xung & Hoi 17 10-4-1 Chế độ định thời 16-bit (mode 1) 1 Chọn timer 0 làm vi c ở mode 1 (định thời 16-bit) – MOV TMOD,#01H 2 Khởi tạo giá trị ban đầu nạp cho TH0 & TL0 – MOV TH0,#FFH – MOV TL0,#FCH 3 Thoạt đầu nên xóa cờ TF0 về 0 – CLR TF0 4 Bật Timer 0 – SETB TR0 Xung & Hoi... cung cấp cho bộ định thời C/T XTAL oscillator ÷ 12 C/T=0: up C/T=0: down Timer clock T0 hay T1 pin THx TLx TF goes high when FFFF à 0 TRx TFx overflow flag Mode 1 Xung & Hoi 21 Bài toán 10.1 Sóng vuông EViết chương trình tạo sóng vuông có thời gian mức cao và thấp bằng nhau trên chân P1.5 Dùng Timer 0 tạo trễ mode 1 ;each loop is a half clock MOV TMOD, #01 ;Timer 0,mode 1(16-bit) HERE: MOV TL0, #0F2H... FFF5, FFF6, FFF7, FFF8, FFF9, FFFA, FFFB, FFFC, FFFFD, FFFE, FFFFH, 0000H à TF0 = 1 và khi này lệnh JNB bị bỏ qua 7 Tắt Timer 0 dùng lệnh “CLR TR0” CTC DELAY kết thúc, tiến trình được lặp lại Chú ý, làm vi c với mode 1, nên để lặp lại tiến trình, ta phải nhập lại giá trị cho các thanh & Hoi TH-TL & bật lại Timer 24 Xung ghi 10-4-2 Chế độ định thời 13-bit (mode 0) • Mode 0 tương tự mode 1, ngoại trừ nó... lệnh trong vòng lặp Xung & Hoi 32 Bài toán 10.3 • ETìm KQ các bài toán trên trong trường hợp có tính đến overhead? • EGiải các bài toán trên với chế độ định thời tự nạp lại 8-bit (mode 2)? • EVới phạm vi tần số nào thì không thể dùng chế độ tự nạp lại 8-bit (mode 2), giải thích? Xung & Hoi 33 10-6 Tìm giá trị các thanh ghi định thời • • Giả định biết trước thời gian trễ, XTAL = 11.0592 MHz Làm sao tính... trễ cho 1.085 ms Thực hiện 65536 –n, với n (decimal) từ bước 1 Chuyển KQ trong bước 2 sang hex yyxx Set TH = yy và TL = xx Xung & Hoi 34 Bài toán 10.4 Tạo sóng vuông theo f cho sẵn EXTAL = 11.0592 MHz, vi t chương trình tạo sóng vuông 50 Hz trên chân P2.3 Giải đáp: (a) T = 1 / 50 Hz = 20 ms (b) Thời gian mức cao = Thời gian mức thấp = 10 ms (c) 10 ms / 1.085 ms = 9216 65536 – 9216 = 56320 in decimal . 0 (MSB)(LSB) Xung & Hoi10 GATE –GATE=0 • Điềukhiểnbêntrong(Internal control) •Bậthay tắttimer bằngphầnmềm •Timer đượcchophépkhiTR đượcset –GATE=1 • Điềukhiểnbênngoài(External control) •Bậthay. khôngdùng Timer 0, mode 2 C/T = 0 à dùngnguồnxungclock (Timer) GATE = 0 à điềukhiểnbằng phầnmềm Xung & Hoi14 10-3. Thanhghi điềukhiển địnhthờiTCON •Timer control register: TCON –½byte caochotimer/counter,. Hoi5 CácthanhghidùngtruyxuấtTimer/Counter •TH0, TL0, TH1, TL1 •TMOD thanhghichếđộđịnhthời(Timer mode register) •TCON thanhghi điềukhiển địnhthời(Timer control register) •8052 với3 timers/counters sẽ cóthêmcácthanhghiT2CON