Vi điều khiển 89S52 có bộ nhớ trong gồm hai bộ nhớ là bộ nhớ chương trình và bộ nhớ dữ liệu.
a) Bộ nhớ chương trình (bộ nhớ ROM)
Bộ nhớ ROM có khả năng lưu trữ chương trình do người lập trình viết ra. Trong đó chương trình là nơi tập hợp các câu lệnh được biểu diễn thơng qua các thuật tốn với mục đích giải quyết các cơng việc cụ thể. Các chương trình này sẽ được lưu trong ROM. Khi hoạt động, vi điều khiển sẽ truy suất từng câu lệnh trong ROM để thực hiện chương trình. Ngồi ra ROM cịn lưu trữ số liệu của bảng, tham số, và các dữ liệu cố định. Trong quá trình thực hiện ROM chỉ thay đổi nội dung khi ở chế độ xóa hoặc nạp chương trình, cịn đâu nội dung ROM ln ln cố định, không thay đổi.
Bộ nhớ của 89S52 gồm 8Kbyte FlashROM. Khi chân số 31 (tức là chân /EA) đang ở mức logic 1, thì vi điều khiển sẽ cho chạy chương trình trong bộ nhớ, với địa chỉ đầu tiên là 0000H. Bộ nhớ này có thể lập trình khoảng 1000 lần. Nếu chân số 31 của vi điều khiển 89S52 ở mức logic 0, lúc này bộ nhớ trongchương trình sẽ giao tiếp với bộ nhớ ngồi.
b) Bộ nhớ dữ liệu (bộ nhớ RAM)
Bộ nhớ RAM là môi trường cho việc xử lý thông tin, là nơi lưu trữ các kết quả trung gian và kết quả cuối cùng của thuật tốn. Ngồi ra RAM cịn có khả năng tổ chức vùng đệm dữ liệu trong các bước thu phát, biến đổi dữ liệu. Các byte RAM có 8bit của vi điều khiển gọi là ơ nhớ, với các ơ nhớ có chức năng đặc biệt gọi là thanh ghi, nếu là bit thì gọi là bit nhớ.
Ở vi điều khiển dùng 89S52 bộ nhớ dữ liệu được đọc và ghi qua 2 tín hiệu /RD và /WR. Chúng được phân chia như sau:
00H đến 1FH: đây là 32 byte thấp trong bộ nhớ nội. Bộ lệnh 8951 hỗ trợ 8 thanh ghi R0 –R7 được mặc định khi reset hệ thống với địa chỉ từ 00H-07H. Mỗi lần truy xuất thanh ghi R0-R7 chỉ thực hiện được một bank thanh ghi. Bộ nhớ dữ liệu hóa địa chỉ từ 20H đến 2FH. Các bit có thể xóa bằng 1 lệnh đơn thơng qua phần mềm. Ở đây 89S52 có 128bit được chứa trong các byte xác định địa chỉ.
Vi điều khiển 89S52 gồm 21 thanh ghi chức năng đặc biệt từ 80H đến FFH ở trên vùng RAM nội.
Thanh ghi trạng thái chương trình
Bảng 2.2: Thanh ghi trạng thái chương trình Bit Ký hiệu Địa chỉ Ý nghĩa
PSW.7 CY D7H Cờ nhớ được sử dụng trong lệnh toán học
PSW.6 AC D6H Cờ nhớ phụ PSW.5 F0 D5H Cờ 0
PSW.4 RS1 D4H Bit 1 chọn bank thanh ghi PSW.3 RS0 D3H Bit 0 chọn bank thanh ghi
00=bank 0 địa chỉ: 0H 07H 01=bank 1 địa chỉ: 08H 0FH 10=bank 2 địa chỉ: 10H 1FH 11=bank 3 địa chỉ: 18H 1FH PSW.2 0V D2H Cờ tràn dùng trong phép tốn cộng có dấu PSW.1 - D1H Dữ trữ PSW.0 P D0H Cờ chẵn lẻ dùng để xử lý dữ liệu
nối tiếp