Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
LỜI MỞ ĐẦU
Trong cuộc sống hiện đại ngày nay, công nghệ kỹ thuật điện tử đã hiện diện trong hầu hết các
thiết bị con người sử dụng từ lĩnh vực dân dụng đến công nghiệp, quân sự. Hơn 60 năm từ khi
thiết bị bán dẫn đầu tiên ra đời cho đến nay đã có những bước phát triển nhanh chóng đến kinh
ngạc, đem tới sự tiện nghi đáp ứng cho cuộc sống của con người. Từ những thiết bị điện tử
đầu tiên to lớn cồng kềnh hiệu suất thấp rồi đến những chiếc máy tính bỏ túi đầu tiên trợ giúp
con người với khả năng tính toán lên đến hàng trăm ngàn phép tính trên giây cho tới hiện nay
với sự ra đời của công nghệ nano đã biến những thứ không thể thành có thể, mọi thứ như máy
tính bỏ túi, đồng hồ, máy ảnh số, chiếc điện thoại bàn… đều được tích hợp trong một chiếc
điện thoại nhỏ gọn mà người dùng có thể đem đi bất cứ nơi đâu một cách dễ dàng.
Sự phát triển vượt bậc của công nghệ điện tử dẫn đến sự ra đời của các chip vi xử lý thông
minh với mức độ tích hợp cao ứng dụng vào các dây chuyền sản xuất hiện đại. Nhiệm vụ của
con người trong các khâu sản xuất dần được giảm nhẹ bởi các hệ thống điều khiển thông minh
có khả năng tự động hóa các công đoạn cao giúp giảm giá thành nhân công, an toàn hơn trong
vận hành, điều khiển và đem lại hiệu suất làm việc cao hơn. Trong bối cảnh hiện nay, nền
công nghiệp nước ta vẫn còn khá mới mẽ trong lĩnh vực tự động hóa, hầu hết các máy móc và
công nghệ sản xuất đều phải nhập từ các quốc gia khác có nền công nghệ cao hơn, do đó chi
phí để đầu tư các hệ thống máy móc này khá đắt tiền mà nhiều doanh nghiệp vừa và nhỏ
không có đủ chi phí mua các máy móc đó. Từ thực tế trên nên tôi quyết định thực hiện đồ án “
Thiết kế hệ thống băng chuyền phân loại sản phẩm ứng dụng vi điều khiển PIC18F2550” để
tìm hiểu cơ sở lý thuyết tới hệ thống thực tiễn về một dây chuyền sản xuất cơ bản nhất làm cơ
sở để phát triển những hệ thống phức tạp và đáp ứng nhu cầu thực tế hơn sau này.
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
LỜI CẢM ƠN
Trong suốt chặng đường học vấn của mình từ cấp tiểu học, trung học, phổ thông đến bây giờ
là đại học là một chặng đường dài. Qua mỗi chặng đường là một lần em lớn lên hơn và trưởng
thành hơn trong cả kiến thức lẫn suy nghĩ của mình, trong đó chặng đường đại học là chặng
đường cuối cùng với những kiến thức quan trọng nhất và cần thiết nhất trong quãng đời học
sinh với những năm tháng học tập tiếp xúc với những cái mới và nghiên cứu về các lĩnh vực
chuyên môn, thúc đẩy tinh thần đam mê khoa học. Tất cả những thứ đó là hành trang quan
trọng trong con đường sự nghiệp của chúng em sau này.
Đây là đồ án cuối cùng trong chặng đường gần 5 năm học tập tại trường, nó cũng là dịp để em
ôn tập và cũng cố lại tất cả những kiến thức mà các thầy cô đã dạy trong những năm qua. Qua
đây em cũng gởi lời cảm ơn tới Ban giám hiệu trường Đại Học Mở Thành Phố Hồ Chí
Minh và tập thể các thầy, cô giáo tại Khoa Xây dựng và Điện trong những năm qua đã dạy
dỗ chúng em để được như hôm nay. Đặc biệt gởi lời cảm ơn tới thầy Phan Văn Hiệp đã tận
tâm hướng dẫn em hoàn thành tốt đồ án này.
Cuối cùng, xin gởi lời cảm ơn tới các bạn học đã đồng hành và giúp đỡ, góp ý cho mình trong
suốt quá trình học tập tại trường.
Tp.Hồ Chí Minh …..tháng…..năm 2012
Sinh viên thực hiện
Hồ Quốc Lợi
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
MỤC LỤC
LỜI MỞ ĐẦU
LỜI CẢM ƠN
MỤC LỤC
Chương 1: GIỚI THIỆU TỔNG QUAN ĐỀ TÀI ............................................................................... 1
1.1. Mục đích chọn đề tài....................................................................................................................... 1
1.2. Ý nghĩa thực tế ................................................................................................................................ 1
1.3. Giới hạn nghiên cứu ....................................................................................................................... 1
1.4. Yêu cầu đặt ra ................................................................................................................................. 2
1.5. Phương pháp nghiên cứu ............................................................................................................... 2
Chương 2: GIỚI THIỆU VỀ VI ĐIỀU KHIỂN PIC18F2550 ............................................................ 3
2.1. Vi điều khiển PIC18F2550.............................................................................................................. 3
2.1.1. Giới thiệu chung ............................................................................................................................. 3
2.1.2. Phân loại PIC theo ký tự ................................................................................................................ 3
2.1.3. Phân loại PIC theo dòng ................................................................................................................. 3
2.2. Các chức năng tổng quát của PIC18F2550 ................................................................................... 4
2.2.1. Mô tả chung.................................................................................................................................... 4
2.2.2. Các chức năng tích hợp trong PIC18F2550 ................................................................................... 4
2.2.3. Cấu trúc phần cứng của PIC18F2550............................................................................................. 5
2.2.4. Tổ chức bộ nhớ chương trình ......................................................................................................... 6
2.2.5. Tổ chức bộ nhớ dữ liệu .................................................................................................................. 7
2.3. Các PORT và thanh ghi của PIC18F2550..................................................................................... 8
2.3.1. Port A và các thanh ghi liên quan .................................................................................................. 9
2.3.2. Port B và các thanh ghi liên quan ................................................................................................. 11
2.3.3. Port C và các thanh ghi liên quan ................................................................................................. 12
2.3.4. Port E và các thanh ghi liên quan ................................................................................................. 14
2.4. Chức năng ngắt ngoài trong PIC18F2550................................................................................... 15
2.4.1. Giới thiệu các nguồn ngắt trong PIC18F2550 .............................................................................. 15
2.4.2. Ngắt ngoài INT0 , INT1 , INT2 ................................................................................................... 16
2.4.2.1. Ngắt ngoài INT0........................................................................................................................ 16
2.4.2.2. Ngắt ngoài INT1........................................................................................................................ 16
2.4.2.3. Ngắt ngoài INT2........................................................................................................................ 16
2.5. Tìm hiểu về chuẩn giao tiếp USB ................................................................................................. 17
2.5.1. Mô hình giao tiếp USB................................................................................................................. 18
2.5.2. Các kiểu truyền trong USB .......................................................................................................... 20
2.5.3. Giao diện vật lý USB ................................................................................................................... 20
2.5.4. Giao thức truyền ........................................................................................................................... 22
2.5.4.1. Các trường truyền thông USB ................................................................................................... 22
2.5.4.2. Các gói truyền thông USB ........................................................................................................ 23
2.5.4.3. Quá trình truyền của các kiểu truyền thông USB ...................................................................... 24
2.5.4.3.1. Truyền điều khiển................................................................................................................... 24
2.5.4.3.2. Truyền ngắt ............................................................................................................................ 25
2.5.4.4. Quá trình điểm danh các thiết bị ............................................................................................... 26
2.5.5. Module USB của PIC18F2550 ..................................................................................................... 29
Chương 3: LED 7 ĐOẠN VÀ CÁC VẤN ĐỀ LIÊN QUAN............................................................. 32
3.1. Giới thiệu LED 7 đoạn .................................................................................................................. 32
3.2. Cấu tạo LED 7 đoạn .......................................................................................................................32
3.3. Giao tiếp với LED 7 đoạn ..............................................................................................................33
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
3.3.1. Giải mã theo phương pháp dùng IC giải mã 74LS247 ................................................................. 33
3.3.1.1. Giới thiệu IC giãi mã 74LS247 ................................................................................................. 33
3.3.1.2. Sơ đồ kết nốI ............................................................................................................................. 35
3.3.2. Giãi mã LED 7 đoạn dùng vi điều khiển ...................................................................................... 35
3.3.3. Giãi mã LED 7 đoạn dùng IC 74LS247 và vi điều khiển ............................................................ 36
Chương 4: ĐỘNG CƠ MỘT CHIỀU VÀ ĐỘNG CƠ BƯỚC ......................................................... 38
4.1. Động cơ một chiều ......................................................................................................................... 38
4.1.1. Cấu tạo động cơ một chiều ........................................................................................................... 39
4.1.2. Nguyên lý hoạt động .................................................................................................................... 39
4.1.3. Điều khiển tốc độ và chiều động cơ một chiều ............................................................................ 39
4.1.3.1. Điều khiển tốc độ động cơ một chiều ....................................................................................... 40
4.1.3.2. Điều khiển chiều động cơ một chiều ......................................................................................... 41
4.2. Động cơ bước ................................................................................................................................. 42
4.2.1. Cấu tạo động cơ bước................................................................................................................... 42
4.2.2. Nguyên lý hoạt động .................................................................................................................... 42
4.2.3. Các phương pháp điều khiển động cơ bước ................................................................................. 44
4.2.4. Giao tiếp công suất với động cơ bước .......................................................................................... 46
Chương 5: TRÌNH BIÊN DỊCH PCWH NGÔN NGỮ C CHO PIC ............................................... 47
5.1. Giới thiệu chung ............................................................................................................................ 47
5.2. Cách viết một chương trình trong CCS ...................................................................................... 48
5.3. Nạp chương trình cho PIC ........................................................................................................... 54
Chương 6: TÌM HIỂU SƠ LƯỢC VỀ NGÔN NGỮ LẬP TRÌNH VB.NET .................................. 57
6.1. Giới thiệu chung ............................................................................................................................ 57
6.2. Thư viện giao tiếp USB trong VB.NET ....................................................................................... 59
Chương 7: XÂY DỰNG PHẦN MỀM ĐIỀU KHIỂN ...................................................................... 60
7.1. Phần mềm giao tiếp trên máy tính ............................................................................................... 60
7.1.1. Giải thích hoạt động ..................................................................................................................... 62
7.2. Chương trình điều khiển PIC18F2550 ........................................................................................ 62
7.2.1. Hoạt động ..................................................................................................................................... 64
Chương 8: THIẾT KẾ MÔ HÌNH VÀ BOARD ĐIỀU KHIỂN ...................................................... 67
8.1. Thiết kế mô hình............................................................................................................................ 67
8.2. Sơ đồ nguyên lý.............................................................................................................................. 69
8.2.1. Sơ đồ khối cảm biến và vi điều khiển PIC18F2550 ..................................................................... 69
8.2.2. Sơ đồ khối hiển thị LED 7 đoạn ................................................................................................... 71
8.2.3. Sơ đồ khối điều khiển động cơ ..................................................................................................... 72
8.2.4. Sơ đồ khối nguồn ......................................................................................................................... 73
8.3. Mạch in........................................................................................................................................... 74
Chương 9: MÔ PHỎNG HỆ THỐNG TRÊN PROTEUS 7.7.......................................................... 75
Chương 10: KẾT QUẢ THỰC HIỆN VÀ HƯỚNG PHÁT TRIỂN ............................................... 77
10.1. Tóm tắt đề tài ............................................................................................................................... 77
10.2. Kết quả thực hiện ........................................................................................................................ 77
10.3. Hướng phát triển ......................................................................................................................... 77
PHỤ LỤC .............................................................................................................................................. 78
TÀI LIỆU THAM KHẢO ................................................................................................................... 94
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI
1.1. Mục đích chọn đề tài
Ngày nay, với sự phát triển mạnh mẽ của các ngành khoa học kỹ thuật, công nhệ kỹ thuật điện
tử mà trong đó kỹ thuật điều khiển tự động đóng một vai trò vô cùng quan trọng và góp mặt
trong mọi lĩnh vực từ dân dụng cho tới công nghiệp… Do vậy là một sinh viên chuyên ngành
điên tử chúng ta phải biết nắm bắt và vận dụng một cách hiệu quả những kiến thức học được
để đáp ứng được nhu cầu của xã hội, nâng cao trình độ của bản thân và góp phần thúc đẩy sự
phát triển của nước nhà.
Trong quá trình đi tham quan thực tế và thực tập tốt nghiệp tôi thấy được các hệ thống máy
móc thực tế trong các xưởng sản xuất, cách thức vận hành cũng như các khâu điều khiển tự
động hóa và bên cạnh đó cũng có không ít các hệ thống điều khiển theo kiểu thủ công, nghĩa
là mỗi khâu trong đó điều phải có một hoặc nhiều công nhân đứng vận hành trực tiếp. Điều
này thứ nhất làm cho hiệu suất sản xuất không cao, quá trình sản xuất không đảm bảo tính liên
tục và tính chính xác của hệ thống mà phần nhiều do lỗi của người công nhân vận hành. Thứ
hai không đảm bảo an toàn lao động cho các công nhân vận hành do tiếp xúc trực tiếp với
bảng điều khiển mà nó có thể phát sinh các sự cố như chập điện do các nguyên nhân nào đó
không biết trước được. Thứ ba là do mỗi khâu sản xuất phải có các nhân công vận hành điều
này sẽ gây lãng phí nhân lực, từ đó chi phi sản xuất sẽ tăng cao.
Từ những ưu và khuyết điểm trên cho thấy vai trò quan trọng của việc áp dụng kỹ thuật điều
khiển tự động vào các dây chuyền sản xuất. Do đó trong đồ án này tôi chọn đề tài “Thiết kế
mô hình băng chuyền phân loại sản phẩm theo chiều cao ứng dụng vi điều khiển
PIC18F2550”. Trong mô hình này toàn bộ hệ thống sản xuất (ở đây là hệ thống băng chuyền)
sẽ được điều khiển một cách tự động thông qua máy tính ở phòng điều khiển, điều này giải
quyết được những bất lợi ở trên như quá trình sản xuất sẽ được thiết lập trước trên máy tính,
sau đó người điều khiển chỉ cần ra lệnh khởi động hệ thống sẽ hoạt động hoàn toàn tự động
theo các thiết lập đó vì vậy dây chuyền sản xuất sẽ hoạt động một cách liên tục từ đó nâng cao
hiệu suất sản xuất nhưng chỉ với một người điều khiển duy nhất. Đồng thời người vận hành
được cách ly hoàn toàn với thao tác cơ khí nguy hiểm như đã đề cập ở trên và việc điều khiển
trơ nên linh hoạt hơn và người vận hành có thể theo dõi được các trạng thái hoạt động của hệ
thống qua giao diện trực quan trên màn hình máy tính giúp kiểm soát được quá trình sản xuất.
1.2. Ý nghĩa thực tế
Mô hình này có thể áp dụng cho các dây chuyền sản xuất của các xí nghiệp vừa và nhỏ với
mức chi phí nhỏ.
1.3. Giới hạn nghiên cứu
Vi điều khiển PIC18F2550.
Động cơ một chiều.
Động cơ bước.
Giao tiếp LED 7 Đoạn.
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 1
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
Trình biên soạn và biên dịch ngôn ngữ C (CCS) dành cho vi điều khiển PIC.
Trình biên soạn VB.net cho phần mềm điều khiển trên máy tính.
1.4. Yêu cầu đặt ra
Gồm 2 băng chuyền, một băng chuyền có nhiệm vụ đưa sản phẩm thấp và cao đi, một
dùng để đưa thùng vào.
Có cảm biến để đếm sản phẩm cao, thấp, thùng.
Sử dụng động cơ bước để gạt sản phẩm cao.
Có khả năng thiết lập số sản phẩm trong một thùng hoặc số thùng qua phầm mềm điều
khiển trên máy tính thông qua giao tiếp USB và có khả năng lưu trữ dữ liệu hoạt động
trong phiên hoạt động.
1.5. Phương pháp nghiên cứu
Tìm hiểu Vi điều khiển PIC18F2550.
Tìm hiểu về LED 7 đoạn và cách thức giao tiếp.
Tìm hiểu về động cơ một chiều.
Tìm hiểu về động cơ bước.
Tìm hiểu về trình biên dịch CCS, viết chương trình, biên dịch ra file hex và nạp cho Vi
điều khiển.
Tìm hiểu sơ lược về ngôn ngữ lập trình hướng đối tượng VB.net
Thiết kế mô hình hệ thống băng chuyền và lắp đặt các sensor vào các vị trí trên mô
hình.
Thiết kế mạch in board điều khiển
Mô phỏng hoạt động của hệ thống trên máy tính sử dụng Proteus 7.7
Hoàn thiện và mô phỏng trên mô hình thật
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 2
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
CHƯƠNG 2: GIỚI THIỆU VỀ VI ĐIỀU KHIỂN PIC18F2550
2.1. Vi điều khiển PIC18F2550
Hình 2.1. Sơ đồ chân PIC18F2550
2.1.1. Giới thiệu chung
PIC là viết tắt của từ Programmable Intelligent Computer (Máy tính khả trình thông minh) do
hãng General Intrument đặt tên. Vi điều khiển đầu tiên có tên mã là PIC1650, các thế hệ sau
của dòng sản phẩm này do Microchip có trụ sở tại Mỹ tiếp tục phát triển. Các sản phẩm của
Mircochip rất đa dạng từ 10Cxxx,12Cxxx,… đến PIC16, PIC18, PIC24, PIC30, PIC33,
PIC32MX…được phân loại thành các tầng như thấp, trung, cao phù hợp với các ứng dụng từ
cơ bản tới phức tạp của người dùng.
2.1.2. Phân loại PIC theo ký tự
Nhóm OTP (One Time Programable), với đặt trưng là có ký tự “C” nằm sau mã dòng
của nó ví dụ PIC16C59,16C54... Đặc điểm của loại này là chỉ nạp chương trình được
một lần duy nhất.
Nhóm Flash, với đặt trưng là có ký tự “F” nằm sau mã dòng của nó ví dụ PIC16F88,
PIC18F2550…Đặt điểm của loại này là có thể tái nạp lại được nhiều lần do bộ nhớ
chương trình là Flash(F).Tùy theo dòng PIC mà số lần tái nạp lại khác nhau. Ví dụ với
những chip đời cũ như PIC16F84 chỉ nạp lại được 1.000 lần, với những chip đời cao
hơn hiên nay thì có thể đạt đến 10.000 lần tái nạp.
Bên cạnh đó còn có các dòng PIC sử dụng điện áp thấp (2.0V đến 5.5V) với đặt trưng
là có ký tự “LF” ví dụ như PIC16LF88…tiêu thụ năng lượng thấp hơn các PIC dòng
“F” còn tính năng thì cũng giống với các PIC cùng tên khác.
2.1.3. Phân loại PIC theo dòng
PIC được chia ra làm 3 dòng :
Dòng cơ bản (Base) gồm các họ 12Cxxx với độ dài lệnh tối đa là 12bit.
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 3
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
Dòng phổ thông (Mid-range) Gồm các họ 10Fxxx,12Fxxx,16Fxxx với độ dài tập lệnh
là 14bit.
Dòng cao cấp (High-End) từ PIC18F trở lên đến 32MX với độ dài tập lệnh 16bit và
32bit…
2.2. Các chức năng tổng quát của PIC18F2550
2.2.1. Mô tả chung
PIC18F2550 là dòng vi điều khiển nanoWatt với kiến trúc RISC, sử dụng microcode đơn giản
đặt trong ROM, tập lệnh đươc mở rộng lênh tối đa 83 lệnh so với 35 lệnh của dòng PIC cơ bản
chạy một lệnh trong một chu kỳ máy (4 chu kỳ của bộ dao động). PIC nhờ có EEPROM nên
tạo thành 1 bộ điều khiển vào ra khả trình, với hàng loạt các mô-đun ngoại vi tích hợp sẵn như
USART, PWM, ADC,USB..., với bộ nhớ chương trình là 32KWord. PIC18F2550 là dòng PIC
thuộc dòng High-end, đủ mạnh về tính năng, nhiều chân IO, bộ nhớ đủ lớn cho hầu hết các
ứng dụng thông thuờng và các ứng dụng nâng cao.
2.2.2. Các chức năng tích hợp trong PIC18F2550
Hỗ trợ chuẩn giao tiếp USB2.0 Fullspeed 12Mbit/s, với các phương thức truyền như
Control, Interrupt, Isochronous và Bulk
- Hổ trợ 32 endpoint (điểm đến).
- 1 KB bộ nhớ RAM cho USB.
32 KB bộ nhớ chương trình ROM.
2 KB SRAM, 256 Byte EEPROM.
4 PORT (A,B,C,E) với ngõ vào và ra điều khiển độc lập.
Có 4 bộ định thời (Timer).Trong đó có 1 bộ định thời 8 bit và 3 bộ định thời 16 bit.
2 module CCP(capture, Compare, PWM)
1 bộ chuyển đổi số sang tương tự (ADC) 10 bit với 10 ngõ vào đa hợp.
2 bộ so sánh tương tự (Comparator).
Hỗ trợ chuẩn giao tiếp SPI và giao tiếp I2C.
Hỗ trợ giao tiếp nối tiếp (EUSART).
Hỗ trợ chế độ Sleepmode.
Nạp chương trình bằng cổng nối tiếp ICSP (In Circuit Serial Programming).
Tần số dao động tối đa lên đến 48MHz do đó tăng tốc độ xử lý cho vi điều khiển.Ngoài
ra có thể sử dụng dao động nội bằng cách thiết lập qua phần mềm mà không cần sử
dụng thạch anh ngoài, hỗ trợ nhân tần bằng PLL(Phase Lock Loop) cho module USB.
2.2.3 Cấu trúc phần cứng của PIC18F2550
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 4
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
Hình 2.2. Sơ đồ cấu trúc phần cứng PIC18F2550
2.2.4. Tổ chức bộ nhớ chương trình của PIC18F2550
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 5
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
Hình 2.3. Sơ đồ tổ chức bộ nhớ PIC18F2550.
PIC18F2550 với bộ nhớ chương trình lên đến 32Kbyte có thể lưu trữ được tối đa 16.384 cấu
trúc lệnh (16bit) chạy từ địa chỉ 0018h tới 07FFh với 32 stack. Từ địa chỉ 8000f tới 1FFFFFh
không có hiệu lực, do đó khi người sử dụng truy cập tới các địa chỉ thuộc vùng này sẽ trả về
giá trị 0 (Read 0). Như trong sơ đồ tổ chức bộ nhớ ta thấy nó có tới 2 địa chỉ vectơ
ngắt với 2 mức độ ưu tiên là cao và thấp, điều này có nghĩa là chúng ta có thể thiết lập được
cơ cấu “ngắt trong ngắt” tức là khi thực hiện chương trình ngắt thứ nhất có mức ưu tiên thấp
hơn ngắt thứ hai, vậy khi có ngắt thứ hai xảy ra lúc đó thì con trỏ chương trình sẽ trỏ tới ngắt
có mức ưu tiên cao hơn. Đây là một cải tiến có mà không thể thực hiện được trong dòng PIC
thấp hơn.
2.2.5. Tổ chức bộ nhớ dữ liệu của PIC18F2550
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 6
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
Hình 2.4. Sơ đồ tổ chưc bộ nhớ dữ liệu PIC18F2550
Như ta thấy trên Hình 2.4 thì bộ nhớ dữ liệu (RAM) của PIC18F2550 được phân phối đêù ra
trên 8 Bank chạy từ Bank 0 tới Bank 7, mỗi bank chứ 256 byte bộ nhớ tổng cộng 8 bank có
2048 byte bộ nhớ. Trong đó khi người sử dụng có sử dụng tới chức năng giao tiếp USB thì các
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 7
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
bank từ 4 đến 7 được sử dụng cho mục đích làm bộ đệm nhớ dữ liệu cho USB. Khi không sử
dụng tới chức năng USB thì số ô nhớ này được trả tự do cho các mục đích khác. Có thể gọi
đây là bộ nhớ chia sẻ.
Khi truy cập vào các bank từ 8 đến 14 thì giá trị nhận được là 0 vi nó không hiện diện.
Bank 15 ở 4 bit cao dùng chứa giá trị các thanh ghi đặc biệt (SFR).
2.3. Các PORT và thanh ghi trong PIC18F2550
Hình 2.5. Các thanh ghi PIC18F2550
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 8
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
2.3.1. PORTA và các thanh ghi liên quan
Bảng 2.1. Bảng chức năng các chân trong PORTA
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 9
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
Port A gồm có 7 chân từ chân A0 tới A6. Ngoài chức năng xuất nhập dữ liệu số các chân này
còn được đa hợp với các module khác như ADC, Comparator, Timer 0, External USB
tranceiver và riêng chân A6 mặc định là ngõ vào thứ 2 của thạch anh ngoài.
Để thiết lập các chân này nhận hoặc xuất dữ liệu số (I/O) cần thiết lập trên thanh ghi
TRISA, nếu cấu hình chân nhập thì set là “1”, nếu cấu hình chân xuất thì set là “0”.
Ngoài ra để cấu hình sử dụng các module khác ta chỉ cần set các bit trong các thanh ghi
tương ứng với chức năng ở chân đó. Các bit này được cho trong bảng sau :
Bảng 2.2. Bảng cấu hình bit cho các chức năng mở rộng trên PORTA
2.3.2. PORTB và các thanh ghi liên quan
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 10
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
Bảng 2.3. Bảng chức năng các chân trong PORTA
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 11
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
Bảng 2.4. Bảng chức năng các chân trong PORTA (Tiếp theo)
Port B gồm có 8 chân từ chân B0 tới B7. Ngoài chức năng xuất nhập dữ liệu số các chân này
còn được đa hợp với các module khác như 3 module ngắt ngoài (External Interrupt) INT0,
INT1,INT2, module giao tiếp I2C, ADC, External USB tranceiver, module CCP2 (Capture,
Compare, PWM), ngắt onchange (xảy ra khi có bất kỳ thay đổi nào trên các chân từ RB4 đến
RB7.Riêng 2 chân RB6, RB7 còn là 2 chân giao tiếp ICSP(In-Circuit Serial Programming)
dùng để nạp file hex vào PIC.
Để thiết lập các chân này nhận hoặc xuất dữ liệu số (I/O) cần thiết lập trên thanh ghi
TRISA, nếu cấu hình chân nhập thì set là “1”, nếu cấu hình chân xuất thì set là “0”.
Ngoài ra để cấu hình sử dụng các module khác ta chỉ cần set các bit trong các thanh ghi
tương ứng với chức năng ở chân đó. Các bit này được cho trong bảng sau :
Bảng 2.5. Bảng cấu hình bit các chức năng mở rộng trên PORTB
2.3.3. PORTC và các thanh ghi liên quan
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 12
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
Bảng 2.6. Bảng chức năng các chân trong PORTC
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 13
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
Bảng 2.7. Bảng chức năng các chân trong PORTC (Tiếp theo)
Port C gồm có 7 chân từ chân C0 tới C2 và chân C4 tới C7, không có chân C3. Ngoài chức
năng xuất nhập dữ liệu số các chân này còn được đa hợp với các module khác như 2 module
định thời (Timer 1 và Timer 3), module CCP1 (Capture, Compare, PWM), một module truyền
thông nối tiếp (EUSART).
Để thiết lập các chân này nhận hoặc xuất dữ liệu số (I/O) cần thiết lập trên thanh ghi
TRISA, nếu cấu hình chân nhập thì set là “1”, nếu cấu hình chân xuất thì set là “0”. Cần chú ý
đối với chân C4 và C5 sẽ không có hiệu lực đối với lệnh set TRISC do 2 chân này chỉ dùng
cho truyền thông USB (Universal Serial Bus) do đó chỉ còn lại 5 chân có chức năng xuất nhập.
Ngoài ra để cấu hình sử dụng các module khác ta chỉ cần set các bit trong các thanh ghi
tương ứng với chức năng ở chân đó. Các bit này được cho trong bảng sau :
Bảng 2.8. Bảng cấu hình các chức năng mở rộng trên PORTC
2.3.4. PORTE và các thanh ghi liên quan
Bảng 2.9. Bảng chức năng các chân trong PORTE
Đối với PIC18F2550 PORT E chỉ có duy nhất 1 chân là RE3, chân này chỉ có chức năng nhập,
không có chức năng xuất. Mặc đinh nó là chân RESET(MCLR) của PIC, để RE3 là một chân
nhập thì ta phải cấu hình trong Configbit ở bit MCLRE = 0. Ngoài ra đây là chân Vpp chỉ sử
dụng khi ta nạp file hex và vi điều khiển.
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 14
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
2.4. Chức năng ngắt ngoài trong PIC18F2550
2.4.1. Giới thiệu về các nguồn ngắt trong PIC18F2550
Hình 2.6. Cấu trúc phần cứng các nguồn ngắt trong PIC18F2550
PIC18F2550 có tất cả 21 nguồn ngắt như ta thấy trên hình trên. Đặt biệt trong dòng
PIC18Fxxx trở đi có bổ sung tính năng ngắt ưu tiên, ngắt nào có mức ưu tiên cao hơn thì sẽ
được ưu tiên phục vụ trước trong trường hợp 2 ngắt xảy ra cùng lúc. Ddieuf này đặc biệt có lợi
khi trong một công việc nào đó khi có 1 công việc trong ngắt được thực thi mà công việc kia
quan trọng hơn thì sẽ ưu tiên tạm dừng ngắt hiện tại lại và nhảy và ngắt ưu tiên khi xong lại
quay trở về công việc đang dang dở.
Để sử dụng các ngắt trên ta phải cho phép ngắt toàn cục tức bit GIE(Global Interrupt
Enable) = 1. Sau đó set các bit cho phép của các nguồn ngắt cần sử dụng ví dụ như bit
INT0IE,TMR0IE…
Trong đồ án này ta chỉ để đếm sản phẩm nên tôi ta sẽ tập trung vào phân tích cũng như
cách thức sử dụng của ngắt ngoài trong PIC18F2550.
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 15
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
PIC18F2550 tích hợp 3 module ngắt ngoài INT0, INT1, INT2 sau đây chúng ta sẽ đi vào
phân tích các ngắt này.
2.4.2. Ngắt ngoài INT0, INT1, INT2
Bảng 2.10. Thanh Ghi INCON
Bảng 2.11. Thanh Ghi INCON2
Bảng 2.12. Thanh Ghi INCON3
2.4.2.1. Ngắt ngoài INT0
Các bít liên quan tới ngắt ngoài INT0:
Bit INT0IF : Cờ ngắt 0, khi sử dụng cần set bit này về 0, khi có ngắt xảy ra bit này
được set lên 1 và nhờ vào bit này mà ta xác định được khi nào có ngắt xảy ra
Bit GIE : Bit cho phép ngắt toàn cục, để sử dụng các ngắt thì bit này phải được set lên
1, 0 nếu không cho phép xảy ra tất cả các ngắt.
Bit INT0IE : Bit cho phép ngắt ngoài 0, 1 cho phép, 0 không cho phép.
Bit INTEDG0 : Bit chon cạnh lên hoặc xuống khi có xung ngoài. 1 nếu chọn xung từ
thấp lên cao, 0 nếu chọn cạnh từ cao xuống thấp.
Đối với ngắt ngoài 0 thì mặc định ở ngắt ưu tiên cao nên không có bit INT0IP.
2.4.2.2. Ngắt ngoài INT1
Các bít liên quan tới ngắt ngoài INT1:
Bit INT1IF : Cờ ngắt 1, khi sử dụng cần set bit này về 0, khi có ngắt xảy ra bit này
được set lên 1 và nhờ vào bit này mà ta xác định được khi nào có ngắt xảy ra
Bit GIE : Bit cho phép ngắt toàn cục, để sử dụng các ngắt thì bit này phải được set lên
1, 0 nếu không cho phép xảy ra tất cả các ngắt.
Bit INT1IE : Bit cho phép ngắt ngoài 0, 1 cho phép, 0 không cho phép.
Bit INTEDG1 : Bit chon cạnh lên hoặc xuống khi có xung ngoài. 1 nếu chọn xung từ
thấp lên cao, 0 nếu chọn cạnh từ cao xuống thấp.
Bit INT1IP : Bit cho phép cài đặt mức ưu tiên, 1 nếu ưu tiên cao, 0 nếu ưu tiên thấp.
2.4.2.2. Ngắt ngoài INT2
Các bít liên quan tới ngắt ngoài INT2:
Bit INT2IF : Cờ ngắt 2, khi sử dụng cần set bit này về 0, khi có ngắt xảy ra bit này
được set lên 1 và nhờ vào bit này mà ta xác định được khi nào có ngắt xảy ra
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 16
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
Bit GIE : Bit cho phép ngắt toàn cục, để sử dụng các ngắt thì bit này phải được set lên
1, 0 nếu không cho phép xảy ra tất cả các ngắt.
Bit INT2IE : Bit cho phép ngắt ngoài 0, 1 cho phép, 0 không cho phép.
Bit INTEDG2 : Bit chon cạnh lên hoặc xuống khi có xung ngoài. 1 nếu chọn xung từ
thấp lên cao, 0 nếu chọn cạnh từ cao xuống thấp.
Bit INT2IP : Bit cho phép cài đặt mức ưu tiên, 1 nếu ưu tiên cao, 0 nếu ưu tiên thấp.
2.5. Tìm hiểu về USB
Cổng USB (Universal Serial Bus) thực chất là một bus nối tiếp được phát triển bởi một nhóm
các công ty Compaq, DEC, IBM, Intel, Microsoft, NEC và Nortel. Ý tưởng là thiết kế ra một
cổng có thể dể dàng kết nối với các thiết bị khác nhau. USB được phát triển qua các phiên bản
sau :
USB 1.0 : Được phát triển năm 1996, là phiên bản đầu tiên, tốc độ truyền dữ liệu với
máy tính đạt
USB 1.1 : Được phát triển năm 1997. Thừa hưởng và phát triển từ USB 1.0, bên cacnhj
các tính năng như của USB 1.0 thì còn hỗ trợ 2 tốc độ 12Mbit/s (Fullspeed), 1.5Mbit/s
(Slowspeed)
USB 2.0 : Được giới thiệu năm 2000, tương thích với các thiết bị trước và còn thêm hỗ
trợ truyền với tốc độ cao 480Mbit/s (High-speed). Tháng 12/2000 công ty ECN đưa ra
chuẩn đầu nối mới kiểu B
USB 3.0 : Ra đời năm 2008 với tốc đọ có thể gấp hàng chục lần so với phiên bản
USB2.0.
Với các máy tính sản xuất gần đây đều được trang bị giao tiếp USB cho phép kết nối dễ dàng
tới các thiết bị như, máy in, điện thoại di động, camera, các thiết bị đo lường…
Về mặt phần mềm thì từ phiên bản windows 95 đã có một số hỗ trợ cho USB, đến phiên
bẩn windows XP trở đi thì USB đã được hỗ trợ hầu như toàn diện giúp cho việc giao tiếp này
trở nên dễ dàng và tiện lợi. Một số đặc điểm của USB :
Dễ dàng sử dụng : không phải quan tâm nhiều tới các cài đặt và thiết lập chi tiết.
Điều khiển dữ liệu thông qua bộ đệm bằng việc quarnlys giao thức đặt sẳn bên
trong.
Nhanh : không bị hiện tượng “thắt cổ chai” đối với các thiết bị giao tiếp chậm.
Tin cậy : do ít xảy ra lỗi do có cơ chế xử lí lỗi.
Mềm dẻo : Có thể kết nối nhiều loại thiết bị với loại kết nối này.
Cung cấp nguồn trên bus, điều này rất tiện lợi với các thiết bị xách tay nhỏ.
Được hỗ trợ bởi hệ thống : khi căm thiết bị mới vào máy tính thì hệ thống sẽ tự
động tìm driver và cài đặt, đặc tính này còn được gọi là Plug and Play (PnP) mà
các chuẩn giao tiếp khác như RS232, LTP không có được.
Kết nối nhiều thiết bị : Có thể kết nối đến 127 thiết bị có cấu hình và tốc độ khác
nhau trên một bus USB.
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 17
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
Bảng 2.13. Bảng so sánh các chuẩn giao tiếp
2.5.1. Mô hình USB
Cấu trúc cơ bản của USB là các tầng hình sao. Một hệ thống USB là hệ thống bao gồm nhiều
thiết bị ngoại vi, một hay nhiều HUB và một chủ (HOST CONTROLLER) duy nhất thường là
máy tính. Chủ điều khiển chặt chẻ và kết nối với Root Hub để mở rộng các diển nối đến chủ.
Từ Root Hub sẽ kết nối tới nhiều thiết bị hoặc các Hub khác. Hub là các thiết bị dùng để mở
rộng các cổng, một Hub bao gồm một Upstream kết nối đến chủ và vài downstream kết nối
đến các thiết bị bên ngoài.
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 18
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
Hình 2.7. Mô hình cấu trúc giao tiếp USB
Máy chủ HOST sẽ liên tục hỏi vòng các Hub, khi một thiết bị được cắm vào bus, Hub sẽ báo
cho HOST biết có thiết bị được cắm vào, HOST sẽ đưa ra lệnh cho phép và thiết lập lại cổng
đó sau đó nó HOST sẽ gởi một yêu cầu về một bảng mô tả thiết bị. Từ bảng môt tả nhận được
HOST sẽ biết được các yêu cầu, trạng thái, loại thiết bị và lớp, hỗ trợ nếu có của thiết bị.
HOST sẽ gán cho thiết bị đó một địa chỉ duy nhất và gọi phần mềm điều khiển cho thiết bị.
Độ với các thiết bị được hỗ trợ driver trong hệ thống chúng thường được xếp chung vào một
lớp. Khi nhận được một khai báo lớp từ một thiết bị nào đó,hệ thống sẽ gọi drver điều khiển
thiết bị mà không cần nạp thêm driver cho thiết bị nữa. Ví dụ như khi cắm một thiết bị thuộc
lớp HID (Human Interface Device) khi đó hệ thống sẽ tự động nạp driver để điều khiển cho
thiết bị đó.
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 19
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
Bảng 2.14. Bảng các lớp thiết bị window hỗ trợ
2.5.2. Các kiểu truyền trong USB
Dữ liệu giao tiếp trong USB sử dụng một trong 4 kiểu truyền: truyền ngắt, truyền điều khiển,
truyền khối và truyền đồng bộ.
Truyền điều khiển (Control Transfer) : Thường sử dụng để cài đặt phần cứng và đưa ra
các lệnh điều khiển thiết bị. Kiểu này được thực hiện ở mức ưu tiên cao với khả năng
tự động kiểm soát lỗi, mỗi gói truyền có thể lên tới 64byte.
Truyền ngắt (Interrupt Transfer) : Sử dụng cho các thiết bị trao đổi với máy tính với
lượng dữ liệu nhỏ và tuần hoàn như chột, bàn phím. Không giống như cơ chế ngắt mà
ơ đây HOST sẽ hỏi vòng liên tục theo chu kỳ xem có thiết bị nào gởi dữ liệu tới không.
Thường thì dữ liệu gởi tới HOST 8 byte dữ liệu cho một lần truyền.
Truyền khối (Bulk Transfer) : Khi có lượng dữ liệu lớn cần truyền và kiểm soát lỗi và
không có yêu cầu thúc ép về mặt thời gian thì thường dùng kiểu này, các thiết bị
thường dùng trong kiểu này như máy in, máy quét.
Truyền đồng bộ (Isochronous Transfer) : Khi dữ liệu cần truyền lớn với quy định về
mặt thời gian ví dụ như card âm thanh thì thường dùng kiểu truyền này. Theo cách
truyền này thì giá trị tốc độ dữ liệu truyền được duy trì. Việc kiểm tra lỗi không được
thực hiên trong kiểu truyền này do các lỗi lẻ tẻ không ảnh hưởng đáng kể tới chất
lượng truyền này.
2.5.3. Giao diện vật lý bus USB
Bus USB có hai kiểu đầu nối thông dụng là kiểu A và B. Khác với chuẩn giao tiếp RS232 là
đấu nối ở USB không phân chia các kiểu nối nư bắt chéo hay không bắt chéo. Nó gồm một
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 20
Đồ án tốt nghiệp kỹ sư công nghiệp
GVHD : Ths. Phan Văn Hiệp
cáp 4 dây trong đó hai dây xoắn nhau dùng làm dữ liệu vi sai (D+ và D-), còn hai dây nguồn là
5V và GND với dòng cung cấp tối đa là 500mA/cổng.
Hình 2.8. Thứ tự chân và đấu nối của cáp USB
Bảng 2.9. Hình dáng thực tế của các jack cắm USB
Ngoài 2 kiểu chân cắm A, B còn có dạng mini jack tường dùng cho các thiết bị nhỏ như điện
thoại di động.
Lưu ý là các cáp sử dụng cho các thiết bị được nhà sản xuất tính toán phù hợp cho với
tốc độ của thiết bị đó. khi sử dụng cáp tốc độ thấp cho thiết bị có tốc độ cao sẽ không tận dụng
được hết tốc độ đó được.
SVTH : Hồ Quốc Lợi
MSSV : 0851030042
Trang 21