LỜI MỞ ĐẦU Có thể nói, hiện nay vi điều khiển đã rất phổ biến ở Việt Nam , đã và đang đươc ứng dụng rất nhiều .Ngày nay , những tiến bộ trong công nghệ bán dẫn đã thúc đẩy sự phát triển
Trang 1LỜI CẢM ƠN
Trước tiên tôi xin gửi lời cảm ơn đến các thầy, cô giáo Trường Đại Học Mở TPHCM, Ngành Điện - Điện tử đã nhiệt tình giảng dạy và truyền đạt những kiến thức, kinh nghiệm quí giá trong suốt bốn năm trên giảng đường đại học
Tôi xin gửi lời cảm ơn sâu sắc đến THS Trần Quang Thuận, Thầy đã tận tình hướng dẫn, cung cấp tài liệu và nhiều thông tin bổ ích trong suốt thời gian thực hiện đồ án này
Tôi xin gửi lời cảm ơn đến tập thể lớp CN08B1, những người đã cùng học tập và chia
sẽ nhiều kiến thức cùng nhau trong suốt thời gian qua
Cám ơn gia đình đã luôn ở bên và động viên tôi trong suốt thời gian qua
Một lần nữa xin gửi lời cảm ơn chân thành và sâu sắc
TP.HCM , tháng 1 năm 2013 Sinh viên thực hiện
Nguyễn Minh Giàu
Trang 2LỜI MỞ ĐẦU
Có thể nói, hiện nay vi điều khiển đã rất phổ biến ở Việt Nam , đã và đang đươc ứng dụng rất nhiều Ngày nay , những tiến bộ trong công nghệ bán dẫn đã thúc đẩy sự phát triển không ngừng của ngành công nghiệp tự động , các quá trình điều khiển tự động hóa và điều khiển thời gian thực đã đặt ra yêu cầu rất lớn về việc trao đổi dữ liệu giữa các hệ thống hay giữa bộ phận trong cùng hệ thống
Với đề tài giao tiếp PIC với máy tính qua USB để điều khiển khối LED 3D sẽ giúp ta
có cái nhìn tổng quát về chức năng của vi điều khiển cũng như giúp ta tìm hiểu thêm về phần giao tiếp máy tính từ đó có những ứng dụng cao hơn trong lĩnh vực điều khiển tự động
Trang 3MỤC LỤC Lời cảm ơn
1.2 Sơ lược về các linh kiện dùng trong mạch 5
4.3 Giao diện giao tiếp giữa PIC18F4550 và máy tính 36
Trang 4CHƯƠNG I : TỔNG QUAN ĐỀ TÀI 1.1 Giới thiệu sơ lược về PIC18F4550
1.1.1 Giới thiệu về PIC18F4550
Hình 1.1 – PIC18F4550 PIC18F4550 là một vi xử lý cơ bản đa chức năng và có giá thành phù hợp PIC18F4550 là sản phẩm của họ vi xử lý PIC thông dụng của công ty Microchip của Mỹ có trụ sở đặt tại Chandler, Arizona (Mỹ) Về tính năng thì PIC18F4550 phù hợp với các ứng dụng
từ đơn giản đến phức tạp Cũng như các dòng PIC khác ngoài ngôn ngữ lập trình assembler , người dùng có thể lập trình PIC trên ngôn ngữ C quen thuộc thông qua các phần mềm hỗ trợ (PIC18C , CCS , MIKROC …) Ưu điểm của vi xử lý PIC18F4550 là nó là một trong những PIC hỗ trợ kết nối USB, nghĩa là có mạch USB gắn bên trong và có sẵn các chân đầu ra để nối trực tiếp với máy tính mà không cần mạch kéo hay bất cứ mạch gắn ngoài nào khác
PIC18F4550 có bộ nhớ chương trình 32KB , bộ nhớ RAM 2KB , EEPROM 256 Byte
để lưu trữ dữ liệu , 5 ports điều khiển , 2 bộ định thời 8 bit ( Timer0 và Timer2 ) , 2 bộ định thời 16 bit ( Timer1 và Timer 3) , bộ biến đổi ADC 10 bit có 13ngõ vào (AN0 à AN12) , sử dụng thạch anh tối đa là 48Mhz…
Năng lượng tiêu thụ :
MIN (mA) MAX (mA)
1.1.2 Sơ đồ chân
Trang 6Bảng 1.1 - chức năng từng chân của PIC18F4550
2 à 7 , 14 RA0 à RA5 , RA6 PORT A
15 à 17, 23 à 26 RC0 à RC2 , RC4 à RC7 PORT C
19 à 22 , 27 à 30 RD0 à RD3 , RD4 à RD7 PORT D
8 à 10 , 1 RE0 à RE2 , RE3 PORT E
14 ,13 CLKO,CLKI lấy xung clock ngoài ( thạch anh )
1.1.3 Module USB trong PIC18F4550
Module USB trong vi điều khiển PIC18F4550 được trang bị một SIE (Serial Interface Engine ) 2.0 hỗ trợ tốc độ full speed và low speed cho phép giao tiếp với các host USB
Bên cạnh đó còn có một số thành phần hỗ trợ cho SIE như USB RAM , bộ truyền nhận Transceiver , khối tạo nguồn cho module USB , các khối giao tiếp với bộ truyền nhận Transceiver USB bên ngoài, cho phép định nghĩa các endpoint linh động trong USB RAM …
Sơ đồ khối của module USB trong PIC18F4550 :
Trang 7Hình 1.3 – Module USB trong PIC 18F4550
Để điều khiển module USB , Microchip đã cung cấp cho người sử dụng các thanh ghi điều khiển.Một số thanh ghi liên quan đến module USB như sau :
• USB Control register (UCON) : thanh ghi chứa các bit điều khiển module USB
• USB Configuration register (UCFG) : thanh ghi chứa các bit điều khiển cấu hình
module USB
• USB Transfer Status register (USTAT) : thanh ghi chứa các bit trạng thái của
module USB
• USB Device Address register (UADDR) : thanh ghi chứa địa chỉ của module USB
được cung cấp bởi host
• Frame Number registers (UFRMH:UFRML) : thanh ghi chứa số thứ tự của khung dữ
liệu nhận được
• Endpoint Enable registers (UEPn) : thanh ghi chứa các bit điều khiển endpoint.Có tất
cả 16 thanh ghi UEPn điều khiển 16 endpoint của module USB
Ngoài ra còn có một số thanh ghi chứa các bit cho phép ngắt của module USB.Để có thể hiểu rõ chức năng cụ thể của các thanh ghi có thể tham khảo thêm datasheet của PIC18F4550
Trang 81.2 Sơ lược về các linh kiện dùng trong mạch
1.2.1 IC 74HC595
Hình 1.4 – IC 74HC595 74HC595 là IC ghi dịch 8 bit kết hợp chốt dữ liệu với 8 ngõ ra.Thường dùng trong các mạch quét LED matrix, 7 đoạn …để tiết kiệm số chân vi điều khiển và dủng mở rộng số chân điều khiển bằng việc nối tiếp đầu vào dữ liệu các IC khác nhau
74HC595 có ngõ ra ở mức 1 có dòng tầm 35mA , điện áp hoạt động từ 2V – 6V
Bảng 1.2 – Chức năng từng chân cùa 74HC595 Chân Ký hiệu Chức năng
15 , 1 à 7 Q0 à Q7 Các chân Ngõ ra
8/16 GND/VCC Mass/Nguồn
13 OE Chân enable khi tích cực mức thấp cho phép ngõ ra hoạt động
10 MR Khi chân này tích cực mức thấp thì dữ liệu trên IC sẽ bị xóa
11 SH_CP Khi có xung clock cạnh sườn xuống thì 1 bit được dịch vào IC
12 ST_CP Khi có xung clock cạnh sườn lên thì xuất dữ liệu ra ngoài
14 DS Đưa dữ liệu vào IC
Nguyên tắc hoạt động của 74HC595 : Ta có thể hình dung đơn giản các hoạt động
đưa dữ liệu vào IC giống như “ xếp hàng “ vậy Đầu tiên ta đưa dữ liệu vào chân DS , sau đó ta tác dụng 1 xung vào chân SH để ghi vào trong IC giống như dưa 1 người vào hàng , sau đó ta làm các bước tương tự như trên để đưa dữ liệu tiếp theo vào thì lúc này ta
có thể hình dung người thứ 2 vào hàng sẽ đứng vị trí người thứ 1 còn người thứ 1 sẽ tiến lên phía trước ,cứ thế ta đưa dữ liệu vào IC đến khi đủ thì ta tác dụng 1 xung vào chân ST
để đưa toàn bộ dữ liệu ra ngoài
Trang 9Bảng 1.3 – Thông số hoạt động của IC
Trang 10Bên trong ULN 2803 có mắc thêm các Diode tránh dòng ngược khi điều khiển các thiết bị có cuộn dây (ví dụ: rơle …)
Bảng 1.4 – Thông số của ULN2803
1.2.3 MOSFET IRF 9640
Hình 1.6 – IRF 9640 Mosfet là Transistor hiệu ứng trường (Metal Oxide Semiconductor Field Effect Transistor)
là một transistor đặc biệt có cấu tạo và hoạt động khác với transistor thông thường , Mosfet
có nguyên tắc hoạt động dựa trên hiệu ứng từ trường để tạo ra dòng điện , là linh kiện có trở kháng đầu vào lớn thích hợp cho khuyếch đại các nguồn tín hiệu yếu , Mosfet được sử dụng nhiều trong các mạch nguồn Monitor, nguồn máy tính
Với ứng dụng cho mạch LED CUBE ta dùng Mosfet vì nó có tần số đóng cắt cao hơn transistor , thích hợp dùng có các mạch quét LED dùng tần số lớn
Trang 11Mosfet hoạt động ở 2 chế độ đóng và mở Do là một phần tử với các hạt mang điện cơ bản nên Mosfet có thể đóng cắt với tần số rất cao Nhưng mà để đảm bảo thời gian đóng cắt ngắn thì vấn đề điều khiển lại là vấn đề quan trọng
Thông số của IRF 9640 :
o Id = 11A
o Rds = 0.5 Ω
o Vdss = 200V
Trang 12CHƯƠNG II : TỔNG QUAN VỀ GIAO TIẾP USB 2.1 Giới thiệu về giao tiếp USB
USB ( Universal Serial Bus ) là một giải pháp nhanh chóng và linh động hiện nay để thực hiện giao tiếp giữa máy tính và thiết bị ngoại vi Hầu hết các máy tính thế hệ mới đều được hỗ trợ giao tiếp USB , thích hợp cho việc giao tiếp với các thiết bị ngoại vi nhu mouse, keyboard… Cũng như các thiết bị ngoại vi khác do người sử dụng phát triển.USB được thiết
kế ngày càng hoàn thiện , giúp tạo nhiều thuận lợp cho người sử dụng
Một số ưu điểm của giao tiếp USB :
• Dễ sử dụng : người dùng chỉ cần cắm thiết bị cần kết nối USB vào máy tính và không cần quan tâm đến vấn đề cài đặt , khai báo thiết bị ( hay chỉ cần cài đặt 1 lần duy nhất dưới dạng driver ) Khi không cần sử dụng thì chỉ cần rút thiết bị ra
• Giá thành hợp lý : chuẩn giao tiếp USB có phương thức giao tiếp phức tạp hơn so với cổng COM truyền thống tuy nhiên giá thành thiết bị lại không quá cao Bên cạnh đó cấu trúc truyền dẫn cũng đơn giản giúp tiết kiệm chi phí thiết bị
• Cho phép nhiều thiết bị trên cùng một đường truyền : USB cho phép tối đa 127 thiết bị giao tiếp với máy tính trong cùng một thời điểm
• Tốc độ truyền nhận nhanh hơn so với cổng COM
• Nhiều sự hỗ trợ cho người phát triển sản phẩm : người phát triển được hỗ trợ mọi công
cụ cần thiết từ hệ điều hành, phần mềm, đến phần cứng và firmware cho thiết bị
Một số hạn chế của giao tiếp USB :
• Chiều dài dây kêt nối máy tính với thiết bị không lớn , tầm 5m
• Cần có sự hỗ trợ từ hệ điều hành và phần mềm trên máy tính
• Nhiều khó khăn cho người phát triển sản phẩm vì đòi hỏi người phát triển phải có kiến thức về nhiều lĩnh vực khác nhau
Một mạng USB bao gồm các thành phần :
• Host : thường là máy tính , có vai trò trung tâm mạng
• Device : là thiết bị giao tiếp với máy tính , có nhiệm vụ thực hiện một chức năng nào
đó
• Hub : là thiết bị trung gian giữa device và host.Hub có nhiệm vụ là mở rộng số lượng
2.2 Cấu trúc truyền dẫn của USB
USB truyền dữ liệu và nguồn điện qua 4 dây : VCC, GND , D+ , D-
Trang 13Hình 2.1 – Thông số dây USB Điện áp VCC trên đường dây thông thường là 5V Tùy thuộc vào chế độ hoạt động của thiết bị mà giá trị điện áp và dòng điện trên đường truyền có thể thay đổi
Dữ liệu truyền trên đường dây có dạng tín hiệu vi sai trên hai đường dây D+ và D- và được mã hóa dưới dạng NRZI Dạng mã hóa này cho phép truyền được cả xung clock trên đường truyền Cực tính của hai dây D+ và D- trên đường truyền luôn ngược nhau khi hoạt động bình thường
Hai loại jack kết nối thường dùng là USB connector type A (đầu dẹp) và type B (đầu vuông) :
Trang 142.3 Các dạng truyền dẫn của USB
Có 4 dạng truyền nhận dữ liệu được hỗ trợ , gồm có :
• Control transfer : dạng truyền này thường được dùng cho việc truyền lệnh hay trạng
thái , được sử dụng trong quá trình trao đổi thông tin và cài đặt device khi device được gắn vào một cổng USB của host
• Interrupt transfer : khi device truyền nhận dữ liệu với host , device sẽ tạo ra một yêu
cầu ngắt Khi host xử lí các device theo quá trình hỏi vòng , host sẽ đọc được yêu cầu này và tiến hành các thao tác trao đổi dữ liệu với device Dạng truyền này thực hiện
được ở chế độ LOW SPEED ,FULL SPEED và HIGH SPEED
• Isochronous transfer : dữ liệu được truyền liên tục và phù hợp với các dạng dịch vụ
dữ liệu có yêu cầu khắc khe về thời gian thực như dữ liệu audio hay video Dạng
truyền này chỉ thực hiện được ở chế độ HIGH SPEED
• Bulk transfer : Thích hợp cho việc truyền nhận gói tin dung lượng lớn , yêu cầu chính
xác cao về dữ liệu truyền nhận như truyền nhận dữ liệu máy in , máy scan , máy tính… , có cơ chế khắc phục và sửa lỗi tốt Dạng truyền này chỉ thực hiện được ở chế độ FULL SPEED và HIGH SPEED
Trang 15CHƯƠNG III : THIẾT KẾ & THI CÔNG PHẦN CỨNG 3.1 Tổng quát về phần cứng
Phần cứng chia là 4 khối có nhiệm vụ và chức năng khác nhau :
• Khối điều khiển
• Khối hiển thị
• Khối LED CUBE 12x12x12
• Khối nguồn
Khối điều khiển
Là bộ não của hệ thống , có nhiệm vụ :
v Nhận dữ liệu từ máy tính
v Phân tích các dữ liệu nhân được
v Điều khiển hoạt động của khối hiển thị
Khối hiển thị
Có nhiệm vụ nhận dữ liệu từ khối điều khiển truyền qua , giải mã dữ liệu và hiển thị ở khối LED
Khối LED CUBE 12x12x12
Có nhiệm vụ hiển thị hiệu ứng do máy tính truyền xuống
Khối nguồn
Cung cấp nguồn VCC = 5V ổn định cho các khối khác làm việc
Trang 163.2 Khối điều khiển
Hình 3.1 – Sơ đồ mạch Khối điều khiển có cấu trúc giống như một KIT thí nghiệm PIC cơ bản với các yêu cầu cơ
• LED hiển thị nguồn
• Connector dùng cho việc nạp PIC
• EEPROM dùng cho mở rộng bộ nhớ EEPROM ( nếu cần )
Phần kết nối USB cũng rất đơn giản ,có thể dùng loại đầu USB type A hay B đều được ,tùy vào lọai dây USB kết nối máy tính bạn sử dụng Vì không đòi hỏi nhiều linh kiện kèm theo cho nên sẽ tiết kiệm được nhiều chi phí
Trang 17Hình 3.2 – Sơ đồ kết nối đầu USB với PIC18F4550 Các yêu cầu cơ bản để có một khối điều khiển dùng PIC18F4550 hoạt động đúng và ổn định :
• Để có thể dùng giao tiếp USB bắt buộc phải gắn tụ 471 ở chân Vusb của PIC18F4550
• Giá trị thạch anh sử dụng trong mạch rất quan trọng ,vì tần số hoạt động của USB là 48Mhz nên ta sẽ sử dụng bộ PLL trong PIC Vì lý do đó nên thạch anh ta chọn phải có giá trị là bội số của 4 như : 4M,8M,12M,20M…Trong bài này chúng ta dùng thạch anh
có giá trị 20M , đây là thông số quan trọng cho việc khai báo chương trình sau này nạp cho PIC
• Tụ gắn ở thạch anh có tác dụng làm cho hoạt động thạch anh ổn định và ổn nhiệt cho thạch anh , ta có thể sử dụng tụ gốm giá trị từ 22pF à 33pF
• Phần reset trong phần cứng ko được không sử dụng cho nên có 2 phương án : 1 là làm như sơ đồ cũng ko ảnh hưởng gì đến toàn phần cứng , 2 là treo lên nguồn qua điện trở 10k
3.3 Khối hiển thị
Để có thể phân tích hoạt động của khối hiển thị chúng ta phải hiểu rõ nguyên tắc tạo hiệu ứng bằng phương pháp QUÉT Giống như quét matrix , có 2 cách là quét lớp ( quét hàng ) và quét cột Chúng ta phải phân biệt 2 phương pháp trên để có thể viết code tạo hiệu ứng cho khối LED
Phần hiển thị được chia làm 2 phần khác nhau hiển thị phần lớp và cột của khối LED CUBE 12x12x12
3.3.1 Phần hiển thị lớp
Trang 18Hình 3.3 – Sơ đồ mạch
Có vai trò là dẫn dòng cấp nguồn cho LED sáng , nếu chúng ta làm những matrix hay
CUBE nhỏ chúng ta có thể thay IRF 9640 bằng transistor thông thường hay TIP , nhưng với
mạch lớn thì đòi hỏi tần số đóng cắt lớn ( giảm thiểu xảy ra hiện tượng bóng mờ ) thì mosfet
luôn là sự lựa chọn của nhiều nhà phát triển sản phẩm
Về nguyên tắc hoạt động của mosfet đã trình bày như trên cho nên chúng ta chỉ cần xác
định rõ cần cung cấp mức tích cực nào thì đèn sáng và ngược lại Chúng ta có thể mắc thêm
điện trở từ 1k à 2k2 ở chân G để mosfet hoạt động ổn định hơn
Với yêu cầu trên thì ta xác định khi nào mosfet dẫn hay ngắt :
• Giá trị từ chân PIC18F4550 kích mức 0 à IRF9640 dẫn
• Giá trị từ chân PIC18F4550 kích mức 1 à IRF9640 ngắt
Những yêu cầu trên là cần thiết cho việc viết code cho PIC sau này
3.3.2 Phần hiển thị cột
Với số cột của LED CUBE là 144 cột , PIC không có đủ số chân để điều khiển cho nên
74HC595 là một trong các lựa chọn tối ưu trong việc mở rộng số chân điều khiển của PIC
Phần hiển thị cột có vai trò là hút dòng cho LED (MASS) tuy nhiên nếu thoát dòng trực
tiếp qua IC 74HC595 thì có thể khiến IC quá nóng vì đây ko phải là IC hỗ trợ cho việc hút
dòng Vì những lý do trên ta sử dụng thêm ULN2803 có nhiệm vụ hút dòng từ IRF9640 cấp
xuống.Các ngõ ra của ULN2803 ta nối với các cột của LED CUBE , tuy nhiên để bảo vệ LED
ta phải gắn thêm 1 điện trở 100Ω ở mỗi ngõ ra của ULN2803 trước khi gắn vào các cột
Về nguyên tắc hoạt động của 74HC595 ,ULN2803 thì ta đã trình bày ở các phần trên ,
phần còn lại chúng ta chỉ cần hiểu cách thức hoạt động khi đã được kết nối với nhau là được
Để ngõ ra ULN2803 có mức 0 thì ngõ ra của 74HC595 phải ở mức 1
Trang 19Hình 3.4 – Sơ đồ mạch
Trang 203.4 Khối LED CUBE 12X12X12
Hình 3.5 – Khối LED CUBE
Thông số của khối LED :
v 12 lớp mắc chung Anode
v 144 cột Cathode
v 1728 LED đơn mắc với nhau thành khối
Khối LED CUBE 12x12x12 có cấu tạo tương đối phức tạp.Ta có thể hình dung đó là khối được tạo bởi 12 matrix 12x12 được gắn song song với nhau và có hàng nối chung với nhau
Vì có cấu tạo như trên nên khối led có khả năng hiển thị các hiệu ứng 3D phức tạp và đẹp mắt
Để có thể hiển thị hiệu ứng tốt nhất ta có thể dùng loại led đục , 5mm vì nó sáng đều khắp led chứ ko tụ ánh sáng lại trên đỉnh như led trong
Trang 214 mạch 7805 với ngõ ra chung song song để tăng dòng ngõ ra Tuy nhiên đó là trên lý thuyết , còn thực tế thì với yêu cầu của khối LED là hiển thị hệu ứng thì LED chỉ cần sáng tầm 60 % -
70 % độ sáng tối đa là được Ta có thể dùng biến áp và mạch dùng 7805 cơ bản sau :
Hình 3.6 – Sơ đồ mạch
Tuy nhiên với với mạch đòi hỏi sự ổn định cao thì phương án trên không phù hợp về mặt
kỹ thuật cũng như kinh tế , cho nên cách tốt nhất ta có thể mua những nguồn có bán nhiều trên thị trường với giá thành khá phù hợp với hiệu suất
Với những phần cứng đòi hỏi công suất lớn như trên thì ta có thể chọn một loại nguồn có giá thành khá hợp lý như adapter , nguồn máy tính , nguồn tổ ong
Trang 22§ Nguồn máy tính : với các ngõ ra 12V ,5V hoàn toàn thích hợp dùng cấp nguồn cho LED
Hình 3.7 – Nguồn máy tính
§ Nguồn tổ ong : được rất nhiều người lựa chọn vì sự ổn định cũng như chất lượng.Có khá nhiều mức công suất để lựa chọn Chiếm diện tích nhỏ hơn nguồn máy tính
Hình 3.8 – Nguồn tổ ong
Trang 233.6 Thi công
3.6.1 Sơ đồ mạch
Trang 24Mạch in
Hình 3.9– Sơ đồ mạch in khối điều khiển
Phần cứng ta dùng tất cả 18 con 74HC595 và 18 con ULN2803 , tuy nhiên nếu thành mạch thì sẽ khá lớn , khó cho việc làm mạch thủ công tại nhà cho nên ta chia làm 3 board , mỗi board dùng 6
IC 74HC595 và 6 IC ULN2803
Hình 3.10– Sơ đồ mạch in khối hiển thị
Trang 253.6.2 Phần cứng hoàn chỉnh
Trang 26
Hình 3.12– Khối hiển thị Lớp và khối PIC điều khiển
Trang 27Hình 3.13– CUBE 12x12x12
Trang 283.6.3 Giao diện điều khiển hoàn chỉnh
Hình 3.14– Giao diện chính
Hình 3.15– Giao diện nhỏ kèm theo
Trang 29Hình 3.16 – Phần chọn hiệu ứng
Hình 3.17 – Phần thời gian chạy hiệu ứng
Trang 30Hình 3.18 – Một số hiệu ứng của sản phẩm
Trang 31Hình 3.19 – Một số hiệu ứng của sản phẩm
Trang 32CHƯƠNG IV : LẬP TRÌNH VÀ THIẾT KẾ GIAO DIỆN 4.1 Giới thiệu các phần mềm dùng trong đồ án
4.1.1 PROTEUS
Hình 4.1 – Giao diện của Protues
Proteus là phần mềm cho phép mô phỏng hoạt động của mạch điện tử bao gồm phần thiết
kế mạch và viết chương trình điều khiển cho các họ vi điều khiển như PIC, AVR, … Proteus
là phần mềm mô phỏng mạch điện tử của Lancenter Electronics, mô phỏng cho hầu hết các linh kiện điện tử thông dụng, đặc biệt hỗ trợ cho cả các MCU như PIC, 8051, AVR,
Phần mềm bao gồm 2 chương trình: ISIS cho phép mô phỏng mạch và ARES dùng để vẽ mạch in Proteus là công cụ mô phỏng cho các loại Vi Điều Khiển khá tốt, nó hỗ trợ các dòng VĐK PIC, 8051, PIC, dsPIC, AVR, HC11, MSP430, ARM7/LPC2000 các giao tiếp I2C, SPI, CAN, USB, Ethenet, ngòai ra còn mô phỏng các mạch số, mạch tương tự một cách hiệu quả
Trang 33
4.1.2 CCS C COMPILER
Hình 4.2 – Giao diện của CCS
PIC C compiler là ngôn ngữ lập trình cấp cao cho PIC được viết trên nền C chương trình viết trên PIC C tuân thủ theo cấu trúc của ngôn ngữ lập trình C Trình biên dịch của PIC C sẽ
chuyển chương trình theo chuẩn của C thành dạng chương trình theo mã Hexa ( file “.hex” )
để nạp vào bộ nhớ của PIC
PIC C compiler gồm có 3 phần riêng biệt là PCB, PCM và PCH PCB dùng cho họ MCU với bộ lệnh 12 bit, PCM dùng cho họ MCU với bộ lệnh 14 bit và PCH dùng cho họ MCU với
bộ lệnh 16 và 18 bit Mỗi phần khác nhau trong PIC C compiler chỉ dùng được cho họ MCU tương ứng mà không cho phép dùng chung
CCS cũng hỗ trợ rất nhiều cho người sử dụng bằng các thư viên kèm theo dành cho người dùng Ta có thể tìm thấy chúng trong các thư mục của phần cài đặt CCS.Trong đó còn có các bài ví dụ giúp chúng ta làm quen với CCS
Để có thể viết được chương trình trên CCS cho biết ta cần tiềm hiểu thêm về ngôn ngữ C bằng các tài liệu , sách tham khảo
Trang 344.1.3 WINDRIVER
Hình 4.3 – Giao diện của WINDRIVER
Windriver là một phần mềm giúp ta tạo driver USB và các thư viện cần thiết trong việc giao tiếp USB của chúng ta
Khi chúng ta dùng Windriver thì phần mềm sẽ tạo cho ta 1 file INF ,là file driver của
USB khi ta cắm vào máy tính và có yêu cầu cài đặt.Ngoài ra nó còn có thể tạo ra một giao diện giao tiếp máy tính cơ bản cho chúng ta test xem kết nối với PIC đã hoạt động hay chưa , truyền nhận có vấn đề gì không
Giao diện tạo ra có các chức năng cơ bản sau :
• Write to pipe : truyền dữ liệu từ máy tính xuống PIC18F4550
• Listen to pipe : nhận dữ liệu từ PIC18F4550 lên máy tính
Ngoài ra nó còn tạo cho ta 2 file thư viện là led_cube_lib.dll ( led_cube là tên file do ta
đặt ) và wdapi_dotnet1010.dll (số 1010 tùy thuộc vào version của WinDriver ) Hai thư viện
trên chứa các lớp và các ủy quyền rất có ích trong giao tiếp USB
Trang 35Hình 4.4 – Giao diện giao tiếp với PIC do windriver tạo
Nếu thực hiện được các chức năng trên thì xem như ta đã hoàn thành bước đầu về giao tiếp máy tính với PIC
4.1.4 MICROSOFT VISUAL STUDIO