1
MỤC LỤC
LỜI NÓI ĐẦU .........................................................................................................5
TÓM TẮT NỘI DUNG ĐỒ ÁN. ..............................................................................6
Chương 1: Giới thiệu qua về tình hình phát triển khoa học và công nghệ điện tử
trên thực tế, sự phát triển phần cứng song song với phần mềm đã đem lại hiệu quả
to lớn trong cuộc sống con người. .........................................................................6
Chương 2: Thiết kế phần cứng. .............................................................................6
Chương 3: Xây dựng phần mềm, lập trình cho hệ thống. .......................................6
Chương 4: Cài đặt và hoàn thiện hệ thống. ............................................................6
CHƯƠNG 1: TỔNG QUAN. ...................................................................................7
1.1 Đặt vấn đề. ......................................................................................................7
1.2. Khảo sát vấn đề: .............................................................................................7
1.3. Các vấn đề cần giải quyết của bài toán : .........................................................8
1.4. Giải pháp: .......................................................................................................8
1.5. Mục đích đề tài. ..............................................................................................8
CHƯƠNG 2: THIẾT KẾ VÀ XÂY DỰNG PHẦN CỨNG. ... Error! Bookmark not
defined.
2.1. CÁC YÊU CẦU CỦA HỆ THỐNG. ..............................................................9
2.2. HƯỚNG XÂY DỰNG HỆ THÔNG. .............................................................9
2.3. SƠ ĐỒ KHỐI. .............................................................................................. 10
2.3.1. Sơ đồ khối tổng quan.............................................................................. 10
2.3.2.1. Khối tạo xung dao động. ................................................................ 11
2.3.2.1.1. Khối tạo xung dao động cho vi điều khiển 89S52. ..................... 11
2
2.3.2.1.2. Giao tiếp DS 1307 với khối giao động. .................................... 12
2.3.2.3. Khối hiển thị .................................................................................. 13
2.3.2.4. Khối điều chỉnh. ............................................................................. 14
2.4. SƠ ĐỒ MẠCH NGUYÊN LÝ. .................................................................... 15
Sơ đồ nguyên lý của mạch như sau................................................................... 15
Hình 2.6 Sơ đồ mạch nguyên lý ........................................................................... 16
2.5. CÁC LINH KIỆN SỬ DỤNG TRONG MẠCH. .......................................... 16
2.5.1.Giới thiệu về vi điều khiển 89S52 ........................................................... 16
2.5.1.1. Tổng Quan Về 89S52. ...................................................................... 16
2.5.1.2. Mô tả chân 89S52. .......................................................................... 19
2.5.1.2.1. Sơ đồ chân 89S52. .................................................................... 19
2.5.1.2.2. Chức năng các chân 89S52..................................................... 19
2.5.1.2.3. Tổ chức bộ nhớ bên trong 89S52. ............................................. 22
2.5.1.2.4. RAM đa dụng. .......................................................................... 24
2.5.1.2.5. RAM có thể định địa chỉ bit. ..................................................... 24
2.5.1.2.6. Các bank thanh ghi.................................................................... 24
2.5.1.2.7. Các thanh ghi có chức năng đặc biệt. ........................................ 25
2.5.1.2.7.1. Thanh ghi trạng thái chương trình (PSW: Program Status
Word)..................................................................................................... 25
2.5.1.2.7.2. Thanh ghi TIMER. .............................................................. 27
2.5.1.2.7.3. Thanh ghi ngắt (INTERRUPT). ........................................... 28
2.5.2. Giới thiệu về IC DS 1307. ..................................................................... 32
2.5.2.1. Tổng quan về DS1307. .................................................................... 32
2.5.2.1.1. Sơ đồ chân DS1307................................................................... 32
3
2.5.2.1.2. Cấu tạo bên trong DS1307. ....................................................... 34
2.5.2.2. Khái quát giao diện I2C. ................................................................. 38
2.5.2.3. Mode (chế độ) truyền dữ liệu giữa DS1307 và AT89S52. ................ 42
2.5.2.3.1. Mode Data Write (chế độ ghi dữ liệu). ...................................... 42
2.5.2.3.2. Mode Data Read (chế độ dọc dữ liệu). ...................................... 44
2.5.3. CÁC LINH LIỆN KHÁC SỬ DỤNG TRONG MẠCH. ......................... 45
2.5.3.1 Điện trở. .......................................................................................... 45
2.5.3.2 Tụ điện. ............................................................................................ 46
2.5.3.3 Led 7 đoạn. ...................................................................................... 46
2.5.3.3.1. Khái niệm cơ bản. ..................................................................... 46
2.5.3.3.2. Kết nối với vi điều khiển. ........................................................... 48
CHƯƠNG 3: XÂY DỰNG PHẦN MỀM ĐIỀU KHIỂN HỆ THỐNG. .................. 52
3.1. LƯU ĐỒ CHƯƠNG TRÌNH CHÍNH........................................................... 52
3.2. LƯU ĐỒ CHƯƠNG TRÌNH CON. .............................................................. 54
3.2.1. Lưu đồ chương trình con “WRITE_CLOCK”. ....................................... 54
3.2.3. Lưu đồ chương trình con “ READ_CLOCK”. ........................................ 55
3.2.4. Lưu đồ chương trình con ghi 1 byte vào DS1307“SEND_BYTE”. ......... 56
3.2.5. Lưu đồ chương trình con đọc 1 byte từ DS1307“READ_BYTE”. .......... 57
3.2.6. Lưu đồ chương trình con “ALARM_CLOCK_TEST”............................ 58
3.2.7. Lưu đồ chương trình con “HIEU_UNG_CHINH”. ................................. 59
3.2.8. Lưu đồ chương trình con “TAT_MO_CHUONG”.................................. 60
3.2.9. Lưu đồ chương trình con “HIENTHI”. ................................................... 61
3.4. PHẦN MỀM LẬP TRÌNH CHO VI ĐIỀU KHIỂN. ..................................... 62
4
3.4.1. Định hướng sử dụng ngôn ngữ lập trình. ................................................ 62
3.4.2.1. Các lệnh số học. ............................................................................... 62
3.4.2.2. Các lệnh logic. ................................................................................. 64
3.4.2.3. Các lệnh di chuyển dữ liệu. .............................................................. 65
3.4.2.4. Các lệnh xử lý bit. ............................................................................ 66
3.4.2.5. Các lệnh rẽ nhánh. ........................................................................... 67
3.4.2.6. Các lệnh dịch và quay. ..................................................................... 68
3.4.2.7. Các lệnh làm việc với ngăn xếp. ....................................................... 69
CHƯƠNG 4: CÀI ĐẶT VÀ HOÀN THIỆN HỆ THỐNG. ..................................... 70
4.1. PHẦN MỀM BIÊN DỊCH CHƯƠNG TRÌNH. ............................................ 70
4.1.1. Các bước cài đặt phần mềm Keli C. ....................................................... 70
4.1.2. Lập trình ASM với Keil: ........................................................................ 79
4.2. MÔ PHỎNG TRÊN PROTUERS. ................................................................ 83
4.4. MÔ HÌNH MẠCH THỰC TẾ. ..................................................................... 85
4.5. KIỂM TRA VÀ ĐÁNH GIÁ. ....................................................................... 87
4.5.1 Ưu Điểm. ............................................................................................... 87
4.5.2 Khuyết Điểm. ......................................................................................... 87
4.5.3 Hướng Phát Triển. .................................................................................. 87
4.5.4 Kết Luận. ............................................................................................... 87
TÀI LIỆU THAM KHẢO ...................................................................................... 88
5
LỜI NÓI ĐẦU
Với sự phát triển không ngừng của khoa học kỹ thuật, đặc biệt là ngành điện
tử đã ứng dụng rất nhiều trong công nghiệp. Trong lĩnh vực điều khiển, từ khi công
nghệ chế tạo loại vi mạch lập trình phát triển đã đem đến các kỹ thuật điều khiển
hiện đại có nhiều ưu điểm hơn so với việc sử dụng các mạch điều khiển lắp ráp bằng
các linh kiện rời như kích thước nhỏ, giá thành rẻ, độ làm việc tin cậy, công suất tiêu
thụ nhỏ.
Ngày nay, trong lĩnh vực điều khiển đã được ứng dụng rộng rãi trong các
thiết bị, sản phẩm phục vụ cho nhu cầu sinh hoạt hàng ngày của con người như máy
giặt, đồng hồ báo giờ... đã giúp cho đời sống cuả chúng ta ngày càng hiện đại và tiện
nghi hơn.
Đề tài “Thiết kế lịch vạn niên điện tử” Nhằm đáp ứng nhu cầu ham muốn học
hỏi của bản thân, cũng như là góp phần nâng giá trị của những mạch điện tử trong
đời sống của con người.
Đề tài “Thiết kế lịch vạn niên điện tử” rất đa dạng và phong phú, có nhiều
loại hình khác nhau dựa vào công dụng và độ phức tạp. Do tài liệu tham khảo bằng
Tiếng Việt còn hạn chế, trình độ có hạn và kinh nghiệm trong thực tế còn non kém,
nên đề tài chắc chắn còn nhiều thiếu sót. Vì vậy rất mong nhận được những ý kiến
đóng góp, giúp đỡ chân thành của các thầy cô cũng như của các bạn sinh viên.
6
TÓM TẮT NỘI DUNG ĐỒ ÁN
Chương 1: Giới thiệu qua về tình hình phát triển khoa học và công nghệ điện tử
trên thực tế, sự phát triển phần cứng song song với phần mềm đã đem lại hiệu quả to
lớn trong cuộc sống con người.
- Nguyên nhân chọn đề tài.
- Mục đích đề tài.
- Khảo sát bài toán.
- Các vấn đề cần giải quyết của bài toán.
- Đưa ra giải pháp.
Chương 2: Thiết kế phần cứng.
- Mô tả chức năng mong muốn của đồ án.
- Hướng xây dựng đồ án.
- Sơ đồ khối .
- Sơ đồ mạch nguyên lý.
- Các linh kiện cần sử dụng trong mạch.
Chương 3: Xây dựng phần mềm, lập trình cho hệ thống.
- Lưu đồ chương trình chính.
- Lưu đồ chương trình con.
- Phần mềm lập trình cho hệ thống.
Chương 4: Cài đặt và hoàn thiện hệ thống.
- Mô phỏng hệ thống trên protuers.
- Triển khai mạch thực tế.
- Kiểm tra và đánh giá.
7
CHƯƠNG 1: TỔNG QUAN
1.1 Đặt vấn đề
Cùng với sự phát triển của khoa học và công nghệ, các thiết bị điện tử đã,
đang và sẽ tiếp tục được ứng dụng ngày càng rộng rãi và mang lại hiệu quả trong
hầu hết các lĩnh vực khoa học kỹ thuật cũng như trong đời sống xã hội.
Việc gia công, xử lý các tín hiệu điện tử hiện đại đều dựa trên cơ sở nguyên
lý số. Vì các thiết bị làm việc dựa trên cơ sở nguyên lý số có ưu điểm hơn hẳn so với
các thiết bị làm việc dưạ trên cơ sở nguyên lý tương tự, đặc biệt là trong kỹ thuật
tính toán.
Sự phát triển mạnh mẽ của công nghệ điện tử đã cho ra đời nhiều vi mạch số
cỡ lớn với giá thành rẻ và khả năng lập trình cao đã mang lại những thay đổi lớn
trong ngành điện tử. Mạch số ở những mức độ khác nhau đã đang thâm nhập trong
các lĩnh vực điện tử thông dụng và chuyên nghiệp một cách nhanh chóng. Các
trường kỹ thuật là nơi mạch số thâm nhập mạnh mẽ và được học sinh, sinh viên ưa
chuộng do lợi ích và tính khả thi của nó. Vì thế sự hiểu biết sâu sắc về kỹ thuật số là
không thể thiếu đối với sinh viên ngành điện tử hiện nay. Nhu cầu hiểu biết về kỹ
thuật số không chỉ riêng đối với những người theo chuyên ngành điện tử mà còn đối
với những cán bộ kỹ thuật khác có sử dụng thiết bị điện tử.
1.2. Khảo sát vấn đề
Hiện nay, những ứng dụng của phần cứng được sử dụng ngày càng nhiều và
phổ biến, đảo qua các con phố chúng ta có thể nhìn thấy những bảng quảng cáo có
sử dụng đèn led hoặc sử dụng vi xử lý để hiển thị thời gian hay nhiệt độ. Chúng
trông khá đẹp mắt và tiện lợi. Trong đồ dùng gia đình cũng có rất nhiều đồ điện tử
mang tính tự động như: ti vi, máy vi tính…
Đề tài em chọn xuất phát từ ý tưởng sử dụng IC DS1307 thời gian thực, cùng
với việc mọi người cần phải biết chính xác ngày, giờ để thu xếp việc làm cho hợp lý.
Với ý tưởng này, em đã kết hợp lý thuyết và thực tế để làm đồ án về “ thiết kế lịch
vạn niên điện tử”
8
1.3. Các vấn đề cần giải quyết của bài toán
Bài toán xây dựng thiết kế lịch vạn niên điện tử đặt ra các yêu cầu sau:
- Lập trình thời gian thực cho AT 89S52 rồi từ đó áp dụng cho ứng dụng.
- Đảm bảo hiển thị đúng thời gian ngày tháng năm, giờ phút giây.
- Có khả năng phát triển và mở rộng vào các ứng dụng khác trong thực tế.
Có độ bền cao. Hệ thống chạy ổn định và giá cả hợp lý.
1.4. Giải pháp
Giải pháp đưa ra để đáp ứng yêu cầu bài toán:
- Sử dụng vi điều khiển AT 89S52.
- Sử dụng chíp thời gian thực DS 1307.
- Xây dựng chương trình phần mềm điều khiển.
- Lập trình cho nút bấm để tăng giảm giờ, phút.
1.5. Mục đích đề tài
Sự cần thiết, quan trọng cũng như tính khả thi và lợi ích của mạch số cũng
chính là lý do để em chọn và thực hiện đồ án “Thiết kế lich vạn niên điện tử” nhằm
ứng dụng kiến thức đã học vào thực tế.
Sử dụng một con IC thời gian thực (DS1307) kết hợp với vi điều khiển 89S52
, 89S52 có nhiệm vụ đọc/ghi (giờ, phút, giây, thứ, ngày…..thời gian báo thức) từ
chip DS1307. Khi thời gian báo thức trùng với thời gian thực thì loa sẽ phát ra âm
thanh trong 20 giây. Hiển thị ngày tháng năm, giờ phút giây đề trên led 7 thanh.
Mục đích yêu cầu của đề tài như sau:
Mạch hiển thị giờ, phút, giây, thứ, ngày, tháng, năm một cách chính xác
Khi thời gian báo thức trùng với thời gian thực thì loa phải phát ra âm
thanh báo thức.
9
CHƯƠNG 2: THIẾT KẾ VÀ XÂY DỰNG PHẦN CỨNG
2.1. CÁC YÊU CẦU CỦA HỆ THỐNG
Với ý tưởng xây dựng một đồng hồ báo thức kết hợp với lịch điện tử. Em đã
xây dựng bài đồ án “lịch vạn niên điện tử”. Bài đồ án là kết quả của quá trình học
tâp trên giảng đường với sự hướng dẫn của thầy cô giáo cùng với việc khảo sát nhu
cầu thực tế cũng như ứng dụng của các vi điều khiển trong cuộc sống. Việc xây
dựng hệ thống “lịch vạn niên điện tử” với các tính năng mong muốn:
-Chức năng: Hiển thị được thứ ngày tháng năm, giờ phút giây trên led 7 đoạn.
Có hệ thống chuông báo thức.
Có các nút điều chỉ thời gian cũng như chuông báo giờ.
-Giao diện: Mạch phải nhỏ gọn, dễ nhìn, dễ sử dụng.
- Hoạt động: Bền, chạy ổn định, sai số thời gian thấp.
- Tính thực tế: Mạch có ứng dụng cao ngoài cuộc sống, có thể mang ra ứng
dụng lắp đặt ngoài thực tế, giá thì lắp mạch rẻ, phù hợp.
2.2. HƯỚNG XÂY DỰNG HỆ THỐNG
Từ các yêu cầu của hệ thống như đã nên trên. Có rất nhiều giải pháp khác nhau
để xây dựng thành công hệ thống” lịch vạn niên điện tử”. Từ việc mua các linh kiện,
sử dụng vi điều khiển nào cho việc lập trình đến sử dụng chip thời gian thực nào để
đo thời gian. Mỗi loại lại có một phương pháp xây dựng và cách làm khác nhau.
Qua một quá trình tìm hiểu và nghiên cứu em đã đưa ra được phương pháp lựa
chọn tối ưu cho bài đồ án “ lịch vạn niên điện tử”:
- Sử dụng vi điều khiển 89S52 làm vi điều khiển đê lập trình.
-Sử dụng chip thời gian thực DS1307 để đo và đếm thời gian.
-Sử dụng các đèn led 7 đoạn để hiển thị thời gian.
Sau đây là quá trình xây dựng bài đồ án “ lịch vạn niên điện tử ”.
10
2.3. SƠ ĐỒ KHỐI
2.3.1. Sơ đồ khối tổng quan
* Vi điều khiển 89S52: Xử lý toàn bộ mọi công việc xuất nhập thời gian, hiển thị
thời gian, cài đặt hệt thống báo thức. Khối xử lý gồm có vi điều khiển 89S52.
* Khối thời gian thực: Dùng cho việc đếm thời gian thực, nhập xuất thời gian thực:
thứ ngày tháng năm, giờ phút giây. Khối thời gian thực gồm có chip thời gian thực
DS 1307.
* Khối hiển thị: Dùng để hiển thị thời gian, hiển thị: thứ ngày tháng năm, giờ phút
giây và hẹn thời gian báo thứ. Khối hiển thị dùng led 7 đoạn.
* Khối điều chỉnh: Dùng để điều chỉnh thời gian, điều chỉnh giờ báo thức. Khối điều
chỉnh gồm 3 nút bấm được nối trực tiếp với vi điều khiển 89S52.
* Khối tạo xung dao động: Dùng để tạo xung dao động cho vi điều khiển 89S52 và
tạo xung dao động cho chip thời gian thực DS1307.
KHỐI THỜI GIAN
THỰC
KHỐI ĐIỀU
CHỈNH
VI ĐIỀU
KHIỂN
89S52
KHỐI HIỂN THỊ
KHỐI TẠO XUNG
DAO ĐỘNG
KHỐI TẠO XUNG
DAO ĐỘNG
Hình 2.1 Sơ đồ khối tổng quan
11
2.3.2.1. Khối tạo xung dao động
2.3.2.1.1. Khối tạo xung dao động cho vi điều khiển 89S52
Sử dụng khối tạo xung dao động bằng thạch anh. Đây chính là nguồn cung
cấp xung đồng hồ cho vi điều khiển 89S52 và IC thời gian thực DS 1307. Hai chân
XTAL1 (chân 19) và XTAL2 (chân 18) ở vi điều khiển 89S52 được mắc với mạch
dao động thạch anh bên ngoài. Các điện trở C1 và C2 là cần thiết khi mắc mạch dao
động thạch anh cho 89S52. Sơ đồ mạch như sau :
Hình 2.2. Sơ đồ khối tạo giao động cho 89S52
12
2.3.2.1.2. Giao tiếp DS 1307 với khối giao động
Hình 2.3 Sơ đồ khối tạo xung dao động cho DS1307
IC thời gian thực DS 1307 kết nối với khối tạo xung dạo động qua 2 chân X1
và X2 như hình vẽ:
13
2.3.2.3. Khối hiển thị
Giao tiếp vi đều khiển với led 7 đoạn
Hình 2.4 Sơ đồ giao tiếp vi điều khiển với led 7 đoạn
Vi điều khiển 89S52 giao tiếp với led 7 đoạn theo kiểu truyền nối tiếp. Sử dụng
tất cả các chân 89S52 xuất ra led 7 đoạn. Thông qua trở băng.
14
2.3.2.4. Khối điều chỉnh
Hình 2.5 Khối điều chỉnh
Sử dụng các chân P1.6, P1.7 và P7.0 của vi điều khiển 89S52 để tạo nút bấm với các
chứa năng sau:
SET: Chuyển sang chế độ điều chỉnh ngày tháng năm, giờ phút, thứ.
DOWN: Điều chỉnh giảm.
UP/AL: Điều chỉnh tăng.
UP/AL: Còn có chức năng chuyển sang chế độ điều chỉnh hẹn giờ.
15
2.4. SƠ ĐỒ MẠCH NGUYÊN LÝ
Sơ đồ nguyên lý của mạch như sau.
16
Hình 2.6 Sơ đồ mạch nguyên lý
2.5. CÁC LINH KIỆN SỬ DỤNG TRONG MẠCH
2.5.1.Giới thiệu về vi điều khiển 89S52
2.5.1.1. Tổng Quan Về 89S52
AT89S52 là họ IC vi điều khiển do hãng Intel sản xuất. Các sản phẩm
AT89S52 thích hợp cho những ứng dụng điều khiển. Việc xử lý trên byte và các
toán số học ở cấu trúc dữ liệu nhỏ được thực hiện bằng nhiều chế độ truy xuất dữ
liệu nhanh trên RAM nội. Tập lệnh cung cấp một bảng tiện dụng của những lệnh số
học 8 bit gồm cả lệnh nhân và lệnh chia. Nó cung cấp những hổ trợ mở rộng trên
chip dùng cho những biến một bit như là kiểu dữ liệu riêng biệt cho phép quản lý và
kiểm tra bit trực tiếp trong hệ thống điều khiển.
AT89S52 cung cấp những đặc tính chuẩn như: 8 KByte bộ nhớ chỉ đọc có thể
xóa và lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, 3
17
TIMER/COUNTER 16 Bit, 5 vectơ ngắt có cấu trúc 2 mức ngắt, một Port nối tiếp
bán song công, 1 mạch dao động tạo xung Clock và bộ dao động ON-CHIP.
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.
64 KB vùng nhớ mã ngoài
64 KB vùng nhớ dữ liệu ngoại.
4 s cho hoạt động nhân hoặc chia
18
Hình 2.7 Sơ đồ khối của AT89S52
19
AT89S52
2.5.1.2. Mô tả chân 89S52
2.5.1.2.1. Sơ đồ chân 89S52
Mặc dù các thành viên của họ
8051(ví dụ 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 (Dual In-Line Pakage),
dạng vỏ dẹt vuông QPF (Quad Flat
Pakage) và dạng chip không có chân
đỡ LLC (Leadless Chip Carrier) 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. Cần phải lưu ý một số hãng
cung cấp một phiên bản 8051 có 20 chân với số cổng vào ra ít hơn cho các ứng dụng
yêu cầu thấp hơn. Tuy nhiên vì hầu hết các nhà phát triển sử dụng chíp đóng vỏ 40
chân với hai hàng chân DIP nên ta chỉ tập trung mô tả phiên bản này.
2.5.1.2.2. Chức năng các chân 89S52
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.
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.
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.
Hình 2.8 Sơ đồ chân 89S52
20
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:
Bit Tên Chức năng chuyển đổi
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
RXD
TXD
INT0
INT1
T0
T1
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.
PSEN (Program store enable):
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):
21
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): 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ừ ROM nội. Nếu ở mức 0,
89S52 thi hành chương trình từ bộ nhớ mở rộng. Chân EA được lấy làm chân cấp
nguồn 21V khi lập trình cho Eprom trong 89S52.
RST (Reset): Khi ngõ vào tín hiệu này đưa lên
mức cao ít nhất 2 chu kỳ máy, các thanh ghi 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ự động
reset.
Các giá trị tụ và điện trở được chọn là:
R
1
=10, R
2
=220, C=10 F.
Các ngõ vào bộ dao động X1, X2:
Bộ tạo dao động được tích hợp bên trong
89S52. Khi sử dụng 89S52, người ta chỉ cần
nối thêm thạch anh và các tụ. Tần số thạch anh
tùy thuộc vào mục đích của người sử dụng, giá
trị tụ thường được chọn là 33p.
Hình 2.9 Nối chân Reset
Hình 2.10 Ngõ tạo xung dao động
22
2.5.1.2.3. 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.
23
Bản đồ bộ nhớ Data bên trong Chip 89S52 được tổ chức như sau:
Địa chỉ
byte
Địa chỉ bit
Địa chỉ bit
Địa chỉ
byte
Hình 2.11 Bộ nhớ bên trong 89S52
24
RAM bên trong AT89S52 được phân chia như sau:
Các bank thanh ghi có địa chỉ từ 00H đến 1FH.
RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH.
RAM đa dụng từ 30H đến 7FH.
Các thanh ghi chức năng đặc biệt từ 80H đến FFH.
2.5.1.2.4. RAM đa dụng
RAM đa dụng có địa chỉ từ 30h – 7Fh có thể truy xuất mỗi lần 8 bit bằng cách
dùng chế độ định địa chỉ trực tiếp hay gián tiếp.
Các vùng địa chỉ thấp từ 00h – 2Fh cũng có thể sử dụng cho mục đích như
trên, ngoài các chức năng đặc biệt được đề cập ở phần sau.
2.5.1.2.5. RAM có thể định địa chỉ bit
Vùng địa chỉ từ 20h -2Fh gồm 16 byte có thể thực hiện như vùng RAM đa
dụng (truy xuât mỗi lần 8 bit) hay thực hiện truy xuất mỗi lần 1 bit bằng các lệnh xử
lý bit.
2.5.1.2.6. Các bank thanh ghi.
Vùng địa chỉ 00h – 1Fh được chia thành 4 bank thanh ghi: bank 0 từ 00h –
07h, bank 1 từ 08h – 0Fh, bank 2 từ 10h – 17h và bank 3 từ 18h – 1Fh. Các bank
thanh ghi này được đại diện bằng các thanh ghi từ R0 đến R7. Sau khi khởi động thì
hệ thống bank 0 được chọn sử dụng.
Do có 4 bank thanh ghi nên tại một thời điểm chỉ có một bank thanh ghi được
truy xuất bởi các thanh ghi R0 đến R7. Viêc thay đổi bank thanh ghi được thực hiện
thông qua thanh ghi từ trạng thái chương trình (PSW).
25
2.5.1.2.7. Các thanh ghi có chức năng đặc biệt
Các thanh ghi trong 89S52 được định dạng như một phần của RAM trên chip
vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi bộ đếm chương trình và
thanh ghi lệnh vì các thanh ghi này hiếm khi bị tác động trực tiếp). Cũng như R0
đến R7, 89S52 có 21 thanh ghi có chức năng đặc biệt (SFR: Special Function
Register) ở vùng trên của RAM nội từ địa chỉ 80H đến 0FFH.
Sau đây là một vài thanh ghi đặc biệt thường được sử dụng:
2.5.1.2.7.1. Thanh ghi trạng thái chương trình (PSW: Program Status Word)
BIT SYMBOL ADDRESS DESCRIPTION
PSW.7 CY D7H Cary Flag
PSW.6 AC D6H Auxiliary Cary Flag
PSW.5 F0 D5H Flag 0
PSW4 RS1 D4H Register Bank Select 1
PSW.3 RS0 D3H Register Bank Select 0
00=Bank 0; address 00H07H
01=Bank 1; address 08H0FH
10=Bank 2; address 10H17H
11=Bank 3; address 18H1FH
PSW.2 OV D2H Overlow Flag
PSW.1 - D1H Reserved
PSW.0 P DOH Even Parity Flag