BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP. HCM
KHOA CÔNG NGHỆ ĐIỆN TỬ
ĐỒ ÁN CHUYÊN NGHÀNH
Đề Tài:
ĐIỀU KHIỂN NHIỆT ĐỘ NHIỀU
KÊNH DÙNG dsPIC 30F4013 CÓ
GIAO TIẾP MÁY TÍNH
Giáo viên hướng dẫn : Th.S HUỲNH MINH NGỌC
Sinh viên thực hiện : ĐẶNG MINH TÂM
Mã số sinh viên : 12157241
Lớp: DHDTTD8BLT
Tp. Hồ Chí Minh, tháng 12 năm 2014
LỜI CẢM ƠN
Đề tài đã được hoàn thành theo đúng thời gian yêu cầu của nhà trường
cũng như của khoa. Và để đạt được kết quả này, đó không chỉ là sự nỗ lực của
bản thân em mà còn có sự giúp đỡ chỉ bảo của các thầy cô và các bạn trong
lớp.
Trước tiên em muốn dành gởi tình cảm chân thành đến thầy HUỲNH
MINH NGỌC đã tận tình hướng dẫn và giúp đỡ chỉ bảo cho em trong suốt
quá trình thực hiện đồ án này. Sự hướng dẫn nhiệt tình và kịp thời của Thầy
Ngọc đã giúp em hoàn thành đề tài này. Xin chân thành cám ơn Thầy.
Xin cảm ơn các bạn sinh viên trong lớp đã giúp đỡ em rất nhiều mặt như
phương tiện, sách vở, ý kiến . . .
Mặc dù đề tài đã xong nhưng do kiến thức còn hạn hẹp sẽ không tránh
khỏi những thiếu sót và hạn chế. Rất mong nhận được sự góp ý, phê bình, chỉ
dẫn của quý thầy cô, các bạn sinh viên.
SVTH: ĐẶNG MINH TÂM
Trang 1
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Trang 2
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
……………………………………………………………………………… …………………………………………………………………………………
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
…………………………………………………………………………………
….
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
2.4.2 Hàm truyền lò nhiệt và mô hình của Ziegler - Nichols 38
2.5 TÌM HÀM TRUYỀN LÒ NHIỆT CỦA ĐỀ TÀI 39
2.5.1 Khảo sát hệ hở 2 lò nhiệt 39
2.5.2 Hàm truyền lò 1 40
2.5.3 Hàm truyền lò 2 41
2.5.4 Kết luận: 41
2.6 SƠ LƯỢC VISUAL BASIC 2005 42
2.6.1 Các thuộc tính của serialport: 42
2.6.2 Teechart 8: 42
CHƯƠNG 3. THIẾT KẾ VÀ THI CÔNG MÔ HÌNH 43
3.1 THIẾT KẾ PHẦN CỨNG 43
SVTH: ĐẶNG MINH TÂM
Trang 5
3.1.1 Giới thiệu sơ đồ khối của mô hình: 43
3.1.2. Các khối chức năng trên mô hình 43
3.1.3 Mạch vi điều khiển trung tâm 43
3.1.4 Mạch công suất 44
3.1.5 Mạch giao tiếp máy vi tính 47
3.1.6 Cảm biến nhiệt LM35, bóng đèn dây tóc, quạt 48
3.2 GIẢI THUẬT CHƯƠNG TRÌNH 49
3.2.1 Đối tượng điều khiển 49
3.2.2 Cách tính nhiệt độ trong đề tài 50
3.2.3Cách tính toán PWM duty trong đề tài 50
3.2.4 Chương trình chính 52
3.2.5 Chương trình PID 53
3.2.6 Chương trình ON/OFF 54
3.2.7 Chương trình kết nối với máy tính 55
3.2.8 Chương trình ngắt dữ liệu trên máy tính 56
CHƯƠNG 4. KẾT QUẢ THI CÔNG 57
triển của WTO tạo sự thay đổi về mặt kinh tế xã hội của nước ta. Tạo cơ hội
cho sinh viên chúng em tiếp cận và nắm bắt được những thành tựu của thế giới
về các lĩnh vực khoa học kỹ thuật nói chung và ngành điện tử nói riêng. Hiện
nay trong các nhà máy sản xuất hệ thống nhiệt độ được ứng dụng rất nhiều ( ví
dụ nhà máy sản xuất răng sứ giả cao cấp…vv). Chính vì thế là một sinh viên
nghành tự động hóa là một nghành rất quan trọng trong công nghiệp hóa hiện
đại hóa đất nước nên em quyết định làm đề tài Điều Khiển Nhiệt Độ Nhiều
Kênh Dùng dsPIC 30F4013 Có Giao Tiếp Với Máy Tính Và Thuật Toán Điều
Khiển ON/OFF Và Thuật Toán PID Số.
SVTH: ĐẶNG MINH TÂM
Trang 7
CHƯƠNG 2. CƠ SỞ LÝ
THUYẾT
2.1 GIỚI THIỆU VỀ VI ĐIỀU KHIỂN dsPIC 30F4013
- 16 bit CPU, xây dựng theo kiến trúc Harvard
- Kiến trúc thay đổi Harvard.
- Ngôn ngữ C tối ưu hóa kiến trúc tập lệnh.
- Tập lệnh cơ bản gồm 84 lệnh.
- Chế độ định địa chỉ linh hoạt.
- Độ dài lệnh 24-bit, độ dài dữ liệu 16-bit.
- Bộ nhớ chương trình Flash 48 Kbytes.
- Bộ nhớ RAM độ lớn 2Kbytes.
- Bộ nhớ EEPROM 1 Kbytes
- Mảng 16 thanh ghi làm việc 16-bit
- Tốc độ làm việc lên tới 30 MIPS
- Dòng ra, vào ở các chân I/O lớn: 25 mA.
- 5 Timer 16-bit, có thể ghép 2 Timer 16-bit thành Timer 32-bit.
- Chức năng Capture 16-bit.
- Các bộ so sánh/PWM 16-bit.
Hình 2.2 ý nghĩa các chân của dsPIC30F4013
SVTH: ĐẶNG MINH TÂM
Trang 12
2.1.2 CPU của dsPIC30F4013
CPU của dsPic30F4013 được thiết kế trên kiến trúc RISC, nhân của CPU
có một bộ xử lí lệnh 24-bit và bộ đếm chương trình – Program Counter (PC)
độ rộng 23-bit với bit ý nghĩa thấp nhất luôn bằng 0, còn bít ý nghĩa cao nhất
thì được bỏ qua trong suốt quá trình thực hiện chương trình bình thường, chỉ
trừ khi thực hiện các lệnh đặc biệt. Do đó, bộ đếm chương trình có thể định
địa chỉ lên tới 4 triệu từ lệnh của không gian bộ nhớ chương trình được sử
dụng.
dsPIC30F4013 chứa 16 thanh ghi làm việc 16-bit. Mỗi thanh ghi làm việc có
thể làm việc với vai trò như dữ liệu, địa chỉ hoặc thanh ghi địa chỉ offset.
Thanh ghi thứ 16 (W15) hoạt động như là con trỏ ngăn xếp mềm cho hoạt
động ngắt và gọi ngắt.
Các chỉ lệnh của dsPIC30F gồm 2 lớp: Lớp MCU và Lớp DSP của lệnh. Hai
lớp này được kết hợp đồng nhất với nhau trong kiến trúc và thực hiện từ một
khối thực hiện đơn. Các chỉ lệnh bao gồm nhiều chế độ địa chỉ và được chế
tạo nhằm tương thích với trình biên dịch ngôn ngữ C.
Không gian dữ liệu có thể được địa chỉ hoá thành 32K words hoặc 64 Kbytes
và được chia làm hai khối, được gọi là bộ nhớ dữ liệu X và bộ nhớ dữ liệu Y.
Mỗi khối đều có khối tạo địa chỉ - AGU (Adress Generator Unit) riêng biệt
của nó. Tất cả các lệnh hoạt động đơn độc chỉ qua bộ nhớ X, và khối AGU –
quy định sự xuất hiện của một vùng dữ liệu thống nhất. Lớp thanh chứa phép
nhân (Multiply-Accumulate) – MAC của lệnh DSP hoạt động thông qua cả
hai khối AGU của bộ nhớ X và Y, nó chia địa chỉ dữ liệu thành hai phần. Mỗi
từ dữ liệu gồm 2-bytes, và tất cả các lệnh có thể định địa chỉ dữ liệu theo bytes
hoặc words (từ).
Timer 4, 5 có thể kết hợp với nhau để trở thành một Timer 32 bit.
Timer 1 có thể hoạt động với nguồn tạo dao động tần sốthấp 32KHz, và chế
độ
không đồng bộ với nguồn tạo dao động ngoài. Đặc điểm riêng biệt của Timer
1 đó là có thể dùng trong các ứng dụng thời gian thực. Và các timer khác còn
lại thì hoạt động tương tự.
Phần tiếp theo sẽ mô tả chi tiết cách thiết lập và sử dụng Timer 1 với ba chế
độ:
- Timer 16-bit: trong chế độ này, timer sẽ tăng sau mỗi chu kỳ lệnh đến khi
giá trị của timer bằng giá trị của thanh ghi chu kỳ PR1 (Period Register) thì sẽ
reset về 0 và tiếp tục đếm.
- Counter đồng bộ16-bit: trong chế độ này, timer sẽ tăng ở mỗi sườn lên của
của xung nhịp ngoài mà được đồng bộ với pha của các xung nhịp trong. Timer
tăng đến giá trị nằm trong thanh ghi PR1 thì dừng và reset timer về 0 rồi tiếp
tục đếm lên.
- Counter không đồng bộ16-bit: khi hoạt động trong chế độ này, timer sẽ tăng
dần sau mỗi sườn lên của xung nhịp bên ngoài tác động vào. Timer sẽ tăng
dần đến khi giá trị của nó bằng thanh ghi PR1 thì bị reset về 0 rồi lại tiếp tục
đếm lên.
Hệ số chia tần của bộ định thời:
Xung nhịp đầu vào (Fosc/4 hoặc xung nhịp ngoài) đưa vào Timer 16-
bit và có thể được chia tần số theo các tỉ lệ sau: 1:1, 1:8, 1:64, 1:256 được xác
định bởi các bit TCKPS<1:0> của thanh ghi TxCON. Hệ số chia tần này
(prescaler) có thể bị xoá khi xảy ra một trong các điều kiện sau:
+ Ghi vào TMR
+ Ghi vào thanh ghi TxCON (trừ việc ghi vào bit TxCON) Reset thiết bị, như
POR và BOR
SVTH: ĐẶNG MINH TÂM
Trang 15
Trang 22
2.1.4 Sơ đồ khối của vi điều khiển dsPIC30F4013
Hình 2.11 Sơ đồ khối vi điều khiển dsPIC30F4013
2.1.5 Tổ chức bộ nhớ:
Không gian địa chỉ chương trình:
Không gian địa chỉ chương trình có độ lớn 4M từ lệnh. Bản đồ không gian bộ
nhớ chương của dsPic30F4013 được chỉ ra trong Hình 2.12.
Bộ nhớ chương trình có thể được địa chỉ hoá bởi một giá trị 24-bit bởi bộ đếm
chương trình (PC), hoặc bảng lệnh địa chỉ hiệu dụng (EA), hoặc không gian
SVTH: ĐẶNG MINH TÂM
Trang 23
dữ liệu EA khi không gian chương trình được sắp xếp và địa chỉ hoá. Chú ý
rằng, địa chỉ không gian chương trình được tăng lên với bước là 2 giữa các từ
chương trình để tạo ra sự tương thích với việc địa chỉ hoá không gian dữ liệu.
Truy cập không gian chương trình người sử dụng bị giới hạn trong dải 4M địa
chỉ của từ lệnh (từ 0x000000 tới 0x7FFFFE) với tất cả các lệnh truy cập.Trừ
hai lệnh TBLRD/TBLWT - sử dụng bit 7 của thanh ghi TBLPAG để xác định
người sử dụng hoặc thiết lập cấu hình truy cập bộ nhớ.
Hình 2.12 Bản đồ không gian bộ nhớ chương trình
Truy xuất dữ liệu từ bộ nhớ chương trình sử dụng các lệnh bảng:
Kiến trúc của dsPIC cho phép nạp dữ liệu rộng 24-bit tới bộ nhớ chương trình,
do đó các lệnh luôn luôn được xếp hàng tuy nhiên kiến trúc của nó có cải tiến
so với kiến trúc máy tính Hadvard nên dữ liệu cũng có thể được đưa ra ở trong
không gian chương trình.
Có hai phương pháp truy cập không gian chương trình, đó là:
- Thông qua các lệnh đặc biệt về bảng hoặc thông qua việc định địa chỉ
và sắp xếp lại 16K trang từ không gian chương trình trong nửa cao của không
gian dữ liệu. Các lệnh TBLRDL và TBLWTL cung cấp phương pháp đọc và