B ảng 2.4: Tóm tắc các lệnh trong vi xử lý
2.4.1. Chế độ và hoạt động thanh gh
- Trong 8051 có 4 chếđộ Timer/counter có 2 C/T thanh ghi TMOD ở địa chỉ byte 89H quyết định chếđộ Timer/counter.
GATE1 C/T M1 M0 GATE0 C/T M1 M0 Timer/Counter 1 Timer/Counter 0
Các chếđộ chọn C/T từ M1, M0
M1 M0 Modul Chếđộ hoạt động
0 0 0 Bộđịnh thời 13 bit (8bitC/T và 5bit đặt trước) 0 1 1 Bộ dịnh thời 16bit không đặt trước không tự nạp lại 1 0 2 Bộđịnh thời 8bit tự nạp lại
1 1 3 Chếđộđịnh thời chia tách
C/T=1/0 bit này =1 chếđộ chọn là Counter, bit này =0 chếđộ là Timer
GATE1=1/0 hoạt động theo điều khiển ngoài (INT1=1)/ theo điều khiển trong không phụ thuộc INT1
GATE0=1/0 hoạt động theo đk ngoài (INT0)/ đk trong không phụ thuộc INT0
Ví dụ: MOV TMOD, #01H(0000 0001B) ; chỉ có bit M0 nhận 1 nên ta có bộ Timer 0 Modul 1 16bỉt không tự nạp lại
0000 0000 ;hoạt động đk trong, Timer0, chếđộ 0 (13bit) 0000 0001 ;hoạt động đk trong, Timer0, chếđộ 1 (16bit)
0000 0010 ;hoạt động đk trong, Timer0, chếđộ 2 (8bit tự nạp lại) 0000 0011 ;hoạt động đk trong, Timer0, chếđộ 3 (chia tách) 0000 0100 ;hoạt động đk trong, Counter0, chếđộ 0
0000 0101(0110/0111) ;hoạt động đk trong, Counter0, chếđộ 1(2/3)
0000 1000(1001/1010/1011) ;hoạt động ngoài INT0, Timer0, chếđộ 0 (1/2/3) 0000 1100(1101/1110/1111) ;hoạt động ngoài INT0,Coumter0,chếđộ 0(1/2/3) 0001(0010/0011) 0000(0001/0010/0011) ;hoạt động trong, Timer1, chế độ 1(2/3), Timer0 chếđộ (1/2/3)
0001(0010/0011) 0100(0101/0110/0111) ;hoạt động trong, Timer1, chế độ 1(2/3) và Counter0, chếđộ 0(1/2/3)
0001(0010/0011) 1000(1001/1010/1011) ;hoạt động trong,Timer1, chếđộ 1(2/3) và hoạt động ngoài INT0 Timer0 chếđộ 0(1/2/3)
0001(0010/0011) 1100(1101/1110/1111) ;hoạt động trong, Timer1 chếđộ 1(2/3) và hoạt động ngoài INT0, Counter0 chếđộ 0(1/2/3)
0100(0101/0110/0111) xxxx ;hoạt động trong Counter1 chếđộ 0(1/2/3) và x 1000(1001/1010/1011) xxxx ;hoạt động ngoài INT1, Timer1, chếđộ 0(1/2/3) và x 1100(1101/1110/1111) xxxx ;hoạt động ngoài INT1, Counter1, chếđộ 0(1/2/3) Thanh ghi TCON có địa chỉ byte 88H
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
Counter1/Timer1 Counter0/Timer0
TF1 Cờ báo tràn TF1/TF0 =1 khi xung đến thanh ghi TH1/TH0, TL1/TL0 từ 0000H đến FFFFH đối với chếđộ1(16 bit) hoặc thanh ghi TL1/TL0 đếm từ 00H đến FFH đối với chế độ2 (8bit)
TR1 TR0 bắt đầu cho Timer/Counter hoạt động hay dừng