I-Tổng quan về vi điều khiển 8051
Vào năm 1971 tập đoàn Intel đã giới thiệu 8080, bộ vi xử lí thành công đầu tiên.Sau đó không lâu, Motorola, RCA cũng giới thiệu các bộ vi xử lí tương tự: 6800, 1801 Các vi mạch này trở thành một phần của máy tính đơn board, và trở thành thành phần trung tâm trong các sản phẩm có ích dùng để nghiêm cứu và thiết kế.
Năm 1976 Intel giới thiệu bộ vi điều khiển 8748, một chip tương tự như các bộ vi xử lí và là chip đầu tiênt rong họ MCS-48. 8748 chứa trên 17000 transitor bao gồm 1 CPU, 1 K byte EPROM, 64 byte RAM, 27 chân xuất nhập và một bộ định thời 8-bit.IC này và các IC tiếp theo của họ MCS-48 đã nhanh chóng trở thành chuẩn công nghiệp trong các ứng dụng hướng điều khiển.
Độ phức tạp, kích thước và khả năng của các bộ vi điều khiển được tăng thêm một bậc quan trọng vào năm 1980 khi Intel công bố chip 8051, bộ vi điều khiển đầu tiên của họ của họ vi điều khiển MCS-51.Các nhà sản xuất IC khác như Siemens, Advanced Micro Devices, Fujiitsu và Philips được cấp phép làm các nhà cung cấp thứ hai cho các chip của họ MCS-51.
Chip 8051 có các dặc trưng cơ bản như sau:
+ 4KB ROM
+ 128 byte RAM
+ 4 port xuất nhập ( I/O port ) 8-bit
+ 2 bộ định thời 16-bit
+ Mạch giao tiếp nối tiếp
+ Không gian nhớ chương trình ( mã ) ngoài 64K
+ Không gian nhớ dữ liệu ngoài 64K
+ Bộ xử lí bit ( thao tác trên các bit riêng rẽ )
+ 210 vị trí nhớ được định địa chỉ, mỗi vị trí 1 bit
+ Nhân/chia trong 4 μs
Các thành viên khác của họ MCS-51 có các tổ hợ ROM ( EPROM ), RAM trên chip khác nhau hoặc có thêm bộ định thời thứ ba. Mỗi một IC của họ MCS-51 cũng có phiên bản CMOS công suất thấp.
24 trang |
Chia sẻ: lethao | Lượt xem: 2626 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đề tài Thiết kế mạch điện gồm 16 Led ghép nối với 8051, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
đỂ TÀI:
Thiết kế mạch điện gồm 16 Led ghép nối với 8051. Viết chương trình thực hiện các hiệu ứng sáng dần từ trái qua phải, từ phải qua trái, từ hai đầu vào, từ giữa ra.
Nhóm sinh viên : Triệu Minh Chính
Nguyễn Văn Chung
Nguyễn Quốc Hưng
Nguyễn Sỹ Hiệp
Vũ Đình Dũng
Vũ Đình Duy
Lớp : DTVT K7B
Thái Nguyên, ngày 15 tháng 05 năm 2010
I-Tổng quan về vi điều khiển 8051
Vào năm 1971 tập đoàn Intel đã giới thiệu 8080, bộ vi xử lí thành công đầu tiên.Sau đó không lâu, Motorola, RCA… cũng giới thiệu các bộ vi xử lí tương tự: 6800, 1801… Các vi mạch này trở thành một phần của máy tính đơn board, và trở thành thành phần trung tâm trong các sản phẩm có ích dùng để nghiêm cứu và thiết kế.
Năm 1976 Intel giới thiệu bộ vi điều khiển 8748, một chip tương tự như các bộ vi xử lí và là chip đầu tiênt rong họ MCS-48. 8748 chứa trên 17000 transitor bao gồm 1 CPU, 1 K byte EPROM, 64 byte RAM, 27 chân xuất nhập và một bộ định thời 8-bit.IC này và các IC tiếp theo của họ MCS-48 đã nhanh chóng trở thành chuẩn công nghiệp trong các ứng dụng hướng điều khiển.
Độ phức tạp, kích thước và khả năng của các bộ vi điều khiển được tăng thêm một bậc quan trọng vào năm 1980 khi Intel công bố chip 8051, bộ vi điều khiển đầu tiên của họ của họ vi điều khiển MCS-51.Các nhà sản xuất IC khác như Siemens, Advanced Micro Devices, Fujiitsu và Philips được cấp phép làm các nhà cung cấp thứ hai cho các chip của họ MCS-51.
Chip 8051 có các dặc trưng cơ bản như sau:
+ 4KB ROM
+ 128 byte RAM
+ 4 port xuất nhập ( I/O port ) 8-bit
+ 2 bộ định thời 16-bit
+ Mạch giao tiếp nối tiếp
+ Không gian nhớ chương trình ( mã ) ngoài 64K
+ Không gian nhớ dữ liệu ngoài 64K
+ Bộ xử lí bit ( thao tác trên các bit riêng rẽ )
+ 210 vị trí nhớ được định địa chỉ, mỗi vị trí 1 bit
+ Nhân/chia trong 4 μs
Các thành viên khác của họ MCS-51 có các tổ hợ ROM ( EPROM ), RAM trên chip khác nhau hoặc có thêm bộ định thời thứ ba. Mỗi một IC của họ MCS-51 cũng có phiên bản CMOS công suất thấp.
Sơ đồ khối của chip 8051
Thuật ngữ “8051” được dùng để chỉ rộng rãi các chip của họ MCS-51. Khi việc thảo luận tập trung vào một cải tiến từ chip 8051 cơ bản, chip cải tiến được chỉ ra rõ ràng.
Sơ đồ chân của 8051
Ta thấy rẳng,trong số 40 chân của 8051,có 32 chân có công dụng nhập/xuất dữ liệu,tuy nhiên 24 trong 32 đường này có 2 mục đích.
32 chân này hình thành 4 port 8-bit. Với các thiết kế yêu cầu một mức tói thiểu bộ nhớ ngoài hoặc các thành phần bên ngoài khác, ta có thể sử dụng các port này làm nhiệm vụ nhập/xuất. 8 đường cho mỗi port có thể xử lí nư một đơn vị giao tiếp với các thiếp bị song song như máy in, bộ biến đổi D-A….hoặc mỗi đường có thể hoạt động độc lập giao tiếp với 1 thiết bị đơn bit như chuyển mạch, LED, BJT, FET, cuộn dây, động cơ, loa…
1 – Port 0 ( các chân từ 32 đến 39 trên 8051 )
Có hai 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, port 0 trở thành bus địa chỉ và bus dữ liệu đa hợp.
2 – Port 1 ( các chân từ 1 đến 8 trên 8051 )
Chỉ có 1 công dụng là xuất/nhập.Kí hiệu lầm lượt là P1.0, P1.1….P1.7 và được dùng để giao tiếp với các thiết bị bên ngoài khi có yêu cầu. Port 1 chỉ có chức năng sử dụng để giao tiếp với các thiết bị ngoại vi.
3 – Port 2 ( các chân từ 21 đến 28 trên 8051 )
Có 2 công dụng:
+ Làm nhiệm vụ xuất/nhập hoặc là byte địa chỉ cao của bus địa chỉ 16-bit cho các thiết kế có bộ nhớ chương trình ngoài .
+ Các thiết kế có nhiều hơn 256 byte bộ nhớ dữ liệu ngoài.
4 – Port 3 ( các chân từ 10 đến 17 trên 8051 )
Có 2 công dụng. Khi không hoạt động nhập/xuất, các chân của port 3 có nhiều chức năng riêng liên quan đến các riêng.
Bit
Tên
Địa chỉ bit
Chức năng
P3.0
RxD
B0H
Chân nhận dữ liệu của port nối tiếp
P3.1
TxD
B1H
Chân phát dữ liệu của port nối tiếp
P3.2
INT0
B2H
Ngõ vào ngắt ngoài 0
P3.3
INT1
B3H
Ngõ vào ngắt ngoài 1
P3.4
T0
B4H
Ngõ vào của bộ định đếm thời/đếm 0
P3.5
T1
B5H
Ngõ vào của bộ định thời/đếm 1
P3.6
WR
B6H
Điều khiển ghi bộ nhớ dữ liệu ngoài
P3.7
RD
B7H
Điều khiển đọc bộ nhớ dữ liệu ngoài
P1.0
T2
90H
Ngõ vào của bộ định thời/đếm 2
P1.1
T2EX
91H
Nạp lại/thu nhận của bộ định thời 2
Chức năng của các chân của Port 3 và Port 1
5 – Chân cho phép bộ nhớ chương trình PSEN
8051 cung cấp cho ta 4 tín hiệu điều khiển bus.Tín hiệu cho phép bộ nhớ chương trình PSEN là tín hiệu xuất trên chân 29.Chân này thường được nối với chân cho phép xuất OE của EPROM để cho phép đọc các byte lệnh.Khi thực thi 1 chương trình chứa ở 1 ROM nội, PSEN được duy trì ở logic ko tích cực.Tín hiệu PSEN ở logic 0 trong suất quá trình tìm/nạp lệnh.
6 – Chân cho phép chốt địa chỉ ALE
8051 sử dụng chân 30, chân xuất tín hiệu để giải đa hợp bus dữ liệu và bus địa chỉ.
Nếu mạch có tần số 12MHz thì tín hiệu ALE có tần số 2MHz.
Trong tgian thực thi lệnh MOVX,một xung ALE sẽ bị bỏ qua.
7 – Chân truy xuất ngoài EA (chân 31)
Có thể được nối với 5V(logic 1) hoặc GND(logic 0).
EA nối 5V, 8051/8052 thực thi chương trình trong ROM nội
EA nối GND, chương trình cần thực thi chứa ở bộ nhớ ngoài.
Ngoài ra,chân EA còn nhận điện áp 21V cho việc lập trình EPROM nội.
8 – Chân reset (chân 9)
Là ngõ vào xóa chính của 8051 dùng để thiết lâp lại trạng thái ban đầu cho hệ thống (reset hệ thống ).
Với vi điều khiển sử dụng thạch anh có tần số 12 MHz thì dùng C = 10 μF và R = 10 kΩ.
9 – Các chân XTAL1 và XTAL2 (chân 18 và 19 )
Dùng để ghép nối với mạch dao động bên trong 8051 với thạch anh bên ngoài.
Tần số danh định của thạch anh là 12 MHz cho hầu hết các chip họ MCS-51. ( Trên thực tế, tần số này có giá trị là 11,0592 MHz )
Với tần số danh định của thạch anh là 12 MHz sẽ tạo ra chu kì máy ( chu kì máy là khoảng thời gian cần thiết được qui định để vi điều khiển thực hiện hoàn thành một lệnh cơ bản )
Các tụ C1 = C2 = 33 pF dùng ổn định dao động cho thạch anh.
II – Vi điều khiển 89S52
Là vi điều khiển họ MCS-51 do hãng Atmel sản xuất, tên gọi vi điều khiển được thay đổi chút ít (mã số 80 chuyển thành 89) ,80C52 của Intel khi sản xuất ở Atmel mã số thành 89C52 (AT 89C52).Các vi điều khiển 890Sxx được cải tiến từ dòng 89Cxx.
Hầu hết các vi điều khiển thuộc họ MCS-51 đều có đặc tính cơ bản giống nhau về phần mềm ( các tập lệnh lập trình như nhau ), còn phần cứng được bổ xung với chip có mã hai số cuối cao hơn, các vi điều khiển sau này có nhiều tính năng vượt trội hơn vi điều khiển thế hệ trước.
Ưu điểm của VDK 89Sxx:
+ Chương trình viết cho 89Cxx đều chạy được cho 90Sxx.
+ 89Sxx rẻ hơn 89Cxx
+ 89Sxx có chế độ nạp nối tiếp với mạch nạp đơn giản có khả năng nạp ngay trên bo mạch khác mà không cần tháo chip VDK sang mạch khác để nạp chương trình và nhiều tính năng cải tiến khác.
Bảng so sánh một số loại vi điều khiển họ MCS-51
Sơ đồ chân của vi điều khiển 89S52
Về cơ bản, các chân của 89S52 có chức năng giống với các VDK thế hệ trước:
+ Port 0,1,2,3 có chức năng cơ bản xuất/nhập
+ Riêng P0,P2 còn có chức năng kết nối bộ nhớ mở rộng.
+ Chân T2 và T2EX dùng cho timer/counter 2.
+ Chân MOSI, MISO, SCK truyênd dữ liệu theo chuẩn SPI đồng thời có chức năng kết nối với mạch nạp chương trình
P3 : tích hợp các chức năng đặc biệt
Sơ đồ điều kiện để 89S52 hoạt động và sơ đồ mạch nạp
Kết nối các Port với các LED
Các Port khi xuất tín hiệu ở mức logic 1 thường không đạ đến 5V mà dao động trong khoảng từ 3,5V đến 4,9V và dòng xuất ra rất nhỏ dưới 5mA (P0,P2 dòng xuất ra khoảng 1mA ; P3,P1 dòng xuất ra trong khoảng 1mA đến 5mA ) vì vậydongf xuất này ko đủ để có thể làm LED sáng
Tuy nhiên các Port xuất tín hiệu ở mức logic 0 dòng điện cho phép đi qua lớn hơn rất nhiều:
Chân VDK ở mức 0:
+ Dòng lớn nhất qua P0 : -25mA
+ Dòng lớn nhất qua P1, P2, P3 : -15mA
Do đó khi kết nối với LED hoặc các thiết bị khác, vi điều khiển sẽ gặp nhiều trở ngại là nếu tác động làm LED sángkhi VDK xuất ở mức 1, lúc này dòng và áp ko đủ để LED có thể sáng rõ (LED đỏ sáng ở điện áp 1,6 – 2,2 V và dòng trong khoảng 10mA ).
Cách khắc phục:
1 – Cho LED sáng khi VDK ở mức 0:
Px.x thay cho các chân xuất của các Port. (P1.1, P2.0 …..)
+ Khi Px.x ở mức 1 : LED ko sáng.
+ Khi Px.x ở mức 0 : LED sáng.
2 – Cho LED sáng khi vi điều khiển xuất ở mức 1:
Như đã trình bày, vì ngõ ra VDK khi xuất ở mức 1 ko đủ để cho LED sáng, để LED sáng được cần đặt thêm một điện trở kéo lên nguồn Vcc ( gọi là điện trở treo ).
Tùy từng trường hợp mà chịn R2 để dòng và áp phù hợp với thiết bi nhận.
+ Khi Px.x ở mức 0, có sự chênh lệch áp giữa nguồn Vcc và chân Px.x ; dòng điện đi từ Vcc qua R2 và Px.x về Mass, do đó hiệu điện thế giữa 2 chân LED gần như bằng 0, LED ko sáng.
+ Khi Px.x ở mức 1 (+5V), dòng điện ko chạy qua chân vi điều khiển để về Mass được, có sự chênh lệch áp giữa hai chân LED, dòng điện trong trường hợp này qua LED về Mass do đó LED sáng.
R2 thường được sử dụng với giá trị từ 4,7K đến 10k . Nếu tất cả các chân trong 1 Port đều kết nối để tác động ở mức cao thì điện trở R2 có thể thay bằng điện trở thanh 9 chân vì nó có hình dáng và sử dụng dễ hơn khi lamg mạch điện.
III – Bài tập lớn
Đề bài : Thiết kế mạch điện gồm 16 Led ghép nối với 8051. Viết chương trình thực hiện các hiệu ứng sáng dần từ trái qua phải, từ phải qua trái, từ hai đầu vào, từ giữa ra.
1 – Các linh kiện để làm mạch
- 1 bảng mạch
- 1 vi điều khiển 89S52
- 16 đèn LED đỏ
- 1 thạch anh 12 MHz
- 16 điện trở 47kΩ
- 16 điện trở 220kΩ
- 16 transitor H1061
- 2 tụ 33 pF
- 1 tụ 10 μF
- 1 điện trở 10 kΩ
- Mỏ hàn, thiếc hàn cùng các dây dẫn
2 – Mạch điện mô phỏng
Code chương trình :
org 0000h
start:
acall khoidong
acall nhay1
acall delay
acall nhay2
acall delay
acall nhay3
acall delay
acall nhay4
acall delay
ljmp start
khoidong:
mov P1,#00000000b
mov P3,#00000000b
ret
nhay1:
mov P3,#10000000b
acall delay
mov P3,#11000000b
acall delay
mov P3,#11100000b
acall delay
mov P3,#11110000b
acall delay
mov P3,#11111000b
acall delay
mov P3,#11111100b
acall delay
mov P3,#11111110b
acall delay
mov P3,#11111111b
acall delay
mov P1,#10000000b
acall delay
mov P1,#11000000b
acall delay
mov P1,#11100000b
acall delay
mov P1,#11110000b
acall delay
mov P1,#11111000b
acall delay
mov P1,#11111100b
acall delay
mov P1,#11111110b
acall delay
mov P1,#11111111b
acall delay
mov P1,#11111110b
acall delay
mov P1,#11111100b
acall delay
mov P1,#11111000b
acall delay
mov P1,#11110000b
acall delay
mov P1,#11100000b
acall delay
mov P1,#11000000b
acall delay
mov P1,#10000000b
acall delay
mov P1,#00000000b
acall delay
mov P3,#11111110b
acall delay
mov P3,#11111100b
acall delay
mov P3,#11111000b
acall delay
mov P3,#11110000b
acall delay
mov P3,#11100000b
acall delay
mov P3,#11000000b
acall delay
mov P3,#10000000b
acall delay
mov P3,#00000000b
acall delay
mov P3,#10101010b
mov P1,#01010101b
acall delay
mov P3,#01010101b
mov P1,#10101010b
acall delay
mov P3,#10101010b
mov P1,#01010101b
acall delay
mov P3,#01010101b
mov P1,#10101010b
acall delay
mov P3,#10101010b
mov P1,#01010101b
acall delay
mov P3,#01010101b
mov P1,#10101010b
acall delay
mov P3,#00000000b
mov P1,#00000000b
acall delay
ret
nhay2:
mov P1,#00000001b
acall delay
mov P1,#00000011b
acall delay
mov P1,#00000111b
acall delay
mov P1,#00001111b
acall delay
mov P1,#00011111b
acall delay
mov P1,#00111111b
acall delay
mov P1,#01111111b
acall delay
mov P1,#11111111b
acall delay
mov P3,#00000001b
acall delay
mov P3,#00000011b
acall delay
mov P3,#00000111b
acall delay
mov P3,#00001111b
acall delay
mov P3,#00011111b
acall delay
mov P3,#00111111b
acall delay
mov P3,#01111111b
acall delay
mov P3,#11111111b
acall delay
mov P3,#01111111b
acall delay
mov P3,#00111111b
acall delay
mov P3,#00011111b
acall delay
mov P3,#00001111b
acall delay
mov P3,#00000111b
acall delay
mov P3,#00000011b
acall delay
mov P3,#00000001b
acall delay
mov P3,#00000000b
acall delay
mov P1,#01111111b
acall delay
mov P1,#00111111b
acall delay
mov P1,#00011111b
acall delay
mov P1,#00001111b
acall delay
mov P1,#00000111b
acall delay
mov P1,#00000011b
acall delay
mov P1,#00000001b
acall delay
mov P1,#00000000b
acall delay
mov P3,#10101010b
mov P1,#01010101b
acall delay
mov P3,#01010101b
mov P1,#10101010b
acall delay
mov P3,#10101010b
mov P1,#01010101b
acall delay
mov P3,#01010101b
mov P1,#10101010b
acall delay
mov P3,#10101010b
mov P1,#01010101b
acall delay
mov P3,#01010101b
mov P1,#10101010b
acall delay
mov P3,#00000000b
mov P1,#00000000b
acall delay
ret
nhay3:
mov P1,#10000000b
mov P3,#00000000b
acall delay
mov P1,#11000000b
mov P3,#00000011b
acall delay
mov P1,#11100000b
mov P3,#00000111b
acall delay
mov P1,#11110000b
mov P3,#00001111b
acall delay
mov P1,#11111000b
mov P3,#00011111b
acall delay
mov P1,#11111100b
mov P3,#00111111b
acall delay
mov P1,#11111110b
mov P3,#01111111b
acall delay
mov P1,#11111111b
mov P3,#11111111b
acall delay
mov P1,#11111110b
mov P3,#01111111b
acall delay
mov P1,#11111100b
mov P3,#00111111b
acall delay
mov P1,#11111000b
mov P3,#00011111b
acall delay
mov P1,#11110000b
mov P3,#00001111b
acall delay
mov P1,#11100000b
mov P3,#00000111b
acall delay
mov P1,#11000000b
mov P3,#00000011b
acall delay
mov P1,#10000000b
mov P3,#00000001b
acall delay
mov P1,#00000000b
mov P3,#00000000b
acall delay
mov P3,#10101010b
mov P1,#01010101b
acall delay
mov P3,#01010101b
mov P1,#10101010b
acall delay
mov P3,#10101010b
mov P1,#01010101b
acall delay
mov P3,#01010101b
mov P1,#10101010b
acall delay
mov P3,#10101010b
mov P1,#01010101b
acall delay
mov P3,#01010101b
mov P1,#10101010b
acall delay
mov P3,#00000000b
mov P1,#00000000b
acall delay
ret
nhay4:
mov P1,#00000001b
mov P3,#10000000b
acall delay
mov P1,#00000011b
mov P3,#11000000b
acall delay
mov P1,#00000111b
mov P3,#11100000b
acall delay
mov P1,#00001111b
mov P1,#11110000b
acall delay
mov P1,#00011111b
mov P3,#11111000b
acall delay
mov P1,#00111111b
mov P3,#11111100b
acall delay
mov P1,#01111111b
mov P3,#11111110b
acall delay
mov P1,#11111111b
mov P3,#11111111b
acall delay
mov P1,#01111111b
mov P3,#11111110b
acall delay
mov P1,#00111111b
mov P3,#11111100b
acall delay
mov P1,#00011111b
mov P3,#11111000b
acall delay
mov P1,#00001111b
mov P3,#11110000b
acall delay
mov P1,#00000111b
mov P3,#11100000b
acall delay
mov P1,#00000011b
mov P3,#11000000b
acall delay
mov P1,#00000001b
mov P3,#10000000b
acall delay
mov P1,#00000000b
mov P3,#00000000b
acall delay
mov P3,#10101010b
mov P1,#01010101b
acall delay
mov P3,#01010101b
mov P1,#10101010b
acall delay
mov P3,#10101010b
mov P1,#01010101b
acall delay
mov P3,#01010101b
mov P1,#10101010b
acall delay
mov P3,#10101010b
mov P1,#01010101b
acall delay
mov P3,#01010101b
mov P1,#10101010b
acall delay
mov P3,#00000000b
mov P1,#00000000b
acall delay
ret
delay:
mov R1,#250
D1: mov R2,#200
D2: djnz R2,D2
djnz R1,D1
ret
end