3. Cấu Tạo Chân của AT89C51 :
GND(chân 20)
Chân nối với 0v
potr 0(chân 32 – chân 29)
port 0 là port xuất nhập 8 bit hai chiều. Port 0 còn được cấu hình làm bus địa
chỉ( byte thấp) và bus dữ liệu đa hợp trong khi truy xuất bộ nhớ dữ liệu ngoài và
bộ nhớ chương trình ngoài. Port cũng nhận các byte mã trong khi lập trình cho
Flash và xuất các byte mã trong khi kiểm tra chương trình ( các điện trở kéo lên
bên ngoài được cần đến trong khi kiểm tra chương trình).
Port 1( chân 1- 8)
port 1 là port xuất nhập 8 bit hai chiều. Port1 cũng nhận byte địa chỉ thấp trong
thời gian lập trình cho Flash.
Port 2 ( chân 21 – 28)
Port 2 là port xuất nhập 8 bit hai chiều. Port 2 tạo ra các 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. Trong thời gian truy
xuất bộ nhớ dữ liệu ngoài sử dụng các địa chỉ 8 bit, port 2 phát các nội dung
của các thanh ghi đặc biệt, port 2 cũng nhận các bits địa chỉ cao và vài tín hiệu
điều khiển trong thời gian lập trình cho Flash và kiểm tra chương trình.
Port 3 ( chân 10- 17)
Port 3 là port xuất nhập 8 bit hai chiều, port 3 cũng còn làm các chức năng
19 trang |
Chia sẻ: ngtr9097 | Lượt xem: 1940 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Báo cáo Thiết kế bảng quảng cáo, hiển thị một dòng chữ chạy, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Trêng ®¹i häc b¸ch khoa hµ néi
Khoa §iÖn Tö ViÔn Th«ng
----- ( -----
B¸o c¸o
BµI TËP VXL
GV Híng DÉn : ThÇy Ph¹m Ngäc Nam
Nhãm Sinh viªn: TrÇn V¨n Th«ng
NguyÔn ThÞ Thanh Thuý
NguyÔn C«ng ChiÕn
§µo Xu©n Vò
NguyÔn Vò
Líp : §T09-K47
Hµ Néi 11/2005
Chñ ®Ò:
ThiÕt kÕ b¶ng qu¶ng c¸o, hiÓn thÞ mét dßng ch÷ ch¹y
PhÇn I:Giíi ThiÖu Linh KiÖn Sö Dông
Vi Xö LÝ AT89C51
1. C¸c ®Æc ®iÓm cña hÖ Vi Xö Lý 89C51 :
- Lµ IC cã tÝch hîp trªn ®ã hÖ vi xö lý
- Cã 40 ch©n.
- 4KB ROM trong , cã thÓ ghi xo¸ ®îc 1000 lÇn
- D¶i tÇn sè ho¹t ®éng tõ 0MHz ®Õn 24Mhz
- 128x8 bit RAM trong .
- 4 cæng vµo ra 8 bit
- 2 bé ®Þnh thêi 16 bit
- Cã 6 nguyªn nh©n ng¾t
- Cã thÓ lËp tr×nh ®îc qua cæng nèi tiÕp
- 210 bit ®îc ®Þa chØ ho¸
- Giao TiÕp nèi tiÕp
2. C¬ b¶n vÒ cÊu t¹o cña AT89C51:
H×nh : S¬ ®å ch©n cña 89C51
H×nh2 : S¬ ®å khèi cña 89C51
CÊu T¹o Ch©n cña AT89C51 :
GND(ch©n 20)
Ch©n nèi víi 0v
potr 0(ch©n 32 – ch©n 29)
port 0 lµ port xuÊt nhËp 8 bit hai chiÒu. Port 0 cßn ®îc cÊu h×nh lµm bus ®Þa
chØ( byte thÊp) vµ bus d÷ liÖu ®a hîp trong khi truy xuÊt bé nhí d÷ liÖu ngoµi vµ
bé nhí ch¬ng tr×nh ngoµi. Port còng nhËn c¸c byte m· trong khi lËp tr×nh cho
Flash vµ xuÊt c¸c byte m· trong khi kiÓm tra ch¬ng tr×nh ( c¸c ®iÖn trë kÐo lªn
bªn ngoµi ®îc cÇn ®Õn trong khi kiÓm tra ch¬ng tr×nh).
Port 1( ch©n 1- 8)
port 1 lµ port xuÊt nhËp 8 bit hai chiÒu. Port1 còng nhËn byte ®Þa chØ thÊp trong
thêi gian lËp tr×nh cho Flash.
Port 2 ( ch©n 21 – 28)
Port 2 lµ port xuÊt nhËp 8 bit hai chiÒu. Port 2 t¹o ra c¸c 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. Trong thêi gian truy
xuÊt bé nhí d÷ liÖu ngoµi sö dông c¸c ®Þa chØ 8 bit, port 2 ph¸t c¸c néi dung
cña c¸c thanh ghi ®Æc biÖt, port 2 còng nhËn c¸c bits ®Þa chØ cao vµ vµi tÝn hiÖu
®iÒu khiÓn trong thêi gian lËp tr×nh cho Flash vµ kiÓm tra ch¬ng tr×nh.
Port 3 ( ch©n 10- 17)
Port 3 lµ port xuÊt nhËp 8 bit hai chiÒu, port 3 còng cßn lµm c¸c chøc n¨ng
kh¸c cña AT89C51. c¸c chøc n¨ng nµy ®îc nªu nh sau:
Ch©n
Tªn
Chøc n¨ng
P3.0
RxD
Ngâ vµo port nèi tiÕp
P3.1
TxD
Ngâ ra port nèi tiÕp
P3.2
INT0
Ngâ vµo ng¾t ngoµi 0
P3.3
INT1
Ngâ vµo ng¾t ngoµi 1
P3.4
T0
Ngâ vµo bªn ngoµi cña bé ®Þnh thêi 1
P3.5
T1
Ngâ vµo bªn ngoµi cña bé ®Þnh thêi 0
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
Port 3 còng nhËn mét vµi tÝn hiªu ®iÒu khiÓn cho viÖc lËp tr×nh Flash vµ kiÓm tra
ch¬ng tr×nh.
RST ( ch©n 9)
Ngâ vµo reset. Møc cao trªn ch©n nµy trong hai chu kú m¸y trong khi bé dao ®éng
®ang ho¹t ®éng sÏ reset AT89C51
.
ALE/PROG( ch©n 30)
ALE lµ mét xung ngâ ra ®Ó chèt byte thÊp cña ®Þa chØ trong khi xuÊt bé nhí ngoµi.
Ch©n nµy còng lµm ngâ vµo ch©n lËp tr×nh (PROG) trong thêi gian l¹p tr×nh cho
Flash.
Khi ho¹t ®éng b×nh thêng xung ngâ ra lu«n cã tÇn sè kh«ng ®æi lµ 1/6 tÇn sè cña
m¹ch dao ®éng, cã thÓ ®îc dïng cho c¸c môc ®Ých ®Þnh thêi bªn ngoµi.
Khi cÇn, ho¹t ®éng ch©n ALE cã thÓ ®îc v« hiÖu ho¸ b»ng c¸ch set bit 0 cña
thanh ghi chøc n¨ng ®Æc biÖt cã ®Þa chØ 8Eh. Khi bit nµy ®îc set, ALE chØ tÝch
cùc trong thêi gian thùc hiÖn lÖnh MOVX hoÆc MOVC. Ngîc l¹i ch©n nµy sÏ
®îc kÐo lªn cao. ViÖc set bit kh«ng cho phÐp ho¹t ®éng ch«t byte thÊp cña ®Þa chØ
sÏ kh«ng cã t¸c dông nÕu bé vi ®iÒu khiÓn ®ang ë chÕ ®é thùc thi ch¬ng tr×nh
ngoµi.
PSEN(ch©n 29)
PSEN (program Store Enable) lµ xung ®iÒu khiÓn truy xuÊt ch¬ng tr×nh ngoµi. Khi
AT89C51 ®ang thùc thi ch¬ng tr×nh tõ bé nhí ch¬ng tr×nh ngoµi, PSEN ®îc kÝch
ho¹t hai lÇn mçi chu kú m¸y, nhng hai ho¹t ®éng PSEN sÏ bÞ bá qua mçi khi truy
cËp bé nhí d÷ liÖu ngoµi.
EA vpp(ch©n 31)
Lµ ch©n cho phÐp truy xuÊt bé nhí ch¬ng tr×nh ngoµi ( ®Þa chØ tõ 0000h tíi ffffh)
EA = 0 cho phÐp truy xu¸t bé nhí ch¬ng tr×nh ngoµi, ngîc l¹i EA = 1 sÏ thùc thi
ch¬ng tr×nh bªn trong chip
Tuy nhiªn, lu ý r»ng nÕu bÝt kho¸ 1 ®îc lËp tr×nh EA ®îc chèt bªn trong khi reset
XTAL1& XTAL2
Lµ hai ngâ vµo ra cña hai bé khuyÕch ®¹i ®¶o cña m¹ch dao ®éng, ®îc cÊu h×nh ®Ó
dïng nh mét bé t¹o dao ®éng trªn chip
3. Tæ chøc bé nhí cña 89C51:
7F
RAM ÑA DUÏNG
30
2F
7F
7E
7D
7C
7B
7A
79
78
2E
77
76
75
74
73
72
71
70
2D
6F
6E
6D
6C
6B
6A
69
68
2C
67
66
65
64
63
62
61
60
2B
5F
5E
5D
5C
5B
5A
59
58
2A
57
56
55
54
53
52
51
50
29
4F
4E
4D
4C
4B
4A
49
48
28
47
46
45
44
43
42
41
40
27
3F
3E
3D
3C
3B
3A
39
38
26
37
36
35
34
33
32
31
30
25
2F
2E
2D
2C
2B
2A
29
28
24
27
26
25
24
23
22
21
20
23
1F
1E
1D
1C
1B
1A
19
18
22
17
16
15
14
13
12
11
10
21
0F
0E
0D
0C
0B
0A
09
08
20
07
06
05
04
03
02
01
00
1F
BANK 3
18
17
BANK 2
10
0F
BANK 1
08
07
Bank thanh ghi 0 ( maëc ñònh cho R0-R7)
00
CAÁU TRUÙC RAM NOÄI
F0
F7
F6
F5
F4
F3
F2
F1
F0
E0
E7
E6
E5
E4
E3
E2
E1
E0
D0
D7
D6
6D
6C
6B
6A
69
68
B8
-
-
-
BC
BB
BA
B9
B8
B0
B7
B6
B5
B4
B3
B2
B1
B0
A8
AF
AE
AD
AC
AB
AA
A9
A8
A0
A7
A6
A5
A4
A3
A2
A1
A0
99
Khoâng coù ñòa chæ hoùa töøng bit
98
9F
9E
9D
9C
9B
9A
99
98
90
97
96
95
94
93
92
91
90
8D
Khoâng ñöôïc ñòa chæ hoùa töøng bit
8C
Khoâng ñöôïc ñòa chæ hoùa töøng bit
8B
Khoâng ñöôïc ñòa chæ hoùa töøng bit
8A
Khoâng ñöôïc ñòa chæ hoùa töøng bit
89
Khoâng ñöôïc ñòa chæ hoùa töøng bit
88
8F
8E
8D
8C
8B
8A
89
88
87
Khoâng ñöôïc ñòa chæ hoùa töøng bit
83
Khoâng ñöôïc ñòa chæ hoùa töøng bit
82
Khoâng ñöôïc ñòa chæ hoùa töøng bit
81
Khoâng ñöôïc ñòa chæ hoùa töøng bit
80
87
86
85
84
83
82
81
80
THANH GHI CHÖÙC NAÊNG ÑAËC BIEÄT
Bé ph©n kªnh 74LS154
Lµ mét bé gi¶i m· ph©n kªnh tÝch cùc møc thÊp,
víi bèn ngâ vµo vµ 16 ngâ ra, s¬ ®å s¾p xÕp ch©n
nh trªn h×nh top view
Dùa vµo bèn bit ®Çu vµo A,B,C,D ®a ra ®Çu ra
16 bit ë møc thÊp
Mçi khi cã mét ®Çu ra trong 16 ®Çu ra ®îc
chän th× chØ cã ®Çu ra ®îc chän ë møc thÊp cßn
c¸c ®Çu ra kh¸c ®Òu ®Æt ë møc cao.
Dùa vµo b¶ng ch©n lý díi ®©y ta cã thÓ x¸c ®Þnh ®îc tr¹ng th¸i ®Çu ra t¹i tõng thêi
®iÓm, cô thÓ ta cã thÓ xem qua s¬ ®å logic
III. Gi¶i m· ®Þa chØ 74LS139 :
Lµ vi m¹ch gi¶i m· 16 ch©n , gåm hai khèi gi¶i m· riªng rÏ ,dïng 74139 sÏ cã Ýt
®Çu vµo h¬n so víi 74138 díi ®©y la s¬ ®å ch©n linh kiÖn
B¶ng sù thËt :
IV. Ma trËn LED 1588AB :
Sö dông ma trËn led 8x8 víi c¸c hµng cét ®îc kÕt nèi víi nhau ,trong trõong hîp
bµi lµm ,cã bèn ma trËn led ®îc kÕt nèi ®Ó t¹o thµnh 8 hµng vµ 32 cét . ma trËn
1588AB lµ ma trËn lo¹i catot
PhÇn ii. S¬ ®å khèi vµ chøc n¨ng c¸c khèi
Nguån
HiÓn thÞ
VDK 89C51
KhuÕch ®¹i
dßng
Chän chip
Gi¶I m· ®Þa chØ
1.Khèi nguån :sö dông nguån m¸y tÝnh ®Ó ®¶m b¶o kh¶ n¨ng æn ®Þnh cao
2.Khèi VDK 89C51 :bao gåm c¸c linh kiÖn kÌm víi VDK nh dao ®éng TA ,tô
,reset
3.Khèi chän chip :do 74LS139 ®¶m nhËn ,nã sÏ nhËn tÝn hiÖu tõ VDK ®Ó chän 1
trong hai IC 74154 phôc vô cho gi¶I m·
4. Khèi gi¶i m· : gåm 2 IC 74154 gi¶i n· ®Þa chØ 16 ®Çu ra sÏ chän 1 tron 32 cét cña
khèi hiÓn thÞ ®Ó VDK xuÊt d÷ liÖu ra (hiªn thÞ )
5 Khèi hiÓn thi :gåm 4 ma trËn 8*8 møc thµnh 8 hµng vµ 32 cét sÏ hiÓn thÞ ch÷ mµ
ta muèn
6 .Khèi khuÕch ®¹i : ®Ó ®¶m b¶o cho ®Òn s¸ng b×nh thêng ,ph¶i cung ®ñ dßng
cho nã ,dßng ra tõ c¸c ch©n cña c¸c IC ,VDK nãi chung ®Òu nhá vi v¹y ph¶i
khuÕch ®¹i chóng tríc khi ®a qua ®Ìn viÖc nµy ®¶m nhËn bëi c¸c Transitor
PHÇN 3:
S¬ ®å nguyªn lÝ vµ nguyªn lÝ ho¹t ®éng :
I.S¬ ®å nguyªn lÝ :
thùc hiÖn b»ng phÇn mÒm Proteus :
II. M« t¶ nguyªn lÝ ho¹t ®éng :
TÝn hiÖu chän chip tõ VDK ®Õn 74139 ®îc gi¶I m· sÏ chän 1 trong hai Ic 74154
sau ®ã tÝn hiÖu chän cét ®îc VDK ®a vµo bèn ®Çu vµo cña 74154 , sÏ gi¶I m· ®Ó
chän mét cét trong 32 cét
Khi mét cét ®· ®îc chän ,d÷ liÖu tõ cæng P0 ®Ðn c¸c Baz¬ cña c¸c ®Ìn khuÕch ®¹i
ë ®ã dßn g®îc khuch ®¹i vµ ra ë Emit¬ cña ®Ìn ,ch¶y qua ®Ìn vÒ ®Êt (cét ®îc chän
HiÓn thÞ ®éng : nh ®· biÕt , khi cã dßng ch¶y qua led sÏ s¸ng ,tïy theo vi trÝ c¸c led
s¸ng phèi hîp víi nhau t¹o thµnh h×nh ¶nh ch÷ . Nhng mét htêi ®iÓm ta kh«ng thÓ
cho bao nhiªu led s¸ng còng ®îc v× :
+ Dßng cung rÊt tèn kÐm :mçi led 10 mA cã tÊt c¶ 32*8=256 led
th× cùc ®¹i cÇn 2,56 A
+Dßng qu¸ lín sÏ g©y háng IC do mçi IC chØ cho phÐp dßng vµo giíi h¹n
+ph¶i dïng nhiÒu VDK phèi hîp víi nhau rÊt phøc t¹p
MÆt kh¸c do ®Æc ®iÓm thi gi¸c cña con ngêi kh«ng thÓ ph©n biÖt sù ®øt ®o¹n cña
h×nh ¶nh nÕu nã dîc quÐt >= 24 lÇn /gi©y .ChÝnh v× vËy viÖc hiÓn thÞ ®ång lo¹t lµ ®IÒ
kh«ng cÇn thiÕt ,thay vµo ®ã c¸c cét ®Ìn sÏ lu©n phiªn nhau nhËn d÷ liÖu hiÓn thi ,vµ
nh vËy viÖc sö dông c¸c ch©n cña VDK vµ viÖc lËp tr×nh sÏ ®on gi¶n h¬n
*Qu¸ tr×nh truy xuÊt d÷ liÖu ë 89C51 :
III. M· ch¬ng tr×nh :
*M« t¶ ch¬ng tr×nh :ch¬ng tr×nh ®îc thùc hiÖn b»ng phÇn mÒm Reads51 c¸c ch÷
m· hãa dùa trªn b¶ng sau
cæng p2 qu¶n lÝ viÖc chän chip vµ d÷ liÖu ®Çu vµo cña 74154 ,cæng p0 qu¶n lÝ viÖc xuÊt
d÷ liÖu ,d÷ liÖu tríc khi ®ua ra ®îc ®Èy vµo c¸c thanh ram cña bank 0
Code:
#include
org 0h
MOV tmod,#01
MOV p2,#10100000B;dia chi bat dau cua chuoi tu ngoai cung ben phai
lap1:
MOV R7,#24;so lan quet chuoi
lap:
ACALL chuoi
MOV A,p2
SUBB A,#64
MOV p2,A
DJNZ R7,lap
DEC p2
CLR p2.7
LJMP lap1
delay2:
MOV tl0,#09Bh ;nap gia tri can tre
MOV th0,#0ffh
SETB tr0
here2:
JNB tf0,here2
CLR tr0
CLR tf0
RET
goi: ;dua du lieu tu ram ra cong P0
INC p2
MOV p0,R0
acall delay2
INC p2
MOV p0,R1
acall delay2
INC p2
MOV p0,R2
acall delay2
INC p2
MOV p0,R3
acall delay2
INC p2
MOV p0,R4
acall delay2
INC p2
MOV p0,R5
acall delay2
INC p2
MOV p0,R6
acall delay2
RET
napd:
MOV R0,#01001001B
MOV R1,#01111111B
MOV R2,#01111111B
MOV R3,#01001001B
MOV R4,#01100011B
MOV R5,#00111110B
MOV R6,#00011100B
RET
napi:
MOV R0,#01000100B
MOV R1,#01111101B
MOV R2,#01111101B
MOV R3,#01000000B
MOV R4,#00111000B
MOV R5,#01111110B
MOV R6,#11010101B
RET
nape:
MOV R0,#11010101B
MOV R1,#01011110B
MOV R2,#00011000B
MOV R3,#00000000B
MOV R4,#01111100B
MOV R5,#01111100B
MOV R6,#00000100B
RET
napn:
MOV R0,#00000100B
MOV R1,#01111100B
MOV R2,#01111000B
MOV R3,#00000011B
MOV R4,#01000001B
MOV R5,#01111111B
MOV R6,#01111111B
RET
napt:
MOV R0,#01000001B
MOV R1,#00000011B
MOV R2,#00111100B
MOV R3,#01111100B
MOV R4,#01000101B
MOV R5,#01000011B
MOV R6,#01111100B
RET
napu:
MOV R0,#01111100B
MOV R1,#00000110B
MOV R2,#00000000B
MOV R3,#00000110B
MOV R4,#01001111B
MOV R5,#01001001B
MOV R6,#00101001B
RET
nap9:
MOV R0,#00111111B
MOV R1,#00011110B
MOV R2,#01000001B
MOV R3,#01111111B
MOV R4,#01111111B
MOV R5,#00001000B
MOV R6,#00011100B
RET
napk:
MOV R0,#01110111B
MOV R1,#01100011B
MOV R2,#00011000B
MOV R3,#00011100B
MOV R4,#01010110B
MOV R5,#01111111B
MOV R6,#01111111B
RET
nap4:
MOV R0,#01010000B
MOV R1,#00000011B
MOV R2,#00000011B
MOV R3,#01110001B
MOV R4,#01111001B
MOV R5,#00001111B
MOV R6,#00000111B
RET
chuoi: ;dua cac chu ra P0
ACALL napd
ACALL goi
ACALL napi
ACALL goi
ACALL nape
ACALL goi
ACALL napn
ACALL goi
ACALL napt
ACALL goi
ACALL napu
ACALL goi
ACALL nap9
ACALL goi
ACALL napk
ACALL goi
ACALL nap4
ACALL goi
inc p2
mov p0,#0B
RET
END
Thời gian trễ của delay2:
0ffffh-0ff37h=200d
khoảng trễ sẽ là 0. 2ms
Để tạo chữ chạy ta chọn các bộ định thời để tạo trễ sao cho 1 chuỗi ( 50 cột: 10 kí tự ) được quét ít nhất 24 lần trong 1s sau đó trễ 1 rồi dịch sang vị trí tiếp (đặt thời gian quét 1 lần chuỗi là T1=1/ 24
Trong một lần quét chuỗi mỗi cột sẽ được quét trong T1/ ( 50x2 ) do giữa mỗi lần quét có một khoảng nghỉ
(Như vậy khoảng trễ của một lần quét cột là 1/2400 khoảng 0. 4ms ( 370 chu kì máy )
Một lần quét chuỗi khoảng 40ms ( 38000 chu kì máy )
Tuy nhiên khi tính đến trễ gây ra bởi bản thân các lệnh thì ta được kết quả như phần mã