Bằng những kiến thức về điện – điện tử, tôi đã lắp ráp thành công máy đo âm
tần hiển thị số. Máy đo có kích thước nhỏ gọn, lắp đặt, di chuyển đơn giản, dễ dàng.
Sai số của máy đo so với máy phát xung chuẩn nhỏ nên khá tin cậy trong việc đo tần
số âm tần của các xung hình sin, vuông, tam giác.
81 trang |
Chia sẻ: toanphat99 | Lượt xem: 2389 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Luận văn Nghiên cứu lắp ráp máy đo tần số âm tần hiển thị số, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Thiết lập
chiều dịch
chuyển của
con trỏ và
hiển thị.
40 µs
Thiết lập
chức
năng
0 0 0 0 1 DL N F * *
Thiết lập độ
dài của dữ
liệu, số dòng
và font chữ.
40 µs
Set
CGRAM
address
0 0 0 1 CGRAM address Thiết lập địa chỉ CGRAM. 40 µs
Set
DDRAM
adress
0 0 1 DDRAM address Thiết lập địa chỉ DDRAM. 40 µs
Read
“BUSY”
flag
0 1 BF CGRAM/DDRAM address
Đọc cờ báo
bận và địa chỉ
của CGRAM
hay DDRAM
(tùy vào lệnh
trước đó).
0 µs
Write to
CGRAM
or
DDRAM
1 0 Write data
Ghi dữ liệu
vào CGRAM
hay DDRAM.
40 µs
Read
from
CGRAM
or
DDRAM
1 1 Read data
Đọc dữ liệu
vào CGRAM
hay DDRAM.
40 µs
25
Các bit viết tắt trong mã lệnh được nêu rõ trong bảng 2.4.
Bảng 2.4: Các bit viết tắt và mô tả.
Tên bit Mô tả
I/D 0 = Giảm vị trí con trỏ. 1 = Tăng vị trí con trỏ.
S 0 = Không dịch chuyển hiển thị. 1 = Dịch chuyển hiển thị.
D 0 = Tắt hiển thị. 1 = Bật hiển thị.
C 0 = Tắt con trỏ. 1 = Bật con trỏ.
B 0 = Con trỏ không nhấp nháy. 1 = Con trỏ nhấp nháy.
S/C 0 = Di chuyển con trỏ. 1 = Dịch chuyển hiển thị.
R/L 0 = Dịch trái. 1 = Dịch phải.
D/L 0 = Chế độ 4 – bit dữ liệu. 1 = Chế độ 8 – bit dữ liệu.
N 1 dòng. 2 dòng.
F 0 = Font chữ 5x8. 1 = Font chữ 5x10.
BF 0 = Không bận. 1 = Đang bận.
2.3.5 Giao tiếp và nguyên tắc hiển thị ký tự trên LCD
LCD có hai mode giao tiếp là 4 bit và 8 bit. Ta sẽ lần lượt tìm hiểu về cách sử
dụng cũng như ưu – nhược điểm của hai mode này.
- Mode 8 bit: Để sử dụng mode 8 bit, tất cả các lines dữ liệu của LCD từ D0
đến D7 (từ chân 7 đến chân 14) phải được nối với một PORT (gồm 8 chân) của vi điều
khiển bên ngoài. Ưu điểm của phương pháp giao tiếp này là dữ liệu được ghi và đọc
rất nhanh và đơn giản vì chip điều khiển chỉ cần xuất hoặc nhận dữ liệu trên 1 PORT.
Tuy nhiên, phương pháp này có nhược điểm là tổng số chân dành cho giao tiếp LCD
quá nhiều, nếu tính luôn cả 3 chân điều khiển thì cần đến 11 đường cho giao tiếp LCD.
- Mode 4 bit: LCD cho phép giao tiếp với bộ điều khiển ngoài theo chế độ 4
bit. Trong chế độ này, các chân D0, D1, D2 và D3 của LCD không được sử dụng (để
trống), chỉ có 4 chân từ D4 đến D7 được kết nối với vi điều khiển bên ngoài. Các
instruction và data 8 bit sẽ được ghi và đọc bằng cách chia thành 2 phần, gọi là các
nibbles, mỗi nibble gồm 4 bit và được giao tiếp thông qua 4 chân D7:4, nibble cao
được xử lí trước và nibble thấp sau. Ưu điểm lớn nhất của phương pháp này tối thiểu
số lines dùng cho giao tiếp LCD, nếu tính luôn cả 3 chân điều khiển thì chỉ cần 7
26
đường cho giao tiếp LCD. Tuy nhiên, việc đọc và ghi từng nibble tương đối khó khăn
hơn đọc và ghi dữ liệu 8 bit.
Hình 2.6 là hình ảnh cách mắc LCD theo mode giao tiếp 4 bit. Trong đó, các
chân từ D4 đến D7 được mắc vào 4 chân thuộc 1 PORT của vi điều khiển. Chân VSS
nối đất, VDD nối với nguồn 5V, VEE nối chân chạy của biến trở hạn dòng nhằm điều
chỉnh độ tương phản của LCD.
Hình 2.6: Cách mắc LCD theo kiểu giao tiếp 4 bit.
Trình tự giao tiếp với LCD mode 4 bit được mô tả bằng sơ đồ hình 2.7.
Hình 2.7: Sơ đồ khối giao tiếp với LCD.
27
Để sử dụng LCD chúng ta cần khởi động LCD, sau khi được khởi động LCD đã
sẵn sàng để hiển thị. Quá trình khởi động chỉ cần thực hiện một lần ở đầu chương
trình. Trong code giao tiếp với LCD, quá trình khởi động được viết trong một chương
trình con tên LCD_Init, khởi động LCD thường bao gồm xác lập cách giao tiếp, kích
thước font, số dòng LCD (Function set), cho phép hiển thị LCD, Cursor
home(Display control), chế độ hiển thị tăng/giảm, shift (Entry mode set). Các thủ
tục khác như xóa LCD, viết ký tự lên LCD, di chuyển con trỏđược sử dụng liên tục
trong quá trình hiển thị LCD và sẽ được trình bày trong các đoạn chương trình con
riêng.
Chú ý: Mỗi khi thực hiện ghi lệnh hay dữ liệu hiển thị lên LCD đều phải kiểm
tra cờ bận. Sở dĩ xuất hiện vấn đề này là do trong một khoảng thời gian LCD chỉ có thể
thực hiện được một nhiệm vụ như xóa hay ghi dữ liệu.. Tuy nhiên, có một số loại LCD
không cho phép kiểm tra cờ bận, vì thế nên ta phải chủ động trong việc lập trình trong
việc phân phối thời gian khi ra lệnh cho LCD. Ví dụ như khi thực hiện lệnh xóa màn
hình thì phải chờ 2 ms rồi mới thực hiện lệnh mới vì thời gian thực hiện lệnh xóa màn
hình là 1,64 ms.
2.4 Vi điều khiển 16F887
2.4.1 Sơ đồ và tên các khối của 16F887
28
Hình 2.8: Sơ đồ khối của PIC 16F887
Khối ALU – Arithmetic Logic Unit.
Khối bộ nhớ chứa chương trình – Flash Program Memory.
Khối bộ nhớ chứa dữ liệu EEPROM – Data EEPROM.
29
Khối bộ nhớ file thanh ghi RAM – RAM file Register.
Khối giải mã lệnh và điều khiển – Instruction Decode Control.
Khối thanh ghi đặc biệt.
Khối bộ nhớ ngăn xếp.
Khối reset mạch khi có điện, khối định thời reset mạch khi có điện, khối định
thời ổn định dao động khi có điện, khối định thời giám sát, khối reset khi sụt
giảm nguồn, khối gỡ rối.
Khối ngoại vi timer T0, T1,T2.
Khối giao tiếp nối tiếp.
Khối chuyển đổi tín hiệu tương tự sang số –ADC.
Khối so sánh điện áp tương tự.
Khối tạo điện áp tham chiếu.
Khối các port xuất nhập.
2.4.2 Sơ đồ và chức năng của các chân
Hình 2.9: Sơ đồ chân PIC 16F887
30
Port A: Port A (RA0 đến RA7) có số chân từ chân số 2 đến chân số 7 và chân
số 13, 14. Port A bao gồm 8 chân I/O (vào/ra dữ liệu). Đây là các chân “hai
chiều” (bidirectional pin), nghĩa là có thể xuất và nhập được. Chức năng I/O
này được điều khiển bởi thanh ghi TRISA (địa chỉ 85h). Đặc biệt, Port A có hai
chân 13 và 14 dùng để nối với thạch anh để tạo bộ dao động ngoại hay có thể
được sử dụng để tạo dao động nội RC.
Port B: Port B (RB0 đến RB7) có số chân từ chân số 33 đến chân số 40. Port B
gồm 8 chân I/O. Thanh ghi điều khiển xuất nhập tương ứng là TRISB. Bên cạnh
đó một số chân của Port B còn được sử dụng trong quá trình nạp chương trình
cho vi điều khiển với các chế độ nạp khác nhau. Port B còn liên quan đến ngắt
ngoại vi và bộ Timer0. Ngoài ra nó còn được tích hợp chức năng điện trở kéo
lên (pull – up) được điều khiển bởi chương trình.
Port C: Port C (RC0 đến RC7) có số chân từ chân số 15 đến chân số 18 và
chân số 23 đến chân số 26. Port C gồm 8 chân I/O. Thanh ghi điều khiển xuất
nhập tương ứng là TRISC. Bên cạnh đó Port C còn chứa các chân chức năng
của bộ so sánh, bộ Timer1, bộ PWM và các chuẩn giao tiếp nối tiếp I2C, SPI,
SSP, USART
Port D: Port D (RD0 đến RD7) có số chân từ chân số 19 đến chân số 22 và
chân số 27 đến chân số 30. Port (RPD) gồm 8 chân I/O, thanh ghi điều khiển
xuất nhập tương ứng là TRISD. Port D còn là cổng xuất dữ liệu của chuẩn giao
tiếp PSP (Parallel Slave Port).
Port E: Port E (RE0 đến RE3) có số chân từ chân số 8 đến 10 và chân số 1.
Port E gồm 3 chân I/O (từ RE0 đến RE2) và một chân chỉ nhập (RE3). Thanh
ghi điều khiển xuất nhập tương ứng là TRISE. Các chân của Port E có ngõ vào
analog. Bên cạnh đó Port E còn là các chân điều khiển của chuẩn giao tiếp PSP.
Đặc biệt, chân số 1 (RE3) hay còn gọi là Master Clear dùng để Reset vi điều
khiển với điện trở kéo nội.
Chân 12 và 31 dùng để nối đất.
Chân 11 và 31 dùng để cấp nguồn cho vi điều khiển hoạt động [8].
31
2.4.3 Tổ chức bộ nhớ
Cấu trúc của bộ nhớ vi điều khiển PIC16F887 bao gồm 2 bộ nhớ:
+ Bộ nhớ chương trình (Programmemory).
+ Bộ nhớ dữ liệu (Data memory).
2.4.3.1 Bộ nhớ chương trình (Programmemory)
Bộ nhớ chương trình của vi điều khiển PIC16F887 là bộ nhớ Flash, dung lượng
bộ nhớ 8K word (1 word = 14 bit) và được phân chia làm nhiều trang ( từ page 0 đến
3). Nhờ vậy bộ nhớ chương trình có khả năng chứa được 8*1024=8192 câu lệnh (vì
một lệnh sau khi mã hoá sẽ có dung lượng 1 word (14 bit)).
Để mã hóa được địa chỉ của 8K bộ nhớ chương trình, bộ đếm chương trình có
dung lượng 13 bit. Khi vi điều khiển được Reset, bộ đếm chương trình chỉ đến địa chỉ
0004h (Interrupt vector). Bộ nhớ chương trình không bao gồm bộ nhớ stack và không
được địa chỉ hóa bởi bộ đếm chương trình.
Bảng bộ nhớ chương trình và các ngăn xếp.
Hình 2.10: Bộ nhớ chương trình và các ngăn xếp.
32
2.4.3.2 Bộ nhớ dữ liệu (Data memory)
Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làm nhiều bank. Đối
với PIC16F887 bộ nhớ dữ liệu chia làm 4 bank. Mỗi bank có dung lượng 128 byte,
bao gồm các thanh ghi có chức năng đặc biệt SFG (Special Function Register) nằm ở
các vùng địa chỉ thấp và các thanh ghi mục đích chung GPR (General Purpose
Register) nằm ở các vùng địa chỉ còn lại trong bank. Các thanh ghi SFG thường xuyên
được sử dụng (ví dụ như thanh ghi STATUS) sẽ được đặt ở tất cả các bank của bộ đếm
dữ liệu giúp thuận tiện trong quá trình truy xuất và làm giảm bớt lệnh của chương
trình. Sơ đồ cụ thể của bộ nhớ dữ liệu PIC16F887 như hình 2.11.
Hình 2.11: Bộ nhớ dữ liệu.
33
2.4.3.3 Các thanh ghi đặc biệt
Đây là các thanh ghi được sử dụng bởi CPU hoặc được dùng để thiết lập và
điều khiển các khối chức năng được tích hợp bên trong vi điều khiển. Có thể phân chia
SFR làm hai loại: thanh ghi SFR liên quan đến các chức năng bên trong CPU và thanh
ghi SFR dùng để thiết lặp và điều khiển các khối chức năng bên ngoài ( ví dụ như
ADC, PWM,). Các thanh ghi liên quan đến chức năng bên trong:
- Thanh ghi STATUS (03h, 83h, 103h, 183h): thanh ghi chứa kết quả thực hiện
phép toán của khối ALU, trạng thái RESET và các bit chọn bank cần truy xuất trong
bộ nhớ dữ liệu.
Hình 2.12: Thứ tự các bit trên thanh ghi STATUS.
-Thanh ghi OPTION_REG (81h, 181h): thanh ghi này cho phép đọc và ghi, cho
phép điều khiển các chức năng pulled-up của các chân PORTB, xác lập các tham số
xung tác động, cạnh tác động của ngắt ngoại vi và bộ đếm Time0.
Hình 2.13: Thứ tự các bit trên thanh ghi OPTION_REG.
-Thanh ghi INTCON (0Bh, 8Bh, 10Bh, 18Bh): thanh ghi cho phép đọc và ghi,
chứa các bit điều khiển và các bit cờ hiệu khi Time0 tràn, ngắt ngoại vi RB0/INT và
ngắt interrupt-on-change tại các chân của PORTB.
Hình 2.14: Thứ tự các bit trên thanh ghi INTCON.
-Thanh ghi PIE1 (8Ch): chứa các bit điều khiển chi tiết các ngắt của khối chức
năng ngoại vi.
34
Hình 2.15: Thứ tự các bit trên thanh ghi PIE1.
-Thanh ghi PIR1 (0Ch) chứa cờ ngắt của các khối chức năng ngoại vi, các
ngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE1.
Hình 2.16: Thứ tự các bit trên thanh ghi PIR1.
-Thanh ghi PIE2 (8Dh): chứa các bit điều khiển các ngắt của các khối chức
năng CCP2, SSP bus, ngắt của bộ so sánh và ngắt ghi vào bộ nhớ EEPROM.
Hình 2.17: Thứ tự các bit trên thanh ghi PIE2.
-Thanh ghi PIR2 (0Dh): chứa các cờ ngắt của của các khối chức năng ngoại vi,
các ngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE2.
Hình 2.18: Thứ tự các bit trên thanh ghi PIR2.
-Thanh ghi PCON (8Eh): chứa các cờ hiệu cho biết trạng thái các chế độ Reset
của vi điều khiển.
Hình 2.19: Thứ tự các bit trên thanh ghi PCON.
2.4.4 Các bộ định thời
Vi điều khiển PIC16F887 có 3 bộ định thời Timer đó là Timer0, Timer1,
Timer2.
35
2.4.4.1 Timer0
Đây là một trong 3 bộ đếm hoặc bộ định thời của vi điều khiển PIC16F887.
Timer0 là bộ đếm 8 bit được kết nối với bộ chia tần 8 bit. Cấu trúc của Time0 cho
phép ta lựa chọn xung clock tác động và cạnh tích cực của xung clock. Ngắt Timer0 sẽ
xuất hiện khi Timer0 bị tràn. Bit TMR0IE (INTCON) là bit điều khiển của
Timer0. Khi TMR0IE=1 cho phép ngắt Timer0 tác động, TMR0IE=0 không cho phép
ngắt Timer0 tác động.
2.4.4.2 Timer1
Bộ Timer1 là bộ định thời 16 bit, giá trị của Timer1 sẽ được lưu trong thanh ghi
(TMR1H:TMR1L). Cờ ngắt của Timer1 là bit TMR1IF. Bit điều khiển của Timer1 là
TMR1IE.
Tương tự như Timer0, Timer1 cũng có 2 chế độ hoạt động: chế độ định thời và
chế độ xung kích là xung clock của oscillator (tần số Timer bằng ¼ tần số của
oscillator) và chế độ đếm (counter) với xung kích là xung phản ánh các sự kiện cần
đếm lấy từ bên ngoài thông qua chân RCO/T1OSO/T1CKI (cạnh tác động là cạnh
lên). Việc lựa chọn chế độ hoạt động của Timer được điều khiển bởi bit TMR1CS.
2.4.4.3 Timer2
Bộ Timer2 là bộ định thời 8 bit và được hỗ trợ hai bộ chia tần prescaler và
postscaler. Thanh ghi chứa giá trị đếm của Timer2 là TMR2. Bit cho phép ngắt Timer2
tác động là TMR2ON. Cờ ngắt của Timer2 là bit TMR2IF. Xung ngõ vào (bằng ¼ tần
số oscillator) được đưa qua bộ chia tần số prescaler 4 bit (với các tỉ số chia tần 1:1, 1:4
hoặc 1:6) và được điều khiển bởi các bit T2CKPS1:T2CKPS0.
2.5 OPAMP
2.5.1 Định nghĩa
Khuếch đại thuật toán, còn gọi là OPAMP (viết tắt của cụm từ Operational
Amplifier), là một bộ khuếch đại DC có hệ số khuếch đại A thường được chế tạo dưới
dạng tích hợp [2].
Khuếch đại thuật toán vốn được dùng để thực hiện các thuật toán trong máy
tính tương tự cho nên nó được mang tên như vậy. Ngày nay, khuếch đại thuật toán
36
được ứng dụng trong rất nhiều lĩnh vực khác nhau, với tầm tuần suất rất rộng từ DC
đến hàng GHz.
Hình 2.20: Sơ đồ chân của OPAMP.
OPAMP có hai đầu vào (input) dương và âm và một đầu ra (output). Điện áp
trên các đầu vào và ra là so với masse. Đầu vào dương gọi là đầu vào không đảo, nghĩa
là khi có tín hiệu đưa đến đầu vào không đảo thì tín hiệu ra cùng dấu với tín hiệu vào.
Tương tự, đầu vào âm gọi là đầu vào đảo, nghĩa là khi có tín hiệu đưa đến đầu vào đảo
thì tín hiệu ra ngược dấu với tín hiệu vào. Ngoài ra, OPAMP còn có hai đầu nối với
nguồn cung cấp đối xứng ±VCC. Điện áp cung cấp nằm trong khoảng từ 5V đến 18V.
Nguồn cung cấp cho OPAMP có thể là nguồn đơn +VCC.
Đặc điểm của OPAMP là có hệ số khuếch đại vi sai AD rất lớn (thường AD ≈
105 đến 106) và điện trở vào vi sai rất lớn, điện trở ra nhỏ. Dòng ở các đầu vào rất nhỏ
có thể xem như bằng 0.
Điện áp chênh lệch giữa hai đầu vào gọi là điện áp vi sai uD. Đặc tính của
OPAMP gồm hai vùng: vùng 1 là đặc tính truyền đạt lý tưởng (khi uD = 0 thì ur = 0),
vùng 2 là đặc tính truyền đạt thực tế của OPAMP (khi uD = 0 nhưng ur ≠ 0). Cụ thể hai
vùng như sau:
- Vùng tuyến tính: ứng với uD rất nhỏ và ur = ADuD.
- Vùng bão hòa: ứng với uD khoảng từ vài chục µV trở lên, điện áp ra ur ở vùng
bão hòa là không đổi:
ur = ±Ubh; Ubh = UCC – (2 đến 3) V.
37
2.5.2 Khuếch đại thuật toán làm việc ở chế độ khóa
Trong kỹ thuật xung người ta thường sử dụng OPAMP làm việc ở vùng bão hòa
của đặc tính truyền đạt. Lúc đó, điện áp ra ur chỉ có thể nằm ở hai mức: Mức thấp L =
- Ubh hay mức cao H = + Ubh. Ta nói OPAMP là việc ở chế độ khóa và có vai trò như
một khóa đóng/ngắt cơ khí. Khi ur = - Ubh = L, ta nói khóa mở; khi ur = +Ubh = H, ta
nói khóa đóng [1].
Hình 2.21: Đường đặc tính OPAMP làm việc ở chế độ khóa.
Hình trên là đặc tính truyền đạt lý tưởng khi OPAMP làm việc ở chế độ khóa.
Điện áp vi sai uD là điện áp điều khiển để đóng/mở khóa. Lúc uD đang rất âm, khóa
OPAMP đang ở trạng thái mở với ur = - Ubh = L. Khi uD tăng tới giá trị Uđ (Uđ > 0)
thì khóa hoàn toàn chuyển sang trạng thái đóng với ur = +Ubh = H. Vì vậy Uđ được gọi
là ngưỡng đóng của khóa OPAMP. Cũng biện luận tương tự ta có Um là ngưỡng mở
của OPAMP. Vùng Δu là độ nhạy của khóa. Đây là vùng bắt đầu và kết thúc việc
chuyển trạng thái đóng/mở. Một OPAMP lý tưởng có Δu bằng 0. Muốn giảm Δu ta
phải chọn OPAMP có hệ số khuếch đại vi sai AD càng lớn càng tốt.
2.6 PC 900V
Các máy phát dao động hay xung thường cho ta tín hiệu dưới dạng tương tự
(analog). Tuy nhiên, mạch đo tần số sử dụng vi điều khiển nên yêu cầu tín hiệu đưa
vào phải có dạng số (digital) hay nói đơn giản là có hai mức cao và thấp. Vì vậy, ta sử
dụng IC PC900V để chỉnh tín hiệu có dạng vuông và đưa vào vi điều khiển để thực
hiện chuyển đổi từ tín hiệu tương tự sang tín hiệu số.
Sơ đồ chân của PC900V như hình 2.22 [9].
38
Hình 2.22: Sơ đồ chân của PC900V.
Trong đó 1. Anode 4. V0
2. Catode 5. GND
3. NC 6. VCC
Sơ đồ khối cấu trúc bên trong của PC900V.
Hình 2.23: Sơ đồ cấu trúc bên trong của PC900V.
Trong sơ đồ trên tín hiệu được đưa vào từ hai chân Anode và Catode. Bên trong
có một đèn LED sẽ phát sáng mỗi khi giá trị điện thế tín hiệu lớn hơn một giá trị nhất
định. Ở phía đối diện với LED phát này là một LED thu có tác dụng thu ánh sáng phát
ra từ LED phát. Tín hiệu lúc này được đặt vào hai đầu vào của một OPAMP. OPAMP
được nuôi bằng nguồn thông qua một biến thế nhỏ bên trong IC. OPAMP lúc này hoạt
động ở chế độ khóa: Khi giá trị điện thế vi sai của OPAMP dương đủ lớn thì tín hiệu
ra là mức cao, transistor dẫn; và ngược lại khi điện thế vi sai của OPAMP âm đủ lớn
thì tín hiệu ra là mức thấp transistor ngưng dẫn. Khi đó ở đầu ra sẽ xuất hiện tín hiệu
dạng số, chỉ có hai mức logic là cao và thấp. Các điện trở mắc vào có chức năng hạn
dòng bảo vệ mạch. Tụ điện giá trị 0,1µF dùng để lọc nhiễu cho nguồn.
39
Chú ý: Đèn LED trong IC PC900V sẽ giảm cường độ chiếu sáng theo thời gian
hoạt động dẫn đến tín hiệu có thể sẽ bị sai lệch sau khi qua PC900V. Nếu sử dụng
trong thời gian dài thì khi thiết kế mạch nên chú ý đến điều này (giảm khoảng 50%
cường độ chiếu sáng trong 5 năm).
2.7 Flip – Flop
Flip – Flop là mạch logic có một hay hai đầu điều khiển và hai đầu ra. Tín hiệu
trên hai đầu ra phụ thuộc nhau: Nếu một đầu ra là Q thì đầu ra kia sẽ là phủ định của Q
(Q ). Khi tín hiệu vào thỏa mãn điều kiện điều khiển, thì tín hiệu đầu ra Q sẽ lật tín
hiệu từ mức logic cao H xuống thấp L và ngược lại. Vì vậy, tín hiệu đầu ra của Flip –
Flop khi có điều khiển là một bước nhảy điện áp. Đặc điểm của Flip – Flop là: Nếu
không có tín hiệu điều khiển ở ngõ vào thì mức logic (H hay L) ở ngõ ra được duy trì
ổn định [1].
Tùy theo số đầu vào điều khiển mà Flip – Flop được chia thành bốn loại chính:
S – R, J – K, T, D. Trong phần tiếp này ta sẽ khảo sát kỹ về loại S – R.
Hình 2.24: Sơ đồ chân của Flip – Flop loại S – R.
S – R Flip – Flop là loại có hai đầu vào điều khiển S, R. Đầu S (Set) gọi là đầu
ghi và R (Reset) gọi là đầu xóa. Hai đầu S và R là hai đầu điều khiển của Flip – Flop.
Ta quy ước mức logic cao (H) là 1 và mức logic thấp (L) là 0. Ta có các trường hợp
sau đây:
Nếu S = 1, R = 0 thì Q = 1 và Q = 0 tức Q ở mức cao.
Nếu S = 0, R = 1 thì Q = 0 và Q = 1 tức Q ở mức thấp.
Nếu S = 0, R = 0 thì Q = Qt (với Qt là giá trị logic ở đầu ra Q tại thời điểm t)
tức Q không thay đổi trạng thái đã có của nó. Vậy, khi không còn tín hiệu điều
khiển ghi hay xóa ở ngõ vào thì Flip – Flop vẫn giữ nguyên trạng thái đã có của
nó.
40
Nếu S = 1, R = 1 thì tín hiệu ngõ ra Q có thể là 0 hay 1, ta nói trạng thái Flip –
Flop là không xác định. Vậy, không bao giờ đặt logic 1 vào cùng S và R.
2.8 IC 555
2.8.1 Sơ đồ và chức năng các chân của IC 555
Hình 2.25: Sơ đồ chân của IC 555
− Chân 1 (GND): Dùng để nối masse.
− Chân 2 (Trigger): là đầu vào kích khởi, dùng để đặt xung kích thích bên ngoài
khi mạch làm việc ở chế độ đa hài đơn ổn.
− Chân 3 (Output): là đầu ra tín hiệu của IC.
− Chân 4 (Reset): là chân xóa, nó có thể xóa điện áp đầu ra khi điện áp đặt vào
chân này từ 0,7V trở xuống. Vì vậy, để có thể phát ra xung ở chân số 3 thì chân
số 4 phải đặt ở mức logic cao H.
− Chân 5 (Control voltage): là chân điện áp điều khiển. Ta có thể đưa một điện áp
ngoài vào chân này để làm thay đổi việc định thời của mạch, nghĩa là làm thay
đổi tần số xung phát ra. Khi không được sử dụng thì chân số 5 được nối masse
thông qua một tụ có giá trị 0,01 µF.
− Chân 6 (Threshold): là chân điện áp ngưỡng.
− Chân 7 (Discharge): là chân phóng điện.
− Chân 8 (VCC): nối với nguồn VCC từ 5 đến 18 V [10].
41
2.8.2 Sơ đồ khối và nguyên tắc hoạt động của IC555
Hình 2.26: Sơ đồ khối IC 555.
Trong sơ đồ trên ta thấy bên trong IC 555 cấu tạo ba điện trở 5KΩ, hai tầng so
áp là COMP1 (comparator 1) và COMP2 (comparator 2) thực chất là hai OPAMP hoạt
động ở chế độ khóa, một transistor và một Flip – Flop.
Giữa VCC và GND có một cầu chia thế gồm ba điện trở đều có giá trị 5KΩ (vì
vậy IC mới được đặt tên là 555). Cầu chia thế này có nhiệm vụ tạo ra hai điện áp
ngưỡng cho hai tầng so áp COMP1 và COMP2. Cụ thể tạo điện áp ngưỡng bằng 2/3
VCC cho tầng COMP1, với điện áp so sánh được đưa vào từ chân số 2; tạo điện áp
ngưỡng bằng 1/3 VCC cho tầng COMP2, với điện áp so sánh được đưa vào từ chân số
6. Trạng thái logic của hai bộ so áp sẽ quyết định trạng thái của Flip – Flop, từ đó
quyết định trạng thái tín hiệu đầu ra.
42
2.9 Sơ đồ mạch tạo xung vuông dùng 555 và nguyên tắc hoạt động
Hình 2.27: Sơ đồ mạch tạo xung sử dụng IC 555.
Khi mới đóng mạch, điện áp trên tụ C1 tăng dần từ 0 V. Giá trị điện áp trên tụ
lúc này được đưa vào ngõ 2 và 6 của IC:
− Ở ngõ 2: Do điện áp nhỏ hơn 1/3VCC và đặt vào chân âm của OPAMP
(COMP1) nên điện áp vi sai dương vì vậy ngõ ra của OPAMP sẽ chuyển sang
trạng thái đóng tức trạng thái logic là 1. Trạng thái này đặt vào chân S (Set) của
Flip – Flop.
− Ở ngõ 6: Do điện áp nhỏ hơn 2/3 VCC và đặt vào chân dương của OPAMP
(COMP2) nên điện áp vi sai âm vì vậy ngõ ra của OPAMP sẽ chuyển sang
trạng thái đóng tức trạng thái logic là 0. Trạng thái này đặt vào chân R (Reset)
của Flip – Flop.
− Lúc này, ngõ R và S của Flip – Flop lần lượt có trạng thái là 0 và 1 nên trạng
thái của Q = 1 và Q = 0 nên transistor ngưng dẫn và ngõ ra 3 cho ta mức logic
1 hay mức cao. Tụ điện nạp điện qua R1 và R2.
Khi điện thế của tụ nằm trong khoảng từ 1/3 VCC đến 2/3VCC thì trạng thái
ngõ ra của COMP1 và COMP2 là 0. Lúc này, ngõ vào của Flip – Flop là S = 0
và R = 0 nên Q sẽ giữ nguyên trạng thái trước đó là mức logic 1 nên ngõ ra 3
vẫn duy trì mức cao.
43
Khi tụ nạp đến giá trị điện thế lớn hơn 2/3VCC thì trạng thái ngõ ra của
COMP1 là 0 và COMP2 là 1. Lúc này, ngõ vào của Flip – Flop là S = 0 và R =
1 nên Q = 0 và Q = 1 nên transistor dẫn và tụ C1 xả điện qua điện trở R2, rồi
qua transistor xuống masse. Khi đó, ở ngõ ra có mức logic 0 hay mức thấp.
Khi tụ xả đến giá trị nhỏ hơn 1/3 VCC thì bắt đầu nạp lại và tiếp tục thực hiện
các quá trình như trên.
Kết quả: Ở ngõ ra 3 của IC ta thu được một dãy xung vuông với tần số phụ
thuộc vào giá trị điện trở R1, R2 và tụ C1.
2.10 Nguyên tắc hoạt động mạch đo tần số
Hình 2.28: Sơ đồ máy đo âm tần
Máy đo tần số hoạt động theo phương pháp đo số xung của tín hiệu trong thời
gian lấy mẫu là 1 giây. Với phương pháp này số xung tín hiệu đếm được trong 1 giây
chính là tần số của tín hiệu. Phương pháp này sử dụng một bộ Timer và một ngắt
ngoài. Cụ thể là Timer1 và ngắt ngoài trên chân RB0 của vi điều khiển PIC16F887.
Trong đó, Timer có nhiệm vụ tạo thời gian mẫu 1 giây, ngắt ngoài dùng để đếm số
xung của tín hiệu.
Trong mạch hình 2.28, nguồn 12VDC được cho qua diode cầu nhằm tránh hiện
tượng mắc ngược cực nguồn gây hỏng mạch. Hai IC 7809 và 7805 có nhiệm vụ hạ
điện thế lần lượt xuống 9VDC và 5VDC. Các tụ được mắc vào có tác dụng lọc cho
nguồn ổn định. Nguồn 5VDC dùng để nuôi vi điều khiển, PC900V và LCD hoạt động.
44
Thạch anh được sử dụng là loại 20MHz, có tác dụng tạo xung clock cho vi điều khiển
hoạt động. Tín hiệu bên ngoài (có dạng sin, vuông, tam giác) cần đo tần số được đưa
vào PC900V để chuyển đổi sang tín hiệu số. Tín hiệu sau khi được chuyển đổi đưa vào
vi điều khiển đã được lập trình để đo tần số của xung. Kết quả đo được hiển thị trên
màn hình LCD. Biến trở dùng để điều chỉnh độ tương phản của LCD. Nút nhấn có tác
dụng reset mạch khi có nhiễu tác động vào. Ngoài ra, ta còn tạo hai đầu nối có hiệu
điện thế 5V để cung cấp nguồn nuôi cho mạch dao động tạo xung dùng IC 555. Ta có
thể tóm tắt qua sơ đồ khối hình 2.29.
Hình 2.29: Sơ đồ khối mạch đo tần số.
Giải thuật đo tần số của vi điều khiển: Đầu tiên ta viết các chương trình con
phục vụ ngắt tràn Timer1 và ngắt ngoài trên chân RB0. Ở chương trình chính ta cho
ngắt tràn Timer1 hoạt động. Trong trình ngắt ngoài trên RB0, khi có sự thay đổi mức
tín hiệu từ cao xuống thấp (hay từ thấp lên cao) trên chân RB0 sẽ làm tăng giá trị của
biến đếm so_xung. Trong trình ngắt tràn Timer1 ta lập trình để tạo ra khoảng thời gian
lấy mẫu là 1 giây. Khi hết 1 giây thì ngắt Timer1, gán giá trị tần số bằng giá trị của
biến đếm so_xung và đặt lại Timer1 về 0 để tiếp tục quá trình đếm. Sau đó, ta lưu lại
giá trị của biến đếm và hiển thị lên màn hình LCD.
Tôi vừa trình bày một số linh kiện và nguyên tắc hoạt động của mạch đo tần số
lẫn mạch tạo xung dùng IC 555. Để hiện thực hóa những tính toán hiểu biết đòi hỏi
phải thực hiện những kiến thức đó ngoài thực tế. Do đó, tôi đã thực hiện mô phỏng
mạch, thiết kế sơ đồ nguyên lý, mạch in và thi công mạch. Tất cả các công đoạn này
được trình bày ở chương 3.
45
CHƯƠNG 3: MÔ PHỎNG – THIẾT KẾ SƠ ĐỒ
NGUYÊN LÝ VÀ MẠCH IN
Ở chương này tôi đã sử dụng phần mềm Protues để mô phỏng hoạt động của
mạch thực tế; phần mềm chuyên dụng Orcad để thiết kế sơ đồ nguyên lý và mạch in
cho hai mạch mà tôi đang nghiên cứu. Phiên bản Orcad được trình bày sau đây là 10.5
khá cũ so với những phiên bản mới như 16. hay 16.5 hiện nay. Tuy nhiên, lý do được
đưa ra ở đây là phiên bản 10.5 này cài đặt đơn giản, hoạt động khá ổn định, hỗ trợ thư
viện đầy đủ cho dự án của tôi.
3.1 Mô phỏng bằng Proteus
Proteus là phần mềm cho phép mô phỏng hoạt động của mạch điện tử bao gồm
phần thiết kế mạch và viết chương trình điều khiển cho các họ vi điều khiển như MCS-
51, PIC, AVR, Proteus là phần mềm mô phỏng mạch điện tử của Lancenter
Electronics, mô phỏng cho hầu hết các linh kiện điện tử thông dụng, đặc biệt hỗ trợ
cho cả các MCU như PIC, 8051, AVR, Motorola. Phần mềm bao gồm 2 chương trình:
ISIS cho phép mô phỏng mạch và ARES dùng để vẽ mạch in.
Để khởi động chương trình vào: Start > All programs > Proteus 7 Professional
> ISIS 7 Professional. Giao diện màn hình chính của ISIS như hình 3.1
Hình 3.1: Giao diện chính của ISIS.
46
Muốn lấy linh kiện ta nhấp vào nút tắt Pick from Libraries trên
màn hình.
Khung Pick devices hiện ra, ở ô Keywords ta gõ tên linh kiện muốn sử dụng thì
ô Category hiện ra một số gợi ý. Ví dụ muốn chọn điện trở gõ Resistor. Nhấp vào
Resistors trong ô Category, tiếp theo lựa chọn loại điện trở muốn sử dụng. Ô Results
(kết quả) hiện ra các kết quả tìm kiếm với thông số chi tiết. Chọn linh kiện phù hợp
với yêu cầu và nhấp OK.
Hình 3.2: Khung Pick Devices.
Lúc này khung Devices hiện ra linh kiện điện trở vừa chọn. Tiếp tục chọn linh
kiện như vừa nêu cho đến khi đầy đủ. Tiếp theo, tôi thực hiện sắp xếp linh kiện theo
như mong muốn. Ưu điểm của phần mềm proteus là không cần phải thiết kế mạch
hoàn chỉnh, ví như không cần nguồn hay nối đất mà linh kiện vẫn hoạt động được.
Muốn đặt linh kiện, nhấp vào tên linh kiện ở khung Devices, sau
đó di chuyển con trỏ đến nơi cần đặt và nhấp trái chuột để đặt. Để chọn
xung cần phát, nhấp vào nút Generator Mode trên thanh công cụ. Ở khung Generators
chọn Pulse và thực hiện như sắp xếp linh kiện để đặt nguồn phát xung ở nơi thích hợp.
Nếu kích thước vùng làm việc không phù hợp (quá lớn hay quá nhỏ) có thể phóng to
bằng cách đưa con trỏ chuột vào vùng cần điều chỉnh rồi nhấn phím tắt F6 hay thu nhỏ
bởi F7. Ví dụ sau khi sắp xếp linh kiện cho mạch đo tần số tôi được như hình 3.3.
47
Hình 3.3:Linh kiện sau khi sắp xếp xong.
Để đi dây, di chuyển con trỏ đến chân linh kiện rồi nhấp sau đó di chuyển con
trỏ đến chân linh kiện cần nối và nhấp để kết thúc. Kết quả như hình 3.4.
Hình 3.4: Nối dây cho linh kiện.
Khi nối dây xong, nhấp vào nút Play ở phía dưới giao diện màn hình để chạy
mô phỏng. Nếu như mạch thiết kế sai thì mô phỏng không hoạt động hoặc sẽ mô
phỏng sai; cần coi lại nguyên tắc hoạt động, linh kiện, nối dây và chỉnh sửa lại cho đến
khi hoàn chỉnh. Kết quả mô phỏng mạch đo tần số.
48
Hình 3.5: Mô phỏng mạch đo tần số đang hoạt động.
Thực hiện mô phỏng cho mạch tạo xung dùng IC 555 được thực hiện tương tự,
tôi được như hình 3.6.
Hình 3.6: Mô phỏng mạch tạo xung dùng IC 555.
3.2 Mạch tạo xung dùng 555
3.2.1 Thiết kế sơ đồ nguyên lý
Khởi động chương trình: nhấp chọn Start > All programs > Orcad 10.5 > Orcad
CIS.
49
Màn hình làm việc của chương trình Orcad Capture xuất hiện như hình 3.1.
Hình 3.7: Giao diện Orcad Capture CIS.
Tạo trang thiết kế mới
Muốn thiết kế một sơ đồ phải tạo một trang dự án mới, trên thanh trình đơn
nhấp File > New > Project.
Hình 3.8: Tạo trang thiết kế mới.
Hộp thoại New Project xuất hiện, khung Name nhập tên sơ đồ thiết kế “Mach
555”. Chọn Schematic trong khung Create a New Project Using. Trong khung
Location, chọn đường dẫn đến thư mục lưu sơ đồ, nhấp nút Browse.
50
Hình 3.9: Hộp thoại New Project.
Cửa sổ Select Directory xuất hiện, trong khung Drives nhấp chọn chọn ổ đĩa
lưu bài thiết kế. Ở đây ví dụ tôi chọn ổ đĩa và thư mục như hình 3.10.
Hình 3.10: Cửa sổ Select Directory.
Nhấp đúp vào thư mục cần chọn và nhấn OK.
51
Hình 3.11: Chọn thư mục lưu.
Cửa sổ New Project xuất hiện lại nhấn OK.
Hình 3.12: Hộp thoại New Project sau khi chọn xong thư mục lưu.
Màn hình thiết kế xuất hiện như hình 3.13.
52
Hình 3.13: Màn hình chính Capture CIS.
Định dạng trang thiết kế: Chọn đơn vị đo và kích thước trang thiết kế
Trên thanh menu, nhấp chọn Options > Design Template
Hộp thoại Design Templates xuất hiện, chọn tab Page Size. Chọn các yếu tố
trong khung như hình rồi nhấn OK.
Hình 3.14: Hộp thoại Design Templates.
Lấy các linh kiện cho sơ đồ
− Mở thư viện linh kiện
Trên thanh menu, nhấp chọn Place > Part hay nhấp biểu tượng
Place part từ thanh công cụ bên mép phải màn hình thiết kế.
53
Hộp thoại Place Part xuất hiện, nhấp nút Add Library để mở các thư viện. Hộp
thoại Browse File xuất hiện, chọn tất cả các thư viện rồi nhấn Open.
Hình 3.15: Hộp thoại Browse File.
− Lấy linh kiện cho sơ đồ
Trong hộp thoại Place Part, khung Libraries chọn tất cả các thư viện. Ở ô Place
Part gõ vào từ khóa linh kiện muốn lấy. Ví dụ như điện trở thì gõ R, tụ điện gõ Cap,
Sau đó chọn linh kiện phù hợp và nhấn OK.
Hình 3.16: Hộp thoại Place Part.
54
Sau khi chọn xong linh kiện, di chuyển chuột vào vùng thiết kế, nhấp đặt linh
kiện ở các vị trí thích hợp như hình 3.17. (Chú ý: nếu linh kiện không ở vị trí thuận lợi
cho việc sắp xếp có thể xoay linh kiện bằng cách nhấn phím tắt R.)
Hình 3.17: Vị trí các linh kiện sau khi sắp xếp xong.
Để thuận tiện cho việc vẽ mạch in sau này, tôi thực hiện gán chân cho linh kiện.
Vào Start > All programs > Orcad 10.5 > Layout Plus.
Màn hình làm việc của chương trình Orcad Layout Plus xuất hiện như hình
3.18.
Hình 3.18: Giao diện Orcad Layout PLus
Trên thanh menu chọn Tools > Library Manager, màn hình Library hiện lên
như hình 3.19.
55
Hình 3.19: Giao diện Library Mananger.
Ở khung Libraries chọn Add hiện ra khung Add Library. Chọn tất cả thư viện
Layout có đuôi .llb và nhấn Open để thêm. Lúc này thư viện đã được thêm vào
Libraries. Nhấp chọn thư viện thích hợp, ở khung Footprints, gõ từ khóa của linh kiện
để tìm chân linh kiện phù hợp. Ví dụ như hình 3.20.
Hình 3.20: Khung Libraries sau khi thêm thư viện layout.
Nhấp vào tên linh kiện có chân phù hợp, sau đó copy tên Footprint từ ô
Footprints. Ví dụ tôi chọn chân điện trở như hình 3.21.
56
Hình 3.21: Chọn Footprint cho điện trở.
Tiếp theo, tôi quay lại màn hình của Orcad Capture CIS. Chọn linh kiện mà tôi
cần gắn chân, nhấp đúp thì hiện ra màn hình Property Editor. Ở khung PCB Footprint
tôi dán tên chân linh kiện vừa copy vào. Nhấn Close để thoát màn hình.
Hình 3.22: Dán Footprint cho linh kiện.
Tiếp tục thực hiện các bước trên cho đến khi toàn bộ linh kiện đã được dán đầy
đủ chân linh kiện. Việc làm này nhằm tránh thực hiện việc khai báo chân khi tạo file
.max sau này.
Tiếp theo, tôi sẽ đi dây cho sơ đồ. Ở cột bên phải của Orcad
Capture ta chọn nút Place Wire.
Lúc này, con trỏ chuột biến thành hình dấu (+), di chuyển chuột đến chân linh
kiện cần nối nhấp kéo đến chân linh kiện thứ hai, nhấp chuột để kết thúc. Khi dây nối
được bắt dính, tại các chân linh kiện xuất hiện các chấm tròn nhỏ màu đỏ. Trong quá
trình nối dây nếu muốn thoát lệnh này thì nhấn phím Esc.
57
Hình 3.23: Đi dây cho linh kiện.
Thực hiện tương tự, ta được sơ đồ nguyên lý như hình 3.24.
Hình 3.24: Sơ đồ nguyên lý mạch tạo xung dùng IC 555.
Sau khi vẽ sơ đồ nguyên lý xong, nhấp biểu tượng Save
document lưu sơ đồ đã vẽ.
Nhấp nút Project Manager để tiện việc kiểm tra sơ đồ và tạo ta
file có đuôi .MNL trong thiết kế mạch in.
Lúc này bên trái giao diện xuất hiện cây thư mục chỉ đường dẫn
đến sơ đồ, chọn PAGE1 sau đó nhấp biểu tượng Design rules check.
58
Hình 3.25: Giao diện Project Manager.
Hộp thoại Design Rules Check xuất hiện, thiết lập các thông số như hình 3.36
và nhấn OK.
Hình 3.26: Hộp thoại Design Rules Check.
Tiếp theo, nhấp biểu tượng Create Netlist trên thanh công cụ:
59
Hộp thoại Create Netlist xuất hiện, chọn tab Layout, thiết lập các thông số như
hình 3.27 rồi nhấp OK.
Hình 3.27: Hộp thoại Create Netlist.
Bảng thông báo Orcad Capture xuất hiện thông báo đường dẫn lưu file thiết kế,
nhấp OK để tiếp tục.
Hình 3.28: Thông báo đường dẫn lưu file thiết kế.
Lúc này trong thư mục Outputs của cây thư mục xuất hiện hai file thiết kế có
định dạng là .drc và .mnl như hình 3.29.
60
Hình 3.29: Vị trí hai file .drc và .mnl.
Nhấp đúp vào PAGE1 ta sẽ quay lại màn hình thiết kế. Nhấn Save Document
để lưu, Quá trình thiết kế sơ đồ nguyên lý kết thúc. Tiếp theo tôi thực hiện vẽ mạch in.
3.2.2 Thiết kế mạch in
Khởi động chương trình Layout như đã thực hiện ở phần dán chân linh kiện.
Để tạo một trang thiết kế mạch in mới ta vào File > New trên thanh menu. Hộp
thoại AutoECO xuất hiện.
Hình 3.30: Hộp thoại AutoECO.
Ở khung Input Layout TCH or TPL or MAX file nhấp Browse. Lúc này hiện
lên hộp thoại Input Layout MAX file, nhấp chọn file _default.tch và nhấn Open.
61
Hình 3.31: Hộp thoại Input Layout MAX File.
Khung Input Layout TCH or TPL or MAX file xuất hiện file đã chọn. Tiếp tục
nhấp nút Browse ở khung Input MNL netlist file. Hộp thoại Input Layout Max File
xuất hiện. Chọn nơi lưu file .MNL đã tạo ở mục trước và nhấp Open.
Hình 3.32: Chọn file .MNL đã tạo ở sơ đồ nguyên lý.
Khung Output Layout MAX file xuất hiện file xuất ra theo tên của sơ đồ đã lưu,
có định dạng .max và nhấn Apply ECO.
62
Hình 3.33: Hộp thoại AutoECO hoàn chỉnh.
Bảng AutoECO xuất hiện cho biết thông số các linh kiện đã lựa chọn. Nhấp
chọn Accept this ECO để tiếp tục.
Hình 3.34: Thông báo thông số các linh kiện đã chọn.
63
Hộp thoại AutoECO xuất hiện thông báo cho biết chương trình đã hoàn thành
việc xử lý, nhấp OK để tiếp tục.
Hình 3.35: Thông báo đã hoàn thành việc xử lý.
Màn hình thiết kế Design của chương trình hiển thị, nhấp chọn nút Zoom All từ
thanh công cụ để xem toàn bộ mạch in rõ hơn. Tiếp theo, cần nhấn nút Online DRC
trên thanh menu để chuyển nó sang trạng thái tắt có màu đen để tránh gây ra các lỗi về
sau.
Hình 3.36: Giao diện Orcad Layout sau khi tạo file .max.
Để việc đi dây được thuận tiện, tôi thực hiện sắp xếp lại linh kiện. Muốn sắp
xếp, nhấp nút Component Tool trên thanh công cụ. Sau đó chỉ việc nhấp vào linh kiện
cần di chuyển và thả ở nơi thích hợp. Trong quá trình sắp xếp có thể xoay linh kiện
bằng phím tắt R. Sau khi di chuyển xong một linh kiện nên nhấn phím tắt M để tối ưu
hóa đường dây nối. Sau khi sắp xếp xong tôi được mạch hình 3.37.
64
Hình 3.37: Sau khi sắp xếp xong linh kiện.
Chọn lớp để vẽ mạch in
Muốn chọn lớp để vẽ mạch in nhấp chọn nút View
Spreasheet trên thanh công cụ rồi chọn Layers khi đó khung
Layers xuất hiện như sau.
Hình 3.38: Khung Layers.
Trong đó TOP là mặt trên, BOTTOM là mặt dưới, các lớp INNER1 đến 12 là
các lớp giữa hai lớp trên. Chú ý rằng chỉ điều chỉnh chọn lớp ở các lớp này, các mục
65
khác không được điều chỉnh nếu như không có yêu cầu đặc biệt nào. Nếu muốn hay
không muốn sử dụng lớp nào trong thiết kế mạch in thì nhấp chọn khung tương ứng ở
cột Layer Type, nhấp phải chuột chọn Properties. Khung Edit Layer xuất hiện như
hình 3.39.
Hình 3.39: Khung Edit Layer.
Nếu chọn đi dây trên lớp này thì đánh dấu vào dòng Routing Layer trong bảng
Layer Type. Ngược lại, nếu không muốn sử dụng lớp này thì ta chọn Unused Routing.
Chọn xong nhấn OK để kết thúc việc chọn lớp vẽ mạch in. Ở mạch 555 tôi chỉ sử dụng
mặt dưới để vẽ, các mặt còn lại không sử dụng.
Hình 3.40: Khung Layer sau khi chọn xong lớp vẽ mạch in.
66
Nhấp Close để tắt màn hình chọn lớp. Tiếp theo tôi chọn kích cỡ dây cho mạch
in. Nhấp chọn nút View Spreadsheet > Nets. Hộp thoại Nets xuất hiện. Muốn thay đổi
kích thước dây nào thì chọn ô tương ứng với dây đó ở cột Width Min Con Max và
nhấp phải chọn Properties từ trình đơn xổ xuống.
Hình 3.41: Hộp thoại Nets.
Hộp thoại Edit Net xuất hiện, nhập vào ba ô Min Width, Conn Width, Max
Width kích thước dây phù hợp. Nên chọn kích thước của dây nguồn và nối đất là 50
mils cho cả ba ô. Các dây còn lại thì 20 đến 30 mils là phù hợp. Sau đó nhấp OK.
Hình 3.42: Hộp thoại Edit Net.
Các thông số được thay thế ở khung Width Min Con Max, nhấp Close đóng hộp
thoại.
67
Hình 3.43: Hộp thoại Net sau khi điều chỉnh các thông số.
Để chạy dây tự động cho mạch cần vẽ Board Outline cho mạch. Chọn Obstacle
Tool. Sau đó, di chuyển con trỏ vào vùng thiết kế. Nhấp chuột phải chọn New. Nhấp
chuột phải lần nữa chọn Properties. Bảng Edit Obstacle hiện ra. Chọn các thông số như
hình và nhấp OK.
Hình 3.44: Hộp thoại Edit Obstacle.
Di chuyển con trỏ tới nơi thích hợp và nhấp, giữ và kéo chuột sao cho đường
bao màu vàng phải chạy xung quanh mạch và kín. Tiếp theo tôi chạy dây tự động cho
mạch như sau. Vào Auto > Autoroute > Board. Khi chạy dây xong sẽ hiện thông báo
như hình 3.45. Nhấp OK để tiếp tục.
68
Hình 3.45:Thông báo đã chạy dây xong.
Khi đó mạch in tôi vẽ được như hình 3.46.
Hình 3.46:Mạch in mạch tạo xung dùng IC 555 hoàn chỉnh.
Đến đây thì việc thiết kế mạch in đã kết thúc. Tôi lưu file lại và mang đi thi
công.
3.3 Mạch đo tần số
Sơ đồ nguyên lý và mạch in được thực hiện tương tự qua các bước trên, tôi
được sơ đồ nguyên lý và mạch in như hình 3.47 và 3.48.
69
Hình 3.47: Sơ đồ nguyên lý mạch đo tần số.
Hình 3.48: Mạch in của mạch đo tần số.
70
3.4 Thi công mạch in bằng phương pháp ủi thủ công.
3.4.1 In mạch
Công việc đầu tiên của quá trình thi công là in mạch. Ở khâu này chỉ đơn giản
lấy file .max đã được tạo ở phần thiết kế mạch in bằng Orcad đến chỗ in. Tuy nhiên,
không phải mọi chỗ in sao tài liệu đều đáp ứng yêu cầu này. Có thể khắc phục bằng
cách xuất file .pdf từ file .max, nhưng lại dẫn đến việc in mạch không đúng kích thước
với thiết kế dẫn đến việc thi công thất bại. Hiện tại, có hai địa điểm đáp ứng khá tốt
yêu cầu là: tiệm in Lam Sơn trên đường Đồng Nai và tiệm in ở Lữ Gia, thành phố Hồ
Chí Minh. Nên in nhiều bản để khi thực hiện ủi mạch có sai sót gì thì có bản thay thế.
3.4.2 Cắt board
3.4.2.1 Cắt phần Layout từ giấy in
Cắt phần Layout theo đường nét bao bên ngoài, tức đường Board Outline mà đã
vẽ khi thiết kế mạch in.
3.4.2.2 Chuẩn bị board đồng
Thường chọn loại L, cỡ 20x30 cm. Dùng thước đo trước khoảng mạch cần ủi
trên board đồng, và dùng thước kẻ khung bản mạch cần ủi. Sau đó, cắt theo đường đã
vẽ. Chú ý: sau khi cắt mạch trên đến độ sâu từ ½ đến 1/3 độ dày board thì lật mặt sau
cắt theo đường đó, tránh trường hợp chỉ cắt một mặt, khi bẻ, mặt sau sẽ không đẹp.
Sau khi cắt xong, dùng tay bẻ nhẹ được mảnh board cần ủi.
3.4.3 Ủi mạch
Dùng giấy nhám chà board nhằm đánh hết phần đồng oxi hóa để mực dễ dính
lên. Yêu cầu cần đạt là sau khi đánh board phải sạch và sáng. Dùng tay thoa nhựa
thông lỏng lên bề mặt board một lớp mỏng giúp việc truyền nhiệt tốt hơn. Sau đó dùng
khăn giấy lau sạch bề mặt board. Gấp các nếp giữa giấy và board sao cho mạch sau khi
ủi nằm đúng vị trí, sau đó dùng băng dán cố định lại. Dùng bàn ủi (chỉnh độ nóng cực
đại) kéo từ từ: từ mép này sang mép kia, mức độ đè vừa phải. Ủi cho đến khi các
đường nét mạch hằn lên thì dừng lại, với board cỡ 6x8 cm thì khoảng 5 phút là được.
71
Chú ý:
− Cần chú ý dùng mũi bàn ủi và các phần gần cạnh bàn ủi ủi kỹ phần trung tâm
mạch và các mép ngoài.
− Phần quét nhựa thông có thể bỏ qua. Mục đích của việc quét nhựa thông nhằm
tiết kiệm thời gian ủi và ủi dễ dàng hơn.
− Tránh đè mạnh quá mức bàn ủi có thể làm giấy trượt trên board gây hỏng board,
hay dùng mũi bàn ủi chà mạnh sẽ gây rách giấy.
3.4.4 Ngâm
Board sau khi ủi xong đem ngâm vào nước sạch, chờ khoảng 2 phút cho giấy
mềm và rã ra. Lấy board ra rồi lột giấy từ từ, chậm và nhẹ nhàng. Sau đó dùng giấy
thấm cho mạch khô rồi và dùng bút lông kẻ lại vết mực đã mất.
Tiếp theo, ngâm mạch vào nước đã pha bột sắt, nhớ úp mặt board đồng xuống
dưới rồi lắc nhẹ. Nếu lắc liên tục thì khoảng 10 phút ta được mạch, còn 3 phút lắc một
lần thì thời gian lâu hơn. Dùng giấy nhám chà mực ra, việc chà mực sẽ nhanh hơn nếu
dùng axeton.
3.4.5 Khoan
Để khoan cho dễ nên kê mạch lên cao. Đưa mũi khoan lại gần lỗ cần khoan rồi
bấm nút để khoan. Cần chú ý tránh run tay, khoan dứt khoát vì nếu khoan sai sẽ phá
hỏng pad đồng.
3.4.6 Hàn linh kiện
Đây là công đoạn cuối trong quá trình thi công mạch in. Cách hàn như sau: để
phần mũi hàn tiếp xúc với cả pad đồng và chân linh kiện, chờ 1 lúc cho pad nóng lên,
rồi vừa đưa chì hàn vừa xoay mũi hàn và gạt dứt khoát mũi hàn ra là được.
Tôi vừa trình bày các bước để thiết kế và thi công một mạch điện tử bất kỳ. Vậy
thì kết quả có đúng như mong đợi hay không, tôi sẽ làm rõ qua chương tiếp theo.
72
CHƯƠNG 4: KẾT QUẢ
Chương này trình bày các kết quả thu được từ thực nghiệm của mạch tạo xung
dùng IC 555 và máy đo âm tần hiển thị số.
4.1 Mạch đo tần số
4.1.1 Thực hành trên Testboard
Hình 4.1: Kết quả thực hành trên Testboard.
4.1.2 Mạch sau khi gia công và hàn linh kiện
Hình 4.2: Mạch đo tần số sau khi thi công, hàn linh kiện.
73
4.1.3 Máy đo tần số hoàn chỉnh
Hình 4.3: Máy đo tần số hoàn chỉnh.
4.2 Mạch tạo xung dùng IC 555
4.2.1 Thực hành trên Testboard và quan sát tín hiệu qua dao động ký điện
tử
Hình 4.4: Thực hành trên Testboard.
74
Hình 4.5: Quan sát tín hiệu do mạch tạo xung tạo ra qua dao động ký.
4.2.2 Mạch tạo xung hoàn chỉnh
Hình 4.6: Mạch tạo xung sau khi thi công, hàn linh kiện.
4.3 Đo tần số từ mạch phát xung 555 sử dụng máy đo tần số
4.3.1 Thực hành trên Testboard
Hình 4.7: Thực hành trên Testboard.
75
4.3.2 Kết quả thực nghiệm
Hình 4.8: Kết quả thực nghiệm.
4.4 Đo tần số từ máy phát xung chuẩn
Hình 4.9: Đo tần số từ máy phát xung chuẩn.
Máy đo tần số âm tần hiển thị số đo được tần số từ 0 Hz đến 20KHz.
Sau đây là bảng các giá trị tần số máy phát xung chuẩn phát ra, tần số máy đo
âm tần đo được và sai số tỉ đối tương ứng.
76
Bảng 4.1: Tần số từ 0 đến 5.000 Hz.
Tần số máy phát xung chuẩn (Hz) Tần số máy đo đo được (Hz) Sai số (%)
2500 2492 0,32
2510 2501 0,36
2520 2511 0,36
2530 2521 0,36
2540 2531 0,35
2550 2541 0,35
2560 2551 0,35
2570 2561 0,35
2580 2571 0,35
2590 2581 0,35
2600 2591 0,35
2610 2601 0,34
2620 2611 0,34
2630 2622 0,30
2640 2631 0,34
2650 2641 0,34
2660 2651 0,34
2670 2661 0,34
2680 2671 0,34
2690 2681 0,34
Bảng 4.2: Tần số từ 5.000 đến 10.000 Hz.
Tần số máy phát xung chuẩn (Hz) Tần số máy đo đo được (Hz) Sai số (%)
7500 7475 0,33
7510 7486 0,32
7520 7494 0,35
7530 7505 0,33
7540 7514 0,34
7550 7524 0,34
7560 7534 0,34
7570 7544 0,34
7580 7554 0,34
7590 7564 0,34
7600 7574 0,34
7610 7584 0,34
7620 7594 0,34
7630 7604 0,34
7640 7614 0,34
7650 7624 0,34
7660 7634 0,34
7670 7644 0,34
77
7680 7654 0,34
7690 7664 0,34
Bảng 4.3: Tần số từ 10.000 đến 15.000 Hz.
Tần số máy phát xung chuẩn (Hz) Tần số máy đo đo được (Hz) Sai số (%)
12500 12459 0,33
12510 12468 0,34
12520 12478 0,34
12530 12489 0,33
12540 12502 0,30
12550 12508 0,33
12560 12518 0,33
12570 12527 0,34
12580 12540 0,32
12590 12547 0,34
12600 12559 0,33
12610 12568 0,33
12620 12578 0,33
12630 12587 0,34
12640 12597 0,34
12650 12607 0,34
12660 12617 0,34
12670 12628 0,33
12680 12637 0,34
12690 12648 0,33
Bảng 4.4: Tần số từ 15.000 đến 20.000 Hz.
Tần số máy phát xung chuẩn (Hz) Tần số máy đo đo được (Hz) Sai số (%)
17500 17442 0,33
17510 17451 0,34
17520 17461 0,34
17530 17472 0,33
17540 17480 0,34
17550 17492 0,33
17560 17501 0,34
17570 17517 0,30
17580 17521 0,34
17590 17531 0,34
17600 17541 0,34
17610 17556 0,31
17620 17561 0,33
17630 17572 0,33
78
17640 17581 0,33
17650 17594 0,32
17660 17601 0,33
17670 17613 0,32
17680 17621 0,33
17690 17632 0,33
Hình 4.10: Đồ thị so sánh tần số đo được của máy đo âm tần và máy phát xung chuẩn.
4.5 Kết luận và hướng phát triển
4.5.1 Kết luận
Bằng những kiến thức về điện – điện tử, tôi đã lắp ráp thành công máy đo âm
tần hiển thị số. Máy đo có kích thước nhỏ gọn, lắp đặt, di chuyển đơn giản, dễ dàng.
Sai số của máy đo so với máy phát xung chuẩn nhỏ nên khá tin cậy trong việc đo tần
số âm tần của các xung hình sin, vuông, tam giác.
4.5.2 Hướng phát triển
Với những đặc điểm trên thì máy đo âm tần chỉ mới dừng lại ở mức tần số thấp
và chưa hiển thị được phần thập phân của tần số. Đề tài còn có thể mở rộng ra cho việc
đo tần số cao tần, với mức độ hiển thị chính xác có thể tới phần thập phân. Ngoài ra,
máy đo âm tần có thể kết hợp với một mạch tạo xung bất kỳ để tạo thành máy phát
xung hiển thị số.
79
PHỤ LỤC
Phụ lục 1: Code lập trình đo tần số bằng phương pháp tạo thời gian chuẩn 1s [11]
#include
#include
#include
#INT_EXT
void dem_xung() // Trinh phuc vu ngat ngoai
{
so_xung+=1;
}
#INT_TIMER1
void tao_tre_1s() // Trinh phuc vu ngat tran TIMER1
{
setup_timer_1(T1_DISABLED);
count_t1++;
if(count_t1==38) // Tao khoang thoi gian 1s
{
tan_so = so_xung;
so_xung = 0;
count_t1 = 0;
enable_display = 1;
}
set_timer1(0);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_2);
}
void main()
{
DDRD = DDROUT;
enable_interrupts(INT_TIMER1); // Cho phep ngat tran TIMER1
ext_int_edge(H_TO_L); // Cau hinh ngat ngoai theo canh xuong
enable_interrupts(INT_EXT); // Cho phep ngat ngoai
enable_interrupts(GLOBAL); // Cho phep ngat toan cuc
setup_timer_1(T1_INTERNAL|T1_DIV_BY_2); // Cau hinh bo chia cho TIMER1
set_timer1(0); // Cau hinh gia tri cho thanh ghi TMR1
LCD_Init();
LCD_Gotoxy(0,0);
sprintf(lcd_buff,"TRUONG DHSPTPHCM");
LCD_Puts(lcd_buff);
LCD_Gotoxy(0,1);
sprintf(lcd_buff," KHOA VAT LY ");
delay_ms(10);
LCD_Puts(lcd_buff);
delay_ms(2000);
LCD_Clear();
LCD_Gotoxy(0,0);
sprintf(lcd_buff," MAY DO AM TAN ");
LCD_Puts(lcd_buff);
while(TRUE)
{
if(enable_display)
{
LCD_Gotoxy(0,1);
sprintf(lcd_buff,"TAN SO: %5lu Hz",tan_so);
LCD_Puts(lcd_buff);
enable_display = 0;
}
}
}
80
Phụ lục 2: Giao tiếp LCD [11]
#include "lcd_16x2.h"
void LCD_Enable(void)
{
LCD_EN=1;
delay_us(3);
LCD_EN=0;
delay_us(50);
}
//Ham Gui 4 Bit Du Lieu Ra LCD
void LCD_Send4Bit( uint8_t Data )
{
LCD_D4=(Data>>0)&0x01;
LCD_D5=(Data>>1)&0x01;
LCD_D6=(Data>>2)&0x01;
LCD_D7=(Data>>3)&0x01;
}
// Ham Gui 1 Lenh Cho LCD
void LCD_SendCommand (uint8_t command )
{
LCD_Send4Bit ( command >>4 ); /* Gui 4 bit
cao */
LCD_Enable () ;
LCD_Send4Bit ( command ); /* Gui 4 bit
thap*/
LCD_Enable () ;
}
// Ham Khoi Tao LCD
void LCD_Init ( void )
{
LCD_Send4Bit(0x00);
delay_ms(20);
LCD_RS=0;
LCD_RW=0;
LCD_Send4Bit(0x03);
LCD_Enable();
delay_ms(5);
LCD_Enable();
delay_us(100);
LCD_Enable();
LCD_Send4Bit(0x02);
LCD_Enable();
LCD_SendCommand( 0x28 ); // giao thuc 4
bit, hien thi 2 hang, ki tu 5x8
LCD_SendCommand( 0x0c); // cho phep hien
thi man hinh
LCD_SendCommand( 0x06 ); // tang ID,
khong dich khung hinh
LCD_Clear(); // xoa toan bo khung
hinh
}
//Ham Thiet lap vi tri con tro
void LCD_Gotoxy(uint8_t x, uint8_t y)
{
uint8_t address;
if(!y)
address = (0x80+x);
else
address = (0xC0+x);
delay_ms(1);
LCD_SendCommand(address);
delay_ms(5);
}
// Ham Xoa Man Hinh LCD
void LCD_Clear()
{
LCD_SendCommand(0x01);
delay_ms(5);
}
// Ham Gui 1 Ki Tu Len LCD
void LCD_PutChar ( uint8_t Data )
{
LCD_RS=1;
LCD_SendCommand( Data );
LCD_RS=0;
}
//Ham Gui Mot Chuoi Ki Tu Len LCD
void LCD_Puts (uint8_t *s)
{
while (*s)
{
LCD_PutChar(*s);
s++;
}
}
81
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1] Lương Ngọc Hải (2007), “Giáo trình kỹ thuật xung – số”, Tái bản lần thứ ba, Nhà
xuất bản Giáo Dục, Thành phố Hồ Chí Minh.
[2] Hồ Văn Sung (2008), “Cơ sở lý thuyết mạch điện và điện tử”, Nhà xuất bản khoa
học và kỹ thuật, Thành phố Hồ Chí Minh.
[3] Trương Văn Tám, “Mạch điện tử 1 và 2”, Nhà xuất bản Đại học Cần Thơ, Thành
phố Cần Thơ.
[4] Kiều Xuân Thực, Vũ Thị Thu Hương (2010), “Vi điều khiển – Cấu trúc – Lập trình
và ứng dụng”, Tái bản lần thứ hai, Nhà xuất bản Giáo Dục Việt Nam, Thành phố Hồ
Chí Minh.
[5] Việt Hùng Vũ, Trần Thị Hoàng Anh, Đậu Trọng Hiền (2008), “Chuyên đề vẽ và
thiết kế mạch in với Orcad 10”, Nhà xuất bản Giao Thông Vận Tải, Thành phố Hồ Chí
Minh.
[6] Lê Phi Yến – Lưu Phú – Nguyễn Như Anh (2011), “Kỹ thuật điện tử”, Tái bản lần
thứ hai, Nhà xuất bản đại học quốc gia thành phố Hồ Chí Minh, Thành phố Hồ Chí
Minh.
Tiếng Anh
[7]
[8]
E/ML.html
[9]
[10]
pdf/view/23384/STMICROELECTRONICS/NE555.html
[11] CCS (2012), “PCD C Compiler Reference Manual”.
Các file đính kèm theo tài liệu này:
- tvefile_2013_09_16_9539370756_0156.pdf