TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ
BỘ MÔN ĐIỆN TỬ VIỄN THÔNG
LUẬN VĂN TỐT NGHIỆP
CHUYÊN NGÀNH ĐIỆN TỬ VIỄN THÔNG
THIẾT KẾ
LỊCH VẠN NIÊN ĐIỆN TỬ
Giáo viên hướng dẫn:
Sinh viên thực hiện:
TS.LƯƠNG VINH QUỐC DANH
NGUYỄN VĂN BÌNH
MSSV: 1071075
Lớp: Điện Tử Viễn Thông 2.K33
Cần Thơ 2010
THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN TỬ
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
................................................................................................
................................................................................................
................................................................................................
................................................................................................
................................................................................................
................................................................................................
................................................................................................
................................................................................................
................................................................................................
................................................................................................
................................................................................................
................................................................................................
................................................................................................
................................................................................................
................................................................................................
................................................................................................
................................................................................................
................................................................................................
................................................................................................
................................................................................................
Giáo viên hướng dẫn:
TS.Lương Vinh Quốc Danh
II
Sinh viên thực hiện:
Nguyễn Văn Bình
THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN TỬ
LỜI CẢM TẠ
Đầu tiên em xin gửi lời cảm ơn đến Ban Giám Hiệu trường Đại Học Cần Thơ
đã cho em một môi trường học tập tốt, cũng như là tạo nhiều điều kiện thuận lợi để
em có thể phát huy được khả năng của mình.
Em xin chân thành cảm ơn đến quý Thầy/Cô, đặc biệt là quý Thầy/Cô trong
bộ môn Điện Tử -Viễn Thông thuộc khoa Công Nghệ trường Đại Học Cần Thơ đã
tận tình chỉ dạy và truyền đạt những kiến thức quý báu để em có thể hoàn thành
luận án này, đồng thời đó cũng là một hành trang đáng quý để em có thể tiếp bước
trên con đường sự nghiệp sau này.
Em xin bài tỏ lòng biết ơn sâu sắc đối với thầy Lương Vinh Quốc Danh là
người tận tình hướng dẫn và động viên em trong suốt thời gian em thực hiện luận
văn tốt nghiệp này.
Để hoàn thành luận văn tốt nghiệp này cũng có sự đóng góp không nhỏ của
các bạn. Tôi xin được gởi lời cảm ơn đến tất cả các bạn.
Ngoài ra tôi cũng xin gửi lời cảm ơn đến tất cả những người thân xung quanh
đã giúp đỡ về vật chất và tinh thần để tôi có thể hoàn thành xong luận văn tốt
nghiệp này.
Cần Thơ ngày tháng năm 2010
Sinh viên thực hiện
Nguyễn Văn Bình
Giáo viên hướng dẫn:
TS.Lương Vinh Quốc Danh
III
Sinh viên thực hiện:
Nguyễn Văn Bình
THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN TỬ
TÓM TẮT ĐỀ TÀI
Lịch Vạn Niên Điện Tử thiết kế dựa trên sự kết hợp giữa IC thời gian
thực (DS1307) và vi điều khiển 89S52 với bộ điều khiển sử dụng remote hồng
ngoại. Ngoài ra mạch còn sử dụng cảm biến nhiệt độ (LM35) cùng với bộ biến đổi
từ tương tự sang số (ADC0804) để đo nhiệt độ xung quanh và hiển thị ra led 7
đoạn. Với bộ điều khiển dùng remote hồng ngoại, chúng ta có thể chọn thời gian
báo thức hoặc điều chỉnh giờ, ngày, tháng…. rất dễ dàng và thuận tiện (giống như
sử dụng Romote để điều khiển một chiếc TV vậy!). Mạch đã thiết kế thành công,
hoạt động ổn định với độ chính xác cao.
ABSTRACT
Electronic perpetual calendar designed based on a combination of realtime IC (DS1307) and 89S52 microcontroller with controller using infrared remote.
In addition, it uses a temperature sensor circuit ( LM35) with the transformation
from analog to digital (ADC0804) to measure ambient temperature and the LED 7
segment display. With the controller using infrared remote, we can select the alarm
time or adjust hours, days, months .... very easy and convenient (like Romote used
to control a TV too!). The circuit was successfully designed, stable operation with
high accuracy.
Key word: Infrared remote, measure temperature and calendar
Title: Electronic perpetual calendar
Giáo viên hướng dẫn:
TS.Lương Vinh Quốc Danh
IV
Sinh viên thực hiện:
Nguyễn Văn Bình
THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN TỬ
MỤC LỤC
LỜI CẢM TẠ.............................................................................................................III
TÓM TẮT ĐỀ TÀI....................................................................................................IV
ABSTRACT...............................................................................................................IV
MỤC LỤC...................................................................................................................V
CHƯƠNG I: MỞ ĐẦU...............................................................................................1
I. KHÁI QUÁT VẤN ĐỀ.........................................................................................1
II. LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ.....................................................................1
III. MỤC ĐÍCH YÊU CẦU CỦA ĐỀ TÀI..............................................................2
CHƯƠNG II: CƠ SỞ LÝ THUYẾT...........................................................................3
A.
ĐO NHIỆT ĐỘ.................................................................................................3
I.GIỚI THIỆU VỀ VI ĐIỀU KHIỂN 89S52...........................................................3
1. Tổng quan về 89S52.........................................................................................3
2. Mô tả chân 89S52.............................................................................................5
2.1. Sơ đồ chân 89S52......................................................................................5
2.2. Chức năng của các chân 89S52...............................................................5
3. Tổ chức bộ nhớ bên trong 89S52.....................................................................7
3.1. RAM đa dụng.............................................................................................9
3.2. RAM có thể định địa chỉ bit......................................................................9
3.3. Các bank thanh ghi...................................................................................9
3.4. Các thanh ghi có chức năng đặc biệt........................................................9
3.4.1. Thanh ghi trạng thái chương trình (PSW: Program Status Word). .10
3.4.2. Thanh ghi TIMER............................................................................12
3.4.3. Thanh ghi ngắt (INTERRUPT)........................................................12
II. SƠ LƯỢC VỀ CẢM BIẾN NHIỆT LM35D....................................................16
III. KHÁI QUÁT VỀ ADC0804............................................................................16
1. Mô tả chân ADC0804.....................................................................................16
2. Tổ chức bên trong ADC0804.........................................................................19
2.1. Quá trình chuyển đổi của chip ADC0804...............................................19
2.1. Quá trình chuyển đổi của chip ADC0804...............................................20
2.2. Quá trình đọc dữ liệu từ chip ADC0804.................................................20
IV. GIỚI THIỆU IC CHỐT 74HC374...................................................................21
1. Mô tả chân IC 74HC374................................................................................21
2. Tổ chức bên trong IC74HC374......................................................................21
B. ĐỒNG HỒ THỜI GIAN THỰC VÀ BỘ ĐIỀU KHIỂN TỪ XA DÙNG
REMOTE HỒNG NGOẠI.........................................................................................22
I. ĐIỀU KHIỂN TỪ XA DÙNG REMOTE HỒNG NGOẠI...............................22
1. Hồng ngoại là gì?............................................................................................22
2. Cách tạo ra hồng ngoại...................................................................................22
3. Cách thu tín hiê uê hồng ngoại.........................................................................22
4. Khảo sát tín hiệu hồng ngoại phát ra từ Remote SONY...............................24
II. ĐỒNG HỒ THỜI GIAN THỰC.......................................................................26
Giáo viên hướng dẫn:
TS.Lương Vinh Quốc Danh
V
Sinh viên thực hiện:
Nguyễn Văn Bình
THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN TỬ
1. Tổng quan về DS1307....................................................................................26
1.1. Sơ đồ chân DS1307.................................................................................26
1.2. Cấu tạo bên trong DS1307......................................................................27
2. Khái quát giao diện I2C.................................................................................31
3. Mode (chế độ) truyền dữ liệu giữa DS1307 và AT89S52.............................34
3.1. Mode Data Write (chế độ ghi dữ liệu)....................................................34
3.2. Mode Data Read (chế độ dọc dữ liệu)....................................................36
CHƯƠNG III: THIẾT KẾ PHẦN CỨNG................................................................38
A. ĐO NHIỆT ĐỘ......................................................................................................38
I. SƠ ĐỒ VÀ CHỨC NĂNG TỪNG KHỐI.........................................................38
1. Sơ đồ khối.......................................................................................................38
2. Chức năng của từng khối................................................................................38
2.1. Cảm biến nhiệt và khuếch đại.................................................................38
2.2. Biến đổi ADC và khối xử lý trung tâm (CPU_1)....................................38
2.3. Khối hiển thị thứ 1 sử dụng LED 7 đoạn................................................39
2.4. Hiệu ứng dùng LED đơn.........................................................................39
II. SƠ ĐỒ CHI TIẾT VÀ NGUYÊN TẮT HOẠT ĐỘNG...................................39
1. Sơ đồ chi tiết...................................................................................................39
1.1.Cảm biến nhiệt và bộ khuếch đại.............................................................39
1.2. Biến đổi ADC và khối xử lý trung tâm (CPU_1)....................................40
1.3. Khối hiển thị thứ 1 sử dụng LED 7 đoạn................................................42
1.4. Hiệu ứng dùng LED đơn.........................................................................43
2. Nguyên tắt hoạt động.....................................................................................44
B. ĐỒNG HỒ THỜI GIAN THỰC VÀ BỘ ĐIỀU KHIỂN TỪ XA DÙNG
REMOTE HỒNG NGOẠI.........................................................................................45
I. SƠ ĐỒ VÀ CHỨC NĂNG TỪNG KHỐI.........................................................45
1. Sơ đồ khối.......................................................................................................45
2. Chức năng của từng khối................................................................................45
2.1. Khối thời gian thực..................................................................................45
2.2. Khối phát hồng ngoại..............................................................................45
2.3. Khối thu hồng ngoại................................................................................46
2.4. Khối xử lý trung tâm (CPU_2)................................................................46
2.5. Khối âm thanh và hiển thị thứ 2..............................................................46
II.SƠ ĐỒ CHI TIẾT VÀ NGUYÊN TẮT HOẠT ĐỘNG....................................46
1. Sơ đồ chi tiết...................................................................................................46
1.1. Khối thời gian thực (DS1307).................................................................46
1.2. Khối thu hồng ngoại................................................................................47
1.3. Khối xử lý trung tâm (CPU_2)................................................................47
1.4. Khối âm thanh.........................................................................................48
1.5. Khối hiển thị thứ 2...................................................................................48
2. Nguyên tắt hoạt động....................................................................................50
CHƯƠNG III: THIẾT KẾ PHẦN MỀM..................................................................51
A. ĐO NHIỆT ĐỘ......................................................................................................52
Giáo viên hướng dẫn:
TS.Lương Vinh Quốc Danh
VI
Sinh viên thực hiện:
Nguyễn Văn Bình
THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN TỬ
I. LƯU ĐỒ VÀ GIẢI THUẬT CHƯƠNG TRÌNH...............................................52
1. Giải thuật........................................................................................................52
1.1. Giải thuật chương trình chính................................................................52
1.2. Giải thuật chương trình con “ TRUY_CAP_ADC”...............................52
2. Lưu đồ.............................................................................................................52
2.1. Lưu đồ chương trình chính.....................................................................52
2.2. Lưu đồ chương trình con.........................................................................53
2.2.1. Lưu đồ chương trình con “ TRUY_CAP_ADC”............................53
2.2.2. Lưu đồ chương trình con “HIENTHI_1”........................................54
II. PHẦN MỀM DO NHIỆT ĐỘ (CODE_1)........................................................55
B. ĐỒNG HỒ THỜI GIAN THỰC VÀ BỘ ĐIỀU KHIỂN TỪ XA DÙNG
REMOTE HỒNG NGOẠI.........................................................................................56
I. LƯU ĐỒ VÀ GIẢI THUẬT CHƯƠNG TRÌNH...............................................56
1. Giải thuật........................................................................................................56
1.1. Giải thuật chương trình chính................................................................56
1.2. Giải thuật chương trình ngắt “GIAI_MA_REMOTE_SONY”...............56
1.3. Giải thuật chương trình con “WRITE_CLOCK”...................................57
1.4. Giải thuật chương trình con “READ_CLOCK”....................................58
2. Lưu đồ.............................................................................................................58
2.1. Lưu đồ chương trình chính.....................................................................58
2.2. Lưu đồ chương trình ngắt “GIAI_MA_REMOTE_SONY”....................59
2.3. Lưu đồ chương trình con.........................................................................61
2.3. Lưu đồ chương trình con.........................................................................62
2.3.1. Lưu đồ chương trình con “WRITE_CLOCK”................................62
2.3.2. Lưu đồ chương trình con “READ_CLOCK”..................................62
2.3.2. Lưu đồ chương trình con “READ_CLOCK”..................................63
2.3.3. Lưu đồ chương trình con ghi 1 byte vào DS1307“SEND_BYTE” 64
2.3.4. Lưu đồ chương trình con đọc 1 byte từ DS1307“READ_BYTE”..65
2.3.5. Lưu đồ chương trình con “ALARM_CLOCK_TEST”...................66
2.3.6. Lưu đồ chương trình con “TAT_MO_CHUONG”..........................67
2.3.7. Lưu đồ chương trình con “HIEU_UNG_CHINH”..........................68
2.3.8. Lưu đồ chương trình con “HIENTHI_2”........................................69
II. PHẦN MỀM ĐỒNG HỒ THỜI GIAN THỰC VÀ BỘ ĐIỀU KHIỂN TỪ XA
DÙNG REMOTE HỒNG NGOẠI (CODE_2)....................................................70
CHƯƠNG IV: KẾT LUẬN VÀ ĐỀ NGHỊ...............................................................71
I. KẾT LUẬN.........................................................................................................71
II. ĐỀ NGHỊ...........................................................................................................74
TÀI LIỆU THAM KHẢO..........................................................................................75
PHỤ LỤC...................................................................................................................76
1. Phần mềm đo nhiệt độ (CODE_1).................................................................76
2. Phần mềm đồng hồ số và điều khiển dùng remote hồng ngoại (CODE_2). .80
3. Hướng dẫn sử dụng bộ điều khiển dùng Remote SONY..............................98
4. Code word của remote SONY........................................................................99
Giáo viên hướng dẫn:
TS.Lương Vinh Quốc Danh
VII
Sinh viên thực hiện:
Nguyễn Văn Bình
THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN TỬ
Giáo viên hướng dẫn:
TS.Lương Vinh Quốc Danh
VIII
Sinh viên thực hiện:
Nguyễn Văn Bình
THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN TỬ
CHƯƠNG I: MỞ ĐẦU
I. KHÁI QUÁT VẤN ĐỀ
Trong giai đoạn hiện nay với sự phát triển vượt bật của công nghệ Nano
hàng loạt IC mới được chế tạo. Những IC này thông minh hơn rất nhiều so với các
IC trước và đặc biệt là chúng ta có thể ghi/xóa dữ liệu vào một cách dể dàng. Vì thế
nó được sử dụng trong nhiều thiết bị Điện - Điện Tử và ngày càng thể hiện được
bản chất ưu việt của mình. Điển hình là dòng IC 8051/8052.
Với sự ra đời của dòng IC mới đã làm thúc đẩy sự phát triển của nhũng IC
thời gian thực như DS1307, DS12887… Song song đó truyền dữ liệu không dây
cũng bắt phát triển với nhiều kiểu truyền khác nhau và phức tạp, trong tất cả các
kiểu truyền đó thì truyền dữ liệu bằng tia hồng ngoại được xem là đơn giản nhất.
Cùng với sự phát triển của khoa học kỹ thuật đã góp phần nâng cao đời sống
của con người. Cũng chính vì thế mà 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ý.
Xuất phát từ thực tiển này em đã đi đến quyết định “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.
II. LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Đề tài này trước khi tôi thực hiện đã có một số sinh viên trường đại học
Bách Khoa Thành Phố Hồ Chí Minh thực hiện nhưng kết quả chưa được như
mong muốn vì mạch chạy không ổn định và thường hay bị “treo”. Hơn nửa họ
chỉ “Thiết kế Lịch Vạn Niên Điện Tử” với những công tắt để điều chỉnh, không
dùng remote hồng ngoại để điểu chỉnh. Chính vì thế tôi quyết định chọn đề tài này
và kết hợp thêm bộ điều khiển từ xa dùng remote hồng ngoại. Vì tôi mong muốn
tạo ra một thiết bị với nhiều thuận lợi hơn cho người dùng và độ tin cậy cao.
Giáo viên hướng dẫn:
TS.Lương Vinh Quốc Danh
IX
Sinh viên thực hiện:
Nguyễn Văn Bình
THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN TỬ
III. MỤC ĐÍCH YÊU CẦU CỦA ĐỀ TÀI
Trong luận án này tôi 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 để tạo thành giao diện I2C, 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 1 phút, đồng thời khi
có tín hiệu phát ra từ remote hồng ngoại thì 89S52 bắt đầu giãi mã tín hiệu này, sau
khi giải mã 89S52 ghi dữ liệu nhận được vào DS1307. Ngoài ra mạch còn sử dụng
cảm biến nhiệt (LM35), ngỏ ra của cảm biến này được đưa qua bộ biến đổi tương tự
sang số (ADC0804), dữ liệu được 89S52 đọc ra từ ADC0804 và hiển thị kết quả ra
led 7 đoạn.
Từ đây có thể suy ra 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
Đo nhiệt độ và hiển thị ra led 7 đoạn
Bộ cài đặt thời gian được sử dụng bằng remote hồng ngoại, xác xuất lỗi
khi ấn remote là thấp nhất
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
Giá thành sản phẩm không quá đắc.
Dựa vào yêu cầu của đề tài tôi đã phân ra thành 2 khối lớn:
o Khối A: Đo nhiệt độ và hiển thị kết quả ra led 7 đoạn
o Khối B: Đồng hồ thời gian thực và bộ điều khiển từ xa dùng remote hồng
ngoại
Giáo viên hướng dẫn:
TS.Lương Vinh Quốc Danh
X
Sinh viên thực hiện:
Nguyễn Văn Bình
THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN TỬ
CHƯƠNG II: CƠ SỞ LÝ THUYẾT
A. ĐO NHIỆT ĐỘ
I.GIỚI THIỆU VỀ VI ĐIỀU KHIỂN 89S52
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
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.
Giáo viên hướng dẫn:
TS.Lương Vinh Quốc Danh
XI
Sinh viên thực hiện:
Nguyễn Văn Bình
THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN TỬ
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
Sơ đồ khối của AT89S52
Giáo viên hướng dẫn:
TS.Lương Vinh Quốc Danh
XII
Sinh viên thực hiện:
Nguyễn Văn Bình
THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN TỬ
2. Mô tả chân 89S52
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ỏ
AT89S52
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.2. Chức năng của 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.
Giáo viên hướng dẫn:
TS.Lương Vinh Quốc Danh
XIII
Sinh viên thực hiện:
Nguyễn Văn Bình
THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN TỬ
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
RXD
Ngõ vào dữ liệu nối tiếp.
P3.1
TXD
Ngõ xuất dữ liệu nối tiếp.
P3.2
INT0
Ngõ vào ngắt cứng thứ 0.
P3.3
INT1
Ngõ vào ngắt cứng thứ 1.
P3.4
T0
Ngõ vào TIMER/ COUNTER thứ 0.
P3.5
T1
Ngõ vào của TIMER/ COUNTER thứ 1.
P3.6
WR
Tín hiệu ghi dữ liệu lên bộ nhớ ngoài.
P3.7
RD
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):
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.
Giáo viên hướng dẫn:
TS.Lương Vinh Quốc Danh
XIV
Sinh viên thực hiện:
Nguyễn Văn Bình
THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN 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à:
R1=10, R2=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.
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.
Giáo viên hướng dẫn:
TS.Lương Vinh Quốc Danh
XV
Sinh viên thực hiện:
Nguyễn Văn Bình
THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN TỬ
Bản đồ bộ nhớ Data bên trong Chip 89S52 được tổ chức như sau:
Địa chỉ
byte
Địa chỉ bit
Giáo viên hướng dẫn:
TS.Lương Vinh Quốc Danh
Địa chỉ
byte
XVI
Địa chỉ bit
Sinh viên thực hiện:
Nguyễn Văn Bình
THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN TỬ
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
3.1. 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.
3.2. 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.
3.3. 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).
3.4. 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
Giáo viên hướng dẫn:
TS.Lương Vinh Quốc Danh
XVII
Sinh viên thực hiện:
Nguyễn Văn Bình
THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN TỬ
đế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:
3.4.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
Chức năng từng bit trạng thái chương trình
- Cờ Carry CY (Carry Flag):
Cờ nhớ thường nó được dùng cho các lệnh toán học: C =1 nếu phép toán
cộng có sự tràn hoặc phép trừ có mượn và ngược lại C = 0 nếu phép toán cộng
không tràn và phép trừ không có mượn.
- Cờ Carry phụ AC (Auxiliary Carry Flag):
Giáo viên hướng dẫn:
TS.Lương Vinh Quốc Danh
XVIII
Sinh viên thực hiện:
Nguyễn Văn Bình
THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN TỬ
Khi cộng những giá trị BCD (Binary Code Decimal), cờ nhớ phụ AC được
set nếu kết quả 4 bit thấp nằm trong phạm vi điều khiển 0AH - 0FH. Ngược lại AC
=0
- Cờ 0 (Flag 0):
Cờ 0 (F0) là 1 bit cờ đa dụng dùng cho các ứng dụng của người dùng.
- Những bit chọn bank thanh ghi truy xuất:
RS1 và RS0 quyết định dãy thanh ghi tích cực. Chúng được xóa sau khi reset
hệ thống và được thay đổi bởi phần mềm khi cần thiết.
Tùy theo RS1, RS0 = 00, 01, 10, 11 sẽ được chọn Bank tích cực tương ứng là
Bank 0, Bank1, Bank2 và Bank3.
RS1
RS0
BANK
0
0
0
0
1
1
1
0
2
1
1
3
- Cờ tràn OV (Over Flag):
Cờ tràn được set sau một hoạt động cộng hoặc trừ nếu có sự tràn toán học.
- Bit Parity (P):
Bit tự động được set hay Clear ở mỗi chu kỳ máy để lập Parity chẵn với
thanh ghi A. Sự đếm các bit 1 trong thanh ghi A cộng với bit Parity luôn luôn chẵn.
Ví dụ A chứa 10101101B thì bit P set lên một để tổng số bit 1 trong A và P tạo thành
số chẵn.
Giáo viên hướng dẫn:
TS.Lương Vinh Quốc Danh
XIX
Sinh viên thực hiện:
Nguyễn Văn Bình
THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN TỬ
Bit Parity thường được dùng trong sự kết hợp với những thủ tục của Port nối
tiếp để tạo ra bit Parity trước khi phát đi hoặc kiểm tra bit Parity sau khi thu.
3.4.2. Thanh ghi TIMER
Vi Điều Khiển 89S52 có 3 timer 16 bit, mỗi timer có bốn cách làm việc.
Người ta sử dụng các timer để:
o Định khoảng thời gian.
o Đếm sự kiện.
o Tạo tốc độ baud cho port nối tiếp trong 89S52.
Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở những
khoảng đều đặn và đặt cờ tràn timer. Cờ được dùng để đồng bộ hóa chương trình để
thực hiện một tác động như kiểm tra trạng thái của các ngõ vào hoặc gửi sự kiện ra
các ngõ ra. Các ứng dụng khác có thể sử dụng việc tạo xung nhịp đều đặn của timer
để đo thời gian trôi qua giữa hai sự kiện (ví dụ đo độ rộng xung).
3.4.3. Thanh ghi ngắt (INTERRUPT)
Một ngắt là sự xảy ra một điều kiện, một sự kiện mà nó gây ra treo tạm thời
thời chương trình chính trong khi điều kiện đó được phục vụ bởi một chương trình
khác.
Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng dụng
vi điều khiển. Chúng cho phép hệ thống đáp ứng bất đồng bộ với một sự kiện và
giải quyết sự kiện đó trong khi một chương trình khác đang thực thi.
- Tổ chức ngắt của 89S52:
Có 5 nguồn ngắt ở 89S52: 2 ngắt ngoài, 2 ngắt từ timer và 1 ngắt port
nối tiếp. Tất cả các ngắt theo mặc nhiên đều bị cấm sau khi reset hệ thống và được
cho phép từng cái một bằng phần mềm. Mức độ ưu tiên của các ngắt được lưu trong
Giáo viên hướng dẫn:
TS.Lương Vinh Quốc Danh
XX
Sinh viên thực hiện:
Nguyễn Văn Bình
- Xem thêm -