1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án CNTT GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ PIC 16F877A HIỂN THỊ NHIỆT ĐỘ

45 629 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 45
Dung lượng 1,02 MB

Nội dung

Đồ án CNTT GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ PIC 16F877A HIỂN THỊ NHIỆT ĐỘVi xử lý dùng các cổng logic giống như các cổng logic được sử dụng trong đơn vị xử lý trung tâm của máy tính số. Do cấu trúc giống như CPU và được xây dựng từ các mạch vi điện tử nên có tên là vi xử lý: microprocessor. Giống như CPU, microprocessor có các mạch điện tử cho việc điều khiển dữ liệu (data) và tính toán dữ liệu dưới sự điều khiển của chương trình. Ngoài ra microprocessor là một đơn vị xử lý dữ liệu

Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung PHAÀN I. LYÙ THUYEÁT CHÖÔNG 1. GIÔÙI THIEÄU VEÀ VI XÖÛ LYÙ 1.1. Sô löôïc veà vi xöû lyù  Vi xöû lyù duøng caùc coång logic gioáng nhö caùc coång logic ñöôïc söû duïng trong ñôn vò xöû lyù trung taâm cuûa maùy tính soá. Do caáu truùc gioáng nhö CPU vaø ñöôïc xaây döïng töø caùc maïch vi ñieän töû neân coù teân laø vi xöû lyù: microprocessor. Gioáng nhö CPU, microprocessor coù caùc maïch ñieän töû cho vieäc ñieàu khieån döõ lieäu (data) vaø tính toaùn döõ lieäu döôùi söï ñieàu khieån cuûa chöông trình. Ngoaøi ra microprocessor laø moät ñôn vò xöû lyù döõ lieäu. Caùc ñaëc tính ngoaïi vi bao goàm caùc khoái chöùc naêng sau:  Timer0: boä ñeám 8 bit vôùi boä chia taàn soá 8 bit.  Timer1: boä ñeám 16 bit vôùi boä chia taàn soá, coù theå thöïc hieän chöùc naêng ñeám döïa vaøo xung clock ngoaïi vi ngay khi vi ñieàu khieån hoaït ñoäng ôû cheá ñoä sleep.  Timer2: boä ñeám 8 bit vôùi boä chia taàn soá, boä postcaler.  Hai boä Capture/so saùnh/ñieàu cheá ñoä roâng xung.  Caùc chuaån giao tieáp noái tieáp SSP (Synchronous Serial Port), SPI vaø I2C.  Chuaån giao tieáp noái tieáp USART vôùi 9 bit ñòa chæ.  Coång giao tieáp song song PSP (Parallel Slave Port) vôùi caùc chaân ñieàu khieån RD, WR, CS ôû beân ngoaøi. Caùc ñaëc tính Analog:  8 keânh chuyeån ñoåi ADC 10 bit.  Hai boä so saùnh. Beân caïnh ñoù laø moät vaøi ñaëc tính khaùc cuûa vi ñieàu khieån nhö:  Boä nhôù flash vôùi khaû naêng ghi xoùa ñöôïc 100.000 laàn.  Boä nhôù EEPROM vôùi khaû naêng ghi xoùa ñöôïc 1.000.000 laàn. Trang 1 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung  Döõ lieäu boä nhôù EEPROM coù theå löu tröõ treân 40 naêm.  Khaû naêng töï naïp chöông trình vôùi söï ñieàu khieån cuûa phaàn meàm. Naïp ñöôïc chöông trình ngay treân maïch ñieän ICSP (In Circuit Serial Programming) thoâng qua 2 chaân. Watchdog Timer vôùi boä dao ñoäng trong.  Chöùc naêng baûo maät maõ chöông trình.  Cheá ñoä Sleep.  Coù theå hoaït ñoäng vôùi nhieàu daïng Oscillator khaùc nhau. Baûng 1.1 Toùm taét caùc ñaëc ñieåm cuûa pic 16f877a: Tần số hoạt động DC-20MHz Reset và Delay POR, BOR (PWRT, OST) Bộ nhớ chương trình Flash 8K (14-bit word) Bộ nhớ dữ liệu (byte) 368 Bộ nhớ dữ liệu EEPROM (byte) 256 Các ngắt 15 Các Port xuất/nhập Port A, B, C, D, E Timer 3 Module Capture/Compare/PWM 2 Giao tiếp nối tiếp MSSP, USART Giao tiếp song song PSP Module A/D 10-bit 8 kênh ngõ vào Bộ so sánh tương tự 2 Tập lệnh 35 lệnh Số chân 40 chân PDIP 44 chân PLCC 44 chân TQFP Trang 2 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung 1.2. Sô ñoà chaân, caáu truùc vaø chöùc naêng pic 16f877a Hình 1.1. Sô ñoà chaân Pic 16f877a.  Chöùc naêng caùc chaân:  Chaân OSC1/CLK1 (13): ngoõ vaøo dao ñoäng thaïch anh hoaëc xung clock beân ngoaøi.  Chaân OSC1/CLK1 (13): ngoõ vaøo dao ñoäng thaïch anh hoaëc xung clock.  Chaân /VPP (1) : -MCLR: Hoaït ñoäng Reset ôû möùc thaáp. -Vpp: ngoõ vaøo aùp laäp trình.  Chaân RA0/AN0 (2): - RA0 : xuất/nhập số - AN0 : ngoõ vaøo töông töï 0  Chaân RA1/AN1 (3) : - RA1 : xuất/nhập số - AN1 : ngoõ vaøo töông töï 1  Chaân RA2/NA2/VREF-/CVREF (4) : - RA2 : xuất/nhập số Trang 3 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung - AN2 : ngoõ vaøo töông töï 2 - VREF - : ngoõ vaøo ñieän aùp chuaån (thaáp) cuûa boä A/D - CVREF: đñieän aùp tham chieáu VREF ngoõ ra boä so saùnh  Chaân RA3/NA3/VREF+ (5) : - RA3 : xuất/nhập số - AN3 : ngoõ vaøo töông töï 3 - VREF+ : ngoõ vaøo ñieän aùp chuaån (cao) cuûa boä A/D  Chaân RA4/TOCKI/C1OUT (6) : - RA4 : xuất/nhập số - TOCKI : ngoõ vaøo xung clock beân ngoaøi cho Timer 0 - C1 OUT : ngoõ ra boä so saùnh 1  Chaân RA5/AN4/ /C2OUT (7) : - RA5 : xuất/nhập số - AN4 : ngoõ vaøo töông töï 4 - SS : ngoõ vaøo choïn löïu SPI phuï - C2 OUT : ngoõ ra boä so saùnh 2  RB0/INT (33) : - RB0 : xuất/nhập số - INT : ngaét ngoaøi  RB1 (34) : xuất/nhập số  RB2 (35) : xuất/nhập số  RB3/PGC : - RB3 : xuất/nhập số - PGC : chaân cho pheùp laäp trình ñieän aùp thaáp ICSP  RB4 (37), RB5 (38) : xuất/nhập số  RB6/PGC (39) : - RB6 : xuất/nhập số - PGC : maïch dung sai vaø xung clock laäp trình ICSP Trang 4 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung  RB7/PGD (40) : - RB7 : xuất/nhập số - PGD : maïch dung sai vaø döõ lieäu laäp trình ICSP  Chaân RC0/T1 OCO/T1CKI (15) : - RC0 : xuất/nhập số - T1 OCO : ngoõ vaøo boä dao ñoäng Timer 1 - T1 CKI : ngoõ vaøo xung clock beân ngoaøi Timer 1  Chaân RC1/T1 OSI/CCP2 (16) : - RC1 : xuất/nhập số - T1 OSI : ngoõ vaøo boä dao ñoäng Timer 1 - CCP2 : ngoõ vaøo capture2, ngoõ ra compare 2, ngoõ ra PWM2  Chaân RC2/CCP1 (17) : - RC2 : xuất/nhập số - CCP1 : ngoõ vaøo Capture 1, ngoõ ra compare 1, ngoõ ra PWM1  Chaân RC3/SCK/SCL (18): - RC3 : xuất/nhập số - SCK : ngoõ vaøo xung clock noái tieáp ñoàng boä/ngoõ ra cuûa cheá ñoä SPI - SCL : ngoõ vaøo xung clock noái tieáp ñoàng boä/ngoõ ra cuûa cheá ñoä I2C  Chaân RC4/SDI/SDA (23) : - RC4 : xuất/nhập số - SDI : dữ liệu vào SPI - SDA : xuất/nhập dữ liệu vào I2C  Chaân RC5/SDO (24) : - RC5 : xuất/nhập số - SDO : dữ liệu ra SPI  Chaân RC6/TX/CK (25) : - RC6 : xuất/nhập số - TX : truyeàn baát ñoàng boä USART Trang 5 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung - CK : xung ñoàng boä USART  Chaân RC7/RX/DT (26) : - RC7 : xuất/nhập số - RX : nhaän baát ñoàng boä USART - DT : döõ lieäu ñoàng boä USART  Chaân RD0/PSP0 (19) : - RD0 : xuất/nhập số - PSP0 : döõ lieäu port nhaùnh song song  RD1/PSP1 (20) : - RD1 : xuất/nhập số - PSP1 : döõ lieäu port nhaùnh song song Caùc chaân RD2/PSP2 (21), RD3/PSP3 (22), RD4/PSP (27), RD5/PSP5 (28), RD6/PSP6 (29), RD7/PSP7 (30) töông töï chaân 19,20.  Chaân RE0/ /AN6 (8) : - RE0 : xuất nhập số - RD : ñieàu khieån vieäc ñoïc ôû port nhaùnh song song - AN5 : ngoõ vaøo töông töï 5  Chaân RE1/ /AN6 (9) : - RE1 : xuất/nhập số - WR : döõ lieäu port nhaùnh song song - AN6 : ngoõ vaøo töông töï 6  Chaân RE2/ /AN7 (10) : - RE2 : xuất/nhập số - CS : chip löïa choïn söï ñieàu khieån ôû port nhaùnh song song - AN7 : ngoõ vaøo töông töï 7  Chaân VDD(11,32), vaø VSS(12,31) : laø caùc chaân nguoàn cuûa Pic. Trang 6 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung Hình 1.2. Caáu truùc beân trong Pic 16f877a. Trang 7 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung Hình 1.3. Vi ñieàu khieån Pic 16f877a. Trang 8 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung 1.3. Toå chöùc boä nhôù  Caáu truùc boä nhôù cuûa vi ñieàu khieån PIC16F877A bao goàm boä nhôù chöông trình (Program memory) vaø boä nhôù döõ lieäu (Data Memory). 1.3.1. Boä nhôù chöông trình  Boä nhôù chöông trình cuûa vi ñieàu khieån PIC16F877A laø boä nhôù flash, dung löôïng boä nhôù 8K word (1 word = 14 bit) vaø ñöôïc phaân thaønh nhieàu trang (töø page 0 ñeán page 3) .  Nhö vaäy boä nhôù chöông trình coù khaû naêng chöùa ñöôïc 8*1024 = 8192 leänh (vì moät leänh sau khi maõ hoùa seõ coù dung löôïng 1 word (14 bit).  Ñeå maõ hoùa ñöôïc ñòa chæ cuûa 8K word boä nhôù chöông trình, boä ñeám chöông trình coù dung löôïng 13 bit (PC).  Khi vi ñieàu khieån ñöôïc reset, boä ñeám chöông trình seõ chæ ñeán ñòa chæ 0000h (Reset vector). Khi coù ngaét xaûy ra, boä ñeám chöông trình seõ chæ ñeán ñòa chæ 0004h (Interrupt vector).  Boä nhôù chöông trình khoâng bao goàm: Boä nhôù stack vaø khoâng ñöôïc ñòa chæ hoùa bôûi boä ñeám chöông trình. 1.3.2. Boä nhôù döõ lieäu  Boä nhôù döõ lieäu cuûa PIC laø boä nhôù EEPROM ñöôïc chia ra laøm nhieàu bank. Ñoái vôùi PIC16F877A boä nhôù döõ lieäu ñöôïc chia ra laøm 4 bank. Moãi bank coù dung löôïng 128 byte, bao goàm caùc thanh ghi coù chöùc naêng ñaëc bieät SFG (Special Function Register) naèm ôû caùc vuøng ñòa chæ thaáp vaø caùc thanh ghi muïc ñích chung GPR (General Purpose Register) naèm ôû vuøng ñòa chæ coøn laïi trong bank. Caùc thanh ghi SFR thöôøng xuyeân ñöôïc söû duïng (ví duï nhö thanh ghi STATUS) seõ ñöôïc ñaët ôû taát caø caùc bank cuûa boä nhôù döõ lieäu giuùp thuaän tieän trong quaù trình truy xuaát vaø laøm giaûm bôùt leänh cuûa chöông trình. Sô ñoà cuï theå cuûa boä nhôù döõ lieäu PIC16F877A nhö sau: Trang 9 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung Hình 1.4 Sô ñoà boä nhôù döõ lieäu pic 16f877a. Trang 10 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung 1.3.2.1. Thanh ghi chöùc naêng ñaëc bieät SFR  Ñaây laø caùc thanh ghi ñöôïc söû duïng bôûi CPU hoaëc ñöôïc duøng ñeå thieát laäp vaø ñieàu khieån caùc khoái chöùc naêng ñöôïc tích hôïp beân trong vi ñieàu khieån. Coù theå phaân thanh ghi SFR laøm hai loïai: thanh ghi SFR lieân quan ñeán caùc chöùc naêng beân trong (CPU) vaø thanh ghi SRF duøng ñeå thieát laäp vaø ñieàu khieån caùc khoái chöùc naêng beân ngoaøi (ví duï nhö ADC, PWM, …). Phaàn naøy seõ ñeà caäp ñeán caùc thanh ghi lieân quan ñeán caùc chöùc naêng beân trong. Caùc thanh ghi duøng ñeå thieát laäp vaø ñieàu khieån caùc khoái chöùc naêng seõ ñöôïc nhaéc ñeán khi ta ñeà caäp ñeán caùc khoái chöùc naêng ñoù.  Thanh ghi STATUS (03h, 83h, 103h, 183h):thanh ghi chöùa keát quaû thöïc hieän pheùp toaùn cuûa khoái ALU, traïng thaùi reset vaø caùc bit choïn bank caàn truy xuaát trong boä nhôù döõ lieäu. Thanh ghi OPTION_REG (81h, 181h): thanh ghi naøy cho pheùp ñoïc vaø ghi, cho pheùp ñieàu khieån chöùc naêng pullup cuûa caùc chaân trong PORTB, xaùc laäp caùc tham soá veà xung taùc ñoäng, caïnh taùc ñoäng cuûa ngaét ngoaïi vi vaø boä ñeám Timer0.  Thanh ghi INTCON (0Bh, 8Bh,10Bh, 18Bh):thanh ghi cho pheùp ñoïc vaø ghi, chöùa caùc bit ñieàu khieån vaø caùc bit côø hieäu khi timer0 bò traøn, ngaét ngoaïi vi RB0/INT vaø ngaét interrput-on-change taïi caùc chaân cuûa PORTB.  Thanh ghi PIE1 (8Ch): chöùa caùc bit ñieàu khieån chi tieát caùc ngaét cuûa caùc khoái chöùc naêng ngoaïi vi. Trang 11 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung  Thanh ghi PIR1 (0Ch) chöùa côø ngaét cuûa caùc khoái chöùc naêng ngoaïi vi, caùc ngaét naøy ñöôïc cho pheùp bôûi caùc bit ñieàu khieån chöùa trong thanh ghi PIE1.  Thanh ghi PIE2 (8Dh): chöùa caùc bit ñieàu khieån caùc ngaét cuûa caùc khoái chöùc naêng CCP2, SSP bus, ngaét cuûa boä so saùnh vaø ngaét ghi vaøo boä nhôù EEPROM.  Thanh ghi PIR2 (0Dh): chöùa caùc côø ngaét cuûa caùc khoái chöùc naêng ngoaïi vi, caùc ngaét naøy ñöôïc cho pheùp bôûi caùc bit ñieàu khieån chöùa trong thanh ghi PIE2.  Thanh ghi PCON (8Eh): chöùa caùc côø hieäu cho bieát traïng thaùi caùc cheá ñoä reset cuûa vi ñieàu khieån. 1.3.2.2. Thanh ghi muïc ñích chung GPR  Caùc thanh ghi naøy coù theå ñöôïc truy xuaát tröïc tieáp hoaëc giaùn tieáp thoâng qua thanh ghi FSG (File Select Register). Ñaây laø caùc thanh ghi döõ lieäu thoâng thöôøng, ngöôøi söû duïng coù theå tuøy theo muïc ñích chöông trình maø coù theå duøng caùc thanh ghi naøy ñeå chöùa caùc bieán soá, haèng soá, keát quaû hoaëc caùc tham soá phuïc vuï cho chöông trình. 1.4. Caùc coång xuaát nhaäp cuûa pic16f877a  Coång xuaát nhaäp (I/O port) chính laø phöông tieän maø vi ñieàu khieån duøng ñeå töông taùc vôùi theá giôùi beân ngoaøi. Söï töông taùc naøy raát ña daïng vaø Trang 12 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung thoâng qua quaù trình töông taùc ñoù, chöùc naêng cuûa vi ñieàu khieån ñöôïc theå hieän moät caùch roõ raøng.  Moät coång xuaát nhaäp cuûa vi ñieàu khieån bao goàm nhieàu chaân (I/O pin), tuøy theo caùch boá trí vaø chöùc naêng cuûa vi ñieàu khieån maø soá löôïng coång xuaát nhaäp vaø soá löôïng chaân trong moãi coång coù theå khaùc nhau. Beân caïnh ñoù, do vi ñieàu khieån ñöôïc tích hôïp saün beân trong caùc ñaëc tính giao tieáp ngoaïi vi neân beân caïnh chöùc naêng laø coång xuaát nhaäp thoâng thöôøng, moät soá chaân xuaát nhaäp coøn coù theâm caùc chöùc naêng khaùc ñeå theå hieän söï taùc ñoäng cuûa caùc ñaëc tính ngoaïi vi neâu treân ñoái vôùi theá giôùi beân ngoaøi. Chöùc naêng cuûa töøng chaân xuaát nhaäp trong moãi coång hoaøn toaøn coù theå ñöôïc xaùc laäp vaø ñieàu khieån ñöôïc thoâng qua caùc thanh ghi SFR lieân quan ñeán chaân xuaát nhaäp ñoù.  Vi ñieàu khieån PIC16F877A coù 5 coång xuaát nhaäp, bao goàm PORTA, PORTB, PORTC, PORTD vaø PORTE. 1.4.1. PORTA  PORTA (RPA) bao goàm 6 I/O pin. Ñaây laø caùc chaân “hai chieàu” (bidirectional pin), nghóa laø coù theå xuaát vaø nhaäp ñöôïc. Chöùc naêng I/O naøy ñöôïc ñieàu khieån bôûi thanh ghi TRISA (ñòa chæ 85h). Muoán xaùc laäp chöùc naêng cuûa moät chaân trong PORTA laø input, ta “set” bit ñieàu khieån töông öùng vôùi chaân ñoù trong thanh ghi TRISA vaø ngöôïc laïi, muoán xaùc laäp chöùc naêng cuûa moät chaân trong PORTA laø output, ta “clear” bit ñieàu khieån töông öùng vôùi chaân ñoù trong thanh ghi TRISA. Thao taùc naøy hoaøn toaøn töông töï ñoái vôùi caùc PORT vaø caùc thanh ghi ñieàu khieån töông öùng TRIS (ñoái vôùi PORTA laø TRISA, ñoái vôùi PORTB laø TRISB, ñoái vôùi PORTC laø TRISC, ñoái vôùi PORTD laø TRISD vaøñoái vôùi PORTE laø TRISE). Beân caïnh ñoù PORTA coøn laø ngoõ ra cuûa boä ADC, boä so saùnh, ngoõ vaøo analog ngoõ vaøo xung clock cuûa Timer0 vaø ngoõ vaøo cuûa boä giao Trang 13 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung tieáp MSSP (Master Synchronous Serial Port). Ñaëc tính naøy seõ ñöôïc trình baøy cuï theå trong phaàn sau.  Caùc thanh ghi SFR lieân quan ñeán PORTA bao goàm: • PORTA (ñòa chæ 05h) : chöùa giaù trò caùc pin trong PORTA. • TRISA (ñòa chæ 85h) : ñieàu khieån xuaát nhaäp. • CMCON (ñòa chæ 9Ch) : thanh ghi ñieàu khieån boä so saùnh. • CVRCON (ñòa chæ 9Dh) : thanh ghi ñieàu khieån boä so saùnh ñieän aùp. • ADCON1 (ñòa chæ 9Fh) : thanh ghi ñieàu khieån boä ADC. 1.4.2. PORTB  PORTB (RPB) goàm 8 pin I/O. Thanh ghi ñieàu khieån xuaát nhaäp töông öùng laø TRISB. Beân caïnh ñoù moät soá chaân cuûa PORTB coøn ñöôïc söû duïng trong quaù trình naïp chöông trình cho vi ñieàu khieån vôùi caùc cheá ñoä naïp khaùc nhau.  PORTB coøn lieân quan ñeán ngaét ngoaïi vi vaø boä Timer0. PORTB coøn ñöôïc tích hôïp chöùc naêng ñieän trôû keùo leân ñöôïc ñieàu khieån bôûi chöông trình.  Caùc thanh ghi SFR lieân quan ñeán PORTB bao goàm: • PORTB (ñòa chæ 06h,106h) : chöùa giaù trò caùc pin trong PORTB. • TRISB (ñòa chæ 86h,186h) : ñieàu khieån xuaát nhaäp. • OPTION_REG (ñòa chæ 81h,181h): ñieàu khieån ngaét ngoaïi vi vaø boä Timer0. 1.4.3. PORTC  PORTC (RPC) goàm 8 pin I/O. Thanh ghi ñieàu khieån xuaát nhaäp töông öùng laø TRISC. Beân caïnh ñoù PORTC coøn chöùa caùc chaân chöùc naêng cuûa boä so saùnh, boä Timer1, boä PWM vaø caùc chuaån giao tieáp noái tieáp I2C, SPI, SSP, USART.  Caùc thanh ghi ñieàu khieån lieân quan ñeán PORTC: • PORTC (ñòa chæ 07h) : chöùa giaù trò caùc pin trong PORTC Trang 14 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung • TRISC (ñòa chæ 87h) : ñieàu khieån xuaát nhaäp. 1.4.4. PORTD  PORTD (RPD) goàm 8 chaân I/O, thanh ghi ñieàu khieån xuaát nhaäp töông öùng laø TRISD. PORTD coøn laø coång xuaát döõ lieäu cuûa chuaån giao tieáp PSP (Parallel Slave Port). Caáu truùc beân trong vaø chöùc naêng cuï theå cuûa töøng chaân trong PORTD seõ ñöôïc trình baøy cuï theå trong Phuï luïc 1.  Caùc thanh ghi lieân quan ñeán PORTD bao goàm: • Thanh ghi PORTD : chöùa giaù trò caùc pin trong PORTD. • Thanh ghi TRISD : ñieàu khieån xuaát nhaäp. • Thanh ghi TRISE : ñieàu khieån xuaát nhaäp PORTE vaø chuaån giao tieáp PSP. 1.4.5. PORTE  PORTE (RPE) goàm 3 chaân I/O. Thanh ghi ñieàu khieån xuaát nhaäp töông öùng laø TRISE. Caùc chaân cuûa PORTE coù ngoõ vaøo analog. Beân caïnh ñoù PORTE coøn laø caùc chaân ñieàu khieån cuûa chuaån giao tieáp PSP.  Caùc thanh ghi lieân quan ñeán PORTE bao goàm: • PORTE : chöùa giaù trò caùc chaân trong PORTE. • TRISE : ñieàu khieån xuaát nhaäp vaø xaùc laäp caùc thoâng soá cho chuaån giao tieáp PSP. • ADCON1 : thanh ghi ñieàu khieån khoái ADC. Trang 15 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung 1.5. TIMER_0 Hình 1.5 Sô ñoà khoái timer_0  Ñaây laø moät trong ba boä ñeám hoaëc boä ñònh thôøi cuûa vi ñieàu khieån PIC16F877A. Timer0 laø boä ñeám 8 bit ñöôïc keát noái vôùi boä chia taàn soá (prescaler) 8 bit. Caáu truùc cuûa Timer0 cho pheùp ta löïa choïn xung clock taùc ñoäng vaø caïnh tích cöïc cuûa xung clock. Ngaét Timer0 seõ xuaát hieän khi Timer0 bò traøn. Bit TMR0IE (INTCON) laø bit ñieàu khieån cuûa Timer0. TMR0IE=1 cho pheùp ngaét Timer0 taùc ñoäng, TMR0IF= 0 khoâng cho pheùp ngaét Timer0 taùc ñoäng.  Muoán Timer0 hoaït ñoäng ôû cheá ñoä Timer ta clear bit TOSC (OPTION_REG), khi ñoù giaù trò thanh ghi TMR0 seõ taêng theo töøng chu kì xung ñoàng hoà (taàn soá vaøo Timer0 baèng ¼ taàn soá oscillator). Khi giaù trò thanh ghi TMR0 töø FFh trôû veà 00h, ngaét Timer0 seõ xuaát hieän. Thanh ghi TMR0 cho pheùp ghi vaø xoùa ñöôïc giuùp ta aán ñònh thôøi ñieåm ngaét Timer0 xuaát hieän moät caùch linh ñoäng.  Muoán Timer0 hoaït ñoäng ôû cheá ñoä counter ta set bit TOSC (OPTION_REG). Khi ñoù xung taùc ñoäng leân boä ñeám ñöôïc laáy töø Trang 16 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung chaân RA4/TOCK1. Bit TOSE (OPTION_REG) cho pheùp löïa choïn caïnh taùc ñoäng vaøo boät ñeám. Caïnh taùc ñoäng seõ laø caïnh leân neáu TOSE=0 vaø caïnh taùc ñoäng seõ laø caïnh xuoáng neáu TOSE=1.  Khi thanh ghi TMR0 bò traøn, bit TMR0IF (INTCON) seõ ñöôïc set. Ñaây chính laø côø ngaét cuûa Timer0. Côø ngaét naøy phaûi ñöôïc xoùa baèng chöông trình tröôùc khi boä ñeám baét ñaàu thöïc hieän laïi quaù trình ñeám. Ngaét Timer0 khoâng theå “ñaùnh thöùc” vi ñieàu khieån töø cheá ñoä sleep.  Boä chia taàn soá (prescaler) ñöôïc chia seû giöõa Timer0 vaø WDT (Watchdog Timer). Ñieàu ñoù coù nghóa laø neáu prescaler ñöôïc söû duïng cho Timer0 thì WDT seõ khoâng coù ñöôïc hoã trôï cuûa prescaler vaø ngöôïc laïi. Prescaler ñöôïc ñieàu khieån bôûi thanh ghi OPTION_REG. Bit PSA (OPTION_REG) xaùc ñònh ñoái töôïng taùc ñoäng cuûa prescaler. Caùc bit PS2:PS0 (OPTION_REG) xaùc ñònh tæ soá chia taàn soá cuûa prescaler. Xem laïi thanh ghi OPTION_REG ñeå xaùc ñònh laïi moät caùch chi tieát veà caùc bit ñieàu khieån treân. Caùc leänh taùc ñoäng leân giaù trò thanh ghi TMR0 seõ xoùa cheá ñoä hoaït ñoäng cuûa prescaler. Khi ñoái töôïng taùc ñoäng laø Timer0, taùc ñoäng leân giaù trò thanh ghi TMR0 seõ xoùa prescaler nhöng khoâng laøm thay ñoåi ñoái töôïng taùc ñoäng cuûa prescaler. Khi ñoái töôïng taùc ñoäng laø WDT, leänh CLRWDT seõ xoùa prescaler, ñoàng thôøi prescaler seõ ngöng taùc vuï hoã trôï cho WDT.  Caùc thanh ghi ñieàu khieån lieân quan ñeán Timer0 bao goàm: • TMR0 (ñòa chæ 01h, 101h) : chöùa giaù trò ñeám cuûa Timer0. • INTCON (ñòa chæ 0Bh, 8Bh, 10Bh, 18Bh): cho pheùp ngaét hoaït ñoäng (GIE vaø PEIE). • OPTION_REG (ñòa chæ 81h, 181h): ñieàu khieån prescaler. 1.6. TIMER_1  Timer1 laø boä ñònh thôøi 16 bit, giaù trò cuûa Timer1 seõ ñöôïc löu trong hai thanh ghi (TMR1H:TMR1L). Côø ngaét cuûa Timer1 laø bit TMR1IF Trang 17 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung (PIR1). Bit ñieàu khieån cuûa Timer1 seõ laø TMR1IE (PIE). Töông töï nhö Timer0, Timer1 cuõng coù hai cheá ñoä hoaït ñoäng: cheá ñoä ñònh thôøi (timer) vôùi xung kích laø xung clock cuûa oscillator (taàn soá cuûa timer baèng ¼ taàn soá cuûa oscillator) vaø cheá ñoä ñeám (counter) vôùi xung kích laø xung phaûn aùnh caùc söï kieän caàn ñeám laáy töø beân ngoaøi thoâng qua chaân RC0/T1OSO/T1CKI (caïnh taùc ñoäng laø caïnh leân). Vieäc löïa choïn xung taùc ñoäng (töông öùng vôùi vieäc löïa choïn cheá ñoä hoaït ñoäng laø timer hay counter) ñöôïc ñieàu khieån bôûi bit TMR1CS (T1CON). Sau ñaây laø sô ñoà khoái cuûa Timer1: Hình 1.6. Sô ñoà khoái timer _1.  Ngoaøi ra Timer1 coøn coù chöùc naêng reset input beân trong ñöôïc ñieàu khieån bôûi moät trong hai khoái CCP (Capture/Compare/PWM). Khi bit T1OSCEN (T1CON) ñöôïc set, Timer1 seõ laáy xung clock töø hai chaân RC1/T1OSI/CCP2 vaø RC0/T1OSO/T1CKI laøm xung ñeám. Timer1 seõ baét ñaàu ñeám sau caïnh xuoáng ñaàu tieân cuûa xung ngoõ vaøo. Khi ñoù PORTC seõ boû qua söï taùc ñoäng cuûa hai bit TRISC vaø PORTC ñöôïc gaùn giaù trò 0. Khi clear bit T1OSCEN Timer1 seõ laáy xung ñeám töø oscillator hoaëc töø chaân RC0/T1OSO/T1CKI. Timer1 coù hai cheá ñoä ñeám laø ñoàng Trang 18 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung boä (Synchronous) vaø baát ñoàng boä (Asynchronous). Cheá ñoä ñeám ñöôïc quyeát ñònh bôûi bit ñieàu khieån (T1CON). Khi =1 xung ñeám laáy töø beân ngoaøi seõ khoâng ñöôïc ñoàng boä hoùa vôùi xung clock beân trong, Timer1 seõ tieáp tuïc quaù trình ñeám khi vi ñieàu khieån ñang ôû cheá ñoä sleep vaø ngaét do Timer1 taïo ra khi bò traøn coù khaû naêng “ñaùnh thöùc” vi ñieàu khieån. ÔÛ cheá ñoä ñeám baát ñoàng boä, Timer1 khoâng theå ñöôïc söû duïng ñeå laøm nguoàn xung clock cho khoái CCP (Capture/Compare/Pulse width modulation). Khi =0 xung ñeám vaøo Timer1 seõ ñöôïc ñoàng boä hoùa vôùi xung clock beân trong. ÔÛ cheá ñoä naøy Timer1 seõ khoâng hoaït ñoäng khi vi ñieàu khieån ñang ôû cheá ñoä sleep.  Caùc thanh ghi lieân quan ñeán Timer1 bao goàm: • INTCON (ñòa chæ 0Bh, 8Bh, 10Bh, 18Bh): cho pheùp ngaét hoaït ñoäng (GIE vaø PEIE). • PIR1 (ñòa chæ 0Ch): chöùa côø ngaét Timer1 (TMR1IF). • PIE1( ñòa chæ 8Ch): cho pheùp ngaét Timer1 (TMR1IE). • TMR1L (ñòa chæ 0Eh): chöùa giaù trò 8 bit thaáp cuûa boä ñeám Timer1. • TMR1H (ñòa chæ 0Eh): chöùa giaù trò 8 bit cao cuûa boä ñeám Timer1. • T1CON (ñòa chæ 10h): xaùc laäp caùc thoâng soá cho Timer1. Trang 19 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung 1.7.TIMER_2 Hình 1.7. Sô ñoà khoái timer2.  Timer2 laø boä ñònh thôøi 8 bit vaø ñöôïc hoã trôï bôûi hai boä chia taàn soá prescaler va postscaler. Thanh ghi chöùa giaù trò ñeám cuûa Timer2 laø TMR2. Bit cho pheùp ngaét Timer2 taùc ñoäng laø TMR2ON (T2CON). Côø ngaét cuûa Timer2 laø bit TMR2IF (PIR1). Xung ngoõ vaøo (taàn soá baèng ¼ taàn soá oscillator) ñöôïc ñöa qua boä chia taàn soá prescaler 4 bit (vôùi caùc tæ soá chia taàn soá laø 1:1, 1:4 hoaëc 1:16 vaø ñöôïc ñieàu khieån bôûi caùc bit T2CKPS1:T2CKPS0 (T2CON)).  Timer2 coøn ñöôïc hoã trôï bôûi thanh ghi PR2. Giaù trò ñeám trong thanh ghi TMR2 seõ taêng töø 00h ñeán giaù trò chöùa trong thanh ghi PR2, sau ñoù ñöôïc reset veà 00h. Kh I reset thanh ghi PR2 ñöôïc nhaän giaù trò maëc ñònh FFh. Ngoõ ra cuûa Timer2 ñöôïc ñöa qua boä chia taàn soá postscaler vôùi caùc möùc chia töø 1:1 ñeán 1:16. Postscaler ñöôïc ñieàu khieån bôûi 4 bit Trang 20 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung T2OUTPS3:T2OUTPS0. Ngoõ ra cuûa postscaler ñoùng vai troø quyeát ñònh trong vieäc ñieàu khieån côø ngaét.  Ngoaøi ra ngoõ ra cuûa Timer2 coøn ñöôïc keát noái vôùi khoái SSP, do ñoù Timer2 coøn ñoùng vai troø taïo ra xung clock ñoàng boä cho khoái giao tieáp SSP.  Caùc thanh ghi lieân quan ñeán Timer2 bao goàm: • INTCON (ñòa chæ 0Bh, 8Bh, 10Bh, 18Bh): cho pheùp toaøn boä caùc ngaét (GIE vaø PEIE). • PIR1 (ñòa chæ 0Ch): chöùa côø ngaét Timer2 (TMR2IF). • PIE1 (ñòa chò 8Ch): chöùa bit ñieàu khieån Timer2 (TMR2IE). • TMR2 (ñòa chæ 11h): chöùa giaù trò ñeám cuûa Timer2. • T2CON (ñòa chæ 12h): xaùc laäp caùc thoâng soá cho Timer2. PR2 (ñòa chæ 92h): thanh ghi hoã trôï cho Timer2. 1.8. ADC  ADC (Analog to Digital Converter) laø boä chuyeån ñoåi tín hieäu giöõa hai daïng töông töï vaø soá. PIC16F877A coù 8 ngoõ vaøo analog (RA4:RA0 vaø RE2:RE0). Hieäu ñieän theá chuaån VREF coù theå ñöôïc löïa choïn laø VDD, VSS hay hieäu ñieän theå chuaån ñöôïc xaùc laäp treân hai chaân RA2 vaø RA3. Keát quaû chuyeån ñoåi töø tín tieäu töông töï sang tín hieäu soá laø 10 bit soá töông öùng vaø ñöôïc löu trong hai thanh ghi ADRESH:ADRESL. Khi khoâng söû duïng boä chuyeån ñoåi ADC, caùc thanh ghi naøy coù theå ñöôïc söû duïng nhö caùc thanh ghi thoâng thöôøng khaùc. Khi quaù trình chuyeån ñoåi hoaøn taát, keát quaû seõ ñöôïc löu vaøo hai thanh ghi ADRESH:ADRESL, bit (ADCON0) ñöôïc xoùa veà 0 vaø côø ngaét ADIF ñöôïc set.  Qui trình chuyeån ñoåi töø töông töï sang soá bao goàm caùc böôùc sau: • Thieát laäp caùc thoâng soá cho boä chuyeån ñoåi ADC: Trang 21 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung  Choïn ngoõ vaøo analog, choïn ñieän aùp maãu (döïa treân caùc thoâng soá cuûa thanh ghi ADCON1)  Choïnh keânh chuyeån ñoåi AD (thanh ghi ADCON0).  Choïnh xung clock cho keânh chuyeån ñoåi AD (thanh ghi ADCON0).  Cho pheùp boä chuyeån ñoåi AD hoaït ñoäng (thanh ghi ADCON0). • Thieát laäp caùc côø ngaét cho boä AD:  Clear bit ADIF.  Set bit ADIE.  Set bit PEIE.  Set bit GIE. • Ñôïi cho tôùi khi quaù trình laáy maãu hoaøn taát. • Baét ñaàu quaù trình chuyeån ñoåi (set bit ). • Ñôïi cho tôùi khi quaù trình chuyeån ñoåi hoaøn taát baèng caùch:  Kieåm tra bit . Neáu =0, quaù trình chuyeån ñoåi ñaõ hoaøn taát.  Kieåm tra côø ngaét. • Ñoïc keát quaû chuyeån ñoåi vaø xoùa côø ngaét, set bit (neáu caàn tieáp tuïc chuyeån ñoåi).  Caàn chuù yù laø coù hai caùch löu keát quaû chuyeån ñoåi AD, vieäc löïa choïn caùch löu ñöôïc ñieàu khieån bôûi bit ADFM vaø ñöôïc minh hoïa cuï theå trong hình sau: Trang 22 Hình 1.8. Löu keát quaû boä chuyeån ñoåi ADC. Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung  Caùc thanh ghi lieân quan ñeán boä chuyeån ñoåi ADC bao goàm: • INTCON (ñòa chæ 0Bh, 8Bh, 10Bh, 18Bh): cho pheùp caùc ngaét (caùc bit GIE, PEIE). • PIR1 (ñòa chæ 0Ch): chöùa côø ngaét AD (bit ADIF). • PIE1 (ñòa chæ 8Ch): chöùa bit ñieàu khieån AD (ADIE). • ADRESH (ñòa chæ 1Eh) vaø ADRESL (ñòa chæ 9Eh): caùc thanh ghi chöùa keát quaû chuyeån ñoåi AD. • ADCON0 (ñòa chæ 1Fh) vaø ADCON1 (ñòa chæ 9Fh): xaùc laäp caùc thoâng soá cho boä chuyeån ñoåi AD. • PORTA (ñòa chæ 05h) vaø TRISA (ñòa chæ 85h): lieân quan ñeán caùc ngoõ vaøo analog ôû PORTA. PORTE (ñòa chæ 09h) vaø TRISE (ñòa chæ 89h): lieân quan ñeán caùc ngoõ vaøo analog ôû PORTE. Trang 23 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung CHÖÔNG 2. CAÙC LOAÏI LINH KIEÄN SÖÛ DUÏNG 2.1. Ñieän trôû  Ñieän trôû ñaëc tröng cho tính caûn trôû doøng ñieän. Chính vì theá, khi söû duïng ñieän trôû cho moat maïch ñieän thì moät phaàn naêng löôïng ñieän seõ bò tieâu hao ñeå duy trì möùc ñoä chuyeån dôøi cuûa doøng ñieän. Noùi moät caùch khaùc thì khi ñieän trôû caøng lôùn thì doøng ñieän ñi qua caøng nhoû vaø ngöôïc laïi. Khi doøng ñieän cöôøng ñoä I chaïy qua moät vaät coù ñieän trôû R, ñieän naêng ñöôïc chuyeån thaønh nhieät naêng vôùi coâng suaát theo phöông trình sau: P = I2.R Trong ñoù: P laø coâng suaát, ño theo W I laø cöôøng ñoä doøng ñieän, ño baèng A R laø ñieän trôû, ño theo Ω Trang 24 Hình 2.1. Ñieän trôû. Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung 2.2. Tuï ñieän  Tuï ñieän laø linh kieän coù chöùc naêng tích tuï naêng löôïng ñieän ñöôïc söû duïng trong caùc nguoàn ñieän vôùi chöùc naêng laøm giaûm ñoä gôïn soùng cuûa nguoàn.  Ñeå ñaëc tröng cho khaû naêng tích tröõ naêng löôïng cuûa tuï ñieän, ngöôøi ta ñöa ra khaùi nieäm ñieän dung cuûa tuï ñieän. Ñieän dung caøng cao thì khaû naêng tích tröõ naêng löôïng cuûa tuï caøng lôùn vaø ngöôïc laïi. Giaù trò ñieän dung ñöôïc ño baèng ñon vò : F, μF, nF, pF. 1F=106μF=109nF=1012pF  Tuï hoùa: Trang 25 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung Hình 2.2. Tuï hoùa.  Caùc loaïi tuï duøng maõ: Hình 2.3. Tuï söù. • Giaù tri thöù 1 laø soá haøng chuïc • Giaù trò thöù 2 laø soá haøng ñôn vò • Giaù trò thöù 3 laø laø soá khoâng noái tieáp theo giaù trò cuûa soá ñaõ taïo töø giaù trò 1 vaø 2. Giaù trò cuûa tuï ñöôïc ñoïc theo chuan laø picro Fara (pF). 2.3. LM35  Ñieàu ñaàu tieân trong ñieàu khieån nhieät ñoä laø phaûi coù moät thieát bò caûm bieán nhieät ñoä. Coù nhieàu loaïi caûm bieán nhieät ñoä khaùc nhau, chuùng em söû duïng caûm bieán nhieät LM35 ñeå ño nhieät ñoä moâi tröôøng.  LM35 coù 3 chaân: 2 chaân caáp nguoàn vaø moät chaân xuaát ñieän aùp ra tuøy theo nhieät ñoä. Nhieät ñoä taêng 1C thì ñieän aùp xuaát ra ôû chaân out cuûa LM35 taêng 10mV. 2.4. Diode baùn daãn Trang 26 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung Hình 2.4. Caáu taïo cuûa diode.. Hình 2.5. Kyù hieäu vaø hình daùng cuûa diode. Hình 2.6. Diode caàu trong maïch chænh löu ñieän xoay chieàu. Trang 27 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung 2.5. Diode Zener  Diode Zener coù caáu taïo töông töï diode, ñöôïc öùng duïng trong cheá ñoä phaân cöïc ngöôïc, khi phaân cöïc thuaän diode Zener nhu diode thöôøng nhöng khi phaân cöïc ngöôïc diode Zener ghim moät möùc ñieän aùp coá ñònh baèng giaù trò ghi treân diode. 2.6 Led 7 ñoaïn  Led 7 ñoaïn coù caáu taïo goàm 7 led ñôn coù daïng thanh xeáp, coù theâm moät led ñôn hình troøn nhoû theå hieän daáu chaám troøn ôû goùc döôùi bean phaûi cuûa led 7 ñoaïn. 8 led ñôn treân led 7 ñoaïn coù Anode (cöïc +) hoaëc Cathode (cöïc -) ñöôïc noái chung vôùi nhau vaøo moät ñieåm, ñöôïc ñua chaân ra ngoaøi ñeå noái vôùi maïch ñieän. 8 cöï coøn laïi treân moãi led ñôn ñöôïc ñöa thaønh 8 chaân rieâng cuõng ñöôïc ñöa ra ngoaøi ñeå keát noái vôùi maïch ñieän. Neáu led 7 ñoaïn coù Anode chung, ñaàu chung naøy ñöôïc noái vôùi +Vcc, caùc chaân coøn laïi duøng ñeå ñieàu khieån traïng thaùi saùng taét cuûa caùc led ñôn. Led chæ saùng khi tín hieäu ñaët vaøo caùc chaân naøy ôû möùc 0 vaø ngöôïc laïi vôùi led 7 ñoaïn loaïi Cathode chung.  Vì led 7 ñoaïn chöùa bean trong caùc led ñôn neân khi keát noái can ñaûm baûo doøng qua moãi led ñôn trong khoaûng 10mA – 20 mA ñeå baûo veä led. Neáu keát noái vôùi nguoàn 5 V coù theå haïn doøng baèng ñieän trôû 330Ω tröôùc caùc chaân nhaän tín hieäu ñieàu khieån. Caùc ñieän trôû 330 laø caùc ñieän trôû bean ngoaøi ñöôïc keát noái ñeå giôùi haïn doøng qua led 7 ñoaïn ñöôïc noái vôùi nguoàn 5V. Trang 28 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung CHÖÔNG 3. GIAO TIEÁP RS232 3.1. Thuoäc tính coång Com  Toác ñoä baud: laø toác ñoä truyeàn nhaän döõ lieäu hay coøn goïi laø toác ñoä bit (toác ñoä bit laø soá bit truyeàn ñöôïc trong 1s). Toác ñoä naøy phaûi ñöôïc thieát laäp giöõa beân phaùt vaø beân nhaän laø gioáng nhau (toác ñoä giöõa vi ñieàu khieån vaø maùy tính phaûi chung nhau moät toác ñoä truyeàn bit). Toác ñoä baud lieân quan ñeán toác ñoä maø phaàn töû maõ hoùa döõ lieäu ñöôïc söû duïng ñeå dieãn taû bit ñöôïc truyeàn, coøn toác ñoä bit thì phaûn aùnh toác ñoä thöïc teá maø caùc bit ñöôïc truyeàn.  PortOpen: thieát laäp vaø traû laïi tính traïng cuûa coång (ñoùng hoaëc môû). • Portopen [ = value] value = true thì coång môû vaø ngöôïc laïi = false coång ñoùng vaø xoùa toaøn boä döõ lieäu trong boä ñeäm nhaän vaø truyeàn. Trang 29 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung  RthresHold: object.Rthreshold [ = value] value kieåu soá nguyeân. Thieát laäp soá kyù töï nhaän ñöôïc tröôùc khi gay lean söï kieän comEvReceive. Maëc ñònh =0 töùc laø khoâng coù söï kieän OnComm khi nhaän ñöôïc döõ lieäu. Thieát laäp =1 töùc laø söï kieän OnComm xaûy ra khi baát kyø kyù töï naøo bò thay theá trong boä ñeäm nhaän.  Setting: object.setting [ = value] thieát laäp hoaëc traû laïi caùc thoâng soá taàn soá band, bit döõ lieäu, bit chaün leû, bit stop. Neáu value khoâng coù giaù trò khi môû seõ gaây ra loãi. • Value coù daïng “BBBB,P,D,S”. trong ñoù: BBBB laø taàn soá bus, P: thieát laäp bit ñoàng boä, D: soá bit döõ lieäu, S: soá bit Stop. • Maëc ñònh cuûa noù laø: “9600,N,8.1” • Caùc taàn soá bus 110, 300, 600, 1200, 2400, 4800, 9600 (maëc ñònh), 1400, 19200, 28800, 38400, 56000,115200, 128000, 256000. • Caùc giaù trò cuûa P: E(event), M(mark), N(none), O(old), S(Space). • Caùc giaù trò cuûa D: coù giaù trò töø 4 – 8(maëc ñònh). S: soá bit Stop coù giaù trò 1, 1.5, 2  Truyeàn nhaän döõ lieäu: • ComEvent: Traû laïi phaàn lôùn söï kieän giao tieáp hoaëc coù loãi. • Input: nhaän vaø xoùa döõ lieäu trong boä nhaän. • Output: ghi döõ lieäu vaøo boä ñeäm truyeàn. Coù theå laø kieåu text hoaëc nhò phaân. Neáu truyeàn baèng kieåu text thì cho moät bieán variant = kieåu String, neáu truyeàn kieåu nhò phaân thì cho output = variant = moät maûng kieåu byte. • Break: thieát laäp hoaëc xoùa tín hieäu. Object.break [ = value] value = true hoaëc false. Khi set value = true thì thoâng soá break naøy seõ göûi moät tín hieäu break. Tín hieäu break trì hoaõn vieäc truyeàn döõ lieäu vaø ñöa ñöôøng truyeàn vaøo traïng thaùi break tôùi khi maø value = false. 3.2. Gheùp noái chuaån giao tieáp RS232 Trang 30 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung Hình 3.1. Sô ñoà caáu truùc Max232.  Coång noái tieáp RS232 laø moät chuan giao tieáp duøng ñònh daïng khoâng ñoàng boä. Keát noái nhieàu nhaát laø 2 thieát bò, chieàu daøi keát noái lôùn nhaát cho pheùp ñeå ñaûm baûo döõ lieäu laø 12.5m - 25.4m. Toác ñoä 20 kbps vaø ñoâi khi laø 115 kbps vôùi moät soá thieát bò ñaëc bieät.  Öu ñieåm cuûa giao tieáp RS232: • Khaû naêng choáng nhieãu cuûa caùc coång noái tieáp cao. • Thieát bò ngoaïi vi coù theå thaùo laép ngay caû khi maùy tính ñöôïc caáp ñieän. • Caùc maïch ñieän ñôn giaûn coù theå nhaän ñöôïc ñieän aùp nguoàn nuoâi qua coång noái tieáp.  Nhöõng ñieåm caàn löu yù trong chuaån RS232: • Möùc giôùi haïn treân vaø döôùi (logic 0 vaø 1) laø +12V, -12V • Möùc logic 1 coù ñieän aùp naèm trong khoaûng -3V ñeán -12V. Möùc logic 0 töø 3V ñeán 12V. • Toác ñoä truyeàn nhaän döõ lieäu cöïc ñaïi laø 100kbps. Trang 31 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung • Caùc loái vaøo phaûi coù ñieän dung nhoû hôn 2500pF. • Ñoä daøi cuûa caùp noái giöõa maùy tính vaø thieát bò ngoaïi vi gheùp noái qua coång noái tieáp RS232 khoâng vöôït quaù 15m neáu khoâng söû dung model.  Chöùc naêng caùc chaân cuûa coång Com 9 chaân: • Chaân 1: phaùt tín hieäu mang döõ lieäu. • Chaân 2: nhaän döõ lieäu. • Chaân 3: truyeàn döõ lieäu. • Chaân 4: ñaàu cuoái döõ lieäu saün saøng ñöôïc kích hoaït bôûi boä phaän khi muoán truyeàn döõ lieäu. • Chaân 5: Mass cuûa tín hieäu. • Chaân 6: döõ lieäu saün saøng, ñöôïc kích hoaït bôûi boä truyeàn khi noù saün saøng nhaän döõ lieäu. • Chaân 7: yeâu caàu göûi. • Chaân 8: xoùa ñeå göûi. • Chaân 9: baùo chuoâng cho bieát laø boä nhaän ñang nhaän tín hieäu rung chuoâng. PHAÀN II. THIEÁT KEÁ VAØ THI COÂNG CHÖÔNG 4. CAÁU TRUÙC PHAÀN CÖÙNG TOÅNG QUAÙT  Board maïch ñieàu khieån ñöôïc thieát keá nhaèm muïc ñích ño vaø ñieàu khieån, ñöôïc chia thaønh 5 khoái nhö sau: • Khoái xöû lyù trung taâm: duøng vi ñieàu khieån Pic 16f877a. • Khoái hieån thò: duøng led 7 ñoaïn cho pheùp hieån thò nhieät ñoä. • Khoái caûm bieán: duøng caûm bieán nhieät laø LM35 • Khoái giao tieáp: duøng RS232 • Khoái nguoàn: cung caáp ñieän aùp +5V cho toaøn maïch vaø cung caáp ñieän aùp 12V duøng cho ñoäng cô quaït. Trang 32 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung  Sô ñoà khoái moâ taû maïch: Nguoàn Hieån thò Xöû lyù trung taâm Caûm bieán Giao tieáp maùy tính CHÖÔNG 5. CAÁU TRUÙC CHI TIEÁT 5.1 Khoái vi ñieàu khieån 1k Trang 33 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung 5.2 Khoái hieån thò Trang 34 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung  Caùc thoâng soá: • Trong phương phaùp queùt sử dụng 4 led thì thời gianđñược pheùp saùng của 1 led = ¼ chu kỳ queùt. Do thời gian led tắt keùo daøi hơn so với thời gian led saùng neân phải queùt nhanh thì ta mới nhìn thấy tất cả caùc led ñều saùng. Để mắt ta nhìn thấy led saùng lieân tục thì tần số queùt ño ñöôïc trong thực tế phải >40Hz. Mỗi led 7 đñoaïn ñöôïc queùt trong 5ms, vôùi 4 led 7 ñoaïn duøng phöông phaùp queùt led thì taàn soá queùt söû duïng laø: f= 1/T = 50 Hz • Điện trở hạn doøng cho led ñược tính như sau: R = (Vcc – Vled)/ Iled = (5V – 1.8V)/ 5.6mA = 500 Ω Neân choïn ñieän trôû khoaûng 470 Ω • BJT C1815 laøm vieäc ôû cheá ñoä baõo hoøa. Doøng qua cöïc C cuûa BJT Ic = [Vcc-Vce]/R = [5-0.2]/470 =10 mA 5.3 Khoái giao tieáp maùy tính Trang 35 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung 5.4 Khoái nguoàn 1000uF 104 0.1uF 330  Duøng LM7805 ñeå ñaûm baûo ñieän aùp ra cung caáp cho maïch luoân oån ñònh.  Duøng caùc tuï hoùa coù giaù trò khaùc nhau ñeå loïc ñieän aùp ra, thöôøng choïn caùc tuï lôùn 1000uF, 100uF, 47uF…  Duøng ñieän trôû coù giaù trò 330K ñeå haïn doøng, cho led hieån thò traïng thaùi cuûa nguoàn. 5.5 Khoái caûm bieán 1k 1k 10uF 1k Trang 36 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung Baét ñaàu Đọc chương trình Lấy giá trị từ cảm biến Xöû lyù trung taâm Hieån thò nhieät ñoä treân led 7 ñoaïn Giao tieáp maùy tính CHÖÔNG 6. LÖU ÑOÀ GIAÛI THUAÄT VAØ CHÖÔNG TRÌNH So saùnh vôùi nhieät 6.1 Löu ñoà giaûi thuaät ñoä maëc ñònh Nhieät ñoä >= 42 Xuaát tín hieäu caûnh baùo Keát thuùc Trang 37 Hieån thò nhieät ñoï treân maùy tính Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung 6.2 Chöông trình Vb Private Sub cmdExit_Click() MSComm1.PortOpen = False End End Sub Private Sub cmdSend_Click() Dim out As String out = GUI.Text If (out >= 0 And out = bd ) { RC0 = 1; TAM = 1; demtg = 0; demdutg = 0; } ELSE IF (TAM == 1) { set_timer0(5); TAM = 0; } ELSE IF (demdutg ==1) { RC0 = 0; demtg = 0; demdutg = 0; } }} Trang 42 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung CHÖÔNG 7. KEÁT LUAÄN 7.1. Keát luaän Sau thôøi gian nghieân cöùu vaø thöïc hieän, ñoà aùn cuûa chuùng em cô baûn ñaõ hoaøn thaønh. Baèng söï coá gaéng vaø noã löïc cuûa baûn thaân, chuùng em ñaõ bieát phoái hôïp vaø phaân chia coâng vieäc moät caùch hôïp lyù giöõa moãi thaønh vieân nhoùm, ñoàng thôøi vôùi söï giuùp ñôõ vaø höôùng daãn taän tình cuûa thaày Nguyeãn Vaên Trung, ñoà aùn naøy ñaõ ñöôïc hoaøn thaønh ñuùng thôøi gian quy ñònh vaø ñaït ñöôïc yeâu caàu ñaët ra laø giao tieáp maùy tính vôùi vi xöû lyù pic16f877a hieån thò nhieät ñoä. Trong quaù trình thöïc hieän ñeà taøi, chuùng em thu ñöôïc nhöõng keát quaû nhaát ñònh nhö sau: Maïch vi xöû lyù vôùi caûm bieán LM35 ñoïc nhieät ñoä moâi tröôøng hieån thò leân led 7 ñoaïn.  Giao tieáp RS232 vôùi vi xöû lyù hieån thò nhieät ñoä treân maùy tính. Ñoàng thôøi xuaát tín hieäu caûnh baùo khi nhieät ñoä vöôït quaù ngöôõng cho pheùp.  Trong ñoà aùn naøy chuùng em ñaõ trình baøy khaù ñaày ñuû veà chöùc naêng vaø caáu truùc töøng khoái modul treân bo maïch tích hôïp. Beân caïnh ñoù, noäi dung cuûa ñeà taøi ñöôïc trình baøy khaù chi tieát, roõ raøng coù theå giuùp ngöôøi ñoïc naém baét vaø hieåu ñöôïc noäi dung moät caùch deã daøng. Cuoái cuøng theo nhaän ñònh chuû quan cuûa nhoùm em thì ñoà aùn ñaõ ñöôïc hoaøn thaønh ñuùng thôøi gian cho pheùp, nhöng do thôøi gian thöïc hieän ñeà taøi coù haïn neân chuùng em chæ coù theå hoaøn thaønh ñöôïc ñoà aùn ñeán ñaây. Neáu coù theâm ñieàu kieän vaø thôøi gian chuùng em seõ coá gaéng phaùt trieån ñeà taøi naøy theâm nöõa ñeå coù theå hoaøn thaønh moät caùch toát nhaát. Trang 43 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung 7.2. Höôùng phaùt trieån ñeà taøi Ñeå ñeà taøi naøy theâm phong phuù, mang nhieàu tính thöïc teá hôn nöõa, khaû naêng öùng duïng cao hôn nöõa thì ñeà taøi caàn ñöa theâm vaøo nhöõng yeâu caàu sau:  Ngoaøi vieäc ñoïc nhieät ñoä vaø hieån thò leân led 7 ñoaïn thì coù theå hieån thò leân LCD, xuaát tín hieäu caûnh baùo ñeå quaït hoaït ñoäng thì coù theå ñieàu khieån quaït theo ngöôõng nhieät ñoä.  Söû duïng theâm nhieàu loaïi caûm bieán nhö caûm bieán ñoä aåm khoâng khí ñeå ño doä aåm khoâng khí, caûm bieán khoùi ñeå baùo chaùy xuaát tín hieäu baèng chuoâng baùo.v.v… Hy voïng vôùi nhöõng höôùng phaùt trieån neâu treân cuøng vôùi nhöõng yù töôûng khaùc cuûa caùc baïn, cuûa ngöôøi ñoïc seõ phaùt trieån nhieàu hôn nöõa ñeà taøi naøy, laøm cho ñeà taøi trôû neân phong phuù vaø khaû naêng öùng duïng cao hôn vaøo thöïc teá cuoäc soáng. Phuïc vuï lôïi ích con ngöôøi. Trang 44 Ñoà aùn toát nghieäp GVHD: Nguyeãn Vaên Trung TAØI LIEÄU THAM KHAÛO [1] Thaày Nguyeãn Troïng Khanh – Giaùo trình Vi xöû lyù – Tröôøng CÑKT Cao Thaéng. [2] Nguyeãn Thaùi Kieân Vaø Leâ Thanh Tín – Ñoà aùn toát nghieäp – Tröôøng ÑHSP Kyõ Thuaät TPHCM. [3] Moät soá trang web tham khaûo: - www.picvietnam.com - www.4tech.com.vn - www.dientuvietnam.com Trang 45 [...]... không nối tiếp theo giá trò của số đã tạo từ giá trò 1 và 2 Giá trò của tụ được đọc theo chuan là picro Fara (pF) 2.3 LM35  Điều đầu tiên trong điều khiển nhiệt độ là phải có một thiết bò cảm biến nhiệt độ Có nhiều loại cảm biến nhiệt độ khác nhau, chúng em sử dụng cảm biến nhiệt LM35 để đo nhiệt độ môi trường  LM35 có 3 chân: 2 chân cấp nguồn và một chân xuất điện áp ra tùy theo nhiệt độ Nhiệt độ tăng... QUÁT  Board mạch điều khiển được thiết kế nhằm mục đích đo và điều khiển, được chia thành 5 khối như sau: • Khối xử lý trung tâm: dùng vi điều khiển Pic 16f877a • Khối hiển thò: dùng led 7 đoạn cho phép hiển thò nhiệt độ • Khối cảm biến: dùng cảm biến nhiệt là LM35 • Khối giao tiếp: dùng RS232 • Khối nguồn: cung cấp điện áp +5V cho toàn mạch và cung cấp điện áp 12V dùng cho động cơ quạt Trang 32 Đồ... bit truyền được trong 1s) Tốc độ này phải được thiết lập giữa bên phát và bên nhận là giống nhau (tốc độ giữa vi điều khiển và máy tính phải chung nhau một tốc độ truyền bit) Tốc độ baud liên quan đến tốc độ mà phần tử mã hóa dữ liệu được sử dụng để diễn tả bit được truyền, còn tốc độ bit thì phản ánh tốc độ thực tế mà các bit được truyền  PortOpen: thiết lập và trả lại tính trạng của cổng (đóng hoặc... trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và số lượng chân trong mỗi cổng có thể khác nhau Bên cạnh đó, do vi điều khiển được tích hợp sẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh chức năng là cổng xuất nhập thông thường, một số chân xuất nhập còn có thêm các chức năng khác để thể hiện sự tác động của các đặc tính ngoại vi nêu trên đối với thế giới bên ngoài Chức năng... bit điều khiển tương ứng với chân đó trong thanh ghi TRISA và ngược lại, muốn xác lập chức năng của một chân trong PORTA là output, ta “clear” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA Thao tác này hoàn toàn tương tự đối với các PORT và các thanh ghi điều khiển tương ứng TRIS (đối với PORTA là TRISA, đối với PORTB là TRISB, đối với PORTC là TRISC, đối với PORTD là TRISD vàđối với PORTE... động: chế độ đònh thời (timer) với xung kích là xung clock của oscillator (tần số của 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 RC0/T1OSO/T1CKI (cạnh tác động là cạnh lên) Vi c lựa chọn xung tác động (tương ứng với vi c lựa chọn chế độ hoạt động là timer hay counter) được điều khiển bởi bit TMR1CS (T1CON)... mô tả mạch: Nguồn Hiển thò Xử lý trung tâm Cảm biến Giao tiếp máy tính CHƯƠNG 5 CẤU TRÚC CHI TIẾT 5.1 Khối vi điều khiển 1k Trang 33 Đồ án tốt nghiệp GVHD: Nguyễn Văn Trung 5.2 Khối hiển thò Trang 34 Đồ án tốt nghiệp GVHD: Nguyễn Văn Trung  Các thông số: • Trong phương pháp quét sử dụng 4 led thì thời gianđđược phép sáng của 1 led = ¼ chu kỳ quét Do thời gian led tắt kéo dài hơn so với thời gian led... chế độ đếm là đồng Trang 18 Đồ án tốt nghiệp GVHD: Nguyễn Văn Trung bộ (Synchronous) và bất đồng bộ (Asynchronous) Chế độ đếm được quyết đònh bởi bit điều khiển (T1CON) Khi =1 xung đếm lấy từ bên ngoài sẽ không được đồng bộ hóa với xung clock bên trong, Timer1 sẽ tiếp tục quá trình đếm khi vi điều khiển đang ở chế độ sleep và ngắt do Timer1 tạo ra khi bò tràn có khả năng “đánh thức” vi điều khiển... của pic1 6f877a  Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng để tương tác với thế giới bên ngoài Sự tương tác này rất đa dạng và Trang 12 Đồ án tốt nghiệp GVHD: Nguyễn Văn Trung thông qua quá trình tương tác đó, chức năng của vi điều khiển được thể hiện một cách rõ ràng  Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin), tùy theo cách bố trí và chức năng của vi. .. led Nếu kết nối với nguồn 5 V có thể hạn dòng bằng điện trở 330Ω trước các chân nhận tín hiệu điều khiển Các điện trở 330 là các điện trở bean ngoài được kết nối để giới hạn dòng qua led 7 đoạn được nối với nguồn 5V Trang 28 Đồ án tốt nghiệp GVHD: Nguyễn Văn Trung CHƯƠNG 3 GIAO TIẾP RS232 3.1 Thuộc tính cổng Com  Tốc độ baud: là tốc độ truyền nhận dữ liệu hay còn gọi là tốc độ bit (tốc độ bit là số bit ... pic1 6f877a hiển thò nhiệt độ Trong trình thực đề tài, chúng em thu kết đònh sau: Mạch vi xử lý với cảm biến LM35 đọc nhiệt độ môi trường hiển thò lên led đoạn  Giao tiếp RS232 với vi xử lý hiển thò nhiệt. .. công vi c cách hợp lý thành vi n nhóm, đồng thời với giúp đỡ hướng dẫn tận tình thầy Nguyễn Văn Trung, đồ án hoàn thành thời gian quy đònh đạt yêu cầu đặt giao tiếp máy tính với vi xử lý pic1 6f877a... Giao tiếp máy tính CHƯƠNG LƯU ĐỒ GIẢI THUẬT VÀ CHƯƠNG TRÌNH So sánh với nhiệt 6.1 Lưu đồ giải thuật độ mặc đònh Nhiệt độ >= 42 Xuất tín hiệu cảnh báo Kết thúc Trang 37 Hiển thò nhiệt đọ máy tính

Ngày đăng: 09/10/2015, 23:12

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w