LỜI NÓI ĐẦU
Khoa học kỹ thuật ngày càng phát triển mạnh mẽ, kỹ thuật điện tử cũng được chú trọng phát
triển nhiều hơn. Ngày nay cùng với sự tiến bộ của khoa học kỹ thuật, đời sống xã hội ngày
càng phát triển dựa trên những ứng dụng của khoa học vào đời sống. Vì vậy mà công nghệ
điện tử mang tính tự động ngày càng được ứng dụng rộng rãi. Sự phát triển của máy tính đã
mở rộng các ứng dụng của vi điều khiển. Các bộ vi điều khiển với đa tính năng đang đựơc
ứng dụng rộng rãi và thâm nhập ngày càng nhiều trong các lĩnh vực kỹ thuật và đời sống xã
hội. Hầu hết các thiết bị được điều khiển tự động, từ các thiết bị văn phòng cho đến các thiết
bị trong gia đình đều dùng các bộ vi điều khiển nhằm đem lại sự tiện nghi cho con người
trong thời đại công nghiệp hoá, hiện đại hoá. Vì vậy việc ghép nối giữa máy tính và vi điều
khiển ngày càng trở lên quan trọng.
Để ứng dụng môn Ghép nối máy tính và giao diện vào thực tế, sau một thời gian
nghiên cứu học tập dưới sự giảng dạy của các thầy cô giáo trong khoa về kiến thức chuyên
ngành, đồng thời cùng với sự giúp đỡ nhiệt tình của thầy Phạm Ngọc Hưng, chúng em đã
tiến hành thiết kế và hoàn thành đề tài: “Mạch điều khiển các thiết bị trong nhà”.
Với sự lỗ lực của bản thân nhưng do thời gian, kiến thức và kinh nghiệm của chúng
em còn hạn chế nên không thể tránh khỏi những sai xót. Chúng em rất mong nhận được sự
giúp đỡ và đóng góp ý kiến của thầy cô cùng các bạn để đồ án được hoàn thiện hơn.
Chúng em xin chân thành cảm ơn!
Hưng Yên, tháng 12 năm 2008
Nhóm sinh viên thực hiện: 1. Trần Thị Hạt
2. Nguyễn Thị Thắm
3. Bùi Quyết Thắng
4. Phạm Thị Xoa
Trường ĐHSPKT Hưng Yên Đồ án: Ghép nối máy tính và giao diện
Khoa Điện-Điện tử
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
II.Giao tiếp cổng nối tiếp 19
1. Cấu trúc cổng nối tiếp 19
2. Truyền thông giữa hai nút 22
3. Truy xuất trực tiếp thông qua cổng 24
Phần II. Thiết kế phần cứng 28
I.Sơ đồ khối và chức năng các khối 28
1. Sơ đồ khối 28
2. Chức năng các khối 28
II.Sơ đồ nguyên lý 31
Kết luận 32
GVHD:Phạm Ngọc Hưng
3
Trường ĐHSPKT Hưng Yên Đồ án: Ghép nối máy tính và giao diện
Khoa Điện-Điện tử
Ý TƯỞNG THIẾT KẾ
Thiết kế hệ thống điều khiển các thiết bị trong nhà(quạt, máy bơm nước, tivi, đèn)
dùng vi điều khiển thông qua máy vi tính. Hệ thống bao gồm: Khối nguồn, khối xử lý trung
tâm dùng PIC16F876A, khối điều khiển, khối hiển thị và cuối cùng là khối truyền thông. Khi
tác động vào các nút ON hoặc OFF trên khối điều khiển thì tương ứng với nó là việc cấp
hoặc ngắt nguồn cho các thiết bị sử dụng. Khi tín hiệu được truyền đi, sau một thời gian cảm
biến sẽ nhận tác động và báo lại cho máy tính biết là vi điều khiển đã nhận được thông tin
hay chưa. Nếu chưa nhận được máy tính sẽ truyền lại thông tin đó lần nữa, khi nào vi điều
khiển nhận được mới thôi.
Quy trình thực hiện ý tưởng
Bước 1:
Nghiên cứu & khảo sát PIC16F876A, tạo giao diện trên Visuabasic 6.0.
Bước 2:
Sau khi đã nghiên cứu và khảo sát xong chúng ta bắt đầu thực hiện xây dựng mạch
theo đúng nhiệm vụ của đề tài. Xây dựng các khối: Khối nguồn, khối xử lý trung tâm dùng
PIC16F876A, khối điều khiển, khối hiển thị và cuối cùng là khối truyền thông. Việc truyền
do hãng Microchip sản xuất.
2. Vi điều khiển PIC 16F876A
2.1. Mô tả cấu trúc
PIC 16F876A thuộc họ 16F87x sử dụng công nghệ tích hợp cao RISC CPU, có thể
lập trình với 35 câu lệnh đơn giản. Tất cả các câu lệnh thực hiện trong 1 chu kì lệnh ngoại trừ
một số câu lệnh rẽ nhánh thực hiện trong 2 chu kì lệnh. Tốc độ hoạt động xung đồng hồ vào
GVHD:Phạm Ngọc Hưng
5
Trường ĐHSPKT Hưng Yên Đồ án: Ghép nối máy tính và giao diện
Khoa Điện-Điện tử
là DC-20MHz với chu kì lệnh thực hiện trong 200ns. Bộ nhớ chương trình Flash 8Kx14
words. Bộ nhớ Ram là 368x8 bytes, bộ nhớ dữ liệu EFPROM 256x8 bytes.
Khả năng của bộ vi xử lí này :
+ Khả năng ngắt (lên tới 14 nguồn ngắt trong và ngắt ngoài)
+ Ngăn nhớ Stack được phân chia làm 8 mức
+ Truy cập bộ nhớ bằng địa chỉ trực tiếp hoặc gián tiếp.
+ Nguồn khởi động lại (POR).
+ Bộ tạo xung thời gian (PWRT) và bộ tạo dao động (OST)
+ Bộ đếm xung thời gian (WDT) với nguồn dao động trên chip (nguồn dao động RC)
hoạt động đáng tin cậy.
+ Có mã chương trình bảo vệ. Có bảng lựa chọn dao động
+ Phương thức cất giữ SLEEP.
+ Công nghệ CMOS FLASH/EEPROM nguồn mức thấp, tốc độ cao.
+ Thiết kế hoàn toàn tĩnh. Mạch chương trình nối tiếp có hai chân.
+ Xử lý đọc/ghi tới bộ nhớ chương trình.
+ Dải điện thế hoạt động rộng: 2.0V ÷ 5.5V. Nguồn sử dụng hiện tại 25mA.
+ Dãy nhiệt độ công nghiệp và thuận lợi.
+ Công suất tiêu thụ thấp: < 0.6mA với 5V, 4MHz
20µA với 3V, 32 kHz
< 1µA nguồn dự phòng.
GVHD:Phạm Ngọc Hưng
7
Trường ĐHSPKT Hưng Yên Đồ án: Ghép nối máy tính và giao diện
Khoa Điện-Điện tử
Sơ đồ khối chức năng của PIC 16F876:
GVHD:Phạm Ngọc Hưng
8
Trường ĐHSPKT Hưng Yên Đồ án: Ghép nối máy tính và giao diện
Khoa Điện-Điện tử
b) Tổ chức bộ nhớ dữ liệu RAM
RAM là bộ nhớ có thể đọc và ghi, nó không lưu dữ liệu khi mất điện, bộ nhớ RAM
của PIC 16F876A có 4 bank, mỗi bank có dải địa chỉ 0-7FH(128 byte) trên các bank những
thanh ghi đa mục đích, hoạt động như một RAM tĩnh (General purpose register), và những
thanh ghi chức năng đặc biệt (Special function registers) ở vùng địa chỉ thấp. Bít RP1(Status
<6>) và bit RP0(Status <5>) dùng để lựa chọn bank làm việc.
GVHD:Phạm Ngọc Hưng
9
Trường ĐHSPKT Hưng Yên Đồ án: Ghép nối máy tính và giao diện
Khoa Điện-Điện tử
Các thanh ghi đa mục đích (General purpose register): các thanh ghi này được truy
cập bằng cả hai cách trực tiếp hoặc gián tiếp qua thanh ghi FSR, tổng cộng có 368
byte.
Các thanh ghi chức năng đặc biệt: các thanh ghi này được dùng bởi CPU và các khối
ngoại vi để điều khiển sự hoạt động theo yêu cầu của thiết bị.
Sau đây là một số thanh ghi đặc biệt quan trọng:
Các thanh ghi trạng thái STATUS: có 4 thanh ghi trạng thái trên 4 dãy, tại các địa chỉ
03h, 83h, 103h, 183h. Các thanh ghi này cho biết trạng thái của phần tử logic toán học
ALU, trạng thái Reset, trạng thái của các bít lựa chọn dãy thanh ghi cho bộ nhớ dữ
liệu
Các thanh ghi lựa chọn OPTION_REG: có 2 thanh ghi lựa chọn tại các địa chỉ 81h và
a) Cổng A và thanh ghi TRISA
Cổng A là cổng hai chiều với độ rộng đường truyền là 6 bit. Để điều khiển việc truy
xuất dữ liệu người ta dùng thanh ghi TRISA. Nếu đặt bit TRISA = 1 thì cổng A sẽ tương ứng
có các chân là chân vào. Nếu xoá bít TRISA = 0 thì cổng A sẽ tương ứng có các chân là chân
ra. Việc đọc cổng A chính là đọc trạng thái của các chân, việc viết phải qua các chốt của
cổng. Các chân của cổng A chủ yếu sử dụng nhận tín hiệu tương tự hoặc các chân vào/ra.
Riêng chân RA4 có thể đa hợp với chân vào bộ Timer 0 và khi đó nó trở thành chân
RA4/T0CKI. Chân này như một đầu vào của Trigger Schmitt và nó mở đầu ra. Các chân
khác của cổng A là chân vào bộ TTL. Việc điều khiển các chân này thông qua việc đặt hay
xoá các bít của thanh ghi ADCON1. Thanh ghi TRISA điều khiển trực tiếp các chân của
cổng A, khi sử dụng các chân này để nhận tín hiệu tương tự vào ta phải chắc chắn rằng các
bít của thanh ghi TRISA đã được đặt rồi.
Sơ đồ khối chân RA3:RA0, chân RA5, và chân RA4/TOCK1 của cổng A
GVHD:Phạm Ngọc Hưng
11
Trường ĐHSPKT Hưng Yên Đồ án: Ghép nối máy tính và giao diện
Khoa Điện-Điện tử
b) Cổng B và thanh ghi TRISB
Cổng B là cổng hai chiều với độ rộng đường truyền là 8 bit. Tương ứng với nó để
điều khiển trực tiếp dữ liệu ta sử dụng thanh ghi TRISB. Nếu đặt bít TRISB = 1 thì cổng B
được định nghĩa là chân vào. Nếu xoá bít TRISB = 0 thì cổng B được định nghĩa là chân ra.
Nội dung của chốt ra có thể chọn trên mỗi chân.
Có 3 chân của cổng B có thể đa hợp với các chương trình vận hành bằng điện áp thấp.
Đó là các chân sau: RB3/PGM, RB6/PGC, RB7/PGD. Sự thay đổi hoạt động của những chân
này được miêu tả ở trong phần đặc tính nổi bật. Mỗi chân của cổng B có khả năng dừng bên
trong nhưng yếu. Điều này được trình bày bởi việc xoá bit RBPU (bit 7 của thanh ghi
OPTION_REG). Khả năng dừng này sẽ tự động tắt đi khi các chân của cổng được định nghĩa
là chân ra. Khả năng dừng này sẽ tự động mất đi khi ta RESET. Bốn chân của cổng B, từ
RB7÷ RB4 có đặc tính là ngắt khi thay đổi trạng thái. Chỉ những chân được định dạng là
những chân vào thì ngắt này mới tồn tại. Một vài chân RB7:RB4 được định dạng như chân ra
Khoa Điện-Điện tử
Người sử dụng nên đề cập tới việc phân chia kết nối các thiết bị ngoại vi cho việc set chính
xác các bit TRIS
Sơ đồ khối chân RC <0:2> RC <5:7> và chân RC <3:4>của cổng C
2.4. Các bộ Timer của chip
Bộ vi điều khiển PIC 16F876 có 3 bộ Timer đó là: Timer 0, Timer 1, Timer2.
a) Bộ Timer0
Là bộ định thời hoặc bộ đếm có những ưu điểm nổi bật sau:
+ 8 bit cho timer hoặc bộ đếm.
+ Có khả năng đọc và viết.
+ Có thể dùng đồng hồ bên trong hoặc bên ngoài.
+ Có thể chọn cạnh xung của xung đồng hồ.
+ Có hệ số chia cho xung đầu vào có thể lập trình lại bằng phần mềm.
+ Ngắt tràn.
Hoạt động của bộ Timer0:
GVHD:Phạm Ngọc Hưng
14
Trường ĐHSPKT Hưng Yên Đồ án: Ghép nối máy tính và giao diện
Khoa Điện-Điện tử
Timer 0 có thể hoạt động như một bộ định thời hoặc một bộ đếm. Viêc chọn bộ định thời
hoặc bộ đếm có thể được xác lập bằng việc xoá hoặc đặt bit TOSC của thanh ghi
OPTION_REG<5>.
Nếu dùng hệ số chia xung đầu vào thì xoá bit PSA của thanh ghi OPTION_REG<3>.
Trong chế độ bộ định thời được lựa chọn bởi việc xoá bit T0CS (OPTION_REG<5>),
nó sẽ được tăng giá trị sau một chu kỳ lệnh nếu không chọn hệ số chia xung đầu vào. Và giá
trị của nó được viết tới thanh ghi TMR0.
Chế độ đếm được lựa chọn bởi việc set bit T0CS (OPTION_REG<5>).
Trong chế độ bộ đếm, nó sẽ được tăng ở xung đi xuống nếu xoá bit T0SE
(OPTION_REG<4>) hoặc ở xung đi lên nếu set bit T0SE. Và giá trị của nó được viết tới
thanh ghi TMR0.
PS2:PS0 Timer 0 WDT
000 1:2 1:1
001 1:4 1:2
010 1:8 1:4
011 1:16 1:8
100 1:32 1:16
101 1:64 1:32
110 1:128 1:64
111 1:256 1:128
b) Bộ Timer1
Bộ Timer1 có thể là bộ đếm hoặc bộ định thời với ưu điểm sau:
+ 16 bit cho bộ đếm hoặc bộ định thời (gồm 2 thanh ghi TMR1H:TMR1L).
+ Có khả năng đọc và viết.
+ Có thể chọn xung đồng hồ bên trong hoặc bên ngoài.
+ Có thể ngắt khi tràn FFFFh về 0000h.
Timer1 có 1 thanh ghi điều khiển, đó là thanh ghi T1C0N. Bộ Timer1 có hoạt động
hay không hoạt động là nhờ việc đặt hoặc xoá bit TMR1ON (T1CON<0>).
Hoạt động của Timer1:
Nó có thể hoạt động ở một trong các chế độ sau:
GVHD:Phạm Ngọc Hưng
16
Trường ĐHSPKT Hưng Yên Đồ án: Ghép nối máy tính và giao diện
Khoa Điện-Điện tử
+ Là một bộ định thời 16 bit.
+ Là một bộ đếm có đồng bộ.
+ Là một bộ đếm không có đồng bộ.
Phương thức hoạt động của bộ này được xác định bởi việc chọn nguồn xung vào
Timer1. Nguồn xung đồng hồ được chọn bởi việc đặt xoá bit TMR1CS (T1CON<1>). Ở chế
độ bộ định thời, đầu vào là clock trong Fosc/4, bit đồng bộ T1SYNC (T1CON<2>) không có
tác dụng vì clock trong luôn đồng bộ. Chế độ bộ đếm hoạt động hai chế độ. Có đồng bộ xung
11 1:8
Bit 3 T1OSEN bit điều khiển bộ dao động Timer1
1= Bộ dao động hoạt động 0= Bộ dao động không hoạt động
Bit 2 Bit điều khiển xung clock ngoài đồng bộ khi TMRCS=1
Bit 2=0 có đồng bộ clock ngoài Bit 2=1 không đồng bộ clock ngoài
Khi TMR1CS=0 bit này không tác dụng
Bit 1 TMR1CS bit lựa chọn nguồn xung clock vào
TMR1CS=1 clock từ chân RC0/T1OSO/T1CKI (sườn lên)
TMR1CS=0 clock trong Fosc/4
Bit 0 Bit bật tắt Timer
1= Timer 1 enable 0= Timer 1 Disable
c) Bộ Timer2
Bộ Timer2 có những đặc tính sau đây:
+ 8 bit cho bộ định thời (thanh ghi TMR2)
+ 8 bit vòng lặp (thanh ghi PR2)
+ Có khả năng đọc và viết ở cả 2 thanh ghi nói trên
+ Có khả năng lập trình bằng phần mềm tỷ lệ trước
+ Có khả năng lập trình bằng phần mềm tỷ lệ sau
Chế độ SSP dùng đầu ra của TMR2 để tạo xung clock. Timer2 có một thanh ghi điều
khiển đó là thanh ghi T2CON.
GVHD:Phạm Ngọc Hưng
18
Trường ĐHSPKT Hưng Yên Đồ án: Ghép nối máy tính và giao diện
Khoa Điện-Điện tử
Timer2 có thể tắt bằng việc xoá bit TMR2CON của thanh ghi T2CON.
Hoạt động của bộ Timer2:
Timer 2 được dùng chủ yếu ở phần điều chế xung của bộ CCP, thanh ghi TMR2 có
khả năng đọc và viết, nó có thể xoá bằng việc reset lại thiết bị. Đầu vào của xung có thể chọn
các tỷ lệ sau: 1:1, 1:2 hoặc 1:16 việc chọn các tỷ lệ này có thể điều khiển các bit sau
T2CKPS1 và bit T2CKPS0
NỐI
TIẾP
1. Cấu trúc cổng nối tiếp
Cổng
nối
tiếp
được
sử
dụng
để
truyền
dữ
liệu
hai
chiều
giữa
song.
- Số
dây
kết
nối
ít.
- Có
thể
truyền
không
dây
dùng
hồng
ngoại.
- Có
thể
ghép
tháo
lắp
thiết
bị
trong
lúc
máy
tính
đang
làm
việc.
- Có
thể
cung
cấp
DTE
(Data
Terminal
Equipment)
và
DCE (Data
Communication
Equipment).
DCE
là
các
thiết
bị
trung
gian
PLC,
vi
điều
khiển,
…
Việc
trao
đổi tín
hiệu
thông
thường
qua
2
chân
RxD
và
điều
khiển
quá
trình
truyền,
được
gọi
là
các
tín
hiệu
bắt
tay (handshake).
Ưu
Tín
hiệu
truyền
theo
chuẩn
RS-232
của
EIA
(Electronics
Industry
Associations). Chuẩn
RS-232
quy
định
mức
logic
áp
từ
3V
đến
25V
(space)
và
có
khả
năng
cung
cấp
dòng
từ
10
mA
mạch.
Chuẩn
RS-232
cho
phép
truyền
tín
hiệu
với
tốc
độ
đến
20.000
bps
nhưng
nếu
DTE
và
DCE:
-
Đơn
công
(simplex
connection):
dữ
liệu
chỉ
được
truyền
theo
1
điểm chỉ
được
truyền
theo
1
hướng.
-
Song
công
(full-duplex):
số
liệu
được
truyền
đồng
thời
D0
D1
D2
D3
D4
D5
D6
D7
P
Stop
0 1
Khi
không
truyền
dữ
liệu,
đường
truyền
sẽ
ở
trạng
(space:
10V)
và
sau
đó
lần
lượt
truyền
từ
D0
đến
D7
và
Parity,
cuối
cùng
tả
như
sau
(truyền
ký
tự
A):
Các
đặc
tính
kỹ
thuật
của
chuẩn
RS-232
ra
cực
đại
±
25V
Điện
áp
ngõ
ra
có
tải
±
5V
đến
±
15V
Trở
Trường ĐHSPKT Hưng Yên Đồ án: Ghép nối máy tính và giao diện
Khoa Điện-Điện tử
Trở
kháng
ngõ
vào 3K
đến
7K
Các
tốc
độ
truyền
dữ
liệu
thông
dụng
trong
dạng
đầu
nối
DB9
(9
chân)
mô
tả
như
hình
4.2.
Ý
nghĩa
của
các
dữ
liệu
truyền
2 RxD DCE
DTE Received
data:
dữ
liệu
nhận
7 RTS DTE
DCE Request
to
send:
DTE
yêu
cầu
ready:
DCE
sẵn
sàng
làm
việc
5 GND - Ground:
nối
đất
(0V)
1 DCD DCE
DTE Data
carier
detect:
DCE
phát
chuông
GVHD:Phạm Ngọc Hưng
22
Trường ĐHSPKT Hưng Yên Đồ án: Ghép nối máy tính và giao
diện
Khoa Điện-Điện tử
2. Truyền thông giữa hai nút
Các
sơ
đồ
khi
kết
nối
dùng
cổng
nối
tiếp:
Tx
D
Rx
đơn
giản
trong
truyền
thông
nối
tiếp
Khi
thực
hiện
kết
nối
như
trên,
quá
trình
liệu
đến
DTE,
dữ
liệu
này
sẽ
được
đưa
vào
bộ
đệm
và
tạo
ngắt.
Ngoài
D
RxD
GN
D
RTS
TxD
RxD
GN
D
RTS
CTS
DTE1 DTE2
Hình
4.4
–
Kết
nối
trong
truyền
thông
nối
cực
tác
động
lên
DSR
của
DTE2
cho
biết
sẵn
sàng
nhận
dữ
liệu
chân
RTS
để
tác
động
đến
chân
CTS
của
DTE2
cho
biết
DTE1
có
thể nhận
nhau
nên
phải thực
hiện
điều
khiển
lưu
lượng.
Quá
trinh
điều
khiển
này
có
thể
bằng
hai
ký
tự
Xon
và
Xoff.
Ký
tự
Xon
được
DCE
gởi
đi
khi
trình
điều
khiển
bằng
phần
cứng
dùng
hai
chân
RTS
và
CTS.
Nếu
DTE
muốn truyền
dữ
liệu
(đang rảnh)
thì
gởi
lại
CTS.
3. Truy xuất trực tiếp thông qua cổng
Các
cổng
nối
tiếp
trong
máy
tính
được
trong
máy
tính
sử
dụng
vi
mạch
UART
với
các
thanh
ghi
cho
trong
bảng
sau:
(số
chia
byte
thấp)
1
0 R/W IER Interrupt
Enable
Register
(cho
phép
ngắt)
1 R/W BRDH Số
chia
byte
cao
2
R IIR Interrupt
Identification
Register
(điều
khiển
MODEM)
5 R LSR Line
Status
Register
(trạng
thái
đường
dây)
6 R MSR Modem
Status
Register
(trạng
thái