MỤC LỤC 
PHẦN A : GIỚI THIỆU .1 
Trang2
Nhận xét của giáo viên hướng dẫn .2 
Nhận xét của giáo viên phản biện .3 
Lời mở đầu .4 
Lời cảm tạ .5 
Mục lục .6 
PHẦN B: NỘI DUNG .7 
Chương 1:Giới thiệu linh kiện dùng trong mạch .8 
1.1 Vi điều khiển .8 
1.1.1 Giới thiệu họvi điều khiển. .8 
1.1.2 Sơ đồvà chức năng các chân .9 
1.1.3 Tổchức bộnhớ .11 
1.1.4 Phần mềm lập trình VĐK MCS51 13 
1.2 IC giải mã TPIC6B595 14 
1.2.1 Sơ đồvà chức năng các chân 14 
1.2.2 Sơ đồlogic của TPIC6B595 .15 
1.2.3 Sơ đồ đầu vào và ra .16 
1.3 LED MATRIX .17 
1.3.1 Hình dạng và cấu tạo của LED .17 
1.3.2 Nguyên lý hoạt động .18 
1.4 IC ULN 2803 19 
Chương 2: Kết luận và hướng phát triển đềtài .20 
2.1 Kết luận 20 
2.2 Hướng phát triển đềtài .20 
PHẦN C: PHỤLỤC VÀ TÀI LIỆU THAM KHẢO .21 
Phụlục A: Lưu đồgiải thuật .22 
Phụlục B: Chương trình điều khiển .23 
Phụlục C: Sơ đồmạch .52 
Phụlục D: Tài liệu tham khảo 53 
                
              
                                            
                                
            
 
            
                 49 trang
49 trang | 
Chia sẻ: maiphuongdc | Lượt xem: 2163 | Lượt tải: 1 
              
            Bạn đang xem trước 20 trang tài liệu Đề tài Ứng dụng IC8051 đểhiển thị bộ đếm GIỜ- PHÚT – GIÂY trên sáu LED matrix, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
c chân X1 (19) và X2 (18) để mắc thạch anh cho mạch tạo xung nhịp 
của MCS-51. 
- Chân RESET (9) là tín hiệu vào tích cực mức cao để thiết lập lại trạng 
thái ban đầu cho MCS-51. 
- Chân /EA (31) là tin hiệu vào, khì nối /EA với +5v thì MCS-51 chỉ làm 
việc với các bộ nhớ ROM, RAM bên trong nó, còn khi nối /EA với đất thì MCS-
51 làm việc với các bộ nhớ ROM, RAM bên ngoài. 
- Chân ALE (30) là tín hiệu ra dùng để chốt 8 bít địa chỉ thấp (AO A7) khi 
sử dụng bộ nhớ ngoài. 
- Chân /PSEN (29) là tín hiệu ra tích cực mức thấp dùng để đọc mã lệnh từ 
bộ nhớ chương trình bên ngoài khi /EA được nối với đất, khi /EA được nối với 
+5v thì /PSEN luôn không tích cực ở mức cao. 
 Trang6 
- Các chân cổng 0: P0.7 P0.0 (32 39) được dùng làm cổng vào ra khi /EA 
được nối với +5v. Khi /EA nối đất thì cổng 0 được sử dụng làm bus địa chỉ và sổ 
liệu cho bộ nhớ ngoài. Khi đó, ở nửa đầu của chu kỳ lệnh truy nhập bộ nhớ ngoài, 
MCS-51 đa ra cổng 0 8 bit địa chỉ thấp (A0 A7), sau đó cổng 0 trở thành bus số 
liệu 8 bít, do đó phải dùng ALE để chốt 8 bit địa chỉ thấp vào thanh chốt địa chỉ 
phần thấp. 
- Các chân cổng 2: P2.0 P2.7 (21 28) được dùng làm cổng vào ra khi /EA 
được nối với +5v. Khi /EA được nối đất thì cổng 2 được sử dụng để đưa ra 8 bít 
địa chỉ cao (A8 A15) cho bộ nhớ ngoài. 
- Các chân cổng 3: P3.0 P3.7 (10 17) có thể được dùng làm cổng vào ra 
hoặc dùng cho chức năng khác như sau: P3.0 (RxD) có thể được dùng để nhận số 
liệu nối tiếp P3.1 (TxD) có thể được dùng để phát số liệu nối tiếp P3.2 (INTO) có 
thể được dùng để nhận ngắt ngoài 0; P3.3 (INT1) có thể được dùng để nhận ngắt 
ngoài 1; P3.4 (T0) có thể được dùng để nhận xung clock Timer 0; P3.5 (T1) có 
thể được dùng để nhận xung clock cho Timer 1; P3.6 (/WR) khi /EA nối đất thì 
nó được dùng để đưa ra tín hiệu điều khiển ghi RAM ngoài; P3.7 (/RD) khi /EA 
nối đất thì nó được dùng để đa ra tín hiệu điều khiển đọc RAM ngoài. 
- Các chân cổng 1: P1.0 P1.7 (1 8) đối với nhóm 8051 chỉ được sử dụng 
làm cổng vào ra. Đối với nhóm 8052 thì chân P1.0 (1) có thể được dùng để nhận 
xung clock T2 cho Timer 2, còn chân P1.1 (2) có thể được dùng làm đầu vào nạp 
lại T2EX cho Timer 2. 
Chân GND (20) là để nối đất, còn chân Vcc (40) là để cấp nguồn cho vi 
mạch MCS-51 
Tất cả 32 chân của 4 cổng P0 P3 đều có thể dùng làm các cổng vào ra số 
liệu song song 8 bít hoặc dùng làm các tín hiệu vào ra độc lập nhau. 
 Trang7 
1.1.3 Tổ chức bộ nhớ 
Họ MCS-51 có không gian nhớ riêng cho chương trình và số liệu ở cả bên 
trong và bên ngoài. Tổ chức bộ nhớ của 89C51 như trên hình sau: 
 Hình 1.1: Tổ chức bộ nhớ 
Khi /EA được nối với +5v thì bộ nhớ ngoài không được dùng, MCS-51 chỉ 
truy nhập EEPROM trong để đọc mã chương trình và cất số liệu vào RAM trong. 
Khi /EA được nối đất thì bộ nhớ chương trình ROM trong không được dùng, 
MCS-51 đọc mã chương trình từ bộ nhớ chương trình ngoài bằng tín hiệu /PSEN, 
còn bộ nhớ số liệu ngoài được truy nhập bằng các tín hiệu /WR và /RD, do có bộ 
nhớ chương trình và bộ nhớ số liệu ngoài có thể dùng chung bus địa chỉ A0 A15. 
Bộ nhớ số liệu trong của họ MCS-51 có địa chỉ từ 00h đến FFh, trong đó 
nhóm 8052 có đủ 256 byte RAM, nhóm 8051 chỉ có 128 byte RAM ở các địa chỉ 
thấp từ 00h đến 7fh, vùng địa chỉ cao từ 80h đến FFh được dành cho các thanh 
ghi chức năng đặc biệt SFR. Tổ chức vùng 128 byte thấp bộ nhớ số liệu RAM 
trong của họ MCS-51như trên hình 3, nó được chia thành ba miền. 
- Miền các băng thanh ghi chiếm địa chỉ từ 00h đến 1fh có 32 byte chia 
thành 4 băng, mỗi băng có 8 thanh ghi được đánh số từ R0 đến R7. 
Tại mỗi thời điểm chỉ có một băng thanh ghi có thể truy nhập và được gọi 
là băng tích cực. Để chọn băng tích cực cần nạp giá trị thích hợp cho các bít RS0 
và RS1 của thanh ghi từ trạng thái PSW, mặc định bằng 0 là tích cực. 
Miền RAM được định địa chỉ bít có 16 byte 8 bít = 128 bít, chiếm địa chỉ 
từ 20h đến 1fh. Mỗi bít ở miền này được định địa chỉ riêng từ 00h đến 7fh nên có 
 Trang8 
thể truy nhập đến từng bít riêng rẽ bằng các lệnh xử lý bít. Vùng RAM được định 
địa chỉ bít và các lệnh xử lý bít là một trong những đặc tính nổi bật đem lại sức 
mạnh cho họ bộ vi điều khiển MCS-51. 
- Miền RAM thông thường có 80 byte chiếm địa chỉ từ 30h đến 7fh. Các 
thanh ghi chức năng đặc biệt (viết tắt theo tiếng Anh là SFR) là tập các thanh ghi 
bên trong của bộ vi điều khiển. Họ MCS-51 định địa chỉ cho tất cả các SFR ở 
vùng 128 byte cao của bộ nhớ số liệu trong (xem hình 2), mỗi SFR có tên gọi và 
địa chỉ riêng, một số SFR có định địa chỉ cho từng bít. Khi bật nguồn hoặc 
RESET, tất cả các SFR đều được nạp giá trị đầu, sau đó chương trình cần nạp lại 
giá trị cho các SFR cần dùng theo yêu cầu sử dụng. 
 Hình 1.2: Tổ chức 128 byte thấp của RAM trong 
Việc truy nhập đến các SFR chỉ có thể thực hiện bằng phương pháp địa chỉ 
trực tiếp với tên gọi hoặc địa chỉ của SFR là toán hạng của lệnh. Với các SFR có 
 Trang9 
định địa chỉ bít, có thể truy nhập và thay đổi trực tiếp từng bít.của nó bằng các 
lệnh xừ lý bít. Bảng 2 cho biết thông tin chủ yếu về các SFR. 
Ở nhóm 8051vùng 128 byte cao của bộ nhớ số liệu trong chỉ có các SFR, 
không tồn tại các ô nhớ khác ở vùng nhớ này. Ở nhóm 8052 bộ nhớ số liệu trong 
có 256 byte RAM, các ô nhớ của vùng RAM 128 byte cao chỉ có thể truy nhập đ-
ược bằng phương pháp địa chỉ gián tiếp, còn các SFR cũng có địa chỉ nằm trong 
vùng đó nhưng chỉ truy nhập được bằng phương pháp địa chỉ trực tiếp, vì thế việc 
truy nhập chúng không bị xung đột và nhầm lẫn. 
1.1.4 Phần mềm lập trình vi điều khiển MCS-51 
Có thể viết trên ngôn ngữ Assembler hoặc các ngôn ngữ bậc cao khác như 
C, Basic, Forth... Tập lệnh Assembler của họ MCS-51 có 83 lệnh, được chia 
thành 5 nhóm là các lệnh số học, các lệnh logic, các lệnh chuyển số liệu, các lệnh 
xử lý bít và các lệnh rẽ nhánh. Các lệnh xứ lý bít là điểm mạnh cơ bản của họ 
MCS-51, vì chúng làm cho chương trình ngắn gọn hơn và chạy nhanh hơn. Ch-
ương trình Assembler được viết trên máy tính, sau đó phải dịch ra mã máy của họ 
MCS-51 bằng trình biên dịch ASM51, rồi mới nạp. Chương trình mã máy vào bộ 
nhớ cho trình EEPROM (hoặc EPROM) ở bên trong hoặc bên ngoài MCS-51. 
Khi lập trình bằng ngôn ngữ bậc cao như C, Basic, Forth.... cũng phải dịch chúng 
ra mã máy của họ MCS-51 bằng các trình biên dịch tương ứng, sau đó nạp ch-
ương trình mã máy vào bộ nhớ chương trình. Nói chung, chương trình viết trên 
ngôn ngữ Assembler khó hơn viết trên ngôn ngữ bậc cao, nhưng khi dịch ra mã 
máy sẽ ngắn gọn hơn và chạy nhanh hơn các chương trình viết trên ngôn ngữ bậc 
cao. Để viết và nạp phần mềm cho MCS-51, bạn phải có các công cụ là máy vi 
tính, trình biên dịch ngôn ngữ sử dụng ra mã máy của họ MCS-51 và bộ nạp 
chương trình mã máy từ máy tính vào bộ nhớ chương trình EEPROM trong Mcs-
51 hoặc bộ nhớ EPROM ngoài. 
1.2 IC giải mã TPIC6B595N 
 Trang10 
1.2.1 Sơ đồ và chức năng các chân 
6B595 thuộc họ CMOS là loại IC dịch dùng điều khiển điện áp ở ngõ ra. 
Được ứng dụng điều khiển điện áp ngõ ra bao gồm những cuộn dây, rơ le và bao 
gồm những thiết bị cùng áp hay những thiết bị có điện áp lớn. 
Dưới đây là sơ đồ và chức năng các chân của TPIC6B595: 
Chân 1(NC) không kết nối với bên trong 
Chân 2(Vcc) chân nguồn 
Chân 3(Serin) dữ liệu đưa vào 
Chân 4 đến chân 7 và chân 14 đến 17 ngõ ra 
Chân 8(Clear) khi ở mức tích cực thấp xoá bít 
Chân 8(G) ngõ ra cho phép, ở mức thấp điện áp ngõ ra được điều khiển, 
ở mức trạng thái ngõ ra đóng lại 
Chân 10,11 và 19 được nối mát 
Chân 12(NC) chân nhập dữ liệu cuối 
Chân 13 kích xung clock 
Chân 18 dữ liệu được kích cho IC kế tiếp 
Chân 20 không kết nối bên trong 
1.2.2 Sơ đồ logic của TPIC6B595 
 Trang11 
RCK 
SRCLR 
12 
DRAIN7
G 
SRCK 
SER IN 
D 
C1 
CLR 
D 
C1 
CLR 
D 
C1 
CLR 
D 
C1 
CLR 
D 
C1 
CLR 
D 
C1 
CLR 
D 
C1 
CLR 
D 
C1 
CLR 
D 
C2 
D 
C2 
D 
C2 
D 
C2 
D 
C2 
D 
C2 
18 
SER OUT
10, 11, 19 
GND
DRAIN6
DRAIN5
DRAIN4
DRAIN3
DRAIN2
DRAIN1
DRAIN0
8 
13 
D 
9 
3 
 Trang12 
TYPICAL OF ALL DRAIN OUTPUTS 
DRAIN 
GND 
EQUIVALENT OF EACH INPUT 
VCC 
Input 
25 V 
GND 
20 V 
50 V 
12 V
SER IN 
G 
5 V 
0 V 
5 V 
0 V 
5 V 
0 V 
5 V 
0 V 
5 V 
0 V 
24 V 
0.5 V
3 2 1 0 7 6 5 4
SRCK 
RCK 
SRCLR 
DRAIN1 
1.2.3 Sơ đồ của đầu vào và ra của TPIC6B595 
Ta có giản đồ xung kích và xung ra của các chân IC 
1.3 LEDMATRIX 
1.3.1 Hình dạng và cấu tạo của LED 
 Trang13 
Ma trận led bao gồm nhiều led đơn bố trí thành hàng và cột trong một 
vỏ.Các tín hiệu điều khiển cột được nối với Anode của tất cả các led trên cùng 
một cột. Các tín hiệu điểu khiển hàng cũng được nối với Cathode của tất cả 
các led trên cùng một hàng như hình vẽ : 
1.3.2 Nguyên lý hoạt động 
 Trang14 
Khi có một tín hiệu điều khiển ở cột và hàng ,các chân Anode của các led 
trên cột tương ứng được cấp điện áp cao , đồng thời các chân Cathode của các 
led trên hàng tương ứng được được cấp điện áp thấp .Tuy nhiên lúc đó chỉ có 
một led sáng ,vì nó có đồng thời điện thế cao trên Anode và điện thế thấp trên 
Cathode.Như vậy khi có một tín hiệu điều khiển hàng và cột ,thì tại một thời 
điểm chỉ có duy nhất một led tại chỗ gặp nhau của hàng và cột là sáng.Các bảng 
quang báo với số lượng led lớn hơn cũng được kết nối theo cấu trúc như vậy. 
Trong trường hợp ta muốn cho sáng đồng thời một số led rời rạc trên ma 
trận, để hiện thị một kí tự nào đó ,nếu trong hiển thị tĩnh ta phải cấp áp cao cho 
Anode và áp thấp cho Cathode ,cho các led tương ứng mà ta muốn sáng.Nhưng 
khi đó một số led ta không mong muốn cũng sẽ sáng ,miễn là nó nằm tại vị trí 
gặp nhau của các cột và hàng mà ta cấp nguồn.Vì vậy trong điều khiển led ma 
trận ta không thể sử dụng phương pháp hiển thị tĩnh mà phải sử dụng phương 
pháp quét (hiển thị động),có nghĩa là ta phải tiến hành cấp tín hiệu điều khiển 
theo dạng xung quét trên các hàng và cột có led cần hiển thị. Để đảm cho mắt 
nhìn thấy các led không bị nháy,thì tần số quét nhỏ nhất cho mỗi chu kì là 
khoảng 20HZ(50ms).Trong lập trình điều khiển led ma trận bằng vi xử lý ta 
cũng phải sử dụng phương pháp quét như vậy. 
Ma trận led có thể là loại chỉ hiển thị được một màu hoặc hiển thị được 2 
màu trên một điểm,khi đó led có số chân ra tương ứng : đối với ma trận led 8x8 
hiển thị một màu, thì số chân ra là 16,trong đó 8 chân dùng để điều khiển hàng 
và 8 chân còn lại dùng để điều khiển cột. Đối với loại 8x8 có 2 màu thì số chân 
ra của led là 24 chân,trong đó có 8 chân dùng để điều khiển cột (hoặc hàng ) 
chung cho cả hai màu,16 chân còn lại thì 8 chân dùng để điều khiển hàng (hoặc 
cột) màu thứ nhất,8 chân còn lại dùng điều khiển màu thứ 2. 
1.4 IC ULN2803 
 Trang15 
ULN2803 là IC đệm đảo có 9 chân trong đó có 8 ngõ vào và 8 ngõ ra, dưới 
đây là hình dạng và cấu tạo bên trong của 2803: 
Bộ đệm đảo dung IC2803 nhằm đảo bít nếu ngõ vào ở mức cao qua 2803 
ra sẽ là mức thấp và ngược lại. ULN2803 chịu dựng mức điện áp từ 6V-15V 
hơn loai CMOS hay cả PMOS. 
CHƯƠNG 2 
 Trang16 
KẾT LUẬN – HƯỚNG PHẤT TRIỂN ĐỀ TÀI 
2.1 KẾT LUẬN 
Cuộc sống con người phát triển ngày càng hiện đại vì vậy thời gian rất 
quý báu đối với mỗi con người chúng ta. Đồng hồ chính là thước đo thời gian 
không thề thiếu, vì vậy chúng em chọn đề tài này phát triển nghiên cứu nó để 
làm ra những cái đồng hồ đa dạng hơn, hiện đại hơn. 
Đề tài chúng em lựa chọn làm đồ án 2 này điều khiển hiển thị trên 6 LED 
MATRIX , kiến thức còn hạn hẹp nên không tránh khỏi những sai sót. Chúng 
em rất mong nhận được những lời chỉ bảo từ thầy cô trong hội đồng. 
2.2. HƯỚNG PHÁT TRIỂN ĐỀ TÀI 
Từ đề tài này chúng ta có thể phát triển lên một cái đòng hồ đa chức 
năng. Đồng hồ đa chức năng đó có hiển thị GIỜ - PHÚT – GIÂY là cái cơ bản 
thêm vào đó có NGÀY – THÁNG - NĂM của cả dương lịch và âm lịch. 
Ngoài ra có cảm biến nhiệt để đo nhiệt độ của thời tiết hàng ngày và nhiều chứa 
năng hơn nữa như hẹn giờ, chuông báo giờ …. 
 Trang17 
PHẦN C 
PHỤ LỤC VÀ TÀI 
LIỆU THAM KHẢO 
 Trang18 
PHỤ LỤC A 
LƯU ĐỒ CHƯƠNG TRÌNH CHÍNH 
PHỤ LỤC B 
 Trang19 
CHƯƠNG TRÌNH ĐIỀU KHIỂN 
$MOD51 
;CHUONG TRINH DONG HO HIEN THI LED MATRIX 
 SETT BIT P3.0 
 UP BIT P3.1 
 DOWN BIT P3.2 
 OK BIT P3.3 
 CLEAR BIT P2.4 ;CHAN 8 
 CLOCK BIT P2.6 ;CHAN 13 
 DATAIN BIT P2.3 ;CHAN 3 
 STROBE BIT P2.7 ;CHAN 12 
 ENABLE BIT P2.5 ;CHAN 9 
 ORG 0000H 
 SETB CLEAR 
 CLR ENABLE 
 CLR CLOCK 
 CLR DATAIN 
 CLR STROBE 
 LCALL DELAY 
 MOV P0,#00H 
 MOV TMOD,#01H 
 MOV R4,#00H 
 MOV 20H,#00H ;CHUC GIO 
 MOV 21H,#00H ;D/VI GIO 
 MOV 22H,#00H ;CHUC PHUT 
 MOV 23H,#00H ;D/VI PHUT 
 MOV 24H,#00H ;CHUC GIAY 
 MOV 25H,#00H ;D/VI GIAY 
 MOV 60H,#01H 
 MOV 61H,#02H 
 MOV 62H,#04H 
 MOV 63H,#08H 
 MOV 64H,#10H 
 Trang20 
 MOV 65H,#20H 
 MOV 66H,#40H 
 MOV 67H,#80H 
LB: LCALL GIAIMA1 
 LCALL GIAIMA2 
 LCALL GIAIMA3 
 LCALL GIAIMA4 
 LCALL GIAIMA5 
 LCALL GIAIMA6 
 MOV R2,#150 
HTHI1: LCALL HIENTHI 
 DJNZ R2,HTHI1 
 LCALL DELAY1S 
 CJNE R4,#01,LB1 
 MOV R4,#00H 
 LCALL GPGIAY 
LB1: JB SETT,LB 
;Y1: MOV R2,#250 
;HTHI2: LCALL HIENTHI 
; DJNZ R2,HTHI2 
; JNB SETT,Y1 
 MOV 10H,#01H 
 LCALL SETTING 
 SJMP LB 
HIENTHI: 
 MOV A,30H 
 LCALL DATACOTX 
 MOV A,38H 
 LCALL DATACOTX 
 MOV A,40H 
 LCALL DATACOTX 
 MOV A,48H 
 LCALL DATACOTX 
 MOV A,50H 
 LCALL DATACOTX 
 MOV A,58H 
 LCALL DATACOTX 
 MOV P0,60H 
 Trang21 
 LCALL DELAY 
 MOV P0,#00 
 CLR CLEAR 
 NOP 
 NOP 
 NOP 
 SETB CLEAR 
 MOV A,31H 
 LCALL DATACOTX 
 MOV A,39H 
 LCALL DATACOTX 
 MOV A,41H 
 LCALL DATACOTX 
 MOV A,49H 
 LCALL DATACOTX 
 MOV A,51H 
 LCALL DATACOTX 
 MOV A,59H 
 LCALL DATACOTX 
 MOV P0,61H 
 LCALL DELAY 
 MOV P0,#00 
 CLR CLEAR 
 NOP 
 NOP 
 NOP 
 SETB CLEAR 
 MOV A,32H 
 LCALL DATACOTX 
 MOV A,3AH 
 LCALL DATACOTX 
 MOV A,42H 
 LCALL DATACOTX 
 MOV A,4AH 
 LCALL DATACOTX 
 MOV A,52H 
 LCALL DATACOTX 
 MOV A,5AH 
 Trang22 
 LCALL DATACOTX 
 MOV P0,62H 
 LCALL DELAY 
 MOV P0,#00 
 CLR CLEAR 
 NOP 
 NOP 
 NOP 
 SETB CLEAR 
 MOV A,33H 
 LCALL DATACOTX 
 MOV A,3BH 
 LCALL DATACOTX 
 MOV A,43H 
 LCALL DATACOTX 
 MOV A,4BH 
 LCALL DATACOTX 
 MOV A,53H 
 LCALL DATACOTX 
 MOV A,5BH 
 LCALL DATACOTX 
 MOV P0,63H 
 LCALL DELAY 
 MOV P0,#00 
 CLR CLEAR 
 NOP 
 NOP 
 NOP 
 SETB CLEAR 
 MOV A,34H 
 LCALL DATACOTX 
 MOV A,3CH 
 LCALL DATACOTX 
 MOV A,44H 
 LCALL DATACOTX 
 MOV A,4CH 
 LCALL DATACOTX 
 MOV A,54H 
 Trang23 
 LCALL DATACOTX 
 MOV A,5CH 
 LCALL DATACOTX 
 MOV P0,64H 
 LCALL DELAY 
 MOV P0,#00 
 CLR CLEAR 
 NOP 
 NOP 
 NOP 
 SETB CLEAR 
 MOV A,35H 
 LCALL DATACOTX 
 MOV A,3DH 
 LCALL DATACOTX 
 MOV A,45H 
 LCALL DATACOTX 
 MOV A,4DH 
 LCALL DATACOTX 
 MOV A,55H 
 LCALL DATACOTX 
 MOV A,5DH 
 LCALL DATACOTX 
 MOV P0,65H 
 LCALL DELAY 
 MOV P0,#00 
 CLR CLEAR 
 NOP 
 NOP 
 NOP 
 SETB CLEAR 
 MOV A,36H 
 LCALL DATACOTX 
 MOV A,3EH 
 LCALL DATACOTX 
 MOV A,46H 
 LCALL DATACOTX 
 MOV A,4EH 
 Trang24 
 LCALL DATACOTX 
 MOV A,56H 
 LCALL DATACOTX 
 MOV A,5EH 
 LCALL DATACOTX 
 MOV P0,66H 
 LCALL DELAY 
 MOV P0,#00 
 CLR CLEAR 
 NOP 
 NOP 
 NOP 
 SETB CLEAR 
 MOV A,37H 
 LCALL DATACOTX 
 MOV A,3FH 
 LCALL DATACOTX 
 MOV A,47H 
 LCALL DATACOTX 
 MOV A,4FH 
 LCALL DATACOTX 
 MOV A,57H 
 LCALL DATACOTX 
 MOV A,5FH 
 LCALL DATACOTX 
 MOV P0,67H 
 LCALL DELAY 
 MOV P0,#00 
 CLR CLEAR 
 NOP 
 NOP 
 NOP 
 SETB CLEAR 
 RET 
DATACOTX: 
 MOV R3,#08 
XOAY1: RLC A 
 Trang25 
 MOV DATAIN,C 
 NOP 
 NOP 
 NOP 
 NOP 
 SETB CLOCK 
 SETB STROBE 
 NOP 
 NOP 
 NOP 
 NOP 
 CLR STROBE 
 CLR CLOCK 
 DJNZ R3,XOAY1 
 RET 
DELAY: MOV R6,#050H 
 DJNZ R6,$ 
 RET 
SETTING: 
X5: LCALL GIAIMA1 
 LCALL GIAIMA2 
 LCALL GIAIMA3 
 LCALL GIAIMA4 
 LCALL GIAIMA5 
 LCALL GIAIMA6 
 MOV R2,#150 
HTHI3: LCALL HIENTHI 
 DJNZ R2,HTHI3 
 JB SETT,X2 
Y2: 
; MOV R2,#250 
;HTHI4: 
; LCALL HIENTHI 
; DJNZ R2,HTHI4 
 Trang26 
; JNB SETT,Y2 
 INC 10H 
 MOV A,10H 
 CJNE A,#4,X2 
 MOV 10H,#01H 
X2: JB UP,X3 
Y3: 
; MOV R2,#250 
;HTHI5: 
; LCALL HIENTHI 
; DJNZ R2,HTHI5 
; JNB UP,Y3 
 LCALL DEMLEN 
X3: JB DOWN,X4 
Y4: 
; MOV R2,#250 
;HTHI6: 
; LCALL HIENTHI 
; DJNZ R2,HTHI6 
; JNB DOWN,Y4 
 LCALL DEMXUO 
X4: JB OK,X5 
Y5: 
; MOV R2,#250 
;HTHI7: 
; LCALL HIENTHI 
; DJNZ R2,HTHI7 
; JNB OK,Y5 
 RET 
DEMLEN: 
 MOV A,10H 
 CJNE A,#01,DL1 
 INC 25H 
 MOV A,25H 
 CJNE A,#10,DL1 
 Trang27 
 MOV 25H,#00H 
 INC 24H 
 MOV A,24H 
 CJNE A,#6,DL1 
 MOV 24H,#00H 
DL1: MOV A,10H 
 CJNE A,#02,DL2 
 INC 23H 
 MOV A,23H 
 CJNE A,#10,DL2 
 MOV 23H,#00H 
 INC 22H 
 MOV A,22H 
 CJNE A,#6,DL2 
 MOV 22H,#00H 
DL2: MOV A,10H 
 CJNE A,#03,DL3 
 MOV A,20H 
 CJNE A,#2,DL4 
 INC 21H 
 MOV A,21H 
 CJNE A,#4,DL3 
 MOV 21H,#00 
 MOV 20H,#00 
 SJMP DL3 
DL4: INC 21H 
 MOV A,21H 
 CJNE A,#10,DL3 
 MOV 21H,#00H 
 INC 20H 
 MOV A,20H 
 CJNE A,#3,DL3 
DL3: RET 
DEMXUO: 
 MOV A,10H 
 Trang28 
 CJNE A,#01,DX1 
 DEC 25H 
 MOV A,25H 
 CJNE A,#0FFH,DX1 
 MOV 25H,#09H 
 DEC 24H 
 MOV A,24H 
 CJNE A,#0FFH,DX1 
 MOV 24H,#05H 
DX1: MOV A,10H 
 CJNE A,#02,DX2 
 DEC 23H 
 MOV A,23H 
 CJNE A,#0FFH,DX2 
 MOV 23H,#09H 
 DEC 22H 
 MOV A,22H 
 CJNE A,#0FFH,DX2 
 MOV 22H,#05H 
DX2: MOV A,10H 
 CJNE A,#03,DX3 
 DEC 21H 
 MOV A,21H 
 CJNE A,#0FFH,DX3 
 MOV 21H,#09H 
 DEC 20H 
 MOV A,20H 
 CJNE A,#0FFH,DX3 
 MOV 20H,#02H 
 MOV 21H,#03H 
DX3: RET 
GIAIMA1: 
 MOV A,20H 
 CJNE A,#00H,GMA1 
 MOV R0,#30H 
 MOV DPTR,#800H 
 Trang29 
GIMA1: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#38H,GIMA1 
GMA1: 
 MOV A,20H 
 CJNE A,#01H,GMA2 
 MOV R0,#30H 
 MOV DPTR,#808H 
GIMA2: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#38H,GIMA2 
GMA2: 
 MOV A,20H 
 CJNE A,#02H,GMA3 
 MOV R0,#30H 
 MOV DPTR,#810H 
GIMA3: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#38H,GIMA3 
GMA3: 
 MOV A,20H 
 CJNE A,#03H,GMA4 
 MOV R0,#30H 
 MOV DPTR,#818H 
GIMA4: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 Trang30 
 INC R0 
 CJNE R0,#38H,GIMA4 
GMA4: 
 MOV A,20H 
 CJNE A,#04H,GMA5 
 MOV R0,#30H 
 MOV DPTR,#820H 
GIMA5: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#38H,GIMA5 
GMA5: 
 MOV A,20H 
 CJNE A,#05H,GMA6 
 MOV R0,#30H 
 MOV DPTR,#828H 
GIMA6: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#38H,GIMA6 
GMA6: 
 MOV A,20H 
 CJNE A,#06H,GMA7 
 MOV R0,#30H 
 MOV DPTR,#830H 
GIMA7: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#38H,GIMA7 
GMA7: 
 Trang31 
 MOV A,20H 
 CJNE A,#07H,GMA8 
 MOV R0,#30H 
 MOV DPTR,#838H 
GIMA8: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#38H,GIMA8 
GMA8: 
 MOV A,20H 
 CJNE A,#08H,GMA9 
 MOV R0,#30H 
 MOV DPTR,#840H 
GIMA9: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#38H,GIMA9 
GMA9: 
 MOV A,20H 
 CJNE A,#09H,GMA10 
 MOV R0,#30H 
 MOV DPTR,#848H 
GIMA10: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#38H,GIMA10 
GMA10: RET 
GIAIMA2: 
 MOV A,21H 
 CJNE A,#00H,GMA11 
 Trang32 
 MOV R0,#38H 
 MOV DPTR,#800H 
GIMA11: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#40H,GIMA11 
GMA11: MOV A,21H 
 CJNE A,#01H,GMA12 
 MOV R0,#38H 
 MOV DPTR,#808H 
GIMA12: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#40H,GIMA12 
GMA12: MOV A,21H 
 CJNE A,#02H,GMA13 
 MOV R0,#38H 
 MOV DPTR,#810H 
GIMA13: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#40H,GIMA13 
GMA13: MOV A,21H 
 CJNE A,#03H,GMA14 
 MOV R0,#38H 
 MOV DPTR,#818H 
GIMA14: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 Trang33 
 CJNE R0,#40H,GIMA14 
GMA14: MOV A,21H 
 CJNE A,#04H,GMA15 
 MOV R0,#38H 
 MOV DPTR,#820H 
GIMA15: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#40H,GIMA15 
GMA15: MOV A,21H 
 CJNE A,#05H,GMA16 
 MOV R0,#38H 
 MOV DPTR,#828H 
GIMA16: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#40H,GIMA16 
GMA16: MOV A,21H 
 CJNE A,#06H,GMA17 
 MOV R0,#38H 
 MOV DPTR,#830H 
GIMA17: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#40H,GIMA17 
GMA17: MOV A,21H 
 CJNE A,#07H,GMA18 
 MOV R0,#38H 
 MOV DPTR,#838H 
GIMA18: CLR A 
 Trang34 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#40H,GIMA18 
GMA18: MOV A,21H 
 CJNE A,#08H,GMA19 
 MOV R0,#38H 
 MOV DPTR,#840H 
GIMA19: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#40H,GIMA19 
GMA19: MOV A,21H 
 CJNE A,#09H,GMA20 
 MOV R0,#38H 
 MOV DPTR,#848H 
GIMA20: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#40H,GIMA20 
GMA20: RET 
GIAIMA3: 
 MOV A,22H 
 CJNE A,#00H,GMA21 
 MOV R0,#40H 
 MOV DPTR,#800H 
GIMA21: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 Trang35 
 CJNE R0,#48H,GIMA21 
GMA21: MOV A,22H 
 CJNE A,#01H,GMA22 
 MOV R0,#40H 
 MOV DPTR,#808H 
GIMA22: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#48H,GIMA22 
GMA22: MOV A,22H 
 CJNE A,#02H,GMA23 
 MOV R0,#40H 
 MOV DPTR,#810H 
GIMA23: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#48H,GIMA23 
GMA23: MOV A,22H 
 CJNE A,#03H,GMA24 
 MOV R0,#40H 
 MOV DPTR,#818H 
GIMA24: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#48H,GIMA24 
GMA24: MOV A,22H 
 CJNE A,#04H,GMA25 
 MOV R0,#40H 
 MOV DPTR,#820H 
GIMA25: CLR A 
 Trang36 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#48H,GIMA25 
GMA25: MOV A,22H 
 CJNE A,#05H,GMA26 
 MOV R0,#40H 
 MOV DPTR,#828H 
GIMA26: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#48H,GIMA26 
GMA26: MOV A,22H 
 CJNE A,#06H,GMA27 
 MOV R0,#40H 
 MOV DPTR,#830H 
GIMA27: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#48H,GIMA27 
GMA27: MOV A,22H 
 CJNE A,#07H,GMA28 
 MOV R0,#40H 
 MOV DPTR,#838H 
GIMA28: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#48H,GIMA28 
GMA28: MOV A,22H 
 Trang37 
 CJNE A,#08H,GMA29 
 MOV R0,#40H 
 MOV DPTR,#840H 
GIMA29: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#48H,GIMA29 
GMA29: MOV A,22H 
 CJNE A,#09H,GMA30 
 MOV R0,#40H 
 MOV DPTR,#848H 
GIMA30: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#48H,GIMA30 
GMA30: RET 
GIAIMA4: 
 MOV A,23H 
 CJNE A,#00H,GMA31 
 MOV R0,#48H 
 MOV DPTR,#800H 
GIMA31: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#50H,GIMA31 
GMA31: MOV A,23H 
 CJNE A,#01H,GMA32 
 MOV R0,#48H 
 MOV DPTR,#808H 
GIMA32: CLR A 
 Trang38 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#50H,GIMA32 
GMA32: MOV A,23H 
 CJNE A,#02H,GMA33 
 MOV R0,#48H 
 MOV DPTR,#810H 
GIMA33: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#50H,GIMA33 
GMA33: MOV A,23H 
 CJNE A,#03H,GMA34 
 MOV R0,#48H 
 MOV DPTR,#818H 
GIMA34: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#50H,GIMA34 
GMA34: MOV A,23H 
 CJNE A,#04H,GMA35 
 MOV R0,#48H 
 MOV DPTR,#820H 
GIMA35: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#50H,GIMA35 
GMA35: MOV A,23H 
 Trang39 
 CJNE A,#05H,GMA36 
 MOV R0,#48H 
 MOV DPTR,#828H 
GIMA36: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#50H,GIMA36 
GMA36: MOV A,23H 
 CJNE A,#06H,GMA37 
 MOV R0,#48H 
 MOV DPTR,#830H 
GIMA37: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#50H,GIMA37 
GMA37: MOV A,23H 
 CJNE A,#07H,GMA38 
 MOV R0,#48H 
 MOV DPTR,#838H 
GIMA38: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#50H,GIMA38 
GMA38: MOV A,23H 
 CJNE A,#08H,GMA39 
 MOV R0,#48H 
 MOV DPTR,#840H 
GIMA39: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 Trang40 
 INC R0 
 CJNE R0,#50H,GIMA39 
GMA39: MOV A,23H 
 CJNE A,#09H,GMA40 
 MOV R0,#48H 
 MOV DPTR,#848H 
GIMA40: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#50H,GIMA40 
GMA40: RET 
GIAIMA5: 
 MOV A,24H 
 CJNE A,#00H,GMA41 
 MOV R0,#50H 
 MOV DPTR,#800H 
GIMA41: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#58H,GIMA41 
GMA41: MOV A,24H 
 CJNE A,#01H,GMA42 
 MOV R0,#50H 
 MOV DPTR,#808H 
GIMA42: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#58H,GIMA42 
GMA42: MOV A,24H 
 Trang41 
 CJNE A,#02H,GMA43 
 MOV R0,#50H 
 MOV DPTR,#810H 
GIMA43: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#58H,GIMA43 
GMA43: MOV A,24H 
 CJNE A,#03H,GMA44 
 MOV R0,#50H 
 MOV DPTR,#818H 
GIMA44: CLR A 
 MOVC A,@A+DPTR 
 MOV @R0,A 
 INC DPTR 
 INC R0 
 CJNE R0,#58H,GIMA44 
GMA44: MOV A,24H 
 CJNE A,#04H,GMA45 
 MOV R0,#50H 
 MOV D
            Các file đính kèm theo tài liệu này:
 mach_dong_ho_so_xu_dung_led_ma_tran_3.PDF mach_dong_ho_so_xu_dung_led_ma_tran_3.PDF