Tải bản đầy đủ (.doc) (24 trang)

thiết kế mạch điện gồm 16 led ghép nối với 8051

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (635.5 KB, 24 trang )




ĐỂ 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
Nhóm sinh viên : Triệu Minh Chính
Nguyễn Văn Chung
Nguyễn Văn Chung
Nguyễn Quốc Hưng
Nguyễn Quốc Hưng
Nguyễn Sỹ Hiệp
Nguyễn Sỹ Hiệp
Vũ Đình Dũng
Vũ Đình Dũng
Vũ Đình Duy
Vũ Đình Duy
Lớp : DTVT K7B
Lớp : DTVT K7B
Thái Nguyên, ngày 15 tháng 05 năm 2010
Thái Nguyên, ngày 15 tháng 05 năm 2010
I-Tổng quan về vi điều khiển 8051
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í
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
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ở


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
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
trung tâm trong các sản phẩm có ích dùng để nghiêm cứu và thiết
kế.
kế.
Năm 1976 Intel giới thiệu bộ vi điều khiển 8748, một chip
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.
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,
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
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
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.
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
Độ 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ố
được tăng thêm một bậc quan trọng vào năm 1980 khi Intel công bố
chip
chip
8051,
8051,
bộ vi điều khiển đầu tiên của họ của họ vi điều khiển
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

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ứ
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.
hai cho các chip của họ MCS-51.
Chip 8051 có các dặc trưng cơ bản như sau:
Chip 8051 có các dặc trưng cơ bản như sau:
+ 4KB ROM
+ 4KB ROM
+ 128 byte RAM
+ 128 byte RAM
+ 4 port xuất nhập ( I/O port ) 8-bit
+ 4 port xuất nhập ( I/O port ) 8-bit
+ 2 bộ định thời 16-bit
+ 2 bộ định thời 16-bit
+ Mạch giao tiếp nối tiếp
+ 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ớ chương trình ( mã ) ngoài 64K
+ Không gian nhớ dữ liệu 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ẽ )
+ 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
+ 210 vị trí nhớ được định địa chỉ, mỗi vị trí 1 bit
+ Nhân/chia trong 4 μs
+ 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
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

( 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
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.
suất thấp.


Sơ đồ khối của chip 8051
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ọ
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
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.
cơ bản, chip cải tiến được chỉ ra rõ ràng.
Sơ đồ chân của 8051
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
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
dụng nhập/xuất dữ liệu,tuy nhiên 24 trong 32 đường này có 2 mục
đích.
đí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
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
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
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

đườ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
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
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…
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 )
1 – Port 0 ( các chân từ 32 đến 39 trên 8051 )
Có hai công dụng:
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ử
+ 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.
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
+ 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.
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 )
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,
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
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
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.
thiết bị ngoại vi.
3 – Port 2 ( các chân từ 21 đến 28 trên 8051 )

3 – Port 2 ( các chân từ 21 đến 28 trên 8051 )
Có 2 công dụng:
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
+ 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 .
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.
+ 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 )
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
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.
port 3 có nhiều chức năng riêng liên quan đến các riêng.
Bit
Bit
Tên
Tên
Địa chỉ bit
Địa chỉ bit
Chức năng
Chức năng
P3.0
P3.0
RxD
RxD
B0H
B0H
Chân nhận dữ liệu của port

Chân nhận dữ liệu của port
nối tiếp
nối tiếp
P3.1
P3.1
TxD
TxD
B1H
B1H
Chân phát dữ liệu của port
Chân phát dữ liệu của port
nối tiếp
nối tiếp
P3.2
P3.2
INT0
INT0
B2H
B2H
Ngõ vào ngắt ngoài 0
Ngõ vào ngắt ngoài 0
P3.3
P3.3
INT1
INT1
B3H
B3H
Ngõ vào ngắt ngoài 1
Ngõ vào ngắt ngoài 1
P3.4

P3.4
T0
T0
B4H
B4H
Ngõ vào của bộ định đếm
Ngõ vào của bộ định đếm
thời/đếm 0
thời/đếm 0
P3.5
P3.5
T1
T1
B5H
B5H
Ngõ vào của bộ định
Ngõ vào của bộ định
thời/đếm 1
thời/đếm 1
P3.6
P3.6
WR
WR
B6H
B6H
Điều khiển ghi bộ nhớ dữ
Điều khiển ghi bộ nhớ dữ
liệu ngoài
liệu ngoài
P3.7

P3.7
RD
RD
B7H
B7H
Điều khiển đọc bộ nhớ dữ
Điều khiển đọc bộ nhớ dữ
liệu ngoài
liệu ngoài
P1.0
P1.0
T2
T2
90H
90H
Ngõ vào của bộ định
Ngõ vào của bộ định
thời/đếm 2
thời/đếm 2
P1.1
P1.1
T2EX
T2EX
91H
91H
Nạp lại/thu nhận của bộ
Nạp lại/thu nhận của bộ
định thời 2
định thời 2
Chức năng của các chân của Port 3 và Port 1

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
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
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
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 để
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
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 ở
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.
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
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ữ
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ỉ.
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.
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.
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)
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).
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 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.
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
Ngoài ra,chân EA còn nhận điện áp 21V cho việc lập trình
EPROM nội.
EPROM nội.
8 – Chân reset (chân 9)
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
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 ).
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ì
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Ω.
dùng C = 10 μF và R = 10 kΩ.
9 – Các chân XTAL1 và XTAL2 (chân 18 và 19 )
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
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.
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
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

chip họ MCS-51. ( Trên thực tế, tần số này có giá trị là 11,0592
MHz )
MHz )
Với tần số danh định của thạch anh là 12 MHz sẽ tạo ra chu kì
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
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 )
điều khiển thực hiện hoàn thành một lệnh cơ bản )
Các tụ C
Các tụ C
1
1
= C
= C
2
2
= 33 pF dùng ổn định dao động cho thạch anh.
= 33 pF dùng ổn định dao động cho thạch anh.
II – Vi điều khiển 89S52
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
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) ,
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
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.
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ơ

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
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
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
đ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.
thế hệ trước.
Ưu điểm của VDK 89Sxx:
Ưu điểm của VDK 89Sxx:
+ Chương trình viết cho 89Cxx đều chạy được cho 90Sxx.
+ Chương trình viết cho 89Cxx đều chạy được cho 90Sxx.
+ 89Sxx rẻ hơn 89Cxx
+ 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ả
+ 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
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
sang mạch khác để nạp chương trình và nhiều tính năng cải tiến
khác.
khác.


Bảng so sánh một số loại vi điều khiển họ MCS-51
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

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
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:
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
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
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
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
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
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ó
ra trong khoảng 1mA đến 5mA ) vì vậydongf xuất này ko đủ để có
thể làm LED sáng
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
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:

phép đi qua lớn hơn rất nhiều:
Chân VDK ở mức 0:
Chân VDK ở mức 0:
+ Dòng lớn nhất qua P0 : -25mA
+ Dòng lớn nhất qua P0 : -25mA
+ Dòng lớn nhất qua P1, P2, P3 : -15mA
+ 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
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
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õ
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 ).
(LED đỏ sáng ở điện áp 1,6 – 2,2 V và dòng trong khoảng 10mA ).
Cách khắc phục:
Cách khắc phục:
1 – Cho LED sáng khi VDK ở mức 0:
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 … )
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 1 : LED ko sáng.
+ Khi Px.x ở mức 0 : LED 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:
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 đủ để

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
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 ).
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
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.
thiết bi nhận.
+ Khi Px.x ở mức 0, có sự chênh lệch áp giữa nguồn Vcc và
+ 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
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.
đ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 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,
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.
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
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
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à
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.

sử dụng dễ hơn khi lamg mạch điện.
III – Bài tập lớn
III – Bài tập lớn
Đề bài :
Đề 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 – Các linh kiện để làm mạch
- 1 bảng mạch
- 1 bảng mạch
- 1 vi điều khiển 89S52
- 1 vi điều khiển 89S52
- 16 đèn LED đỏ
- 16 đèn LED đỏ
- 1 thạch anh 12 MHz
- 1 thạch anh 12 MHz
- 16 điện trở 47kΩ
- 16 điện trở 47kΩ
- 16 điện trở 220kΩ
- 16 điện trở 220kΩ
- 16 transitor H1061
- 16 transitor H1061
- 2 tụ 33 pF
- 2 tụ 33 pF
- 1 tụ 10 μF
- 1 tụ 10 μF
- 1 điện trở 10 kΩ
- 1 điện trở 10 kΩ
- Mỏ hàn, thiếc hàn cùng các dây dẫn

- Mỏ hàn, thiếc hàn cùng các dây dẫn
2 – Mạch điện mô phỏng
2 – Mạch điện mô phỏng
Code chương trình
Code chương trình
:
:
org 0000h
org 0000h
start:
start:
acall khoidong
acall khoidong
acall nhay1
acall nhay1
acall delay
acall delay
acall nhay2
acall nhay2
acall delay
acall delay
acall nhay3
acall nhay3
acall delay
acall delay
acall nhay4
acall nhay4
acall delay
acall delay

ljmp start
ljmp start
khoidong:
khoidong:
mov P1,#00000000b
mov P1,#00000000b
mov P3,#00000000b
mov P3,#00000000b
ret
ret
nhay1:
nhay1:
mov P3,#10000000b
mov P3,#10000000b
acall delay
acall delay
mov P3,#11000000b
mov P3,#11000000b
acall delay
acall delay
mov P3,#11100000b
mov P3,#11100000b
acall delay
acall delay
mov P3,#11110000b
mov P3,#11110000b
acall delay
acall delay
mov P3,#11111000b
mov P3,#11111000b

acall delay
acall delay
mov P3,#11111100b
mov P3,#11111100b
acall delay
acall delay
mov P3,#11111110b
mov P3,#11111110b
acall delay
acall delay
mov P3,#11111111b
mov P3,#11111111b
acall delay
acall delay
mov P1,#10000000b
mov P1,#10000000b
acall delay
acall delay
mov P1,#11000000b
mov P1,#11000000b
acall delay
acall delay
mov P1,#11100000b
mov P1,#11100000b
acall delay
acall delay
mov P1,#11110000b
mov P1,#11110000b
acall delay
acall delay

mov P1,#11111000b
mov P1,#11111000b
acall delay
acall delay
mov P1,#11111100b
mov P1,#11111100b
acall delay
acall delay
mov P1,#11111110b
mov P1,#11111110b
acall delay
acall delay
mov P1,#11111111b
mov P1,#11111111b
acall delay
acall delay
mov P1,#11111110b
mov P1,#11111110b
acall delay
acall delay
mov P1,#11111100b
mov P1,#11111100b
acall delay
acall delay
mov P1,#11111000b
mov P1,#11111000b
acall delay
acall delay
mov P1,#11110000b
mov P1,#11110000b

acall delay
acall delay
mov P1,#11100000b
mov P1,#11100000b
acall delay
acall delay
mov P1,#11000000b
mov P1,#11000000b
acall delay
acall delay
mov P1,#10000000b
mov P1,#10000000b
acall delay
acall delay
mov P1,#00000000b
mov P1,#00000000b
acall delay
acall delay
mov P3,#11111110b
mov P3,#11111110b
acall delay
acall delay
mov P3,#11111100b
mov P3,#11111100b
acall delay
acall delay
mov P3,#11111000b
mov P3,#11111000b
acall delay
acall delay

mov P3,#11110000b
mov P3,#11110000b
acall delay
acall delay
mov P3,#11100000b
mov P3,#11100000b
acall delay
acall delay
mov P3,#11000000b
mov P3,#11000000b
acall delay
acall delay
mov P3,#10000000b
mov P3,#10000000b
acall delay
acall delay
mov P3,#00000000b
mov P3,#00000000b
acall delay
acall delay
mov P3,#10101010b
mov P3,#10101010b
mov P1,#01010101b
mov P1,#01010101b
acall delay
acall delay
mov P3,#01010101b
mov P3,#01010101b
mov P1,#10101010b
mov P1,#10101010b

acall delay
acall delay
mov P3,#10101010b
mov P3,#10101010b
mov P1,#01010101b
mov P1,#01010101b
acall delay
acall delay
mov P3,#01010101b
mov P3,#01010101b
mov P1,#10101010b
mov P1,#10101010b
acall delay
acall delay
mov P3,#10101010b
mov P3,#10101010b
mov P1,#01010101b
mov P1,#01010101b
acall delay
acall delay
mov P3,#01010101b
mov P3,#01010101b
mov P1,#10101010b
mov P1,#10101010b
acall delay
acall delay
mov P3,#00000000b
mov P3,#00000000b
mov P1,#00000000b
mov P1,#00000000b

acall delay
acall delay
ret
ret
nhay2:
nhay2:
mov P1,#00000001b
mov P1,#00000001b
acall delay
acall delay
mov P1,#00000011b
mov P1,#00000011b
acall delay
acall delay
mov P1,#00000111b
mov P1,#00000111b
acall delay
acall delay
mov P1,#00001111b
mov P1,#00001111b
acall delay
acall delay
mov P1,#00011111b
mov P1,#00011111b
acall delay
acall delay
mov P1,#00111111b
mov P1,#00111111b
acall delay
acall delay

mov P1,#01111111b
mov P1,#01111111b
acall delay
acall delay
mov P1,#11111111b
mov P1,#11111111b
acall delay
acall delay
mov P3,#00000001b
mov P3,#00000001b
acall delay
acall delay
mov P3,#00000011b
mov P3,#00000011b
acall delay
acall delay
mov P3,#00000111b
mov P3,#00000111b
acall delay
acall delay
mov P3,#00001111b
mov P3,#00001111b
acall delay
acall delay
mov P3,#00011111b
mov P3,#00011111b
acall delay
acall delay
mov P3,#00111111b
mov P3,#00111111b

acall delay
acall delay
mov P3,#01111111b
mov P3,#01111111b
acall delay
acall delay
mov P3,#11111111b
mov P3,#11111111b
acall delay
acall delay
mov P3,#01111111b
mov P3,#01111111b
acall delay
acall delay
mov P3,#00111111b
mov P3,#00111111b
acall delay
acall delay
mov P3,#00011111b
mov P3,#00011111b
acall delay
acall delay
mov P3,#00001111b
mov P3,#00001111b
acall delay
acall delay
mov P3,#00000111b
mov P3,#00000111b
acall delay
acall delay

mov P3,#00000011b
mov P3,#00000011b
acall delay
acall delay
mov P3,#00000001b
mov P3,#00000001b
acall delay
acall delay
mov P3,#00000000b
mov P3,#00000000b
acall delay
acall delay
mov P1,#01111111b
mov P1,#01111111b
acall delay
acall delay
mov P1,#00111111b
mov P1,#00111111b
acall delay
acall delay
mov P1,#00011111b
mov P1,#00011111b
acall delay
acall delay
mov P1,#00001111b
mov P1,#00001111b
acall delay
acall delay
mov P1,#00000111b
mov P1,#00000111b

acall delay
acall delay
mov P1,#00000011b
mov P1,#00000011b
acall delay
acall delay
mov P1,#00000001b
mov P1,#00000001b
acall delay
acall delay
mov P1,#00000000b
mov P1,#00000000b
acall delay
acall delay
mov P3,#10101010b
mov P3,#10101010b
mov P1,#01010101b
mov P1,#01010101b
acall delay
acall delay
mov P3,#01010101b
mov P3,#01010101b
mov P1,#10101010b
mov P1,#10101010b
acall delay
acall delay
mov P3,#10101010b
mov P3,#10101010b
mov P1,#01010101b
mov P1,#01010101b

acall delay
acall delay
mov P3,#01010101b
mov P3,#01010101b
mov P1,#10101010b
mov P1,#10101010b
acall delay
acall delay
mov P3,#10101010b
mov P3,#10101010b
mov P1,#01010101b
mov P1,#01010101b
acall delay
acall delay
mov P3,#01010101b
mov P3,#01010101b
mov P1,#10101010b
mov P1,#10101010b
acall delay
acall delay
mov P3,#00000000b
mov P3,#00000000b
mov P1,#00000000b
mov P1,#00000000b
acall delay
acall delay
ret
ret
nhay3:
nhay3:

mov P1,#10000000b
mov P1,#10000000b
mov P3,#00000000b
mov P3,#00000000b
acall delay
acall delay
mov P1,#11000000b
mov P1,#11000000b
mov P3,#00000011b
mov P3,#00000011b
acall delay
acall delay
mov P1,#11100000b
mov P1,#11100000b
mov P3,#00000111b
mov P3,#00000111b
acall delay
acall delay
mov P1,#11110000b
mov P1,#11110000b
mov P3,#00001111b
mov P3,#00001111b
acall delay
acall delay
mov P1,#11111000b
mov P1,#11111000b
mov P3,#00011111b
mov P3,#00011111b
acall delay
acall delay

mov P1,#11111100b
mov P1,#11111100b
mov P3,#00111111b
mov P3,#00111111b
acall delay
acall delay
mov P1,#11111110b
mov P1,#11111110b
mov P3,#01111111b
mov P3,#01111111b
acall delay
acall delay
mov P1,#11111111b
mov P1,#11111111b
mov P3,#11111111b
mov P3,#11111111b
acall delay
acall delay
mov P1,#11111110b
mov P1,#11111110b
mov P3,#01111111b
mov P3,#01111111b
acall delay
acall delay
mov P1,#11111100b
mov P1,#11111100b
mov P3,#00111111b
mov P3,#00111111b
acall delay
acall delay

mov P1,#11111000b
mov P1,#11111000b
mov P3,#00011111b
mov P3,#00011111b
acall delay
acall delay
mov P1,#11110000b
mov P1,#11110000b
mov P3,#00001111b
mov P3,#00001111b
acall delay
acall delay
mov P1,#11100000b
mov P1,#11100000b
mov P3,#00000111b
mov P3,#00000111b
acall delay
acall delay
mov P1,#11000000b
mov P1,#11000000b
mov P3,#00000011b
mov P3,#00000011b
acall delay
acall delay
mov P1,#10000000b
mov P1,#10000000b
mov P3,#00000001b
mov P3,#00000001b
acall delay
acall delay

mov P1,#00000000b
mov P1,#00000000b
mov P3,#00000000b
mov P3,#00000000b
acall delay
acall delay
mov P3,#10101010b
mov P3,#10101010b
mov P1,#01010101b
mov P1,#01010101b
acall delay
acall delay
mov P3,#01010101b
mov P3,#01010101b
mov P1,#10101010b
mov P1,#10101010b
acall delay
acall delay
mov P3,#10101010b
mov P3,#10101010b
mov P1,#01010101b
mov P1,#01010101b
acall delay
acall delay
mov P3,#01010101b
mov P3,#01010101b
mov P1,#10101010b
mov P1,#10101010b
acall delay
acall delay

mov P3,#10101010b
mov P3,#10101010b
mov P1,#01010101b
mov P1,#01010101b
acall delay
acall delay
mov P3,#01010101b
mov P3,#01010101b
mov P1,#10101010b
mov P1,#10101010b
acall delay
acall delay
mov P3,#00000000b
mov P3,#00000000b
mov P1,#00000000b
mov P1,#00000000b
acall delay
acall delay
ret
ret
nhay4:
nhay4:
mov P1,#00000001b
mov P1,#00000001b
mov P3,#10000000b
mov P3,#10000000b
acall delay
acall delay
mov P1,#00000011b
mov P1,#00000011b

mov P3,#11000000b
mov P3,#11000000b
acall delay
acall delay
mov P1,#00000111b
mov P1,#00000111b
mov P3,#11100000b
mov P3,#11100000b
acall delay
acall delay
mov P1,#00001111b
mov P1,#00001111b
mov P1,#11110000b
mov P1,#11110000b
acall delay
acall delay
mov P1,#00011111b
mov P1,#00011111b
mov P3,#11111000b
mov P3,#11111000b
acall delay
acall delay
mov P1,#00111111b
mov P1,#00111111b
mov P3,#11111100b
mov P3,#11111100b
acall delay
acall delay
mov P1,#01111111b
mov P1,#01111111b

mov P3,#11111110b
mov P3,#11111110b
acall delay
acall delay
mov P1,#11111111b
mov P1,#11111111b
mov P3,#11111111b
mov P3,#11111111b
acall delay
acall delay
mov P1,#01111111b
mov P1,#01111111b
mov P3,#11111110b
mov P3,#11111110b
acall delay
acall delay
mov P1,#00111111b
mov P1,#00111111b
mov P3,#11111100b
mov P3,#11111100b
acall delay
acall delay
mov P1,#00011111b
mov P1,#00011111b
mov P3,#11111000b
mov P3,#11111000b
acall delay
acall delay
mov P1,#00001111b
mov P1,#00001111b

mov P3,#11110000b
mov P3,#11110000b
acall delay
acall delay
mov P1,#00000111b
mov P1,#00000111b
mov P3,#11100000b
mov P3,#11100000b
acall delay
acall delay
mov P1,#00000011b
mov P1,#00000011b
mov P3,#11000000b
mov P3,#11000000b
acall delay
acall delay
mov P1,#00000001b
mov P1,#00000001b
mov P3,#10000000b
mov P3,#10000000b
acall delay
acall delay
mov P1,#00000000b
mov P1,#00000000b
mov P3,#00000000b
mov P3,#00000000b
acall delay
acall delay
mov P3,#10101010b
mov P3,#10101010b

mov P1,#01010101b
mov P1,#01010101b
acall delay
acall delay
mov P3,#01010101b
mov P3,#01010101b
mov P1,#10101010b
mov P1,#10101010b
acall delay
acall delay
mov P3,#10101010b
mov P3,#10101010b
mov P1,#01010101b
mov P1,#01010101b
acall delay
acall delay
mov P3,#01010101b
mov P3,#01010101b
mov P1,#10101010b
mov P1,#10101010b
acall delay
acall delay
mov P3,#10101010b
mov P3,#10101010b
mov P1,#01010101b
mov P1,#01010101b
acall delay
acall delay
mov P3,#01010101b
mov P3,#01010101b

mov P1,#10101010b
mov P1,#10101010b
acall delay
acall delay
mov P3,#00000000b
mov P3,#00000000b
mov P1,#00000000b
mov P1,#00000000b
acall delay
acall delay
ret
ret
delay:
delay:
mov R1,#250
mov R1,#250
D1: mov R2,#200
D1: mov R2,#200
D2: djnz R2,D2
D2: djnz R2,D2


djnz R1,D1
djnz R1,D1
ret
ret
end
end

×