Về thực chất vi điều khiển là một vi xử lý kết hợp với các thiết bị ngoại vi khác như bộ nhớ, các modun vào/ra, các modun biến đổi số sang tương tự và tương tự sang số….Những thành phần
Trang 1LỜI NÓI ĐẦU
VI ĐIỀU KHIỂN là một máy tính được tích hợp trên một chip, nó thường
được sử dụng để điều khiển các thiết bị điện tử Về thực chất vi điều khiển là một vi
xử lý kết hợp với các thiết bị ngoại vi khác như bộ nhớ, các modun vào/ra, các modun biến đổi số sang tương tự và tương tự sang số….Những thành phần cơ bản của vi điều khiển bao gồm lõi CPU, bộ nhớ chương trình(ROM),bộ nhớ dữ liệu(RAM), một hoặc vài bộ định thời và các cổng vào ra để giao tiếp với các thiết bị ngoại vi, với môi trường bên ngoài, tất cả các khối này được thiết kế trong một vi mạch tích hợp Các viđiều khiển thông dụng: họ vi điều khiển AMCC
Đồ án môn học vi điều khiển là cơ sở để sinh viên được ứng dụng các kĩ năng để thiết kế và thi công một mạch hoàn chỉnh sử dụng vi điều khiển AT89C51
mạch điều khiển, hiển thị trên led 7 đoạn Đo nhiệt độ động
cơ bằng cảm biến nhiệt LM35 thông qua bộ thiết kế mạch
chuyển đổi ADC0804
Trang 2Qua nỗ lực tìm tòi cùng với sự hướng dẫn của thầy Phạm Quốc Thái đã giúp chúng em hoàn thành xong đồ án vi điều khiển này.Trong quá trình hoàn thành đồ án này không tránh khỏi sai sót, chúng em mong Thầy thông cảm, giúp đỡ chỉ bảo thêm cho chúng em để chúng em rút ra những kinh nghiệm quý báu cho các đồ án tiếp theo Chúng em xin chân thành cám ơn sự quan tâm và tận tình giúp đỡ của Thầy
Sinh viên thực hiện :
NHÓM 05
MỤC LỤC 1.Giới thiệu chung về vi điều khiển……….… 3
2.Giới thiệu về quy trình công nghệ hệ thống thiết kế……… 4
3.Khảo sát bộ vi điều khiển 8051……… 7
3.1.IC AT89C51……… 6
3.2.Các tha nh ghi chức năng đặc biệt……….10
4.Hoạt động của bộ định thời……….……… 12
4.1.Thanh ghi chế độ định thời TMOD……….… 12
4.2 Thanh ghi chế độ định thời TCON……….………… 13
5 Các chế độ định thời……… 14
5.1.Chế độ định thời 13 bit……….………….14
5.2 Chế độ định thời 16 bit……….……….14
5.3.Chế độ tự động nạp lại 8 bit……… ………….15
5.4.Chế độ định thời chia sẻ……….……… 15
6 Khảo sát cảm biến nhiệt LM35 thông qua chuyển đổi ADC0804……….….16
Trang 36.1.Giới thiệu về ADC……… … 16
6.2.Tìm hiểu về ADC0804……… 16
6.3.Dải nhiệt độ và sự thay đổi trở kháng theo nhiệt độ của LM35……….………19
6.4 Các bộ cảm biến nhiệt họ LM35……….………20
6.5 Phối hợp tín hiệu và sơ đồ khối phối ghép LM35 với 8051……… 20
7 Khảo sát các linh kiện dùng thiết kế mạch led 7 đoạn………21
7.1.Điện trở.……… ……….………… 22
7.2.Tụ điện phân cực………22
7.3.Tụ điện không phân cực……….………23
7.4.Thạch anh……….… 23
7.5.Transito……….…… 23
7.6.Diot……….………24
7.7 Đèn báo nguồn……… …….24
7.8 Lược cái……… … 24
8 Lưu đồ thuật toán và chương trình điều khiển………24
1 Giới thiệu chung về vi điều khiển:
*Cấu trúc phần cứng của AT89C51:
AT89C51 là một họ IC vi điều khiển do hãng Intel của Mỹ sản xuất Chúng có đặc điểm như sau:
+8 KB EPROM bên trong
+128 Byte RAM nội
+4 Port xuất/nhập I/O 8 bit
+Giao tiếp nối tiếp
+64 KB vùng nhớ mã ngoài
+64 KB vùng nhớ dữ liệu ngoại
+Xử lí Boolean ( hoạt động trên bit đơn)
+210 vị trí nhớ có thể định vị bít
+4 µs cho hoạt động nhân hoặc chia
*Sơ đồ khối của AT89C51:
Trang 4*Cấu trúc bên trong vi điều khiển :
Tổ chức bộ nhớ:
*Bảng đồ bộ nhớ data trên chip như sau:
Trang 5Bộ nhớ bên trong AT89C51 bao gồm ROM và RAM RAM trong AT89C51 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.
AT89C51 có bộ nhớ theo cấu trúc Harvarrd: có những vùng nhớ riêng biệt cho chươngtrình và dữ liệu Chương trình và dữ liệu có thể chứa bên trong AT89C51 nhưng 89C51 vẫn có thể kết nối với 64Kbyte bộ nhớ chương trình và 64Kbyte dữ liệu
*Hai đặc tính cần chú ý là:
+Các thanh ghi và các port xuất nhập đã được định vị trong bộ nhớ và có thể truy xuất
Trang 6RAM bên trong AT89C51 được phân chia như sau:
+Các bank thanh ghi có địa chỉ từ 00H đến 1FH
+RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2Fh
+RAM đa dụng từ 30H đến 7FH
+Các thanh ghi chức năng đặc biệt từ 80H đến FFH
2.Giới thiệu về quy trình công nghệ hệ thống thiết kế:
Quy trình công nghệ thiết kế mạch điều khiển led 7 đoạn dùng cảm biến
ADC0804 đo nhiệt độ động cơ bằng IC 89C51
+ Viết chương trình mô phỏng và chương trình nạp chíp 89C51 bằng Proteus
+ Thiết kế mạch sơ đồ nguyên lí
a.Ý tưởng :
Xuất phát từ ý tưởng sử dụng LED 7 đoạn để hiển thị các thông tin như là :chạy chữ với nội dung theo yêu cầu của người lập trình , hiển thị các hình ảnh đơn giản… để úng dụng vào trong quảng cáo , hiệu ứng đèn nháy như : đèn giao thông, dòng chữ chạy…
b Vẽ sơ đồ nguyên lí , mô phỏng:
Từ những kiến thức được học về vi điều khiển,lý thuyết mạch điện tử…ta tiến hành ve
sơ đồ nguyên lí của mạch với đầy đủ các linh kiện cần thiết Từ sơ đồ nguyên lí ve được ta tiến hành mô phỏng mạch trên máy tính.Ở ta đây ta sử dụng chương trình mô phỏng Proteus 7.7 để mô phỏng quá trình hoạt động của mạch Ta có thể viết các chương trình đơn giản để kiểm tra xem mạch có hoạt động đúng không , khảo sát các thông số như dòng điện ,điện áp…
c.Lắp mạch thực tế trên bo mạch thử:
Khi quá trình mô phỏng mạch trên phần mềm mô phỏng đã thành công,ta tiến hành lắpmạch thực tế trên bo mạch thử như khi mô phỏng trên máy tính với các bước sau:+Tìm kiếm linh kiện cần thiết để lắp mạch, tìm hiểu sơ đồ chân thực tế
Trang 7Ý tưởng
Vẽ sơ đồ nguyên lí
Chạy mô phỏng
Thi công mạch Chạy thử
Kiểm tra,hoàn thành
sai
dúng
3 Khảo sát bộ vi điều khiển 8051:
Mạch điều khiển led bằng IC 89C51 gồm các linh kiện sau:
3.1.IC AT89C51:
Đây là bộ điều khiển trung tâm điều khiển họat động của mạch và là nơi lưu giữ chương trình chính cho mạch
Sơ đồ chân:
Trang 8-IC AT89C51 có các đặc trưng: ROM: 4Kbyte, RAM: 128byte, có tất cả 40 chân có chức năng như các đường xuất nhập, trong đó có 24 chân có tác dụng kép (có nghĩa 1 chân có 2 chức năng), mỗi đường có thể hoạt động như đường xuất nhập hoặc như
đường điều khiển hoặc là thành phần của các bus dữ liệu và bus địa chỉ, hai bộ định thời/đếm 16 bit, mạch tạo dao động và tạo xung clock trên chíp
-Mô tả các chân của IC AT89C51:
Chân 40, Vcc: chân cung cấp điện, được nối lên nguồn 5V
Trang 9Chân 20, GND: chân nối đất.
Chân 32 – 39, Port 0: là port xuất nhập 8 bit hai chiều, được cấu hình làm bus địa chỉ (byte thấp) và làm bus dữ liệu đa hợp trong khi xuất nhập bộ nhớ dữ liệu ngoài
và bộ nhớ chương trình ngoài
Chân 1 – 8, Port 1: là port xuất nhập 8 bit hai chiều có các điện trở kéo lên bên trong Khi các logic 1 được ghi lên các chân của port 1, các chân này được kéo lên mức cao bởi các điện trở kéo lên bên trong và có thể được sử dụng như các cổng vào Khi lam nhiệm vụ là các port nhập, các chân của port 1 đang được kéo xuống mức thấp do tác động bên ngoài se cấp dòng do có các điện trở kéo lên bên trong
Chân 21 – 28, Port 2: là port xuất nhập 8 bit hai chiều có các điện trở kéo lên bên trong Khi các logic 1 được ghi lên các chân của port 2, các chân này được sử dụng như các cổng vào Khi làm nhiệm vụ là các port nhập, các chân của port 2 đang được kéo xuống mức thấp do tác động bên ngoài se cấp dòng do có các điện trở kéo lên bên trong Port 2 tạo ra byte cao của bus địa chỉ trong thời gian tìm nạp lệnh từ bộ nhớ chương trình ngoài, và trong thời gian truy xuất bộ nhớ dữ liệu ngoài sử dụng các địa chỉ 16 bit
Chân 10 – 17, Port 3: là port xuất nhập 8 bit hai chiều có các điện trở kéo lên bên trong Khi các logic 1 được ghi lên các chân của port 3, các chân này được kéo lênmức cao bởi các điện trở kéo lên bên trong và có thể được sử dụng như các cổng vào Khi làm nhiệm vụ là các port nhập, các chân của port 3 đang được kéo xuống mức thấp do tác động bên ngoài se cấp dòng do có các điện trở kéo lên bên trong Port 3 còn được sử dụng làm các chức năng khác như:
Chân P3.0 : ngõ vào port nối tiếp
Chân P3.1 : ngõ ra port nối tiếp
Chân P3.2 : ngõ vào ngắt ngoài 0
Chân P3.3 : ngõ vào ngắt ngoài 1
Chân P3.4 : ngõ vào bên ngoài của bộ định thời 1
Chân P3.5 : ngõ vào bên ngoài của bộ định thời 0
Chân P3.6 : điều khiển ghi bộ nhớ dữ liệu ngoài
Chân P3.7 : điều khiển đọc bộ nhớ dữ liệu ngoài
Trang 10Chân 9, RST: Ngõ vào Reset Mức cao trên chân này trong 2 chu kì máy trong khi bộ dao động đang hoạt động se reset AT 89C51.
Chân 19, XTAL1: Ngõ vào đến mạch khuyếch đại đảo của mạch dao động
và ngõ vào đến mạch tạo xung clock bên trong chip
Chân 18, XTAL2: Ngõ ra từ mạch khuyếch đại đảo của mạch dao động Đểtạo mạch dao động cho AT 89C51 ta sử dụng linh kiện là hai tụ C1=C2=30pF, và thạch anh dao động có tần số 12 MHz
Chân 29, ngõ tín hiệu PSEN: 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 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 Microcontroller 8051
Trang 11lấy lệnh Các mã lệnh của chương trình được đọc từ Eprom qua bus dứ liệu và được chốt vào thanh ghi lệnh bên trong 8951 để giải mã lệnh.Khi 8951thi hành chương trìnhtrong ROM nội PSEN se ở mức logic 1.
Chân 30, ngõ tín hiệu điều khiển ALE: khi 8951 truy xuất bộ nhớ bên ngoài , port 0 có chức năng là bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ Tin hiệu ra ALE dung làm tín hiệu điều khiển để giải tín hiệu đa hợp các đường địa chỉ kếtnối chúng với IC chốt Tín hiệu ra ở 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 Các xung tín hiệu ALE có tốc độ bằng 1/6 làn tần số dao động trên chip và có thể được dung làm tínhiệu clock cho các phần khác của hệ thống Chân ALE được dùng làm ngõ vào xung lập trình cho Eprom trong AT89C51
chân 31, ngõ tín hiệu vào AE: thường được mắc lên mức 1 hoặc 0 Nếu ở mức
1, AT89C51 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp 8 Kbyte Nếu ở mức 0, AT89C51 se 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 AT89C51
3.2.Các thanh ghi chức năng đặc biệt:
3.2.1.Các thanh ghi port xuất nhập:
Các port của 8051 bao gồm port 0 ở địa chỉ 80H , port 2 ở địa chỉ A0H và port 3 ở địa chỉ B0H Tất cả các port đều được địa chỉ hóa từng bit điều đó cung cáp một khả năng giao tiếp thuận lợi
3.2.2.Các thanh ghi timer:
8051 có 2 bộ đếm / định thời (timer/counter) 16 bit để xá định các khoảng thời gian hoặc để đếm các sự kiện bộ định thời 0 có địa chỉ 8AH (TL0, byte thấp) và 8CH (TH0,byte cao); bộ định thời 1 có địa chỉ 8BH (TL1 , byte thấp ) và 8DH (TH0, byte cao )
Hoạt động của bộ định thời được thiết lập bởi thanh ghi chế độ định thời TMOD (timer mode register ) ở địa chỉ 89H và thanh ghi điều khiển định thời TCON (timer control register ) ở địa chỉ 88H chỉ có TCON được định địa chỉ từng bít
3.2.3.Các thanh ghi port nối tiếp:
Trang 12Bên trong 8051 có một port nối tiếp để truyền thông với các thiết bị nối tieepsnhuw các thiết bị đầu cuối hoặc modem, hoặc để giao tiếp với các IC khác có mạch giao tiếp nối tiếp Một thanh ghi được gọi là bộ đếm dữ liệu nối tiếp SBUF ở địa chỉ 99H lưu giữ dữ liệu truyền đi và dữ liệu nhận về việc ghi lên SBUF ssex nạp dduex liệu để truyền về việc đọc SBUF se lấy dữ liệu đã nhận được các chế đọ hoạt động khác nhau được lập trình thông qua thanh ghi diều khiển port nối tiếp SCON ở địa chỉ 98H , thanh ghi này được định địa chỉ từng bit.
3.2.4.Các thanh ghi ngắt:
8051 có một cấu trúc ngắt với 2 mức ưu tiên và 5 nguyên nhân ngắt các ngắt bị vô hiệu hóa sau khi rết hệ thống và sau đó được phép bằng cách ghi vào thanh ghi cho phép ngắt IE ở địa chỉ A8H mức ưu tiên ngất được thiết lập qua thanh ghi ngắt IP ở địa chỉ B8H cả 2 thanh ghi này đều đã được định địa chỉ từng bit
3.2.5.Thanh ghi điều khiển nguồn :
Thanh ghi điều khiển nguồn PCON có địa chỉ 87H chứa các bit điều khiển
bit SMOD tăng gấp đôi tốc đọ baud của port nối tiếp khi port này hoạt động ở các chế
đọ 1,2,3 các bit 4,5,6 của PCON không được định nghĩa các bit 2,3 là các bit cờ đa mục đích dành cho các ứng dụng của người sử dụng
Các bit điều khiển nguồn , nguồn giảm PD và nghỉ IDL , hợp lệ trong tất cả chip thuộc
họ MCS-51 , nhưng chỉ được hiện thực trong các phiên bản CMOS của MCS-51 PCON không được định địa chỉ bit
3.2.6.Lệnh RESET:
Trang 138051 được reset bằng cách giữu chân RST ở mức cao tối thiểu 2 chu kỳ máy và sau đóchuyển về mức thấp RST có thể được tác đọng bằng tay hoặc được tác động khi cấp nguồn bằng cách dùng một mạch RC như được trinh bày ở hình.
Quan trọng nhất trong các thanh ghi này có le là thanh ghi PC , được nạp 0000H Khi RST trở lại mức thấp , việc thực thi chương trình luôn luôn bắt đầu ở vị trí đầu tiên trong bộ nhớ chương trình : địa chỉ 0000H nội dung của Ram trên chip không bị ảnh hưởng bởi hoạt đọng reset
Bảng 3.1: Trạng thái các thanh ghi sau khi RESET
4 Hoạt động của bộ định thời:
4.1 Thanh ghi chế độ định thời TMOD:
Thanh ghi chế độ định thời TMOD chứa 2 nhóm 4-bit dùng để thiết lập chế độ hoạt động cho bộ định thời 0 và bộ định thời 1 TMOD không được định địa chỉ từng bit vàđiều này cũng không cần thiết một cách tổng quát , TMOD đượ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ương trình để khởi động chế độ hoạt động của bộ định thời Sau đó , bộ định thời có thể được dừng bắt đầu ,… bằng cách truy
Trang 14BIT TÊN BỘ ĐỊNH THỜI MÔ TẢ
4.2 Thanh ghi chế độ định thời TCON:
Thanh ghi chế độ định thời TCON chứa các bit điều khiển và trạng thái của bộ định thời 0 và bộ định thời 1.Bốn bit cao trong TCON được dùng để điều khiển các bộ định thời hoạt động hoặc ngưng hoặc để báo cáo các bộ định thời tràn
Cờ tràn của bộ định thời 1 cờ này được set bởi phần cứng khi có tràn , được xóa bởi phần mềm , hoặc bởi phần cứng khi
có bộ vi xử lystror đến trình phục vụ ngắt
Bit điều khiển hoạt động của bộ định thời
1 Bit này được set hoặc được xóa bởi phần mềm để điều khiển bộ định thời hoạtđộng hay ngưng hoạt động
0
phần cứng khi có cạnh âm xuất hiện trên chân INT1, được xóa bởi phần mềm , hoặc phần cứng khi CPU trỏ đến trình
Trang 15phục vụ ngắt.
Cờ ngắt bên ngoài 1.cờ này được set và xóa bởi phần mềm khi xẩy ra cạnh âm (xuống) hoặc mức thấp tại chân ngắt ngoài
Bảng 3.2 :Thanh ghi điều khiển định thời TCON.
5.Các chế độ định thời:
5.1.chế độ định thời 13 bit (chế độ không):
Để tương thích với 8048 có trước 8051
Ba bit cao của TLX là TL0 VÀ TL1 không dùng
5.2.Chế độ 16-bit (chế độ 1):
Hoạt động như timer 16 bit đầy đủ
Cờ báo tràn là bit TFx trong TCON có thể đọc hoặc ghi bằng phần mềm
MSB của các giá trị trong thanh ghi là bit 7 của THx và LBS là bit 0 của TLx Các thanh ghi timer (TLx/THx) có thể được đọc hoặc ghi bất cứ lúc nào bằng phần mềm
(5 BIT) (8 BIT)
TFxXung nhịp
Trang 165.3 Chế độ tự động nạp lại 8 bit:
Chế độ 2 là chế độ tự động nạp lại 8-bit 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ữ giá trị nạp lại khi số đếm tràn từ FF xuống 00H, không chỉ cờ tràn của bộ định thời được set lên 1maf giá trị tronh THx còn được nạp vào TLx; việc đếm se tiếp tục từ giá trị này cho đến khi xảy ra một tràn
5.4.Chế độ định thời chia sẻ ( chế độ 3):
Bộ định thời 0 ở chế độ 3 được chia thành 2 bộ định thời 8-bit hoạt động riêng
re TL0 và TH0, mỗi bộ định thời se set các cờ tràn tương ứng TF0 và TF1 khi xảy ra tràn
Bộ định thời 1 khô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
Chế độ 3 chủ yếu cung cấp thêm một bộ định thời 8-bit nữa, nghĩa là 8051 có thêm bộ định thời thứ 3 khi bộ định thời 0 ở chế độ thứ 3, bộ định thời 1có thể hoạt động hoặc
TFx
THx(8-bit)Xung nhịp time