Baùo caùo ñoà aùn moân hoïc I

Lời cảm ơn
Kính gửi Thầy TS. Nguyễn Thiện Thành! Em là Nguyễn Uy Danh, sinh viên năm 4, khoa Điện_Điện Tử, Đại Học Bách Khoa Tp.HCM. Học kỳ này, em rất vinh dự được thực hiện đề tài của đồ án môn học I dưới sự hướng dẫn tận tình của Thầy. Chính sự nhiệt tình chỉ dẫn của Thầý đã giúp em hoàn thành đồ án khá tốt, đạt được những yêu cầu cơ bản mà đề tài đặt ra. Và cũng qua đó, em đã học hỏi, tiếp cận được nhiều vấn đề thực tế hơn, bổ sung những “khe hở” kiến thức do việc học thiên về lý thuyết để lại. Em xin chân thành cảm ơn Thầy. Cũng qua đây, em xin gửi lời cảm ơn chân thành của mình đến gia đình, bạn bè –những người đã động viên, quan tâm hết mực đến em trong suốt quá trình thực hiện đồ án. Đó là những động lực thúc đẩy em cố gắng hơn, quyết tâm hơn, để cuối cùng em có được kết quả như ngày hôm nay. Em xin gửi lời cảm ơn đến tất cả. Sinh viên thực hiện Nguyễn Uy Danh

Chương I : Giới thiệu về đề tài
GVHD : TS. Nguyeãn Thieän Thaønh 1 SVTH: Nguyeãn Uy Danh

Baùo caùo ñoà aùn moân hoïc I

I.Tóm tắt đề tài đồ án môn học I 1. Giới thiệu các module mạch của đề tài
Đề tài đồ án môn học I của em là : “ Điều khiển ON_OFF tốc độ động cơ DC”. Với yêu cầu đề tài như trên, hướng thực hiện đề tài của em được tóm tắt như sau: Sử dụng vi điều khiển PIC16F877A làm chip điều khiển trung tâm. Xây dựng bàn phím gồm 13 phím. Trong đó: +1 phím để đồng thời reset vi điều khiển và dừng động cơ DC + 10 phím ứng với 10 số từ 0 đến 9 để người dùng nhập tốc độ đặt + 1 phím ra lệnh động cơ quay thuận (FORWARD) + 1 phím ra lệnh động cơ quay ngược (REVERSE) Sử dụng 8 led 7 đoạn. Trong đó + 4 led dùng để người dùng nhập tốc độ đặt mong muốn + 4 led để người dùng quan sát tốc độ đo trực tiếp từ động cơ cơ DC Đối tượng điều khiển là động cơ DC có gắn encoder đồng trục. - Ngoài ra, trên mạch còn có các linh kiện khác để thực hiện truyền tín hiệu giữa vi điều khiển trung tâm với các thiết bị hiển thị nói trên. Tất cả các module mạch trên sẽ được em trình bày rõ trong các phần tiếp theo của đề tài. Sử dụng driver cầu H L293D trực tiếp điều khiển chiều quay, đóng ngắt động

2. Sơ đồ nguyên lý kết nối các module trong mạch

GVHD : TS. Nguyeãn Thieän Thaønh 2 SVTH: Nguyeãn Uy Danh

Baùo caùo ñoà aùn moân hoïc I

3. Cách vận hành mạch
+ Bước 1: ta sẽ nhập tốc độ đặt từ bàn phím. Tốc độ đặt này gồm có 4 chữ số, sẽ hiện lên thông qua 4 led. Ta phải nhấn đủ 4 con số thì mạch mới hoạt động được, nếu không nhấn đủ mạch sẽ “treo đó”, chờ người dùng nhấn số tiếp. Nếu nhập sai tốc độ, ta có thể nhấn phím reset để nhập tốc độ lại từ đầu. Nếu nhấn nhầm sang các phím RESERVE hoặc FORWARD trước khi nhập đủ 4 số ở phần cài đặt tốc độ thì người dùng hoàn toàn có thể nhấn lại mà không ảnh hưởng đến kết quả. + Bước 2: ta nhấn tiếp RESERVE hay FORWARD cho động cơ chạy theo ý muốn. Trong quá trình động cơ quay, vi điều khiển sẽ nhận liên tục nhận xung phát ra từ encoder, tính toán ra tốc độ và so sánh với tốc độ đặt ban đầu để ra quyết định ON_OFF động cơ. Tốc độ nhận về sẽ được so sánh với tốc độ đặt cứ 1ms một lần. Ngoài ra cứ 1s thì vi điều khiển sẽ cập nhật tốc độ thực của động cơ, thể hiện ra 4 led 7 đoạn để người dùng có thể theo dõi và đánh giá.

GVHD : TS. Nguyeãn Thieän Thaønh 3 SVTH: Nguyeãn Uy Danh

Baùo caùo ñoà aùn moân hoïc I

II. Các yêu cầu của đề tài
1. Thông qua đề tài, làm quen với cách thức điều khiển đối tượng động cơ.

2. Tìm hiểu thực tế các linh kiện, các loại IC, hoạt động của các loại cảm biến…. 3. Thiết kế, thi công mạch điều khiển và mạch động lực điều khiển động cơ DC
4. Viết chương trình cho vi điều khiển PIC16F877A thực hiện thành công theo yêu

cầu đề ra. 5. Đánh giá về sai số ,chất lượng hệ thống điều khiển 6. Tìm hiểu các hướng phát triển của đề tài, nâng cao chất lượng của hệ thống

Chương II : Giới thiệu về các linh kiện, phần tử sử dụng trong mạch
I. Vi điều khiển PIC16F877A 1. Khái quát về vi điều khiển PIC16F877A
1.1.Sơ đồ chân và sơ đồ nguyên lý của PIC16F877A Sơ đồ chân
GVHD : TS. Nguyeãn Thieän Thaønh 4 SVTH: Nguyeãn Uy Danh

Nguyeãn Thieän Thaønh 5 SVTH: Nguyeãn Uy Danh .Baùo caùo ñoà aùn moân hoïc I Sơ đồ nguyên lý GVHD : TS.

2 chân cấp nguồn. Nhận xét Từ sơ đồ chân và sơ đồ nguyên lý ở trên. 2 chân GND.3. ta rút ra các nhận xét ban đầu như sau : PIC16F877A có tất cả 40 chân 40 chân trên được chia thành 5 PORT. 2 chan thạch anh và một chân dùng để RESET vi điều khiển.Baùo caùo ñoà aùn moân hoïc I 1. 5 port của PIC16F877A bao gồm : + PORTB : 8 chân + PORTD : 8 chân + PORTC : 8 chân + PORTA : 6 chân + PORT E : 3 chân 1. Nguyeãn Thieän Thaønh 6 SVTH: Nguyeãn Uy Danh . Khái quát về chức năng của các port trong vi điều khiển PIC16F877A PORTA GVHD : TS.2.

ngược lại muốn chân nào là output thì ta clear bit tương ứng trong TRISB. muốn chân nào là output thì ta clear bit tương ứng chân đó trong thanh ghi TRISA. Khi muốn chân nào của PORTB là input thì ta set bit tương ứng trong thanh ghi TRISB. Muốn xác lập các chân nào của PORTA là nhập (input) thì ta set bit tương ứng chân đó trong thanh ghi TRISA.Ngõ vào của bộ giao tiếp MSSP (Master Synchronous Serial Port) PORTB PORTB có 8 chân. không như 8051 tự hiểu lúc nào là chức năng nhập. Việc xuất nhập dữ liệu ở PIC16F877A khác với họ 8051.Ngõ vào xung Clock của Timer0 trong kiến trúc phần cứng : thực hiện các nhiệm vụ đếm xung thông qua Timer0… . Trong kiến trúc phần cứng của PIC16F877A. các chân PORTB cũng thực hiện được 2 chức năng : input và output. Ngược lại. GVHD : TS.Ngõ vào Analog của bộ ADC : thực hiện chức năng chuyển từ Analog sang Digital . PORTA còn có các chức năng quan trọng sau : . Nguyeãn Thieän Thaønh 7 SVTH: Nguyeãn Uy Danh . Để chuyển từ chức năng này nhập qua chức năng xuất hay ngược lại. Hai chức năng trên được điều khiển bới thanh ghi TRISB.Baùo caùo ñoà aùn moân hoïc I PORTA gồm có 6 chân. ta phải xử lý bằng phần mềm. Cũng như PORTA. lúc nào là chức năng xuất. ta lập trình để có thể thực hiện được chức năng “hai chiều” : xuất dữ liệu từ vi điều khiển ra ngoại vi và nhập dữ liệu từ ngoại vi vào vi điều khiển. Các chân của PortA.Ngõ vào điện thế so sánh . Điều này hoàn toàn tương tự đối với các PORT còn lại Ngoài ra. Ở tất cả các PORT của PIC16F877A. người ta sử dụng thanh ghi TRISA ở địa chỉ 85H để điều khiển chức năng I/O trên. Thanh ghi TRISB còn được tích hợp bộ điện trở kéo lên có thể điều khiển được bằng chương trình. PORTC PORTC có 8 chân và cũng thực hiện được 2 chức năng input và output dưới sự điều khiển của thanh ghi TRISC tương tự như hai thanh ghi trên. ở mỗi thời điểm chỉ thực hiện được một chức năng :xuất hoặc nhập.

em được học và thí nghiệm trên kit của vi điều khiển 8051. phổ biến. 1. Điều nàý gây trở ngại lớn khi thực hiện các dự án lớn với vi điều khiển 8051. ta phải sử dụng thêm các IC bên ngoài.Bộ PWM thực hiện chức năng điều xung lập trình được tần số. PORTE PORTE có 3 chân. SPI. Bên cạnh đó PORTE còn là các chân điều khiển của chuẩn giao tiếp PSP. Các chân của PORTE có ngõ vào analog.Ngõ vào xung clock cho Timer1 trong kiến trúc phần cứng . Khi muốn sử dụng các chức năng này.Số lượng các bộ giao tiếp với ngoại vi được tích hợp sẵn trong 8051 ít. truyền dữ liệu song song…. rất phù hợp với sinh viên mới bắt đầu làm quen đến lập trình cho vi điều khiển. PORTD cũng là cổng xuất dữ liệu của chuẩn giao tiếp song song PSP (Parallel Slave Port). duty cycle: sử dụng trong điều khiển tốc độ và vị trí của động cơ v. SSP. . Tuy nhiên.4. em nhận thấy nó có những nhược điểm cơ bản sau đây : . Thanh ghi TRISD điều khiển 2 chức năng input và output của PORTD tương tự như trên. 89052…). USART PORTD PORTD có 8 chân. Thanh ghi điều khiển xuất nhập tương ứng là TRISE.v…. Để khắc phục ta phải mở rộng thêm làm hạn chế số chân dành cho các ứng dụng của vi điều khiển. .Baùo caùo ñoà aùn moân hoïc I Ngoài ra PORTC còn có các chức năng quan trọng sau : . Tại sao sử dụng PIC16F877A mà không dùng 8051 cho đề tài Trong chương trình đào tạo của Trường Đại Học Bách Khoa. Họ vi điều khiển 8051 là một họ vi điều khiển điển hình. gây tốn kém và khó thực hiện vì dễ bị nhiễu nếu không biết cách chống nhiễu tốt. GVHD : TS. Nguyeãn Thieän Thaønh 8 SVTH: Nguyeãn Uy Danh . dễ sử dụng và lập trình.Bộ nhớ Ram nội có dung lượng thấp . cũng trong quá trình nghiên cứu và thí nghiệm với các chip điều khiển thuộc họ 8051 ( điển hình là 89C51.Tích hợp các bộ giao tiếp nối tiếp I2C. không có các bộ ADC. chỉ có 128 bytes. PWM.

nhằm phục vụ mục đích lâu dài sau này. trong một thời gian tương đối ngắn. Chính điều này làm cho giải thuật khi viết chương trình gặp khó khăn.1.Ngoài ra còn một số hạn chế khác như số lượng Timer của 8051 ít. luận văn. Giá của PIC16F877A mà em mua trên thị hiện trường là 50000 đồng.3. Hãng Micrchip tiếp tục phát triển sản phầm này và cho đến hàng đã tạo ra gần 100 loại sản phẩm khác nhau. nâng cao khả năng tự tìm tòi . Việc sử dụng PIC16F877A trong một đề tài không lớn như đề tài “điều khiển tốc độ động cơ” có thể là một lãng phí. mắc hơn 2 lần giá một con chip họ 8051. Em nhận thấy PIC của hãng Microchip là một lựa chọn lý tưởng. Tuy nhiên với mục đích nâng cao kiến thức. Và trên thực tế. ta cũng dễ dàng nhận ra những ưu điểm vượt trội của vi điều khiển này so với 8051. Tìm hiểu về vi điều khiển PIC16F877A 2. Trên là toàn bộ nguyên do tại sao em chọn vi điều khiển PIC16F877A cho đề tài đồ án môn học I của mình. Nguyeãn Thieän Thaønh 9 SVTH: Nguyeãn Uy Danh . Với kỳ vọng dựa trên nền tản kiến thức tiếp thu được khi học vi điều khiển 8051. sau nữa là cho các dự án trong tương lai nếu em có dịp sử dụng vi điều khiển trong dự án của mình. thì đây là một sự lựa chọn hoàn toàn xác đáng. 2. chỉ có 2 Timer. em đã quyết định không dùng vi điều khiển này cho đề tài “điều khiển tốc độ động cơ” của mình. em rất muốn tự bản thân tìm hiểu một họ vi điều khiển mới mạnh hơn. Những nhược điểm căn bản trên của 8051. đầy đủ tính năng hơn để trước mắt là phuc vụ tốt cho đồ án . Ở phần tiếp theo của báo cáo đồ án môn học I em sẽ đi sâu giới thiệu những phần mà em đã nghiên cứu được để phục vụ cho việc thực hiện đồ án của mình. em đã nắm vững được những mãng kiến thức cơ bản nhất để sử dụng nó tốt trong đề tài của mình. Cấu trúc phần cứng của PIC16F877A PIC là tên viết tắt của “ Programmable Intelligent computer” do hãng General Instrument đặt tên cho con vi điều khiển đầu tiên của họ.học hỏi qua các kênh thông tin giáo dục khác nhau. GVHD : TS.Baùo caùo ñoà aùn moân hoïc I . Chỉ cần xem xét qua các port và chức năng của các port mà em đã trình bày ở mục 1. Trong quá trình tím kiếm một họ vi điều khiển mới thõa yêu cầu như em đã trình bày trên.

khá đầy đủ tính năng phục vụ cho hầu hết tất cả các ứng dụng thực tế. Đây là dòng PIC khá dễ cho người mới làm quen với PIC có thể học tập và tạo nền tản về họ vi điều khiển PIC của mình.Baùo caùo ñoà aùn moân hoïc I PIC16F887A là dòng PIC khá phổ biến. 8 ngõ vào 2 bộ so sánh tương tự 1 bộ định thời giám sát (Watch Dog Timer) 1 cổng song song 8 bit với các tín hiệu điều khiển 1 cổng nối tiếp 15 nguồn ngắt - GVHD : TS. Cấu trúc tổng quát của PIC16F877A như sau : - 8K Flash Rom 368 bytes Ram 256 bytes EFPROM 5 port vào ra với tín hiệu điều khiển độc lập 2 bộ định thời Timer0 và Timer2 8 bit 1 bộ định thời Timer1 16 bit có thể hoạt động ở cả chế độ tiết kiệm năng lượng với nguồn xung clock ngoài 2 bộ Capture/ Compare/ PWM 1 bộ biến đổi Analog -> Digital 10 bit. Nguyeãn Thieän Thaønh 10 SVTH: Nguyeãn Uy Danh .

Baùo caùo ñoà aùn moân hoïc I Sơ đồ khối vi điều khiển 16F877A GVHD : TS. Nguyeãn Thieän Thaønh 11 SVTH: Nguyeãn Uy Danh .

Bộ nhớ chương trình Bộ nhớ chương trình PIC16F877A Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ Flash. thanh ghi đếm chương trình PC có dung lượng 13 bit. bộ đếm chương trình sẽ trỏ về địa chỉ 0000h. Tổ chức bộ nhớ PIC16F877a 2. dung lượng 8K word (1 word chứa 14bit) và được phân thành nhiều trang như hình trên.Baùo caùo ñoà aùn moân hoïc I 2. Nguyeãn Thieän Thaønh 12 SVTH: Nguyeãn Uy Danh . Để mã hóa được địa chỉ 8K word bộ nhớ chương trình.1. GVHD : TS. Khi vi điều khiển reset.2.2. Khi có ngắt xảy ra thì thanh ghi PC sẽ trỏ đến địa chỉ 0004h.

128 byte còn lại thuộc bank 2 là cùng các thanh ghi có chức năng đặc biệt SFR mà người dùng không được chứa dữ liệu khác trong đây thì 4 bank bộ nhớ dữ liệu của PIC16F877A được tổ chức theo cách khác. việc đặt các thanh ghi sử dụng thường xuyên giúp ta thuận tiên hơn rất nhiều trong quá trình truy xuất. Mỗi bank của bộ nhớ dữ liệu PIC16F877A bao gồm cả các thanh ghi có chức năng đặc biệt SFR nằm ở các các ô nhớ địa chỉ thấp và các thanh ghi mục đích dùng chung GPR nằm ở vùng địa chỉ còn lại của mỗi bank thanh ghi. Tất cả các biến dữ liệu nên được khai báo chứa trong vùng địa chỉ này. Nguyeãn Thieän Thaønh 13 SVTH: Nguyeãn Uy Danh .Baùo caùo ñoà aùn moân hoïc I Bộ nhớ chương trình không bao gồm bộ nhớ Stack và không được địa chỉ hóa bởi bộ đém chương trình. làm giảm lệnh chương trình. Bộ nhớ dữ liệu Bộ nhớ dữ liệu của PIC16F877A được chia thành 4 bank. Mỗi bank có dụng lượng 128 byte. Sở dĩ như vậy là vì.2. GVHD : TS. để truy xuất một thanh ghi nào đó trong bộ nhớ của 16F877A ta cần phải khai báo đúng bank chứa thanh ghi đó. 2. các thanh ghi SFR nào mà thường xuyên được sử dụng (như thanh ghi STATUS) sẽ được đặt ở tất cả các bank để thuận tiện trong việc truy xuất. Nếu như 2 bank bộ nhớ dữ liệu của 8051 phân chia riêng biệt : 128 byte đầu tiên thuộc bank1 là vùng Ram nội chỉ để chứa dữ liệu. Trong cấu trúc bộ nhớ dữ liệu của PIC16F877A. Vùng ô nhớ các thanh ghi mục đích dùng chung này chính là nơi người dùng sẽ lưu dữ liệu trong quá trình viết chương trình.2.

PORTE đều chứa ở bank0. trong đó các thanh ghi dùng chung để chứa dữ liệu của người dùng địa chỉ từ 20h đến 7Fh. Các thanh ghi PORTA. PORTC. PORTB. do đó để truy xuất dữ liệu các thanh ghi này GVHD : TS.Baùo caùo ñoà aùn moân hoïc I Sơ đồ bộ nhớ dữ liệu của PIC16F877A Dựa trên sơ đồ 4 bank bộ nhớ dữ liệu PIC16F877A ta rút ra các nhận xét như sau : -Bank0 gồm các ô nhớ có địa chỉ từ 00h đến 77h. PORTD. Nguyeãn Thieän Thaønh 14 SVTH: Nguyeãn Uy Danh .

TRISD. cho phép điều khiển chức năng pull_up của các chân trong PORTB. FSR… có mặt trên cả 4 bank.Tương tự ta có thể suy ra các nhận xét cho bank2 và bank3 dựa trên sơ đồ trên. GVHD : TS. Ngoài ra một vài các thanh ghi thông dụng khác ( sẽ giới thiệu sau) cũng chứa ở bank0 . Một vài thanh ghi chức năng đặc biệt SFR Thanh ghi STATUS: thanh ghi này có mặt ở cả 4 bank thanh ghi ở các địa chỉ 03h.8Bh. Thanh ghi OPTION_REG : có mặt ở bank2 và bank3 có địa chỉ 81h và 181h. 103h và 183h : chứa kết quả thực hiện phép toán của khối ALU.Bank1 gồm các ô nhớ có địa chỉ từ 80h đến FFh. Cũng quan sát trên sơ đồ. TRISB. ta nhận thấy thanh ghi STATUS. Nếu thanh ghi nào mà 4 bank đều chứa thì không cần phải chuyển bank. 83h. Thanh ghi này cho phép đọc và ghi. Các thanh ghi dùng chung có địa chỉ từ A0h đến Efh.18Bh. Một điều quan trọng cần nhắc lại trong việc truy xuất dữ liệu của PIC16F877A là : phải khai báo đúng bank chứa thanh ghi đó.Baùo caùo ñoà aùn moân hoïc I ta phải chuyển đến bank0. trạng thái reset và các bit chọn bank cần truy xuất trong bộ nhớ dữ liệu. Nguyeãn Thieän Thaønh 15 SVTH: Nguyeãn Uy Danh . TRISC. chứa các bit điều khiển và các bit báo tràn timer0. ngắt ngoại vi RB0/INT và ngắt khi thay đổi trạng thái tại các chân của PORTB.2. TRISE cũng được chứa ở bank1 . 2. cạnh tác động của ngắt ngoại vi và bộ đếm Timer0 Thanh ghi INTCON : có mặt ở cả 4 bank ở địa chỉ 0Bh.3. Các thanh ghi TRISA.10Bh. xác lập các tham số về xung tác động. Thanh ghi cho phép đọc và ghi.

chứa các bit điều khiển các ngắt của các khối chức năng CCP. 2. tuy nhiên tầm ảnh hưởng của nó rộng hơn rất nhiều. Nguyeãn Thieän Thaønh 16 SVTH: Nguyeãn Uy Danh . GVHD : TS. Thanh ghi PIR2: địa chỉ 0Dh. chứa cờ ngắt của các khối chức năng ngoại vi. chứa cờ ngắt của các khối chức năng ngoại vi. Thanh ghi W Đây là thanh ghi rất đặc biệt trong PIC16F877A. Thanh ghi PIR1 : địa chỉ 0Ch. các ngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE2 Thanh ghi PCON : địa chỉ 8Eh. Thanh ghi PIE2 : địa chỉ 8Dh. Thanh ghi W(work) và tập lệnh của PIC16F877A 2. chứa các cờ hiệu cho biết trạng thái các chế độ reset của vi điều khiển.3. các ngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE1. chứa các bit điều khiển chi tiết các ngắt của các khối chức năng ngoại vi.3.Baùo caùo ñoà aùn moân hoïc I Thanh ghi PIE1 :địa chỉ 8Ch. Nó có vai trò tương tự như thanh ghi Accummulator của 8051. ngắt của bộ so sánh và ngắt ghi vào bộ nhớ EEPROM. SSP bú.1.

trong PIC chúng ta không được phép chuyển trực tiếp giá trị của một thanh ghi này qua thanh ghi khác mà phải chuyển thông qua thanh ghi W.4. Mỗi dòng lệnh trong PIC16F877a được mô tả trong 14 bit. Khi ta thực hiện một lệnh nào đó. em sử dụng ngôn ngữ asembly để viết. Tập lệnh của PIC16F877A PIC16F877A có tất cả 35 lệnh và được trình bày khá rõ trong datasheet. Timer0 GVHD : TS.2. Trong chương trình. Thanh ghi W có 8 bit và không xuất hiện trong bất kỳ bank thanh ghi nào của bộ nhớ dữ liệu của 16F877A. timer1 (16 bit) và timer2 (8 bit). Em sẽ đính kèm tập lệnh ở phần cuối cùng của bài báo cáo. nó phải lưu địa chỉ của thanh ghi bị tác động (chiếm 8 bit) và giá trị một hằng số k nào đó (thêm 8 bit nữa) là 16 bit. Các vấn đề về Timer PIC16F877A có tất cả 3 timer : timer0 (8 bit). Hầu hết các lệnh của PIC16F877A đều phải liên quan đến thanh ghi W cũng vì lý do đó. Trình biên dịch là Mplab được Microchip cung cấp miễn phí cho người dùng. Có thể xem thanh ghi W là thanh ghi trung gian trong quá trình viết chương trình cho PIC16F877A. Khi thực hiện một dòng lệnh nào đó. 2. Ví dụ như. 2.Baùo caùo ñoà aùn moân hoïc I Tập lệnh của PIC16F877A có tất cả 35 lệnh thì số lệnh có sự “góp mặt” của thanh ghi W là 23 lệnh. Do vậy ta không thể nào tiến hành một phép tính toàn trực tiếp nào giữa 2 thanh ghi với nhau hoặc giữa một thanh ghi với một hằng số k. Hầu hết các lệnh của PIC16F877A đều liên quan đến thanh ghi W.3. vượt quá giới hạn 14 bit. Nguyeãn Thieän Thaønh 17 SVTH: Nguyeãn Uy Danh . thì PIC sẽ không phải tốn 8 bit để lưu địa chỉ của thanh ghi W trong mã lệnh ( vì được hiểu ngầm).

1:128. Bộ prescaler này có thể được điều chỉnh bởi các 3 bit PS2:PS0 trong thanh ghi OPTION. 1:4. cạnh tác động ngắt… thông qua thanh ghi trên. 1:256 tùy thuộc vào việc thiết lập các giá trị 0 . Bộ tiền định có giá trị 1:2 chẳng hạn . 1:32. 1:8. ta cũng có thể lựa chọn cạnh tích cực của xung clock.có nghĩa là : bình thường không sử dụng bộ tiền định của Timer0 (đồng nghĩa với tiền định tỉ lệ 1:1) thì cứ khi có tác động của 1 xung clock thì timer0 sẽ tăng thêm một đơn vị. Nguyeãn Thieän Thaønh 18 SVTH: Nguyeãn Uy Danh . 1:64. Nếu sử dụng bộ tiền định 1:4 thì phải mất 4 GVHD : TS. 1:16. Nó có thể có giá trị 1:2. 2 chức năng trên có thể được lựa chọn thông qua bit số 5 TOCS của thanh ghi OPTION. Timer0 của 16F877A cũng có 2 chức năng : định thời và đếm xung.1 cho 3 bit trên. Ngoài ra. Timer0 được tích hợp thêm bộ tiền định 8 bit (prescaler). có tác dụng mở rộng “dung lượng” của Timer0.Baùo caùo ñoà aùn moân hoïc I Sơ đồ khối của Timer0 Cũng giống như 8051.

Cặp thanh ghi của TMR1 sẽ tăng từ 0000h lên đến FFFFh rồi sau đó tràn về 0000h. lúc này TMR1IF sẽ bật lên. Nếu ngắt được cho phép. Nguyeãn Thieän Thaønh 19 SVTH: Nguyeãn Uy Danh . giá trị của timer0 (8 bit) lúc này không còn là 255 nữa mà là 255*4=1020. Timer1 có 3 chế độ hoạt động : . Vô hình chung. GVHD : TS. Trong chế độ này xung cấp cho Timer1 là Fosc/4.Chế độ hoạt động định thời đồng bộ : Chế độ được lựa chọn bởi bit TMR1CS. bit điều khiển của Timer1 là TRM1IE. Cờ ngắt của Timer1 là bit TMR1IF. Các thanh ghi liên quan đến Timer0 bao gồm : TMR0 : chứa giá trị đếm của Timer0 INTCON : cho phép ngắt hoạt động OPTION_REG : điều khiển prescaler Timer1 Sơ đồ khối của Timer1 Timer1 là bộ định thời 16 bit. bit T1SYNC không có tác dụng.Baùo caùo ñoà aùn moân hoïc I xung clock thì timer0 mới tăng thêm một đơn vị. nó sẽ xảy ra khi khi giá trị của TMR1 tràn từ FFFFh rồi về 0000h. giá trị của Timer1 sẽ được lưu trong hai thanh ghi 8 bit TMR1H:TMR1L.

Timer2 : là bộ định thời 8 bit bao gồm một bộ tiền định (prescaler). Sơ đồ chân của L293 GVHD : TS. Bộ định thời sẽ tiếp tục đếm trong suốt quá trình ngủ của vi điều khiển và có khả năng tạo một ngắt khi bộ định thời tràng và làm cho Vi điều khiển thoát khỏi trạng thái ngủ. Sơ đồ khối của Timer2 II. Trong đề tài của mình. giá trị của timer1 sẽ tăng khi có xung cạnh lênh vào chân T1OSI/RC1. hoạt động đồng bộ được thực hiện ngay sau bộ tiền định tỉ lệ xung (prescaler). . Module timer2 cung cấp thời gian hoạt động cho chế độ điều biến xung PWM nếu module CCP được chọn. em chỉ dùng nó để điều khiển một động cơ.Baùo caùo ñoà aùn moân hoïc I . Việc kết hợp timer2 với 2 bộ định tỉ lệ cho phép nó hoạt động như một bộ đinh thời 16 bit. Nguyeãn Thieän Thaønh 20 SVTH: Nguyeãn Uy Danh . một bộ hậu định Postscaler và một thanh ghi chu kỳ viết tắt là PR2. Xung clock ngoại sẽ được đồng bộ với xung clock nội. Motor Driver L293D : L293D là IC dùng để điều khiển cùng 1 lúc 2 động cơ nhỏ.Chế độ đếm bất đồng bộ :chế độ này xảy ra khi bit T1SYNC được set. Dòng giới hạn của L293 là 600mA.Chế độ đếm đồng bộ : trong chế độ này.

Baùo caùo ñoà aùn moân hoïc I Sơ đồ hoạt đông của L293D GVHD : TS. Nguyeãn Thieän Thaønh 21 SVTH: Nguyeãn Uy Danh .

Baùo caùo ñoà aùn moân hoïc I Bảng điều khiển các chân chức năng của L293D ENABLE High High DIRA High low DIRB low high Function Quay phải Quay trái GVHD : TS. Nguyeãn Thieän Thaønh 22 SVTH: Nguyeãn Uy Danh .

Baùo caùo ñoà aùn moân hoïc I High Low Low/high Low/high Dừng nhanh Dừng chậm Trong đồ án . Kết quả thu được khá tốt. III. từ tín hiệu mã hóa đầu vào có thể chọn được một trong 8 kênh đầu ra khác nhau (chân được chọn tích cực mức 0). DIR1B và EN1 và làm quay động cơ M1. Đây là IC có chức năng phân kênh. Các IC khác IC74LS138 Em sử dụng IC này để chọn led được hiển thị. Nguyeãn Thieän Thaønh 23 SVTH: Nguyeãn Uy Danh . Sơ đồ chân : Sơ đồ nguyên lý: GVHD : TS. em sử dụng 3 chân của PortC để điều khiển 3 chân DIR1A.

Nguyeãn Thieän Thaønh 24 SVTH: Nguyeãn Uy Danh . Sơ đồ kết nối GVHD : TS. Bảng chân trị IC74LS47: có chức năng chuyển từ BCD sang mã để hiển thị ra led 7 đoạn. Các chân G2A.Baùo caùo ñoà aùn moân hoïc I 3 chân A. Y0:Y7 là các ngõ ra. C được mã hóa để chọn kênh đầu ra. B. G2B (tích cực thấp) và G1 (tích cực cao) là các chân cho phép.

b.d. Bảng chân trị IV.f.c. Đối tượng điều khiển : Động cơ DC Đây cà động cơ em sử dụng trong đề tài : GVHD : TS.e.Baùo caùo ñoà aùn moân hoïc I Các chân A3:A0 là để đưa tín hiệu mã BCD. Các chân a. Nguyeãn Thieän Thaønh 25 SVTH: Nguyeãn Uy Danh .d là tín hiệu output mã led 7 đoạn (tích cực mức thấp).

Mỗi loại lại có một nguyên lý hoạt động khác nhau. GVHD : TS. Nguyên lý hoạt động của cảm biến encoder : có nhiều loại encoder khác nhau. Mô hình thứ 1 Incremental encoder về cơ bản là một đĩa tròn quay quanh một trục được đục lỗ như hình trên.Baùo caùo ñoà aùn moân hoïc I Bên trong động cơ có gắn một encoder đồng trục với nó dùng để xác định tốc độ và vị trí của động cơ. Các thông số của động cơ như sau: + Điện áp DC cấp cho động cơ : 24VDC + Tốc độ tối đa 4000 vòng/phút + Số xung của encoder 108xung/vòng + Điện cảm L=102mH Động cơ có tất cả 6 dây ra : + 2 dây cung cấp nguồn 24 V cho đông cơ + 2 dây nguồn 5V cung cấp áp cho encoder + 1 dây tín hiệu kênh A và 1 dây kênh A bù đưa xung encoder ra ngoài Phương pháp điều khiển : Thay đổi tốc độ động cơ bằng cách thay đổi áp cấp vào cho động cơ. Nguyeãn Thieän Thaønh 26 SVTH: Nguyeãn Uy Danh . trong khuôn khổ báo cáo đồ án I em xin trình bày phần nguyên lý loại encoder trong đề tài mà em sử dụng : incremental encoder.

Mỗi encoder được chế tạo sẽ biết sẵn số xung trên một vòng. Do đó tín hiệu nhận được từ sensor quang là một chuổi xung. Do đó ta có thể dùng vi điều khiển đếm số xung đó trong một đơn vị thời gian và tính ra tốc độ động cơ. vì có quay theo chiều nào đi nữa thì chỉ có một dạng xung đưa ra.Baùo caùo ñoà aùn moân hoïc I Ở 2 bên mặt của cái đĩa tròn đó. ta cũng không thể nào biết được. Nguyeãn Thieän Thaønh 27 SVTH: Nguyeãn Uy Danh . nếu gặp mãnh chắn thì tia sáng không chiếu quá được. mô hình trên có nhược điểm lớn là : ta không thể xác định được động cơ quay trái hay quay phải. Tuy nhiên. Cái encoder mà em sử dụng trong đồ án của mình. hoàn toàn giống với mô hình ở trên. Trong quá trình encoder quay quanh trục. nếu gặp lỗ rống thì ánh sáng chiếu qua được. Cải tiến mô hình 1 bằng mô hình 2 như sau: Mô hình thứ 2 GVHD : TS. sẽ có một bộ thu phát quang. Ngoài ra điểm bắt đầu của động cơ.

Có thể viết chương trình cho vi điều khiển nhận biết : nếu có một xung phát ra từ vòng trong cùng này. người ta đục tất cả là 2 vòng lỗ.Baùo caùo ñoà aùn moân hoïc I Trong mô hình này. vòng giữa pha so với vòng ngoài là 90 độ. tức là động cơ đã quay đúng một vòng. nếu vòng ngoài nhanh pha hơn vòng trong thì chắc chắn động cơ quay từ trái sang phải và ngược lại. Nguyeãn Thieän Thaønh 28 SVTH: Nguyeãn Uy Danh . Vòng ngoài cùng giống như mô hình 1. GVHD : TS. Một lỗ ở vòng trong cùng dùng để phát hiện điểm bắt đầu của động cơ. dạng xung ra từ 2 vòng trên như sau : Hai xung đưa ra từ 2 vòng lệch nhau 90 độ. Khi đó.

2 5 R 5 0 0 0 0 0 0 0 1 0 0 K K O U T _ 2 4 O U T _ 1 2 O U T _ 5 D 3 L E D 0 R 9 2 . đó là :absolute encoder. 7 C 2 9 2 0 0 u F / 3 5 V .Baùo caùo ñoà aùn moân hoïc I Với những đặc tính trên.Mạch nguồn 5 V chuẩn cung cấp cho vi điều khiển và nguồn 24 cung cấp cho động cơ. Sơ đồ nguyên lý J O U T _ 2 4 1 2 2 Q 2Q 2 S A 1 3 0 2 Q 3Q 2 S A 1 3 0 2 D D D I D G F F E 1 U S E C R 7 1 4 . 2 K D L 1 4 E D R 1 D 1 k 0 R 4 D D 1 1 7 0 1 6 L E D 1 5 L E GVHD : TS.. Một loại encoder thứ 2 cũng phổ biến hiện nay. Mô hình đĩa quang của loại này như sau: Chương III : Nguyên lý hoạt động của một số module trong mạch I. Nguyeãn Thieän Thaønh 29 SVTH: Nguyeãn Uy Danh . 1. encoder dùng rất phổ biến trong việc xác định vị trí góc của động cơ…. Vấn đề quan trọng trong việc tìm mua những loại động cơ có gắn encoder như thế này để làm đồ án đối với sinh viên là : cặp mắt quang 2 bên encoder để tạo xung thường bị chết và không có đồ thay thế. 1 u F 3 D 8 D 1 2 1 N 4 0 0 0 R 4 5 6 0 Q Q 2 S A 1 1 0 1 R 3 2 .2 W 1 0 0 0 u F / 5 0 V U 3 L M V I N G N D 7 8 2 4 V O U 1 N 4 0 0 7 R 2 T 4 .2 W 6 1 U 4 L M V I N G N D 7 8 1 2 V O U U 5 L M 7 V I N G N D O 8 0 5 V O U 2 T U T _ 5 1 1 0 N 4 0 0 7 D D 1 3 O U T _ 1 2 1 4 V 9 0 J 1 2 2 V 8 D D 1 J 6 1 2 2 4 V A C / 5 A 4 + 2 B 1 R 9 1 N 4 0 0 7 0 J 1 2 5 V 7 2 T 1 3 3 D 1 N 4 0 0 7 D 0 78 2 3 0 C 2 2 C 8 2 2 0 0 u F / 3 5 V 0 0 u 1 F 1 / 3 C 5 V 0 1 2 . 7 .

D15.Các IC 7824. 7812. Làm cho nguồn tương đối ổn định. . cũng như lọc nhiễu nguồn đầu ra. Led D3 dùng để báo hiệu có nguồn cung cấp ở đầu vào.Transitor công suất Q2SA1302 dùng để kéo dòng cho 2 nguồn 24 V và 12V tránh hiện tượng sụt áp trên tải do dòng yếu. R3 2. 12V và 5V ở đầu ra.Cầu diode D1 BRIDGE dùng để nắn dòng xoay chiều thành một chiều. không bị ảnh hưởng nhiều bởi tải (tải nhỏ). . .3 led D14. Giải thích nguyên lý hoạt động Từ trái sang : .2k. lần lượt ổn áp 24V. Khối mạch reset vi điều khiển PIC16F877A 1. II. R5 100k.B/ R E FR + B / C R 1 B O 6 U/ S R* / BC 7 2 / R E F 0 1 1 1 1 2 2 2 2 / / / / / / / / 1 T 1 O S O T 1 O S I / C C P 1 S C K / S S D I / S D S D O T X / C K R X / D T / C 1 3 1 4 O S S S C S S 2 / C P I C / T 1 C R D 0P C C R D 1 CR LD 2 R A D 3 R D 4 R D 5 R D 6 R D 7 L K I N R E 0 / R R E 1 / W R E 2 / C L K O U T 1 6 F 8 K / 2P / P / P / P / P / P / P / P 8 D 9 * / A N R 1 *0 / A N S * / A N 1 2 1 2 3 1 V V 1 7V 7 D A D3 V D D .Các tụ trong mạch này đều có tác dụng lọc nhiễu nguồn vào . . Q1 C1815. D16 để hiển thị có áp ở đầu ra. 7805 là 3 IC ổn áp. D14007 D12.Sơ đồ nguyên lý GVHD : TS. Khối mạch gồm các linh kiện D14007 D8. .Dùng biến áp để chuyển từ nguồn 220VAC sang 24VAC cung cấp vào module mạch nguồn trên.Baùo caùo ñoà aùn moân hoïc I 2. Nguyeãn Thieän Thaønh 30 SVTH: Nguyeãn Uy Danh HI 1 0 k 1 2 3 4 5 6 7 3 / I3 13 23 P3 C 43 53 P 4T O P 1 2 2 2 2 2 2 3 3 N4 T 5 6 G7 V8 9 G0 GU I 9 S0 S1 S2 S7 S8 S9 S0 S P P P P P P P P M R C DT 0 1 2 3 4 5 6 7 5 7 6 M R R R R R R 5 6 7 8 3 4 5 6 R R R R R R R R O C A A A A A A C C C C C C C C S 0 1 2 3 4 5 L / / / / / / 0 1 2 3 4 5 6 7 C R * / V A N 0 A N 1 A N 2 A N 3 T 0 C A N 4 P P / V / V K I / S B 0 R B R B R B 3 / R E F R .

bình thường phím nhấn hở ra. xem thử phím nào nhấn. vi điều khiển hoạt động. các chân 3. 3.1. b2: Tiến hành quét phím. lấy mã phím đó về lưu trong biến key. chân reset mức 1 ./B FR + B B O 6 U/ BC 7 2 / C 0 P 1 2 3 4 5 6 7 R W C 3 / I3 13 23 P3 C 43 53 PT 4 OP 3 N4 T 5 6 G7 M V8 R 9 G0 G U C D T P P P P P P P P 0 1 2 3 4 5 6 7 E F 1 0 k 1 0 1k 0 1 k 0 k 0 C 53 0 p 4 M 1 1 1 1 2 2 2 2 1 h z 1 T 1 O S O T 1 O S I / C C P 1 S C K / S S D I / S D S D O T X / C K R X / D T / C L K R R R I 4 O S S S C S S 2 / C P I C L K O / T 1 R D C C R D CR LD R A D R D R D R D R D N E 0 / E 1 / E 2 / U T F 8 K /2 P / P / P / P / P / P / P / P 1I 9 2 S0 2 S1 2 S2 2 S7 2 S8 2 S9 3 S0 S H A N G 3 H A N G 5 7 H H 2 8 D 9 * / A N R 1 *0 / A N S * / A N I I 6 H A N G 1 0 C 63 0 p 1 3 2 1 V V 1 6 1 1 7V 7 D A D3 2 V D D H A N G 0 0 2. Giải thuật quét phím b1: Kiểm tra có kẹt phím nào không. vi điều khiển được reset trở lại trạng thái ban đầu. GVHD : TS. Giải thích kết nối Sử dụng PORTD của vi điều khiển để thực hiển quét phím. Nguyeãn Thieän Thaønh 31 SVTH: Nguyeãn Uy Danh . Với mạch reset ở trên. chân 7 bỏ trống. Khối mạch quét phím 1.4 kết nối thành 3 cột (colums).5. chân cols là chân output.0 kết nối thành 4 hàng (rows). Thiết lập các chân rows là chân input.2.Sơ đồ nguyên lý HI 1 0 k H I 1 2 3 4 5 6 7 M R R R R R R 5 6 7 8 3 4 5 6 3 R R R R R R R R O C A A A A A A C C C C C C C C S 0 1 2 3 4 5 L R / / / / / / 0 1 2 3 4 5 6 7 C / / / / / / / / 1 * / V P P R R A N 0 A N 1 A N 2 / V A N 3 / V T 0 C K I A N 4 / S R R / C S E E R 1 R* / B 0 R B R B B 3 / F R . III. Kéo các điện trở lên nguồn ở rows để xác định đúng mức logic bên ngoài đưa vào vi điều khiển. Khi nhấn phím xuống. Các chân 6. ( thanh ghi PC trỏ địa chỉ 0000h trong bộ nhớ chương trình). Nếu không bị kẹt phím thì qua bước 2. Giải thích Vi điều khiển 16F877A hoạt động khi chân số 1 MCLR ở mức 1 và bị reset khi bị clear về mức 0. chân 1 chạm đất bị clear về 0.Baùo caùo ñoà aùn moân hoïc I 2.

Giải thuật điều khiển ON_OFF động cơ DC 1. Nguyeãn Thieän Thaønh 32 SVTH: Nguyeãn Uy Danh A + - 2 8 D 9 * / A N R 1 *0 / A N S * / A N 1 2 5 7 6 1 3 2 1 V V 1 8 7V 7 D A D3 V D D 0 .Baùo caùo ñoà aùn moân hoïc I b3: Mỗi giá trị biến key đại diện cho một phím trên bàn phím. 2. IV. Bit RC5 là bit cho phép động cơ hoạt động. GVHD : TS.A - H I E n c o d e r 1 2 3 4 N g u o n + 2 4 V H I V G C C 1 0 k 0 1 2 3 4 5 6 7 H I M R R R R R R 5 6 7 8 3 4 5 6 3 R R R R R R R R O C A A A A A A C C C C C C C C S L 0 1 2 3 4 5 0 1 2 3 4 5 6 7 C / / / / / / R * / V P P R R G G G G V V 3 1 C C 8 C 1 26 C 1 A N 0 A N 1 A N 2 / V A N 3 / V T 0 C K I A N 4 / S / / / / / / / / 1 R R / C S E E R 1 R* / B 0 R B R B B 3 / F R . 4 0 0 0 v o n g / p h u t cc N D . Sử dụng 2 bit RC6 và RC7 của PORTC vi điều khiển nối vào 2 chân 2 và 7 của L293D để điều khiển chiều quay. 1 hoặc ngược lại để xác định chiều quay của động cơ. b5 : Lặp lại bước 1 để nhấn đúng phím tiếp theo.Sơ đồ nguyên lý E n c o d e r : 1 0 8 x u n g . Giải thuật điều khiển b1: Đặt 2 bit RC6 và RC7 là 0. Bật bit RC5 lên 1 cho phép động cơ quay.A . Chân RA4 được định ở chế độ input để nhận xung từ encoder truyền về. ta đặt ra một phím hiển thị trên led mong muốn. Ứng với mỗi biến key./B FR + B BO 6 U/ BC 7 2 / /2 / / / / / / / 3 / I3 13 23 P3 C 43 53 P T4 OP 3 N4 T 13 12 5 4 5 6 G7 M V8 R 9 G0 U G 9 0 1 2 7 8 9 0 C T D P P P P P P P P 0 1 2 3 4 5 6 7 E F N N N N D D D D 9 / 4 E 1N / 2 E N 4 3 2 1 A A A A 1 1 7 2 5 0 C 53 0 M G 1 1 4 1 1 4 3 6 2 3 1 U L 2 Y Y Y Y 1 9 4 3 1 1 1 1 2 2 2 2 1 4 M h 1 z 0 p T 1 O S O T 1 O S I / C C P 1 S C K / S S D I / S D S D O T X / C K R X / D T / C L K I R R R K O 1 6 4 0 C 63 0 p O S S S C S S 2 / C P I C L / T 1 C C C P R D 0 R D 1 CR L D 2 RA D 3 R D 4 R D 5 R D 6 R D 7 N E 0 / R E 1 / W E 2 / C U T F K 1I P 2 S P 2 S P 2 S P 2 S P 2 S P 2 S P 3 S P S 1 Nối 2 chân 3 và 6 của L293D vào 2 dây nguồn của động cơ. b4: Tra bảng để đổi giá trị biến key sang mã BCD chuẩn bị đưa vào 7447 để đổi dang mã led 7 đoạn.

ta tính toán được tốc độ hiện tại của động cơ. Nguyeãn Thieän Thaønh 33 SVTH: Nguyeãn Uy Danh . Timer0 ở chế độ đếm xung từ encoder. b5: Cứ sau 1s thì hiện tốc độ của động cơ ra led 7 đoạn một lần. b6: Lặp lại liên tục quá trình trên. Cứ sau mỗi 1ms ( thời gian lấy mẫu) ngắt timer1 xảy ra. Chương IV Chương trình viết bằng Assembly điều khiển ON_OFF động cơ DC GVHD : TS. ta có tốc độ đo dao động xung quanh tốc độ đặt. nếu hiệu số nhỏ hơn 0 (cờ nhớ lên 1) thì tiến hành tắt động cơ bằng cách cho bit EN=0. b4 : Thực hiện phép trừ giữa tốc độ đặt và tốc độ đo được. trong chương trình phục vụ ngắt của timer1. tiến hành đọc xung của encoder chứa trong thanh ghi TMR0 của timer0. b3 : Từ số xung của Timer0 trong 1ms.Baùo caùo ñoà aùn moân hoïc I b2: Dùng Timer1 định thời gian 1ms. Nếu hiệu số lớn hơn 0 ( không có nhớ) thì cho động cơ tiếp tục chạy.

Nguyeãn Thieän Thaønh 34 SVTH: Nguyeãn Uy Danh .Baùo caùo ñoà aùn moân hoïc I Phần chương trình sẽ được em trình bày trong buổi bảo vệ đồ án môn học.v… sẽ được em trình bày trong bài báo cáo chính thức và trong buổi bảo vệ đồ án môn học. nhận xét v. Phụ lục: Tập lệnh PIC16F877A GVHD : TS. Các phần đánh giá chất lượng điều khiển .

Nguyeãn Thieän Thaønh 35 SVTH: Nguyeãn Uy Danh .Baùo caùo ñoà aùn moân hoïc I GVHD : TS.

Nguyeãn Thieän Thaønh 36 SVTH: Nguyeãn Uy Danh .Baùo caùo ñoà aùn moân hoïc I GVHD : TS.

Baùo caùo ñoà aùn moân hoïc I GVHD : TS. Nguyeãn Thieän Thaønh 37 SVTH: Nguyeãn Uy Danh .

Baùo caùo ñoà aùn moân hoïc I Tài liệu tham khảo 1. Nguyeãn Thieän Thaønh 38 SVTH: Nguyeãn Uy Danh . Hồ Trung Mỹ. Vi xử lý. Nhà xuất bản đại học Quốc Gia GVHD : TS.

com và các luận văn của các anh chị khóa trên. Microchip. Nhà xuất bản đại học Quốc Gia 4. từ diễn đàn www. Trương Sa Sanh (chủ biên). Nguyeãn Thieän Thaønh 39 SVTH: Nguyeãn Uy Danh . Lý Thuyết điều khiển Tự Động. Các tài liệu từ internet.picvietnam. Nhà xuất bản đại học quốc gia. GVHD : TS. Nguyễn Thị Phương Hà. Datasheet 16F877A 3.Baùo caùo ñoà aùn moân hoïc I 2. 5. Kỹ Thuật điện Đại Cương.

.. Tại sao sử dụng PIC16F877A …………………………………………………. Nguyeãn Thieän Thaønh 40 SVTH: Nguyeãn Uy Danh . 5 1. Tóm tắt đề tài đồ án môn học I ……………………………………………………………………..2. 5 I.3. Giới thiệu các module mạch của đề tài………………………………………. Tìm hiểu về vi điều khiển PIC16F877A ………………………………………. Sơ đồ nguyên lý kết nối các module trong mạch …………………… 3 3. 2 I. Sơ đồ chân và sơ đồ nguyên lý của PIC16F877A……………… 5 1.. Nhận xét ……………………………………………………………………………………………. 2 1. 4 Chương II : Giới thiệu về các linh kiện.1. 1 Chương I : Giới thiệu về đề tài…………………………………………………………………………… …………. 10 GVHD : TS. Các yêu cầu của đề tài ………………………………………………………………………… ………….Baùo caùo ñoà aùn moân hoïc I Mục lục Đề mục trang Lời cảm ơn…………………………………………………………………………………………… …………………………………….4.. 7 1. Vi điều khiển PIC16F877A ……………………………………………………………………………….1.. 3 II. 5 1. Cấu trúc phần cứng của PIC16F877A…………………………………. phần tử sử dụng trong mạch…………….. Cách vận hành mạch ……………………………………………………………………………. 8 2. 6 1. Khái quát về chức năng của các port trong vi điều khiển PIC16F877A………………………………………………………………… ………………………………….. 2 2. Khái quát về vi điều khiển PIC16F877A………………………………………. 10 2.

2. 18 II.3. …… 34 Chương IV:Chương trình viết bằng Assembly điều khiển ON_OFF động cơ DC………………………………………………………………………………………… ……………………………………… 36 Phụ lục: Tập lệnh PIC16F877A……………………………………………………………………………… ………… 37 GVHD : TS. Các vấn đề về Timer ………………………………………………………………….Bộ nhớ chương trình……………………………………………………………. Các IC khác ……………………………………………………………………………………………… ………… 24 IV... Bộ nhớ dữ liệu ………………………………………………………………………. Khối mạch reset vi điều khiển PIC16F877A…………………………………………. 32 III. Khối mạch quét phím……………………………………………………………………………………… … 33 IV.Baùo caùo ñoà aùn moân hoïc I 2.3.. Nguyeãn Thieän Thaønh 41 SVTH: Nguyeãn Uy Danh . 18 2.2.Mạch nguồn 5 V chuẩn cung cấp cho vi điều khiển và nguồn 24 cung cấp cho động cơ…………………………………………………………………………………………… ……………… 31 II. Tổ chức bộ nhớ PIC16F877a……………………………………………………… 13 2.2.4. Thanh ghi W(work) và tập lệnh của PIC16F877A………….1. 14 2.1. Motor Driver L293D ………………………………………………………………………………………… 22 III.. Giải thuật điều khiển ON_OFF động cơ DC……………………………………. Một vài thanh ghi chức năng đặc biệt SFR……………… 16 2.3.3. Tập lệnh của PIC16F877A……………………………………………… 18 2. 18 2.. Đối tượng điều khiển : Động cơ DC ………………………………………………………….2. Thanh ghi W………………………………………………………………………….2. 13 2.2. 27 Chương III :Nguyên lý hoạt động của một số module trong mạch …………… …… 31 I.

Nguyeãn Thieän Thaønh 42 SVTH: Nguyeãn Uy Danh .Baùo caùo ñoà aùn moân hoïc I GVHD : TS.

Sign up to vote on this title
UsefulNot useful