Vi điều khiển MCU-viết tắt của cụm từ ‘Micro Control Unit’ có thể được coi như một máy tính thu nhỏ trên một chíp, nó còn có thể hoạt động với một vài linh kiện phụ trợ ở bên ngoài, sau
Trang 1Giáo viên hướng dẫn : Hoàng Văn Quang Sinh viên thực hiện : Tường Thị Thu Hằng
Trang 2MỤC LỤC
Contents
MỤC LỤC 1
DANH SÁCH HÌNH VẼ 3
DANH SÁCH BẢNG BIỂU 4
LỜI MỞ ĐẦU 5
CHƯƠNG 1 TỔNG QUAN VỀ VI ĐIỀU KHIỂN 7
1.1 Khái quát về vi điều khiển 7
1.1.1 Kiến trúc vi điều khiển 7
1.1.2 Tập lệnh 8
1.1.3 Chức năng 8
1 2 Các bộ vi điều khiển 9
1.2.1 Các bộ vi điều khiển và các bộ xử lý nhúng 9
1.2.2 Định nghĩa bộ vi xử lý 9
1.2.3 Các bộ vi điều khiển cho hệ thống nhúng 10
1.2.4 Các ứng dụng nhúng của PC86 12
1.2.5 Lựa chọn một bộ vi điều khiển 12
1.3 Tìm hiểu chung về họ 8051 13
1.3.1 Cấu trúc bus 13
1.3.2 Bộ nhớ chương trình 13
1.3.3 Bộ nhớ dữ liệu 14
1.4 Họ vi điều khiển 8051 14
1.4.1 Tóm tắt về lịch sử của 8051 14
1.4.2 Đặc tính vi điều khiển 8051 15
1.4.3 Sơ đồ khối chung của họ vi điều khiển 8051 16
1.4.4 Thành viên họ vi điều khiển 8051 17
1.5 Các họ vi điều khiển khác 22
1.5.1 Họ vi điều khiển AMCC 22
1.5.2 Họ vi điều khiển Cypress MicroSystems 22
1.5.3 Họ vi điều khiển Freescale Semiconductor 23
1.5.4 Họ vi điều khiển Fujitsu 23
1.5.5 Họ vi điều khiển Intel 23
1.5.6 Họ vi điều khiển Microchip 24
1.5.7 Họ vi điều khiển National Semiconductor 31
1.5.8 Họ vi điều khiển STMicroelectronics 31
1.5.9 Họ vi điều khiển Philips Semiconductors 31
CHƯƠNG 2 TÌM HIỂU VỀ VI ĐIỀU KHIỂN 89S52 32
Trang 32.1 Sơ đồ khối, sơ đồ chân của vi điều khiển 89S52 32
2.1.1 Giới thiệu sơ lược 32
2.1.2 Cấu hình của 89S52 32
2.1.3 Sơ đồ khối 89S52 33
2.1.4 Sơ đồ chân 89S52 34
2.1.5 Chức năng các chân của AT89S52 34
2.2 Tổ chức bộ nhớ bên trong 89S52 39
2.3 Kết nối vi điều khiển với một số thiết bị ngoại vi đơn giản 48
2.3.1 VĐK giao tiếp led đơn và phím nhấn 48
2.3.2 Kết nối VĐK với Rơle 49
2.3.4 Kết nối VĐK với ma trận led 54
CHƯƠNG 3 CÁC LINH KIỆN LIÊN QUAN 55
3.1 Led 7 thanh 55
3.1.1 Các khái niệm cơ bản 55
3.1.2 Kết nối với vi điều khiển 56
3 2 Giới thiệu về IC ADC0804 57
3.2.1 Sơ đồ chân ADC0804 58
3.2.2 Chức năng các chân ADC0804 58
3.3 Giới thiệu về cảm biến LM35 61
3.3.1 Sơ đồ chân LM35 62
CHƯƠNG 4 THIẾT KẾ MÔ HÌNH 64
4.1 Lưu đồ thuật toán 64
4.3 Mạch nguyên lý và mạch in 66
4.3.1 Mạch nguyên lý 66
4.3.2 Mạch in 68
KẾT LUẬN 70
PHỤ LỤC 75
Trang 4DANH SÁCH HÌNH VẼ
Hình 1.1 Bố trí bên trong của sơ đồ khối 8051 16
Hình 1.2 Kiến trúc Havard và kiến trúc Von-Neuman 25
Hình 1.3 Cơ chế pipelining 27
Hình 2.1 Sơ đồ khối của bộ vi điều khiển AT89S52 33
Hình 2.2 Sơ đồ chân của AT89S52 34
Hình 2.3 Sơ đồ Port 0 35
Hình 2.4 Sơ đồ Port 1 35
Hình 2.5 Sơ đồ Port 2 36
Hình 2.6 Mạch reset 38
Hình 2.7 Mạch dao động 38
Hình 2.8 VĐK giao tiếp led đơn và phím nhấn 48
Hình 2.9 VĐK giao tiếp rơle-5V 49
Hình 2.10 VĐK giao tiếp phím nhấn và LCD 53
Hình 2.11 VĐK giao tiếp với ma trận led 54
Hình 3.1 Sơ đồ chân 7 SEG-COM-ANODE và hình ảnh minh họa 56
Hình 3.2 Sơ đồ chân ADC0804 58
Hình 3.3 Sơ đồ chân LM35 dạng TO-92 62
Hình 4.1 Lưu đồ thuật toán 66
Hình 4.2 Sơ đồ mạch nguyên lý 66
Hình 4.3 Sơ đồ mạch in 68
Trang 5DANH SÁCH BẢNG BIỂU
Bảng 1.1 Các đặc tính của 8051 đầu tiên 15
Bảng 1.2 So sánh các đặc tính của các thành viên họ 8051 17
Bảng 1.3 Các phiên bản của 8051 từ Atmel (Flash ROM) 19
Bảng 1.4 Các phiên bản 8051 với tốc độ khác nhau của Atmel 20
Bảng 1.5 Các phiên bản 8051 từ hãng Dallas Semiconductor 20
Bảng 2.1 Một số thành viên của họ 8051 21
Bảng 2.2 Các chức năng của Port 3 36
Bảng 2.3 Bit chọn Bank thanh ghi 42
Bảng 2.4 Bảng vector ngắt của 8051 44
Bảng 2.5 Thanh ghi cho phép ngắt IE 45
Bảng 2.6 Tóm tắt thanhh ghi chức năng TMOD 47
Bảng 1.13 Bảng mã của Led Anode chung (các led đơn sáng ở mức 0) 50
Bảng 1.14 Bảng mã của Led Cathode chung (các led đơn sáng ở mức 1) 51
Bảng 2.2 Quan hệ điện áp V ref/2 với Vin 61
Trang 6LỜI MỞ ĐẦU
Ngày nay, việc ứng dụng những thành tựu của khoa học kỹ thuật tiên tiến, thế giới của chúng ta đã và đang ngày một phát triển, văn minh và hiện đại hơn Sự phát triển của kỹ thuật điện tử đã tạo ra hàng loạt những thiết bị với các đặc điểm nổi bật như sự chính xác cao, tốc độ nhanh, gọn nhẹ là những yếu tố rất cần thiết góp phần cho hoạt động của con người đạt hiệu quả cao
Các bộ điều khiển sử dụng vi điều khiển tuy đơn giản nhưng để vận hành và
sử dụng được lại là một điều rất phức tạp Các bộ vi điều khiển theo thời gian cùng với sự phát triển của công nghệ bán dẫn đã tiến triển rất nhanh, từ các bộ vi điều khiển 4 bit đơn giản đến các bộ vi điều khiển 32 bit, rồi sau này là 64 bit Điện tử đang trở thành một ngành khoa học đa nhiệm vụ Điện tử đã đáp ứng được những đòi hỏi không ngừng từ các lĩnh vực công – nông – lâm – ngư nghiệp cho đến các nhu cầu cần thiết trong hoạt động đời sống hằng ngày
Sau gần 3 năm học tập và nghiên cứu ở trường, em đã được làm quen
với các môn học chuyên ngành,em đã dùng vi điều khiển để ” Tìm hiểu về vi
điều khiển 89S52 Thiết kế mô hình đo và khống chế nhiệt độ hiển thị trên led 7 thanh.” Mặc dù đã rất cố gắng thiết kế và hoàn thành đồ án đúng thời hạn nhưng do
thời gian ngắn và năng lực còn hạn chế nên vẫn còn những sai sót Em mong thầy giáo góp ý để việc học tập của em được tốt hơn
Em xin chân thành cảm ơn!
Trang 7Nội dung quyển đồ án bao gồm các chương:
Chương 1 Tổng quan về vi điều khiển
Chương 2 Tìm hiểu về vi điều khiển 89S52
Chương 3 Các linh kiện liên quan
Em xin chân thành cảm ơn toàn thể các thầy cô giáo trong khoa Điện Tử - ĐH Công Nghiệp Hà Nội đã giảng dạy và truyền đạt những kiến thức, kinh nghiệm quý báu và tạo điều kiện tốt nhất cho em được học tập và nghiên cứu tại trường
Cuối cùng em xin chân thành cảm ơn thầy Hoàng Văn Quang giảng viên Khoa
Điện Tử-ĐH Công Nghiệp Hà Nội đã hướng dẫn và giúp đỡ nhiệt tình em trong quá trình thực hiện đồ án
Hà Nội tháng 6/2012 Sinh viên thực hiện
Tường Thị Thu Hằng
Trang 8CHƯƠNG 1 TỔNG QUAN VỀ VI ĐIỀU KHIỂN
1.1 Khái quát về vi điều khiển
Năm 1976, hãng Intel giới thiệu bộ vi điều khiển 8748-mở đầu cho họ vi điều khiển MCU-48 8747 là một vi mạch chứa hơn 17.000 transistor bao gồm CPU,1kbyte bộ nhớ ROM, 64KB RAM, một bộ đếm/định thời 8 bit và 27 chân vào/ra
Vi điều khiển (MCU-viết tắt của cụm từ ‘Micro Control Unit’) có thể được coi như một máy tính thu nhỏ trên một chíp, nó còn có thể hoạt động với một vài linh kiện phụ trợ ở bên ngoài, sau 8748, các bộ vi điều khiển mới tiếp tục được các hãng sản xuất như Intel, Atmel, Simens…giới thiệu cho các ứng dụng nhúng
1.1.1 Kiến trúc vi điều khiển
Thực ra vi điều khiển cũng là một cấu trúc nhỏ, gồm các linh kiện điện tử ở kích thước micro hoặc nano, các linh kiện này được kết hợp với nhau và được nối với các thiết bị bên ngoài qua các chân vi điều khiển
Kiến trúc máy tính hay kiến trúc vi điều khiển cũng tương tự nhau Do đó , các bạn có thể tìm hiểu về kiến trúc máy tính, để hiểu rõ về kiến trúc vi điều khiển Hai kiến trúc vi điều khiển rất phổ biến hiện nay, là kiến trúc Von Neumann và kiến trúc Harvard Sự khác biệt chủ yếu giữa hai kiến trúc này, chính là việc tổ chức bộ nhớ dữ liệu và bộ nhớ chương trình Kiến trúc Von Neumann tổ chức bộ nhớ dữ liệu và bộ nhớ chương trình chung với nhau, chính vì vậy, đường truyền (bus) của kiến trúc Von Neumann là đường truyền chung Trong khi đó, kiến trúc Harvard tách rời bộ nhớ dữ liệu và bộ nhớ chương trình
Mỗi kiến trúc này có một lợi điểm riêng rẽ khác nhau Kiến trúc Von Neumann tận dụng được tài nguyên bộ nhớ, trong khi đó kiến trúc Harvard sẽ đạt
Trang 9tốc độ xử lý cao hơn, mặt khác đường truyền dữ liệu và đường truyền lệnh điều khiển (chương trình) có thể có dung lượng khác nhau
1.1.2 Tập lệnh
Tập lệnh ở đây được coi là tập mã lệnh nhị phân, Bản chất của tập lệnh là một tập hợp các mã nhị phân, mà từ đó các đơn vị xử lý trung tâm (CPU) nhận biết và thực hiện Dữ liệu được CPU xử lý là các số nhị phân Chính vì vậy, tập lệnh dù thế nào đi nữa cũng sẽ thực hiện các việc chính sau:
- Tính toán các con số nhị phân
- Các lệnh để chuyển các giá trị ra thành tín hiệu điện tử ở chân linh kiện
- Các lệnh di chuyển các giá trị giữa các thanh ghi
- Các lệnh điều khiển con trỏ chương trình
1.1.3 Chức năng
Hiện nay rất nhiều loại vi điều khiển ra đời, và rất nhiều tính năng được tích hợp vào trong vi điều khiển dưới dạng phần cứng Tuy nhiên, tựu chung lại thì mọi việc cũng đều nằm ở việc điều khiển động cơ và đọc cảm biến Một cánh cửa tự động là một cái cảm biến hồng ngoại và một cái động cơ Đại đa số những gì tự động đều có dính đến động cơ trong đó, vì nếu không có động cơ thì làm sao mà
nó biến đổi điện năng thành cơ năng khi đó ta sẽ phải thiết kế một cảm biển để quan sát
Để biết được tính năng của từng loại vi điều khiển ta chọn phần datasheet nói tóm lại chức năng của vi điều khiển rất phong phú và đa dạng, Nên các bạn hay nghiên cứu thật kĩ trước khi mua về để phục vụ cái nhu cầu của mình đang cần
Trang 101 2 Các bộ vi điều khiển
1.2.1 Các bộ vi điều khiển và các bộ xử lý nhúng
Trong mục này chúng ta bàn về nhu cầu đối với các bộ vi điều khiển (VĐK)
và so sánh chúng với các bộ vi xử lý cùng dạng chung như Pentium và các bộ vi xử
lý 86 khác Chúng ta sẽ cùng xem xét vai trò của các VĐK trong thị trường các sản phẩm nhúng Ngoài ra, chúng ta cung cấp một số tiêu chuẩn và cách lựa chọn một
bộ VĐK như thế nào
1.2.2 Định nghĩa bộ vi xử lý
Bộ vi xử lý (VXL) ở đây là các bộ VXL công dụng chung như họ Intell 86(8086, 80286, 80386, Pentium hoặc họ Motorola 6800(68000, 68010, 68020, 68030…) Những bộ VXL này không có RAM, ROM và không có các cổng vào ra trên chip Với lý do đó mà chúng được gọi chung đó là các bộ vi xử lý công dụng chung
Một nhà thiết kế hệ thống sử dụng một bộ VXL công dụng chung chẳng hạn như Pentium hay 68040 phải bổ xung thêm RAM, ROM Các cổng vào ra và các
bộ định thời ngoài để làm cho chúng hoạt động được mặc dù bổ xung thêm RAM, ROM và các cổng vào ra bên ngoài làm cho hệ thống cồng kềnh và đắt hơn, nhưng chúng có ưu điểm là linh hoạt chẳng hạn như người thiết kế có thể quyết định về số lượng RAM, Rom cà các cổng ra vào cần thiết phù hợp với bài toán trong tầm tay của mình
Điều này không thể có được đối với các bộ VĐK Một bộ VĐK có một CPU ( một bộ VXL) cùng với một lượng cố định RAM, ROM, các cổng vào ra và một bộ định thời tất cả trên cùng một chip Hay nói cách khác là bộ xử lý, RAM, ROM các cổng vào ra và bộ định thời đều được nhúng với nhau trên một chip; do vậy người thiết kế không thể bổ xung thêm bộ nhớ ngoài, cổng vào ra hoặc bộ định thời cho
Trang 11nó Số lượng cố định của RAM, ROM trên chip và số các cổng vào – ra trong các
bộ vi điều khiển làm cho chúng trở nên lý tưởng đối với nhiều ứng dụng mà trong
đó giá thành và không gian lại hạn chế Trong nhiều ứng dụng,ví dụ như bộ điều khiển TV từ xa thì không cần công suất tính toán của bộ VXL 486 hoặc thậm chí như 8086 Trong rất nhiều ứng dụng thì không gian nó chiếm, công suất nó tiêu tốn
và giá thành trên một đơn vị là những cân nhắc nghiêm ngặt hơn nhiều so với công suất tính toán Những ứng dụng thường yêu cầu một số thao tác vào – ra để đọc các tín hiệu và tắt – mở những bit nhất định Vì lý do này mà một số người gọi các bộ
xử lý này là IBP (“Itty - Bitty - Processor”), (tham khảo cuốn “Good things in small packages are Generating Big product opportunities” do Rick Grehan viết trên tạp BYTE tháng 9.1994; www.byte.com để biết về những trao đổi tuyệt vời về các
bộ VĐK)
Điều thú vị là một số nhà sản xuất các bộ VĐK đã đi xa hơn là tích hợp cả một bộ chuyển đổi ADC và các ngoại vi khác vào trong bộ VĐK
1.2.3 Các bộ vi điều khiển cho hệ thống nhúng
Trong tài liệu về các bộ vi xử lý ta thường thấy khái niệm hệ thống nhúng Các
bộ vi xử lý và các bộ vi điều khiển được sử dụng rộng rãi trong các sản phẩm hệ thống nhúng Một sản phẩm nhúng sử dụng một bộ vi xử lý và chỉ một mà thôi.một máy in là một ví dụ về một việc nhúng vì bộ xử lý bên trong nó chỉ làm một việc
đó là nhận dữ liệu và in nó ra
Định nghĩa về hệ thống nhúng (embedded system)
Hệ thống nhúng là hệ thống xử lý thông tin được nhúng vào trong một sản phẩm lớn hơn và bình thường người dùng không thấy nó một cách trực tiếp [1]
Trang 12Hệ thống tính toán nhúng (embedded computing system) là hệ thống tính toán được nhúng trong thiết bị điện tử (hầu như là các hệ thống tính toán khác máy tính) [2]
Thông thường các hệ thống nhúng là những ứng dụng đơn chức năng [3]
Hệ thống nhúng là hệ thống mà chức năng chính của nó không chỉ có tính toán mà được điều khiển bởi máy tính được nhúng trong nó [4]
Trong các định nghĩa trên, chúng ta thấy định nghĩa thứ nhất có thể mô tả tổng quát về hệ thống nhúng Ngày nay các hệ thống nhúng ở khắp nơi, chúng xuất hiện trong nhà, văn phòng, nhà máy, xe hơi, bệnh viện,…
Những đặc tính chung của các hệ thống nhúng
Các hệ thống nhúng có các đặc tính chung sau: [1]
Thường thì các hệ thống nhúng được nối với môi trường vật lý qua các cảm
biến để thu thập thông tin từ môi trường đó và qua các bộ điều khiển/tác động để
điều khiển môi trường
Các hệ thống nhúng phải tin cậy được “Tin cậy được” bao gồm độ tin cậy,
tính bảo trì, tính khả dụng, an toàn và bảo mật
Các hệ thống nhúng phải có hiệu suất cao Để đánh giá hiệu suất, người ta dựa
vào các tiêu chí sau: năng lượng, kích thước mã chương trình/tài nguyên sử dụng, hiệu suất lúc chạy thật (run-time efficiency), khối lượng và giá
Dành riêng cho ứng dụng cụ thể Thí dụ bộ xử lý chạy chương trình điều
khiển trong xe hơi sẽ luôn luôn chạy chương trình mà không chuyển sang chương trình khác
Hầu hết các hệ thống nhúng không dùng bàn phím, chuột hay màn mình để giao tiếp với người dùng Thay vào đó, chúng có các giao tiếp dành riêng cho người dùng như các nút nhấn, bàn đạp…
Nhiều hệ thống nhúng phải thỏa các ràng buộc thời gian thực
Trang 13Nhiều hệ thống nhúng là những hệ thống hỗn hợp (hybrid systems)theo nghĩa
gồm cả hai phần analog và số
Các hệ thống nhúng là những hệ thống có phản ứng lại (reactive systems)
Chúng có thể được định nghĩa như sau: hệ thống có phản ứng lại là hệ thống mà có tương tác liên tục với môi trường của nó và thực thi với tốc độ được xác định bởi môi trường đó [Bergé et al., 1995]
Thật ra không phải mọi hệ thống nhúng sẽ có tất cả các đặc tính trên Chúng ta
cũng có thể định nghĩa thuật ngữ “hệ thống nhúng” theo cách sau: Những hệ thống
xử lý thông tin thỏa phần lớn các đặc tính trên được gọi là những hệ thống nhúng
1.2.4 Các ứng dụng nhúng của PC86
Chúng ta có thể thấy các hệ thống nhúng trong nhiều lãnh vực:
Điện tử gia dụng: máy giặt, tủ lạnh, máy chụp hình số
Điện tử ô-tô: hệ điều khiển động cơ, hệ điều khiển thắng, hệ GPS
Điện tử trong máy bay: hệ thông tin cho phi công, hệ chống va chạm
Điện tử y sinh: đo nhiệt độ, ECG, chẩn đoán từ xa
Các hệ thống nhúng tạo cơ sở cho kỷ nguyên hậu PC (post-PC era), các hệ thống
xử lý thông tin chuyển dần từ PC sang hệ thống nhúng cho các ứng dụng cụ thể
1.2.5 Lựa chọn một bộ vi điều khiển
Có 4 bộ VĐK 8 bít chính Đó là 6811 của Motorola, 8051 của Intel và Pic 16 của Microchip Mỗi một kiểu loại trên đây đều có một tệp lệnh và thanh ghi riêng duy
Trang 1432 bit được sản xuất bởi các hãng sản xuất chíp khác nhau Với tất cả những bộ vi điều khiển khác nhau như thế này thì lấy gì làm tiêu chuẩn lựa chọn mà các nhà thiết kế phải cân nhắc? có 3 tiêu chuẩn để lựa chọn các bộ vi điều khiển là:
1- Đáp ứng nhu cầu tính toán của bài toán một cách hiệu quả về mặt giá thành và đầy đủ chức năng có thể nhìn thấy được
2- Có sẵn các công cụ phát triển phần mềm chẳng hạn như các trình biên dịch, trình hợp ngữ và gỡ rối
3- Nguồn các bộ vi điều khiển có sẵn nhiều và tin cậy
1.3 Tìm hiểu chung về họ 8051
1.3.1 Cấu trúc bus
Bus địa chỉ của họ vi điều khiển 8051 gồm 16 đường tín hiệu (thường gọi
là bus địa chỉ 16 bit) với lượng bit địa chỉ như vậy, không gian nhớ của nó có thể
mở rộng tối đa đên 2^16=65536 địa chỉ tương đương 64K
Bus dữ liệu của họ 8051 gồm 8 đường tín hiệu (thường gọi là dữ liệu 8 bit), đó là lí do vì sao nói 8051 là họ vi điều khiển 8 bit Với độ rộng của bus dữ liệu như vậy, các chip họ 8051 có thể xử lí được các toán hạng 8 bit trong 1 chu kì lệnh
1.3.2 Bộ nhớ chương trình
Vi điều khiển họ 8051 có không gian nhớ là 64K địa chỉ, đó cũng là bộ nhớ chương trình lớn nhất mà mỗi chip thuộc họ này có được Bộ nhớ chương trình của các chip thuộc họ 8051 có thể thuộc loại ROM, EPROM, Flash, hoặc không có bộ nhớ chương trình bên trong chip, tên của chip thể hiện bộ nhớ chương trình mà nó chứa bên trong
Trang 151.3.3 Bộ nhớ dữ liệu
Bộ nhớ SRAM được tích hợp bên trong mọi chip thuộc họ này, có dung
lượng khác nhau tùy loại chip nhưng thường thì chỉ khoảng vài trăm byte Đây chính là nơi chứa các biến trung gian trong quá trình hoạt động của chip Khi mất điện do bản chất của SRAM mà các giá trị này cũng mất theo Bên cạnh bộ nhớ loại SRAM thì một số chip thuộc họ 8051 còn có thêm bộ nhớ EEPROM với dung lượng tối đa vài Kbyte tùy từng loại chip cụ thể
1.4 Họ vi điều khiển 8051
1.4.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, hai bộ định thời, một cổng nối tiếp và 4 cổng 8 bit Tất cả đều được tích hợp trên một chip Lúc bấy giờ,
bộ vi điều khiển như vậy được coi là một “hệ thống trên chip” 8051 là một bộ xử
lý 8 bit, tức là CPU chỉ có thể làm việc với 8 bit dữ liệu Dữ liệu lớn hơn 8 bit được chia thành các dữ liệu 8 bit để xử lý.8051 có tất cả 4 cổng I/O mỗi cổng rộng 8 bit,
có thể có một ROM trên chip cực đại là 64 Kbyte Tuy nhiên, lúc đó các nhà sản xuất đã cho xuất xưởng chỉ với 4 Kbyte ROM trên chip 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ã chương trình tương thích với 8051 Từ đó dẫn đến sự ra đời nhiều phiên bản của 8051 với các tốc độ khác nhau Tuy nhiên, điều quan trọng là mặc dù có nhiều biến thể của 8051, như khác nhau về tốc độ và dung lượng nhớ ROM trên chip, nhưng tất cả các lệnh đều tương thích với 8051 ban đầu Đ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
Trang 161.4.2 Đặc tính vi đ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.1 Các đặc tính của 8051 đầu tiên
Interrupt control: Điều khiển ngắt
Other registes: Các thanh ghi khác
128 Byte RAM: RAM 128 Byte
Timer 0, 1, 2: Bộ định thời 0, 1, 2
CPU: Đơn vị điều khiển trung tâm
Oscillator: Mạch dao động
Bus control: Điều khiển Bus
I/O ports: Các ports vào/ra
Trang 17Serial port: Port nối tiếp
Address/data: Địa chỉ/dữ liệu
1.4.3 Sơ đồ khối chung của họ vi điều khiển 8051
Hình 1.1 Bố trí bên trong của sơ đồ khối 8051
Trang 181.4.4 Thành viên họ vi điều khiển 8051
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, 8952 có tất 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 3 bộ định thời và có 8 Kbyte ROM trên chip thay vì 4 Kbyte như 8051
Bảng 1.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 1.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ộ vi điều khiển 8031
Trang 19Một thành viên khác nữa của 8051 là chip 8031 Chip này thường được coi như là
8051 không có ROM trên chip vì nó có 0 Kbyte ROM trên chip Để sử dụng chip 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 chip bị giới hạn bởi 4 Kbyte, còn ROM ngoài chứa chương trình được gắn vào
8031 thì có thể lớn đến 64 Kbyte 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 chip 8255 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
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ổ 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 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
và UV – RAM của 8751 từ nhiều hãng khác nhau
Trang 20 Bộ vi điều khiển AT8951 từ Atmel Corporation
Chip 8051 phổ biến này có ROM trên chip ở 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 xóa 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ộ xóa ROM Lưu ý rằng trong bộ nhớ Flash ta phải xóa toàn bộ nội dung của ROM nhằm để lập trình lại cho nó Việc xóa 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 AT89C51 có thể được lập trình qua cổng truyền thông COM của máy tính IBM PC
Bảng 1.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.4 Ví dụ để ý rằng chữ “C” đứng trước số 51 trong AT89C51 – 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ự)
Trang 21Thông thường AT89C51 – 12PC rất lý tưởng cho các dự án của học sinh, sinh viên
Bảng 1.4 Các phiên bản 8051 với tốc độ khác nhau của Atmel
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 chip 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 chip trong khi
nó vẫn ở trong hệ thống (không cần phải lấy ra)
Bảng 1.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 1 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 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
Trang 22 Phiên bản OTP của 8051
Các phiên bản OTP của 8051 là các chip 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 phẩ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 xuất
hang loạt vì giá thành một đơn vị sản phẩm sẽ rẻ hơn
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/O mở rộng và cả OTP và Flash
Trang 231.5 Các họ vi điều khiển khác
1.5.1 Họ vi điều khiển AMCC
Họ vi điều khiển AMCC do tập đoàn "Applied Micro Circuits Corporation" sản
xuất Từ tháng 5 năm 2004, họ vi điều khiển này được phát triển và tung ra thị trường bởi IBM
1.5.2 Họ vi điều khiển Cypress MicroSystems
Crypress nổi tiếng với dòng sản phẩm PsoC, đây là những vi mạch có tích hợp vi điều khiển, các linh kiện tương tự (các bộ khuếch đại, các bộ biến đổi A/D, D/A, các bộ lọc, các bộ so sánh…) và các linh kiện số (bộ định thời, bộ đếm, bộ tạo xung PWM, SPI, UART, I2C…) trên một chip duy nhất Việc tích hợp hàng trăm khối chức năng cùng với một bộ điều khiển trên một chip cho phép giảm thời gian thiết kế, thu gọn kích thước sản phẩm, giảm công suất tiêu thụ và giảm giá thành sản phẩm
Trang 24 CY8C2xxxx (PSoC)
1.5.3 Họ vi điều khiển Freescale Semiconductor
Từ năm 2004, những vi điều khiển này được phát triển và tung ra thị trường bởi Motorola
FR-V Family (32 bit RISC)
1.5.5 Họ vi điều khiển Intel
Dòng 8-bit
8XC42
MCS48
Trang 251.5.6 Họ vi điều khiển Microchip
12-bit instruction PIC
14-bit instruction PIC
PIC16F84
16-bit instruction PIC
PIC là viết tắt của “Programable Intelligent Computer”, có thể tạm dịch là “máy tính thông minh khả trình” do hãng Genenral Instrument đặt tên cho vi điều khiển đầu tiên của họ: PIC1650 được thiết kế để dùng làm các thiết bị ngoại vi cho vi điều khiển CP1600 Vi điều khiển này sau đó được nghiên cứu phát triển thêm và
từ đó hình thành nên dòng vi điều khiển PIC ngày nay
Kiến trúc PIC
Cấu trúc phần cứng của một vi điều khiển được thiết kế theo hai dạng kiến trúc: kiến trúc Von Neuman và kiến trúc Havard
Trang 26Hình 1.2 Kiến trúc Havard và kiến trúc Von-Neuman
Tổ chức phần cứng của PIC được thiết kế theo kiến trúc Havard Điểm khác biệt giữa kiến trúc Havard và kiến trúc Von-Neuman là cấu trúc bộ nhớ dữ liệu và bộ nhớ chương trình
Đối với kiến trúc Von-Neuman, bộ nhớ dữ liệu và bộ nhớ chương trình nằm chung trong một bộ nhớ, do đó ta có thể tổ chức, cân đối một cách linh hoạt bộ nhớ chương trình và bộ nhớ dữ liệu Tuy nhiên điều này chỉ có ý nghĩa khi tốc độ xử lí của CPU phải rất cao, vì với cấu trúc đó, trong cùng một thời điểm CPU chỉ có thể tương tác với bộ nhớ dữ liệu hoặc bộ nhớ chương trình Như vậy có thể nói kiến trúc Von-Neuman không thích hợp với cấu trúc của một vi điều khiển
Đối với kiến trúc Havard, bộ nhớ dữ liệu và bộ nhớ chương trình tách ra thành hai bộ nhớ riêng biệt Do đó trong cùng một thời điểm CPU có thể tương tác với cả hai bộ nhớ, như vậy tốc độ xử lí của vi điều khiển được cải thiện đáng kể
Một điểm cần chú ý nữa là tập lệnh trong kiến trúc Havard có thể được tối ưu tùy theo yêu cầu kiến trúc của vi điều khiển mà không phụ thuộc vào cấu trúc dữ liệu Ví dụ, đối với vi điều khiển dòng 16F, độ dài lệnh luôn là 14 bit (trong khi dữ liệu được tổ chức thành từng byte), còn đối với kiến trúc Von-Neuman, độ dài lệnh
Trang 27luôn là bội số của 1 byte (do dữ liệu được tổ chức thành từng byte) Đặc điểm này được minh họa cụ thể trong hình 1.1
RISC và CISC
Như đã trình bày ở trên, kiến trúc Havard là khái niệm mới hơn so với kiến trúc Von-Neuman Khái niệm này được hình thành nhằm cải tiến tốc độ thực thi của một vi điều khiển
Qua việc tách rời bộ nhớ chương trình và bộ nhớ dữ liệu, bus chương trình và bus dữ liệu, CPU có thể cùng một lúc truy xuất cả bộ nhớ chương trình và bộ nhớ
dữ liệu, giúp tăng tốc độ xử lí của vi điều khiển lên gấp đôi Đồng thời cấu trúc lệnh không còn phụ thuộc vào cấu trúc dữ liệu nữa mà có thể linh động điều chỉnh tùy theo khả năng và tốc độ của từng vi điều khiển Và để tiếp tục cải tiến tốc độ thực thi lệnh, tập lệnh của họ vi điều khiển PIC được thiết kế sao cho chiều dài mã lệnh luôn cố định (ví dụ đối với họ 16Fxxxx chiều dài mã lệnh luôn là 14 bit) và cho phép thực thi lệnh trong một chu kì của xung clock ( ngoại trừ một số trường hợp đặc biệt như lệnh nhảy, lệnh gọi chương trình con … cần hai chu kì xung đồng hồ) Điều này có nghĩa tập lệnh của vi điều khiển thuộc cấu trúc Havard sẽ ít lệnh hơn, ngắn hơn, đơn giản hơn để đáp ứng yêu cầu mã hóa lệnh bằng một số lượng bit nhất định
Vi điều khiển được tổ chức theo kiến trúc Havard còn được gọi là vi điều khiển RISC (Reduced Instruction Set Computer) hay vi điều khiển có tập lệnh rút gọn Vi điều khiển được thiết kế theo kiến trúc Von-Neuman còn được gọi là vi điều khiển CISC (Complex Instruction Set Computer) hay vi điều khiển có tập lệnh phức tạp vì mã lệnh của nó không phải là một số cố định mà luôn là bội số của 8 bit (1 byte)
Trang 28Đây chính là cơ chế xử lí lệnh của các vi điều khiển PIC Một chu kì lệnh của vi điều khiển sẽ bao gồm 4 xung clock Ví dụ ta sử dụng oscillator có tần số 4 MHZ, thì xung lệnh sẽ có tần số 1 MHz (chu kì lệnh sẽ là 1 us) Giả sử ta có một đoạn chương trình như sau:
2 MOVWF PORTB
5 instruction @ address SUB_1
Ở đây ta chỉ bàn đến qui trình vi điều khiển xử lí đoạn chương trình trên thông qua
từng chu kì lệnh Quá trình trên sẽ được thực thi như sau:
Hình 1.3 Cơ chế pipelining
Trang 29- TCY5: thực thi lệnh đầu tiên của SUB_1 và đọc lệnh tiếp theo của SUB_1 Quá trình này được thực hiện tương tự cho các lệnh tiếp theo của chương trình
Thông thường, để thực thi một lệnh, ta cần một chu kì lệnh để gọi lệnh đó, và một chu kì xung clock nữa để giải mã và thực thi lệnh Với cơ chế pipelining được trình bày ở trên, mỗi lệnh xem như chỉ được thực thi trong một chu kì lệnh Đối với các lệnh mà quá trình thực thi nó làm thay đổi giá trị thanh ghi PC (Program Counter) cần hai chu kì lệnh để thực thi vì phải thực hiện việc gọi lệnh ở địa chỉ thanh ghi
PC chỉ tới Sau khi đã xác định đúng vị trí lệnh trong thanh ghi PC, mỗi lệnh chỉ cần một chu kì lệnh để thực thi xong
Các dòng PIC và cách lựa chọn vi điều khiển PIC
Các kí hiệu của vi điều khiển PIC:
- PIC12xxxx: độ dài lệnh 12 bit
- PIC16xxxx: độ dài lệnh 14 bit
- PIC18xxxx: độ dài lệnh 16 bit
C: PIC có bộ nhớ EPROM (chỉ có 16C84 là EEPROM)
Trang 30F: PIC có bộ nhớ flash
LF: PIC có bộ nhớ flash hoạt động ở điện áp thấp
LV: tương tự như LF, đây là kí hiệu cũ
Bên cạnh đó một số vi điệu khiển có kí hiệu xxFxxx là EEPROM, nếu có thêm chữ A ở cuối là flash (ví dụ PIC16F877 là EEPROM, còn PIC16F877A là flash)
Ngoài ra còn có thêm một dòng vi điều khiển PIC mới là dsPIC
Ở Việt Nam phổ biến nhất là các họ vi điều khiển PIC do hãng Microchip sản xuất
Cách lựa chọn một vi điều khiển PIC phù hợp:
- Trước hết cần chú ý đến số chân của vi điều khiển cần thiết cho ứng dụng
Có nhiều vi điều khiển PIC với số lượng chân khác nhau, thậm chí có vi điều khiển chỉ có 8 chân, ngoài ra còn có các vi điều khiển 28, 40, 44, … chân
- Cần chọn vi điều khiển PIC có bộ nhớ flash để có thể nạp xóa chương trình được nhiều lần hơn Tiếp theo cần chú ý đến các khối chức năng được tích hợp sẵn trong vi điều khiển, các chuẩn giao tiếp bên trong
- Sau cùng cần chú ý đến bộ nhớ chương trình mà vi điều khiển cho phép
- Ngoài ra mọi thông tin về cách lựa chọn vi điều khiển PIC có thể được tìm thấy trong cuốn sách “Select PIC guide” do nhà sản xuất Microchip cung cấp
Ngôn ngữ lập trình cho PIC
Ngôn ngữ lập trình cho PIC rất đa dạng Ngôn ngữ lập trình cấp thấp có MPLAB (được cung cấp miễn phí bởi nhà sản xuất Microchip), các ngôn ngữ lập
Trang 31trình cấp cao hơn bao gồm C, Basic, Pascal, … Ngoài ra còn có một số ngôn ngữ lập trình được phát triển dành riêng cho PIC như PICBasic, MikroBasic,…
Mạch nạp PIC
Đây cũng là một dòng sản phẩm rất đa dạng dành cho vi điều khiển PIC Có thể
sử dụng các mạch nạp được cung cấp bởi nhà sản xuất là hãng Microchip như: PICSTART plus, MPLAB ICD 2, MPLAB PM 3, PRO MATE II Có thể dùng các sản phẩm này để nạp cho vi điều khiển khác thông qua chương trình MPLAB Dòng sản phẩm chính thống này có ưu thế là nạp được cho tất cả các vi điều khiển PIC, tuy nhiên giá thành rất cao và thường gặp rất nhiều khó khăn trong quá trình mua sản phẩm
Ngoài ra do tính năng cho phép nhiều chế độ nạp khác nhau, còn có rất nhiều mạch nạp được thiết kế dành cho vi điều khiển PIC Có thể sơ lược một số mạch nạp cho PIC như sau:
- JDM programmer: mạch nạp này dùng chương trình nạp Icprog cho phép nạp các vi điều khiển PIC có hỗ trợ tính năng nạp chương trình điện áp thấp ICSP (In Circuit Serial Programming) Hầu hết các mạch nạp đều hỗ trợ tính năng nạp chương trình này
- WARP-13A và MCP-USB: hai mạch nạp này giống với mạch nạp PICSTART PLUS do nhà sản xuất Microchip cung cấp, tương thích với trình biên dịch MPLAB, nghĩa là ta có thể trực tiếp dùng chương trình MPLAB để nạp cho vi điều khiển PIC mà không cần sử dụng một chương trình nạp khác, chẳng hạn như ICprog
- P16PRO40: mạch nạp này do Nigel thiết kế và cũng khá nổi tiếng Ông còn thiết kế cả chương trình nạp, tuy nhiên ta cũng có thể sử dụng chương trình nạp
Trang 32- Mạch nạp Universal của Williem: đây không phải là mạch nạp chuyên dụng dành cho PIC như P16PRO40
Các mạch nạp kể trên có ưu điểm rất lớn là đơn giản, rẻ tiền, hoàn toàn có thể
tự lắp ráp một cách dễ dàng, và mọi thông tin về sơ đồ mạch nạp, cách thiết kế, thi công, kiểm tra và chương trình nạp đều dễ dàng tìm được và download miễn phí thông qua mạng Internet Tuy nhiên các mạch nạp trên có nhược điểm là hạn chế
về số vi điều khiển được hỗ trợ, bên cạnh đó mỗi mạch nạp cần được sử dụng với một chương trình nạp thích hợp
1.5.7 Họ vi điều khiển National Semiconductor
Trang 33CHƯƠNG 2 TÌM HIỂU VỀ VI ĐIỀU KHIỂN 89S52
2.1 Sơ đồ khối, sơ đồ chân của vi điều khiển 89S52
2.1.1 Giới thiệu sơ lược
Vi điều khiển 8051 được Intel cho ra đời vào năm 1980 thuộc vi điều khiển đầu tiên của họ MCS-51 Hiện tại rất nhiều nhà sản xuất như Siemens,
Advanced Micro Devices, Fusisu tập trung phát triển các sản phẩm trên cơ sở
Các đặc điểm của chip AT89S52 được tóm tắt như sau:
-8 KByte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000 chu kỳ ghi/xoá -Tần số hoạt động từ: 0Hz đến 24 MHz
-3 mức khóa bộ nhớ lập trình
-3 bộ Timer/counter 16 Bit
-128 Byte RAM nội
-4 Port xuất /nhập I/O 8 bit
-Giao tiếp nối tiếp
Trang 342.1.3 Sơ đồ khối 89S52
Hình 2.1 Sơ đồ khối của bộ vi điều khiển AT89S52
Trang 352.1.4 Sơ đồ chân 89S52
Hình 2.2 Sơ đồ chân của AT89S52
Mặc dù các thành viên của họ 8051(8751, 89S52, 89C51, DS5000) đều có các kiểu đóng vỏ khác nhau, chẳng hạn như hai hàng chân DIP,dạng vỏ dẹt vuông QPF
và dạng chip không có chân đỡ LLC thì chúng đều có 40 chân cho các chức năng khác nhau như vào ra I/O, đọc RD, ghi WR, địa chỉ, dữ liệu và ngắt
2.1.5 Chức năng các chân của AT89S52
- Port 0: từ chân 32 đến chân 39 (P0.0 _P0.7) Port 0 có 2 chức năng: trong
các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường
IO, đối với thiết kế lớn có bộ nhớ mở rộng nó được kết hợp giữa bus địa chỉ và bus
dữ liệu
Trang 36Hình 2.3 Sơ đồ Port 0
- Port 1: từ chân 1 đến chân 9 (P1.0 _ P1.7) Port 1 là port IO dùng cho giao
tiếp với thiết bị bên ngoài nếu cần
Hình 2.4 Sơ đồ Port 1
- Port 2: từ chân 21 đến chân 28 (P2.0 _P2.7) Port 2 là một port có tác dụng
kép dùng như các đường xuất/nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị dùng bộ nhớ mở rộng
Trang 37Hình 2.5 Sơ đồ Port 2
- Port 3: từ chân 10 đến chân 17 (P3.0 _ P3.7) Port 3 là port có tác dụng kép
Các chân của port này có nhiều chức năng, có công dụng chuyển đổi có liên hệ đến
các đặc tính đặc biệt của 89S52 như ở bảng sau:
Bảng 2.1 Các chức năng của Port 3
WR
RD
Ngõ vào dữ liệu nối tiếp
Ngõ xuất dữ liệu nối tiếp
Ngõ vào ngắt cứng thứ 0
Ngõ vào ngắt cứng thứ 1
Ngõ vào TIMER/ COUNTER thứ 0
Ngõ vào của TIMER/ COUNTER thứ 1
Tín hiệu ghi dữ liệu lên bộ nhớ ngoài
Tín hiệu đọc bộ nhớ dữ liệu ngoài
Trang 38- PSEN (Program store enable): chân cho phép bộ nhớ chương trình
PSEN là tín hiệu ngõ ra có tác dụng cho phép đọc bộ nhớ chương trình mở
rộng và thường được nối đến chân OE của Eprom cho phép đọc các byte mã lệnh
PSEN ở mức thấp trong thời gian 89S52 lấy lệnh Các mã lệnh của chương
trình được đọc từ Eprom qua bus dữ liệu, được chốt vào thanh ghi lệnh bên trong 89S52 để giải mã lệnh Khi 89S52 thi hành chương trình trong ROM nội, PSEN ở mức cao
- ALE (Address Latch Enable): chân cho phép chốt địa chỉ
Khi 89S52 truy xuất bộ nhớ bên ngoài, Port 0 có chức năng là bus địa chỉ
và dữ liệu do đó phải tách các đường dữ liệu và địa chỉ Tín hiệu ra ALE ở chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối chúng với IC chốt
Tín hiệu ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò
là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động
- EA (External Access): chân truy xuất ngoài
Tín hiệu vào EA (chân 31) thường được mắc lên mức 1 hoặc mức 0 Nếu ở mức 1, 89S52 thi hành chương trình từ bộ nhớ ROM nội Nếu ở mức 0, 89S52 thi hành chương trình từ bộ nhớ ROM ngoại Chân EA được lấy làm chân cấp nguồn 21V khi lập trình cho Eprom trong 89S52
Trang 39RST (Reset): Khi ngõ vào tín hiệu này
bên trong được nạp những giá trị thích hợp để
khởi động hệ thống Khi cấp điện mạch phải tự
Trang 402.2 Tổ chức bộ nhớ bên trong 89S52
Bộ nhớ trong 89S52 bao gồm ROM và RAM RAM trong 89S52 bao
gồm nhiều thành phần: phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank thanh ghi và các thanh ghi chức năng đặc biệt
AT89S52 có bộ nhớ được tổ chức theo cấu trúc Harvard: có những vùng bộ nhớ riêng biệt cho chương trình và dữ liệu Chương trình và dữ liệu có thể chứa bên trong 89S52 nhưng 89S52 vẫn có thể kết nối với 64K byte bộ nhớ chương trình và 64K
byte dữ liệu bên ngoài