Đơn vị xử lý trung tâm:
CPU đóng vai trò chủ đạo trong hệ vi xử lý, nó quản lý tất cả các hoạt động của hệ và thực hiện tất cả các thao tác trên dữ liệu.
CPU là một vi mạch điện tử có độ tích hợp ca. Khi hoạt động CPU đọc mã lệnh được ghi dưới dạng cácbit 0 và bit 1 từ bộ nhớ, sau đó nó sẽ thực hiện giải mã các lệnh này thành các dãy xung điều khiển tương ứng với các thao tác trong lệnh để điều khiển cáckhối khác thực hiện từng bước các thao tác đóvà từ đó tạo ra các xung điều khiển cho toàn hệ.
IR/IP (Instruction Register/Intruction Pointer): thanh ghi lệnh/con trỏ lệnh.
PC (Program Counter): bộ đếm chươngtrình.
Instruction decode and control unit: đơn vị giải mã lệnh và điều khiển.
ALU (arithmetic and Logic Unit): đơn vị số học và logic.
Registers: Các thanh ghi.
Khi hoạt động CPU sẽ thực hiện liên tục 2 thao tác: tìm nạp lệnh và giãi mã - thực hiện lệnh.
Thao tác tìm nạp lệnh:
Nội dung của thanh ghi PC đượcCPU đưa lên bus địa chỉ.
Tín hiệu điều khiển đọc (Read) chuyển sang trạng thái tích cực.
Mã lệnh (Opcode) từ bộ nhớ được đưa lên bus dữ liệu.
Nội dung của thanh ghi PC tăng lên một đơn vị để chuẩn bị tìm nạp lệnh kế tiếp từ bộ nhớ.
Thao tác giải mã - thực hiện lệnh:
Mã lệnh từ thanh ghi IR được đưa vào đơn vị giải mã lệnh và điều khiển.
Đơn vị giải mã lệnh và điều khiển sẽ thực hiện giải mã opcode và tạo ra các tín hiệu để điều khhiển việc xuất nhập dữ liệu giữ ALU và cácthanh ghi.
Căn cứ trên các tín hiệu điều khiển này, ALU thực hịên các thao tác đã được xác định.
Một chuỗi các lệnh (Opcode) kết hợp lại với nhau để thực hiện một công việc có nghĩa được gọi là chương trình (Program) hay phần mềm.
54 trang |
Chia sẻ: lethao | Lượt xem: 4958 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đồ án Thiết kế mạch đếm sản phẩm dùng LCD, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
của chip.
I/O ports (In/Out ports): Các port xuất/nhập _ điều khiển việc xuất nhập dữ liệu dưới dạng song song giữa trong và ngoài chip thông qua các port P0, P1, P2, P3.
Serial port: Port nối tiếp _ điều khiển việc xuất nhập dữ liệu dưới dạng nối tiếp giữa trong và ngoài chip thông qua các chân TxD, RxD.
Timer 0, Timer 1: Bộ định thời 0, 1 _ dùng để định thời gian hoặc đếm sự kiện (đếm xung) thông qua các chân T0, T1.
Bus control: Điều khiển bus _ điều khiển hoạt động của hệ thống bus và việc di chuyển thông tin trên hệ thống bus.
Bus system: Hệ thống bus _ liên kết các khối trong chip lại với nhau.
1.1.4.2.Chức năng các chân của chip 8051
Chip 8051 :gồm 40 chân
2 chân nguồn cấp điện (VCC, VSS)
32 chân xuất/nhập
6 chân chức năng (EA, ALE, PSEN, XTAL1, XTAL2, RST)
Port xuất/nhập 8 bit (P0.0 – P0.7)
Port xuất/nhập 8 bit (P1.0 – P1.7)
Port xuất/nhập 8 bit (P2.0 – P2.7)
Port xuất/nhập 8 bit (P3.0 – P3.7)
Sơ đồ chân của chip 89C51
Port 0:
- Port 0 (P0.0 – P0.7) có số chân từ 32 – 39.
- Port 0 có hai chức năng:
• Port xuất nhập dữ liệu (P0.0 - P0.7) không sử dụng bộ nhớ ngoài.
• Bus địa chỉ byte thấp và bus dữ liệu đa hợp (AD0 – AD7) có sử dụng bộ nhớ ngoài.
+ Lưu ý: Khi Port 0 đóng vai trò là port xuất nhập dữ liệu thì phải sử dụng các điện trở kéo lên bên ngoài.
- Khi lập trình cho ROM trong chip thì Port 0 đóng vai trò là ngõ vào của dữ liệu (D0 -> D7)
Port 1:
- Port 1 (P1.0 – P1.7) có số chân từ 1 – 8.
- Port 1 có một chức năng:
• Port xuất nhập dữ liệu (P1.0 – P1.7) _ sử dụng hoặc không sử dụng bộ nhớ ngoài.
- Khi lập trình cho ROM trong chip thì Port 1 đóng vai trò là ngõ vào của địa chỉ byte thấp (A0 – A7)
Port 2:
- Port 2 (P2.0 – P2.7) có số chân từ 21 – 28.
- Port 2 có hai chức năng:
• Port xuất nhập dữ liệu (P2.0 – P2.7) _ không sử dụng bộ nhớ ngoài.
• Bus địa chỉ byte cao (A8 – A15) _ có sử dụng bộ nhớ ngoài.
- Khi lập trình cho ROM trong chip thì Port 2 đóng vai trò là ngõ vào của địa chỉ byte cao (A8 – A11) và các tín hiệu điều khiển
Port 3:
- Port 3 (P3.0 – P3.7) có số chân từ 10 – 17.
- Port 0 có hai chức năng:
• Port xuất nhập dữ liệu (P3.0 – P3.7) _ không sử dụng bộ nhớ ngoài hoặc các chức năng đặc biệt.
• Các tín hiệu điều khiển _ có sử dụng bộ nhớ ngoài hoặc các chức năng đặc biệt.
- Khi lập trình cho ROM trong chip thì Port 3 đóng vai trò là ngõ vào của các tín hiệu điều khiển
Chức năng của các chân Port3:
Bit
Tên
Địa chỉ bit
Chức năng
P3.0
RxD
B0H
Chân nhận dữ liệu của port nối tiếp
P3.1
TxD
B1H
Chân phát dữ liệu của port nối tiếp
P3.2
INT0\
B2H
Ngõ vào ngắt ngoài 0
P3.3
INT1\
B3H
Ngõ vào ngắt ngoài 1
P3.4
T0
B4H
Ngõ vào của bộ định thời đếm 0
P3.5
T1
B5H
Ngõ vào của bộ định thời đếm 1
P3.6
WR\
B6H
Điều khiển ghi bộ nhớ dữ liệu Ram ngoài
P3.7
RD\
B7H
Điều khiển đọc bộ nhớ dữ liệu Ram ngoài
Chân PSEN\:
- PSEN (Program Store Enable): cho phép bộ nhớ chương trình, chân số 29.
- Chức năng:
• Là tín hiệu cho phép truy xuất (đọc) bộ nhớ chương trình (ROM) ngoài.
• Là tín hiệu xuất, tích cực mức thấp.
PSEN\ = 0 _ trong thời gian CPU tìm-nạp lệnh từ ROM ngoài.
PSEN\ = 1 _ CPU sử dụng ROM trong (không sử dụng ROM ngoài).
- Khi sử dụng bộ nhớ chương trình bên ngoài, chân PSEN\ thường được nối với chân OE\ của ROM ngoài để cho phép CPU đọc mã lệnh từ ROM ngoài.
Chân ALE:
- ALE (Address Latch Enable): cho phép chốt địa chỉ, chân số 30.
- Chức năng:
• Là tín hiệu cho phép chốt địa chỉ để thực hiện việc 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 bus AD0 – AD7 đóng vai trò là bus D0 – D7.
ALE = 1 _ trong thời gian bus AD0 – AD7 đóng vai trò là bus A0 – A7.
- Khi lập trình cho ROM trong chip thì chân ALE đóng vai trò là ngõ vào của xung lập trình (PGM\)
Khi lệnh lấy dữ liệu từ RAM ngoài (MOVX) được thực hiện thì 1 xung ALE bị bỏ qua
Chân EA\:
- EA (External Access): truy xuất ngoài, chân số 31.
- Chức năng:
• Là tín hiệu cho phép truy xuất (sử dụng) bộ nhớ chương trình (ROM) ngoài.
• Là tín hiệu nhập, tích cực mức thấp.
EA\ = 0 _ Chip 8051 sử dụng chương trình của ROM ngoài.
EA\ = 1 _ Chip 8051 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 (Vpp = 12V/89xx, 21V/80xx,87xx)
+ Lưu ý: Chân EA\ luôn luôn phải được nối lên Vcc (sử dụng chương trình của ROM trong) hoặc xuống Vss (sử dụng chương trình của ROM ngoài).
Chân XTAL1, XTAL2:
- XTAL (Crystal): tinh thể thạch anh, chân số 18-19.
- Chức năng:
• Dùng để nối với thạch anh hoặc mạch dao động tạo xung clock bên ngoài, cung cấp tín hiệu xung clock cho chip hoạt động.
• XTAL1 _ ngõ vào mạch tạo xung clock trong chip.
• XTAL2 _ ngõ ra mạch tạo xung clock trong chip.
Chân RST:
- RST (Reset): thiết lập lại, chân số 9.
- Chức năng:
• Là tín hiệu cho phép thiết lặp (đặt) 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 8051 hoạt động bình thường.
RST = 1 _ Chip 8051 được thiết lặp lại trạng thái ban đầu.
Chân Vcc, GND:
- Vcc, GND: nguồn cấp điện, chân số 40-20.
- Chức năng:
• Cung cấp nguồn điện cho chip 89C51 hoạt động.
• Vcc = +5V ± 10%.
• GND = 0V.
Tổ chức bộ nhớ
- Bộ vi xử lý có không gian bộ nhớ chung cho dữ liệu vàchương trình
- Chương trình và dữ liệu nằm chung trên RAM.
- Bộ vi điều khiển có không gian bộ nhớ riêng cho dữ liệu vàchương trình.
- Chương trình và dữ liệu nằm riêng trên ROM và RAM.
Tổ chức bộ nhớ của chip 8051:
Không gian bộ nhớ của chip 8051
Bộ nhớ dữ liệu trên chip 8051
1.1.5.Hoạt động của bộ định thời (Timer):
Bộ định thời (Timer):
Là các chuỗi FF (mỗi FF là 1 mạch chia 2)
Ngõ vào:nhận tín hiệu xung clock từ nguồn xung.
Ngõ ra: truyền tín hiệu xung clock cho FF báo tràn(cờ tràn)
f: tần số xung ngõ vào.
f/2n: tần số xung ngõ ra.
N:số lượng FF trong bộ nhớ định thời.
Tần số: tần số xung ngõ ra bằng tần số xung ngõ vào chia cho 2n.
Giá trị: giá trị nhị phân trong các FF của bộ định thời là số đếm của các xung clock tại ngõ vào từ khi bộ định thời bắt đầu đếm.
Tràn: xảy ra hiện tượng tràn (cờ tràn = 1) khi số đếm chuyển từ giá trị lớn nhất xuống giá trị nhỏ nhất của bộ định thời.
Chip 8051 có 2 bộ định thời
Dùng để định một khoảng thời gian.
Dùng để đếm sự kiện (đếm số xung).
Dùng để tạo tốc dộ baud cho port nối tiếp.
Ứng dụng định thời gian (TIMER): bộ định thời được lập trình sao cho sẽ tràn sau một khoảng thời gian đã qui định và khi đó cờ tràn của bộ định thời sẽ bằng1.
Ứng dụng đếm sự kiện (COUNTER): để xác định số lần xuất hiện của một kích thích từ bên ngoài tới 1 chân của chip 8051 (kích thích chuyển trạng thái từ 1 xuống 0).
1.1.5.1.Thanh ghi chế độ định thời (TMOD):
Thanh ghi TMOD (Timer Mode Register) chứa các bit dùng để thiết lập chế độ hoạt động cho bộ định thời 0 và bộ định thời 1.
Thanh ghi TMOD được nạp giá trị một lần tại thời điểm bắt đầu của chương trình để qui định chế độ hoạt động của các bộ định thời.
• Cấu trúc thanh ghi TMOD:
Các chế độ hoạt động của bộ định thời:
1.1.5.2.Thanh ghi điều khiển định thời (TCON):
Thanh ghi TCON (Timer Control Register) chứa các bit dùng để điều khiển và báo trạng thái của bộ định thời 0 và bộ định thời 1.
Cấu trúc thanh ghi TCON:
1.1.5.3.Các chế độ định thời và cớ tràn:
1.1.5.3.1.Chế độ định thời 13 bit (Chế độ 0):
Chế độ 0 (Mode 0):
Chế độ định thời 13 bit.
Sử dụng 8 bit của thanh ghi THx và 5 bit thấp của thanh ghi TLx để tạo ra bộ định thời.
Số đếm: 0000H ->1FFFH nghĩa là từ 0 ->8191. Thời gian định thời: từ 0->(213–1)TTimer nghĩa là từ 0 ->8191TTimer.
Thanh ghi THx và TLx chứa giá trị của bộ định thời.
Khi có xung clock, bộ định thời bắt đầu đếm lên từ giá trị chứa trong THx/TLx.
Xảy ra tràn (cờ tràn TFx=1) khi số đếm chuyển từ 1FFFH sang 0000H và việc đếm sẽ tiếp tục đếm lên từ giá trị 0000H.
1.1.5.3.2Chế độ định thời 16 bit (Chế độ 1):
Chế độ 1 (Mode 1):
Chế độ định thời 16 bit.
Sử dụng thanh ghi THx và TLx để tạo ra bộ định thời.
Số đếm: 0000H-> FFFFH nghĩa là từ 0-> 65535. Thời gian định thời: từ 0 ->(216–1)TTimer nghĩa là từ 0 ->65535TTimer.
Thanh ghi THx và TLx chứa giá trị của bộ định thời.
Khi có xung clock, bộ định thời bắt đầu đếm lên từ giá trị chứa trong THx/TLx.
Xảy ra tràn (cờ tràn TFx=1) khi số đếm chuyển từ FFFFH sang 0000H và việc đếm sẽ tiếp tục đếm lên từ giá trị 0000H.
1.1.5.3.3.Chế độ định thời 8 bit tự nạp lại (Chế độ 2):
Chế độ 2 (Mode 2):
Chế độ định thời 8 bit tự nạp lại.
Sử dụng thanh ghi TLx để tạo ra bộ định thời.
Số đếm: 00H _ FFH nghĩa là từ 0 _ 255. Thời gian định thời: tư 0-> (28–1)TTimer nghĩa là từ 0 _ 255TTimer.
Thanh ghi TLx chứa giá trị của bộ định thời và thanh ghi THx chứa giá trị sẽ được dùng để nạp lại cho bộ định thời.
Khi có xung clock, bộ định thời bắt đầu đếm lên từ giá trị chứa trong TLx.
Xảy ra tràn (cờ tràn TFx=1) khi số đếm chuyển từ FFH sang 00H và việc đếm sẽ tiếp tục đếm lên từ giá trị chứa trong thanh ghi THx.
Chế độ định thời chia xẻ (Chế độ 3):
Chế độ 3 (Mode 3) là:
• Chế độ định thời chia xẻ.
• Bộ định thời 0 được chia ra:
Bộ định thời 8 bit thứ I:
Sử dụng thanh ghi TL0 để tạo ra bộ định thời.
Số đếm: 00H _ FFH nghĩa là từ 0 _ 255. Thời gian định thời: từ 0 _ (28–)TTimer nghĩa là từ 0 _ 255TTimer .
Thanh ghi TL0 chứa giá trị của bộ định thời.
Khi có xung clock, bộ định thời bắt đầu đếm lên từ giá trị chứa trong TL0.
Xảy ra tràn (cờ tràn TF0=1) khi số đếm chuyển từ FFH sang 00H và việc đếm sẽ tiếp tục đếm lên từ giá trị 00H.
Bộ định thời 8 bit thứ II:
Sử dụng thanh ghi TH0 để tạo ra bộ định thời.
Số đếm: 00H _ FFH nghĩa là từ 0 _ 255. Thời gian định thời: từ 0 _ (28–1)TTimer nghĩa là từ 0 _ 255TTimer.
Thanh ghi TH0 chứa giá trị của bộ định thời.
Khi có xung clock, bộ định thời bắt đầu đếm lên từ giá trị chứa trong TH0.
Xảy ra tràn (cờ tràn TF1=1) khi số đếm chuyển từ FFH sang 00H và việc đếm sẽ tiếp tục đếm lên từ giá trị 00H.
Bộ định thời 1:
Là bộ định thời 16 bit.
Không hoạt động ở chế độ 3 nhưng có thể hoạt động các chế độ khác (chế độ 0, 1, 2).
Không có cờ báo tràn như các bộ định thời khác.
1.2.HOẠT ĐỘNG NGẮT (INTERRUPT)
1.2.1.Khái niệm:
Ngắt (Interrupt) là việc xảy ra một điều kiện (một sự kiện) làm cho chương trình đang thực thi (chương trình chính) bị tạm dừng để quay sang thực thi một chương trình khác (chương trình xử lý ngắt) rồi sau đó quay về để thực thi tiếp chương trình đang bị tạm dừng.
Các ngắt đóng vai trò quan trọng trong việc thiết kế và hiện thực các ứng dụng bộ vi điều khiển. Các ngắt cho phép hệ thống đáp ứng một sự kiện theo cách không đồng bộ và xử lý sự kiện trong khi một chương trình khác đang thực thi.Một hệ thống được điều khiển bởi ngắt cho ta ảo tưởng nhiều công việc đang được vi xử lý thực hiện đồng thời.
CPU dĩ nhiên không thể thực thi nhiều hơn một lệnh ở một thời điểm nhưng CPU có thể tạm ngưng việc thực thi một chương trình để thực thi một chương trình khác rồi sau đó quay về thực thi tiếp tục chương trình đang bị tạm ngưng, điều này thì tương tự như việc CPU rời khỏi chương trình gọi (bằng cách lệnh CALL) để thực thi chương trình con bị gọi để rồi sau đó quay trở về chương trình gọi.
Chương trình xử lý ngắt (tức là chương trình mà CPU phải thực hiện khi có một ngắt xảy đến) được gọi là trình phục vụ ngắt ISR (Interrupt Service Rountine) hay trình quản lý ngắt (Interrupt Handler). ISR được thực thi nhằm đáp ứng một ngắt và trong trường hợp tổng quát thực hiện việc xuất nhập đối với một thiết bị. Khi một ngắt xuất hiện, việc thực thi chương trình chính tạm thời bị dừng lại và CPU thực thi việc rẽ nhánh đến trình phục vụ ngắt ISR. CPU sẽ thực thi ISR để thực hiện một công việc và kết thúc việc thực hiện công việc này khi gặp lệnh “quay về trình phục vụ ngắt” (lệnh RETI), sau đó chương trình chính tiếp tục được thực thi tại nơi bị tạm dừng. Ta có thể nói chương trình chính được thực thi ở mức bền (Base level), còn ISR được thực thi ở mức ngắt (Interrupt level).
Biểu diễn việc thực thi chương trình có ngắt và không có ngắt:
1.2.2.Tổ chức ngắt của 8051:
Các nguồn ngắt:
8051 có 5 nguồn ngắt:
Ngắt do tín hiệu ngoài 0
Ngắt do tín hiệu ngoài 1
Ngắt do Timer 0
Ngắt do Timer 1
Ngắt do port nối tiếp
Lưu ý:
Khi ta reset hệ thống thì tất cả các ngắt đều bị cấm hoạt động.
Các nguồn ngắt này được cho phép hoặc cấm hoạt động bằng lệnh do người lập trình thiết lập cho từng ngắt
Việc xử lý các ngắt được thực hiện qua sơ đồ:
Sơ đồ ưu tiên ngắt à có thể thay đổi được và do người lập trình thiết lập.
Sơ đồ chuỗi vòng à cố định, không thay đổi được.
ð Hai sơ đồ này giúp CPU giải quyết các vấn đề liên quan đến ngắt: hai hay nhiều ngắt xảy ra đồng thời, một ngắt xảy ra trong khi một ngắt khác đang được thực thi.
Các cờ ngắt của chip 8051:
Loại ngắt Cờ ngắt Vị trí của bit trong các thanh ghi
Ngắt ngoài 0 à IE0 à TCON.1
Ngắt ngoài 1 à IE1 à TCON.3
Ngắt Timer 1 à TF1 à TCON.7
Ngắt Timer 0 à TF0 à TCON.5
Ngắt port nối tiếpà RI à SCON.0
Ngắt port nối tiếpà TI à SCON.1
Lưu ý:
Một ngắt xảy ra thì cờ ngắt tương ứng sẽ được set bằng 1.
Khi ISR của ngắt được thực thi thì cờ ngắt tương ứng sẽ tự động bị xoá về 0 bằng phần cứng (ngoại trừ cờ ngắt RI và TI phải được xoá về 0 bằng phần mềm).
Đối với ngắt ngoài sẽ có hai cách tác động để tạo ra một tín hiệu ngắt: ngắt ngoài tác động khi có mức thấp và ngắt ngoài tác động khi có cạnh âm tại chân INT0\ hoặc INT1\.
b.Qui định việc chọn loại tác động cho ngắt ngoài:
Việc chọn lựa loại tác động của các ngắt thuộc loại tác động cạnh hay thuộc loại tác động mức thì được lập trình thông qua các bit IT0 và IT1 của thanh ghi TCON.
IT0=0 à Ngắt ngoài 0 được kích khởi bởi việc phát hiện mức thấp tại chân INT0\
IT0=1 à Ngắt ngoài 0 được kích khởi bởi việc phát hiện cạnh âm tại chân INT0\
IT1=0 à Ngắt ngoài 1 được kích khởi bởi việc phát hiện mức thấp tại chân INT0\
IT1=1 à Ngắt ngoài 1 được kích khởi bởi việc phát hiện cạnh âm tại chân INT0\
Lưu ý: Khi tạo tín hiệu ngắt tại chân INT0\ hoặc INT1\ ta cần phải chú ý đến thời gian duy trì tác động cuả tín hiệu ngắt.
Đối với loại ngắt tác động cạnh âm:
8051 fOSC(MHz) : tần số thạch anh
1 INTx Tm (µs): chu kỳ máy
0 x= 0, 1 Tm =
Tm Tm
Đối với loại ngắt tác động mức thấp:
(*): duy trì trạng thái (0) cho đến
8051 khi ISR tương ứng được thực
1 INTx hiện.
0 x= 0, 1 (**): trở về trạng thái (1) trước
khi ISR tương ứng được thực
(*) (**) hiện xong hoặc trước khi có
một ngắt khác được tạo ra.
1.2.3.Thanh ghi cho phép ngắt(IE):
Thanh ghi cho phép ngắt(IE: Interrupt Enable): chứa các bit dung để cho phép hoặc cấm các ngắt hoạt động.
Cấu trúc của thanh ghi IE:
bit
IE: Interrupt Enable Register
AF AE AD AC AB AA A9 A8
EA ES EX0 Địa chỉ bit(HEX)
ET1 ET0 Ký hiệu
EX1 EX0: Enable External Interrupt Cho phép ngắt ngoài 0
ET0: Enable Timer Interrupt Cho phép ngắt Timer 0
EX1: Enable External Interrupt Cho phép ngắt ngoài 1
ET1: Enable Timer Interrupt Cho phép ngắt Timer 1
ES: Enable Serial Interrupt Cho phép ngắt port nối tiếp
EA: Enable All Interrupt Cho phép tất cả các ngắt
Lưu ý: Cho phép khi bit = 1 Cấm khi bit = 0
Hai điều kiện để một ngắt được phép hoạt động là:
Bit EA = 1.
Bit ngắt tương ứng = 1.
1.2.4. Xử lý ngắt và các vectơ ngắt:
1.2.4.1.Qui trình xử lý ngắt:
Các thao tác sẽ xảy ra khi có một ngắt xuất hiện và nó được CPU chấp nhận:
Hoàn tất thực thi lệnh tại thời điểm đó và dừng chương trình chính.
Giá trị của thanh ghi PC được cất vào stack.
Trạng thái của ngắt tại thời điểm đó được lưu giữ lại.
Các ngắt được giữ lại ở mức ngắt.
Địa chỉ của ISR của ngắt tương ứng được nạp vào thanh ghi PC.
ISR của ngắt tương ứng được thực thi.
(ISR thực thi xong khi gặp lệnh RETI)
Giá trị trong stack( của PC cũ) được phục hồi trở lại vào thanh ghi PC.
Trạng thái các ngắt được phục hồi trở lại.
Chương trình chính tiếp tục được thực thi tại chỗ bị tạm dừng.
1.2.4.2.Các vectơ ngắt:
Vectơ ngắt là địa chỉ bắt đầu của chương trình phục vụ ngắt(ISR) của ngắt tương ứng.
Khi một ngắt được CPU chấp nhận thì giá trị được nạp cho thanh ghi PC chính là vectơ ngắt
Bảng qui định địa chỉ bắt đầu của các ISR(bảng vectơ ngắt ):
Loại ngắt Cờ ngắt Địa chỉ của vectơ ngắt
Reset hệ thống RST 0000H
Ngắt ngoài 0 IE0 0003H
Ngắt Timer 0 IT0 000BH
Ngắt ngoài 1 IE1 0013H
Ngắt Timer 1 IT1 001BH
Ngắt port nối tiếp RI hoặc TI 0023H
1.3.SƠ LƯỢC VỀ LCD
1.3.1.Sơ đồ nguyên lý:
1.3.2. Sơ đồ chân và kích thước của LCD:
1.3.3.Sơ đồ khối của LCD:
1.3.4.Hoạt động của LCD
1.3.5.BẢNG MÃ ASCII
Vì bàn phím, máy in và màn hình đều sử dụng mã ASCII nên cần phải thực hiện chuyển đổi giữa mã ASCII về mã BCD và ngược lại.
BẢNG MÃ ASCII CỦA CÁC SỐ TỪ 0-9
1.4.BỘ PHẬN CẢM BIẾN
1.4.1.Giới thiệu sơ lược về mạch cảm biến:
Để cảm nhận mỗi lần sản phẩm đi qua thì cảm biến phải có phần phát và phần thu. Phần phát phát ra ánh sáng hồng ngoại và phần thu hấp thu ánh sáng hồng ngoại vì ánh sáng hồng ngoại có đặc điểm là ít bị nhiễu so với các loại ánh sáng khác. Hai bộ phận phát và thu hoạt động cùng tần số. Khi có sản phẩm đi qua giữa phần phát và phần thu, ánh sáng hồng ngoại bị che bộ phận thu sẽ hoạt động với tần số khác tần số phát như thế tạo ra một xung tác động tới bộ phận xử lý. Vậy bộ phận phát và bộ phận thu phải có nguồn tạo dao động. Bộ phận dao động tác động tới công tắc đóng ngắt của nguồn phát và nguồn thu ánh sáng. Có nhiều linh kiện phát và thu ánh sáng hồng ngoại nhưng chúng em chọn led hồng ngoại và transistor quang là linh kiện phát và thu vì transistor quang là linh kiện rất nhạy với ánh sáng hồng ngoại. Bộ phận tạo dao động có thể dung mạch LC, cổng logic, hoặc IC dao động.Với việc sử dụng IC chuyên dụng tạo dao động, bộ tạo dao động sẽ trở nên đơn giản hơn với tần số phát và thu.
Vì tín hiệu ở ngõ ra transistor quang rất nhỏ nên cần có mạch khuếch đại trước khi đưa đến bộ tạo dao động. Chúng em chọn IC khuếch đại để khuếch đại tín hiệu lên đủ lớn. Vậy sơ đồ của phần phát và phần thu là:
KHỐI DAO ĐỘNG
KHỐI DAO ĐỘNG
KHUẾCH ĐẠI
TRANSITOR THU
1.4.2.Các linh kiện trong mạch cảm biến:
1.4.2.1.Cấu tạo, nguyên lí hoạt động của led hồng ngoại
Led được cấu tạo từ GaAs với vùng cấm có độ rộng là 1.43 Ev tương ứng bức xạ 900nm. Ngoài ra khi pha tạp Si với nguyên liệu GaAlAs, độ rộng vùng cấm có thể thay đổi. Với cách này, người ta có thể tạo ra dải sóng giữa 800-900nm và do đó tạo ra sự điều hưởng sao cho led hồng ngoại phát ra bước sóng thích hợp nhất cho điểm cực đại của độ nhạy các bộ thu.
Hoạt động: khi mối nối p-n được phân cực thuận thì dòng điện qua nối lớn vì dẫn điện là do hạt tải đa số, còn khi mối nối được phân cực nghịch thì chỉ có dòng rỉ do sự di chuyển của các hạt tải thiểu số. Nhưng khi chiếu sáng vào mối nối, dòng điện nghịch tăng lên gần như tỷ lệ với quang thông trong lúc dòng thuận không tăng. Đặc tuyến volt-ampere của led hồng ngoại như sau:
j = 4
j = 3
j = 2
j = 1
j = 0
U(V)
I(A)
1.4.2.2.Photon transistor:
Photon transistor cũng tương tự như transistor thông thường nhưng chỉ khác ở chỗ nó không có cực bazơ, thay cho tác dụng khống chế của dòng vào cực bazơ nhưng khống chế tín hiệu là ánh sáng.
Cấu tạo của transistor quang:
Ký hiệu và cấu tạo:
C Cực thu(collector)
Cực nền
(base) E
Cực phát
(emitter)
Ký hiệu Cấu tạo
N
P
N
B
E
B
C
Hình thức bên ngoài của nó khác với transistor thông thường ở chỗ trên vỏ của nó có cửa số trong suốt cho ánh sáng chiếu vào. Ánh sáng qua cửa sổ này chiếu lên miền bazơ của transistor. Chuyển tiếp PN emitter được chế tạo như các transistor thông thường, nhưng chuyển tiếp PN collector, thì do miền bazơ cần được chiếu sáng, cho nên nó có nhiều hình dạng khác nhau, cũng có dạng hình tròn nằm giữa tâm miền bazơ . Khi sử dụng transistor quang mắc mạch tương tự như transistor mắc chung emitor(CE). Chuyển tiếp emitor được phân cực thuận còn chuyển tiếp collector được phân cực nghịch. Có nghĩa là transistor quang được phân cực ở chế độ khuếch đại.
Dòng điện trong transistor:
Vì nối thu được phân cực nghịch nên có dòng rỉ Ico chạy giữa thu – nền và vì nối nền – phát được phân cực thuận nên dòng thu là (b + 1) Ico đây là dòng tối của quang transistor. Khi chiếu ánh sáng vào miền bazơ, trong miền bazơ có sự phát xạ cặp điện tử lỗ trống làm xuất hiện dòng II. Do ánh sáng khiến dòng thu trở thành:
Ic= (b + 1) .(Ico + IL)
Đặc tuyến của transistor quang:
U(V)
5 10 15 20 1
I(A)
H = 9
H = 7
H = 5
H = 4
H = 1
8
6
4
2
0
Trong đó H là mật độ chiếu sáng (mWm2)
Đặc tuyến của transistor quang cũng giống như đặc tuyến Volt-ampere của transistor thông thường mắc EC. Điều khác nhau ở đây là các tham số không phải là dòng Ib mà là lượng chiếu sáng.
Đặc tuyến Volt ampere của transistor quang ứng với khoảng Uce nhỏ cũng có thể gọi là miền bão hoà vì khi ấy do sự tích tụ điện tích có thể coi như chuyển tiếp collector được phân cực thuận. Cũng tương tự như trong trường hợp transistor thông thường, độ dốc đặc tuyến trong miền khuếch đại.
1.5IC7414
Sơ đồ logic(mức tích cực)
Chương 2. SƠ ĐỒ KHỐI CỦA MẠCH
KHỐI XỬ LÝ TRUNG TÂM (DÙNG VI ĐIỀU KHIỂN AT89C51)
2.1. SƠ ĐỒ KHỐI:
BỘ NGUỒN
KHỐI CẢM BIẾN
KHỐI LCD
2.2.CHỨC NĂNG TỪNG KHỐI:
Khối cảm biến: phát hiển sản phẩm đi qua.
Khối cảm biến là một mạch cảm biến hồng ngoại. Khi có sản phẩm đi qua thì khối này sẽ phát hiện qua led hồng ngoại và đưa tín hiệu đến vi xử lý để điều khiển.
Khối xử lý trung tâm:
Chức năng của khối này là điều khiển toàn bộ hoạt động của mạch. Hoạt động theo chương trình định sẵn.
Khối nguồn:
Khối này có nhiệm vụ cung cấp nguồn cho toàn mạch.
Khối LCD:
Khối này điều khiển và hiển thị thông tin trên màn hình tinh thể lỏng (LCD).
Chương 3 :THIẾT KẾ PHẦN CỨNG
3.1.KHỐI NGUỒN:
3.1.1.Sơ đồ nguyên lý:
3.1.2.Nguyên lý hoạt động:
Trong hệ thống mạch điện, khối nguồn giữ vai trò quan trọng, quyết định hoạt động của mạch. Vì vậy khi thiết kế bất kỳ một hệ thống nào, chúng ta phải chú trọng đến khối nguồn. Một khối nguồn ổn định sẽ giúp cho mạch hoạt động chính xác hơn. Do nguồn cung cấp cho các IC trên Kit là 5 Vdc và dòng điện cung cấp cho Kit khoảng 800mA .
Trong khi điện áp lưới mà ta sử dụng là 220 VAC. Do đó để lấy điện áp từ lưới điện làm nguồn cung cấp cho vi điều khiển thì ta phải dùng biến thế cách ly để vừa hạ áp và cách ly với điện thế cao, an toàn cho người sử dụng. Từ việc phân tích như trên ta chọn biến thế cách ly với các thông số như sau :
Điện áp vào 220 Vac .
Điện áp ra 12 Vac .
Dòng định mức 3A .
Để có được điện áp DC ta tiến hành chỉnh lưu và lọc gợn sóng thông qua diode cầu chỉnh lưu và các tụ lọc. Để đảm bảo đủ dòng cung cấp cho Kit vi điều khiển ta chọn loại diode cầu loại 5A (hoặc 4 diode 1N4007).
Chọn tụ lọc 4700 μF/25v (hoặc 2200μF/25v)
Tụ chống nhiễu có giá trị 47 μF/25v (hoặc 104) để lọc nhiễu đường nguồn tránh lỗi cho chương trình.
Để ổn định điện áp 5 Vdc và dòng cung cấp cho Kit vi điều khiển , ta chọn IC ổn áp 7805.
Đối với 7805 thì :
å Điện áp ngõ vào là 8V – 35V
å Điện áp ngõ ra ổn áp 4,9 V
å Dòng điện ra danh định 1 A
3.2.KHỐI CẢM BIẾN:
3.2.1.Sơ đồ nguyên lý:
B
A
3.2.2.Nguyên lý hoạt động:
Ở trạng thái bình thường Led thu và Led phát nhận tín hiệu nhau, lúc đó tại A sẽ có mức điện áp bằng 0. Tín hiệu này cho qua cổng đảo, cho ra mức 1 tại P3.2. Khi có sản phẩm đi qua sẽ làm cho led thu và led phát mất tín hiệu, lúc này tại A sẽ có điện áp là mức 1. Tín hiệu này cho qua cổng đảo cho ra mức 0 tại P3.2. Lúc này CPU sẽ điều khiển.
3.3.KHỐI LCD:
3.3.1.Sơ đồ nguyên lý :
3.3.2.Nguyên lý hoạt động:
J5(DATALCD): ngõ vào nhận thông tin dữ liệu (data) hoặc thông tin lệnh(command) cho LCD.
J6(CTRL LCD): ngõ vào điều khiển LCD. Để điều khiển độ tương phản của các thông tin hiển thị trên LCD, ta tiến hành điều chỉnh biến trở R5
3.4.KHỐI VI ĐIỀU KHIỂN:
3.4.1.Sơ đồ nguyên lý:
3.4.2.Nguyên lý hoạt động:
P0.2, P0.1, P0.0 : ngõ vào điều khiển LCD
P1 : ngõ vào nhận thông tin dữ liệu hoặc thông tin lệnh cho LCD.
P3.2 : ngõ vào ngắt ngoài 0.
3.4.3.Giải thích:
Mạch bao gồm một cảm biến giao tiếp với 89C51. Cứ mỗi lần có sản phẩm chạy qua cảm biến thì cảm biến sẽ nhận và chuyển đổi thành tín hiệu số để đưa về 89C51 xử lí và hiển thị ra LCD. Mạch này đếm tối đa đến 999.999 sản phẩm. Và còn có thể mở rộng thêm được nữa. Chương trình sử dụng ngắt ngoài 0. Cảm biến được nối với chân INT0 (P3.2). LCD được nối với P1. Các chân điều khiển LCD nối với P0. Do số sản phẩm đếm được khi có tín hiệu ngắt ở chân INT0 là số BCD. Vì vậy để số này hiển thị ra LCD ta phải chuyển đổi ra mã ASCII.
Chương 4: LƯU ĐỒ GIẢI THUẬT VÀ CHƯƠNG TRÌNH
4.1.LƯU ĐỒ
4.2.CHƯƠNG TRÌNH:
$MOD51
EN BIT P0.2 ; bit ctrl LCD
RW BIT P0.1
RS BIT P0.0
DATABUS EQU P1
ORG 00H ;diem nhap cua reset he thong
SJMP MAIN ;lenh nhay de vuot qua cac ISR
ORG 03H ;diem nhap ISR ngat ngoai 0
EX0IRS:
INC R7
MOV A,R7
DA A
MOV R7,A
CJNE R7,#00H,HIENTHI ;A-R7
INC R6
MOV A,R6
DA A
MOV R6,A
CJNE R6,#00H,HIENTHI ;A-R6
INC R5
M
Các file đính kèm theo tài liệu này:
- Đồ án thiết kế mạch đếm sản phẩm dùng LCD.doc