Tải bản đầy đủ (.docx) (134 trang)

Giới thiệu họ vi điều khiển 8051

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.76 MB, 134 trang )

Giới thiệu họ Vi điều khiển 8051
Nội dung trong bài này:
Phần I: chúng ta sẽ xem xét một số thành viên khác nhau của họ bộ vi điều
khiển 8051 và các đặc điểm bên trong của chúng. Đồng thời ta điểm qua một số nhà
sản xuất khác nhau và các sản phẩm của họ có trên thị trường.
Phần II: Giới thiệu Kiến trúc Vi điều khiển 8051.
I - Tổng quan về họ 8051
1.1 Tóm tắt về lịch sử của 8051
Vào năm 1981. Hãng Intel giới thiệu một số bộ vi điều khiển được gọi là 8051.
Bộ vi điều khiển này có 128 byte RAM, 4K byte ROM trên chíp, hai bộ định thời,
một cổng nối tiếp và 4 cổng (đều rộng 8 bit) vào ra tất cả được đặt trên một chíp.
Lúc ấy nó được coi là một “hệ thống trên chíp”. 8051 là một bộ xử lý 8 bit có nghĩa
là CPU chỉ có thể làm việc với 8 bit dữ liệu tại một thời điểm. Dữ liệu lớn hơn 8 bit
được chia ra thành các dữ liệu 8 bit để cho xử lý. 8051 có tất cả 4 cổng vào - ra I/O
mỗi cổng rộng 8 bit (xem hình 1). Mặc dù 8051 có thể có một ROM trên chíp cực đại
là 64 K byte, nhưng các nhà sản xuất lúc đó đã cho xuất xưởng chỉ với 4K byte
ROM trên chíp. Điều này sẽ được bàn chi tiết hơn sau này.
8051 đã trở nên phổ biến sau khi Intel cho phép các nhà sản xuất khác sản
xuất và bán bất kỳ dạng biến thế nào của 8051 mà họ thích với điều kiện họ phải để
mã lại tương thích với 8051. Điều này dẫn đến sự ra đời nhiều phiên bản của 8051
với các tốc độ khác nhau và dung lượng ROM trên chíp khác nhau được bán bởi
hơn nửa các nhà sản xuất. Điều này quan trọng là mặc dù có nhiều biến thể khác
nhau của 8051 về tốc độ và dung lương nhớ ROM trên chíp, nhưng tất cả chúng đều
tương thích với 8051 ban đầu về các lệnh. Điều này có nghĩa là nếu ta viết chương
trình của mình cho một phiên bản nào đó thì nó cũng sẽ chạy với mọi phiên bản bất
kỳ khác mà không phân biệt nó từ hãng sản xuất nào.
Đặc tính Số lượng
ROM trên chíp
RAM
Bộ định thời
Các chân vào - ra


4K byte
128 byte
2
32
Cổng nối tiếp
Nguồn ngắt
1
6
Bảng 1: Các đặc tính cơ bản của 8051.
1.2 Bộ ví điều khiển 8051
Bộ vi điều khiển 8051 là thành viên đầu tiên của họ 8051. Hãng Intel ký hiệu nó
như là MCS51. Bảng 1 trình bày các đặc tính của 8051.
1.3 Các thành viên khác của họ 8051
Có hai bộ vi điều khiển thành viên khác của họ 8051 là 8052 và 8031.
a- Bộ vi điều khiển 8052
Bộ vi điều khiển 8052 là một thành viên khác của họ 8051, 8052 có tất cả các
đặc tính chuẩn của 8051 ngoài ra nó có thêm 128 byte RAM và một bộ định thời
nữa. Hay nói cách khác là 8052 có 256 byte RAM và 3 bộ định thời. Nó cũng có 8K
byte ROM. Trên chíp thay vì 4K byte như 8051.
Đặc tính 8051 8052 8031
ROM trên chíp 4K byte 8K byte OK
RAM 128 byte 256 byte 128 byte
Bộ định thời 2 3 2
Chân vào ra 32 32 32
Cổng nối tiếp 1 1 1
Nguồn ngắt 6 8 6
Bảng 2: so sánh các đặc tính của các thành viên họ 8051.
Như nhìn thấy từ bảng 2 thì 8051 là tập con của 8052. Do vậy tất cả mọi
chương trình viết cho 8051 đều chạy trên 8052 nhưng điều ngược lại là không đúng.
b- Bộ vi điều khiển 8031

Một thành viên khác nữa của 8051 là chíp 8031. Chíp này thường được coi
như là 8051 không có ROM trên chíp vì nó có OK byte ROM trên chíp. Để sử dụng
chíp này ta phải bổ xung ROM ngoài cho nó. ROM ngoài phải chứa chương trình
mà 8031 sẽ nạp và thực hiện. So với 8051 mà chương trình được chứa trong ROM
trên chíp bị giới hạn bởi 4K byte, còn ROM ngoài chứa chương trinh được gắn vào
8031 thì có thể lớn đến 64K byte. Khi bổ xung cổng, như vậy chỉ còn lại 2 cổng để
thao tác. Để giải quyết vấn đề này ta có thể bổ xung cổng vào - ra cho 8031. Phối
phép 8031 với bộ nhớ và cổng vào - ra chẳng hạn với chíp 8255 được trình bày ở
chương 14. Ngoài ra còn có các phiên bản khác nhau về tốc độ của 8031 từ các hãng
sản xuất khác nhau.
1.4 Các bộ vi điều khiển 8051 từ các hãng khác nhau
Mặc dù 8051 là thành viên phổi biến nhất của họ 8051 nhưng chúng ta sẽ
thấy nó trong kho linh kiện. Đó là do 8051 có dưới nhiều dạng kiểu bộ nhớ khác
nhau như UV - PROM, Flash và NV - RAM mà chúng đều có số đăng ký linh kiện
khác nhau. Việc bàn luận về các kiểu dạng bộ nhớ ROM khác nhau sẽ được trình
bày ở chương 14. Phiên bản UV-PROM của 8051 là 8751. Phiên bản Flash ROM
được bán bởi nhiều hãng khác nhau chẳng hạn của Atmel corp với tên gọi là
AT89C51 còn phiên bản NV-RAM của 8051 do Dalas Semi Conductor cung cấp thì
được gọi là DS5000. Ngoài ra còn có phiên bản OTP (khả trình một lần) của 8051
được sản xuất bởi rất nhiều hãng.
a- Bộ vi điều khiển 8751
Chíp 8751 chỉ có 4K byte bộ nhớ UV-EPROM trên chíp. Để sử dụng chíp
này để phát triển yêu cầu truy cập đến một bộ đốt PROM cũng như bộ xoá UV-
EPROM để xoá nội dung của bộ nhớ UV-EPROM bên trong 8751 trước khi ta có
thể lập trình lại nó. Do một thực tế là ROM trên chíp đối với 8751 là UV-EPROM
nên cần phải mất 20 phút để xoá 8751 trước khi nó có thể được lập trình trở lại.
Điều này đã dẫn đến nhiều nhà sản xuất giới thiệu các phiên bản Flash Rom và UV-
RAM của 8051. Ngoài ra còn có nhiều phiên bản với các tốc độ khác nhau của 8751
từ nhiều hãng khác nhau.
b- Bộ vi điều khiển AT8951 từ Atmel Corporation

Chíp 8051 phổ biến này có ROM trên chíp ở dạng bộ nhớ Flash. Điều này là
lý tưởng đối với những phát triển nhanh vì bộ nhớ Flash có thể được xoá trong vài
giây trong tương quan so với 20 phút hoặc hơn mà 8751 yêu cầu. Vì lý do này mà
AT89C51 để phát triển một hệ thống dựa trên bộ vi điều khiển yêu cầu một bộ đốt
ROM mà có hỗ trợ bộ nhớ Flash. Tuy nhiên lại không yêu cầu bộ xoá ROM. Lưu ý
rằng trong bộ nhớ Flash ta phải xoá toàn bộ nội dung của ROM nhằm để lập trình
lại cho nó. Việc xoá bộ nhớ Flash được thực hiện bởi chính bộ đốt PROM và đây
chính là lý do tại sao lại không cần đến bộ xoá. Để loại trừ nhu cầu đối với một bộ
đốt PROM hãng Atmel đang nghiên cứu một phiên bản của AT 89C51 có thể được
lập trình qua cổng truyền thông COM của máy tính IBM PC .
Số linh kiện ROM RAM
Chân I/O
Timer Ngắt Vcc Đóng
vỏ
AT89C51 4K 128 32 2 6 5V 40
AT89LV51 4K 128 32 2 6 3V 40
AT89C1051 1K 64 15 1 3 3V 20
AT89C2051 2K 128 15 2 6 3V 20
AT89C52 8K 128 32 3 8 5V 40
AT89LV52 8K 128 32 3 8 3V 40
Bảng 3: Các phiên bản của 8051 từ Atmel (Flash ROM).
Chữ C trong ký hiệu AT89C51 là CMOS.
Cũng có những phiên bản đóng vỏ và tốc độ khác nhau của những sản phẩm
trên đây. Xem bảng 1.6. Ví dụ để ý rằng chữ “C” đứng trước số 51 trong AT 89C51
-12PC là ký hiệu cho CMOS “12” ký hiệu cho 12 MHZ và “P” là kiểu đóng vỏ DIP
và chữ “C” cuối cùng là ký hiệu cho thương mại (ngược với chữ “M” là quân sự ).
Thông thường AT89C51 - 12PC rất lý tưởng cho các dự án của học sinh, sinh viên.
Mã linh kiện Tốc độ Số chân Đóng vỏ Mục đích
AT89C51-12PC 42MHZ 40 DTP Thương mại
Bảng 4: Các phiên bản 8051 với tốc độ khác nhau của Atmel.

c- Bộ vi điều khiển DS5000 từ hãng Dallas Semiconductor
Một phiên bản phổ biến khác nữa của 8051 là DS5000 của hãng Dallas
Semiconductor. Bộ nhớ ROM trên chíp của DS5000 ở dưới dạng NV-RAM. Khả
năng đọc/ ghi của nó cho phép chương trình được nạp vào ROM trên chíp trong khi
nó vẫn ở trong hệ thống (không cần phải lấy ra). Điều này còn có thể được thực hiện
thông qua cổng nối tiếp của máy tính IBM PC. Việc nạp chương trình trong hệ
thống (in-system) của DS5000 thông qua cổng nối tiếp của PC làm cho nó trở thành
một hệ thống phát triển tại chỗ lý tưởng. Một ưu việt của NV-RAM là khả năng
thay đổi nội dung của ROM theo từng byte tại một thời điểm. Điều này tương phản
với bộ nhớ Flash và EPROM mà bộ nhớ của chúng phải được xoá sạch trước khi
lập trình lại cho chúng.
Mã linh kiện ROM RAM Chân I/O Timer Ngắt Vcc Đóng vỏ
DS5000-8
DS5000-32
DS5000T-8
DS5000T-8
8K
32K
8K
32K
128
128
128
128
32
32
32
32
2
2

2
2
6
6
6
6
5V
5V
5V
5V
40
40
40
40
Bảng 5: Các phiên bản 8051 từ hãng Dallas Semiconductor.
Chữ “T” đứng sau 5000 là có đồng hồ thời gian thực.
Lưu ý rằng đồng hồ thời gian thực RTC là khác với bộ định thời Timer.
RTC tạo và giữ thời gian l phút giờ, ngày, tháng - năm kể cả khi tắt nguồn.
Còn có nhiều phiên bản DS5000 với những tốc độ và kiểu đóng gói khác
nhau.( Xem bảng 1.8). Ví dụ DS5000-8-8 có 8K NV-RAM và tốc đọ 8MHZ. Thông
thường DS5000-8-12 hoặc DS5000T-8-12 là lý tưởng đối với các dự án của sinh viên.
Mã linh kiện NV- RAM Tốc độ
DS5000-8-8
DS5000-8-12
DS5000-32-8
DS5000T-32-12
DS5000-32-12
DS5000-8-12
8K
8K

32K
32K
32K
8K
8MHz
12MHz
8MHz
8MHz (with RTC)
12MHz
12MHz (with RTC)
Bảng 6:Các phiên bản của DS5000 với các tốc độ khác nhau
d- Phiên bản OTP của 8051
Các phiên bản OTP của 8051 là các chíp 8051 có thể lập trình được một lần
và được cung cấp từ nhiều hãng sản xuất khác nhau. Các phiên bản Flash và NV-
RAM thường được dùng để phát triển sản phẩm mẫu. Khi một sản pohẩm được
thiết kế và được hoàn thiện tuyệt đối thì phiên bản OTP của 8051 được dùng để sản
hàng loạt vì nó rẻ hơn rất nhiều theo giá thành một đơn vị sản phẩm.
e- Họ 8051 từ Hãng Philips
Một nhà sản xuất chính của họ 8051 khác nữa là Philips Corporation. Thật
vậy, hãng này có một dải lựa chọn rộng lớn cho các bộ vi điều khiển họ 8051. Nhiều
sản phẩm của hãng đã có kèm theo các đặc tính như các bộ chuyển đổi ADC, DAC,
cổng I/0 mở rộng và cả các phiên bản OTP và Flash.
II - Giới thiệu Kiến trúc Vi điều khiển 8051
2.1 Tổ chức bộ nhớ
Các vi điều khiển thuộc họ 8051 đều tổ chức thành 2 không gian chương
trình và dữ liệu, hình 1 và hình 2 sẽ mô tả điều này. Kiến trúc vi xử lý 8 bit của 8051
này cho phép truy nhập và tính toán nhanh hơn đối với không gian dữ liệu nhờ việc
phân chia 2 không gian bộ nhớ chương trình và dữ liệu như trên. Tuy nhiên bộ nhớ
ngoài được truy nhập bởi hệ thống 16 bit địa chỉ vẫn có thể thực hiện nhờ thanh ghi
con trỏ.

Bộ nhớ chương trình (ROM, EPROM) là bộ nhớ chỉ đọc, có thể mở rộng tối đa
64Kbyte. Với họ vi điều khiển 89xx, bộ nhớ chương trình được tích hợp sẵn trong
chip có kích thước nhỏ nhất là 4kByte. Với các vi điều khiển không tích hợp sẵn bộ
nhớ chương trình trên chip, buộc phải thiết kế bộ nhớ chương trình bên ngoài. Ví
dụ sử dụng EPROM: 2764 (64Kbyte), khi đó chân PSEN phải ở mức tích cực (5V).
Hình 1:Cấu trúc vi điều khiển 89C51
Bộ nhớ dữ liệu (RAM) tồn tại độc lập so với bộ nhớ chương trình. Họ vi điều khiển
8051 có bộ nhớ dữ liệu tích hợp trên chip nhỏ nhất là 128byte và có thể mở rộng với
bộ nhớ dữ liệu ngoài lên tới 64kByte. Với những vi điều khiển không tích hợp ROM
trên chip thì vẫn có RAM trên chip là 128byte. Khi sử dụng RAM ngoài, CPU đọc
và ghi dữ liệu nhờ tín hiệu trên các chân RD và WR. Khi sử dụng cả bộ nhớ chương
trình và bộ nhớ dữ liệu bên ngoài thì buộc phải kết hợp chân RD và PSEN bởi cổng
logic AND để phân biệt tín hiệu truy xuất dữ liệu trên ROM hay RAM ngoài.
Bộ nhớ chương trình:
Hình 2: Cấu trúc bộ nhớ chương trình
Hình 3: Địa chỉ các ngắt trên bộ nhớ chương trình
Hình 2 mô tả cấu trúc bộ nhớ chương trình. Sau khi khởi động, CPU bắt đầu
thực hiện chương trình ở vị trí 0000H. Hình 3 mô tả địa chỉ ngắt mặc định trên bộ
nhớ chương trình. Mối khi xảy ra ngắt, con trỏ của CPU sẽ nhảy đến đúng địa chỉ
ngắt tương ứng và thực thi chương trình tại đó. Ví dụ ngắt ngoài 0 sẽ có địa chỉ là
0003H, khi xảy ra ngắt ngoài 0 thì con trỏ chương trình sẽ nhảy đến đúng địa chỉ
0003H để thực thi chương trình tại đó. Nếu trong chương trình ứng dụng không xử
dụng đến ngắt ngoài 0 thì địa chỉ 0003H vẫn có thể dùng cho mục đích khác (sử
dụng cho bộ nhớ chương trình).
Bộ nhớ dữ liệu:
Hình 4: Cấu trúc bộ nhớ dữ liệu
Hình 4 mô tả cấu trúc bộ nhớ dữ liệu trong và bộ nhớ dữ liệu ngoài của họ vi
điều khiển 8051. CPU sẽ dùng đến các chân RD và WR khi truy cập đến bộ nhớ dữ
liệu ngoài.
Hình 5 mô tả cấu trúc bộ nhớ dữ liệu trong chip, được chia thành 3 khối là

128 byte thấp, 128 byte cao và 128 byte đặc biệt.
Hình 5: Cấu trúc bộ nhớ trong
Hình 6 mô tả cấu trúc 128 byte thấp của bộ nhớ dữ liệu của họ vi điều khiển
8051. 32 byte đầu tiên (00H-1FH) được sử dụng cho 4 bộ 8 thanh ghi R0-R7. Hai bit
của thanh ghi đặc biệt PSW sẽ lựa chọn 1 trong 4 bộ thanh ghi mà vi điều khiển sẽ
dùng trong khi thực thi chương trình.
Hình 6: Cấu trúc 128 byte thấp của bộ nhớ dữ liệu trong
8051 chứa 210 vị trí bit được định địa chỉ trong đó 128 bit chứa trong
các byte ở địa chỉ từ 20H đến 2FH (16 byte x 8 bit = 128 bit) và phần còn lại chứa
trong các thanh ghi đặc biệt. Ngoài ra 8051 còn có các port xuất/nhập có thể định
địa chỉ từng bit, điều này làm đơn giản việc giao tiếp bằng phần mềm với các thiết bị
xuất/nhập đơn bit.
Vùng RAM đa mục đích có 80 byte đặt ở địa chỉ từ 30H đến 7FH, bên dưới
vùng này từ địa chỉ 00H đến 2FH là vùng nhớ có thể được sử dụng tương tự. Bất kỳ
vị trí nhớ nào trong vùng RAM đa mục đích đều có thể được truy xuất tự do bằng
cách sử dụng các kiểu định địa chỉ trực tiếp hoặc gián tiếp.
Bất kỳ vị trí nhớ nào trong vùng RAM đa mục đích đều có thể được truy
xuất tự do bằng cách sử dụng các kiểu định địa chỉ trực tiếp hoặc gián tiếp.
Cũng như các thanh ghi từ R0 đến R7, ta có 21 thanh ghi chức năng đặc biệt
SFR chiếm phần trên của Ram nội từ địa chỉ 80H đến FFH. Cần lưu ý là không phải
tất cả 128 địa chỉ từ 80H đến FFH đều được định nghĩa mà chỉ có 21 địa chỉ được
định nghĩa.
Hình 7: 128 byte cao của bộ nhớ dữ liệu
2.2 Các thanh ghi đặc biệt
8051 có 21 thanh ghi chức năng đặc biệt SFR chiếm phần trên của Ram nội
từ địa chỉ 80H đến FFH. Cần lưu ý là không phải tất cả 128 địa chỉ từ 80H đến FFH
đều được định nghĩa mà chỉ có 21 địa chỉ được định nghĩa. Hình 8 mô tả các thanh
ghi đặc biệt trong vùng nhớ dữ liệu 80H đến FFH và giá trị của chúng sau khi Reset.
Hình 8: Các thanh ghi đặc biệt
Thanh ghi chính:

Thanh ghi tính toán chính của vi điều khiển 8051 ACC (Accumulator). Là
thanh ghi đặc biệt của 8051 dùng để thực hiện các phép toán của CPU, thường kí
hiệu là A.
Thanh ghi phụ:
Thanh ghi tính toán phụ của vi điều khiển 8051 là B. Thanh ghi B ở địa chỉ
F0H được dùng chung với thanh chứa A trong các phép toán nhân, chia. Lệnh
MUL AB nhân 2 số 8 bit không dấu chứa trong A và B và chứa kết quả 16 bit vào
cặp thanh ghi B, A (thanh chứa A cất byte thấp và thanh ghi B cất byte cao).
Lệnh chia DIV AB chia A bởi B, thương số cất trong thanh chứa A và dư số
cất trong thanh ghi B. Thanh ghi B còn được xử lý như một thanh ghi nháp. Các bit
được định địa chỉ của thanh ghi B có địa chỉ từ F0H đến F7H.
Thanh ghi trạng thái chương trình (PSW):
Thanh ghi trạng thái chương trình PSW (địa chỉ: D0H) là thanh ghi mô tả
toàn bộ trạng thái chương trình đang hoạt động của hệ thống. Bảng 7 và Bảng 8 sẽ
mô tả thanh ghi này.
7 6 5 4 3 2 1 0
CY AC F0 RS1 RS0 OV - P
Bảng 7: Thanh ghi trạng thái chương trình PSW
Bit

Hiệu
Địa
Chỉ
Mô tả Bit
PSW.7 CY D7H
Cờ nhớ (Carry Flag): được Set nếu có Bit nhớ từ Bit
7 trong phép cộng hoặc có Bit mượn cho Bit 7 trong
phép trừ.
PSW.6 AC D6H
Cờ nhớ phụ: được Set trong phép cộng nếu có Bit

nhớ từ Bit 3 sang Bit 4 hoặc kết quả trong 4 Bit thấp
nằm trong khoảng 0AH->0FH.
PSW.5 FO D5H Cờ O: dành cho người sử dụng.
PSW.4 RS1 D4H Chọn dãy thanh ghi (Bit 1)
PSW.3 RS0 D3H
Chọn dãy thanh ghi (Bit 0)
00=Bank 0: Địa chỉ 00H->07H
01=Bank 1: Địa chỉ 08H->0FH
10=Bank 2: Địa chỉ 10H->17H
11=Bank 3: Địa chỉ 18H->1FH
PSW.2 OV D2H
Cờ tràn (Overflow Flag): được Set khi phép toán có
dấu có kết quả > +127 hoặc < -128.
PSW.1 - D1H Chưa dùng
PSW.0 P D0H
Cờ kiểm tra chẵn lẻ: được Set hoặc Clear bởi phần
cứng sau mỗi 1 chu kỳ lệnh, để chỉ ra rằng có 1 số
chẵn hoặc số lẻ Bit 1 trong thanh chứa.
Bảng 8: Chi tiết các bit trong thanh ghi PSW
Thanh ghi ngăn xếp (Stack Pointer):
Con trỏ stack SP (stack pointer) là 1 thanh ghi 8 bit ở địa chỉ 81H. SP chứa
địa chỉ của dữ liệu hiện đang ở đỉnh của stack. Các lệnh liên quan đến satck bao
gồm lệnh cất dữ liệu vào stack và lệnh lấy dữ liệu ra khỏi stack. Việc cất vào stack
làm tăng SP trước khi ghi dữ liệu và việc lấy dữ liệu ra khỏi stack sẽ giảm SP. Vùng
stack của 8051 được giữ trong RAM nội và được giới hạn đến các địa chỉ truy xuất
được bởi kiểu định địa chỉ gián tiếp. Các lệnh PUSH và POP sẽ cất dữ liệu vào stack
và lấy dữ liệu từ stack, các lệnh gọi chương trình con (ACALL, LCALL) và lệnh trở
về (RET, RETI) cũng cất và phục hồi nội dung của bộ đếm chương trình PC
(Program counter)
Con trỏ dữ liệu DPTR:

Con trỏ dữ liệu DPTR (data pointer) được dùng để truy xuất bộ nhớ chương
trình ngoài hoặc bộ nhớ dữ liệu ngoài. DPTR là một thanh ghi 16 bit có địa chỉ là
82H (DPL, byte thấp) và 83H (DPH, byte cao).
Thanh ghi các cổng P0-P3:
Các port xuất/nhập của 8051 bao gồm Port 0 tại địa chỉ 80H, Port 1 tại địa
chỉ 90H, Port 2 tại địa chỉ A0H và Port 3 tại địa chỉ B0H. Tất cả các port đều được
định địa chỉ từng bit nhằm cung cấp các khả năng giao tiếp mạnh.
Thanh ghi bộ đệm truyền thông nối tiếp (Serial Data Buffer):
Bộ đệm truyền thông được chia thành hai bộ đệm, bộ đệm truyền dữ liệu và
bộ đệm nhận dữ liệu. Khi dữ liệu được chuyển vào thanh ghi SBUF, dữ liệu sẽ được
chuyển vào bộ đệm truyền dữ liệu và sẽ được lưu giữ ở đó cho đến khi quá trình
truyền dữ liệu qua truyền thông nối tiếp kết thúc. Khi thực hiện việc chuyển dữ liệu
từ SBUF ra ngoài, dữ liệu sẽ được lấy từ bộ đệm nhận dữ liệu của truyền thông nối
tiếp.
Thanh ghi của bộ định thời/bộ đếm:
8051 có 2 bộ đếm/định thời (counter/timer) 16 bit để định các khoảng thời
gian hoặc để đếm các sự kiện. Các cặp thanh ghi (TH0, TL0) và (TH1, TL1) là các
thanh ghi của bộ đếm thời gian. Bộ định thời 0 có địa chỉ 8AH (TL0, byte thấp) và
8CH (TH0, byte cao). Bộ định thời 1 có địa chỉ 8BH (TL1, byte thấp) và 8DH (TH1,
byte cao).
Hoạt động của bộ định thời được thiết lập bởi thanh ghi chế độ định thời
TMOD (Timer Mode Register) ở địa chỉ 88H. Chỉ có TCON được định địa chỉ từng
bit.
Các thanh ghi điều khiển:
Các thanh ghi điều khiển đặc biệt như IP, IE, TMOD, TCON, SCON và
PCON là các thanh ghi điều khiển và ghi nhận trạng thái của hệ thống ngắt, bộ
đếm/định thời, truyền thông nối tiếp. Chi tiết của các thanh ghi này sẽ được mô tả
sau.
Bài 2 - Hướng Dẫn Sử Dụng Keil C Lập Trình 8051
Nội dung trong bài này:

Phần I- Download, cài đặt Keil C uVision3 Full cho 8051.
Phần II - Hướng dẫn tạo 1 Project trong Keil C, biên dịch và nạp chương
trình cho 8051.
I – Cài đặt Keil C uVision3
Tải file hướng dẫn cài đặt, crack Keil C uVision3 ở dưới và làm theo hướng dẫn.
Keil C uVision3 8.05 Full.
II – Các bước tạo Project
Ta thực hiện 6 bước:
1.Tạo mới 1 project.
2.Tạo File.C.
3.Add File.C vào Project.
4.Biên dịch và tạo File Hex.
5.Gỡ lỗi chương trình (nếu có).
6.Nạp chương trình cho Vi điều khiển.
1. 1. Tạo mới 1 Project
Chạy chương trình Keil C:
Vào Project->New Project:
Chọn đường dẫn để lưu và đặt tên cho project:
Sau đó ấn Save.
Tiếp theo ta chọn loại Chip: ở đây ta lựa chọn Atmel->chọn AT89C51
Ấn Yes và ta đã hoàn thành bước 1 – tạo 1 project mới.
2. 2. Tạo File.C
Tiếp theo ta cần tạo 1 File.C để viết chương trình cho Chip lên file đó.
Vào File->New:
Sau đó chọn Save:
Chọn đường dẫn vào cùng thư mục với Project vừa tạo ở bước 1. Sau đó đặt tên, với
phần đuôi mở rộng là .C:

×