blogg_trang

New Member
Tải Thiết kế hệ thống thước đo tuyến tính

Download miễn phí Thiết kế hệ thống thước đo tuyến tính


MỤC LỤC

LỜI MỞ ĐẦU. 3
Chương 1. 5
TỔNG QUAN VỀ VI ĐIỀU KHIỂN. 5
1.1. Sơ lược về vi xử lý và vi điều khiển. 5
1.2. Tổng quan về PIC16F877A 9
1.2.1 Hình dạng và bố trí chân của Pic16F877A. 9
1.2.2. Đặc tính nổi bật của bộ xử lý. 10
1.2.3. Sơ đồ khối bộ vi điều khiển Pic16F877A. 10
1.2.4. Mô tả các chân chức năng của Pic16F877A. 11
1.2.5. Tổ chức bộ nhớ. 14
1.2.6. Đọc và ghi vào bộ nhớ dữ liệu EEPROM. 20
1.2.7. Đọc và ghi chương trình FLASH. 20
1.2.8. Cổng vào ra. 20
1.2.9. Các bộ Timer của chip. 26
1.2.10. Bộ chuyển đổi tương tự sang số. 35
1.2.11. Các ngắt của PIC16F877A. 37
1.3. So sánh với Vi Điều Khiển 8051. 38
Chương 2. 40
THIẾT BỊ HIỂN THỊ LCD. 40
2.1. Hình dáng kích thước. 40
2.2. Các chân chức năng. 41
2.3. Sơ đồ khối của HD44780. 42
2.4. Tập lệnh của LCD. 48
2.5. Đặc tính của các chân giao tiếp. 54
CHƯƠNG 3. 56
THIẾT KẾ HỆ THỐNG THƯỚC ĐO TUYẾN TÍNH 56
3.1. Sơ đồ khối của hệ thống: 56
3.2. Thiết kế các khối 57
3.2.1. Khối nguồn: 57
3.2.2 Hệ thống thước: 58
3.2.3. Bộ vi xử lý. 59
3.2.4. Khối hiển thị 61
3.3. Sơ đồ mạch chi tiết: 62
3.4. Thuật toán. 62
3.5. Chương trình : 64
3.6. Sơ đồ mạch in: 66
Kết luận. 67
Tài liệu tham khảo. 68


LỜI MỞ ĐẦU Ngày nay, kĩ thuật điện tử được áp dụng hết sức rộng rãi trong nhiều lĩnh vực khoa học công nghệ và đời sống, đặc biệt là trong việc tự động hóa. Việc cho phép xác định toạ độ để điều khiển định vị cho các đối tượng dịch chuyển, cụ thể được ứng dụng như trong hàn tự động, dùng trong việc sản xuất dây truyền như công nghệ đóng hộp các loại , hay còn được sử dụng để đo mức, báo hiệu độ sâu, độ cạn của chất lỏng.
Qua đó chúng ta thấy được sự quan trọng của vi điều khiển, các loại cảm biến trong đo lường. Nhờ việc sử dụng những linh kiện điện tử này chúng ta có thể thu thập được các đại lượng cần đo dễ dàng hơn và có thể xử lý ngay các đại lượng đó và đưa ra những kết quả mong muốn, đây cũng là nội dung mà em trình bày trong đề tài của mình.
Đề tài của em là “ Thiết kế hệ thống thước đo tuyến tính”. Trong hệ thống em sử dụng bộ vi điều khiển 8 bit PIC16F877A, cảm biến để xác định hướng chuyển động theo chu trình có cả tiến và lùi. Sau đó, kết quả được hiển thị lên LCD HD44780.
Đồ án của em gồm 3 chương:
Chương 1. Tổng quan về vi điều khiển.
Chương 2. Giới thiệu về LCD HD44780.
Chương 3. Thiết kế hệ thống thước đo tuyến tính.
Trong quá trình làm đồ án tốt nghiệp, do hạn chế về thời gian, tài liệu cũng như trình độ có hạn nên không tránh khỏi có thiếu sót. Em rất mong được sự giúp đỡ của nhà trường, của thầy cô trong hội đồng và các bạn để đồ án tốt nghiệp của em được hoàn thiện hơn.
Em xin gửi lời Thank chân thành đến nhà trường cùng các thầy cô trong khoa Điện-Điện tử, đặc biệt là thầy Nguyễn Văn Dương đã giúp đỡ em hoàn thành tốt đồ án này.


Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

g 5/2004, họ vi điều khiển này được phát triển và đưa ra thị trường bởi IBM, bao gồm:
403 PowerPC CPU
PPC 403GCX
405 PowerPC CPU
PPC 405EP
PPC 405GP/CR
PPC 405GPr
PPC NPe405H/L
440 PowerPC Book-E CPU
PPC 440GP
PPC 440GX
PPC 440EP/EPx/GRx
PPC 440SP/SPe
+ Họ vi điều khiển Atmel:
Dòng Atmel AT91 (Kiến trúc ARM THUMB)
Dòng AT90, Tiny & Mega – AVR (Atmel Norway design)
Dòng Atmel AT89 (Kiến trúc Intel 8051/MCS51)
Dòng MARC4
+ Họ vi điều khiển Freescale Semiconductor:
Năm 2004, những vi điều khiển này được phát triển và tung ra thị trường bởi Motorola.
Dòng 8-bit
68HC05 (CPU05)
68HC08 (CPU08)
68HC11 (CPU11)
Dòng 16-bit
68HC12 (CPU12)
68HC16 (CPU16)
Freescale DSP56800 (DSPcontroller)
Dòng 32-bit
Freescale 683XX (CPU32)
MPC500
MPC 860 (PowerQUICC)
MPC 8240/8250 (PowerQUICC II)
MPC 8540/8555/8560 (PowerQUICC III)
+ Họ vi điều khiển Intel
Dòng 8-bit
8XC42
MCS48
MCS51
8061
8xC251
Dòng 16-bit
80186/88
MCS96
MXS296
Dòng 32-bit
386EX
i960
+ Họ vi điều khiển Microchip
12-bit instruction PIC
14-bit instruction PIC
PIC16F84
16-bit instruction PIC
Trong đó họ vi điều khiển Microchip được ứng dụng phổ biến nhất, đặc biệt là PIC16F877A được tích hợp thêm những thành phần mới như bộ chuyển đổi A/D 10 bits, và lập trình phần mềm điều khiển cũng đơn giản hơn, nên trong đề tài này em sử dụng PIC16F877A. Dưới đây em xin trình bày về PIC16F877A.
1.2. Tổng quan về PIC16F877A
PIC16F877A là chữ viết tắt của “Programmable Intelligent Computer” (máy tính khả trình thông minh), là dòng vi điều khiển phổ biến nhất được sử dụng, giá thành phù hợp, có nhiều chức năng, và hỗ trợ gần như toàn bộ chức năng của một bộ vi điều khiển hiện đại.
1.2.1 Hình dạng và bố trí chân của Pic16F877A.
Hình 1.1. Hình dạng Pic16F877A.
1.2.2. Đặc tính nổi bật của bộ xử lý.
Sử dụng công nghệ tích hợp cao RICSC CPU.
Người sử dụng có thể lập trình với các câu lệnh đơn giản.
Tất cả các câu lệnh thực hiện trong 1 chu kì ngoại trừ một số lệnh rẽ nhánh thực hiện trong 2 chu kì.
Tốc độ hoạt động là : - Xung đồng hồ vào là DC-20MHz.
- Chu kì lệnh thực hiện trong 200ns.
Bộ nhớ chương trình Flash 8Kx14 Words.
Bộ nhớ Ram 368x8 bytes.
Bộ nhớ EFPROM 256x8 bytes.
1.2.3. Sơ đồ khối bộ vi điều khiển Pic16F877A.
Hình 1.2. Sơ đồ khối của Pic16F877A.
1.2.4. Mô tả các chân chức năng của Pic16F877A.
Bảng 1.1. Bảng chân chức năng của Pic16F877A.
Tên chân
Chân số
Là chân
Chức năng của chân
OSC1/CLKIN
13
I
Đầu vào của dao động thạch anh/ngõ vào xung clock ngoại.
OSC2/CLKOUT
14
O
Đầu ra của bộ dao động thạch anh. Nối với thạch anh hay cộng hưởng trong chế độ dao động của thạch anh. Trong chế độ RC, ngõ ra của chân OSC2
MCLR /VPP
1
I/P
Ngõ vào của Master Clear (Reset) hay ngõ vào điện thế được lập trình. Chân này cho phép tín hiệu RESET thiết bị tác động ở mức thấp.
RA0/AN0
RA1/AN1
RA2/AN2/VREF –
RA3/AN3/VREF +
RA4/T0CKI
RA5/ SS /AN4
2
3
4
5
6
7
I/O
I/O
I/O
I/O
I/O
I/O
PORTA là port vào ra hai chiều.
RA0 có thể làm ngõ vào tương tự thứ 0.
RA1 có thể làm ngõ vào tương tự thứ 1.
RA2 có thể làm ngõ vào tương tự thứ 2 hay điện áp chuẩn tương tự âm.
RA3 có thể làm ngõ vào tương tự thứ 3 hay điện áp chuẩn tương tự dương.
RA4 có thể làm ngõ vào xung clock cho bộ định thời Timer0. hay làm đầu ra.
RA5 có thể làm ngõ vào tương tự thứ 4 hay làm đầu ra.
RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD
33
34
35
36
37
38
39
40
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
PORTB là port vào ra hai chiều.
RB0 có thể làm chân ngắt ngoài.
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SC
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT
15
16
17
18
23
24
25
26
I/O
I/O
I/O
I/0
I/O
I/O
I/O
I/O
PORTC là port vào ra hai chiều.
RC0 có thể là ngõ ra của bộ dao động Timer1 hay ngõ vào xung clock cho Timer1.
RC1 có thể là ngõ vào của bộ dao động Timer1 hay ngõ vào Capture2/ngõ ra compare2/ngõ ra PWM2.
RC2 có thể là ngõ vào Capture1/ngõ ra compare1/ngõ vào PWM1.
RC3 có thể là ngõ vào xung clock đồng bộ nối tiếp/ngõ ra trong cả hai chế độ SPI và I2C.
RC4 có thể là dữ liệu bên trong SPI (chế độ SPI) hay dữ liệu I/O (chế độ I2C).
RC5 có thể là dữ liệu ngoài SPI (chế độ SPI).
RC6 có thể là chân truyền không đồng bộ USART hay đồng bộ với xung đồng hồ.
RC7 có thể là chân nhận không đồng bộ USART hay đồng bộ với dữ liệu.
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
19
20
21
22
27
28
29
30
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
PORTD là port vào ra hai chiều hay là parallel slave port khi giao tiếp với bus của bộ vi xử lý.
RE0/ RD/AN5
RE1/WR /AN6
RE2/CS /AN7
8
9
10
I/O
I/O
I/O
PORTE là port vào ra hai chiều.
RE0 có thể điều khiển việc đọc parallel slave port hay là ngõ vào tương tự thứ 5.
RE1 có thể điều khiển việc ghi parallel slave port hay là ngõ vào tương tự thứ 6.
RE2 có thể điều khiển việc chọn parallel slave port hay là ngõ vào tương tự thứ 7.
VSS
11, 32
P
Mass
VDD
12, 31
P
Cung cấp nguồn dương cho các mức logic và những chân I/O.
Các kí hiệu: I: input O: output I/O:input/output P: power.
1.2.5. Tổ chức bộ nhớ.
Pic16F877A có 3 khối bộ nhớ: Bộ nhớ chương trình Flash, bộ nhớ dữ liệu RAM, bộ nhớ EEPROM.
1.2.5.1. Tổ chức bộ nhớ chương trình Flash.
Vi điều khiển Pic16F877A có bộ nhớ chương trình 13 bit và có 8Kx14 từ mã của bộ nhớ chương trình Flash, được chia thành 4 trang mỗi trang 2Kx14 từ mã.
Khi Reset địa chỉ bắt đầu thực hiện chạy là 0000h, vector ngắt bắt đầu từ 0004h.
Stack có 8 mức dùng để lưu địa chỉ lệnh thực hiện tiếp theo sau lệnh CALL và khi xẩy ra ngắt. Xem hình 1.3.
0000H
0004H
0005H
07FFH
0800H
0FFFH
17FFH
1800H
1FFFH
On_chip
Program
memmory
PC
Stack level 1
Stack level 2
Stack level 8
Stack level 8
Reset vector
Interput vecto
Page0
Page1
Page2
Page3
Hình 1.3. Bản đồ bộ nhớ chương trình và các ngăn xếp.
1.2.5.2. Tổ chức bộ nhớ dữ liệu RAM.
RAM là bộ nhớ có thể đọc/ghi, nó không lưu dữ liệu khi mất điện, bộ nhớ RAM của Pic16F877A có 4 Bank, mỗi Bank có dải địa chỉ 0-7FH (128 byte) trên các Bank những thanh ghi đa mục đích, nó hoạt động như một RAM tĩnh và những thanh ghi chức năng đặc biệt ở vùng địa chỉ thấp.
Các Thanh ghi đa mục đích (General Purpose Register), các thanh ghi này được truy cập bằng cả hai cách trực tiếp hay gián tiếp qua thanh ghi FSR, tổng cộng có 368 bytes.
Các thanh ghi chức năng đặc biệt: các thanh ghi này được dùng bởi CPU và các khối ngoại vi để điều khiển sự hoạt động theo yêu cầu của thiết bị. Các thanh ghi này có thể phân loại vào bộ phận trung tâm (CPU) và ngoại vi.
Các thanh ghi trạng thái STATUS: có 4 thanh ghi trạng thái trên 4 dãy, tại các địa chỉ 03h, 83h, 103h, 108h. Các thanh này cho biết trạng thái của phần tử logic toán học ALU, trạng thái Reset, trạng thái của các bít lựa chọn dãy thanh ghi cho bộ nhớ dữ liệu.
Hình 1.4. Hình ảnh các Bank.
Thanh ghi trạng thái có thể là kết quả của một số lệnh như là với một số thanh ghi khác. Nếu thanh ghi trạng thái là kết quả bởi một lệnh mà tác động đến các bít Z, DC, C thì việc ghi vào các bit này là không thể.
Các thanh ghi lựa chọn OPTION_REG: có hai thanh ghi lựa chọn tại các địa chỉ 81h và 181h, các thanh ghi này có thể đọc hay ghi, nó chứa đựng nhiều bit điều khiển khác nhau để xác định hệ số định trước TMR0, hệ số định sau WDT, ngắt n...
 

Các chủ đề có liên quan khác

Top