Đồ án tốt nghiệp lập trình điều khiển mô hình Robot Dò đường dùng Pic

108 820 4
Đồ án tốt nghiệp lập trình điều khiển mô hình Robot Dò đường dùng Pic

Đ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

Đặt vấn đề:Ngày nay với sự phát triển như vũ bão của công nghiệp điện tử, kỹ thuật số các hệthống đã và dang dần dần tự động hóa. Với kỹ thuật tiên tiến như vi xử lý, vi điều khiển, vimạch số, … được ứng dụng vào lĩnh vực điều khiển, thì các hệ thống điều khiển cơ khí thô sơ,với tốc độ xử lý chậm chạp ít chính xác được thay thế bằng các hệ thống điều khiển tự độngvới các chương trình thiết lập trước.Robot có mặt hầu hết trong mọi lĩnh vực của đời sống chúng ta, từ lau nhà đến y học,quân sự, từ máy pha cafe tự động đến Asimo,…và cuộc thi Robocon là một sân chơi lý thú vớinhững ai yêu thích, đam mê với Robot, đó chính là cơ hội tốt để khẳng định chính mình trênlĩnh vực tự động, củng cố bổ sung thêm kiến thức toàn diện về lĩnh vực này. Chính vì lẽ đó,em quyết định làm đề tài tốt nghiệp: “LẬP TRÌNH ĐIỀU KHIỂN MÔ HÌNH ROBOT DÒĐƯỜNG DÙNG PIC 16F877A”.2. Giới hạn đề tài:Với thời gian mười hai tuần thực hiện đề tài cũng như trình độ chuyên môn có hạn, em đãcố gắng hết sức để hoàn thành đồ án này nhưng chỉ giải quyết được những vấn đề sau:o Manual trong lưới: Di chuyển trong lưới theo tín hiệu điều khiển từ Remote.o Học đường: Di chuyển trong lưới theo tín hiệu điều khiển từ Remote đồng thời học tấtcả những vị trí đã đi qua.o Chạy tự động: Di chuyển trong lưới theo những gì đã học trong chế độ học đường.3. Mục đích nghiên cứu:Mục đích trước hết khi thực hiện đề tài này là để hoàn tất chương trình môn học để đủ điềukiện ra trường. Cụ thể khi nghiên cứu đề tài này là em muốn phát huy thành quả ứng dụng củavi điều khiển để tạo ra sản phẩm có ích trong môt lĩnh vực nào đó của đời sống. Không nhữngthế nó còn là tài liệu để cho các bạn tham khảo.Ngoài ra quá trình thực hiện đề tài là một cơ hội để chúng em tự kiểm tra lại những kiếnthức đã được học ở trường. Đồng thời phát huy sự sáng tạo, khả năng giải quyết vấn đề theoyêu cầu đặt ra. Và đây cũng là dịp để chúng em khẳng định mình trước khi ra trường tham giavào các hoạt động sản xuất của xã hội.Đồ án tốt nghiệp kỹ sư công nghiệp GVHD: ThS. Trần Quang Thuận2SVTH: Hoàng Trung Thạch MSSV: 20662090SVTH: Hoàng Trung Thạch MSSV: 20662090CHƯƠNG 2:GIỚI THIỆU VI ĐIỀU KHIỂN PIC16F877AVÀ CÁC LINH KIỆN DÙNG TRONG MẠCH1. Giới Thiệu Chung Về Pic:PIC bắt nguồn là chữ viết tắt của Programmable Intelligent Computer (Máy tính khảtrình thông minh) là một sản phẩm của hãng General Instruments đặt cho dòng sản phẩm đầutiên của họ là PIC1650. Lúc này, PIC1650 được dùng để giao tiếp với các thiết bị ngoại vi chomáy chủ 16bit CP1600, vì vậy, người ta cũng gọi PIC với cái tên Peripheral InterfaceController (Bộ điều khiển giao tiếp ngoại vi). CP1600 là một CPU tốt, nhưng lại kém về cáchoạt động xuất nhập, và vì vậy PIC 8bit được phát triển vào khoảng năm 1975 để hỗ trợ hoạtđộng xuất nhập cho CP1600. PIC sử dụng microcode đơn giản đặt trong ROM, và mặc dù,cụm từ RISC chưa được sử dụng thời bây giờ, nhưng PIC thực sự là một vi điều khiển vớikiến trúc RISC, chạy một lệnh một chu kỳ máy (4 chu kỳ của bộ dao động).Năm 1985, General Instruments bán bộ phận vi điện tử của họ, và chủ sở hữu mới hủybỏ hầu hết các dự án lúc đó đã quá lỗi thời. Tuy nhiên PIC được bổ sung EEPROM để tạothành 1 bộ điều khiển vào ra khả trình. Ngày nay rất nhiều dòng PIC được xuất xưởng vớihàng loạt các module ngoại vi tích hợp sẵn (như USART, PWM, ADC...), với bộ nhớ chươngtrình từ 512 Word đến 32K Word.Họ vi điều khiển này có thể tìm mua dễ dàng tại thị trường Việt Nam. Giá thành khôngquá đắt. Có đầy đủ các tính năng của một vi điều khiển khi hoạt động độc lập. Là một sự bổsung rất tốt về kiến thức cũng như về ứng dụng cho họ vi điều khiển mang tính truyền thốngnhư họ vi điều khiển 8051. Hiện nay tại Việt Nam cũng như trên thế giới có một số lượng lớnngười sử dụng họ vi điều khiển PIC, vì vậy họ vi điều khiển này được sử dụng khá rộng rãi.Điều này tạo nhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng, cũng như dễdàng trao đổi, học tập, dễ dàng tìm được sự chỉ dẫn khi gặp khó khăn,…đồng thời cũng đượcsự hỗ trợ của nhà sản xuất về trình biên dịch, các công cụ lập trình, nạp chương trình từ đơngiản đến phức tạp,… Do đó các tính năng đa dạng của vi điều khiển PIC không ngừng đượcphát triển.1.1. Các dòng Pic và cách lựa chọn Vi điều khiển Pi

Đồ án tốt nghiệp kỹ sư công nghiệp GVHD: ThS. Trần Quang Thuận 1 SVTH: Hoàng Trung Thạch MSSV: 20662090 SVTH: Hoàng Trung Thạch MSSV: 20662090 CHƯƠNG 1: DẪN NHẬP 1. Đặt vấn đề: Ngày nay với sự phát triển như vũ bão của công nghiệp điện tử, kỹ thuật số các hệ thống đã và dang dần dần tự động hóa. Với kỹ thuật tiên tiến như vi xử lý, vi điều khiển, vi mạch số, … được ứng dụng vào lĩnh vực điều khiển, thì các hệ thống điều khiển cơ khí thô sơ, với tốc độ xử lý chậm chạp ít chính xác được thay thế bằng các hệ thống điều khiển tự động với các chương trình thiết lập trước. Robot có mặt hầu hết trong mọi lĩnh vực của đời sống chúng ta, từ lau nhà đến y học, quân sự, từ máy pha cafe tự động đến Asimo,…và cuộc thi Robocon là một sân chơi lý thú với những ai yêu thích, đam mê với Robot, đó chính là cơ hội tốt để khẳng định chính mình trên lĩnh vực tự động, củng cố bổ sung thêm kiến thức toàn diện về lĩnh vực này. Chính vì lẽ đó, em quyết định làm đề tài tốt nghiệp: “LẬP TRÌNH ĐIỀU KHIỂN MÔ HÌNH ROBOT DÒ ĐƯỜNG DÙNG PIC 16F877A”. 2. Giới hạn đề tài: Với thời gian mười hai tuần thực hiện đề tài cũng như trình độ chuyên môn có hạn, em đã cố gắng hết sức để hoàn thành đồ án này nhưng chỉ giải quyết được những vấn đề sau: o Manual trong lưới: Di chuyển trong lưới theo tín hiệu điều khiển từ Remote. o Học đường: Di chuyển trong lưới theo tín hiệu điều khiển từ Remote đồng thời học tất cả những vị trí đã đi qua. o Chạy tự động: Di chuyển trong lưới theo những gì đã học trong chế độ học đường. 3. Mục đích nghiên cứu: Mục đích trước hết khi thực hiện đề tài này là để hoàn tất chương trình môn học để đủ điều kiện ra trường. Cụ thể khi nghiên cứu đề tài này là em muốn phát huy thành quả ứng dụng của vi điều khiển để tạo ra sản phẩm có ích trong môt lĩnh vực nào đó của đời sống. Không những thế nó còn là tài liệu để cho các bạn tham khảo. Ngoài ra quá trình thực hiện đề tài là một cơ hội để chúng em tự kiểm tra lại những kiến thức đã được học ở trường. Đồng thời phát huy sự sáng tạo, khả năng giải quyết vấn đề theo yêu cầu đặt ra. Và đây cũng là dịp để chúng em khẳng định mình trước khi ra trường tham gia vào các hoạt động sản xuất của xã hội. Đồ án tốt nghiệp kỹ sư công nghiệp GVHD: ThS. Trần Quang Thuận 2 SVTH: Hoàng Trung Thạch MSSV: 20662090 SVTH: Hoàng Trung Thạch MSSV: 20662090 CHƯƠNG 2: GIỚI THIỆU VI ĐIỀU KHIỂN PIC16F877A VÀ CÁC LINH KIỆN DÙNG TRONG MẠCH 1. Giới Thiệu Chung Về Pic: PIC bắt nguồn là chữ viết tắt của "Programmable Intelligent Computer" (Máy tính khả trình thông minh) là một sản phẩm của hãng General Instruments đặt cho dòng sản phẩm đầu tiên của họ là PIC1650. Lúc này, PIC1650 được dùng để giao tiếp với các thiết bị ngoại vi cho máy chủ 16bit CP1600, vì vậy, người ta cũng gọi PIC với cái tên "Peripheral Interface Controller" (Bộ điều khiển giao tiếp ngoại vi). CP1600 là một CPU tốt, nhưng lại kém về các hoạt động xuất nhập, và vì vậy PIC 8-bit được phát triển vào khoảng năm 1975 để hỗ trợ hoạt động xuất nhập cho CP1600. PIC sử dụng microcode đơn giản đặt trong ROM, và mặc dù, cụm từ RISC chưa được sử dụng thời bây giờ, nhưng PIC thực sự là một vi điều khiển với kiến trúc RISC, chạy một lệnh một chu kỳ máy (4 chu kỳ của bộ dao động). Năm 1985, General Instruments bán bộ phận vi điện tử của họ, và chủ sở hữu mới hủy bỏ hầu hết các dự án - lúc đó đã quá lỗi thời. Tuy nhiên PIC được bổ sung EEPROM để tạo thành 1 bộ điều khiển vào ra khả trình. Ngày nay rất nhiều dòng PIC được xuất xưởng với hàng loạt các module ngoại vi tích hợp sẵn (như USART, PWM, ADC ), với bộ nhớ chương trình từ 512 Word đến 32K Word. Họ vi điều khiển này có thể tìm mua dễ dàng tại thị trường Việt Nam. Giá thành không quá đắt. Có đầy đủ các tính năng của một vi điều khiển khi hoạt động độc lập. Là một sự bổ sung rất tốt về kiến thức cũng như về ứng dụng cho họ vi điều khiển mang tính truyền thống như họ vi điều khiển 8051. Hiện nay tại Việt Nam cũng như trên thế giới có một số lượng lớn người sử dụng họ vi điều khiển PIC, vì vậy họ vi điều khiển này được sử dụng khá rộng rãi. Điều này tạo nhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng, cũng như dễ dàng trao đổi, học tập, dễ dàng tìm được sự chỉ dẫn khi gặp khó khăn,…đồng thời cũng được sự hỗ trợ của nhà sản xuất về trình biên dịch, các công cụ lập trình, nạp chương trình từ đơn giản đến phức tạp,… Do đó các tính năng đa dạng của vi điều khiển PIC không ngừng được phát triển. 1.1. Các dòng Pic và cách lựa chọn Vi điều khiển Pic: Các sản phẩm vi điều khiển PIC của Microchip có gần 100 loại sản phẩm từ họ 10Fxxx đến các họ 12Cxxx, 12Fxxx, 16Cxx, 17Cxx, 16Fxx, 16Fxxx, 16FxxxA, 16LFxxxA, 18Fxxx, 18LFxxx, 18Fxxxx, 18LFxxxx,…  Cách phân loại PIC theo chữ cái:  Các họ PIC xxCxxx được đưa vào một nhóm, gọi là OTP (One Time Programmable): chúng ta chỉ có thể lập trình và nạp chương trình cho nó được một lần duy nhất.  Nhóm thứ hai có chữ cái F hoặc LF: chúng ta gọi nhóm này là nhóm Flash, nhóm này cho phép ghi xóa nhiều lần bằng các mạch điện thông thường.  Cách phân loại theo hai con số đầu tiên của sản phẩm:  Loại thứ nhất là dòng PIC cơ bản( Base – line ), gồm các PIC 12Cxxx, có độ dài 12bit.  Loại thứ hai là các dòng PIC 10F, 12F va 16F, gọi là dòng phổ thông ( Mid – Range ), có dộ dài 14 bit.  Loại thứ ba là dòng PIC 18( High – End ), có độ dài 16 bit. Đồ án tốt nghiệp kỹ sư công nghiệp GVHD: ThS. Trần Quang Thuận 3 SVTH: Hoàng Trung Thạch MSSV: 20662090 SVTH: Hoàng Trung Thạch MSSV: 20662090 Ở Việt Nam phổ biến nhất là các họ vi điều khiển PIC do hãng Microchip sản xuất. Cách lựa chọn một vi điều khiển PIC phù hợp: Trước hết cần chú ý đến số chân của vi điều khiển cần thiết cho ứng dụng. Có nhiều vi điều khiển PIC với số lượng chân khác nhau, thậm chí có vi điều khiển chỉ có 8 chân,ngoài ra còn có các vi điều khiển 18, 28, 40, 44, … chân. Cần chọn vi điều khiển PIC có bộ nhớ flash để có thể nạp xóa chương trình được nhiều lần hơn. Tiếp theo cần chú ý đến các khối chức năng được tích hợp sẵn trong vi điều khiển, các chuẩn giao tiếp bên trong. Sau cùng cần chú ý đến bộ nhớ chương trình mà vi điều khiển cho phép. 1.2. Ngôn ngữ lập trình cho Pic: Ngôn ngữ lập trình cho PIC rất đa dạng. Ngôn ngữ lập trình cấp thấp có MPLAB (được cung cấp miễn phí bởi nhà sản xuất Microchip), các ngôn ngữ lập trình cấp cao hơn bao gồm C, Basic, Pascal, … Ngoài ra còn có một số ngôn ngữ lập trình được phát triển dành riêng cho PIC như PICBasic, MikroBasic,… 1.3. Mạch nạp Pic: Đây cũng là một dòng sản phẩm rất đa dạng dành cho vi điều khiển PIC. Có thể sử dụng các mạch nạp được cung cấp bởi nhà sản xuất là hãng Microchip như: PICSTART plus, MPLAB ICD 2, MPLAB PM 3, PRO MATE II. Có thể dùng các sản phẩm này để nạp cho vi điều khiển khác thông qua chương trình MPLAB. Dòng sản phẩm chính thống này có ưu thế là nạp được cho tất cả các vi điều khiển PIC, tuy nhiên giá thành rất cao và thường gặp rất nhiều khó khăn trong quá trình mua sản phẩm. 2. Cấu trúc tổng quát Pic 16F877A: Hình 2.1: Vi điều khiển PIC16F877A các dạng sơ đồ chân. Đây là vi điều khiển thuộc họ PIC16Fxxx( 40 pin) với tập lệnh gồm 35 lệnh có độ dài 14 bit. Mỗi lệnh đều được thực thi trong một chu kì xung clock. Tần số hoạt động tối đa là 20 MHz với một chu kì lệnh là 200ns. Bộ nhớ chương trình 8K Flash ROM, bộ nhớ dữ liệu 368 bytes RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256 bytes. Số Port In/Out (I/O) là 5 Port( A, B, C, D, E) với 33 pin I/O với tính hiệu điều khiển độc lập. Đồ án tốt nghiệp kỹ sư công nghiệp GVHD: ThS. Trần Quang Thuận 4 SVTH: Hoàng Trung Thạch MSSV: 20662090 SVTH: Hoàng Trung Thạch MSSV: 20662090 Hình 2.2: Sơ đồ khối vi điều khiển PIC16F877A.  Các khối chức năng bên trong Pic16F877A:  Timer0: bộ đếm 8 bit.  Timer1: bộ đếm 16 bit với bộ chia tần số, có thể họat động trong cả chế độ tiết kiệm năng lượng (Sleep Mode) với nguồn xung clock ngoài.  Timer2: bộ đếm 8 bit.  2 bộ Capture/Compare/PWM.  1 bộ biến đổi Analog –>Digital 10 bit, 8 ngõ vào.  2 bộ so sánh tương tự (Compartor).  1 bộ định thời giám sát (Watchdog Timer).  15 nguồn ngắt (Interrupts)  Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD, WR, CS ở bên ngoài. Đồ án tốt nghiệp kỹ sư công nghiệp GVHD: ThS. Trần Quang Thuận 5 SVTH: Hoàng Trung Thạch MSSV: 20662090 SVTH: Hoàng Trung Thạch MSSV: 20662090  Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C.  Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.  Nạp được chương trình ngay trên mạch điện ICSP (In Circuit Serial Programming) thông qua 2 chân.  Một vài đặc tính khác của vi điều khiển như:  Được chế tao bằng công nghệ CMOS.  Bộ nhớ flash với khả năng ghi xóa được 100.000 lần.  Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần.  Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm.  Khả năng tự nạp chương trình với sự điều khiển của phần mềm.  Chức năng bảo mật mã chương trình.  Chế độ Sleep.  Có thể hoạt động với nhiều dạng Oscillator khác nhau. 2.1. Sơ lược về các chân của Pic16F877A: PIC16F877A là họ vi điều khiển có 40 chân, mỗi chân có một chức năng khác nhau. Trong đó có một số chân đa công dụng( đa hợp): mỗi chân có thể họat động như một đường xuất nhập ( I/O) hoặc là một chân chức năng đặc biệt dùng để giao tiếp với các thiết bị ngoại vi. 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 bên ngoài. Vi điều khiển PIC16F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB, PORTC, PORTD và PORTE. 2.1.1. Port A và thanh ghi TRISA: PortA gồm 6 chân từ RA0-RA5. Việc ghi các giá trị vào thanh ghi TRISA sẽ quy định các chân của PortA là Input hay Output. Nếu là 0 thì là Output, 1 là Input. Việc đọc thanh ghi PortA sẽ đọc trạng thái các chân PortA. Việc ghi giá trị vào thanh ghi PortA sẽ thay đổi trạng thái của các chân PortA. Riêng chân RA4 được tích hợp thêm chức năng là chân cung cấp xung Clock ngoài cho Timer0 (RA4/TOCKI). Những chân khác của PortA được đa hợp với các chân ngõ vào Analog của ADC và chân ngỏ vào điện thế so sánh của bộ so sánh (Comparator). Hoạt động của những chân này được qui địng bằng những Bit tương ứng trong thanh ghi ADCCON1 và CMCON1. Khi các chân của PortA được sử dụng là ngõ vào Analog thì các Bit của thanh ghi TRISA phải luôn bằng 1. Hình 2.3: Chức năng các chân PortA. Đồ án tốt nghiệp kỹ sư công nghiệp GVHD: ThS. Trần Quang Thuận 6 SVTH: Hoàng Trung Thạch MSSV: 20662090 SVTH: Hoàng Trung Thạch MSSV: 20662090 Các thanh ghi SFR liên quan đến PORTA bao gồm:  PORTA (địa chỉ 05h) : chứa giá trị các pin trong PORTA.  TRISA (địa chỉ 85h) : điều khiển xuất nhập.  CMCON (địa chỉ 9Ch) : thanh ghi điều khiển bộ so sánh.  CVRCON (địa chỉ 9Dh) : thanh ghi điều khiển bộ so sánh điện áp.  ADCON1 (địa chỉ 9Fh) : thanh ghi điều khiển bộ ADC. 2.1.2. Port B và thanh ghi TRISB: PortB gồm 8 chân từ RB0-RB7. Việc ghi các giá trị vào thanh ghi TRISB sẽ quy định các chân của PortB là Input hay Output. Nếu là 0 thì là Output, 1 là Input. Việc đọc thanh ghi PortB sẽ đọc trạng thái các chân PortB. Việc ghi giá trị vào thanh ghi PortB sẽ thay đổi trạng thái của các chân PortB. Ba chân của PortB được đa hợp với chức năng In-Circuit Debugger và Low Voltage Programming fuction: RB3/PGM, RB6/PGC và RB7/PGD. Mỗi chân của PortB có một transistor kéo lên Vdd, chức năng này hoạt động khi Bit RPBU được xóa. Chứ năng này sẽ tự động tắt khi chân Port đựơc quy địng là Input. Bốn chân của Portb từ RB7-RB4 có chức năng ngắt (Interrupt) khi trạng thái chân Port thay đổi (Khi chân Port được quy định là Ouput thì chức na7ng ngắt không họat động). Giá trị chân Port được so sánh với giá trị được lưu lại trước đó, khi có trạng thái sai lệch giữa 2 giá trị này, ngắt sẽ xảy ra với cờ ngắt RBIF INTCON<0> bật lên. Ngắt có thể làm cho Vi điều khiển thoát khỏi trạng thái “SLEEP”. Bất cứ một họat động truy xuất nào trên PortB sẽ xóa trạng thái sai lệch, kết thúc ngắt và cho phép xóa cờ RBIF. Hình 2.4: Chức năng các chân PortB. Đồ án tốt nghiệp kỹ sư công nghiệp GVHD: ThS. Trần Quang Thuận 7 SVTH: Hoàng Trung Thạch MSSV: 20662090 SVTH: Hoàng Trung Thạch MSSV: 20662090 Các thanh ghi SFR liên quan đến PORTB bao gồm:  PORTB (địa chỉ 06h,106h) : chứa giá trị các pin trong PORTB.  TRISB (địa chỉ 86h,186h) : điều khiển xuất nhập.  OPTION_REG (địa chỉ 81h,181h) : điều khiển ngắt ngoại vi và bộ Timer0. 2.1.3. Port C và thanh ghi TRISC: PortC gồm 8 chân từ RC0-RC7. Việc ghi các giá trị vào thanh ghi TRISC sẽ quy định các chân của PortC là Input hay Output. Nếu là 0 thì là Output, 1 là Input. Việc đọc thanh ghi PortC sẽ đọc trạng thái các chân PortC. Việc ghi giá trị vào thanh ghi PortC sẽ thay đổi trạng thái của các chân PortC. Các chân của PortC được đa gợp với các chức năng ngọai vi. Khi các hàm chức năng ngoại vi được cho phép, ta cần quan tâm chặt chẽ tới giá trị các Bit của thanh ghi TRISC và mặt định các chân này là Ouput, ngoài ra một số chức năng ngoại vi khác sẽ tự động mặt định các chân là ngõ vào. Hình 2.5: Chức năng các chân PortC. Các thanh ghi điều khiển liên quan đến PORTC:  PORTC (địa chỉ 07h) : chứa giá trị các pin trong PORTC.  TRISC (địa chỉ 87h) : điều khiển xuất nhập. Đồ án tốt nghiệp kỹ sư công nghiệp GVHD: ThS. Trần Quang Thuận 8 SVTH: Hoàng Trung Thạch MSSV: 20662090 SVTH: Hoàng Trung Thạch MSSV: 20662090 2.1.4. Port D và thanh ghi TRISD: PortD gồm 8 chân từ RD0-RD7. Ngoài việc PortD được cấu trúc là một Port vừa xuất nhập nó còn có thể họat động như một cổng song song bằng cách xét Bit PSPMODE, trong chế độ này Buffer ngõ vào linh kiện TTL. Hình 2.6: Chức năng các chân PortD. Các thanh ghi liên quan đến PORTD bao gồm:  Thanh ghi PORTD(địa chỉ 08h): chứa giá trị các pin trong PORTD.  Thanh ghi TRISD(địa chỉ 88h): điều khiển xuất nhập. 2.1.5. PortE và thanh ghi TRISE : PortE có 3 chân RE0/RD/AN5, RE1/WR/AN6 VÀ RE2/CS/AN7 có thể được cấu hình là các chân xuất nhập. Các chân của PortE có thể trở thành các chân điều khiển cho các cổng của Vi điều khiển khi Bit PSPMODE được xét là 1. Trong chế độ này phải đảm bảo rằng các Bit từ 0 dến 2 cua thanh ghi TRISE phải được xét bằng 1 để các chân này được cấu hình như các chân ngõ vào. Ngoài ra các chân PortE còn được cấu hình như các ngõ vào Analog, tại chế độ này khi đọc trạng thái các chân PortE sẽ cho ta giá trị 0. Thanh ghi TRISE quy định chức năng xuất nhập của các chân PortE ngay cả khi nó được sử dụng là các ngõ vào Analog. Hình 2.7: Chức năng các chân PortE. Đồ án tốt nghiệp kỹ sư công nghiệp GVHD: ThS. Trần Quang Thuận 9 SVTH: Hoàng Trung Thạch MSSV: 20662090 SVTH: Hoàng Trung Thạch MSSV: 20662090 Các thanh ghi liên quan đến PORTE bao gồm:  PORTE(địa chỉ 09h) : chứa giá trị các chân trong PORTE.  TRISE(địa chỉ 89h) : điều khiển xuất nhập và xác lập các thông số cho chuẩn giao tiếp PSP.  ADCON1(địa chỉ 9Fh) : thanh ghi điều khiển khối ADC. 2.2. MCLR( MASTER CLEAR): Ngõ vào MCLR( Reset) trên chân số 1 của Vi điều khiển. Khi đưa MCLR xuống thấp, các thanh ghi bên trong Vi điều khiển sẽ được tải những giá trị thích hợp để khởi động lại hệ thống. Hình 2.8: Cách kết nối với chân MCLR. 2.3. Các chân nguồn: PIC 16F877A vận hành với nguồn đơn 5V. Chân VDD( chân nguồn dương ) được nối vào chân số 11 và 32. Chân VSS( chân mass ) được nối vào chân số 12 và 31. 2.4. Tổ chức bộ nhớ: Bộ nhớ chương trình( 8K Flash ROM), bộ nhớ dữ liệu( 368 bytes RAM) và bộ nhớ dữ liệu EEPROM( 256 bytes). 2.4.1. Tổ chức của bộ nhớ chương trình: Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ Flash, có bộ đếm chương trình( Program Counter) dài 13 bit có thể định địa chỉ cho 8K không gian bộ nhớ, 8K không gian bộ nhớ được chia làm 8 trang bộ nhớ. Mọi sự truy cập ngoài vùng không gian này sẽ không có tác dụng. Bộ nhớ chương trình còn bao gồm một ngăn xếp( Stack) 8 mức. Khi vi điều khiển được reset, bộ đếm chương trình sẽ chỉ đến địa chỉ 0000h (Reset vector). Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉ đến địa chỉ 0004h (Interrupt vector). VCC D5 1N4148 1 C7 104 VCC R4 100 MCLR 0 SW1 RESET R3 10K Đồ án tốt nghiệp kỹ sư công nghiệp GVHD: ThS. Trần Quang Thuận 10 SVTH: Hoàng Trung Thạch MSSV: 20662090 SVTH: Hoàng Trung Thạch MSSV: 20662090 Hình 2.9: Ngăn xếp và bản đồ bộ nhớ chương trình. 2.4.2. Tổ chức của bộ nhớ dữ liệu: Bộ nhớ dữ liệu của PIC được chia ra làm nhiều bank. Đối với PIC16F877A bộ nhớ dữ liệu được chia ra làm 4 bank: bank 0, bank 1, bank 2 và bank 3. Mỗi bank có dung lượng 128 byte, bao gồm các thanh ghi có chức năng đặc biệt SFR (Special Function Register) nằm ở các vùng địa chỉ thấp và các thanh ghi mục đích chung GPR (General Purpose Register) nằm ở vùng địa chỉ còn lại trong bank. Các thanh ghi SFR thường xuyên được sử dụng (ví dụ như thanh ghi STATUS) sẽ được đặt ở tất cà các bank của bộ nhớ dữ liệu giúp thuận tiện trong quá trình truy xuất và làm giảm bớt lệnh của chương trình. Các bank được lựa chọn bằng bitb RP0 và bit RP1 ở thanh ghi Status. RP1:RP0 Bank 00 0 01 1 10 2 11 3  Vùng RAM đa mục đích GPR: Vùng RAM đa mục đích có chiều rộng là 8 bit và được truy xuất trực tiếp hoặc gián tiếp thông qua thanh ghi FSR. Đây là các thanh ghi dữ liệu thông thường, người sử dụng có thể tùy theo mục đích chương trình mà có thể dùng các thanh ghi này để chứa các biến số, hằng số, kết quả hoặc các tham số phục vụ cho chương trình. [...]... việc mô tả các lệnh lập trình cho Vi điều khiển một cách ngắn gọn và dễ hiểu hơn đã dẫn đến sự ra đời của nhiều chương trình soạn thảo và biên dịch C cho Vi điều khiển : Keil C, HT -PIC, MikroC, CCS…Ở đây tôi sử dụng CCS để lập trình vì tính năng mạnh và dễ lập trình hơn so với MBLab CCS là trình biên dịch lập trình ngôn ngữ C cho Vi điều khiển PIC của hãng Microchip Chương trình là sự tích hợp của 3 trình. .. điều khiển động cơ 4.5.Động cơ điện một chiều: Hình 2.27: Động cơ DC SVTH: Hoàng Trung Thạch SVTH: Hoàng Trung Thạch MSSV: 20662090 MSSV: 20662090 34 Đồ án tốt nghiệp kỹ sư công nghiệp GVHD: ThS Trần Quang Thuận CHƯƠNG 3: LẬP TRÌNH PIC DÙNG CCS 1 Tổng quan về CCS: Sự ra đời của một loại vi điều khiển đi kèm với việc phát triển phần mềm ứng dụng cho việc lập trình cho con vi điều khiển đó Vi điều khiển. .. 20662090 26 Đồ án tốt nghiệp kỹ sư công nghiệp GVHD: ThS Trần Quang Thuận 3 Tập lệnh của vi điều khiển Pic 16F877A: 3.1 Vài nét sơ lược về tập lệnh Vi điều khiển Pic 16F877A: PIC là vi điều khiển có tập lệnh rút gọn RISC (Reduced Instruction Set Computer), bao gồm 35 lệnh Mỗi lệnh trong trong vi điều khiển 16F877A là một từ 14 bit bao gồm trường mã lệnh và trường toán hạng.Các lệnh của PIC1 6F877A được... biệt cho 3 dòng PIC khác nhau đó là:  PCB cho dòng PIC 12 bit opcodes  PCM cho dòng PIC 14 bit opcodes  PCH cho dòng PIC 16 và 18 bit Tất cả 3 trình biên dịch này được tích hợp lại vô trong một chương trình bao gồm cả trình soạn thảo văn biên dịch là CCS Giống như nhiều trình biên dịch C khác cho PIC, CCS giúp cho người sử dụng nắm bắt nhanh được vi điều khiển PIC và sử dụng PIC trong các dự án Các... Tác dụng: gán giá trị cho tên của tên của hằng số Tên của hằng số không thay đổi trong quá trình thực thi chương trình ORG Cú pháp: ORG Tác dụng: định nghĩa một địa chỉ chứa chương trình trong bộ nhớ chương trình của vi điều khiển END Cú pháp: END Tác dụng: đánh dấu kết thúc chương trình CONFIG Cú pháp: Tác dụng: thiết lập các bit điều khiển các khối chức năng của vi điều khiển được chứa... CCPR1H (byte cao) Thanh ghi điều khiển CCP1CON điều khiển hoạt động của bộ CCP1  Bộ CCP2 : Thanh ghi CCPR2 bao gồm hai thanh ghi: CCPR2L (byte thấp) và CCPR2H (byte cao).Thanh ghi điều khiển CCP2CON điều khiển hoạt động của bộ CCP2 SVTH: Hoàng Trung Thạch SVTH: Hoàng Trung Thạch MSSV: 20662090 MSSV: 20662090 20 Đồ án tốt nghiệp kỹ sư công nghiệp GVHD: ThS Trần Quang Thuận Hình 2.17: Thanh ghi CCP1CON/CCP2CON... MSSV: 20662090 MSSV: 20662090 18 Đồ án tốt nghiệp kỹ sư công nghiệp GVHD: ThS Trần Quang Thuận TMR1IE Cờ TMR1IE phải được xoá bằng phần mềm trước khi thoát khỏi trình phục vụ ngắt và trở về chương trình chính Ngắt của Timer1 trong chế độ định thời và đếm đồng bộ không làm cho Vi điều khiển thoát khỏi trạng thái ngủ, chỉ có chế độ đếm không đồng bộ mới làm cho Vi điều khiển thoát khỏi trạng thái ngủ.. .Đồ án tốt nghiệp kỹ sư công nghiệp GVHD: ThS Trần Quang Thuận Hình 2.10: Ngăn xếp và bản đồ bộ nhớ chương trình Sơ đồ bộ nhớ dữ liệu PIC1 6F877A  Vùng thanh ghi chức năng đặc biệt SFR: Đây là các thanh ghi chức năng dặc biệt được sử dụng bởi bộ sử lý trung tâm và các hàm chức năng ngoại vi để điều khiển họat động của các thiết bị Có thể phân thanh ghi SFR làm hai lọai: tloại thứ nhất dùng để... 5V Hình 2.24: IC7805 4.2 IC LM324:  Sơ đồ chân và cấu trúc bên trong: Hình 2.25: IC LM324 Chức năng: Dùng để so sánh điện áp 4.3.Led thu phát hồng ngoại: SVTH: Hoàng Trung Thạch SVTH: Hoàng Trung Thạch MSSV: 20662090 MSSV: 20662090 33 Đồ án tốt nghiệp kỹ sư công nghiệp GVHD: ThS Trần Quang Thuận DETECTOR: led thu hồng ngoại EMITTER: led phát hồng ngoại 4.4.L298: Hình 2.26: L298 Chức năng: Dùng để điều. .. ghi PR2  Thiết lập chu trình họat động bằng cách ghi lên thanh ghi  CCPR1L và bit4 bit5 trong thanh ghi CCP1CON  Cấu hình cho chân CCP1 ở trạng thái xuất dữ liệu  Cấu hình cho bộ CCP1 hoạt động trong chế độ PWM SVTH: Hoàng Trung Thạch SVTH: Hoàng Trung Thạch MSSV: 20662090 MSSV: 20662090 22 Đồ án tốt nghiệp kỹ sư công nghiệp GVHD: ThS Trần Quang Thuận Hình 2.18: Sơ đồ khối của bộ PWM Hình 2.19: Các

Ngày đăng: 24/04/2015, 00:22

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan