Microcontroller 8051 - Phần 2: Microprocessors course

Chia sẻ: Hoang Cuong | Ngày: | Loại File: PPT | Số trang:101

0
149
lượt xem
68
download

Microcontroller 8051 - Phần 2: Microprocessors course

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Nội dung: Lập trình I/O, xử lý bit; Tạo trễ bằng phần mềm và tính toán thời gian trễ; Lập trình Timer/Counter; Lập trình ngắt; Cổng nối tiếp

Chủ đề:
Lưu

Nội dung Text: Microcontroller 8051 - Phần 2: Microprocessors course

  1. • Phân 2 ̀ Microprocessors course Pham Thế Duy ̣ (phamtheduy@gmail.com)
  2. ̣ Nôi dung: Lâp trinh I/O, xử lý bit ̣ ̀ Tao trễ băng phân mêm và tinh toan ̣ ̀ ̀ ̀ ́ ́ thời gian trê. ̃ ̣ ̀ Lâp trinh Timer/Counter -Timers - Counters ̣ Lâp trinh ngăt ̀ ́ ̉ Công nôi tiêp ́ ́
  3. Lâp trinh xử lý bit I/O ̣ ̀ • Lât trang thai cac bit P1 có thể thực hiên băng 3 cach: ̣ ̣ ́ ́ ̣ ̀ ́ • Cach 1: gởi dữ liêu ra P1 băng ACC ̀ ́ ̣ ̀ BACK: MOV A,#55H ;A=01010101B MOV P1,A ACALL DELAY MOV A,#0AAH ;A=10101010B MOV P1,A ACALL DELAY SJMP BACK • Cach 2: Truy câp trực tiêp P1 ́ ́ ̣ ́ BACK: MOV P1,#55H ;P1=01010101B ACALL DELAY MOV P1,#0AAH ;P1=10101010B ACALL DELAY SJMP BACK • Sử dung đăc tinh Read-modify-write: ̣ ̣ ́ MOV P1,#55H ;P1=01010101B AGAIN: XRL P1,#0FFH ACALL DELAY SJMP AGAIN – Lênh XRL P1,#0FFH thực hiên phep toan EX-OR P1 và FFH ̀ lam lât trang thai P1. ́ ̣ ̣ ́ ́ ̀ ̣ ̣ ́
  4. Xử lý BIT • Đôi khi cân truy câp chỉ 1 hoăc 2 bit cua môt công 8 bit ̀ ̣ ̣ ̉ ̣ ̉ • Bang mô tả tên cac chân cua cac công.  ̉ ́ ̉ ́ ̉ • Ví du: ̣ Viêt chương trinh thực hiên cac công viêc sau:. ́ ̀ ̣ ́ ̣ (a) Giam sat ngõ vao P1.2 cho đên khi găp mức cao. ́ ́ ̀ ́ ̣ (b) Khi P1.2 mức cao, ghi giá trị 45H tới P0 và (c) Tao 1 xung (H-to-L) trên đường P2.3. ̣ ̉ Giai: SETB P1.2 ;khởi đông P1.2 là ngõ vao ̣ ̀ MOV A,#45H ;A=45H AGAIN: JNB P1.2,AGAIN ;ngưng lăp khi P1.2=1 ̣ MOV P0,A ;gởi A tới P0 SETB P2.3 ; P2.3 = 1 CLR P2.3 ; P2.3 =0 Chú ý ́ 1. JNB: nhay nêu bit băng 0 ̀ nhay nêu P1.2 = 0 ́   ̉ ́ ̀ ̉ ́ 2. Trang thai xung H-to-L tao ra băng cac lênh SETB và CLR. ̣ ́ ̣ ̀ ́ ̣
  5. Đia chỉ bit cua cac công ̣ ̉ ́ ̉ P0 P1 P2 P3 Port Bit P0.0 P1.0 P2.0 P3.0 D0 P0.1 P1.1 P2.1 P3.1 D1 P0.2 P1.2 P2.2 P3.2 D2 P0.3 P1.3 P2.3 P3.3 D3 P0.4 P1.4 P2.4 P3.4 D4 P0.5 P1.5 P2.5 P3.5 D5 P0.6 P1.6 P2.6 P3.6 D6 P0.7 P1.7 P2.7 P3.7 D7 
  6. Tao trễ băng lênh và tinh toan thời gian trễ ̣ ̀ ̣ ́ ́ • Chu kỳ may (Machine cycle) ́ • Để CPU thực hiên xong môt lênh cân tôn môt số chu kỳ clock ̣ ̣ ̣ ̀ ́ ̣ nhât đinh (tuỳ theo từng lênh). Trong cac hệ thông họ 8051 12 ́ ̣ ̣ ́ ́ chu kỳ clock thực hiên môt tac vụ trong lênh được goi là môt ̣ ̣ ́ ̣ ̣ ̣ Chu kỳ may (machine cycles). ́ • Tân số thach anh dao đông cho họ 8051 có thể thay đôi từ ̀ ̣ ̣ ̉ 4MHz tới 30 MHz (tuỳ thuôc và từng loai Chip cụ thê). Cac hệ ̣ ̣ ̉ ́ thông 8051 thông dung thường sử dug thach anh 11.0592 MHz, ́ ̣ ̣ ̣ để tôc độ công nôi tiêp cua 8051 tương thich với tôc độ công ́ ̉ ́ ́ ̉ ́ ́ ̉ ́ ́ ̉ ́ ́ nôi tiêp cua may tinh PC. • Trong 8051, môt machine cycle chiêm 12 chu kỳ tân số dao ̣ ́ ̀ ̣ ̣ đông thach anh.
  7. Ví dụ: Tim thời gian thực hiên chương trinh con sau, giả sử hệ thông chay với ̀ ̣ ̀ ́ ̣ tân số thach anh 11.0592 MHz ̀ ̣ DELAY: MOV R3,#250 ; 1 MC HERE: NOP ; 1 MC NOP ; 1 MC NOP ; 1 MC NOP ; 1 MC DJNZ R3,HERE ; 2 MC RET ; 1 MC ̉ Giai: [250x(1+1+1+1+2)+2]x1.085 us=1627.5 us
  8. ̣ ̀ Lâp trinh Timers /Counters • 8051 có 2 timers/counters: timer/counter 0 và timer/ counter 1. Chung có thể sử dung như: ́ ̣ 1. Môt timer để tao ra môt khoang thời gian trê. ̣ ̣ ̣ ̉ ̃ – Nguôn clock cung câp cho bộ đêm được lây từ bộ dao ̀ ́ ́ ́ ̣ ̣ đông thach anh bên trong 8051. ̣ 2. Môt counter. – Nguôn clock được câp từ bên ngoai (External input) ̀ ́ ̀ đăc trưng cho số sự kiên và thanh ghi bên trong sẽ chứa ̣ ̣ kêt quả đêm được. ́ ́ – Ví du: Số xung cung câp cho bộ đêm có thể tương ứng với ̣ ́ ́ số người đi qua môt công, hoăc số vong quay củ môt banh ̣ ̉ ̣ ̀ ̣ ́ xe, hoăc môt sự kiên nao đó có thể tao thanh xung. ̣ ̣ ̣ ̀ ̣ ̀
  9. 10
  10. Timer • Khởi đông giá trị cho cac thanh ghi ̣ ́ • ́ ́ ̀ Cho phep Timer băt đâu đêm lên. ́ • Clock được lây từ bên trong (băng 1 machine cycle) ́ ̀ • Khi thanh ghi đêm đăt giá trị cực đai, thêm 1 clock sẽ ́ ̣ ̣ quay về 0, 8051 Lâp môt bit để thông bao hêt thời ̣ ̣ ́ ́ gian. P2 P1 to Set LCD Timer 0 TH0 TL0 8051
  11. Counter • Đêm số sự kiên xay ra ́ ̣ ̉ – Giữ số sự kiên đêm được trong thanh ghi đêm. ̣ ́ ́ – Chân T0 (P3.4) sử dung lam ngõ vao cho Counter 0 ̣ ̀ ̀ – Chân T1 (P3.5) sử dung lam ngõ vao cho Counter 1 ̣ ̀ ̀ 8051 TH0 P1 to TL0 LCD P3.4 ̣ ́ Môt công tăc T0
  12. Cac thanh ghi sử dung cho Timer/Counter ́ ̣ • TH0, TL0, TH1, TL1 • TMOD (Thanh ghi chế độ – Timer Mode) • ̀ ̉ TCON (Thanh ghi điêu khiên – Timer Control) • Do 8052 có 3 timers/counters, nên câu tao cac thanh ́ ́ ̣ ́ ghi TMOD và TCON sẽ khac. ́ – T2CON (Timer 2 control register), TH2 và TL2 chỉ sử dung ̣ cho 8052.
  13. ́ ́ ̉ Cac thanh ghi đêm cua Timer • Cả hai timer 0 và timer 1 đêu có cac thanh ghi đêm 16 ̀ ́ ́ bit. – Cac thanh ghi nay chứa: ́ ̀ • Thời gian trễ khi sử dung Timer. ̣ • Số sự kiên đêm được khi sử dung 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 – Cac thanh ghi 16-bit nay có thể truy câp phân cao và thâp ́ ̀ ̣ ̀ ́ ̣ ́ ̃ môt cach riêng re.
  14. ́ Cac thanh ghi Timer TH0 TL0 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 Timer 0 TH1 TL1 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 Timer 1
  15. Thanh ghi TMOD • Thanh ghi chế độ Timer: TMOD MOV TMOD,#21H – Là thanh ghi 8-bit. – Sử dung để khởi đông chế độ lam viêc cho cả hai Timer ̣ ̣ ̀ ̣ • 4 bits thâp khởi đông Timer 0 (cho băng 0000 nêu không sử ́ ̣ ̀ ̀ ̣ dung) • 4 bits cao khởi đông Timer 1 (cho băng 0000 nêu không sử ̣ ̀ ̀ ̣ dung) (MSB) – Không được đia chỉ hoá theo bit. ̣ (LSB) GATE C/T M1 M0 GATE C/T M1 M0 Timer 1 Timer 0
  16. ́ Cac bit thanh ghi TMOD GATE Khi bit nay = 1 Timer/counter chỉ được cho phep khi đông ̀ ́ ̀ thời INTx và TRx băng 1. Khi bit nay được xoá Timer ̀ ̀ được cho phep khi bit TRx được lâp. ́ ̣ C/T Khi bit nay băng 0, sử dung Timer (lây clock từ bên ̀ ̀ ̣ ́ trong). Khi bit nay được lâp = 1, sử dung counter (nguôn ̀ ̣ ̣ ̀ clock lây từ bên ngoai). ́ ̀ M1 Bit chế độ 1 M0 Bit chế độ 0 (MSB) (LSB) GATE C/T M1 M0 GATE C/T M1 M0 Timer 1 Timer 0
  17. C/T (Clock/Timer) • Bit nay sử dung để chon chế độ tao thời gian trễ ̀ ̣ ̣ ̣ (Timer) hoăc chế độ đêm sự kiên (Counter) ̣ ́ ̣ • C/T = 0 : timer • C/T = 1 : counter Bộ tao dao đông nôi ̣ ̣ ̣ ÷ 12 Timer Clock Tx C/T Sơ đồ cung câp xung nhip cho timer ́ ̣
  18. Gate • Chon cho phep chay và dừng Timer ở trong hay ̣ ́ ̣ ̀ ngoai. – GATE=0 • Điêu khiên bên trong. ̀ ̉ • Cho phep chay và dừng Timer băng lênh phân mêm. ́ ̣ ̀ ̣ ̀ ̀ • Lâp xoá bit TR để cho phep chay/dừng Timer. ̣ ́ ̣ – GATE=1 • Điêu khiên từ bên ngoai ̀ ̉ ̀ • Cho phep chay/dừng Timer băng lênh và tin hiêu phân cứng cung ́ ̣ ̀ ̣ ́ ̣ ̀ câp từ bên ngoai. ́ ̀ • Timer/counter được cho phep chỉ khi TR = 1 và ngõ vao INT = 1. ́ ̀
  19. 20

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản