Chương trình là tập hợp các lệnh để xử lý dữ liệu thực hiện từng lệnh được lưu trữ trong bộ nhớ, công việc thực hành lệnh bao gồm: nhận lệnh từ bộ nhớ, giải mã lệnh và thực hiện lệnh sau
Trang 1THIẾT KẾ LED TRÁI TIM DÙNG VI
ĐIỀU KHIỂN
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC TÂY ĐÔ KHOA KỸ THUẬT CÔNG NGHỆ
NIÊN LUẬN 1
GIẢNG VIÊN HƯỚNG DẪN: SINH VIÊN THỰC HIỆN:
THẦY: ĐẶNG KIM SẢN HUỲNH THIỆN TÂM
SĐT: 0973 965 338 MSSV: 13D520201037 LỚP: ĐIỆN - ĐIỆN TỬ 8
CẦN THƠ, NĂM 2016
Trang 2MỤC LỤC
*****
Lời cảm ơn 1
Lời cam đoan 2
Nhận xét của giảng viên 3
Lời nói đầu 4
Chương 1: Tổng quan về đề tài 7
I/ Đặt vấn đề 7
II/ Mục tiêu 7
III/ Hướng giải quyết 8
Chương 2: Giới thiệu linh kiện 9
I/ AT89S52 9
1/ Tổng quan về AT89S52 9
2/ Mô tả chân của AT89S52 10
2.1/ Sơ đồ chân của AT89S52 10
2.2/ Chức năng của các chân AT89S52 11
3/ Tổ chức bộ nhớ bên trong của AT89S52 14
3.1/ RAM đa dụng 15
3.2/ RAM có thể định địa chỉ bit 15
Trang 33.3/ Các bank thanh ghi 15
3.4/ Các thanh ghi có chức năng đặc biệt 15
3.4.1/ Thanh ghi trạng thái chương trình 16
3.4.2/ Thanh ghi Timer 17
3.4.3/ Thanh ghi ngắt 18
3.4.3.1/ Tổ chức ngắt của AT89S52 18
3.4.3.2/ Cho phép và cắm ngắt 19
3.4.3.3/ Các cờ ngắt 20
3.4.3.4/ Các vecto ngắt 20
II/ Một số linh kiện khác trong mạch 21
1/ Thạch anh 12MHz 21
2/ Tụ gốm 33 pF 22
3/ Tụ hóa 10 µF 22
4/ Điện trờ 220 µ 23
5/ LED 25
Chương 3: Điều khiển IC AT89S52 bằng chương trình Protues 26
I/ Sơ đồ 26
1/ Sơ đồ nguyên lý 26
2/ Sơ đồ mạch in 28
3/ Sơ đồ xuất file pdf 29
II/ Chương trình nạp code cho IC AT89S52 hoạt động 29
Trang 4Chương 4: Mở rộng kết luận và đánh giá 51
I/ Kết quả đạt được 51
II/ Ưu điểm – nhược điểm 51
1/ Ưu điểm 51
2/ Nhược điểm 51
III/ Mở rộng 51
Tài liệu tham khảo 52
Trang 5DANH MỤC HÌNH
*****
Hình 1: Sơ đồ khối của AT89S52 10
Hình 2: Sơ đồ chân của AT89S52 10
Hình 3: Mạch chân reset 12
Hình 4: Các ngõ vào X1, X2 13
Hình 5: Cấu trúc bộ nhớ RAM bên trong vi điều khiển 14
Hình 6: Thanh ghi trạng thái chương trình 16
Hình 7: Thanh ghi IE 19
Hình 8: Các vecto ngắt 20
Hình 9: Thạch anh 12 MHz 21
Hình 10: Tụ gốm 33pF 22
Hình 11: Tụ hóa 10µF 22
Hình 12: Điện trở 220Ω 23
Hình 13: Đèn Led 25
Hình 14: Sơ đồ nguyên lý 26
Hình 15: Sơ đồ mạch in 28
Hình 16: Sơ đồ xuất file pdf 29
Trang 6DANH MỤC BẢNG
*****
Bảng 1: Chân port 3 11Bảng 2: Những bit chọn nack thanh ghi truy xuất 17Bảng 3: Các loại cờ ngắt 20
Trang 7LỜI CẢM ƠN!
*****
Trong suốt quá trình thực hiện niên luận, em vô cùng chân thành biết ơn quý thầy
cô đã nhiệt tình giảng dạy rất nhiều kiến thức hữu ích Nay đã là năm ba, cũng là thời gian chúng em bước vào niên luận 1 của mình và đã gặp không ít khó khăn, em đã hết
sức nỗ lực và tìm hiểu, nhưng hơn hết là sự chỉ dạy tận tình của thầy Đặng Kim Sản
Nay niên luận đã hoàn thành, em chân thành cảm ơn thầy đã tận tình chỉ dẫn Để đáp ứng lại sự quan tâm đó em sẽ cố gắng phát huy hơn nữa trong các niên luận sau và do kiến thức còn hạn hẹp nên trong quá trình thực hiện niên luận em không thể tránh khỏi những sai sót, mong quý thầy cô thông cảm bỏ qua và có những hướng giúp đỡ để em
có thể hoàn chỉnh hơn niên luận của mình
Em cũng xin gửi lời cảm ơn đến gia đình và bạn bè đã động viên và giúp đỡ rất nhiều trong suốt quá trình học tập cũng như trong thời gian thực hiện niên luận
Xin chân thành cảm ơn!
Cần Thơ, ngày 20 tháng 3 năm 2016
Trang 8LỜI CAM ĐOAN
*****
Em xin cam đoan: Niên luận này là công trình nghiên cứu thực sự của em, được thực hiện dựa trên cơ sở nghiên cứu lý thuyết, kiến thức kinh nghiệm, nghiên cứu khảo
sát tình hình thực tiễn cùng với sự hướng dẫn của thầy Đặng Kim Sản Nội dung niên
luận có tham khảo và sử dụng các tài liệu, thông tin được đăng tải trên các tác phẩm, tạp chí và các trang web theo danh mục tài liệu tham khảo của luận văn
Những thông tin về số liệu mô phỏng, kết quả đạt được trong niên luận hoàn toàn trung thực
Cần Thơ, ngày 20 tháng 3 năm 2016 Sinh viên thực hiện đề tài
Huỳnh Thiện Tâm
Trang 9NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
*****
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Cần Thơ, ngày… tháng… năm………
Giảng viên
Trang 10và nhiều chức năng hơn Các thiết bị điện tử ngày càng nhiều chức năng trong khi giá thành ngày càng rẻ hơn, chính vì vậy điện tử có mặt khắp mọi nơi Bước đột phá mới trong công nghệ điện tử, công ty trẻ tuổi Intel cho ra đời bộ vi xử lý đầu tiên Đột phá ở chỗ: "Đó là một kết cấu logic mà có thể thay đổi chức năng của nó bằng chương trình ngoài chứ không phát triển theo hướng tạo một cấu trúc phần cứng chỉ thực hiện theo một số chức năng nhất định như trước đây" Tức là phần cứng chỉ đóng vai trò thứ yếu, phần mềm (chương trình) đóng vai trò chủ đạo đối với các chức năng cần thực hiện Nhờ vậy vi xử lý có sự mềm dẻo hóa trong các chức năng của mình Ngày nay vi xử lý
có tốc độ tính toán rất cao và khả năng xử lý rất lớn Vi xử lý có các khối chức năng cần thiết để lấy dữ liệu, xử lý dữ liệu và xuất dữ liệu ra ngoài sau khi đã xử lý Và chức năng chính của vi xử lý chính là xử lý dữ liệu, chẳng hạn như cộng, trừ, nhân, chia, so sánh.v.v Vi xử lý không có khả năng giao tiếp trực tiếp với các thiết bị ngoại vi, nó chỉ có khả năng nhận và xử lý dữ liệu mà thôi Để vi xử lý hoạt động cần có chương trình kèm theo, các chương trình này điều khiển các mạch logic và từ đó vi xử lý xử lý các dữ liệu cần thiết theo yêu cầu Chương trình là tập hợp các lệnh để xử lý dữ liệu thực hiện từng lệnh được lưu trữ trong bộ nhớ, công việc thực hành lệnh bao gồm: nhận lệnh từ bộ nhớ, giải mã lệnh và thực hiện lệnh sau khi đã giải mã Để thực hiện các công việc với các thiết bị cuối cùng, chẳng hạn điều khiển động cơ, hiển thị kí tự trên màn hình đòi hỏi phải kết hợp vi xử lý với các mạch điện giao tiếp với bên ngoài được gọi
là các thiết bị I/O (nhập/xuất) hay còn gọi là các thiết bị ngoại vi Bản thân các vi xử lý khi đứng một mình không có nhiều hiệu quả sử dụng, nhưng khi là một phần của một máy tính, thì hiệu quả ứng dụng của vi xử lý là rất lớn Vi xử lý kết hợp với các thiết bị
Trang 11khác được sử trong các hệ thống lớn, phức tạp đòi hỏi phải xử lý một lượng lớn các phép tính phức tạp, có tốc độ nhanh Chẳng hạn như các hệ thống sản xuất tự động trong
công nghiệp, các tổng đài điện thoại, hoặc ở các robot có khả năng hoạt động phức tạp v.v Bộ Vi xử lý có khả năng vượt bậc so với các hệ thống khác về khả năng tính toán,
xử lý, và thay đổi chương trình linh hoạt theo mục đích người dùng, đặc biệt hiệu quả đối với các bài toán và hệ thống lớn Tuy nhiên đối với các ứng dụng nhỏ, tầm tính toán không đòi hỏi khả năng tính toán lớn thì việc ứng dụng vi xử lý cần cân nhắc Bởi vì hệ thống dù lớn hay nhỏ, nếu dùng vi xử lý thì cũng đòi hỏi các khối mạch điện giao tiếp phức tạp như nhau Các khối này bao gồm bộ nhớ để chứa dữ liệu và chương trình thực hiện, các mạch điện giao tiếp ngoại vi để xuất nhập và điều khiển trở lại, các khối này cùng liên kết với vi xử lý thì mới thực hiện được công việc
Lập trình vi điều khiển với AT89S52 đòi hỏi người thiết kế phải hiểu biết tinh tường về các thành phần vi xử lý, bộ nhớ, các thiết bị ngoại vi Hệ thống được tạo ra khá phức tạp, chiếm nhiều không gian, mạch in phức tạp và vấn đề chính là trình độ người thiết kế Kết quả là giá thành sản phẩm cuối cùng rất cao, không phù hợp để áp dụng cho các hệ thống nhỏ Vì một số nhược điểm trên nên các nhà chế tạo tích hợp một ít bộ nhớ và một số mạch giao tiếp ngoại vi cùng với vi xử lý vào một IC duy nhất được gọi
là Microcontroller-Vi điều khiển Vi điều khiển có khả năng tương tự như khả năng của
vi xử lý, nhưng cấu trúc phần cứng dành cho người dùng đơn giản hơn nhiều Vi điều khiển ra đời mang lại sự tiện lợi đối với người dùng, họ không cần nắm vững một khối lượng kiến thức quá lớn như người dùng vi xử lý, kết cấu mạch điện dành cho người dùng cũng trở nên đơn giản hơn nhiều và có khả năng giao tiếp trực tiếp với các thiết bị bên ngoài Vi điều khiển tuy được xây dựng với phần cứng dành cho người sử dụng đơn giản hơn, nhưng thay vào lợi điểm này là khả năng xử lý bị giới hạn (tốc độ xử lý chậm hơn và khả năng tính toán ít hơn, dung lượng chương trình bị giới hạn) Thay vào đó, Vi điều khiển có giá thành rẻ hơn nhiều so với vi xử lý, việc sử dụng đơn giản, do đó nó được ứng dụng rộng rãi vào nhiều ứng dụng có chức năng đơn giản, không đòi hỏi tính toán phức tạp
Trang 12Có rất nhiều hãng chế tạo được vi điều khiển, hãng sản xuất nổi tiếng là ATMEL
Có rất nhiều họ vi điều khiển mang các max số khác nhau, một trong số những họ nổi tiếng là MCS-51
Song song với họ MCS-51 là họ MCS-52 có nhiều timer hơn họ MCS-51 một timer và dung lượng bộ nhớ nội lớn gấp đôi tức 8Kbyte
Vi điều khiển được ứng dụng trong các dây chuyền tự động loại nhỏ, các robot có chức năng đơn giản, trong máy giặt, ôtô, các dây chuyền sản xuất, các bộ điều khiển lập trình v.v……
Sau đây em xin trình bày một trong những ứng dụng của vi điều khiển Đó chính
là lập trình cho vi điều khiển AT89S52 điều khiển chạy các LED đơn xếp thành hình trái tim
Trang 14những bảng thông tin, cổng chào hay những bảng quảng cáo với màu sắc sặc sỡ, bắt mắt, gây nhiều sự chú ý cho người dân.
Quảng cáo bằng LED hiện nay có thể ứng dụng rất rộng rãi trong nhiều ngành, nhiều lĩnh vực Vì nó không chỉ giới hạn bởi việc hiển thị các dòng chữ, các trạng thái nhấp nháy mà còn thể hiện được các hình ảnh đồ họa Nó cũng không chỉ quảng cáo trong nhà, bán ngoài trời mà còn có thể quảng cáo ở cả ngoài trời mà vẫn giữ độ sáng và
độ sắc nét cao
Niên luận hoàn thành có thể điều khiển hiển thị LED chạy theo ý muốn, theo màu sắc khác nhau tùy theo người sử dụng đồng thời có khả năng mở rộng cho các mạch điện qui mô hơn
II/ MỤC TIÊU.
Mục tiêu của đề tài là tìm hiểu về vi điều khiển AT89S52 và ứng dụng của
nó để thiết kế, lập trình cho việc điều khiển LED đơn chạy theo ý muốn
mà cụ thể là hình trái tim
Mở ra một vấn đề mới về công nghệ quảng cáo
Góp phần phát triển công nghệ quảng cáo cũng như sự phát triển của khoa học kỹ thuật
Giải quyết vấn đề cho việc quảng cáo đỡ tốn kém, hiệu quả cao cũng như việc thúc đẩy phát triển nền kinh tế nước nhà
III/ HƯỚNG GIẢI QUYẾT.
Để thiết kế được mạch LED chạy theo hình trái tim như mục tiêu đề ra, ta sử dụng vi điều khiển làm trung tam kiểm soát các tín hiệu Các tín hiệu đưa vào vi xử lý AT89S52 và xuất ra các LED đơn điều khiển chúng chạy theo code đã lập trình
Các giai đoạn của quá trình thiết kế:
Trang 15• Tìm hiểu về vi xử lý AT89S52.
• Thiết kế mô phỏng trên PROTUES
• Thiết kế mạch in trên PROTUES
• Làm mạch thực tế
Trang 16CHƯƠNG 2: GIỚI THIỆU LINH KIỆN
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
Trang 17• 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
Trang 18Hình 1: Sơ đồ khối của AT89S52.
Trang 192/ Mô tả chân của AT89S52.
2.1/ Sơ đồ chân của AT89S52.
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 hang 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, ghi, địa chỉ, dữ liệu và ngắt Hình 2: Sơ đồ chân của AT89S52
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 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
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
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
Trang 20châ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 AT89S52 như ở bảng sau:
Bảng 1: Chân port 3
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 AT89S52 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 AT89S52 để 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 AT89S52 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
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.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
Trang 21chú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, AT89S52 thi hành chương trình từ ROM nội Nếu ở mức 0, AT89S52 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 AT89S52
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
Hình 3: Mạch chân 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 AT89S52 Khi sử dụng AT89S52, người ta chỉ cần nối thêm thạch anh và các tụ Tần số
Trang 22Hình 4: Các ngõ vào X1, X2.
3/ Tổ chức bộ nhớ bên trong AT89S52
Bộ nhớ trong AT89S52 bao gồm ROM và RAM RAM trong AT89S52 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 AT89S52 nhưng AT89S52 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
Trang 24Hình 5: Cấu trúc bộ nhớ RAM bên trong vi điều khiển.
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
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
Trang 25Các thanh ghi trong AT89S52 đượ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, AT89S52 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)
Hình 6: Thanh ghi trạng thái chương trình
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): 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
Trang 26• 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
Bảng 2: Những bit chọn bank thanh ghi truy xuất
• 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 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
Trang 27Vi Điều Khiển AT89S52 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 để:
• Định khoảng thời gian
• Đếm sự kiện
• Tạo tốc độ baud cho port nối tiếp trong AT89S52
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
3.4.3.1/ Tổ chức ngắt của AT89S52:
Có 5 nguồn ngắt ở AT89S52: 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 thanh ghi IP (Interrupt Priority) hay nói cách khác thanh ghi IP cho phép chọn mức ưu tiên cho các ngắt (giá trị thanh ghi IP khi reset là 00h)
• Nếu 2 ngắt xảy ra đồng thời thì ngắt nào có nào có mức ưu tiên cao hơn sẽ được phục vụ trước
Trang 28• Nếu 2 ngắt xảy ra đồng thời có cùng mức ưu tiên thì thứ tự ưu tiên được thực hiện từ cao đến thấp như sau: ngắt ngoài 0 – timer 0 – ngắt ngoài 1 – timer 1 – cổng nối tiếp – timer 2.
• Nếu chương trình của một ngắt có mức ưu tiên thấp đang chạy mà có một ngắt xảy ra với mức ưu tiên cao hơn thì chương trình này tạm dừng để chạy một chương trình khác có mức ưu tiên cao hơn
Trang 293.4.3.3/ Các cờ ngắt: Khi điều kiện ngắt xảy ra thì ứng với từng loại ngắt mà loại
cờ đó được đặt lên mức cao để xác nhận ngắt
Trang 30II/ MỘT SỐ LINH KIỆN KHÁC TRONG MẠCH.
1/ Thạch anh 12MHz.
Hình 9: Thạch anh 12MHz
Thạch anh là bộ dao động khá ổn định để tạo ra tần số dao động cho vi điều khiển Đa số các mạch điều khiển đèn Led đều dùng thạch anh có thể là thạch anh 12Mhz, 24Mhz….mỗi loại sẽ cho ra 1 xung nhịp khác nhau
Thạch anh sử dụng rất rộng rãi, hầu như ở đâu cũng có và giá thành thì nó cũng rất rẻ, khoảng vài nghìn 1 con
Trang 31Ứng dụng của thạch anh trong điện tử đa phần để tạo ra tần số được ổn định vì tần số của thạch anh tạo ra rất ít bị ảnh hưởng bởi nhiệt độ hơn là các mạch dao động RC…
Trong vi điều khiển bắt buộc phải có thạch anh (trừ các loại có dao động nội) vì xét chi tiết thì VDK có CPU, timer,… CPU bao gồm các mạch logic và mạch logic muốn hoạt động cũng cần có xung clock, còn timer thì gồm các dãy FF cũng cần phải có xung để đếm Tùy loại VDK mà bao nhiêu xung clock thì ứng với 1 chu kì máy, và với mỗi xung clock VDK sẽ đi làm 1 công việc nhỏ ứng với lệnh đang thực thi
Để chạy các câu lệnh trong ic vi điều khiển, Bạn cần tạo ra xung nhịp Tần số xung nhịp phụ thuộc vào thạch anh gắn trên chân 18, 19 Với thạch anh 12MHz, Bạn sẽ
có xung nhịp 1MHz, như vậy chu kỳ lệnh sẽ là 1μs
2/ Tụ gốm 33pF.
Hình 10: Tụ gốm 33pF
Chức năng: lọc nhiễu cho dao động thạch anh, 2
tụ gốm 33pF
sẽ được nối một đầu với chân của thạch anh, đầu còn lại nối ra mass