2.7.2.1. Bộ nhớ chương trỡnh nội trỳ
Bộ nhớ chương trỡnh của AT89C51 được tổ chức như thể hiện ở hỡnh trờn. Khụng gian nhớ cực đại của bộ nhớ này chiếm 64 Kbyte, được định địa chỉ từ 0000h đến FFFFh, trong đú cú 4 Kbyte Flash nội trỳ bờn trong nú và được định địa chỉ từ 0000h đến 0FFFh. Do đú cú thể mở rộng thờm 60 Kbyte bộ nhớ chương trỡnh bờn ngoài, được định địa chỉ từ 1000h đến FFFFh. Tuy nhiờn bộ VĐK này cũng cú thể sử dung toàn bộ bộ nhớ chương trỡnh ngoài bao gồm 64 Kbyte được định địa chỉ từ 0000h đến FFFFh.
Cũng từ hỡnh trờn ta thấy, thụng qua việc chọn mức logic cho bit /EA cú thể lựa chọn để truy cập bộ nhớ chương trỡnh nội trỳ (4Kb), bộ nhớ chương trỡnh mở rộng ngoại trỳ (60Kb), hoặc toàn bộ bộ nhớ chương trỡnh ngoại trỳ bờn ngoài On-chip (64Kb). Cụ thể, khi
/EA = 1 thỡ bộ VĐK sử dụng cả bộ nhớ chương trỡnh nội trỳ và ngoại trỳ. Ngược lại, khi /EA = 0 thỡ bộ VĐK chỉ sử dụng bộ nhớ chương trỡnh ngoại trỳ.
Mỗi khi được Reset, bộ VĐK sẽ truy cập bộ nhớ chương trỡnh tại địa chỉ khởi đầu là 0000h, sau đú nếu cơ chế ngắt được sử dụng thỡ nú sẽ truy cập tới địa chỉ quy định trong bảng vecter ngắt.
Khi truy cập bộ nhớ chương trỡnh, bộ VĐK sử dụng xung chọn /PSEN để điều khiển. Nếu on-chip làm việc với bộ nhớ chương trỡnh nội trỳ thỡ chõn phỏt ra xung chọn /PSEN khụng sử dụng. Nếu bộ VĐK làm việc với bộ nhớ chương trỡnh ngoại trỳ thỡ chõn phỏt ra xung chọn /PSEN được sử dụng. Khi đú nếu /PSEN = 0 thỡ cho phộp bộ VĐK đọc bộ nhớ chương trỡnh ngoài, ngược lại nếu /PSEN = 1 thỡ bộ VĐK chỉ làm việc với bộ nhớ chương trỡnh nội trỳ.