IC AT89S51 có các đặc điểm: - Bộ nhớ chương trình bên trong: 4KB ROM - Bộ nhớ dữ liệu bên trong: 128byte RAM - Bộ nhớ chương trình bên ngoài: 64KB ROM - Bộ nhớ dữ liệu bên ngoài: 64KB RA
Trang 1BÁO CÁO THỰC TẬP
Đề tài Led matrix
Trang 2MỤC LỤC
I.ic 89s51 2
1.1 đặc điểm 2
1.2 sơ đồ chân 2
1.3 cấu trúc bên trong vi điều khiển 6
1.4 bộ nhớ ngoài 9
II.ic 595 9
1.5 đặc điểm 9
1.6 sơ đồ chân 9
1.7 nguyên tắc hoat động 10
III transictor a1015 10
3.1 đặc điểm 10
3.2 sơ đồ chân 10
3.3 nguyên tắc hoạt động 10
IV ic 7805 10
4.1 đặc điểm 10
4.2 sơ đồ chân 10
4.3 nguyên tắc hoạt động 10
V thạch anh 11
VI tụ 11
VII trở 11
VIII led 11
IX trở kéo 11
X nguồn (sạc điện thoại) 11
Trang 3
I.Tìm hiểu về IC89S51
AT89S51 là một vi điều khiển của hãng Atmel, là phiên bản khác của 8051 có 4KB ROM trên chíp là bộ nhớ Flash AT89S51 thích hợp cho các ứng dụng nhanh vì có bộ nhớ Flash có thể xóa được trong vài giây
AT89S51 có chế độ nạp nối tiếp với mạch nạp đơn giản có khả năng thao tác ngay trên
bo mạch mà không cần tháo chíp vi điều khiển sang mạch khác để nạp chương trình
1 IC AT89S51 có các đặc điểm:
- Bộ nhớ chương trình bên trong: 4KB (ROM)
- Bộ nhớ dữ liệu bên trong: 128byte (RAM)
- Bộ nhớ chương trình bên ngoài: 64KB (ROM)
- Bộ nhớ dữ liệu bên ngoài: 64KB (RAM)
- 4 port xuất nhập( I/O port)
- Giao tiếp nối tiếp
- 2 bộ định thời 16 bit
- Bộ xử lý bit( thao tác trên các bít riêng lẽ)
- 210 vị trí nhớ được định địa chỉ bit
2.Khảo sát sơ đồ chân
Hình dạng thực tế và sơ đồ chân
AT 89S51 có nhiều kiểu đóng vỏ khác nhau, chẳng hạn như hai hàng chân DIP
(Dual In-Line Pakage) dạng vỏ dẹt vuông QFP (Quad Flat Pakage) và dạng chíp không
có chân đỡ LLC (Leadless Chip Carrier) đều có 40 chân có các chức năng khác nhau như xuất nhập dữ liêu, định địa chỉ Tuy nhiên, ở đây em chi trình bày về loại hai hàng chân DIP như hình trên
Trang 4Sơ đồ khối:
VCC: chân cung cấp điện áp
GND: chân nối đất
2.1 Port 0
Port 0 (P0.0- P0.7) có số chân từ 32-39 Port 0 là port xuất nhập dữ liệu 8bit hai
chiều, khi đóng vai trò là port xuất mỗi chân có thể nhận dòng của 8 ngõ vào TTL Các chân của Port 0 được ghi mức logic 1 thì chúng có thể sư dụng như là trở kháng cao của ngõ vào
Port 0 có thể làm bus địa chỉ byte thấp/bus dữ liệu đa hợp khi truy xuất bộ nhớ chương trình và bộ nhớ dữ liệu bên ngoài Trong chế độ này Port0 có các điện trở kéo lên bên trong
Port 0 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 sử dụng khi kiểm tra chương trình
2.2 Port 1
Port 1 (P1.0-P1.7) có số chân từ 1-8
Port 1 là port xuất nhập 8 bit hai chiều có sử dụng điện trở kéo lên bên trong Port 1 có các bộ đệm xuất có thể nhận/cấp dòng cho 4 ngõ vào TTL Khi các chân của Port 1 được
Trang 5ghi mức logic 1 các chân này được kéo lên mức cao và có thể sử dụng như những ngõ vào Trong các ngõ vào, các chân của Port 1 được kéo xuống mức thấp với dòng cấp (Iil)
vì có điện trở kéo lên bên trong
Port 1 đóng vai trò ngõ vào địa chỉ byte thấp khi lập trình Flash và kiểm tra chương trình P1.5-MOSI; P1.6-MISO; P1.7-SCK
2.3 Port 2
Port 2 (P2.0-P2.7) có số chân từ 21-28
Port 2 là port xuất nhập 8bit hai chiều có sử dụng điện trở kéo lên bên trong Port 2 có các bộ đệm xuất có thể nhận/cấp dòng cho 4 ngõ vào TTL Khi các chân của Port 2 được ghi mức logic 1 các chân này được kéo lên mức cao và có thể sử dụng như những ngõ vào Trong các ngõ vào, các chân của Port 2 được kéo xuống mức thấp với dòng cấp (Iil)
vì có điện trở kéo lên bên trong
Port 2 xuất ra các địa chỉ byte cao trong thời gian nạp từ bộ nhớ chương trình bên ngoài
và trong thời gian truy xuất bộ nhớ dữ liệu bên ngoài sử dụng 16bit địa chỉ (MOVX@ DPTR) Trong ứng dụng này port 2 sử dụng các điện trở kéo lên bên trong khi xuất ra bit1 Trong khi truy xuất đến bộ nhớ dữ liệu bên ngoài nó sử dụng 8bit địa chỉ (MOVX@ Ri), Port 2 xuất ra nội dung của thanh ghi có chức năng đặc biệt P2
Port 2 đóng vai trò ngõ vào địa chỉ bit cao và một vài tín hiệu điều khiển khi lập trình Flash và kiểm tra chương trình
2.4 Port 3
Port 3 (P3.0-P3.7) có số chân từ 10-17
Port 3 là port xuất nhập 8bit hai chiều có sử dụng điện trở kéo lên bên trong Port 3 có các bộ đệm xuất có thể nhận/cấp dòng cho 4 ngõ vào TTL Khi các chân của Port 3 được ghi mức logic 1 các chân này được kéo lên mức cao và có thể sử dụng như những ngõ vào Trong các ngõ vào, các chân của Port 3 được kéo xuống mức thấp với dòng cấp (Iil)
vì có điện trở kéo lên bên trong
Port 3 đóng vai trò là ngõ vào của các tín hiệu điều khiển khi lập trình Flash và kiểm tra chương trình
Chức năng các chân của Port 3:
Trang 62.5 PSEN
PSEN( Program Store Enable) là chân cho phép truy xuất bộ nhớ chương trình ngoài,
là tín hiệu xuất tích cực mức thấp Chân số 29
PSEN\=0: trong thời gian CPU tìm- nạp lệnh từ ROM ngoài
PSEN\=1: khi CPU sử dụng ROM trong
Khi sử dụng bộ nhớ chương trình bên ngoài chân PSEN\ thường nối với chân OE\ của ROM ngoài để cho phép đọc mã lệnh từ ROM ngoài
2.6 ALE
ALE (Address Latch Enable) chân 30, là xung của ngõ ra cho phép chốt địa chỉ để thực hiện giải đa hợp cho bus địa chỉ byte thấp và bus dữ liệu đa hợp(AD0-AD7), là tín hiệu xuất tích cực mức cao
ALE=0: trong thời gian AD0-AD7 đóng vai trò là bus D0- D7
ALE=1: trong thời gian AD0-AD7 đóng vai trò là bus A0- A7
Khi lập trình ROM trong chip thì chân này đóng vai trò là ngõ vào của xung lập trình (PROG\) Khi hoạt động bình thường tần số xung tại chân ALE bằng 1/6 tần số dao động trên chip (tần số thạch anh) và có thể sử dụng cho việc định thời từ bên ngoài hoặc dùng làm xung clock cho các mạch khác Khi lệnh lấy dữ liệu từ RAM ngoài(MOVX) được thực hiện thì một xung ALE bị bỏ qua
Hoạt động của ALE sẽ bị vô hiệu hóa bởi việc set bit 0 của thanh ghi có chức năng đặc biệt có địa chỉ byte là 8EH Khi set bit này ALE chỉ tích cực trong thời gian thực thi lệnh MOVC hoặc MOVX, ngược lại chân này sẽ được kéo lên mức cao Việc set bit không cho phép ALE hoạt động sẽ không có tác dụng nếu bộ vi điều khiển đang ở chế độ chạy chương trình bên ngoài
2.7 EA\
EA( External Access) chân 31, cho phép truy xuất bộ nhớ chương trình (ROM) ngoài,
là một tín hiệu nhập tích cực mức thấp
EA\=0: chip sử dụng chương trình của ROM ngoài
EA\=1: chip sử dụng chương trình của ROM trong
Khi lập trình cho ROM trong chip thì chân EA đóng vai trò là ngõ vào của điện áp lập trình
Lưu ý: nếu sử dụng chương trình của ROM trong thì chân EA\ phải được nối lên Vcc hoặc sử dụng chương trình của ROM ngoài thì phải nối xuống GND, không bao giờ được
bỏ trống chân này
2.8 XTAL1, XTAL2
XTAL(Crystal): tinh thể thạch anh, dùng để nối với thạch anh hoặc mạch dao động tạo xung clock cho chip hoạt động
XTAL1: chân 18 ngõ vào mạch tạo xung clock trong chip
XTAL2: chân 19 ngõ ra mạch tạo xung clock trong chip
Trang 7Kết nối thạch anh, với
Thạch anh 2MHz đến 33MHz
2.9 RST
RST(Reset) chân số 9, là tín hiệu cho phép lặp lại trạng thái ban đầu cho hệ thống, là tín hiệu nhập tích cực mức cao
RST=0: chip AT89S51 hoạt động bình thường
RST=1: chip AT89S51 được thiết lập lại trạng thái ban đầu
2.10 Vcc,GND
Vcc,GND: cung cấp nguồn điện cho AT89S51 hoạt động, chân số 40 và 20
3 Cấu trúc bên trong của vi điều khiển AT89S51.
3.1 Bộ nhớ chương trình(ROM)
Bộ nhớ ROM dùng để lưu trữ chương trình điều khiển cho chip 89S51 hoạt động do
Trang 8người lập trình nạp vào vi điều khiển Bộ nhớ bên trong vi điều khiển 89S51 có 4KB là
bộ nhớ Flash ROM cho phép xóa bộ nhớ ROM bằng điện và nạp vào chương trình mới cũng bằng điện, có thể nạp xóa nhiều lần Bộ nhớ ROM được định địa chỉ bắt đầu từ 0000H Ngoài ra 89S51 còn có khả năng mở rộng bộ nhớ ROM với việc giao tiếp với bộ nhớ ROM bên ngoài lên đến 64KB(địa chỉ từ 0000H-FFFFH)
3.2 Bộ nhớ dữ liệu(RAM)
Bộ nhớ RAM dùng để lưu trữ dữ liệu, các kết quả trung gian và kết quả cuối cùng của phép toán, xử lý thông tin AT89S51 có 128byte RAM trong, địa chỉ truy xuất 00H-7FH
và được chia ra thành các vùng: các dãy thanh ghi, RAM đa chức năng, RAM định địa chỉ bit
• Vùng các dãy thanh ghi: có địa chỉ bit 00H-1FH gồm 4 dãy và 8 thanh ghi, tại mỗi thời điểm chỉ có một dãy thanh ghi được truy xuất với các thanh ghi từ R0-R7 để thay đổi việc truy xuất các thanh ghi trên các dãy thanh ghi người ta phải thay đổi các bit chọn dãy trong thanh ghi trạng thái PSW bằng các câu lệnh trong chương trình Các dãy thanh ghi cho phép truy xuất dữ liệu nhanh, lệnh truy xuất đơn giản và ngăn gọn nên người viết chương trình thường sử dụng các thanh ghi này
• Vùng RAM định địa chỉ bit: có 210 ô nhớ bit được định địa chỉ, cho phép xử lý từng bit
dữ liệu riêng lẻ mà không ảnh hưởng đến các bit khác trong cả byte Trong đó có 128 bit nằm trong các ô nhớ có địa chỉ byte 20H-2FH, các bit nhớ còn lại nằm trong nhóm thanh ghi có chức năng đặc biệt
• Vùng RAM đa chức năng: có địa chỉ byte 30H-7FH dùng để lưu trữ dữ liệu và được truy xuất theo từng byte
• Các thanh ghi có chức năng đặc biệt: Các thanh ghi này được định địa chỉ byte, một số được định thêm địa chỉ bit, có địa chỉ của các thanh ghi này nằm trong khoảng 80H đến FFH Các thanh ghi đặc biệt này này được dùng để xác lập trạng thái hoạt động cần thiết cho Vi điều khiển
3.3 Các thanh ghi có chức năng đặc biệt.
- Thanh ghi A: Thanh ghi A là thanh ghi quan trọng, dùng để lưu trữ các toán hạng và kết quả của phép tính Thanh ghi A có độ dài 8 bits, có địa chỉ là E0H
- Thanh ghi B: Thanh ghi B ở địa chỉ F0H, được dùng với thanh ghi A để thực hiện các phép toán số học Khi thực hiện lệnh chia với thanh ghi A, số dư được lưu trữ ở thanh ghi
B Ngoài ra thanh ghi B còn được dùng như một thanh ghi đệm có nhiều chức năng
- Thanh ghi trạng thái chương trình PSW: địa chỉ byte D0H, địa chỉ bit D0H-D7H, cho biết trạng thái làm việc của CPU, mỗi bit của PSW có một chức năng
Chức năng từng bit trong thanh trạng thái PSW:
* Cờ nhớ CY: địa chỉ bit D7H, cờ nhớ báo có nhớ/mượn tại bit 7 trong các lệnh toán học CY=0 nếu không có nhớ từ bit 7 hoặc không có mượn cho bit 7
CY=1 nếu có nhớ từ bit 7 hoặc có mượn cho bit 7
* Cờ nhớ phụ AC: địa chỉ bit D6H, cờ nhớ báo có nhớ/mượn tại bit 3 trong các lệnh toán học AC=0 nếu không có nhớ từ bit 3 hoặc không có mượn cho bit 3
AC=1 nếu có nhớ từ bit 3 hoặc có mượn cho bit 3
* Cờ F0 hay cờ nhớ Z: địa chỉ bit D5H
F0=0 khi thanh ghi A có giá trị khác 0
F0=1 khi thanh ghi A có giá trị là 0
*Các bit chọn dãy thanh ghi: địa chỉ bit D3H và D4H, hai thanh ghi RS0 và RS1 dùng để xác lập dãy thanh ghi được sử dụng
Trang 9*Cờ tràn OV: địa chỉ bit D2H, được sử dụng trong các phép toán cộng có dấu, với các phép toán cộng không dấu cờ tràn OV được bỏ qua, không cần quan tâm đến OV Nếu: Phép cộng hai số có dấu lớn hơn +127 thì OV=1
Hoặc phép trừ hai số có dấu nhỏ hơn -127 thì OV=1 Các trường hợp còn lại OV=0
*Cờ chẵn lẻ: địa chỉ bit D0H, cờ chẵn lẻ P tự động được đặt bằng 1 hoặc 0 sao cho tổng
số bit mang giá trị 1 trên thanh ghi A với cờ P luôn là một số chẵn Cờ chẵn lẻ được dùng
để xử lí dữ liệu trước khi truyền đi theo kiểu nối tiếp hoặc xử lí dữ liệu trước khi nhận vào theo kiểu nối tiếp( hạn chế lỗi phát sinh trong quá trình truyền)
- Thanh ghi SP( Stack Pointer) Con trỏ ngăn xếp SP là một thanh ghi có địa chỉ 81H, giá trị của nó được tăng,giảm tự động khi thực hiện các lệnh PUSH, CALL,POP con trỏ SP dùng quản lí và xử lí các nhóm dữ liệu liên tục.Giá trị mặc định của SP là 07H
- Thanh ghi DPTR: Con trỏ dữ liệu DPTR là thanh ghi 16 bit duy nhất của Vi điều khiển được tạo thành từ hai thanh ghi DPL (byte thấp-địa chỉ byte 82H) và DPH (byte cao-địa chỉ byte 83H) Hai thanh ghi DPL và DPT có thể truy xuất độc lập bởi người sử dụng Con trỏ dữ liệu DPTR thường được sử dụng khi truy xuất dữ liệu từ bộ nhớ ROM hoặc
bộ nhớ từ bên ngoài
- Thanh ghi port xuất nhập: địa chỉ byte 80H(P0), 90H(P1), A0H(P2), B0H(P3) dùng để chứa dữ liệu hiện tại trên các port xuất nhập
- Thanh ghi SBUF(Serial Buffer) bộ đệm port nối tiếp địa chỉ byte 99H Sử dụng để chứa
dữ liệu cần truyền ra bên ngoài hay dữ liệu nhận được từ bên ngoài vào dưới dạng nối tiếp
- Thanh ghi SCON(Serial Control) địa chỉ byte 98H, báo trạng thái và điều khiển quá trình hoạt động của port nối tiếp
- Thanh ghi TIMER 0:bộ định thời 0, địa chỉ byte 8CH(TH0) và 8AH(TL0) là thanh ghi
bộ định thời 16bit(TH0+TL0) chứa giá trị hiện tại của bộ định thời 0
-Thanh ghi TIMER 1: địa chỉ byte 8DH(TH1) và 8BH(TL1) là thanh ghi bộ định thời 16bit(TH1+TL1) chứa giá trị hiện tại của bộ định thời1
- Thanh ghi TMOD (Timer Mode) địa chỉ byte 89H quy định chế độ hoạt động cho cả hai
bộ định thời T0 và T1
- Thanh ghi TCON (timer control) địa chỉ 88H, dùng để báo trạng thái và điều khiển quá trình hoạt động của hai bộ định thời T0 và T1
- Thanh ghi IE (Interrupt Enable) địa chỉ byte A8H, địa chỉ bit A8H-AFH, dùng để cho phép hoặc không cho phép các ngắt hoạt động (từng ngắt riêng rẽ hoặc tất cả các ngắt)
- Thanh ghi IP (Interrupt Priority) địa chỉ byte B8H, địa chỉ bit B8H-BCH, dùng thiết lập mức ưu tiên cho các ngắt ( ưu tiên thấp hoặc ưu tiên cao)
- Thanh ghi PCON (Power control) địa chỉ byte 87H, để điều khiển tốc độ baud của port nối tiếp, điều khiển chế độ nguồn giảm và chế độ nghỉ của chip Trong đó:
+ Bit SMOD: Serial Mode cho phép tăng gấp đôi tốc độ truyền dữ liệu nối tiếp khi SMOD=1
+ Bit GF1,GF0: General Function
Trang 10+ Bit PD: Power Down dùng để quy định chế độ nguồn giảm.
+ Bit IDL: Idle dùng để quy định chế độ nghỉ
• Chế độ nguồn giảm(PD=1) mạch dao động trên chip ngưng hoạt động mọi chức năng ngưng hoạt động nhưng nội dung của RAM trên chip vẫn được duy trì, các chân port duy trì mức logic của chúng ALE=0; PSEN\=0; Vcc=2V Để thoát khỏi chế độ này bằng cách Reset hệ thống Lưu ý hệ thống phải phục hồi Vcc về trạng thái bình thường trước khi Reset hệ thống
• Chế độ nghỉ (IDL=1) mạch dao động trên chip ngưng hoạt động; các mức ngắt, định thời và port nối tiếp còn hoạt động Nội dung của RAM trên chip được duy trì, các chân port duy trì mức logic của chúng ALE=1; PSEN\=1; Vcc=5V Để thoát khỏi chế độ này bằng cách Reset hoặc bằng cách cho phép ngắt
1.4 Bộ nhớ ngoài
AT89S51 có khả năng mở rộng bộ nhớ ngoài chip:
- Bộ nhớ chương trình lên đến 64KB
- Bộ nhớ dữ liệu lên đến 64 KB
Khi AT89S51 sử dụng bộ nhớ ngoài:
- Port 0 có vai trò là bus địa chỉ byte thấp và bus dữ liệu đa hợp(AD0-AD7)
- Port 2 có vai trò là bus địa chỉ byte cao (A8-A15)
- Port 3 có vai trò là các tín hiệu điều khiển (WR\, RD\)
II.ic 74595
2.1 Đặc điểm
Là IC ghi dịch dữ liệu
2.2 Sơ đồ chân
2.3 Nguyên lý hoạt động
74595 có các chân và hoạt tác dụng của chúng như sau:
- 8 chân xuất dữ liệu, chân reset (10), cho phép chip (13): Mấy chân này chắc ko phải nói j rồi.
- Một chân nhận dữ liệu vào nối tiếp (14): Bạn muốn dịch bit 0 hay 1 thì tác động vào đây.
- Một chân xung clock (11): Cứ mỗi xung tác động vào chân này thì bit logic tại chân nhận dữ liệu (14) sẽ đc dịch vào một lần.
- Một chân chốt dữ liệu (12): Mỗi lần có xung tác động vào chân này thì dữ liệu đc xuất ra một lần
- Còn chân 9: Thì cứ có 8 xung tác động vào chân clock nó lại xuất ra một xung.