Tải bản đầy đủ
CHƯƠNG 2: TÍNH TOÁN LỰA CHỌN CÁC LINH KIỆN ĐIỆN TỬ

CHƯƠNG 2: TÍNH TOÁN LỰA CHỌN CÁC LINH KIỆN ĐIỆN TỬ

Tải bản đầy đủ

Hình 2.1.Sơ đồ chân VXL 89C51
* Nhóm chân nguồn:
- VCC: chân 40, điện áp cung cấp 5VDC
- GND: chân 20(hay nối Mass).
* Nhóm chân dao động :
Gồm chân 18 và chân 19 (Chân XTAL1 và XTAL2), cho phép ghép nối thạch
anh vào mạch dao động bên trong vi điều khiển, được sử dụng để nhận nguồn xung
clock từ bên ngoài để hoạt động, thường được ghép nối với thạch anh và các tụ để tạo
nguồn xung clock ổn định:
- XTAL 1: Ngõ vào đến mạch khuếch đại dao động đảo và ngõ vào đến mạch tạo xung
clock bên trong.
- XTAL 2: Ngõ ra từ mạch khuếch đại dao động đảo

Hình 2.2. Bộ tạo dao động
* Chân chọn bộ nhớ chương trình: chân 31 (EA/VPP): dùng để xác định chương trình
thực hiện được lấy từ ROM nội hay ROM ngoại:
- Chân 31 nối mass: sử dụng bộ nhớ chương trình bên ngoài vi điều khiển
- Chân 31 nối VCC: sử dụng bộ nhớ chương trình (4Kb) bên trong vi điều khiển.
* RST (Chân RESET): Ngõ vào RST ở chân 9 là ngõ vào Reset dùng để thiết lập trạng
thái ban đầu cho vi điều khiểnHệ thống sẽ được thiết lập lại các giá trị ban đầu nếu ngõ
này ở mức 1 tối thiểu 2 chu kì máy.
* Chân cho phép bộ nhớ chương trình PSEN
PSEN ( program store enable) tín hiệu được xuất ra ở chân 29 dùng để truy xuất
bộ nhớ chương trình ngoài. Chân này thường được nối với chân OE (outputenable) của
ROM ngoài.
* Khi vi điều khiển làm việc với bộ nhớ chương trình ngoài, chân này phát ra tín hiệu
kích hoạt ở mức thấp và được kích hoạt 2 lần trong một chu kì máy .Khi thực thi một
chương trình ở ROM nội, chân này được duy trì ở mứclogic không tích cực (logic 1)
(Không cần kết nối chân này khi không sử dụngđến).
* Chân ALE :(chân cho phép chốt địa chỉ-chân 30)
Khi Vi điều khiển truy xuất bộ nhớ từ bên ngoài, port 0 vừa có chức năng là bus
địa chỉ, vừa có chức năng là bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ.
Tín hiệu ở chân ALE dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và
các đường dữ liệu khi kết nối chúng với IC chốt.

Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động đưa vào Vi điều
khiển, như vậy có thể dùng tín hiệu ở ngõ ra ALE làm xung clock cung cấp cho các
phần khác của hệ thống.
* Ghi chú : khi không sử dụng có thể bỏ trống chân này .
* Nhóm chân điều khiển vào/ra:
Port 0:gồm 8 chân (từ chân 32 đến 39) có hai chức năng:
- Chức năng xuất/nhập :các chân này được dùng để nhận tín hiệu từ bên ngoài
vào để xử lí, hoặc dùng để xuất tín hiệu ra bên ngoài, chẳng hạn xuất tín hiệu để điều
khiển led đơn sáng tắt.
- Chức năng là bus dữ liệu và bus địa chỉ (AD7-AD0) : 8 chân này (hoặc Port 0)
còn làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại (nếu có kết nối với bộ nhớ
ngoài), đồng thời Port 0 còn được dùng để định địa chỉ của bộ nhớ ngoài.
Port 1 (P1):
gồm 8 chân (từ chân 1 đến chân , chỉ có chức năng làm các đường xuất/nhập,
không có chức năng khác.
Port 2 (P2) :
gồm 8 chân (từ chân 21 đến chân 28) có hai chức năng:
- Chức năng xuất/nhập
- Chức năng là bus địa chỉ cao (A8-A15): khi kết nối với bộ nhớ ngoài có dung
lượng lớn,cần 2 byte để định địa chỉ của bộ nhớ, byte thấp do P0 đảm nhận, byte cao
do P2 này đảm nhận.
Port 3 (P3):
gồm 8 chân (từ chân 10 đến 17):
Chức năng xuất/nhập
Với mỗi chân có một chức năng riêng:
P3.0 RxD : Ngõ vào nhận dữ liệu nối tiếp
P3.1 TxD : Ngõ xuất dữ liệu nối tiếp
P3.2 INT0: Ngõ vào ngắt cứng thứ 0
P3.3 INT1: Ngõ vào ngắt cứng thứ 1
P3.4 T0: Ngõ vào của Timer/Counter thứ 0
P3.5 T1: Ngõ vào của Timer/Counter thứ 1
P3.6 WR : Ngõ điều khiển ghi dữ liệu lên bộ nhớ ngoài
P3.7 RD : Ngõ điều khiển đọc dữ liệu từ bộ nhớ bên ngoài.
P1.0 T2 : Ngõvào của Timer/Counter thứ 2
P1.1 T2X : Ngõ Nạp lại/thu nhận của Timer/Counter thứ 2

2.1.1.Vùng RAM định vị bit
Gồm 16 byte có địa chỉ từ 20H -> 2FH trong vùng này ta có thể tác động tới
từng bit. Có nghĩa là có thể set bit đó lên 1 hoặc clear bit đó về 0
Có 128 bit trong vùng RAM định vị có địa chỉ từ 00H -> 7FH
Vùng RAM đa dụng:
Có địa chỉ từ 30H -> 7FH (80 byte) có thể sử dụng làm bất cứ công việc gì
trong chương trình
Vùng các thanh ghi đặc biệt: Có địa chỉ từ 80H -> FFH
Thanh ghi tích lũy A (AC: Accumulartor) là thanh ghi trung tâm thường được sử dụng
để chứa lưu giá trị trong các lệnh chương trình có địa chit là E0H
Ví dụ:
- Mov A, #3FH
Lấy 3FH đưa vào thanh ghi A
- Mov A, 3FH
Lấy nội dung của 3FH đưa vào A
Thanh ghi B: có địa chỉ là FH là thanh ghi được dùng kết hợp với thanh ghi A trong
các phép toán
Ví dụ:
- Mul AB
Nhân thanh ghi A và B với nhau, được kết quả đưa vào A
- Div AB
Chia A với B, kết quả đưa vào A, số dư đưa cào B
Thanh ghi PSW (Program status word):Là thanh ghi chứa trạng thái của chương trình
Trạng thái chương trình ở địa chỉ DOH được tóm tắt như sau:
BIT

SIMPLE

ADDRESS

DESCRIPTION

PSW.7

CY

D7H

Cary Flag

PSW.6

AC

D6H

Auxiliary Cary Flag

PSW.5

F0

D5H

Flag 0

PSW.4

RS1

D4H

Register Bank Select 1

PSW.3

RS0

D3H

Register Bank Select 0

00 = Bank 0; address 00H – 07H
01 = Bank 1; address 08H – 0FH
10 = Bank 2; address 10H – 17H
11 = Bank 3; address 18H – 1FH
PSW.2

OV

D2H

Overlow Flag

PSW.1

-

D1H

Reserved

PSW.0
P
D0H
Even Parity Flag
CY: là cờ nhớ, CY sẽ set lên 1 khi thực hiện phép cộng có xảy ra nhớ, hoặc khi thực
hiện phép trừ có xảy ra mượn.
AC (Auxiliary carrier) là cờ nhớ phụ khi cộng các số BCD. Cừ nhớ phụ sẽ set lên 1
nếu kết quả của 4 bit thấp nằm trong khoảng từ 0AH đến 0FH
F0: là cờ nhớ dành cho người sử dụng.
RS1, RS0: quyết định dãy thanh ghi tích cực. Chúng được xóa sau khi reser hệ thống
và được thay đổi bởi phần mềm khi cần thiết.
RS1

RS0

BANK

0

0

0

0

1

1

1

0

2

1

1

3

Dựa vào bảng trên ta có thể chọn thanh ghi bank nào muốn chọn.
- OV (Over flow) : sẽ set lên 1 khi thực hiện phép toán với số có dấu xảy ra tràn
- P (Parity) : là bit kiểm tra chẵn lẻ, bit P sẽ bằng 0 hoặc 1 theo dạng parity chẵn
với nội dung của thanh ghi A
- Con trỏ ngăn xếp SP (Stack Pointer):

Con trỏ ngăn xếp là một thanh ghi 8 bit ở địa chỉ 81H. Nó chứa địa chỉ của byte
dữ liệu hiện hành trên đỉnh ngăn xếp. Các lệnh trên ngăn xếp bao gồm các lệnh cất dữ
liệu vào ngăn xếp (PUSH) và lấy dữ liệu ra khỏi ngăn xếp (POP). Lệnh cất dữ liệu
vào ngăn xếp sẽ làm tăng SP trước khi ghi dữ liệu và lệnh lấy ra khỏi ngăn xếp sẽ
làm giảm SP. Ngăn xếp của 8031/8051 được giữ trong RAM nội và giới hạn các địa
chỉ có thể truy xuất bằng địa chỉ gián tiếp, chúng là 128 byte đầu của 8951
Để khởi động SP với ngăn xếp bắt đầu tại đạic hỉ 60H, các lệnh sau đây được
dùng:
MOV SP, #5F
Với lênh trên thì ngăn xếp của 89s52 chỉ có 32 byte vì địa chỉ cao nhất của
RAM trên chip la 7FH. Sở dĩ giá trị 5FH được nạp vào SP vì SP tăng lên 60H trước
khi cất byte dữ liệu
- Thanh ghi con trỏ dữ liệu Data pointer (DTPR):
- Là thanh ghi 16 bit kết hợp của 2 thanh ghi 8 bit là DPH và DPL
DPH

DPL

Thanh ghi DPTR thường được dùng để lưu các địa chỉ 16 bit, thông thường là
các địa chỉ khi truy suất bộ nhớ bên ngoài
Các thanh ghi xuất nhập port : Các Port của 89c51 bao gồm Port 0 ở địa chỉ
80H, Port 1 ở địa chỉ 90H, Port 2 ở địa chỉ A0H, và Port 3 ở địa chỉ B0H Tất cả các
Port này đều có thế truy xuất từng bit nên rất thuận tiện trong khả năng giao tiếp.
89c51 chứa một Port nối tiếp cho việc trao đổi thông tin với các thiết bị như máy tính,
modem hoặc giao tiếp nối tiếp với cac IC khác. Một thanh ghi đệm dữ liệu nối tipees
(SBUF) khi nhận dữ liệu thì đọc SBUF. Các mode vận khác nhau được lập trình qua
thanh ghi điều khiển Port nối tiếp (SCON) được địa chỉ hóa từng bit ở địa chỉ 98H
Thanh ghi điều khiển nguồn PCON (Power control Register)
Thanh ghi PCON không có bit định vị. Nó ở địa chỉ 78H chưa nhiều bit điều
khiển. Thanh ghi PCON được tóm tắt như sau:
- Bit 7(SMOD): bit có tốc độ Baud ở mode 1, 2, 3 ở Port nối tiếp khi set.
- Bit 6, 5, 4: không có địa chỉ
- Bit 3(GF1): bit cờ đa năng 1
- Bit 2 (GF0): Bit cờ đa năng 2
- Bit 1(PD): set để khởi động mode Power Down và thoát để reset
- Bit 0 (IDL): set để khỏi động mode Idle và thoát khi ngắt mạch hoặc reset
Các bit điều khiển Power Down và Idle có tác dụng chính trong tất cả các IC họ
MSC-51 nhưng chỉ được thi hành trong sự biên dịch của CMOS

Các lệnh điều khiển
8951 chia ra 2 nhóm lệnh chính:
- Các lệnh số học
- Lệnh logic
- Dịch chuyển dữ liệu
- Luân lý
- Rẽ nhánh chương trình

2.2.Giới thiệu về LCD
Nối ghép LCD với vi xử lý : LCD gồm 2 hàng đơn vị , hàng chục , hàng trăm.
Hàng đầu là già trị nhập vào để động cơ chạy , hàng thứ 2 là giá trị thực chất
mà động cơ chạy được hiển thị trên LCD.

Hình 2.3: LCD
2.2.1.Hoạt động của LCD
Trong những năm gần đây màn hình tinh thể lỏng LCD càng được sử dụng rộng
rãi và đang dần thay thế Led 7 thanh đó là do nguyên nhân sau :
- Màn hình LCD có giá thành hạ
- Khả năng hiển thị số, đồ họa , kí tự nhiều hơn led 7 thanh
- Dễ dàng lập trình các kí tự và đồ họa
2.2.2. Mô tả chân của LCD.
LCD giới thiệu ở đây 14 chân . chức năng của những chân này được trình bày
như sau:
Chân
1
2
3
4

Kí hiệu
VSS
VCC
VEE
RS

I/0
I

5

RW

I

E
BBO
DB1
DB2
DB3
DB4
DB5
DB6
DB7

I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O

6
RS 7
8
Select)
9
thanh ghi: 10
thanh ghi 11
12
13
14

Mô Tả
Đất
Dương nguồn +5v
Nguồn điều khiển tương phản
Rs=0 chọn thanh ghi lênh
Rs=1 chọn thanh ghi dữ liệu
Rw=1 đọc dữ liệu
Rw=0 ghi
Cho phép
Bus dữ liệu 8 bits
Bus dữ liệu 8 bits
Bus dữ liệu 8 bits
Bus dữ liệu 8 bits
Bus dữ liệu 8 bits
Bus dữ liệu 8 bits
Bus dữ liệu 8 bits
Bus dữ liệu 8 bits

(Register
chọn

hai
rất quan

trọng bên trong LCD. Chân RS được dùng để chọn các thanh ghi này. Nếu RS = 0 thì
thanh ghi mã lệnh được chọn, cho phép người dùng gửi một lệnh chẳng hạn như xoá
màn hình, đưa con trỏ về đầu dòng v.v...Nếu RS = 1 thì thanh ghi dữ liệu được chọn
và cho phép người dùng gửi dữ liệu cần hiển thị lên LCD.
- R/W (Read/Write) – chân đọc/ghi: Chân vào đọc/ghi cho phép người dùng
đọc/ghi thông tin từ/lên LCD. R/W = 0 thì đọc,R/W = 1 thì ghi.
- E (Enable) – chân cho phép: Chân E được LCD sử dụng để chốt thông tin hiện
có trên chân dữ liệu. Khi dữ liệu được cấp đến chân dữ liệu thì một xung mức Caoxuống-thấp được áp đến chân E để LCD chốt dữ liệu trên chân dữ liệu. Xung này phải
rộng tối thiểu 450ns.
- D0 – D7: Đây la 8 chân dữ liệu 8 bits, được dùng để gửi thông tin lên LCD
hoặc đọc nội dung của các thanh ghi trong LCD.
Để hiển thị chữ cái và con số, mã ASCII của các chữ cái từ A đến Z, a đến z, và các
con số tự 0 – 9 được gửi đến các chân này khi RS = 1.
Cũng có các mã lệnh được gửi đến LCD để xoá màn hình hoặc đưa con trỏ về
đầu dòng hoặc nhấp nháy con trỏ.
Cũng có thể sử dụng RS = 0 để kiểm tra bit cờ bận xem LCD đã sẵn sàng nhận
thông tin chưa. Khi R/W = 1 và RS = 0 thì cờ bận D7 thực hiện các chức năng nhưsau:
Nếu D7 = 1 (cờ bận bằng 1) có nghĩa LCD đang bận các công việc bên trong và
sẽ không nhận bất kỳ thông tin mới nào, còn nếu D7 = 0 thì LCD sẵn sàng nhận thông
tin mới. Trong mọi trường hợp cần kiểm tra cờ bận trước khi ghi bất kỳ dữliệu nào lên
LCD.
LCD ghép nối với các cổng P2.0.....P2.7 cổng p2 là cổng dữ liệu dùng để
chuyễn dữ liệuvà chênh lệch giá trị, 3chân EN, RW, RS được nối với các chân của vi
xử lý có nhiệm vụ nhưđã nói ở trên , chân thứ 15, 16 lắp cho đèn.

2.3. Encoder
Encoder mục đích dùng để quản lý vị trí góc của một đĩa quay, đĩa quay có thể
là bánh xe, trục động cơ, hoặc bất kỳ thiết bị quay nào cần xác định vị trí góc.

Hình 2.4- Encoder

Encoder được chia làm 2 loại, absolute encoder (encoder tuyệt đối ) và
incremental encoder (encoder tương đối).
Nguyên lý hoạt động cơ bản của encoder, LED và lỗ
Nguyên lý cơ bản của encoder, đó là một đĩa tròn xoay, quay quanh trục. Trên
đĩa có các lỗ (rãnh). Người ta dùng một đèn led để chiếu lên mặt đĩa. Khi đĩa quay,
chỗ không có lỗ (rãnh), đèn led không chiếu xuyên qua được, chỗ có lỗ (rãnh), đèn led
sẽ chiếu xuyên qua. Khi đó, phía mặt bên kia của đĩa, người ta đặt một con mắt thu.
Với các tín hiệu có, hoặc không có ánh sáng chiếu qua, người ta ghi nhận được đèn led
có chiếu qua lỗ hay không.
Khi trục quay, giả sử trên đĩa chỉ có một lỗ duy nhất, cứ mỗi lần con mắt thu
nhận được tín hiệu đèn led, thì có nghĩa là đĩa đã quay được một vòng.

CHƯƠNG 3 :THIẾT KẾ MẠCH ĐO VÀ HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ
3.1.Thiết kế mạch
3.1.1.Sơ đồ nguyên lý

Hình 3.1.Sơ đồ nguyên lý.
Nguyên lí hoạt động
Khi chưa nhấn nút tăng (P1.1 ) của AT 89c51 ở mức 1, điện áp ở 2 đầu của
động cơ bằng 0v , động cơ không hoạt động.
Khi nhấn nút tăng , tín hiệu được đưa đến vi điều khiển, vi điều khiển nhận và
xử lí tín hiệu sau đó đưa tín hiệu qua chân 17 (P3.7) và Chân 17 tích mức 0 . Đồng
thời vi điều khiển tạo xung PWM trên chân 17 qua opto (cách ly quang chống nhiễu
cho vi điều khiển), qua MOSFET IRF540 khuếch đại tín hiệu đưa vào đầu còn lại của
động cơ và lúc đó động cơ quay thuận. Khi nhấn nút tăng tốc độ VXL sẽ giảm một
xung PWM mới (tăng độ rộng xung âm so với mức trước) trên chân 17 qua opto (cách
ly quang chống nhiễu cho vi điều khiển) qua MOSFET IRF540 khuếch đại tín hiệu

đưa vào đầu còn lại của động cơ động cơ vẫn quay theo chiều như trước nhưng tốc độ
nhanh hơn.
Khi nhấn nút giảm tốc độ(chân P1.2) VXL sẽ tăng một xung PWM mới (giảm
độ rộng xung âm so với mức trước) trên chân 17 qua opto (cách ly quang chống nhiễu
cho vi điều khiển) qua MOSFET IRF540 khuếch đại tín hiệu đưa vào đầu còn lại của
động cơ động cơ vẫn quay theo chiều như trước nhưng tốc độ chậm hơn.
Khi nhấn nút đảo chiều(chân P1.3), tín hiệu được đưa đến vi điều khiển, vi
điều khiển nhận và xử lí tín hiệu sau đó đưa tín hiệu qua chân P3.6 khi đó chân P3.6
tích cực ơ mức 0V,khi đó cuộn hút rơle có điện tiếp điểm 1 và 2 của rơle đa tiếp điểm
bị đảo trạng thái . Điện áp đặt vào 2 đầu động cơ là khác nhau (0V – 12`V), đồng thời
vi điều khiển tạo xung PWM trên chân 17 qua opto (cách ly quang, chống nhiễu cho
vi điều khiển) qua MOSFET IRF540 khuếch đại tín hiệu đưa vào đầu còn lại của động
cơ động cơ quay ngược.
Khi nhấn nút RESET vi điều khiển, vi điều khiển trở về trạng thái ban đầu
động cơ ngừng hoạt động.
3.1.2. Tính toán và lựa chọn linh kiện mạch.
3.1.2.1. Khối nguồn.
Sơ đồ :

Hình 3.3.-Khối nguồn.