Với sự phát triển đến mức tiên tiến của KHKT như hiện nay, đặc biệt là lĩnh vực điện tử và vi tính
đã làm tiền đề cho mọi ngành khoa học khác dễ dàng phát triển –sự phát triển vũ bão đó luôn đeo đuổi
hoài bảo duy nhất –phục vụ con người. Kết quả, mỗi ứng dụng trong cuộc sống con người luôn sẵn sàng
thừa hưởng những tinh hoa đó, nhằm nâng cao năng suất lao động, nâng cao cuộc sống con ng ười, không
ngừng thúc đẩy xã hội về mọi mặt.
Để tiếp cận với lĩnh vực tự động hoá, đặc biệt là lĩnh vực truyền dữ liệu nên em bắt đầu nghiên cứu
lĩnh vực này và thực hiện đề tài : “Điều khiển thiết bị từ xa thông qua máy tính”với những thành quả
nhất định trong thi công:
_ Viết chương trình giao ti ếp giữa Vi Điều Khiển AT89C51và Máy Vi Tính.
_ Mạch giao tiếp giữa Vi ĐiềuKhiển AT89C51và Máy Vi Tính thông qua port giao tiếp nối tiếp.
93 trang |
Chia sẻ: lylyngoc | Lượt xem: 2375 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Luận văn Hệ thống điều khiển thiết bị từ xa thông qua máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
khi sử dụng WDT cũng có sự phiền toái vì vi điều khiển sẽ thường xuyên được reset sau một thời gian
nhất định, do đói cần tính toán thời gian thích hợp để xóa WDT (dùng lệnh CLRWDT). Và để việc ấn
định thời gian reset được linh động, WDT còn được hỗ trợ một bộ chia tần số prescaler được điều khiển
bởi thanh ghi OPTION_REG (prescaler này được chia xẻ với Timer0).
Một điểm cần chú ý nữa là lệnh sleep sẽ xóa bộ đếm WDT và prescaler. Ngoài ra lệnh xóa
CLRWDT chỉ xóa bộ đếm chứ không làm thay đổi đối tượng tác động của prescaler (WDT hay Timer0).
2.14.6 CHẾ ĐỘ SLEEP
Đây là chế độ hoạt động của vi điều khiển khi lệnh SLEEP được thực thi. Khi đó nếu được cho
phép hoạt động, bộ đếm của WDT sẽ bị xóa nhưng WDT vẫn tiếp tục hoạt động, bit (STATUS)
được reset về 0, bit được set, oscillator ngưng tác động và các PORT giữ nguyên trạng thái như trước
khi lệnh SLEEP được thực thi. Do khi ở chế độ SLEEP, dòng cung cấp cho vi điều khiển là rất nhỏ nên
ta cần thực hiện các bước sau trước khi vi điều khiển thực thi lệnh SLEEP:
Đưa tất cả các pin về trạng thái VDD hoặc VSS
Cần bảo đảm rằng không cò mạch ngoại vi nào được điều khiển bởi dòng điện của vi điều khiển vì dòng
điện nhỏ không đủ khả năng cung cấp cho các mạch ngoại vi hoạt động.
Tạm ngưng hoạt động củ khối A/D và không cho phép các xung clock từ bên ngoài tác động vào vi điều
khiển.
Để ý đến chức năng kéo lên điện trở ở PORTB.
Pin phải ở mức logic cao.
2.14.6.1 “ĐÁNH THỨC” VI ĐIỀU KHIỂN
Vi điều khiển có thể được “đánh thức” dưới tác động của một trong số các hiện tượng sau:
Tác động của reset ngoại vi thông qua pin .
Tác động của WDT khi bị tràn.
Tác động từ các ngắt ngoại vi từ PORTB (PORTB Interrupt on change hoặc pin INT).
Các bit và được dùng để thể hiện trạng thái của vi điều khiển và để phát hiện nguồn tác động làm
reset vi điều khiển. Bit được set khi vi điều khiển được cấp nguồn và được reset về 0 khi vi điều khiển ở
chế độ sleep. Bit được reset về 0 khi WDT tác động do bộ đếm bị tràn.
Ngoài ra còn có một số nguồn tác động khác từ các chức năng ngoại vi bao gồm:
Đọc hay ghi dữ liệu thông qua PSP (Parallel Slave Port).
Ngắt Timer1 khi hoạt động ở chế độ đếm bất đồng bộ.
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 55
Ngắt CCP khi hoạt động ở chế độ Capture.
Các hiện tượng đặc biệt làm reset Timer1 khi hoạt động ở chế độ đếm bất đồng bộ dùng
nguồn xung clock ở bên ngoài).
Ngắt SSP khi bit Start/Stop được phát hiện.
SSP hoạt động ở chế độ Slave mode khi truyền hoặc nhận dữ liệu.
Tác động của USART từ các pin RX hay TX khi hoạt động ở chế độ Slave mode đồng
bộ.
Khối chuyển đổi A/D khi nguồn xung clock hoạt động ở dạng RC.
Hoàn tất quá trình ghi vào EEPROM.
Ngõ ra bộ so sánh thay đổi trạng thái.
Các tác động ngoại vi khác không có tác dụng đánh thức vi điều khiển vì khi ở chế độ sleep các xung
clock cung cấp cho vi điều khiển ngưng hoạt động. Bên cạnh đó cần cho phép các ngắt hoạt động trước
khi lệnh SLEEP được thực thi để bảo đảm tác động của các ngắt. Việc đánh thức vi điều khiển từ các
ngắt vẫn được thực thi bất chấp trạng thái của bit GIE. Nếu bit GIE mang giá trị 0, vi điều khiển sẽ thực
thi lệnh tiếp theo sau lệnh SLEEP của chương trình (vì chương trình ngắt không được cho phép thực
thi). Nếu bit GIE được set trước khi lệnh SLEEP được thực thi, vi điều khiển sẽ thực thi lệnh tiếp theo
của chương trình và sau
đó nhảy tới địa chỉ chứa chương trình ngắt (0004h). Trong trường hợp lệnh tiếp theo không đóng vai trò
quan trọng trong chương trình, ta cần đặt thêm lệnh NOP sau lệnh SLEEP để bỏ qua tác động của lệnh
này, đồng thời giúp ta dễ dàng hơn trong việc kiểm soát hoạt động của chương trình ngắt. Tuy nhiên
cũng có một số điểm cần lưu ý như sau:
Nếu ngắt xảy ra trước khi lệnh SLEEP được thực thi, lệnh SLEEP sẽ không được thực thi và
thay vào đó là lệnh NOP, đồng thời các tác động của lệnh SLEEP cũng sẽ được bỏ qua. Nếu ngắt xảy ra
trong khi hay sau khi lệnh SLEEP được thực thi, vi điều khiển lập tức được đánh thức từ chế độ sleep,
và lệnh SLEEP sẽ được thực thi ngay sau khi vi điều khiển được đánh thức.
Để kiểm tra xem lệnh SLEEP đã được thực thi hay chưa, ta kiểm tra bit . Nếu bit vẫn mang giá
trị 1 tức là lệnh SLEEP đã không được thực thi và thay vào đó là lệnh NOP. Bên cạnh đó ta cần xóa
WDT để chắc chắn rằng WDT đã được xóa trước khi thực thi lệnh SLEEP, qua đó cho phép ta xác định
được thời điểm vi điều khiển được đánh thức do tác động của WDT.
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 56
CHƯƠNG III:
CỔNG NỐI TIẾP
I/ Cổng nối tiếp (Serial port) :
- Là một cổng thông dụng trong các máy tính trong các máy tính truyền
thống dùng kết nối các thiết bị ngoại vi với máy tính như: bàn phím,
chuột điều khiển, modem, máy quét...Cổng nối tiếp còn có tên gọi khác
như: Cổng COM, communication.
Mặc dù khái niệm cổng nối tiếp có thể được hiểu theo một nghĩa khác:
Các cổng hoạt động theo nguyên lý “nối tiếp”, nhưng bài này chỉ nói
đến các loại cổng nối tiếp được hiểu như COM, RS-232...mà không phải nói đến một nghĩa rộng
hơn nó
Ngày nay, do tốc độ truyền dữ liệu chậm hơn so với các cổng mới ra đời nên các cổng nối tiếp đang dần
bị loại bỏ trong các chuẩn máy tính hiện nay, chúng được thay thế bằng các cổng có tốc độ nhanh hơn
như: USB, FireWire
Bảng dưới đây cho thấy công dụng của các chân của một cổng nối tiếp 9 chân (9 pin) theo chuẩn
AT.
Pin Tín hiệu Mô tả Trạng thái I/O
1 CD Carrier detect In
2 RD Receive data In
3 TD
4 DTR Data terminal ready Out
5 SG Signal ground
6 DSR Data set ready In
7 RTS Request to send Out
8 CTS Clear to send In
9 RI Ring indicator In
- Cổng nối tiếp tích hợp trên máy tính
Cổng nối tiếp thường được tích hợp sẵn trên các máy tính cá nhân từ giữa năm 1990 trong các hệ
thống máy tính cá nhân sử dụng CPU thế hệ thứ tư (486). Chúng thường được tích hợp sẵn trên các bo
mạch chủ thông qua chíp Super I/O (thay cho các chíp UART trước đây) để thuận tiện hơn mà không cần
sử dụng các bo mạch riêng cho chúng. Tuy nhiên, (ngay như đầu bài này đã nói) ngày nay chúng đã dần
biến mất khỏi các hệ thống máy tính cá nhân.
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 57
- Ứng dụng:
Ngày nay rất nhiều máy tính cá nhân nói chung cũng như máy tính xách tay nói riêng đã không
còn trang bị cổng nối tiếp nữa, đa số các bo mạch chủ trung và cao cấp cũng dần loại bỏ cổng nối tiếp
khiến cho một số người sử dụng đã gặp khó khăn khi còn sử dụng các thiết bị cũ (chẳng hạn các modem
quay số).
Ứng dụng trong sử dụng thông thường của một máy tính:
Bàn phím máy tính (trước đây)
Chuột điều khiển (trước đây, hiện nay bàn phím và chuột sử dụng các cổng PS/2 hoặc USB)
Modem (quay số)
Ứng dụng trong các chuyên ngành khác
Kết nối với các thiết bị điều khiển (các cổng RS-232, RS-422...) trong ngành tự động hoá điều
khiển. (Sự biến mất của các cổng nối tiếp hiện nay trên các máy tính khiến cho nhiều kỹ thuật
viên gặp khó khăn với các thiết bị điều khiển cũ)
Kết nối với các thiết bị điện tử dân dụng.
Kết nối với các điện thoại thông minh
II/ RS Max232:
- Máy tính được thiết kế theo chuẩn RS232 (được qui định năm 1960) , chuẩn này được qui định trước
khi xuất hiện họ logic TTL (ra đời năm 1968 )nên mức điện áp của nó không tương thích với TTL:
- Qui định của chuẩn RS232:
• “space”(logic 0) có trị số từ +3 đến +25v
• “mark”(logic 1) có trị số từ -3 đến -25v
• Miền giữa -3v đến +3 v không hợp lệ
• Dòng điện ngắn mạch không được vượt quá
500mA
- Vì vậy ta phải có một mạch lái đường dây để chuyển đổi tín hiệu giữa RS232 và TTL, thiết bị được sử
dụng là MAX232, DS275,…
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 58
PHẦN B:
THI CÔNG
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 59
CHƯƠNG I:
Mạch nguyên lý
I/ Sơ đồ mạch:
1. Mạch giao tiếp giữa AT89C51 và máy vi tính
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 60
2. Mạch điều khiển chính:
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 61
3. Mạch kich dẫn thiết bị:
Nguyên lý hoạt động
- Khi vi xử lí xuất mức cao thì opto không dẫn. nguồn 12v đổ xuống phân cực cho BD139 dẫn relay
đóng.
Tính dòng I B :
V CC = I B *(R3 + R4) + V B
→ I B = 43 RR
VV BECC
=
17.4
6.012
= 2 (mA)
CI = K
I B * =
3
100*2
= 66.7 (mA)
- Khi vi xử lí xuất mức thấp thì opto dẫn . transistor BD139 tắt relay mở.
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 62
4. Mạch cảm biến đèn tự động bật tắt:
Nguyên lý hoạt động:
V = 21
2*
RR
Rvcc
=
1010
10*12
=6V
V = 53
3*
RR
Rvcc
=
547
47*12
R
Với 100Ω ≤ R5 ≤ 100 k Ω
- Khi có ánh sáng chiếu vào cảm biến. R5 tăng :
V >V . → V ra =0v → transistor C1815 tắt
- Khi chưa ánh sáng chiếu vào cảm biến . R5 giảm:
V <V . → → V ra =12V→ transistor C1815 dẫn nên relay đóng bật nguồn đèn sáng
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 63
5. Mạch cảm biến cảnh báo cháy:
LCD 1602A
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 64
CHƯƠNG II:
Một số linh kiện
1. IC DS18B20: là một loại nhiệt kế số cung cấp từ 9bit-12bit theo đơn vị đo lường là độ C và có một
chức năng chuông reo với những chất khó bay hơi chương trình sử dụng
với điểm cao hơn hoặc thấp hơn điểm ngưỡng.DS18B20 truyền trong
một đường dây Bus tín hiệu.Nó mặc định yêu cầu chỉ cho một đưỡng
truyền dữ liệu (và đất) từ việc truyền thông tin với con vi xử lý trung
tâm.Nó có thể điều khiển đươc sắp xếp nhiệt độ trong khoảng -55oC đến
125oC và với độ chính xác đến +/- 0.5oC trong khoảng từ -10oC đến
+85oC.Ngoài ra,DS 18B20 có thể cấp nguồn trực tiếp từ dữ liệu ngoại
trừ việc cung cấp từ nguồn ngòai.
Một số con DS18B20 có một mã độc nhất 64 bit với việc cho
phép nhân DS 18B20s trên những đoạn dây Bus tương tự nhau.Nó thì
đơn giản trong việc sử dụng một con vi xử lý để mà diều khiển nhiều
con DS18B20s với sự phân bố trong một vùng lớn.Những ứng dụng có
thể mang lại lợi ích từ nét đặc biệt này gồm có việc cải tiến điều khiển
HVAC,nhiệt độ ở trung tâm hệ thống được xây doing,trang bị,hoặc nhiều bộ phận,xử lý trung tâm và
điều khiển những hệ thống.
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 65
Bảng 1 trình bày sơ đồ mạch cấu tạo của con DS18B20 và mô tả chân trong bảng mô tả chân.Bộ
nhớ Rom 64 bit dự trữ mã của những thiết bị độc nhất.Bộ nhớ hỗn tạp chứa 2 bit đăng ký nhiệt độ.Nó
chứa số ngõ vào từ cảm biến nhiệt độ.Ngoài ra,bộ nhớ hỗn tạp còn cung cấp lối vào 1 byte ở ngưỡng trên
và dưới của việc đăng kí còi báo động và 1 byte cho việc cấu hình đăng ký.Việc đăng ký cấu hình đòi hỏi
người sử dụng thiết lập độ phân giải số cho cảm biến chuyển đổi đến 9,10,11 hoặc 12 bit.Báo mức thấp
TL và báo mức cao TH ,đăng ký cấu hình là cố định (EEPROM) , vì vậy họ sẽ giữ lại dữ liệu khi thiết bị
được kéo lên.
DS18B20 sử dụng giao thức Maxim cách biệt những đường dây Bus.Nó thi hành việc truyền
thông Bus sử dụng một tín hiệu điều khiển.Việc điều khiển đường dây yêu cầu có một con điện trở tương
đối lớn từ thiết bị kết nối đến Bus qua 3 vùng hoặc mở Port(Chân DQ trong trường hợp của
DS18B20)Trong hệ thống Bus Vi xử lý (thiết bị chủ) nhận ra và đưa đến những thiết bị trên đường Bus
sử dụng một vài thiết bị duy nhất có mã là 64 bit.Bởi vì, một vài thiết bị có một mã duy nhất,nhiều thiết
bị có thể đề dịa chỉ trên một bus là không giới hạn.Giao thức của một Bus, bao gồm việc giải thích chi
tiết lệnh và các vị trí thời gian được nối trong một hệ thống Bus.
Mặc khác nét đặc biệt của DS18B20 khả năng điều khiển ngoài điện áp nội nguồn cung
cấp.Nguồn thì mặc dù cung cấp diện trở trên Bus qua chân DQ khi dây Bus ở mức cao. Tín hiệu dây Bus
hầu như có thể chuyển đổi một dung tích chứa nội (CPP).nó sau nó cung cấp nguồn đến thiết bị khi Bus ở
mức thấp.Cách thức của việc bắt nguồn từ một dây Bus đươc qui cho như là “Parasite Power”.Như một
lựa chọn,DS18B20 có thể hầu như được cấp nguồn bời nguồn cung cấp ngoài ở VDD.
Cấu trúc chung của DS18B20:
Chân DQ:chân đưa tín hiệu ra.(tín hiệu diện áp)
Chân GND:Chân nối đất.
Chân VDD: chân cấp nguồn(=VCC).
Việc điều khiển cảm biến nhiệt độ:
Lõi chức năng của DS18B20 là cảm biến nhiệt độ trực tiếp từ số.Độ phân giải của cảm biến nhiệt
độ có thể đăng ký đến 9,10,11 hoặc 12 bit tương ứng với việc gia tăng 0.5oC ,0.25 oC,0.125 oC hoặc
0.0625 oC,một cách riêng.Mặc định phân giải ở nguồn kéo lên là 12 bit.Nguồn kéo lên trong vùng nguồn
kéo xuống vô hiệu.Đặt nhiệt độ đo lường và chuyển đổi từ A đến D.Thiết bị chủ cần phải phát ra một tập
lệnh Conver T[44H].Theo sự chuyển đổi kết quả của dữ liệu đươc đưa vào 2 byte của đăng ký nhiệt độ
trong bộ nhớ hỗn tạp và quay trở lại DS18B20 trong vùng vô hiệu.Nếu DS18B20 được cấp nguồn ngoài,
thì chủ có thể phát ra “read time slots” sau đó lệnh Conver T và DS18B20 sẽ phản ứng lại bởi việc
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 66
chuyển về 0 trong khi sự chuyển đổi nhiệt độ đang trong tiến trình và 1 khi sự chuyển đổi đã được thực
hiện.Nếu DS18B20 được cấp nguồn với nguồn khác,sự chú ý về kỹ thuật không được sử dụng từ khi Bus
đẩy lên mức cao bởi việc đẩy mạnh trong suốt hồi về nhiệt độ chuyển đổi.
Dữ liệu nhiệt độ ở ngõ ra DS18B20 ứng dụng trong thang đo độ C,nhữnh ứng dụng độ F,nhìn
bảng và sự chuyển đổi thường lệ cần phải được dùng.Dữ liệu nhiệt độ được lưu trữ như 16 bit sign-
extended phần bổ sung của hai số trong việc đăng ký nhiệt độ.Những Sign bit (S) dùng để biểu lộ nếu
nhiệt độ âm hay dương.Số dương S=0,số âm S=1.Nếu DS18B20 đăng ký độ phân giải 12 bit ,tất cả các
bit trong việc đăng ký nhiệt độ sẽ được chứa trong giá trị của dữ liệu.Với độ phân giải 11 bit ,bit 0 không
được mặc định.Với độ phân giải 10 bit thì bit 0 và bit 1 không được mặc định.Với độ phân giải 9 bit,bit
2,1,0 không được mặc định.Bảng biểu diễn ví dụ về dữ liệu số ở ngõ ra và việc đọc nhiệt độ của việc
chuyển đổi độ phân giải 12 bit.
Bảng biểu diễn mối quan hệ giữa nhiệt dộ và dữ liệu:
Có 2 cách để cấp nguồn cho DS18B20:
-Ta có thể cấp nguồn trực tiếp từ chân VDD với một nguồn ở phía bean nguồn.Nó có thể điều
khiển chế độ “parasite power”.Nguồn parasite power được sử dung phổ biến trong ứng dụng yêu cầu
nhiệt độ ở nơi xa.Với cách cấp nguồn này thì chân VDD phải được kết nối với đất.
Cung cấp nguồn theo kiểu Parasite cho DS18B20 trong quá trình chuyển đổi nhiệt độ:
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 67
Nguồn cung cấp cho DS18B20 với nguồn cung cấp ngoài:
Bộ nhớ:
Bộ nhớ là sự kết hợp hỗn hợp của SRAM với EEPROM cho việc đăng ký chuông báo mức cao
hay mức thấp và cấu hình đăng ký.Chú ý rằng nếu chức năng báo của DS 18B20 không sử dụng việc
đăng ký mức cao hay mức thấp có thể đáp ứng như mục đích của những bộ nhớ bình thường.Tất cả các
loại bộ nhớ đều đươc mô tả chi tiết trong bảng chức năng loại bộ nhớ.
Bản đồ bộ nhớ DS18B20:
Việc cấu hình đăng ký:
4 bit trong bộ nhớ hỗn tạp chứa cấu hình đăng ký ,nó được sắp xếp trình tự như trong bảng
sau.Việc sử dụng có thể thiết lập dộ phân giải DS18B20 bằng cách sử dụng bit R0 và R1.Nguồn kéo lên
mặc định của những bit là R0=1 và R1=1( độ phân giải 12 bit)Chú ý không có mối liên hệ gián tiếp giữa
dộ phân giải với thời gian chuyển đổi.Bit 7 và bit 0 dến bit 4 trong cấu hình đăng ký được lưu trữ từ việc
sử dụng nội bộ bởi thiết bị và khộng thể ghi chồng lên.
Cấu hình đăng ký:
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 68
Cấu hình cho độ phân giải cho nhiệt kế:
Hệ thống Bus:
Một bus hệ thống sử dụng một bus chủ đơn độc để mà điều khiển một hay nhiều thiết bị tớ.Khi
chỉ có một thiết bị tớ ở trên bus,hệ thống được dẫn đến như một hệ thống đơn độc trên cùng.Hệ thống
là”Multidrop” nếu có nhiều multi tớ trên đường bus.Tất cả các dữ liệu và lệnh đều được chuyển đến bit
đầu tiên trên đường bus.
Việc chuyển tiếp thảo luận của một hệ thống bus nếu bị hư trong ba chủ đề:cấu hình phần cứng,
sự thực hiện liên tiếp,và tín hiệu của một dây.
Đọc ROM [33h]:
Đây là lệnh chỉ có thể được sử dụng khi có một tớ trên đường Bus.Nó theo đường Bus chủ để mà
đọc đoạn mã của tớ 64 bit ROM ngoài ra còn sử dụng tìm ROM.Nếu lệnh này được sử dụng khi có nhiều
hơn một tớ hiện hành trên đường bus thì dữ liệu xung đột sẽ xảy ra khi tất cả các tớ cố phản ứng lại trong
một vài thời gian,
Match ROM [55h]:
Tập lệnh Match ROM theo bởi một mã liên tiếp ROM 64 bit cho phép bus chủ cho địa chỉ đặc
biệt tới thiết bị tớ trên multi Drop hoặc single Drop bus.Chỉ có tớ mới ngòi một cách chính xác một mã
liên tiếp 64 bit sẽ phản ứng lại đến lệnh chức năng được phát ra bởi chủ, tất cả các tớ còn lại trên đường
bus sẽ đợi để mà Reset xung.
WRITE SCRATCHPAD [4Eh]
Lệnh cho phép chủ viết 3 byte dữ liệu đến DS18B20’s scratchpad .Byte dữ liệu đầu tiên được viết
vào đăng ký TH (byte 2 of the scratchpad), byte thứ hai được viết vào đăng ký TL(byte 3),và byte thứ 3
được viết vào đăng ký cấu hình (byte 4).Dữ liệu cần phải được chuyển đổi bit ý nghĩa đầu tiên.Tất cả 3
byte cần phải được viết trước khi chủ phát lệnh Reset, hoặc dữ liệu có thể được hỏng.
READ SCRATCHPAD [BEh]
Đây là lệnh cho phép chủ đọc phần chứa bộ nhớ hỗn hợp.Dữ liệu bắt đầu di chuyển với bit ý
nghĩa của byte 0 và tiếp tục đọc đến byte thứ 9 (byte 8-CRC) là đọc.Chủ có thể phát lệnh Reset giới han
đọc ít thời gian nếu chỉ phần dữ liệu hỗn hợp được cần.
COPY SCRATCHPAD [48h]
Lệnh này copy dữ liệu chứa trong bộ nhớ hỗn tạp TH,TL và đăng ký cấu hình (byte 2,3 và 4) đến
EEPROM.Nếu thiết bị đang sử dụng là chế độ parasite power,trong khoảng 10μs (max) sau khi lệnh này
được phát chủ cần phải có khả năng kéo lên mạnh trên đường bus ít nhất 10ms.
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 69
Bảng điện áp ký tự một chiều:(-55oC đến +125oC ;VDD=3.0V-5.5V)
Bảng điện áp ký tự xoay chiều:(-55oC đến +125oC ;VDD=3.0V-5.5V)
2. RS MAX232:
Cổng nối tiếp RS232 là một giao diện phổ biến rộng rãi nhất. Người ta còn gọi cổng này là cổng COM1,
còn cổng COM2 để tự do cho các ứng dụng khác. Giống như cổng máy in cổng COM cũng được sử dụng
một cách thuận tiện cho việc giao tiếp với thiết bị ngoại vi.
Việc truyền dữ liệu qua cổng COM được tiến hành theo cách nối tiếp. Nghĩa là các bit dữ liệu được
truyền đi nối tiếp nhau trên một đường dẫn. Loại truyền này có khả năng dùng cho những ứng dụng có
yêu cầu truyền khoảng cách lớn hơn, bởi vì các khả năng gây nhiễu là nhỏ đáng kể hơn khi dùng một
cổng song song (cổng máy in)
Cổng COM không phải là một hệ thống bus nó cho phép dễ dàng tạo ra liên kết dưới hình thức điểm với
điểm giữa hai máy cần trao đổi thông tin với nhau, một thành viên thứ ba không thể tham gia vào cuộc
trao đổi thông tin này.
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 70
* Các chân và đường dẫn được mô tả như sau:
Phích cắm COM có tổng cộng 8 đường dẫn, chưa kể đến đường nối đất. Trên thực tế có hai loại phích
cắm, một loại 9 chân và một loại 25 chân. Cả hai loại này đều có chung một đặc điểm.
Việc truyền dữ liệu xảy ra ở trên hai đường dẫn. Qua chân cắm ra TXD máy tính gởi dữ liệu của nó đến
KIT Vi điều khiển. Trong khi đó các dữ liệu mà máy tính nhận được, lại được dẫn đến chân RXD các tín
hiệu khác đóng vai trò như là tín hiệu hổ trợ khi trao đổi thông tin, và vì thế không phải trong mọi trường
hợp ứng dụng đều dùng hết.
Vì tín hiệu cổng COM thường ở mức +12V, -12V nên không tương thích với điện áp TTL nên để giao
tiếp KIT Vi điều khiển 8051 với máy tính qua cổng COM ta phải qua một vi mạch biến đổi điện áp cho
phù hợp với mức TTL, ta chọn vi mạch MAX232 để thực hiện việc tương thích điện áp.
- GIỚI THIỆU VI MẠCH GIAO TIẾP MAX 232
Vi mạch MAX 232 của hãng MAXIM là một vi mạch chuyên dùng trong giao diện nối tiếp với máy tính.
Chúng có nhiệm vụ chuyển đổi mức TTL ở lối vào thành mức +10V hoặc –10V ở phía truyền và các
mức +3…+15V hoặc -3…-15V thành mức TTL ở phía nhận.
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 71
Vi mạch MAX 232 có hai bộ đệm và hai bộ nhận. Đường dẫn điều khiển lối vào CTS, điều khiển việc
xuất ra dữ liệu ở cổng nối tiếp khi cần thiết, được nối với chân 9 của vi mạch MAX 232. Còn chân RST
(chân 10 của vi mạch MAX ) nối với đường dẫn bắt tay để điều khiển quá trình nhận. Thường thì các
đường dẫn bắt tay được nối với cổng nối tiếp qua các cầu nối, để khi không dùng đến nữa có thể hở mạch
các cầu này. Cách truyền dữ liệu đơn giản nhất là chỉ dùng ba đường dẫn TxD, RxD và GND (mass).
ĐẶC ĐIỂM KỸ THUẬT VỀ ĐIỆN CỦA RS232C
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 72
Qui định về chân của RS232C
Mức điện áp logic của RS-232C là khoảng điện áp giữa +15V và –15V. Các đường dữ liệu sử dụng mức
logic âm: logic 1 có điện thế giữa –5V và –15V, logic 0 có điện thế giữa +5V và +15V. tuy nhiên các
đường điền khiển (ngoại trừ đường TDATA và RDATA) sử dụng logic dương: gía trị TRUE = +5V đến
+15V và FALSE =-5V đến –15.
Ở chuẩn giao tiếp này, giữa ngõ ra bộ kích phát và ngõ vào bộ thu có mức nhiễu được giới hạn là 2V. Do
vậy ngưỡng lớn nhất của ngõ vào là ±3V trái lại mức ± 5V là ngưỡng nhỏ nhất với ngõ ra. Ngõ ra bộ kích
phát khi không tải có điện áp là ± 25V.
Các đặc điểm về điện khác bao gồm
• RL (điện trở tải) được nhìn từ bộ kích phát có giá trị từ 3 ÷ 7k.
• CL (điện dung tải) được nhìn từ bộ kích phát không được vượt quá 2500pF.
• Để ngăn cản sự dao động quá mức, tốc độ thay đổi (Slew rate ) của điện áp không được vượt qúa
30V/µs.
Đối với các đường điều khiển, thời gian chuyển của tín hiệu (từ TRUE sang FALSE, hoặc từ FALSE
sang TRUE ) không được vượt qúa 1ms. Đối với các đường dữ liệu, thời gian chuyển (từ 1 sang 0 hoặc
từ 0 sang 1) phải không vượt qúa 4% thời gian của 1 bit hoặc 1ms.
CÁC ĐƯỜNG DỮ LIỆU VÀ ĐIỀU KHIỂN CỦA RS232
- TxD: Dữ liệu được truyền đi từ Modem trên mạng điện thoại.
- RxD: Dữ liệu được thu bởi Modem trên mạng điện thoại.
Các đường báo thiết bị sẵn sàng:
- DSR : Để báo rằng Modem đã sẵn sàng.
- DTR : Để báo rằng thiết bị đầu cuối đã sẵn sàng
- Các đường bắt tay bán song công.
- RTS : Để báo rằng thiết bị đầu cuối yêu cầu phát dữ liệu.
- CTS : Modem đáp ứng nhu cầu cần gửi dữ liệu của thiết bị đầu cuối cho thiết bị đầu cuối có thể sử
dụng kênh truyền dữ liệu. Các đường trạng thái sóng mang và tín hiệu điện thoại:
- CD : Modem báo cho thiết bị đầu cuối biết rằng đã nhận được một sóng mang hợp lệ từ mạng điện
thoại.
- RI : Các Modem tự động trả lời báo rằng đã phát hiện chuông từ mạng điện thoại địa chỉ đầu tiên có
thể tới được của cổng nối tiếp được gọi là địa chỉ cơ bản (Basic Address). Các địa chỉ ghi tiếp theo được
đặt tới bằng việc cộng thêm số thanh ghi đã gặp của bộ UART vào địa chỉ cơ bản.
- Mức tín hiệu trên chân ra RxD tùy thuộc vào đường dẫn TxD và thông thường nằm trong khoảng –12
đến +12. Các bit dữ liệu được gửi đảo ngược lại. Mức điện áp đối với mức High nằm giữa –3V và –12V
và mức Low nằm giữa +3V và +12V. Trên hình 2-4 mô tả một dòng dữ liệu điển hình của một byte dữ
liệu trên cổng nối tiếp RS-232C.
- Ở trạng thái tĩnh trên đường dẫn có điện áp –12V. Một bit khởi động (Starbit) sẽ mở đầu việc truyền
dữ liệu. Tiếp đó là các bit dữ liệu riêng lẻ sẽ đến, trong đó các bit giá trị thấp sẽ được gửi trước tiên. Còn
số của các bit thay đổi giữa 5 và 8. Ở cuối của dòng dữ liệu còn có một bit dừng (Stopbit) để đặt trở lại
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 73
trạng thái ngõ ra (-12V).
Địa chỉ cơ bản của cổng nối tiếp của máy tính PC có thể tóm tắt trong bảng các địa chỉ sau:
COM 1 (cổng nối tiếp thứ nhất) Địa chỉ cơ bản = 3F8(Hex)
COM 2 (cổng nối tiếp thứ hai) Địa chỉ cơ bản = 2F8(Hex)
COM 3 (cổng nối tiếp thứ ba) Địa chỉ cơ bản = 3E8(Hex)
COM 4 (cổng nối tiếp thứ tư) Địa chỉ cơ bản = 2E8(Hex)
Cũng như ở cổng máy in, các đường dẫn tín hiệu riêng biệt cũng cho phép trao đổi qua các địa chỉ trong
máy tính PC. Trong trường hợp này, người ta thường sử dụng những vi mạch có mức độ tích hợp cao để
có thể hợp nhất nhiều chức năng trên một chip. Ở máy tính PC thường có một bộ phát/nhận không đồng
bộ vạn năng (gọi tắt là UART: Universal Asnchronous Receiver/ Transmitter) để điều khiển sự trao đổi
thông tin giữa máy tính và các thiết bị ngoại vi. Phổ biến nhất là vi mạch 8250 của hãng NSC hoặc các
thế hệ tiếp theo.
Thông thường với các yêu cầu ứng dụng tốc độ thấp người ta giao tiếp qua ngõ nối tiếp, nó giao tiếp theo
tiêu chuẩn RS232C và dùng để giao tiếp giữa máy tính với Modem hoặc Mouse. Ngoài ra cũng có thể
dùng giao tiếp với printer hay plotter nhưng không thông dụng lắm bởi tốc độ truyền quá chậm. Đối với
máy AT cho ta hai ngõ giao tiếp COM1 và COM2. Trong một số card I/O ta có thể có đến 4 cổng COM.
Để giao tiếp nối tiếp với 2 ngõ COM này Bus hệ thống của CPU (Data Bus và Address Bus) hãng IBM
sử dụng hai Chip lập trình của Intel là 8250 UART (Universal Asynchronus Receiver Transmitter). Địa
chỉ theo bộ nhớ của hai Chip này là 0040:0000 cho UART của ngõ COM1 và 0040:0002 cho UART của
ngõ COM2 (Địa chỉ logic do hệ điều hành chỉ định) và địa chỉ theo Port để truy xuất khi sử dụng là 3F8-
3FF cho COM1 và 2F8-2FF cho COM2.
Dữ liệu truyền qua cho Port COM dưới dạng nối tiếp từng Bit một, đơn vị dữ liệu có thể là 5 Bit, 6 Bit
hay 1 byte tùy theo sự cài đặt lúc khởi tạo Port COM. Ngoài ra để truyền dữ liệu qua Port COM còn cần
những tham số sau: Bit mở đầu cho một đơn vị dữ liệu START Bit. STOP Bit (Bit kết thúc). Parity
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 74
(Kiểm tra chẵn lẻ). Baud Rate (Tốc độ truyền) tạo thành một Frame (Khung truyền).
Port COM là một thể khởi tạo bằng BIOS thông qua chức năng 0 của Interrupt 14, nạp vào thanh ghi
DX1 chỉ số chọn kênh (COM1 = 0, COM2 = 1).
Thanh ghi AL được nạp vào các tham số của việc truyền dữ liệu.
Bit D0 D1 : Cho biết độ rộng của dữ liệu
0 0 : Dữ liệu có độ rộng 5 Bit
0 1 : Dữ liệu có độ rộng 6 Bit
1 0 : Dữ liệu có độ rộng 7 Bit
1 1 : Dữ liệu có độ rộng 8 Bit.
Bit D2 : Cho biết số Stop Bit.
0 : Sử dụng một bit Stop
1 : Sử dụng hai bit Stop
Bit D3 D4 : Các Bit parity (chẵn lẻ)
0 0 : Không kiểm tra tính Parity
1 1 : Không kiểm tra tính Parity
0 1 : Odd (lẻ)
1 0 : Even (chẵn)
Bit D5D6D7 : Cho biết tốc độ truyền (Baud Rate)
0 0 0 : Tốc độ truyền 110bps (bit per second)
0 0 1 : Tốc độ truyền 150bps (bit per second)
0 1 0 : Tốc độ truyền 300bps (bit per second)
0 1 1 : Tốc độ truyền 600bps (bit per second)
1 0 0 : Tốc độ truyền 1200bps (bit per second)
1 0 1 : Tốc độ truyền 2400bps (bit per second)
1 1 0 : Tốc độ truyền 4800bps (bit per second)
1 1 1 : Tốc độ truyền 9600bps (bit per second)
CÁC IC KÍCH PHÁT VÀ THU CỦA RS232C
Nhờ tính phổ biến của giao tiếp, người ta đã chế tạo các IC kích phát và thu. Hai vi mạch như vậy được
Motorola sản xuất là IC kích phát MC 1488 có dạng vỏ vuông. Và MC 1489.Mỗi IC kích phát 1488 nhận
một tín hiệu mức TTL và chuyển thành tín hiệu ở ngõ ra tương thích với mức điện áp của RS232C. IC
1489 phát hiện các mức vào của RS232C và chuyển chúng thành các ngõ ra có mức TTL.
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 75
* Sơ đồ kết nối giữa cổng COM với Vi điều khiển 8051 :
Sơ đồ thực thực tế
Vi mạch này nhận mức RS232 đã được gởi tới từ máy tính và biến đổi tín hiệu náy thành tín hiệu TTL
để cho tương thích với IC 8051 và nó cũng thực hiện ngược lại là biến đổi tín hiệu TTL từ Vi điều khiển
thành mức +12V, -12V để cho phù hợp hoạt động của máy tính. Giao tiếp theo cách này, khoảng cách từ
máy tính đến thiết bị ngoại vi có thể đạt tới trên 20 mét.
Đối với đề tài chỉ yêu cầu truyền dữ liệu từ máy tính qua KIT chứ không truyền dữ liệu từ KIT qua máy
tính vì vậy chúng em chọn vi mạch MAX232 để thực hiện biến đổi tương thích mức tín hiệu.
Ưu điểm của giao diện này là có khả năng thiết lập tốc độ Baud.
Khi dữ liệu từ máy tính được gởi đến KIT Vi điều khiển 8051 qua cổng COM thì dữ liệu này sẽ được đưa
vào từng bit (nối tiếp) vào thanh ghi SBUF (thanh ghi đệm), đến khi thanh ghi đệm đầy thì cờ RI trong
thanh ghi điều khiển sẽ tự động Set lên 1 và lúc này CPU sẽ gọi chương trình con phục vụ ngắt và dữ
liệu sẽ được đưa vào để xử lý.
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 76
3. IC 741:
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 77
CHƯƠNG III:
PHẦN MỀM
1. Giới thiệu:
Phần cứng đó là những gì đã cố định, nó là một cỗ máy, cỗ máy muốn hoạt động thì phải có công
nhân lành nghề điều khiển nó, với cùng một cỗ máy nhưng người công nhân có tay nghề cao thì sản
phẩm càng có chất lượng. Từ đó chúng ta nhận thấy rằng, phần cứng muốn hoạt động được đòi hỏi phải
có sự can thiệp của con người mà chủ yếu là thông qua phần mềm điều khiển và sự hoạt động mềm dẻo
của phần cứng lại phụ thuộc vào trình độ người lập trình. Như vậy, phần mềm và phần cứng tuy là hai bộ
phận hoạt động độc lập nhưng hoạt động của chúng không thể tách rời nhau trong cùng một hệ thống,
chúng hỗ trợ lẫn nhau để hình thành nên hoạt động của hệ thống.
Biết được tầm quan trọng của phần mềm, chúng ta sẽ vận dụng phần cứng để các chương trình phần
mềm phục vụ mụch đích của chúng ta.
2. Giới thiệu ngôn ngữ Assembly:
Khi máy tính thực hiện chương trình, nó đọc một dãy các số nhị phân chỉ gồm toàn các số 0 và 1 vào
bộ nhớ, giải mã rồi hiển thị. Để cho dễ đọc và dễ viết hơn thường ta viết các số nhị phân dưới dạng các số
thập lục phân được gọi là chương trình viết bằng ngôn ngữ máy. Dùng kí tự “A” hay “B”.để ra lệnh cho
vi xử lí thực hiện một chương trình đã được viết sẵn.
Tuy chương trình có thể viết trực tiếp bằng ngôn ngữ máy, nhưng nếu trong chương trình có một lỗi
nào đó, hoặc muốn thêm hoặc xoá một mã lệnh nào đó có điạ chỉ đi kèm như jump, call, loop … cũng
phải được tính toán lại cho đúng địa chỉ, nên rất khó cho việc lập, sửa và bảo trì chương trình. Vì vậy
thay vì viết trực tiếp bằng ngôn ngữ máy, người lập trình có thể viết bằng một ngôn ngữ dưới dạng các ký
hiệu hình thức hoặc các từ gợi nhớ tương đương với một lệnh của CPU. Đây chính là Hợp Ngữ
(Assembly Language).
Hợp ngữ (Assembly Language) là ngôn ngữ lập trình cấp thấp gần với ngôn ngữ máy.
Assembly là chương trình dịch các chương trình viết bằng hợp ngữ sang mã máy.
Sau đây là chương trình nạp vào vi xử lý:
#include
;PCON EQU 87H
ORG 00H
BAUD_RATE:
MOV TMOD,#20H ;Enable reception
;Set Serial port mode to 8-bit UART
MOV SCON,#53H ;Set baudrate to 9600 at 11.0592MHz
MOV TH1,#0FDH
MOV TL1,#0FDH
SETB TR1 ;Start Timer
MAIN: MOV P0,#01111111B ; MAIN
MOV P1,#01111111B ; PORT HIEN THI
LCALL READ
CJNE A,#'A',D1 ; LENH MO DEN
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 78
LCALL TRIPLE10
D1: CJNE A,#'C',D2 ;LENH MO QUAT
LCALL TRIPLE30
D2: CJNE A,#'E',S ;LENH MO CUA
LCALL MOTOR
S: CJNE A,#'S',D3 ;LENH SOS
LCALL SOS
D3: LJMP MAIN
;####################READ##########################
READ:
;Wait for Receive interrupt flag
JNB RI,$
;If falg is set then clear it
CLR RI
;Then read data from SBUF
MOV A,SBUF
RET
;######################MOTOR###################
MOTOR: MOV P0,#11111011B ;MO CUA
MOV P1,#11111011B
LCALL DEL
LCALL MOTOR1
MOTOR1: MOV P0,#11111111B ;MO CUA XONG
MOV P1,#11111111B
LCALL READ
CJNE A,#'F',MOTOR2 ;LENH DONG CUA
LCALL MOTOR5
MOTOR2: CJNE A,#'A',MOTOR3 ;LENH MO DEN
LCALL TRIPLE20
MOTOR3: CJNE A,#'C',MOTOR4 ;LENH MO QUAT
LCALL TRIPLE40
MOTOR4: CJNE A,#'S',S1 ; LENH SOS
LCALL SOS
S1: LJMP MOTOR1
MOTOR5: MOV P0,#11110111B
MOV P1,#11110111B
LCALL DEL
LJMP MAIN
;######################TRIPLE###################
TRIPLE1: MOV P0,#11110110B ;mo den va dong cua
MOV P1,#11110110B
LCALL DEL
LCALL TRIPLE10
TRIPLE10: MOV P0,#11111110B ;DONG CUA XONG, CON DEN DANG SANG
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 79
MOV P1,#11111110B
LCALL READ
CJNE A,#'B',TRIPLE11
LJMP MAIN
TRIPLE11: CJNE A,#'C',TRIPLE12
LJMP TRIPLE60
TRIPLE12: CJNE A,#'E',S13
LCALL TRIPLE2
S13: CJNE A,#'S',TRIPLE13
LCALL SOS
TRIPLE13: LJMP TRIPLE10
TRIPLE2: MOV P0,#11111010B ;MO DEN, MO CUA
MOV P1,#11111010B
LCALL DEL
LCALL TRIPLE20
TRIPLE20: MOV P0,#11111110B ;MO CUA XONG, DEN VAN SANG
MOV P1,#11111110B
LCALL READ
CJNE A,#'B',TRIPLE21
LJMP MOTOR1
TRIPLE21: CJNE A,#'C',TRIPLE22
LJMP TRIPLE50
TRIPLE22: CJNE A,#'F',S23
LCALL TRIPLE1
S23: CJNE A,#'S',TRIPLE23
LCALL SOS
TRIPLE23: LJMP TRIPLE20
TRIPLE3: MOV P0,#11110101B ;DONG CUA, MO QUAT
MOV P1,#11110101B
LCALL DEL
LCALL TRIPLE30
TRIPLE30: MOV P0,#11111101B ;DONG CUA XONG, QUAT VAN MO
MOV P1,#11111101B
LCALL READ
CJNE A,#'D',TRIPLE31
LJMP MAIN
TRIPLE31: CJNE A,#'A',TRIPLE32
LJMP TRIPLE60
TRIPLE32: CJNE A,#'E',S33
LCALL TRIPLE4
S33: CJNE A,#'S',TRIPLE33
LCALL SOS
TRIPLE33: LJMP TRIPLE30
TRIPLE4: MOV P0,#11111001B ;MO QUAT MO CUA
MOV P1,#11111001B
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 80
LCALL DEL
LCALL TRIPLE40
TRIPLE40: MOV P0,#11111101B ;MO CUA XONG, QUAT VAN MO
MOV P1,#11111101B
LCALL READ
CJNE A,#'D',TRIPLE41
LJMP MOTOR1
TRIPLE41: CJNE A,#'A',TRIPLE42
LJMP TRIPLE50
TRIPLE42: CJNE A,#'F',S43
LCALL TRIPLE3
S43: CJNE A,#'S',TRIPLE43
LCALL SOS
TRIPLE43: LJMP TRIPLE40
TRIPLE5: MOV P0,#11111000B ;MO DEN, QUAT, CUA
MOV P1,#11111000B
LCALL DEL
LCALL TRIPLE50
TRIPLE50: MOV P0,#11111100B ; den quat van sang
MOV P1,#11111100B
LCALL READ
CJNE A,#'D',TRIPLE51 ; TAT QUAT, DEN SANG
LJMP TRIPLE20
TRIPLE51: CJNE A,#'B',TRIPLE52 ;TAT DEN, QUAT VAN CHAY
LJMP TRIPLE40
TRIPLE52: CJNE A,#'F',S53
LCALL TRIPLE6
S53: CJNE A,#'S',TRIPLE53
LCALL SOS
TRIPLE53: LJMP TRIPLE50
TRIPLE6: MOV P0,#11110100B ; DONG CUA, DEN QUAT VAN SANG
MOV P1,#11110100B
LCALL DEL
LCALL TRIPLE60
TRIPLE60: MOV P0,#11111100B ; DONG CUA XONG,DEN QUAT VAN SANG
MOV P1,#11111100B
LCALL READ
CJNE A,#'D',TRIPLE61 ; TAT QUAT, DEN SANG
LJMP TRIPLE10
TRIPLE61: CJNE A,#'B',TRIPLE62 ;TAT DEN, QUAT VAN CHAY
LJMP TRIPLE30
TRIPLE62: CJNE A,#'E',S63
LCALL TRIPLE5
S63: CJNE A,#'S',TRIPLE63
LCALL SOS
TRIPLE63: LJMP TRIPLE60
;################### SOS #####################
SOS: MOV P0,#11111111B
MOV P1,#11111111B
LCALL READ
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 81
CJNE A,#'O',SOS1
LJMP MAIN
SOS1: LJMP SOS
;################### Delay 3s #####################
DEL: MOV R5,#150
DEL3: mov r6,#100
DEL1: mov r7,#120
DEL2: djnz r7,DEL2
djnz r6,DEL1
DJNZ R5,DEL3
RET
END
3. Giới thiệu ngôn ngữ CCS:
- Chương trình CCS dùng cho tài liệu này là PCW COMPILER version 3.07 (2001 ) hoặc 3.222 (2004) ,
bao gồm : PCB , PCM và PCH . Phiên bản mới nhất là 3.227 có nhiều hàm mới và chức năng mới , cập
nhật mới . Lập trình cho các họ PIC 12 bit , 14 bit và PIC 18 .
- Để viết 1 chương trình C mới : chạy CCS , vào New để tạo 1 file C mới . Trên thanh toolbar :
- Chọn “Microchip 12 bit” để viết chương trình cho PIC 12 bit . “Microchip 14 bit” để viết
chương trình cho PIC 14 bit . “Microchip PIC18” để viết chương trình cho PIC18 .
- Chọn “Compiler” để biên dịch chương trình bạn đang viết.
- CCS là trình biên dịch dùng ngôn ngữ C lập trình cho VĐK . Đây là ngôn ngữ lập trình đầy sức mạnh ,
giúp bạn nhanh chóng trong việc viết chương trình hơn so với ngôn ngữ Assembly .
- Mặt khác , nó sinh mã không theo ý muốn ( dù không sai , ví dụ như sinh nhiều mã lệnh không quan
trọng khi thực thi hàm ngắt ) làm chậm tốc độ thực thi chương trình nếu bạn đòi hỏi chương trình xử lý
với tốc độ cao , ví dụ như điều chế PWM .
- Nhưng CCS C cho phép bạn phối hợp ASSEMBLY cùnh với C , điều này cho phép chương trình của
bạn sẽ trở nên rất uyển chuyển , kết hợp được sức mạnh của cả 2 ngôn ngữ , dù rằng việc phối hợp sẽ làm
cho việc viết chương trình trở nên khó khăn hơn .
- CCS cung cấp các công cụ tiện ích giám sát hoạt động chương trình như : C/ASM list : cho phép xem
mã ASM của file bạn biên dịch , giúp bạn quản lý mã và nắm được các thức mã sinh ra và nó chạy như
thế nào , là công cụ rất quan trọng , bạn có thể gỡ rối chương trình và nắm được hoạt động của nó ;
SYMBOL hiển thị bộ nhớ cấp phát cho từng biến , giúp quản lý bộ nhớ các biến chương trình ,. . .
CallTree hiển thị phân bổ bộ nhớ .
Sau đây là chương trình nạp cho PIC:
#include //Device
#fuses xt,nowdt,noprotect,noput,nolvp //Fuses
#use delay (clock=4000000) //4.00 MHz
#include //LCD driver
#include
int i,read_ok;
byte buffer[8];
float t,t1;
main()
{
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 82
lcd_init(); //LCD start
while(true)
{
init_1wire();
write_1wire(0xcc); //skip ROM
write_1wire(0x44); //convert T
init_1wire();
write_1wire(0xcc); //skip ROM
write_1wire(0xbe); //read scratchpad
for(i=0;i<8;i++)
{
buffer[i]=read_1wire();
read_ok=1;
}
t=make16(buffer[1],buffer[0]); //calculate temperature
t=(float)t/16.0; //Calculation 0.1 deg C resolution
lcd_gotoxy(2,2);
if(t>=20&&t<=30.0)
printf(lcd_putc,"mat! ");
else if(t<20)
printf(lcd_putc,"lanh! ");
else if(t>30.0&&t<40.0)
printf(lcd_putc,"nong! ");
else if(t>=40.0)
printf(lcd_putc,"chay! ");
if(t>=60)
output_c(0b111111);
else if(t>=20&&t<29.0)
output_c(0b000000);
else
output_c(0b000000);
lcd_gotoxy(1,1);
printf(lcd_putc,"nhietdo=%3.1f\'C",t);
delay_ms(1000);
}
}
4. Giới thiệu MATLAB:
MATLAB là một môi trường tính toán số và lập trình, được thiết kế bởi công ty MathWorks. Matlab cho
phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao
diện người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác. Sau
đây là chương trình lập trình xuất dự liệu cho MATLAB:
( địa chỉ tham khảo)
function varargout = buttonA(varargin)
% Begin initialization code - DO NOT EDIT
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 83
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @buttonA_OpeningFcn, ...
'gui_OutputFcn', @buttonA_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before buttonA is made visible.
function buttonA_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to buttonA (see VARARGIN)
% Choose default command line output for buttonA
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes buttonA wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = buttonA_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
%function love1
cong=serial('COM5');
set(cong,'BaudRate',9600);
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 84
fopen(cong);
fprintf(cong,'%c','A');
fclose(cong);
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
%function love1
cong=serial('COM5');
set(cong,'BaudRate',9600);
fopen(cong);
fprintf(cong,'%c','B');
fclose(cong);
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
%function love1
cong=serial('COM5');
set(cong,'BaudRate',9600);
fopen(cong);
fprintf(cong,'%c','C');
fclose(cong);
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
%function love1
cong=serial('COM5');
set(cong,'BaudRate',9600);
fopen(cong);
fprintf(cong,'%c','D');
fclose(cong);
% hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton5.
function pushbutton5_Callback(hObject, eventdata, handles)
cong=serial('COM5');
set(cong,'BaudRate',9600);
fopen(cong);
fprintf(cong,'%c','E');
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 85
fclose(cong);
% hObject handle to pushbutton5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton6.
function pushbutton6_Callback(hObject, eventdata, handles)
cong=serial('COM5');
set(cong,'BaudRate',9600);
fopen(cong);
fprintf(cong,'%c','F');
fclose(cong);
% hObject handle to pushbutton6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton8.
function pushbutton8_Callback(hObject, eventdata, handles)
cong=serial('COM5');
set(cong,'BaudRate',9600);
fopen(cong);
fprintf(cong,'%c','S');
fclose(cong);
% hObject handle to pushbutton8 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton9.
function pushbutton9_Callback(hObject, eventdata, handles)
cong=serial('COM5');
set(cong,'BaudRate',9600);
fopen(cong);
fprintf(cong,'%c','O');
fclose(cong);
% hObject handle to pushbutton9 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 86
CHƯƠNG IV:
ĐIỀU KHIỂN
I/ Giao diện MATLAB điều khiển thông qua máy tính:
- Chú thích:
. Mô hình điều khiển bao gồm 3 thiết bị: đèn, quạt, cửa.
. Mô hình điều khiển có 2 chế độ : Enable (cho phép điều khiển) và Disable (không cho phép điều
khiển).
. Các thành phần phụ trợ: Đèn cửa (tự động bật tắt), Nhiệt độ (cảnh báo cháy).
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 87
III/ Sơ đồ điều khiển thông qua mạng:
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 88
III/ Điều khiển thông qua mạng LAN:
. Máy Server:
- IP: 192.168.1.3
. Máy Client:
- IP: 192.168.1.4
1. Cấu hình trên máy Server:
- My computer >>> Propertise >>> Remote >>> Check : Allow user to connect remotely to this
computer >>> Nhấn : Select Remote user
- Add : administrator
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 89
2. Cấu hình trên máy Client:
- Nhập địa chỉ IP máy cần điều khiển
- Nhập Username và Password
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 90
IV/ Điều khiển thông qua mạng Internet:
- Ngoài những bước trên , cần cấu hình NAT Server trên Modem
- Cần đăng ký 1 free host, ở đây ta dùng trang No-ip.com
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 91
- Tải phần mềm Client của No-ip
. Khi cần Request IP ta nhờ Server của NO-ip phân giải Host đã đăng kí
Từ đó làm lại các bước đã nêu ở III là có thể Remote Server.
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 92
Phần C: Tổng Kết
Đánh giá kết quả thi công
Với sự phát triển đến mức tiên tiến của KHKT như hiện nay, đặc biệt là lĩnh vực điện tử và vi tính
đã làm tiền đề cho mọi ngành khoa học khác dễ dàng phát triển – sự phát triển vũ bão đó luôn đeo đuổi
hoài bảo duy nhất – phục vụ con người. Kết quả, mỗi ứng dụng trong cuộc sống con người luôn sẵn sàng
thừa hưởng những tinh hoa đó, nhằm nâng cao năng suất lao động, nâng cao cuộc sống con người, không
ngừng thúc đẩy xã hội về mọi mặt.
Để tiếp cận với lĩnh vực tự động hoá, đặc biệt là lĩnh vực truyền dữ liệu nên em bắt đầu nghiên cứu
lĩnh vực này và thực hiện đề tài : “Điều khiển thiết bị từ xa thông qua máy tính” với những thành quả
nhất định trong thi công:
_ Viết chương trình giao tiếp giữa Vi Điều Khiển AT89C51 và Máy Vi Tính.
_ Mạch giao tiếp giữa Vi Điều Khiển AT89C51 và Máy Vi Tính thông qua port giao tiếp nối tiếp.
Mặc dù đã cố gắng nhiều vẫn không tránh được những thiếu sót: chưa hoàn thành được chương
trình truyền dữ liệu từ IC sang và chương trình giao diện điều khiển còn rất đơn giản.
Đây là lần đầu tiên tiến hành thi công với chương trình giao tiếp khá phức tạp, nên ý muốn hoàn
chỉnh đến mức tối ưu nhưng vẫn chưa đạt được. Tuy nhiên, kết quả thi công vẫn đạt được những yêu cầu
nhất định.
************************************************************************************
Đề tài: Điều khiển thiết bị từ xa thông qua máy tính GVHD: Cô BÙI THỊ KIM CHI
Nhóm: Trịnh Hoàng Long, Trần Thanh Hiền, Phan Thanh Tiến 93
LỜI CẢM TẠ
Xin chân thành cám ơn tập thể thầy cô trường CĐKT Cao Thắng đã tận tình giảng dạy chúng em trong
suốt những năm qua. Tuy đó chỉ là một khoảng thời gian ít ỏi nhưng chúng em đã tiếp thu được rất nhiều
những kiến thức bổ ích góp phần làm hành trang vào đời cho chúng em sau này.
******************************HẾT*******************************
Các file đính kèm theo tài liệu này:
- bao_cao_do_an_tot_nghiep11_6938.pdf