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

xếp led thành dòng chữ dtvt-k7a ghép lối với vi điều khiển 8051. viết chương trình điều khiển cho chạy từng chữ từ trái sang phải, từ phải sang trái,sang đồng thời nhấp nháy

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 (972.85 KB, 24 trang )

KHOA CÔNG NGHỆ THÔNG TIN
ĐẠI HỌC THÁI NGUYÊN
………….…O….…………….

BÀI TẬP LỚN
BÀI TẬP 6:
Xếp led thành dòng chữ DTVT-K7A ghép lối với vi điều khiển 8051. Viết chương
trình điều khiển cho chạy từng chữ từ trái sang phải, từ phải sang trái,sang đồng
thời nhấp nháy,...
Giáo viên hướng dẫn: Th.S PHẠM QUỐC THỊNH
Lớp: Kỹ thuật nhúng N01.TL1
Sinh viên trình bày:
1. Dương Vũ Kiên
2. Vũ Thúy Hằng
3. Nguyễn Văn Hiển
4. Phùng Thị Bích Liên
5. Phạm Thanh Thông
6. Nông Lệ Thủy
Thái Nguyên, tháng 05 năm 2010


LỜI NĨI ĐẦU:
Ngày nay,các bộ vi điều khiển đang có ứng dụng ngày càng rộng rãi và thâm nhập ngày càng nhiều
trong các lĩnh vực kĩ thuật và đời sống xã hội.Hầu hết các thiết bị kĩ thuật từ phức tạp cho đến đơn
giản như thiết bị điều khiển tự động,thiết bị văn phòng cho đến các thiết bị trong gia đình đều có
dùng các bộ vi điều khiển.Và một số ứng dụng đơn giản nhất cho các hệ thống nhúng là điều khiển
đèn nhấp nháy,đếm số người vào/ra,hiển thị dịng thơng báo trên matrix led hay điều khiển ON_OF
của động cơ……………
Và với những kiến thức cơ bản nhất về vi điều khiển và kĩ thuật lập trình nhóm chúng em xin
trình bầy một trong những ứng dụng đơn giản của bộ vi điều khiển.Đó là lập trình cho vi điều khiển
89C51 điều khiển dòng chữ chạy “ĐTVT-K7A” được xếp bởi các led đơn với nhiều hiệu ứng khác


nhau.
Mặc dù đã cố gắng rất nhiều trong thời gian thực hiên bài tập lớn nhưng chúng em cũng
không thể tránh khỏi những sai sót do kiến thức cũng như kinh nghiệm cịn hạn chế.Chúng em rất
mong nhận được sự đóng góp của thầy giáo và các bạn để bài tập lớn của chúng em được hồn thiện
hơn.

U CẦU:
Lập trình cho vi điều khiển 8051 bằng ngôn ngữ ASM hoặc ngôn ngữ C
NỘI DUNG:
Xếp led thành dòng chữ DTVTK-7A ghép lối với vi điều 8051.Điều khiển cho chạy
với nhiều hiệu ứng khác nhau.


Phần I: Sơ lược cấu trúc vi điều khiển 8051
Hiện nay có rất nhiều họ Vi điều khiển trên thị trường với nhiều ứng dụng khác
nhau, trong đó họ Vi điều khiển họ MCS-51 được sử dụng rất rộng rãi trên thế giới và
ở Việt nam.
Vào năm 1980 Intel công bố chíp 8051(80C51), bộ vi điều khiển đầu tiên của họ
vi điều khiển MCS-51. Tiếp theo sau đó là sự ra đời của chip 8052, 8053, 8055 với
nhiều tính năng được cải tiến.
Hiện nay Intel khơng cịn cung cấp các loại Vi điều khiển họ MCS-51 nữa, thay
vào đó các nhà sản xuất khác như Atmel, Philips/signetics, AMD, Siemens, Matra &
Dallas, Semiconductors được cấp phép làm nhà cung cấp thứ hai cho các chip của họ
MSC-51. Chip vi điều khiển được sử dụng rộng rãi trên thế giới cũng như ở Việt Nam
hiện nay là vi điều khiển của hãng Atmel với nhiều chủng loại vi điều khiển khác nhau.
Hãng Atmel có các chip vi điều khiển có tính năng tương tự như chip vi điều
khiển MCS-51 của Intel, các mã số chip được thay đổi chút ít khi được Atmel sản
xuất. Mã số 80 chuyển thành 89, chẳng hạn 80C52 của Intel khi sản xuất ở Atmel mã
số thành 89C52 (Mã số đầy đủ: AT89C52) với tính năng chương trình tương tự như
nhau. Tương tự 8051, 8053, 8055 có mã số tương đương ở Atmel là 89C51, 89C53,

89C55.Vi điều khiển Atmel sau này ngày càng được cải tiến và được bổ sung thêm
nhiều chức năng tiện lợi hơn cho người dùng.

Các đặc điểm của 89C51 được tóm tắt như sau :




4 KB EPROM bên trong.



128 Byte RAM nội.



4 Port xuất /nhập I/O 8 bít.



Giao tiếp nối tiếp.



64 KB vùng nhớ mã ngồi



64 KB vùng nhớ dữ liệu ngoại.




Xử lí Boolean (hoạt động trên bít đơn).



210 vị trí nhớ có thể định vị bít.



4 μs cho hoạt động nhân hoặc chia.

89C51 của Atmel

Sơ đồ khối của 89C51

8051 của Intel


Sơ đồ các chân của 89C51:


Phần II: Sơ đồ và các linh kiện trong mạch


R10
0R1

R2
4.7K


R11
0R1

R3
C1

10K

C2
R1

12M
CRYSTAL

19

18

XTAL1

XTAL2

30p
9

29
30
31


C3
10uF

1
2
3
4
5
6
7
8

RST

PSEN
ALE
EA

P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7

LED-YELLOW

D2

LED-YELLOW

D3

4.7K

U1

30p

R12

D1

P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15

P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD

39
38
37
36
35
34
33
32
21
22
23
24
25
26
27
28
10
11
12
13
14

15
16
17

0R1

R4
4.7K

R13
0R1

R5
4.7k

R14
0R1

R6
4.7k

R15
0R1

R7
4.7k

R16
0R1


AT89C51

R8
4.7k

R17
0R1

R9
Vcc
4.7k

Các linh kiện sử dụng:
o AT89S52
o LED
o Thạch Anh 12MHz
o Tụ gốm 33pF
o Tụ hóa 10μF
o Trở 10KΩ, 4,7KΩ, 220Ω
o Transistor H1061 (NPN)
Hình ảnh và chức năng của các linh kiện:

LED-YELLOW

D4
LED-YELLOW

D5
LED-YELLOW


D6
LED-YELLOW

D7
LED-YELLOW

D8
LED-YELLOW


1. AT89S52

Chức năng: Là vi điều khiển chính của mạch.



8 KB EPROM bên trong.



256 Byte RAM nội.



4 Port xuất /nhập I/O 8 bít.



3 bợ định thời 16 bit




Watch dog timer



Các đặc điểm khác giống AT89C51

2. LED


Các loại LED thực tế

Cấu tạo và kí hiệu

3. Thạch anh 12 MHz

Chức năng: Là nguồn tạo xung nhịp dao động clock ổn định (12 MHz) cho dao
động của 8051. Thạch anh sẽ được gắn vào chân XTAL1 và XTAL2 (Chân số 18
và 19) của 8051.
4. Tụ gốm 33pF

Chức năng: Lọc nhiễu cho dao động thạch anh. 2 tụ gốm 33pF sẽ được nối một
đầu với chân của thạch anh, đầu còn lại đấu ra Mass.
5. Tụ hóa 10μF


Chức năng: Tụ hóa 10μF được gắn đầu âm vào chân reset, đầu dương lên nguồn.
Khi cấp điện cho mạch, tụ sẽ phóng điện khiến chân reset bật lên mức cao, khi đó
toàn bộ hệ thống sẽ được nạp lại từ đầu. Khi đang vận hành thì tụ hóa ngăn dòng

đi vào chân reset.
6. Transistor H1061

Là loại transistor công suất lớn. Có công dụng như một khóa. Với 1 là cực B, 2 là
cực C và 3 là cực E. H1061 có tần số hoạt động tầm 10MHz, β = 60-200 (Tùy
thuộc vào dòng điện vào cực C).
7. Điện trở

Có tác dụng hạn chế dòng điện và phân cực cho transistor.


Phần III – Nguyên lý hoạt động của mạch
Mạch điện được thiết kế gôm 1 IC điều khiển chính
89S52 đhiều khiển toàn bộ hoạt động của mạch, chương
trình code được nạp vào IC (code được dịch ra file .hex rồi
đưa vào IC qua bộ nạp nối cổng LPT bằng chương trình nạp
Aec_isp.exe). Code lập trình cho cổng P2 của IC 89S52,
điều khiển đèn LED sáng ở mức 1.
Mỗi chân từ P2.0 đến P2.7 sẽ được nối với cực B của
transistor H1061 loại NPN thông qua 1 trở 4,7KΩ để phân
cực. Transistor ở đây mang nhiệm vự như 1 khóa. Cực C của
H1061 nối với nguồn +5V, cực E sẽ ra LED. Khi tín hiệu
điều khiển của IC ra mức 1, transistor sẽ được phân cực
thuận, khóa sẽ đóng cho phép dòng điện từ cực C đi đến cực
E. Khi tín hiệu điều khiển ở mức 0, khóa mở, dòng điện sẽ bị
cắt.
Đèn LED được ghép thành các chữ D T V T - K 7 A.
Mỗi chữ được ghép từ 9 đến 11 LED song song. Đầu
Kathode của tất cả các LED được nối chung xuống Mass.



Các chữ được nối thêm một trở 220Ω để hạn chế dòng điện
đi vào LED (Mỗi LED chịu được dòng tối đa là 10mA).
Mạch sau khi hoàn thành:


Phần IV – Chương trình Asembler lập trình cho mạch

ORG 0000H
START:
ACALL NHAYTIEN
ACALL NHAYLUI
ACALL NHAY3
ACALL NHAYCACHQUANG1
ACALL NHAYCACHQUANG2
ACALL NHAYCACHQUANG1
ACALL NHAYCACHQUANG2
ACALL NHAYDANXEN
ACALL NHAYHIEN
ACALL NHAYHIEN1
ACALL NHAYHIEN2
ACALL NHAYHIEN2
ACALL NHAYHIEN1
ACALL NHAY3


ACALL NHAYCHURIENG
ACALL NHAY2
ACALL NHAY1
ACALL NHAY2BENNGOAI

ACALL NHAY2BEN1
ACALL NHAY2BENTRONG
ACALL NHAY2BEN2
ACALL NHAY3
ACALL NHAY2
ACALL XEPCHUMOT
ACALL XEPCHUHAI
ACALL NHAYXEP3
ACALL NHAYXEP4
ACALL NHAYXEP5
ACALL NHAYXEP6
ACALL NHAY3
SJMP START
;

DELAY:
MOV R1, #2
L1: MOV R2, #200
L2: MOV R3, #200
L3 : DJNZ R3, L3
DJNZ R2, L2
DJNZ R1, L1
RET
;

NHAYTIEN:
MOV P2, #00000001B
ACALL DELAY
MOV P2, #00000011B
ACALL DELAY

MOV P2, #00000111B
ACALL DELAY
MOV P2, #00001111B
ACALL DELAY
MOV P2, #00011111B
ACALL DELAY


MOV P2, #00111111B
ACALL DELAY
MOV P2, #01111111B
ACALL DELAY
MOV P2, #11111111B
ACALL DELAY
RET
;

NHAYLUI:
MOV P2, #10000000B
ACALL DELAY
MOV P2, #11000000B
ACALL DELAY
MOV P2, #11100000B
ACALL DELAY
MOV P2, #11110000B
ACALL DELAY
MOV P2, #11111000B
ACALL DELAY
MOV P2, #11111100B
ACALL DELAY

MOV P2, #11111110B
ACALL DELAY
MOV P2, #11111111B
ACALL DELAY
RET
;

NHAYCACHQUANG1:
MOV P2, #00000000B
ACALL DELAY
MOV P2, #00000001B
ACALL DELAY
MOV P2, #00000010B
ACALL DELAY
MOV P2, #00000101B
ACALL DELAY
MOV P2, #00001010B
ACALL DELAY


MOV P2, #00010101B
ACALL DELAY
MOV P2, #00101010B
ACALL DELAY
MOV P2, #01010101B
ACALL DELAY
MOV P2, #10101010B
ACALL DELAY
RET
;


NHAYCACHQUANG2:
MOV P2, #00000000B
ACALL DELAY
MOV P2, #10000000B
ACALL DELAY
MOV P2, #01000000B
ACALL DELAY
MOV P2, #10100000B
ACALL DELAY
MOV P2, #01010000B
ACALL DELAY
MOV P2, #10101000B
ACALL DELAY
MOV P2, #01010100B
ACALL DELAY
MOV P2, #10101010B
ACALL DELAY
MOV P2, #01010101B
ACALL DELAY
RET
;

NHAYDANXEN:
MOV R5, #4
HG1: MOV P2, #01010101B
ACALL DELAY
MOV P2, #10101010B
ACALL DELAY
DJNZ R5, HG1



RET
;

NHAY1:
MOV P2, #10000000B
ACALL DELAY
MOV P2, #01000000B
ACALL DELAY
MOV P2, #00100000B
ACALL DELAY
MOV P2, #00010000B
ACALL DELAY
MOV P2, #00001000B
ACALL DELAY
MOV P2, #00000100B
ACALL DELAY
MOV P2, #00000010B
ACALL DELAY
MOV P2, #00000001B
ACALL DELAY
RET
;

NHAY2:
MOV P2, #00000001B
ACALL DELAY
MOV P2, #00000010B
ACALL DELAY

MOV P2, #00000100B
ACALL DELAY
MOV P2, #00001000B
ACALL DELAY
MOV P2, #00010000B
ACALL DELAY
MOV P2, #00100000B
ACALL DELAY
MOV P2, #01000000B
ACALL DELAY
MOV P2, #10000000B
ACALL DELAY


RET
;

NHAY3:
MOV R6, #4
HG: MOV P2, #00000000B
ACALL DELAY1
MOV P2, #11111111B
ACALL DELAY1
DJNZ R6, HG
RET
;

DELAY1:
MOV R1, #255
TN1: MOV R2, #250

TN2: DJNZ R2, TN2
DJNZ R1, TN1
RET
;

NHAY2BENNGOAI:
MOV P2, #00000000B
ACALL DELAY
MOV P2, #10000001B
ACALL DELAY
MOV P2, #01000010B
ACALL DELAY
MOV P2, #00100100B
ACALL DELAY
MOV P2, #00011000B
ACALL DELAY
RET
;

NHAY2BEN1:
MOV P2, #00000000B
ACALL DELAY
MOV P2, #10000001B
ACALL DELAY


MOV P2, #11000011B
ACALL DELAY
MOV P2, #11100111B
ACALL DELAY

MOV P2, #11111111B
ACALL DELAY
RET
;

NHAY2BENTRONG:
MOV P2, #00000000B
ACALL DELAY
MOV P2, #00011000B
ACALL DELAY
MOV P2, #00100100B
ACALL DELAY
MOV P2, #01000010B
ACALL DELAY
MOV P2, #10000001B
ACALL DELAY
RET
;

NHAY2BEN2:
MOV P2, #00000000B
ACALL DELAY
MOV P2, #00011000B
ACALL DELAY
MOV P2, #00111100B
ACALL DELAY
MOV P2, #01111110B
ACALL DELAY
MOV P2, #11111111B
ACALL DELAY

RET
;

NHAYCHURIENG:
MOV P2, #00000000B
ACALL DELAY


ACALL DELAY
MOV P2, #00001111B
ACALL DELAY
ACALL DELAY
MOV P2, #00010000B
ACALL DELAY
ACALL DELAY
MOV P2, #11100000B
ACALL DELAY
ACALL DELAY
MOV P2, #11111111B
ACALL DELAY
ACALL DELAY
MOV P2, #11111111B
ACALL DELAY
ACALL DELAY
RET
;

XEPCHUMOT:
ACALL DELAY
MOV P2, #10000000B

ACALL DELAY
MOV P2, #10000001B
ACALL DELAY
MOV P2, #10000010B
ACALL DELAY
MOV P2, #10000100B
ACALL DELAY
MOV P2, #10001000B
ACALL DELAY
MOV P2, #10010000B
ACALL DELAY
MOV P2, #10100000B
ACALL DELAY
RET
;

XEPCHUHAI:
ACALL DELAY


MOV P2, #11000000B
ACALL DELAY
MOV P2, #11000001B
ACALL DELAY
MOV P2, #11000010B
ACALL DELAY
MOV P2, #11000100B
ACALL DELAY
MOV P2, #11001000B
ACALL DELAY

MOV P2, #11010000B
ACALL DELAY
MOV P2, #11100000B
ACALL DELAY
RET
;

NHAYHIEN:
MOV P2, #00000011B
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV P2, #00001100B
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV P2, #00010000B
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV P2, #11100000B
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV P2, #00000000B
ACALL DELAY
MOV P2, #11101111B
ACALL DELAY
ACALL DELAY
ACALL DELAY



MOV P2, #11111111B
ACALL DELAY
ACALL DELAY
ACALL DELAY
RET
;

NHAYHIEN1:
ACALL DELAY
MOV P2, #11111110B
ACALL DELAY
MOV P2, #11111101B
ACALL DELAY
MOV P2, #11111011B
ACALL DELAY
MOV P2, #11110111B
ACALL DELAY
MOV P2, #11101111B
ACALL DELAY
MOV P2, #11011111B
ACALL DELAY
MOV P2, #10111111B
ACALL DELAY
MOV P2, #01111111B
ACALL DELAY
MOV P2, #11111111B
ACALL DELAY
RET

;

NHAYHIEN2:
ACALL DELAY
MOV P2, #11111111B
ACALL DELAY
MOV P2, #01111111B
ACALL DELAY
MOV P2, #10111111B
ACALL DELAY
MOV P2, #11011111B
ACALL DELAY


MOV P2, #11101111B
ACALL DELAY
MOV P2, #11110111B
ACALL DELAY
MOV P2, #11111011B
ACALL DELAY
MOV P2, #11111101B
ACALL DELAY
MOV P2, #11111110B
ACALL DELAY
RET
;

NHAYXEP3:
ACALL DELAY
MOV P2, #11100000B

ACALL DELAY
MOV P2, #11100001B
ACALL DELAY
MOV P2, #11100010B
ACALL DELAY
MOV P2, #11100100B
ACALL DELAY
MOV P2, #11101000B
ACALL DELAY
MOV P2, #11110000B
ACALL DELAY
RET
;

NHAYXEP4:
ACALL DELAY
MOV P2, #11110000B
ACALL DELAY
MOV P2, #11110001B
ACALL DELAY
MOV P2, #11110010B
ACALL DELAY
MOV P2, #11110100B
ACALL DELAY


MOV P2, #11111000B
ACALL DELAY
RET
;


NHAYXEP5:
ACALL DELAY
MOV P2, #11111000B
ACALL DELAY
MOV P2, #11111001B
ACALL DELAY
MOV P2, #11111010B
ACALL DELAY
MOV P2, #11111100B
ACALL DELAY
RET
;

NHAYXEP6:
ACALL DELAY
MOV P2, #11111100B
ACALL DELAY
MOV P2, #11111101B
ACALL DELAY
MOV P2, #11111110B
ACALL DELAY
MOV P2, #11111111B
ACALL DELAY
MOV P2, #11111110B
ACALL DELAY
MOV P2, #11111111B
ACALL DELAY
RET
;

END

Nhận xét của giảng viên



×