1. Trang chủ
  2. » Công Nghệ Thông Tin

Sử dụng vi điều khiển 8051 để xây dựng mạch đo và điều khiển nhiệt độ của thiết bịi

69 1,1K 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 69
Dung lượng 13,26 MB

Nội dung

Với sự tích lũy tích lũy của các môn học về vi điều khiển, Em nhận thấyrằng: Ứng dụng vi điều khiển 8051 vào việc đo và khống chế nhiệt độ tự động làphương pháp tối ưu nhất, nhằm hạn ch

Trang 1

LỜI CẢM ƠN

Đầu tiên em xin gửi lời cảm ơn đến Ban Giám Hiệu Đại Học Công Nghệ ThôngTin Và Truyền Thông– Đại Học Thái Nguyên đã cho em một môi trường học tậptố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ủamì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 Kĩ Thuật Máy Tính thuộc Đại Học Công Nghệ Thông Tin đã 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 đề tài đồ án tốtnghiệp này, đồng thời đó cũng là một hành trang đáng quý để em có thể tiếp bướctrên con đường sự nghiệp sau này

Em xin bày tỏ lòng biết ơn sâu sắc đối với cô Dương Thúy Hường là người tậntình hướng dẫn và động viên em trong suốt thời gian em thực hiện đề tài tốt nghiệpnày

Để hoàn thành đề tài tốt nghiệp này cũng có sự đóng góp không nhỏ của cácbạn Tôi xin được gửi lời cảm ơn đến tất cả các bạn

Ngoài ra em 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 đồ án tốt nghiệp này

Em xin Chân thành cảm ơn!

Thái nguyên, ngày 10 tháng 06 năm 2012 Sinh viên

Vũ Đình Khải

Trang 2

LỜI CAM ĐOAN

Qua quá trình tìm hiểu và tham khảo một số ý kiến, em thấy đồ án của em hoàntoàn không trùng lặp với các đồ án đã có tại khoa Em xin cam đoan đề tài “Sử dụng

vi điều khiển 8051 để xây dựng mạch đo và điều khiển nhiệt độ của thiết bị ” làkhông sao chép nội dung cơ bản từ các đồ án khác, hay các sản phẩm tương tựkhông phải do em làm ra Sản phẩm của đồ án là chính bản thân em nghiên cứu vàxây dựng

Nếu có gì sai em xin chịu mọi hình thức kỉ luật của Trường Đại học côngnghệ thông tin và truyền thông- Đại học thái nguyên

Trang 3

M C L CỤC LỤC ỤC LỤC

LỜI CẢM ƠN 1

LỜI CAM ĐOAN 2

MỤC LỤC 3

DANH MỤC HÌNH 5

LỜI MỞ ĐẦU 6

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 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

1.6 Nguyên lý đo nhiệt độ 9

1.7 Bố cục đồ án 9

CHƯƠNG II: HỌ VI ĐIỀU KHIỂN 8051 11

2.1 Sơ lược về vi xử lý và vi điều khiển 11

2.1.1 Bộ vi điều khiển và bộ vi xử lý đa năng 11

2.1.2 Ưu nhược điểm của các bộ vi điều khiển 12

2.2 Cấu trúc của chíp vi điều khiển 8051 13

2.2.1 Sơ đồ khối bộ vi điều khiển và chức năng 13

2.2.2 Tổ chức bộ nhớ của 8051 20

2.2.3 Các đặc trưng nổi bật của họ 8051 24

2.2.4 Các chân của 8051 25

2.2.5 Các thanh ghi của họ 8051 29

CHƯƠNG III: CẢM BIẾN NHIỆT LM35 – BỘ BIẾN ĐỔI TƯƠNG TỰ SANG SỐ ADC 0804 36

A CẢM BIẾN NHIỆT LM35 36

3.1 Cấu tạo LM35 36

3.2 Dải nhiệt độ và sự thay đổi trở kháng theo nhiệt độ của LM35 37

3.3 Các bộ cảm biến nhiệt họ LM35 38

B BỘ BIẾN ĐỔI TƯƠNG TỰ - SỐ ADC0804 40

3.4: Sơ đồ chân của ADC0804 40

Trang 4

3.5: Phân chia thời gian cho quá trình chuyển đổi tín hiệu 43

3.6: Ghép nối LM35 với ADC0804 47

3.7: Một số linh kiện hỗ trợ việc thiết kế và điều khiển mạch khác 48

3.7.1 Công tác điện tử C1815 48

3.7.2 IRF 540 49

3.7.3 Led 7 thanh 49

3.7.4 Quạt tản nhiệt 50

CHƯƠNG IV: KHẢO SÁT, THIẾT KẾ BÀI TOÁN 51

4.1 Nhiệm vụ thiết kế 51

4.2 Chức năng từng khối 51

4.3 Sơ đồ khối 52

4.4 Sơ đồ thuật toán 53

4.5 Phần mềm mô phỏng 54

4.5.1: Giới thiệu về phần mềm Proteus 54

4.5.2 Các thành phần của chương trình 55

4.5.3 Sơ đồ nguyên lý 57

4.5.4 Hình ảnh mô phỏng mạch chạy 58

4.6 Phần mềm lập trình và Code lập trình 59

4.6.1 Ngôn ngữ lập trình C 59

4.6.2 Chương trình đo và điều khiển nhiệt độ của thiết bị 61

4.7 Mạch chạy 67

KẾT LUẬN 68

TÀI LIỆU THAM KHẢO 69

Trang 5

DANH MỤC HÌNH

Hình 2.1: Hệ vi xử lý đa năng 11

Hình 2.2: Chíp vi điều khiển 12

Hình 2.3: Sơ đồ khối bộ vi xử lý 8051 13

Hình 2.4: Nguồn xung clock 19

Hình 2.5: Cấu trúc bộ nhớ 8051 21

Hình 2.6: Bộ nhớ chương trình 8051 22

Hình 2.7: Bộ nhớ dữ liệu RAM 8501 24

Hình 2.8: Hình ảnh và sơ đồ chân của 8051 25

Hình 2.9: Mạch tạo dao động dùng cổng lô-gic 28

Hình 2.10: Bảng lựa chọn thanh ghi 29

Hình 2.11: Bảng chọn chế độ định thời 30

Hình 3.1: Sơ đồ chân của LM35 36

Hình 3.2: Hình ảnh thật của LM35 37

Hình 3.3: Trở kháng của bộ cảm biến nhiệt theo nhiệt độ 38

Hình 3.4: Hướng dẫn chọn loạt các cảm biến nhiệt họ LM35 38

Hình 3.5: Sơ đồ khối cảm biến nhiệt độ 39

Hình 3.6: Sơ đồ chân của ADC0804 40

Hình 3.7: Sơ đồ kết nối ADC 0804 ở chế độ chạy tự do 42

Bảng 3.8: Điện áp Vref/2 liên hệ với dải Vin 42

Hình 3.9: Phân chia thời gian đọc và ghi của ADC0804 44

Hình 3.10: Sơ đồ mạch biến đổi ADC 47

Hình 3.11: Sơ đồ thời gian hoạt động của ADC0804 47

Hình 3.12: Sơ đồ hoạt động của chân ngắt 48

Hình 3.13: Công tác điện tử C1815 48

Hình 3.14: IRF 540 49

Hình 3.15: Led Anot chung 49

Trang 6

LỜI MỞ ĐẦU

Ngày nay với sự phát triển của nghành vi điện tử, kỹ thuật số các hệ thốngđiều khiển dần được tự động hóa Với những kỹ thuật tiên tiến như vi xử lý, vimạch số, vi điều khiển… được tích hợp vào bên trong chip nên được ứng dụngvào lĩnh vực điều khiển, thì các hệ thống điều khiển cơ khí thô sơ, với tốc độ xử

lý chậm chạp ít chính xác được thay thế bằng các hệ thống điều khiển tự độngvới các lệnh chương trình đã được thiết lập trước

Trong xã hội hiện nay nhìn chung những tai nạn cháy, nổ thường xảy ra tạicác nhà máy, xí nghiệp, các trung tâm là những tai nạn gây thiệt hại rất lớn vềngười và của cải Vì vậy để đảm tính mạng cho con người cũng như của cải vậtchất trong những khu vực dễ xảy ra cháy thì cần phải có một thiết bị đo nhiệt độcủa môi trường, thiết bị này có chức năng đo nhiệt độ của môi trường, đồng thời

có khả năng báo động và điều khiển hệ thống chữa cháy khi nhiệt độ môi trườngđạt đến một ngưỡng nhiệt độ được ấn định trước

Với sự tích lũy tích lũy của các môn học về vi điều khiển, Em nhận thấyrằng: Ứng dụng vi điều khiển 8051 vào việc đo và khống chế nhiệt độ tự động làphương pháp tối ưu nhất, nhằm hạn chế tới mức thấp nhất những thiệt hại vềngười và của trong các nhà máy, xí nghiệp, chung cư, chợ,… Đồng thời được sựchấp thuận của bộ môn Kĩ Thuật Máy Tính và cô giáo hướng dẫn cho phép, emtiến hành thực hiện sự dụng vi điều khiển 8051 để xây dựng mạch đo và điềukhiển nhiệt độ của thiết bị

Trang 7

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI1.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ếtcá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ớicá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ậttí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 trongngành điện tử Mạch số ở những mức độ khác nhau đã đang thâm nhập trong cáclĩ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ôngthể 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ớinhững cán bộ kỹ thuật khác có sử dụng thiết bị điện tử

Trang 8

1.3 Các vấn đề cần giải quyết của bài toán :

Bài toán thiết kế mạch hiển thị nhiệt độ và điều khiển quạt tản nhiệt cho thiết bịđiện tử đặt ra các yêu cầu sau:

- Cảm biến nhiệt độ của thiết bị cần tản nhiệt, khi nhiệt độ tăng cao quạt sẽtăng tốc độ quay để tản nhiệt cho thiết bị, khi nhiệt độ giảm thì quạt cũng sẽ giảmtốc độ quay

- Hiển thị nhiệt độ báo chính xác

- Xây dựng mạch chạy

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 89C51

- Sử dụng cảm biến nhiệt LM35

- Sử dụng chip ADC0804 chuyển đổi từ dữ liệu tương tự sang dữ liệu số

- Xây dựng chương trình mô phỏng hoạt động của mạch

- Xây dựng mạch chạy hiện thị nhiệt độ, tản nhiệt cho thiết bị

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 “Sự dụng vi điều khiển 8051 để xây dựngmạch đo và điều khiển nhiệt độ của thiết bị” nhằm ứng dụng kiến thức đã học vàothực tế

Sử dụng một con IC cảm biến nhiệt (LM35) kết hợp với vi xử lý ADC0804 đưa

dữ liệu nhị phân vào vi điều khiển 89C51 , 89C51 có nhiệm vụ điều khiển việcchuyển đổi của ADC0804 và hiển thị dữ liệu lên LED 7 thanh (nhiệt độ thiết bị điệntử), khi nhiệt độ tăng cao, 89C51 sẽ thực hiện chương trình tăng tốc độ quay choquạt 89C51 sẽ nhận ngắt và thực hiện chương trình ngắt thiết bị

Mục đích yêu cầu của đề tài như sau:

 Mạch hiển thị nhiệt độ một cách chính xác

 Khi nhiệt độ tăng cao quạt tản nhiệt quay nhanh hơn để tản nhiệt cho thiết bị

 Thực hiện tắt thiết bị khi nhiệt độ không nằm trong mức cho phép

Trang 9

1.6 Nguyên lý đo nhiệt độ

IC đo nhiệt là một mạch tích hợp nhận tín hiệu nhiệt độ chuyển thành tínhiệu điện dưới dạng dòng điện hay điện áp Dựa vào đặc tính rất nhạy cảm củacác bán dẫn với nhiệt độ, tạo ra điện áp hoặc dòng điện tỉ lệ thuận với nhiệt độtuyệt đối Vỡ thế để đo được giá trị nhiệt độ thỡ ta chỉ cần đo tín hiệu điện áp là

ta biết được giá trị của nhiệt độ cần đo Sự tác động của nhiệt độ tạo ra điện tích

tự do và các lỗ trống trong các chất bán dẫn Bằng sự đốt núng chất bỏn dẫntrong IC đo nhiệt sẽ tạo ra sự phá vỡ các phân tử, bứt các electron thành dạng tự

do di chuyển qua vùng cấu trúc mạng tinh thể tạo ra sự xuất hiện các lỗ trống.Làm cho tỷ lệ điện tử tự do và lỗ trống tăng lên theo qui luật hàm mũ với nhiệtđộ

Đầu tiên LM35 sẽ cảm biến nhiệt độ, nhận tín hiệu nhiệt độ để chuyển tínhiệu nhiệt độ thành đại lượng điện áp hay dòng điện Cứ tăng giảm 1oC thì điện

áp tới đầu ra của LM35 cũng sẽ tăng giảm 10mV Dòng điện này sẽ đưa vàochân VCC IN+ ( chân số 6) của ADC 0804 để ADC chuyển tín hiệu từ dạng tínhiệu tương tự sang dạng tín hiệu số Để bộ chuyển đổi nhiệt độ có thể hoạt độngcách chính xác thì cần đưa 1 điện áp điện mẫu Vref/2 vào chân số 9 của ADC.Sau khi chuyển đổi tín hiệu từ dạng tương tự sang tín hiệu dạng số thì ta đưa vào

IC AT89C51 để IC bắt đầu xử lý, đo đạc, phân tích, tính toán, lưu trữ rồi mớiđưa ra bộ hiển thị là Led 7 thanh

1.7 Bố cục đồ án

Chương 1: Tổng quan đề tài:

Đặt vấn đề về đồ án, khảo sát vấn đề đó,sau đó đưa ra cách giải quyết cũngnhư giải pháp cho đồ án

Chương 2 : Họ vi điều khiển 8051:

Sơ lược về vi xử lý và vi điều khiển, ưu nhược điểm của các bộ vi điềukhiển, cấu trúc của họ vi diều khiển 8051, tổ chức bộ nhớ, đưa ra các đặc điểmnổi bật của họ vi diều khiển này, cách sử dụng các chân của 8051…

Trang 10

Chương 3: Cảm biến nhiệt độ LM35 – Bộ biến đổi tương tự sang số ADC0804:

Nghiên cứu về cấu tạo, cách thức hoạt động của các linh kiện, ưu nhượcđiểm của các linh kiện này Phân chia thời gian trong quá trình chuyển đổi dữliệu Cách ghép nối giữa LM35 với ADC0804

Các linh kiện phụ trợ trong quá trình thiết kế mạch, đưa ra hình ảnh vềnhững linh kiện đó

Chương 4: Khảo sát, thiết kế bài toán

Nhiệm vụ thiết kế bào toán, tính toán chức năng của từng khối, đưa ra sơ đồkhối và sơ đồ thuật toán của chương trình, cũng như chạy quá trình mô phỏngtrên máy, để giúp cho việc làm mạch thật diễn ra thuật lợi hơn

Trang 11

CHƯƠNG II: HỌ VI ĐIỀU KHIỂN 80512.1 Sơ lược về vi xử lý và vi điều khiển.

2.1.1 Bộ vi điều khiển và bộ vi xử lý đa năng.

Nói đến vi xử lý là ta nói đến các bộ vi xử lý đa năng như họ Intel x86( 8086, 80286, 80386, 80486 và Pentium ) hoặc họ Motorola 680x0 ( 68000,

68020, 68030, 68040….) Các bộ vi xử lý này không có RAM, ROM và không

có các cổng vào ra trên chip Khi sử dụng các bộ vi xử lý đa năng thì người dùngphải bổ sung thêm RAM, ROM và các cổng vào - ra bên ngoài

Hình 2.1: Hệ vi xử lý đa năng

Đối với các bộ vi điều khiển thì khác, bộ vi điều khiển có trên chip bộ vi xử

lý đa năng, bộ nhớ RAM, ROM, các cổng vào - ra và bộ định thời Hay nói mộtcách khác là bộ vi xử lý, RAM, ROM, cổng vào ra và bộ định thời đã được tíchhợp trên một chíp vi điều khiển Khi dùng bộ vi điều khiển ta không phải bổsung thêm các bộ nhớ ngoài, các cổng vào ra hoặc bộ định thời để cho hệ thốnghoạt động Bộ vi điều khiển với một dung lượng RAM, ROM trên chíp và cổngvào – ra đã trở nên rất thích hợp trong nhiều ứng dụng yêu cầu giá thành hạ vàkhông gian sử dụng hạn chế Các bộ vi điều khiển ngày càng được ứng dụngrộng rãi trong các thiết bị gia đình, thiết bị văn phòng, thiết bị tự động

Bus dữ liệu

Bus địa chỉ

Trang 12

Hình 2.2: Chíp vi điều khiển

2.1.2 Ưu nhược điểm của các bộ vi điều khiển.

Các công việc được thực hiện bởi các bộ vi điều khiển thì không mới Điềumới là các thiết kế hiện thực với ít thành phần hơn so với các thiết kế trước đó.Các thiết kế trước đó đòi hỏi phải vài chục hoặc vài trăm IC để hiện thực thì naychỉ cần một ít thành phần trong đó bao gồm bộ vi điều khiển Số thành phầnđược giảm bớt, hiệu quả trực tiếp của tính khả lập trình của các bộ vi điều khiển

và độ tích hợp cao trong công nghệ chế tạo vi mạch thường chuyển thành thờigian phát triển ngắn hơn, giá thành sản xuất thấp hơn, công suất tiêu thụ thấphơn và độ tin cậy cao hơn

Vấn đề ở đây là tốc độ Các giải pháp dựa trên bộ vi điều khiển không baogiờ nhanh bằng giải pháp dựa trên các thành phần rời rạc Những tình huống đòihỏi phải đáp ứng thật nhanh ( cỡ n-sec) đối với các sự kiện (thường chiếm thiểu

số trong các ứng dụng) sẽ được quản lí tồi khi dựa vào các bộ vi điều khiển.Tuy nhiên trong vài ứng dụng, đặc biệt là các ứng dụng liên quan đến conngười, các khoảng thời gian trễ tính bằng n-sec, u-sec hoặc thậm chí m-sec làkhông quan trọng Viêc giảm bớt các thành phần là một điều lợi như đã đề cập,các thao tác trong chương trình điều khiển làm cho thiết kế có thể thay đổi bằngcách thay đổi phần mềm Điều này có ảnh hưởng tối thiểu đến chu kì sản xuất

Do đó các bộ vi điều khiển có thể được ứng dụng rộng rãi trong các lĩnh vựcphục vụ cho con người, thay thế cho con người ở những nơi có điều kiện môi

CPU

COM nối tiếp

Trang 13

Để hiểu rõ hơn về các bộ vi xử lý nói chung cũng như các bộ điều khiển nóiriêng, trong đề tài thiết kế hệ thống đo nhiệt độ nhiều phòng sử dụng họ vi điềukhiển 8051 để lập trình và thiết kế cho hệ thống này.

2.2 Cấu trúc của chíp vi điều khiển 8051.

2.2.1 Sơ đồ khối bộ vi điều khiển và chức năng.

Bus điều khiển

4 Cổng vào /ra

Cổng nối tiếp

RAM

On - Chip

ETC

Timer 1 Timer 2

Vào

bộ đế m Ngắt ngoài

P0 P1 P2 P3 Địa chỉ/ Dữ liệu

TXD RXD

Trang 14

Chức năng các khối như sau:

* Khối xử lý trung tâm:

Đây là phần chính của bộ vi xử lý là khối xử lý trung tâm CPU(CentralProcessing Unit), đây là trái tim của hệ thống nó quản lí tất cả các hoạt động của

hệ thống và thực hiện tất cả các thao tác trên dữ liệu Hầu hết các CPU chỉ baogồm một tập các mạch logic thực hiện liên tục hai thao tác là: tìm nạp lệnh vàthực thi lệnh CPU có khả năng hiểu và thực thi các lệnh dựa trên một tập các mãnhị phân, mỗi một mã nhị phân biểu thị một thao tác đơn giản Các lệnh nàythường là các lệnh số học, lệnh logic, các lệnh di chuyển dữ liệu hoặc các lệnh rẽnhánh được biểu thị bởi một tập các mã nhị phân và được gọi là tập lệnh Khốinày có chứa các thành phần chính sau:

- Thanh ghi tích lũy (ký hiệu là A)

- Thanh ghi tích lũy phụ(ký hiệu là B) thường được dùng cho phép nhân

và phép chia

- Khối logic số học ALU(Arithmetic Logical Unit)

- Từ trạng thái chương trình PSW(Program Status Word)

- Bốn băng thanh ghi

- Con trỏ ngăn xếp SP(Stack Point) cũng như con trỏ dữ liệu để định địachỉ cho bộ nhớ dữ liệu ở bên ngoài

Ngoài ra khối xử lý trung tâm còn chứa: Thanh ghi đếm chương trình PC,

bộ giải mã lệnh, bộ điều khiển thời gian và logic Các thanh ghi bên trong CPU

có vai trò hết sức quan trọng Nhiệm vụ của nó là lưu trữ tạm thời các thông tin,một đơn vị số học ALU có nhiệm vụ thực hiện các thao tác trên thông tin này,một đơn vị giải mã lệnh và điều khiển có nhiệm vụ xác định thao tác cần thựchiện và thiết lập các hoạt động cần thiết để thực hiện thao tác

Việc tìm nạp một lệnh từ RAM hệ thống là một trong các thao tác cơ bảnnhất mà CPU thực hiện Việc tìm nạp lệnh được thực hiện theo các bước sau:

- Nội dung của PC được đặt lên bus địa chỉ

- Tín hiệu điều khiển READ được xác lập (chuyển sang trạng thái tích cực)

- Dữ liệu (opcode của lệnh) được đọc từ RAM và đưa lên bus dữ liệu

- Opcode được chốt vào thanh ghi lệnh bên trong CPU

Trang 15

- PC được tăng để chuẩn bị tìm nạp lệnh kế từ bộ nhớ.

Giai đoạn thực thi lệnh bao gồm việc giải mã opcode và tạo ra các tín hiệuđiều khiển, các tín hiệu này điều khiển việc xuất nhập giữa các thanh ghi nội vớiALU và thông báo để ALU thực hiện thao tác đã được xác định Do các thao tác

có tầm thay đổi rộng, phạm vi cho các giải thích vừa nêu trên có phần bị giới hạn

và chỉ được áp dụng cho các thao tác đơn giản

Một chuỗi các lệnh được kết hợp để thực hiện một công việc có ý nghĩa đượcgọi là một chương trình hay phần mềm Mức độ mà những công việc được thựchiện đúng và có hiệu quả phần lớn được xác định bởi chất lượng của phần mềm,không phải bởi sự phức tạp của CPU Vậy thì các chương trình điều khiển CPUtrong khi làm việc đôi khi dẫn đến sai lầm, chính là do nhược điểm của ngườiviết chương trình

Sau khi được reset thì CPU bắt đầu làm việc ở địa chỉ 0000h, là địa chỉ đầuđược ghi trong thanh ghi chứa chương trình PC và sau đó thanh ghi này tăng lên

1 đơn vị và chỉ đến các lệnh tiếp theo của chương trình

* Bộ tạo dao động:

Khối xử lý trung tâm nhận trực tiếp xung nhịp từ bộ tạo dao động được lắpthêm vào, linh kiện phụ trợ có thể là một khung dao động làm bằng tụ gốm hoặcthạch anh Ngoài ra còn có thể đưa một tín hiệu giữ nhịp từ bên ngoài vào Khi

sử dụng thạch anh thì tần số tối đa của thạch anh mà chúng ta phải chú ý đến là24MHz, thông thường chúng ta dùng thạch anh có tần số 11,0592MHz để làmgiảm thiểu tới mức tối đa những lỗi nhỏ nhất trong quá trình làm việc của nó

* Khối điều khiển ngắt:

Chương trình đang chạy có thể dừng lại nhờ một khối logic ngắt ở bên trong.Các nguồn ngắt có thể là do các biến cố bên ngoài, sự tràn của bộ định thời / bộđếm, hay cũng có thể là giao diện nối tiếp Các ngắt đóng một vai trò quan trọngtrong việc thiết kế và thực hiện các ứng dụng của bộ vi điều khiển Các ngắt chophép hệ thống đáp ứng các sự kiện theo cách không đồng bộ Tất cả các ngắt đều

có thể được thiết lập chế độ làm việc thông qua các hai thanh ghi sau:

IE – Interupt Enable

IP – Interupt Priority

Trang 16

Chương trình xử lý một ngắt được gọi là trình phục vụ ngắt ISR hay quản lýngắt ISR được thực thi nhằm đáp ứng một ngắt và trong trường hợp tổng quátthực hiện việc xuất nhập đối với một thiết bị Khi một ngắt xuất hiện việc thựcthi chương trình chính tạm thời bị dừng và CPU sẽ thực hiện rẽ nhánh đến trìnhphục vụ ngắt ISR CPU sẽ thực thi ISR để thực hiện một công việc và kết thúcviệc thực thi này khi gặp lệnh “quay về từ một trình phục vụ ngắt”, chương trìnhchính lại tiếp tục tại nơi bị tạm dừng Ta có thể nói chương trình chính được thựcthi ở phần nền, mức nền còn ISR được thực thi ở mức ngắt.

Có 5 nguyên nhân tạo ra ngắt (gọi tắt là nguyên nhân ngắt) đối với 8051: haingắt do bên ngoài, hai ngắt do bộ định thời và một ngắt do port nối tiếp 8052 cóthêm nguyên nhân ngắt thứ 6 do bộ định thời được thêm vào, bộ định thời thứ

ba khi ta thiết lập trạng thái ban đầu cho hệ thống, tất cả các ngắt đều bị vô hiệuhóa và sau đó chúng được cho phép riêng rẽ bằng phần mềm

Khi xảy ra hai hay nhiều ngắt đồng thời hoặc xảy ra một ngắt trong khi mộtngắt khác đang được phục vụ, ta có 2 sơ đồ xử lý các ngắt: sơ đồ chuỗi vòng và

sơ đồ hai mức ưu tiên

* Khối điều khiển và quản lý BUS:

Các khối trong vi điều khiển liên lạc với nhau thông qua hệ thống bus nội bộ

và được điều khiển bởi khối điều khiển và quản lý bus

Một bus là một tập các dây mang thông tin có cùng một mục đích Việc truyxuất tới một mạch xung quanh CPU sử dụng 3 bus: Bus địa chỉ, bus dữ liệu vàbus điều khiển Với mỗi thao tác đọc hoặc ghi CPU xác định rõ vị trí của dữ liệu(hoặc lệnh) bằng cách đặt một địa chỉ lên bus địa chỉ, sau đó tích cực một tínhiệu lên bus điều khiển để chỉ ra thao tác là đọc hay ghi Thao tác đọc lấy mộtbyte dữ liệu từ bộ nhớ ở vị trí đã xác định và đặt byte này lên bus dữ liệu CPU

sẽ đọc dữ liệu và đặt dữ liệu vào một trong các thanh ghi nội của CPU Với thaotác ghi , CPU xuất dữ liệu lên bus dữ liệu nhờ vào tín hiệu điều khiển bộ nhớnhận biết đây là thao tác ghi và lưu dữ liệu vào vị trí đã được xác định

Bus dữ liệu mang thông tin giữa CPU và bộ nhớ cũng như giữa CPU và cácthiết bị xuất nhập Việc cố gắng nghiên cứu bao quát phần lớn được dùng vàoviệc xác định loại hoạt động làm mất nhiều thời gian thực thi đáng giá của máy

Trang 17

tính Hiển nhiên là máy tính sử dụng đến 2/3 thời gian vào việc di chuyển dữliệu Vì đa số các thao tác di chuyển dữ liệu xảy ra giữa một thanh ghi của CPUvới RAM và ROM ngoài, số đường (hay độ rộng) của bus dữ liệu rất quan trọngđối với hiệu suất tổng thể của máy tính Giới hạn bởi độ rộng này có dạng cổchai: có thể có một lượng rất lớn bộ nhớ trong hệ thống và CPU có thể có khảnăng tính toán rất lớn nhưng việc truy xuất dữ liệu-di chuyển dữ liệu giữa bộ nhớ

và CPU thông qua bus dữ liệu thường bi nghẽn như cổ chai vì độ rộng của bus

dữ liệu Bus dữ liệu là bus hai chiều còn bus địa chỉ là bus một chiều Các thôngtin địa chỉ luôn luôn được cung cấp bởi CPU trong khi dữ liệu di chuyển theo cảhai hướng tùy thuộc vào thao tác được dự định là đọc hay ghi

Bus điều khiển là một hỗn hợp các tín hiệu, mỗi tín hiệu có một vai trò riêngtrong việc điều khiển có trật tự hoạt động của hệ thống Theo lệ thường các tínhiệu điều khiển là các tín hiệu định thời được cung cấp bởi CPU để đồng bộ việc

di chuyển thông tin trên các bus địa chỉ và dữ liệu, mặc dù thường có ba tín hiệu

như là clock, read và write đối với việc di chuyển dữ liệu cơ bản giữa CPU và

bộ nhớ Tên và hoạt động của các tín hiệu điều khiển phụ thuộc nhiều vào CPUcụ thể

* Các bộ đếm / bộ định thời (Timer/Counter):

Một bộ định thời thường được sử dụng trong các bộ vi xử lý nói chung và bộ

vi điều khiển nói riêng là một chuỗi các flipflop với mỗi flipflop là một mạchchia hai, chuỗi này nhận một tín hiệu ngõ vào làm nguồn xung clock Xungclock đặt vào flipflop thứ nhất, flipflop này chia đôi tần số xung clock Ngõ racủa flipflop thứ nhất này sẽ trở thành nguồn xung clock cho flipflop thứ hai, và

cứ như thế…

Vi điều khiển 8051 có chứa 2 bộ đếm /bộ định thời Chúng có thể được dùngđếm thời gian tiến đến 16 bit hoặc dùng để định thời gian trong điều khiển, cóthể dùng để tạo bộ phát tốc độ Baud cho giao diện nối tiếp Hai bộ định thờiTimer 0 và Timer 1 là các bộ định thời 16 bit nhưng do 8051 có cấu trúc 8 bitnên mỗi bộ định thời được truy cập dưới dạng 2 thanh ghi độc lập là byte cao vàbyte thấp Tương ứng với mỗi bộ định thời đó là thanh ghi TH0, TL0, TH1, TL1

Trang 18

Với 8051 nếu chúng ta muốn sử dụng bộ định thời chúng ta cần phải lập trìnhlên một thanh ghi được gọi là thanh ghi chế độ định thời TMOD, từ thanh ghinày chúng ta sẽ chọn sử dụng bộ định thời nào: Timer1 hay là Timer2 Thanhghi này được nạp một lần bởi phần mềm ở thời điểm bắt đầu của một chươngtrình để khởi động chế độ hoạt động của bộ định thời Thanh ghi TCON là thanhghi điều khiển định thời nó được dùng bất hoặc tắt bộ định thời.

Sau đây là hai hoạt động chính của bộ định thời trong 8051 được sử dụng, vàtất cả các họ 8051 đều sử dụng hai hoạt động này:

+ Định thời một khoảng thời gian:

Với hoạt động định thời thì nguồn xung clock của bộ định thời do mạch daođộng bên trong chip tạo ra Một mạch chia 12 tầng được thêm vào để giảm tần

số xung clock đến một giá trị xác định thích hợp với hầu hết các ứng dụng Lúcnày bộ định thời được dùng để định thời trong một khoảng thời gian Các thanhghi định thời TLx, THx đếm lên với tần số xung clock bằng 1/12 tần số củamạch dao động trên chip Bộ định thời sẽ tràn sau một số xung clock cố định phụthuộc vào giá trị ban đầu nạp cho các thanh ghi định thời

+ Đếm sự kiện:

Lúc này bộ định thời được cung cấp xung clock từ một nguồn tạo xung bênngoài Trong đa số các ứng dụng, nguồn xung clock này cung cấp cho bộ địnhthời một xung dựa trên việc xảy ra một sự kiện-bộ định thời bấy giờ đếm sựkiện Số các sự kiện được xác định trong phần mềm bằng cách đọc thanh ghiđịnh thời, giá trị 16 bit trong các thanh ghi này tăng theo mỗi sự kiện Hai châncủa port 3 là P3.4 và P3.5 bây giờ trở thành ngõ vào xung clock cho các bộ địnhthời Chân P3.4 là ngõ vào xung clock cho bộ định thời 0, còn chân P3.5 là ngõvào xung clock của bộ định thời 1

Trong các ứng dụng đếm sự kiện các thanh ghi định thời tăng mỗi khi xảy rachuyển trạng thái từ 1 xuống 0 ở ngõ vào T0 hoặc T1 (Tx) Ngõ vào Tx nàyđược lấy mẫu trong suốt thời gian S5P2 của mỗi một chu kỳ máy, vậy thì ngõvào sẽ ở mức cao trong một chu kỳ và mức thấp trong chu kỳ kế tiếp, số đếmđược tăng Giá trị mới xuất hiện trong các thanh ghi định thời trong suốt thờigian S3P1 của chu kỳ tiếp theo chu kỳ phát hiện sự chuyển trạng thái Từ đó ta

Trang 19

thấy phải mất 2 chu kỳ máy để nhận biết sự chuyển trạng thái từ 1 xuống 0, tần

số cực đại của nguồn xung clock bên ngoài là 500KHz

Hình 2.4: Nguồn xung clock

* Các cổng vào ra I/O:

Vi điều khiển 8051 có bốn cổng vào/ra từ port 0 đến port 3, mỗi cổng chứa 8bit, độc lập với nhau Các cổng này có thể được sử dụng cho những mục đíchđiều khiển rất đa dạng Ngoài chức năng chung một số cổng còn đảm nhận thêmmột số chức năng đặc biệt khác

* Giao diện nối tiếp:

Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng bộ làmviệc độc lập với nhau Bằng cách đấu nối các bộ đệm thích hợp, ta có thể hìnhthành một cổng nối tiếp RS-232 đơn giản Tốc độ truyền qua cổng nối tiếp có thểđặt trong một vùng rộng phụ thuộc vào một bộ định thời và tần số dao độngriêng của thạch anh

On chip Oscillator

÷12

C/T

Timer Clock

0= Up 1= Down

Chân T0

hoặc chân

T1

Thạch anh

Trang 20

Bên trong chip 8051 có một port nối tiếp hoạt động ở một vài chế độ trên mộttầm tần số rộng Chức năng cơ bản của port nối tiếp là thực hiện việc chuyển đổi

dữ liệu song song thành nối tiếp khi phát và chuyển đổi dữ liệu từ nối tiếp thànhsong song khi thu Đặc trưng của port nối tiếp là hoạt động song công nghĩa là

có khả năng thu và phát đồng thời Ngoài ra port nối tiếp còn có một đặc trưngkhác, việc đệm dữ liệu khi thu của port này cho phép một ký tự được nhận vàlưu trong bộ đệm thu trong khi ký tự tiếp theo được nhận vào Nếu CPU đọc ký

tự thứ nhất trước khi ký tự thứ hai được nhận đầy đủ, dữ liệu sẽ không bị mất Hoạt động nối tiếp sử dụng đến hai thanh ghi chức năng đặc biệt SBUF vàSCON để truy xuất port nối tiếp Bộ đệm của port nối tiếp SBUF có địa chỉ byte

là 99h, trên thực tế bao gồm hai bộ đệm Việc ghi lên SBUF sẽ nạp dữ liệu đểphát và việc đọc SBUF sẽ truy xuất dữ liệu đã nhận được Điều náy có nghĩa là

ta có hai thanh ghi riêng rẽ và phân biệt Thanh ghi điều khiển port nối tiếpSCON có địa chỉ byte là 98h, là thanh ghi được định địa chỉ từng bit, nó có chứacác bit trạng thái và các bit điều khiển Các bit điều khiển sẽ thiết lập chế độ hoạtđộng cho port nối tiếp còn các bit trạng thái chỉ ra sự kết thúc việc thu hoặc phátmột ký tự Các bit trạng thái được kiểm tra bởi phần mềm hoặc được lập trình đểtạo ra ngắt

* Bộ nhớ chương trình:

Bộ nhớ chương trình thường là ROM, bộ nhớ chương trình được sử dụng đểcất giữ chương trình điều khiển hoạt động của vi điều khiển Bộ nhớ ROM cómột đặc trưng là không bị mất đi khi bị mất điện Chương trình được ghi vàotrên ROM là do người sản xuất ghi vào chúng ta không thể can thiệp được vào

* Bộ nhớ số liệu:

Bộ nhớ số liệu thường là bộ nhớ RAM, bộ nhớ số liệu dùng để cất giữ cácthông tin tạm thời trong quá trình vi điều khiển làm việc Đây là bộ nhớ truy xuấtngẫu nhiên dung để lưu trữ chương trình trong quá trình làm việc Nó sẽ bị mất

dữ liệu khi mất điện

2.2.2 Tổ chức bộ nhớ của 8051.

Tất cả các vi điều khiển thuộc họ 8051 đều được phân chia bộ nhớ thành haivùng địa chỉ cho bộ nhớ dữ liệu và bộ nhớ chương trình Sự phân chia logic giữa

Trang 21

bộ nhớ dữ liệu và bộ nhớ chương trình cho phép truy nhập bộ nhớ dữ liệu bằng 8bit địa chỉ giúp cho việc lưu trữ và thao tác dữ liệu nhanh hơn Tuy nhiên chúng

ta cũng có thể sử dụng địa chỉ bộ nhớ dữ liệu 16 bit thông qua thanh ghi DPTR

Do đó có thể chứa được 64K=65536 ô nhớ mỗi loại

Bộ nhớ onchip của 8051 gồm có 4 Kbyte bộ nhớ chương trình (ROM,EPROM, EEPROM hoặc Flash tùy loại) và 128 byte bộ nhớ dữ liệu (RAM) 4Kbyte bộ nhớ chương trình on - chip nằm trong không gian địa chỉ 64 Kbytedành cho bộ nhớ chương trình (thuộc dải địa chỉ từ 0x0000 đến 0x0FFF)

Ngược lại 128 byte RAM onchip lại không nằm trong không gian địa chỉ 64Kbyte dành cho bộ nhớ dữ liệu Ta có thể tưởng tượng không gian bộ nhớchương trình là một chiếc thùng được lấp đầy 1/16 dung tích bởi 4 Kbyte bộ nhớonchip, còn không gian bộ nhớ dữ liệu là một thùng to dung tích 64 Kbyte rỗnghoàn toàn và có một hộp nhỏ dung tích 128 byte (Địa chỉ từ 0x00 đến 0x7F) nằmriêng rẽ bên cạnh

Hình 2.5: Cấu trúc bộ nhớ 8051

Bộ nhớ chương trình là loại bộ nhớ chỉ cho phép đọc, không cho phép ghi.Một số vi điều khiển được tích hợp sẵn bộ nhớ chương trình bên trong với dunglượng khoảng 4kbyte hay 8kbyte, số còn lại phải sử dụng bộ chương trình mở

Phần không gian địa chỉ cho

bộ nhớ chương trình bằng 64 K Byte trừ đi bộ nhớ on - chip

Phần không gian địa chỉ cho bộ nhớ dữ liệu ( Hoàn toàn trống rỗng 64K Byte dành cho

bộ nhớ dữ liệu ghép thêm bên ngoài nếu có

Trang 22

rộng mà quá trình truy nhập được thực hiện thông qua sự điều khiển bằng tínhiệu PSEN

Tuy nhiên vi điều khiển 8051 cho phép chúng ta sử dụng đến 64 kbyte bộnhớ chương trình bằng cách sử dụng cả bộ nhớ chương trình bên ngoài và bêntrong

Bộ nhớ dữ liệu chiếm giữ vùng địa chỉ phân chia của bộ nhớ chương trình.Dung lượng của bộ nhớ dữ liệu có thể mở rộng lên đến 64 kbyte Trong quátrình truy nhập bộ nhớ số liệu, CPU phát ra các tín hiệu đọc và tín hiệu viết sốliệu thông qua các chân RD và WD

Chúng ta có thể kết hợp bộ nhớ chương trình mở rộng với bộ nhớ số liệu mởrộng bằng cách cho hai tín hiệu RD và PSEN qua một cổng logic AND, lối racủa cổng này sẽ tạo tín hiệu đọc cho bộ nhớ mở rộng

xử lý ngắt, bảng các hằng số….)

… Véc tơ ngắt thứ n

Véc tơ ngắt thứ 1 Địa chỉ reset

0x0FFF

0x0030

0x0003 0x0000

Trang 23

một vùng địa chỉ cố định trong bộ nhớ chương trình Khi xuất hiện ngắt , CPU sẽnhảy tới địa chỉ này, đây cũng là địa chỉ đầu của chương trình con phục vụ ngắt.Các vector ngắt cách nhau 8 byte, vì vậy nếu chương trình con phục vụ ngắt quádài(> 8 byte) thì tại vector ngắt ta phải đặt một lệnh nhảy không điều kiện tớivùng địa chỉ khác chứa chương trình con phục vụ ngắt.

* Bộ nhớ dữ liệu:

Chúng ta có thể dùng tới 64 kbyte bộ nhớ số liệu ngoại vi Độ rộng bus địachỉ của bộ nhớ số liệu ngoài có thể là 8 bit hoặc 16 bit Bus địa chỉ rộng 8 bitthường được sử dụng để liên kết với một hoặc nhiều đường vào ra khác để địnhđịa chỉ cho RAM theo trang Trong trường hợp bus địa chỉ rộng 16 bit, cổng Port

2 sẽ phát ra 8 bit địa chỉ cao còn cổng Port 1 sẽ phát 8 bit địa chỉ thấp Bằng cáchnày ta có thể truy nhập trực tiếp lên bộ nhớ dữ liệu ngoài với độ lớn tối đa là 64kbyte

Bộ nhớ số liệu được chia ra làm 3 vùng:

- 128 byte cao

- 128 byte thấp

- Vùng dành cho các thanh ghi chức năng đặc biệt SFR

Địa chỉ của bộ nhớ số liệu trong luôn là 8 bit, và có thể quản lý được 256byte bộ nhớ Tuy nhiên trên thực tế cách định địa chỉ của bộ nhớ RAM trong cóthể quản lý tới 384 byte

Trang 24

Hình 2.7: Bộ nhớ dữ liệu RAM 8501

2.2.3 Các đặc trưng nổi bật của họ 8051

Họ vi điều khiển 8051 là một chip sử lý được sử dụng khá phổ biến hiện nay,

nó có một số các đặc trưng nổi bật sau đây:

-Bộ xử lí 8 bit (với thao tác trên từng bit riêng rẽ) phù hợp cho các ứng dụng

để điều khiển

-Không gian địa chỉ nhớ chương trình ngoài (ROM) có thể tới 64K

-Không gian địa chỉ nhớ dữ liệu ngoài (RAM) có thể lên tới 64K

-4K byte ROM trong

-128 byte RAM trong

-Mạch giao tiếp nối tiếp với 32 đường địa chỉ I/O phân biệt, hai chiều

-Hai bộ đếm/định thời 16 bit

-UART song công lập trình được

-Cấu trúc 6 nguồn/5vecter ngắt với hai mức ưu tiên

Trang 25

-Đồng hồ giữ nhịp bên trong chip.

-Thời gian xử lí lệnh nhanh

Các chip điều khiển sau này của 8051 đã được cải tiến lên rất nhiều, cóthêm rất nhiều các đặc tính nổi trội hơn những chip điều khiển cũ, vời khoa họcngày càng phát triển như hiện nay họ vi điều khiển sẽ chắc chắn còn phát triểntinh vi hơn nữa vời những đặc trưng nổi trội hết mức có thể

2.2.4 Các chân của 8051

Ta thấy 32 chân trong số 40 chân của 8051 là dùng cho việc xuất - nhập, nótạo lên 4 port 8-bit là Port 0, Port 1, Port 2 và Port 3, ngoài ra nó còn các châncấp nguồn là chân 40, 31, chân nối đất là chân 20, chân tạo mạch reset là chân số

9, chân tạo ra mạch dao động gồm chân số 18 và 19 và một vài chân gồm 2 chứcnăng nữa như các chân 10,11,12,13,16,17 Chức năng của các chân được trìnhbày cụ thể như sau:

Hình 2.8: Hình ảnh và sơ đồ chân của 8051

+ Port 0:

Là các chân từ 32 đến 39 trên 8051, được kí hiệu là P0.0, P0.1… cho đếnP0.7 Có 2 công dụng Trong các thiết kế có tối thiểu thành phần port 0 được sửdụng làm nhiệm vụ xuất / nhập Trong các thiết kế lớn hơn có bộ nhớ ngoài thì

nó trở thành bus địa chỉ và bus dữ liệu đa hợp Đây là một port xuất nhập songhướng cực máng hở 8 bit Nếu được sử dụng như là một ngõ xuất thì mỗi chân

có thể kéo 8 ngõ vào TTL Khi mức 1 được viết vào chân của port 0, các chânnày có thể dùng như là các ngõ nhập tổng trở cao Port 0 cũng nhận các byte

Hình 2.9: Hình nh v s ảnh và sơ đồ chân à sơ đồ chân ơ đồ chân đồ chân chân

8051

Trang 26

code (byte mã chương trình) khi lập trình Flash, và xuất ra các byte code khikiểm tra chương trình Cần phải có các điện trở pullup bên ngoài khi thực hiệnviệc kiểm tra chương trình, các điện trở này thường lấy giá trị định mức là 10000

Ôm

+ Port 1:

Port 1 chỉ có một công dụng là xuất/nhập, các chân số 1 đến 8 trên 8051 Cácchân của port 1 được kí hiệu là P1.0, P1.1,…, P1.7 và được dùng để giao tiếp vớithiết bị bên ngoài khi có yêu cầu Chỉ được sử dụng để giao tiếp với các thiết bịngoại vi mà không có chức năng nào khác nữa Nó là một port xuất/nhập songhướng 8 bit có các điện trở pullup bên trong Các bộ đếm ngõ ra của port 1 cóthể kéo hoặc cung cấp 4 ngõ nhập TTL Khi mức 1 được viết vào các chân củaport1, chúng được kéo lên cao bởi các điện trở pullup nội và có thể được dùngnhư là các ngõ nhập Nếu đóng vai trò là ngõ nhập các chân của port 1 sẽ cấp

dòng IIL do các điện trở pullup bên trong.

+ Port 2:

Là các chân từ số 21 đến 28 trên 8051, kí hiệu các chân là P2.0, P2.1, …P2.7 Có 2 công dụng, hoặc làm nhiệm vụ xuất/ nhập hoặc là byte địa chỉ caocủa bus địa chỉ 16 bit cho các thiết kế có bộ nhớ chương trình ngoài hoặc cácthiết kế có nhiều hơn 256 byte bộ nhớ dữ liệu ngoài Port 2 cũng có điện trởpullup ở bên trong Các bộ đệm ngõ ra của port 2 có thể kéo hoặc cung cấp 4ngõ vào TTL Khi các mức 1 được viết vào các chân của port 2 thì chúng đượcdùng như các ngõ vào Khi được dùng như các ngõ vào các chân của port 2 cũng

cung cấp dòng IIL do các điện trở trong.

+ Port 3:

Các chân số 10 đến số 17 trên 8051, kí hiệu là P3.0, P3.1…P3.7 có 2 côngdụng Dùng làm nhiệm vụ xuất / nhập các giá trị, dữ liệu vào ra của IC và khikhông làm nhiệm vụ này thì mỗi chân của port 3 còn đảm nhiệm thêm các chứcnăng riêng như sau:

P3.0(RxD)- Chân nhận dữ liệu của port nối tiếp

P3.1(TxD)- Chân phát dữ liệu của port nối tiếp

P3.2(INT0)- Ngõ vào ngắt ngoài 0

Trang 27

P3.3(INT1)- Ngõ vào ngắt ngoài 1

P3.4(T0)- Ngõ vào của bộ định thời/đếm 0

P3.5(T1)- Ngõ vào của bộ định thời/đếm 1

P3.6(WR)- Điều khiển ghi bộ nhớ dữ liệu ngoài

P3.7(RD)- Điều khiển đọc bộ nhớ dữ liệu ngoài

+ Chân PSEN:

Là chân cho phép bộ nhớ chương trình.8051 cung cấp cho ta 4 tín hiệu điềukhiển bus, chân PSEN là chân số 29 Đây là tín hiệu điều khiển cho phép ta truyxuất bộ nhớ chương trình ngoài, nó thường được nối với chân cho phép xuất OEcủa ROM để cho phép đọc các byte lệnh Các mã nhị phân của chương trình hayopcode (mã thao tác) được đọc từ EP-ROM, qua bus dữ liệu và được chốt vàothanh ghi lệnh IR của 8051 để được giải mã Tín hiệu PSEN ở logic 0 trong xuốtthời gian tìm -nạp lệnh Khi thực thi một chương trình chứa ở ROM nội thiPSEN ở mức logic 1

+

Chân ALE:

Đây là chân cho phép chốt địa chỉ Trên 8051 đây là chân số 30, nó là mộtchân để giải đa hợp bus dữ liệu và bus địa chỉ Chân ALE xuất tín hiệu để chốtđịa chỉ vào một thanh ghi ngoài trong suốt 1/ 2 chu kì của bộ nhớ Sau khi điềunày đã được thực hiện, các chân của port 0 sẽ xuất/nhập dữ liệu Được dùng làmxung clock cho hệ thống Chân ALE có tần số bằng 1/6 tần số của mạch daođộng bên trong chip điều khiển và có thể được dùng làm xung clock cho phầncòn lại của hệ thống Nếu mạch giao động có tần số 12MHz, tín hiệu ALE có tần

số 2MHz Ngoại lệ duy nhất là trong thời gian thực thi lệnh MOVX, thì mộtxung ALE sẽ bị bỏ qua Chân ALE còn được dùng để nhận xung ngõ vào lậptrình cho EPROM trên chip điều khiển họ 8051 này

+ Chân EA:

Chân số 31, là chân truy xuất ngoài được nối vào 5V hoặc đất GND (logic 0).Khi nối vào 5V thì thực thi chương trình trong ROM nội Nếu chân này nối đấtthì chương trình cần thực thi chứa ở bộ nhớ ngoài Các phiên bản của họ 8051sau này còn sử dụng chân EA làm chân nhận điện áp cấp điện 21V cho việc lậptrình EPROM nội (nạp EPROM)

Trang 28

+

Chân RESET:

Là chân số 9, ngõ vào RST là ngõ vào xóa chính của 8051 dùng để thiết lậplại trạng thái ban đầu cho hệ thống hay gọi tắt là reset hệ thống Khi ngõ vào nàyđược treo ở logic 1 tối thiểu hai chu kì máy, các thanh ghi bên trong 8051 sẽđược nạp các giá trị thích hợp cho việc khởi động lại hệ thống

+ Các chân XTAL1 và XTAL2:

Mạch giao động bên trong chip 8051 được ghép với thạch anh bên ngoài quacác chân này Đó là các chân số 18 và 19

Các tụ ổn định cũng được chọn theo yêu cầu, tần số thạch anh là 12MHz,16MHz…tụ gốm có giá trị từ 27 đến 33pF, thường chọn là 33pF để ổn định làmviệc cho thạch anh

Ngoài mạch tạo dao động bằng thạch anh chúng ta cũng có thể tao một mạchdao động dùng cổng logic

Hình 2.9: Mạch tạo dao động dùng cổng lô-gic

Trang 29

2.2.5 Các thanh ghi của họ 8051

CY(PSW.7)- Đây là cờ nhớ CY, cò này được thiết lập mỗi khi có nhớ từ bit

D7 và là kết quả của lệnh cộng hoặc lệnh trừ 8 bit Có thể thiết lập trực tiếp cờ

CY lên 1 hoặc xóa về 0 bằng lệnh “setb C” và “clr C”, hay nói cách khác là

“thiết lập cờ nhớ” và “xóa cờ nhớ”

AC(PSW.6)- Cờ nhớ phụ(dùng trong các lệnh BCD), cờ này báo có nhớ từ bit

D3 sang D4 ở phép cộng ADD hoặc trừ SUBB Cờ này được các lệnh số học mãBCD sử dụng

F0(PSW.5)- Cờ 0(dùng trong các mục đích do người lập trình)

RS1(PSW.4)- Chọn dãy thanh ghi bit1

RS0(PSW.3)- Chọn dãy thanh ghi bit0

OV(PSW.2)- Cờ tràn, cờ này được thiết lập mỗi khi kết quả của phép tính số

có dấu quá lớn làm cho bit cao bị tràn vào bit dấu Nhìn chung cờ nhớ đượcdùng để phát hiện lỗi trong các phép tính số học không dấu còn cờ tràn đượcdùng để phát hiện ra lỗi trong các phép tính số học có dấu

P(PSW.0)- Cờ parti hay cờ bậc( cờ chẵn lẻ) phản ánh số bit 1 trong thanh ghi

A là chẵn hay lẻ Nếu thanh ghi a chứa một số chẵn các bit 1 thì P = 0 còn nếuchứa một số lẻ bit 1 thì P = 1

Cách chọn dãy thanh ghi: Ta tiến hành lập trình cho các bit RS1 và RS0 đểnhận được các giá trị tương ứng như sau:

Trang 30

Cả hai bộ định thời Timer 0 và Timer 1 đều dùng chung một thanh ghi đượcgọi là TMOD để thiết lập các chế độ khác nhau của bộ định thời Thanh ghiTMOD là thanh ghi 8 bit gồm có 4 bit thấp dùng cho bộ định thời Timer 0 và 4bit cao dành cho Timer 1 Trong đó 2 bit thấp của chúng dùng để thiết lập chế độcho bộ định thời còn 2 bit cao dùng để xác định phép toán Thanh ghi TMODkhông được định địa chỉ từng bit nhưng điều này không cần thiết, TMOD đượcnạp một lần bởi phần mềm ở thời điểm bắt đầu của một chương trình để khởiđộng chế độ hoạt động của bộ định thời.

Ta xét 4 bit cao của thanh ghi TMOD dùng cho bộ định thời Timer 1, 4 bitthấp của thanh ghi này dùng cho bộ định thời Timer 0 là tương tự

GATE- Điều khiển cổng khi được thiết lập Bộ định thời / bộ đếm được mở

chỉ khi chân INTx cao và chân điều khiển TRx được lập Nếu GATE được xóa

bộ định thời được mở khi TRx được lập

C/T- Là bit dùng để xác định bộ định thời được sử dụng làm bộ tạo trễ hay bộ

đếm sự kiện Nếu bit C/T = 0 thì đó là bộ tạo trễ, nguồn đồng hồ của chế độ này

là tần số của thạch anh Khi C/T = 1 thì nó được sử dụng làm bộ đếm

Các bit M1, M0 là các bit chọn chế độ 0, 1, 2 của bộ định thời Timer 1 &Timer 0

điều khiển tiền nhiệm 8048 Chế độ này không được dùng cho những thiết kế

Trang 31

mới Byte cao của bộ định thời THx được ghép cascade với 5 bit thấp của bytethấp của bộ định thời TLx để tạo thành một bộ định thời 13 bit Ba bit cao củaTLx không sử dụng.

Chế độ 1: Là chế độ định thời / bộ đếm 16 bit và nó có cấu hình giống chế độ

định thời 13 bit, chỉ khác ở chỗ bây giờ là bộ định thời 16 bit Xung clock đặtvào các thanh ghi định thời cao và thấp kết hợp Khi có xung clock đến thì bộđịnh thời đếm lên: 0000H, 0001H, 0002H,… Một tràn sẽ xuất hiện khi có sựchuyển số đếm từ FFFFH xuống 0000H, sự kiện này sẽ set cờ tràn bằng 1 và bộđịnh thời tiếp tục đếm

Chế độ 2: Là chế độ định thời / bộ đếm 8 bit tự nạp lại Byte thấp của bộ định

thời (TLx) hoạt động định thời 8 bit trong khi byte cao của bộ định thời lưu giátrị nạp lại Khi số đếm tràn từ FFH xuống 00H, không chỉ cờ tràn của bộ địnhthời được set lên 1 mà giá trị trong THx còn được nạp vào TLx, việc đếm sẽ lạitiếp tục từ giá trị này cho đến khi xảy ra một tràn mới

Chế độ 3: Chế độ định thời chia tách hay chế độ định thời chia xẻ Nó có

hoạt động khác nhau cho từng bộ định thời Bộ định thời 0 ở chế độ này đượcchia thành 2 bộ định thời 8 bit hoạt động riêng rẽ là TL0 và TH0, mỗi bộ địnhthời sẽ set các cờ tràn tương ứng TF0 và TF1 khi xảy ra tràn Bộ định thời 1không hoạt động ở chế độ 3 nhưng có thể được khởi động bằng cách chuyển bộđịnh thời này vào một trong các chế độ khác Giới hạn duy nhất là cờ tràn TF1không bị ảnh hưởng

+

Thanh ghi điều khiển định thời(TCON):

Đây là một thanh ghi 8 bit và được định địa chỉ từng bit dùng để điều khiểnhoạt động cho bộ định thời và ngắt nói chung

TF1(TCON.7)- Cờ tràn của bộ định thời 1 Được set bởi phần cứng khi có

tràn, được xóa bởi phần mềm hoặc phần cứng khi bộ xử lý trỏ đến trình phục vụngắt

TR1(TCON.6)- Là bit điều khiển Timer 1, được set và xóa bởi phần cứng để

Timer 1 hoạt động hoặc ngừng

Trang 32

TF0(TCON.5)- Cờ tràn của bộ định thời 0 Được set bởi phần cứng khi có

tràn, được xóa bởi phần mềm hoặc phần cứng khi bộ xử lý trỏ đến trình phục vụngắt

TR0(TCON.4)- Là bit điều khiển Timer 0, được set và xóa bởi phần cứng để

Timer 1 hoạt động hoặc ngừng

IE1(TCON.3)- Là các bit được 8051 sử dụng để điều khiển ngắt 1 kích phát

sườn xung, được set bởi phần cứng khi có cạnh âm (xuống) xuất hiện trên chânINT1, được xóa bởi phần mềm, hoặc phần cứng khi CPU trỏ đến trình phục vụngắt

IT1(TCON.2)- Cờ ngắt bên ngoài 1( được kích khởi cạnh hoặc mức) Hoạt

động bởi phần mềm tức là cờ này được set hoặc là xóa bởi phần mềm khi xảy racạnh âm (xuống) hoặc mức thấp ở chân ngắt ngoài INT1

IE0(TCON.1)- Cờ ngắt bên ngoài 0( kích khởi cạnh), hoạt động bởi phần

cứng, tương tự như bit IE1 chỉ khác là tín hiệu lúc này xuất hiện trên chân ngắtngoài INT0

IT0(TCON.0)- Cờ ngắt bên ngoài 0( kích khởi cạnh hoặc mức) hoạt động bởi

phần mềm giống với bit IT0 nhưng với tín hiệu tác động và điều khiển xuất hiện

ở chân INT0

+

Các thanh ghi phục vụ ngắt:

Thanh ghi cho phép và không cho phép ngắt IE: Đấy cũng là một thanh ghi

8 bit và nó được định địa chỉ từng bit

EA(IE.7)- Đây là bit cho phép hoặc không cho phép ngắt toàn cục.

EA = 0: Thì không ngắt nào được báo nhận

EA = 1: Thì từng nguồn ngắt sẽ được mở hoặc cấm bằng cách bật hoặc xóabit cho phép tương ứng

IE.6- bit này chưa được sử dụng, là dự phòng cho tương lai.

ET2(IE.5)- Cho phép hoặc cấm ngắt tràn hoặc thu của bộ định thời Timer 2

của 8052

ES(IE.4)- Cho phép hoặc cấm ngắt do cổng port nối tiếp.

Trang 33

ET1(IE.3)- Cho phép hoặc cấm ngắt tràn của Timer 1.

EX1(IE.2)- Cho phép hoặc cấm ngắt ngoài 1.

ET0(IE.1)- Cho phép hoặc cấm ngắt tràn của Timer 0.

EX0(IE.0)- Cho phép hoặc cấm ngắt ngoài 0.

Thanh ghi xác định mức ưu tiên ngắt IP: Đây là một thanh ghi 8 bit và được

định địa chỉ từng bit

Hai bit IP.7 và IP.6 chưa được sử dụng

PT2(IP.5)- Ưu tiên cho ngắt do Timer 2 của 8052.

PS(TP.4)- Ưu tiên cho ngắt do port nối tiếp.

PT1(IP.3)- Ưu tiên cho ngắt do Timer 1.

PX1(IP.2)- Ưu tiên cho ngắt do ngắt ngoài 1.

PT0(IP.1)- Ưu tiên cho ngắt do Timer 0.

PX0(IP.0)- Ưu tiên cho ngắt do ngắt ngoài 0.

+

Thanh ghi điều khiển hoạt động cổng nối tiếp SCON:

Đây là thanh ghi 8 bit được định địa chỉ từng bit một

SM0(SCON.7)- Bit 0 chọn chế độ của port nối tiếp.

SM1(SCON.6)- Bit 1 chọn chế độ của port nối tiếp.

SM2(SCON.5)- Bit 2 chọn chế độ của port nối tiếp Bit này cho phép

truyền thông đa xử lý ở các chế độ 2 và 3 Trong chế độ 2 hoặc 3 nếu SM2 =

1, RI sẽ không được tích cực nếu bit nhận được thứ 9 (RB8) bằng 0 Trong chế

độ 1, nếu SM2 =1, RI sẽ không được tích cực nếu ta không nhận được bit stophợp lệ Trong chế độ 0 thì SM2 = 0

REN(SCON.4)- Set/ xóa bằng phần mềm để cho phép/không cho phép thu TB8(SCON.3)- Bit phát 8 Bit thứ 9 được phát ở các chế độ 2 và 3, được

set/ xóa bởi phần mềm

RB8(SCON.2)- Bit phát 8 bit thứ 9 nhận được cờ ngắt phát, được xóa bởi

phần mềm

Trang 34

TI(SCON.1)- Cờ ngắt phát Cờ này được set bởi phần cứng ở cuối thời gian

phát bit thứ 8 trong chế độ 0 hoặc ở giữa thời gian của bit stop trong các chế độkhác Cờ này phải được xóa bởi phần mềm

RI(SCON.0)- Cờ ngắt thu Cờ này được set bởi phần cứng ở cuối thời gian

thu bit thứ 8 trong chế độ 0 hoặc ở giữa thời gian của bit stop trong các chế độkhác Cờ này phải được xóa bởi phần mềm

độ

32

Bảng 2.12: Bảng lựa chọn chế độ truyền thông nối tiếp

+ Thanh ghi điều khiển nguồn PCON:

Đây là một thanh ghi 8 bit có địa chỉ byte 87H, không được định địa chỉ từngbit

SMOD: Tăng gấp đôi tốc độ baud Nếu bộ định thời 1 được dùng để tạo

baud và SMOD = 1, tốc độ baud được tăng gấp đôi khi port nối tiếpđược sử dụng ở các chế độ 1, 2 và 3

GF1: Bit cờ đa mục đích 1

GF0: Bit cờ đa mục đích 0

PD: Bit chế độ nguồn giảm Việc set bit này bằng 1 tác động đến thao tác

nguồn giảm trong các phiên bản CMOS của 8051

IDL: Bit chế độ nghỉ Việc set bit này tác động đến thao tác của chế độ nghỉ

trong các phên bản CMOS của 8051

Trên đây là giới thiệu sơ lược về chức năng của từng chân của Chip 8501, ta

Ngày đăng: 19/04/2017, 22:37

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w