Articles by "Phần Mềm"

10 4.104 8051 9 Acquy adc pic All datasheet ALTIUM Altium Designer AM-FM Arduino ARM ARM là gì Ấn Tượng Bản tin công nghệ Bản tin Thiết Bị Số Barobo bất động sản biến Binary Bit board lpc2378 Bộ chuyển đổi ADC Bộ Đếm Bộ điều khiển cửa cuốn Bộ Định Thời Buy Khóa Số Điện Tử Buy Mạch đếm sản phẩm Buy Mạch giao thông Buy Mạch nạp Buy Matrix Byte C cho AVR các hàm vào ra các loại lõi arm các mạch DAC cơ bản các ngắt trong pic Cách đọc điện trở Cách Đọc Giá Trị Điện Trở Cách đọc giá trị tụ điện Cách hàn linh kiện dán cách làm mạch khóa số cách tạo linh kiện dán cad/cam Cài Đặt cài đặt proteus 8 cảm biến Cấu Kiện Logic Khả Trình cấu tạo cấu trúc arm cấu trúc lệnh CCS Chân chân Transistor Chip Khả Trình chuyển đổi Chuyển đổi số tương tự Chuyển Đổi Tương Tự/Số - ADC Chuyển động số chương trình City Clip Điện Tử Code 8051 - ASM Code 8051 - C Code 8051-C code ASM code ASM mẫu 8086 Code AVR - C code C Code Lập Trình Code led sao băng code maupic code mẫu 8051 Code Mẫu 8086 Code Mẫu cho ARM - LPC1343 code mẫu pic Code PIC - C codemaupic Counter Cổng Vào Ra Cơ Bản Cuộn Cảm Cửa cuốn DA DAC Debug Decimal Delay8051 Dev-C++ Diode DIY Dò đường Do It Yourself doanh nghiệp Download DTMF Mobile đảo chiều động cơ Điện Trở Điện Tử Điện Tử Cơ Bản điều chế độ rộng xung điều chế xung PWM điều khiển bằng điện thoại Điều khiển cửa cuốn Điều khiển cửa cuốn bằng điện thoại điều khiển động cơ đo điện áp đo nhiệt độ đo nhiệt độ hiển thị lên lcd trên 8051 Đo Nhiệt Độ LM35 + LCD Đo Nhiệt Độ LM35 + Led 7 thanh đọc màu điện trở đồ chơi động cơ chân không Động cơ nhiên liệu Động cơ robo đồng hồ thời gian thực Ebook Đại Học ebook điện tử Ebook đồ án Ebook Tin Học Encoder Encoder là gì Full Giải Thuật Giải thuật PID Giáo Dục giao tiếp i2c pic 16f877a giao tiếp i2c pic16f877a với ic ds1307 giao tiếp máy tính qua rs232 Giao Tiếp Máy Tính VB6 giao tiếp rs232 giao tiếp spi giữa 2 pic giao tiếp spi trong pic Giáo Trình Điện Tử Giới thiệu 8051 Giới thiệu cơ bản GPIO Graphic Design hàm Hàn linh kiện dán Hexadecimal Hệ Hexa Hệ Nhị Phân Hệ Thập Lục Phân Hệ Thập Phân hiển thị lên lcd 16x2 Hoạt Động Học Học 8051 qua các ví dụ đơn giản Học ALtium Designer học AVR Học Corel Draw X3 Học Eagle HỌC LẬP TRÌNH 16F877A Học Lập Trình 8051 Học Lập Trình C Học Orcad Học Protues hoc-lam-robot-do-duong-qua-video Hồng ngoại hướng dẫn hướng dẫn Altium Designer hướng dẫn đo đồng hồ VOM hướng dẫn keil - C lập trình 8051 hướng dẫn làm led sao băng hướng dẫn làm led trái tim hướng dẫn lập trình ARM Hướng Dẫn Lập Trình ARM - LPC1343 hướng dẫn lập trình ARM-LPC2378 hướng dẫn lập trình CCS hướng dẫn lập trình PIC Hướng Dẫn Led Trái Tim hướng dẫn module sim548c hướng dẫn sử dụng keil hướng dẫn sử dụng proteus 8 Hyper Terminal hercules 3.2.4 I/O IC 555 IC 7447 IC 74HC151 IC 74HC154 IC 74HC245 IC 74HC595 IC 74LS138 IC DS1307 IC đồng hồ thời gian thực IC LM324 IC LM342 IC LM7805 IC số IC số opamp LM324 IC Thông Dụng IC555 Interrupt Keil 4 Full keil arm Keil C Keil uVision3 kế toán kiểm toán khái niệm Khái Niệm Cơ Bản Kho Vật Liệu khóa điện tử khóa số dùng 8051 khóa số dùng 89s52 Khóa Số Điện Tử khuếch đại kiểm tra Kinh doanh maketing kinh tế quản lí Kỹ Thuật Kỹ Thuật Vi Xử Lý làm mạch điện lý thú Làm quen AVR Lap Trinh Dieu Khien Robot Lập Trình lập trình 8051 Lập Trình AVR Lập Trình C lập trình c++ Lập Trình Led Quảng Cáo Lập Trình Nhúng Lập trình pic Lập trình Robot Lập Trình Vi Điều Khiển Lập Trình Với AVR Studio LCD 16x2 Lcd16x2 Led Clock Led Quay led sao băng led trai tim Led Trái Tim Lịch sử ra đời Linh Kiện Cơ Bản linh kiện điện tử Loa LPC 2378 LSB lý thú Mã AVR - C Mạch 7seg Mạch Amply.Mạch Loa Mạch Autorobo Mạch bảo vệ Mạch Cảm Biến mạch cảm ứng sờ tay Mạch Cầu H Mạch cube Mạch Đếm Sản Phẩm Mạch điện cơ bản Mạch điện hay Mạch Điện Ứng Dụng Mạch Điều khiển động cơ Mạch Động Cơ Mạch đồng hồ Mạch đồng hồ 4 led Mạch giao thông Mạch IC số Mạch in mạch khóa số mạch khuếch đại thuật toán mạch led chúc mừng năm mới mạch led đẹp Mạch Led đơn Mạch Led Quảng Cáo mach led trai tim mạch led trái tim Mạch Led Vumeter mạch lý thú Mạch Ma trận Phím Mạch Matrix Mạch nạp Mạch nguồn Mạch Nút Bấm mạch sóng rf mạch tăng áp Mạch thu phát Mạch tổ hợp MSI Mạch trái tim Mạch Vi điều khiển Microbicho module module GSM/GPS Module Sim548 Module Sim548 giao tiếp với vi điều khiển PIC Module Sim548C Mosfet Motor Mô Phỏng Phần Cứng Mô Tả Phần Cứng MSB mua led sao băng News Ngắt Ngắt Trong LPC23xx ngân hàng Ngôn Ngữ Ngôn Ngữ C Ngôn Ngữ Tự Học Lập Trình C Ngôn Ngữ VHDL Nguyên Lý nguyên lý ic 555 Nguyên Tắc nháy led Nhập môn C Nhỏ Gọn Nibble opamp People Phần Mềm phần mềm altium Designer Phần mềm điện tử Phần Mềm Điện Tử Phần Mềm Điện Tử Hay Phần Mềm Hay Phần Mềm Led Quảng Cáo phần mềm proteus 8 Phần mềm vi tính Phần Mền Phương pháp hàn linh kiện dán PIC pic16f877a Print Design Proteus Proteus 7.8 SP2 FULL PWM quà tặng bạn gái quà tặng độc đáo quản trị doanh nghiệp quản trị kinh doanh quét led 7 đoạn Relay robocon Robot ROBOT DÒ ĐƯỜNG rút gọn mạch logic tổ hợp Sach Dien Tu Sản Phẩm Thú Vị Sản Phẩm Thương Mại Sáng tạo Short Smart Home SMD sơ đồ nguyên lý spi Sports Sử Dụng Sử Dụng Đồng Hồ sử dụng đồng hồ VOM sử dụng ngắt trong pic sự khác nhau Sức mạnh số Tải tài chính tài chính doanh nghiệp tài chính ngân hàng Tài Khoản Chia Sẻ Tài Liệu Tài Liệu 8051 tài liệu avr Tài liệu Điện Tử Tài Liệu Pic Tài liệu robocon tài liệu về ngân hàng Tài Liệu Vi Điều Khiển tailieuvn Tạo cổng Com ảo Tạo cổng nối tiếp ảo tạo dự án trong keil arm Tạo Project trong Vi Xử Lý ARM tạo thư viện altium designer tạo xung vuông Tạp chí Tạp Chí Hay tăng áp Tập lệnh AT Team Support TEAMPLATE PROTEUS Test thị trường tài chính Thiết Bị Thú Vị Thiết kế robot Thiết lập Fuse Bits Thiết Lập Pin Thuật Toán Thuật Toán Điều Khiển PID Thuật Toán Quine MCCluskey Thư viện Protues Thực Hành Thyristor Timer Timer/Counter Tin Học Chia Sẻ Tổ Chức Bộ Nhớ tổng quan về proteus 8 Transistor Tranzito Tranzitor Trao đổi học tập Travel Trình Biên Dịch Trình Dịch Trong Suốt Truyền Thông Nối Tiếp Không Đồng Bộ- UART truyền thông nối tiếp RS232 Tụ điện TUT - 8051 - ASM TUT - 8051 - KeilC tự hành Tự Học C Tự Học Lập Trình C Tý hon UART Update USB Ứng Dụng Led Quảng Cáo ứng dụng mạch khuếch đại thuật toán vẽ mạch in vẽ mạch nguyên lý VHDL Vi Điều Khiển Vi điều khiển - Ứng dụng vi điều khiển PIC Vi mạch số Vi Xử Lý Vi Xử Lý 8051 Vi Xử Lý 8086 Vi Xử Lý ARM Vi Xử Lý PIC Video Video Mach Điện Virtual Serial Port Driver VOM vxl Web Design xác định góc quay động cơ xử lý chuỗi
Hiển thị các bài đăng có nhãn Phần Mềm. Hiển thị tất cả bài đăng

Proteus VSM (Virtual Simulation Machine) của Labcenter Electronics là phần mềm mô phỏng mạch điện rất được ưa thích hiện nay. So với các phần mềm mô phỏng mạch điện tử khác, Proteus có nhiều ưu điểm nổi trội như: mô phỏng được rất nhiều linh kiện điện tử và các thiết bị hiển thị, kết quả mô phỏng rất trực quan như một mạch điện tử thật. Và một tính năng mà chúng ta, những người học vi điều khiển, quan tâm nhất là khả năng mô phỏng các chip vi điều khiển với chương trình do người dùng nạp. Proteus hỗ trợ rất nhiều các chip vi điều khiển như 8051, AVR, PIC, HC11, ARM7/LPC2000... Nếu bạn đang muốn học AVR mà không có điều kiện hoặc kinh nghiệm để làm các mạch phát triển hoặc bạn muốn kiểm tra chương trình trước khi nạp vào mạch phát triển thì Proteus là lựa chọn không thề bỏ qua.
      Trong các bài hướng dẫn AVR trên website này, phamhoangvuong.com chủ yếu dùng Proteus để mô phỏng minh họa các ví dụ lập trình. Vì thế trong phần này phamhoangvuong.com sẽ hướng dẫn cơ bản cách sử dụng Proteus để vẽ và mô phỏng một mạch điển đơn giản với AVR. phamhoangvuong.com dùng mạch quét LED trong bài "Làm quen AVR" để minh họa.
      Trước hết, bạn hãy download bản demo Proteus từ website Labcenter Electronics . Sau khi cài đặt phần mềm chúng ta sẽ thực hiện tuần tự các bước sau để tạo mạch điện quét LED.
I. Vẽ mạch điện.
      Chạy Proteus: sau đó nhấn vào button “Components” rồi “Pick Devices” để chọn linh kiện.

Hình  1. Giao diện Proteus.
      Chọn linh kiện: trong dialog Pick Divices, ô “Keywords” nhập mega8, bạn sẽ thấy 1 linh kiện có tên “ATMEGA8” bên cửa sổ “Results”, double click vào linh kiện đó để mang nó ra cửa sổ “Object selector”.

Hình  2. Chọn linh kiện.
      Để tìm điện trở, bạn đánh keyword “res”, chọn “Resistors” trong “category” và Double click vào link kiện “RES” trong ô “Results”.

Hình  3. Chọn điện trở.
Thực hiện tương tự để chọn GREEN - LED bằng keyword “green led”.

Hình  4. Chọn Green LED.
      Sau khi chọn 3 loại linh kiện cần thiết bạn hãy nhấn OK và quay về cửa số chính, khi đó bạn thấy trong cửa sổ “Object selector” như sau:

Hình  5. Các link kiện cần cho mô phỏng.
      Thao tác với mouse trong Proteus: khác với 1 số chương trình vẽ mạch điện khác, tháo tác mouse trong Proteus hơi lạ nên có thể gây bối rối cho bạn, hãy theo hướng dẫn sau đây:
  • Chọn linh kiện để vẽ: left – click lên tên linh kiện trong cửa sổ “Object selector”.
  • Đặt linh kiện: Left – click lên cửa sổ mạch điện Right click lên linh kiện trong cửa số mạch điện sẽ làm cho linh kiện đó được bao bởi màu “đỏ”, tức bạn đang chọn linh kiện đó.
  • Bỏ chọn linh kiện: thực hiện bằng cách Right – click lên một vị trí trống trên cửa sổ mạch điện.
  • Delete linh kiện: Right – click 2 lần lên 1 linh kiện là delete linh kiện đó khỏi cửa sổ mạch điện,  hoặc Right click 1 lần  lên 1 linh kiện đã được chọn trước đó (có màu đỏ) cũng sẽ xóa linh kiện này.
  • Di chuyển linh kiện: chọn linh kiện trước (right – click) và drag để di chuyển linh kiện bằng mouse left.
  • Xoay và lật linh kiện: chọn linh kiện cần xoay hay lật (right – click), dùng các nút công cụ để xoay hoặc lật linh kiện.

    Hình  6. Các nút công cụ xoay và lật linh kiện.
  • Hiện cửa sổ thuộc tính linh kiện: rất nhiều khi bạn cần thay đổi 1 số thuộc tính của linh kiện (ví dụ giá trị của điện trở), bạn thực hiện điều này trong cửa sổ thuộc tính của linh kiện. Để hiện cửa sổ thuộc tính của 1 linh kiện bạn hãy right – click trước (để chọn linh kiện – linh kiện sẽ đỏ lên) và sau đó left – click sau.
      Theo hướng dẫn trên, bạn hãy click vào ATMEGA8 và đặt linh kiện này lên mạch điện của bạn (đặt lên cửa sổ làm việc lớn) bằng cách left - click lên bất vị trí nào trên cửa sổ mạch điện. Thực hiện tương tự cho 8 LED và 1 điện trở như hình vẽ bên dưới.

Hình  7. Đặt linh kiện lên mạch điện.
      Tiếp theo là đặt “Ground” cho LED, nhấn vào nút công cụ “Inter – sheet Terminal” như hình bên dưới.

Hình  8. Nút công cụ Inter – sheet Terminal.
      Bạn thấy trong cửa sổ “Object devices” có 1 số thiết bị, hãy chú ý dến “POWER” và “GROUND”, đây là nguồn và mass cho mạch điện của bạn. Hãy chọn GROUND và đặt lên mạch điện của bạn.
      Bước tiếp theo, nối dây: không cần công cụ, để nối dây bạn chỉ cần rê mouse đến điểm cần nối của linh kiện, bạn sẽ thấy xuất hiện 1 dấu chéo “x”, lúc đó hãy click   mouse và di chuyển (không cần giữ mouse) đến vị trí tiếp theo và click lần nữa.

Hình  9. Nối dây.
      Theo cách này bạn hãy nối dây cho mạch điện của bạn, mạch điện hoàn chỉnh như sau.

Hình  10. Sau khi nối dây.
      Bây giờ hãy thay đổi giá trị của điện trở, giá trị mặc định là 10k, giá trị này quá lớn, dòng điện sẽ rất nhỏ, khi mô phỏng bạn sẽ không  thấy các LED sáng lên. Bạn hãy thay đổi nó thành 100 (100 Ohm). Trước hết cho hiện cửa sổ thuộc tính của điện trở (right click rồi left click lên điện trở), thay đổi ô resistance của nó.

Hình  11. Thay đổi giá trị của điện trở.
II. Nạp chương trình và mô phỏng.
      Đổ chương trình vào chip Atmega8: hãy hiện cửa sổ thuộc tính của chip Atmega8, trong ô “Program file” hãy click và tìm đến file “avr1.hex” mà bạn đã tạo trong thư mục Project của bài AVR1 sau khi biên dịch. Chú ý thay đổi thông số “Clock frequency” là 1 Mhz.

Hình  12. Đổ chương trình cho chip.
      Hãy lưu mạch điện của bạn và việc cuối cùng là chạy mô phỏng, sử dụng thanh công cụ Play để chạy mô phỏng mạch điện của bạn, kết quả như sau.

Hình  13. Kết quả mô phỏng. 
Nguồn :hocavr.com

Sáng Lập Bởi:
phamhoangvuong.com

NGUỒN: HOCAVR.COM



 Một trong những ưu điểm lớn nhất của các chip AVR là tính đơn giản khi sử dụng trong đó có việc nạp chương trình cho chip. AVR hỗ trợ khả năng nạp chương trình ngay trong hệ thống - ISP(In-System Programming), có thể nạp trực tiếp chương trình vào chip mà không cần tháo chip ra khỏi mạch ứng dụng.
      Mạch nạp cho AVR rất phong phú nhưng hầu hết đều rất đơn giản. Trong bài này phamhoangvuong.com giới thiệu 2 loại mạch nạp rất phổ biến trong những người sử dụng AVR đó là mạch ISP SKT200/300 (gọi tắt là AVR ISP) và mạch USB AVR910. Mỗi loại có ưu và nhược điểm riêng, tùy theo nhu cầu và khả năng bạn sẽ chọn chế tạo cho mình 1 loại mạch nạp phù hợp. 
I. Mạch nạp STK200/300.
      Mạch nạp loại này sử dụng cho các board STK200/300 của Atmel nên thường được gọi là STK200/300. Mạch này giao tiếp với máy tính qua cổng LPT (cổng song song). Có 2 phiên bản phổ biến của mạch STK200/300 đó là phiên bản thu gọn và phiên bản sử dụng IC đệm 74xx244.
      Sơ đồ mạch nạp thu gọn được trình bày trong hình 1. Đây là loại mạch đơn giản nhất trong tất cả các loại mạch nạp cho AVR, mạch chỉ bao gồm 4 điện trở. Nhược điểm của mạch này là không an toàn, có thể gây hại cho cổng LPT (thật ra phamhoangvuong.com chưa mắc phải vấn đề này khi sử dụng mạch STK200/300 thu gọn). Mặt khác mạch này không đảm bảo nạp được cho tất cả các chip AVR. Tuy nhiên, nếu bạn không có nhiều kinh nghiệm làm các mạch điện tử thì có thể chế tạo mạch này để test chương trình AVR mà bạn đã học.

Hình 1. Sơ đồ mạch nạp STK200/300 thu gọn.
      Một loại mạch STK200/300 khác được sử dụng rất phổ biến là loại mạch có dùng IC đệm 74HC244 (hoặc 74LS244), so với mạch thu gọn, mạch này có phức tạp hơn đôi chút (xem hình 2) nhưng bù lại nó là mạch nạp rất ổn định và an toàn. Mạch này được hỗ trợ bởi rất nhiều chương trình nạp và sử dụng được cho hầu hết các loại chip AVR.

Hình 2. Sơ đồ mạch nạp STK200/300 đầy đủ.
      Như quan sát trong hình 1 và 2, việc nạp ISP cho AVR thường được thực hiện thông qua 6 đường nạp cơ bản, đó là GND, VCC, RESET, SCK, MISO và MOSI. Khi chế tạo mạch nạp, bạn phải chú ý thứ tự của các đường nạp này sao cho phù hợp với thứ tự mà bạn đã bố trí cho mạch ứng dụng. Một điều đặc biệt là ở các chip ATmega16, ATmega32, ATmega8535, AT90S8535...6 đường dành cho việc nạp ISP nằm cạnh nhau và theo thứ tự GND, VCC, RESET, SCK, MISO, MOSI. Vì thế phamhoangvuong.com khuyên bạn nên bố trí theo thứ tự này để tiện trong việc kết nối với mạch ứng dụng (nhất là khi bạn sử dụng các loại chip trên và làm mạch test bằng bread board)..Các mạch nạp STK200/300 được mô tả trong hình 3.

Hình 3. Mạch nạp STK200/300. 
II. Chương trình nạp PonyProg.
      Chương trình nạp là một tiện ít giúp đổ file hex sau khi biên dịch vào chip thông qua các mạch nạp. Hầu hết các bộ công cụ lập trình cho AVR đều tích hợp sẵn một chương trình nạp chip. avrdude là chương trình nạp miễn phí hỗ trợ rất nhiều loại mạch, được tích hợp với WinAVR. Tuy nhiên, đây là chương trình nạp console (không có giao diện) nên sử dụng tương đối khó khăn nhất là khi cần nạp các bit Fuse hay Lock. Các phần mêm lập trình cho chip như CodevisionAVR, ICCAVR, Bascom,...đều có chương trình nạp riêng rất đa năng và dễ sử dụng. Nhưng do đây là các công cụ thương mại nên bạn cần mua nếu muốn sử dụng. AVR Studio, tất nhiên, có chương trình nạp chip AVR Prog nhưng chương trình này lại không hỗ trợ mạch nạp mà STK200/300 mà phamhoangvuong.com giới thiệu bên trên. Cuối cùng là PonyProg, PonyProg không phải là hoàn hảo nhất nhưng là lựa chọn tối ưu nhất để nạp bằng mạch STK200/300. Đây là chương trình nạp hoàn toàn miễn phí, hỗ trợ nhiều loại mạch và nhiều dòng vi điều khiển (như AVR, PIC...), giao diện lại khá dễ sử dụng. Trong phần này phamhoangvuong.com dùng PonyProg để minh họa cho cách nạp chương trình vào AVR thông qua mạch nạp STK200/300.
      Download và cài đặt PonyProg: bạn có thể download miễn phí PonyProg tại website chính thức của Lancos . Cài đặt và tiến hành setup phần mềm.
      Setup: Trước khi sử dụng PonyProg để nạp AVR bạn cần Setup một số thông số cho phần mềm như loại chip, loại mạch nạp...Chạy PonyProg, chọn menu Device và chọn loại chip mà bạn cần nạp (ví dụ "AVR micro/ ATmega32"). Tiếp đến xác nhận loại mạch nạp và giao diện cổng bằng cách vào menu "Setup/Interface Setup"...Với mạch nạp STK200/300, hãy set các thông số trong dialog "I/O Port setup" như trong hình 4 và nhấn OK để xác nhận Setup.


Hình 4. Setup port cho ponyProg.
      Ghi fuse bits và Lock bits: Ponyprog cho phép người dùng ghi và đọc các bit cấu hình của chip như fuse bits và lock bits, để thực hiện, chọn menu "Command/Security and Configuration bits" hay đơn giản là nhấn tổ hợp phím Ctrl+S. Dialog mới xuất hiện cho phép bạn cài đăt các bit cấu hình cho chip (chọn các bit mong muốn và nhấn button write - xem thêm bài fuse bits để hiểu rõ hơn chức năng các bit này).
      Download chương trình vào chip: Hãy mở file chương trình cần nạp vào chip bằng cách vào menu "File/Open Program (FLASH) file" hoặc nhấn nút công cụ "P" trên thanh công cụ. Nội dung file FLASH sẽ được hiển thị trong 1 cửa sổ con. Để nạp chương trình cho chip, hãy vào menu "Command/Write Program(FLASH)" hoặc nhấn nút công cụ "Write Program Memory(FLASH)" trên thanh công cụ.
     Ngoài ra, PonyProg còn có rất nhiều chức năng khác như đọc nội dung chip, xóa chip, kiểm tra...với các chức năng này bạn hãy tự khám phá và sử dụng. 
III. Mạch nạp USB AVR910.
        Khuyến cáo: theo phản hồi của một số bạn đọc trên hocavr.com, mạch USB AVR910 dễ mắc lỗi set sai fuse bit và dẫn đến một số khó khăn nhất định để reset lại fuse. Vì vậy nếu là người chưa có nhiều kinh nghiệm xử lí sự cố với AVR, bạn được khuyên nên làm mạch USBasp thay cho  mạch AVR910.
       Tuy mạch nạp STK200/300 đơn giản, dễ chế tạo nhưng có một hạn chế là mạch này sử dụng cổng LPT làm cổng giao tiếp. Trên một số máy tính gần đây cổng LPT đã bị loại bỏ, thay vào đó các cổng USB đã trở thành cổng giao tiếp không thể thiếu của máy tinh. Một mạch nạp sử dụng cổng USB sẽ tiện lợi hơn rất nhiều so với cổng LPT hay COM. Có một số dự án nghiên cứu chế tạo mạch nạp USB cho AVR, trong số đó có lẽ phổ biến nhất là mạch nạp AVR910 USB của Prottoss. Gọi là mạch AVR910 vì nguyên lý nạp chương trình của mạch này áp dụng hướng dẫn trong application note 910 của Atmel về In-System Programming. Mạch AVR910 USB được điều khiển bởi một chip Master Atmega8, chip này chứa một firmware bên trong, firmware thực hiện 2 chức năng: thứ nhất là một cầu chuyển USB-UART dựa trên thư viện của Objective Development và thứ hai là điều khiển quá trình nạp theo "chuẩn" AVR910.
      Mạch nạp ARV910 USB không quá phức tạp cho bạn tự chế tạo, hãy download các công cụ cần thiết từ website của Prottoss (đã dịch bằng google translate)  và thực hiện theo các chỉ dẫn bên dưới.
      Giải nén file rar vừa download về bạn sẽ thấy có 3 files bên trong. File thứ nhất là sơ đồ mạch điện (file pdf), file thứ hai là driver cho máy tính (file inf) và file thứ 3 là firmware cho chip master ATmega8 (file hex - xem hình bên dưới).

      Chế tạo mạch: tham khảo sơ đồ mạch điện và chế tạo một mạch điện theo mạch nguyên lý trong file pdf hoặc trong hình 5 bên dưới.

Hình 5. Sơ đồ mạch nạp AVR910 USB của Prottoss.
      Khi chế tạo mạch điện trên, bạn lưu ý một số điểm như sau: hãy bỏ qua các Jumper J1, J2 và J3, nối trực tiếp chân 16 của ATmega8 với điện trở R13. Nếu bạn không biết cách xác định thứ tự chân của cổng USB thì hãy dùng một đổng hồ đo điện áp, chân 1 sẽ có điện áp dương (khoảng 5V) và chân 4 là chân GND).
      Nạp firmware cho chip mega8: trước khi gắn chip mega8 vào mạch điện hình 5, bạn phải nạp firmware (file USB.910.Programmer.hex) vào chip này bằng một mạch nạp bất kỳ mà bạn có (ví dụ mạch STK200/300). Chú ý bạn cần set fuse bit cho chip này sao cho nguồn thạch anh ngoài 12MHz đươc sử dụng (hãy đặt 2 bit BOOTZS0 và BOOTSZ1 bằng 0 (checked), các bit còn lại bằng 1 (bỏ trống) - tham khảo bài Fuse bits).
      Cài driver cho windows: sau khi chế tạo mạch và nạp firmware cho chip master, bạn kết nối mạch nạp với cổng USB của máy tính. Một cách tự động, Windows sẽ nhận diện một phần cứng mới được kết nối và yêu cầu cài đặt driver cho thiết bị. Hãy browse đến thư mục chứa file driver inf mà bạn đã giải nén. Quá trình cài driver sẽ bắt đầu, nếu trong quá trình cài đặt Windows thông báo lỗi bạn hãy nhấn "Continue anyway..." để tiếp tục cài đặt đến khi hoàn tất. Sau khi cài đặt driver một cổng COM ảo sẽ xuất hiện trong Hardware list của bạn, hãy mở tiện ích Device manager của Windows để kiểm tra, hãy ghi lại chỉ số cổng COM ảo (COM1, COM2, COM3...) để khai báo trong các chương trình nạp.
      Sử dụng AVR910 USB: mạch nạp AVR910 USB được hỗ trợ bởi phần mềm nạp của CodevisionAVR và AVR Prog của AVRStudio. Kết nối mạch với máy tính, chạy AVRStudio và chương trình nạp AVR Prog (vào menu Tools/AVR Prog). Trong mục Hex file hãy browse đến file hex cần nạp cho chip, mục Device chọn loại chip AVR và sau đó nhấn button Write trong mục Flash để nạp vào file hex vào chip. Nếu muốn xác lập fuse bits hay lock bits, hãy nhấn button Advance.

Hình 6. Nạp chip bằng mạch nạp AVR910 USB và AVR Prog.
IV. Mạch nạp USBasp.
      So với mạch nạp AVR910, mạch nạp USBasp của Thomas Fischl được người viết đánh giá cao hơn về tính ổn định và tính tiện lợi (chương trình nạp phong phú). Mạch điện nguyên lý cũng tương đối đơn giản, sử dụng chip Atmega8 hoặc Atmega48.
      Trước hết hãy download các công cụ cần thiết từ website của Flischl  và thực hiện theo các chỉ dẫn bên dưới.
      Giải nén file gz (hoặc file rar) vừa download về bạn sẽ thấy có 3 thư mục và 2 files bên trong. Thư mục thứ nhất tên bin, bên trong thư mục này có chứa 2 thư mục con là firmware chứa file hex cho chip master và win-driver chứa driver cho máy tính. Thư mục thứ hai tên circuit chứa sơ đồ mạch nguyên lý của mạch nạp USBasp (cả file pdf và file sch cho phần mềm Eagle). Thư mục thứ ba tên firmware chứa mã nguồn của firmware cho chip Master. Nếu bạn chỉ muốn làm mạch nạp thì bỏ qua thư mục thứ ba này.
      Chế tạo mạch: tham khảo sơ đồ mạch điện và chế tạo một mạch điện theo mạch nguyên lý trong file pdf hoặc trong hình 5 bên dưới.

Hình 7. Sơ đồ mạch nạp USBasp của Flisch.
      Khi chế tạo mạch điện trên, bạn lưu ý một số điểm như sau: hãy bỏ qua Jumper JP2, nối trực tiếp JP1 lại (dùng mạch nạp cấp nguồn luôn cho chip).  Bạn có thể dùng 1 trong 2 loại chip là Atmega8 hoặc Atmega48, chú ý dùng loại chip cho phép tần số clock lên đến 16MHz (các chip có mã 16 ở phía sau, ví dụ Atmega8-16PU).
      Nạp firmware cho chip Master (Atmega8 hoặc Atmega48): trước khi gắn chip mega8 vào mạch điện hình 7 bạn phải nạp firmware (file hex trong thư mục bin\firmware) vào chip này bằng một mạch nạp bất kỳ mà bạn có (ví dụ mạch STK200/300). Chú ý bạn cần set fuse bit cho chip này sao cho nguồn thạch anh ngoài 12MHz đươc sử dụng (hãy đặt 2 bit BOOTZS0 và BOOTSZ1 bằng 0 (checked), các bit còn lại bằng 1 (bỏ trống) - tham khảo bài Fuse bits).
      Cài driver cho windows: sau khi chế tạo mạch và nạp firmware cho chip master, bạn kết nối mạch nạp với cổng USB của máy tính. Một cách tự động, Windows sẽ nhận diện một phần cứng mới được kết nối và yêu cầu cài đặt driver cho thiết bị. Hãy browse đến thư mục "bin\win-driver\libusb_0.1.12.1". Quá trình cài driver sẽ bắt đầu, nếu trong quá trình cài đặt Windows thông báo lỗi bạn hãy nhấn "Continue anyway..." để tiếp tục cài đặt đến khi hoàn tất. Sau khi cài đặt driver trong Device list sẽ xuất hiện một thiết bị gọi là USBasp. Hãy vào Device manager (Nhấn tổ hợp phím Wins+Break, chọn tab Hardware và nhấn Device manager) bạn sẽ thấy thiết bị này như hình bên dưới.

      Sử dụng mạch nạp USBasp: bạn có thể dùng mạch nạp USBasp với phần mềm nạp avrdude tích hợp sẵn trong Winavr, hoặc Bascomavr, hoặc eXtreme Burner, hoặc Khazama AVR Programmer. Theo gợi ý của người viết, bạn nên dùng phần Khazama cho mạch USBasp vì phần mềm này có giao diện thân thiện, việc set fuse bit cũng dễ dàng như các phần mềm Ponyprog hay CodevisionAVR programmer. 

Hình 8. Phần mềm Khazama cho mạch nạp USBasp
Sáng lập Bởi:
phamhoangvuong.com

NGUỒN: HOCAVR.COM


Tham khảo thêm:


Video hướng dẫn sử dụng phần mềm Altium Designer:

Phần I: 


                                                 
Phần II:
                                                   
Phần III:
                                                 
Phần IV:
                                                  


  Phạm Văn Ngọc Anh- 01644326695
(Nguồn: Tuấn Anh KTMT)



Khi nhấn nút "Tải Về Máy", bạn sẽ vào trang quảng cáo, vui lòng chờ 5 giây. Nút hiện ra ở góc phải phía trên, nhấn vào để đến trang download

Phần mềm Hyper Terminal hercules 3.2.4 có giao diện rất dễ sử dụng để Truyền/Nhận dữ liệu lên máy tính, file .exe không cần cài đặt.
Dung lượng nhỏ 1.25Mb.

Chọn Tab Serial để cài đặt các thông số:
Name: chọn tên cổng
Baud: tốc độ truyền
Data size: số Bit mỗi lần truyền / nhận
Parity: Bit kiểm tra chẵn / lẻ

Xong ấn Open để bắt đầu kết nối. Nếu kết nối thành công hay không sẽ có thông báo, khi cổng COM nào đó đang bận thì sẽ báo lỗi.
Phạm Văn Ngọc Anh- 01644326695


Download: 
Keil 4


Khi nhấn nút "Tải Về Máy", bạn sẽ vào trang quảng cáo, vui lòng chờ 5 giây. Nút hiện ra ở góc phải phía trên, nhấn vào để đến trang download
keygen

Khi nhấn nút "Tải Về Máy", bạn sẽ vào trang quảng cáo, vui lòng chờ 5 giây. Nút hiện ra ở góc phải phía trên, nhấn vào để đến trang download
Bước 1: các bạn cài đặt bình thường sau đó mở keil lên
Bước 2: chọn file -> license management


Bước 3: coppy CID của keil, mở keygen lên và paste vào CID của keygen chọn generate
ròi coppy đoạn mã sinh ra của keygen và paste vào new license code ID của keil chọn ok là xong.








Phần mềm 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ư MCS-51, 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, Motorola.

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ả.
Hoàn toàn tương thích vơí windows 7.
Phía dưới là link tải bản FULL, có hướng dẫn cài đặt bằng hình ảnh:

Khi nhấn nút "Tải Về Máy", bạn sẽ vào trang quảng cáo, vui lòng chờ 5 giây. Nút hiện ra ở góc phải phía trên, nhấn vào để đến trang download

Phạm Văn Ngọc Anh- 01644326695

Pass: dientumaytinh.com

CCS là trình biên dịch lập trình bằng ngôn ngữ C cho Vi điều
 khiển PIC, là sự tích hợp của 3 trình biên dịch riêng biệt cho 3 dòng PIC khác nhau:
- PCB cho dòng PIC 12-bit opcodes
- PCM cho dòng PIC 14-bit opcodes
- PCH cho dòng PIC 16 và 18-bit


1. Tổng Quan Về CCS
1.1. Vì sao ta sử dụng CCS?
Sự ra đời của một loại vi điều khiển đi kèm với việc phát triển phần mềm ứng dụng cho việc lập trình cho con vi điều khiển đó. Vi điều khiển chỉ hiểu và làm việc với hai con số 0 và 1. Ban đầu để việc lập trình cho VĐK là làm việc với dãy các con số 0 và 1. Sau này khi kiến trúc của Vi điều khiển ngày càng phức tạp, số luợng thanh ghi lệnh nhiều lên, việc lập trình với dãy các số 0 và 1 không còn phù hợp nữa, đòi hỏi ra đời một ngôn ngữ mới thay thế. Và ngôn ngữ lập trình Assembly. Ở đây ta không nói nhiều đến Assmebly. Sau này khi lập trình cho Vi điều khiển một cách ngắn gọn và dễ hiểu hơn đã dẫn đến sự ra đời củangôn ngữ C ra đời, nhu cầu dùng ngôn ngữ C đề thay cho ASM trong việc mô tả các lệnh nhiều chương trình soạn thảo và biên dịch C cho Vi điều khiển : Keil C, HT‐PIC, MikroC,CCS…
Tôi chọn CCS cho bài giới thiệu này vì CCS là một công cụ lập trình C mạnh cho Vi điều khiển PIC. Những ưu và nhược điểm của CCS sẽ được đề cập đến trong các phần dưới đây.
Bạn có thể xem và tải chương trình CCS tại đây:

1.2. Giới thiệu về CCS
CCS là trình biên dịch lập trình ngôn ngữ C cho Vi điều khiển PIC của hãng Microchip.
Chương trình là sự tích hợp của 3 trình biên dich riêng biết cho 3 dòng PIC khác nhau đó là:
‐ PCB cho dòng PIC 12‐bit opcodes
‐ PCM cho dòng PIC 14‐bit opcodes
‐ PCH cho dòng PIC 16 và 18‐bit
Tất cả 3 trình biên dich này đuợc tích hợp lại vào trong một chương trình bao gồm cả trình soạn thảo và biên dịch là CCS, phiên bản mới nhất là PCWH Compiler Ver 3.227.


Giống như nhiều trình biên dich C khác cho PIC, CCS giúp cho người sử dụng nắm bắt nhanh được vi điều khiển PIC và sử dụng PIC trong các dự án. Các chương trình diều khiển sẽ được thực hiện nhanh chóng và đạt hiệu quả cao thông qua việc sử dụng ngôn ngữ lạp trình cấp cao – Ngôn ngữ C.Tài liệu hướng dẫn sử dụng có rất nhiều, nhưng chi tiết nhất chính là bản Help đi kèm theo phần mềm (tài liệu Tiếng Anh). Trong bản trợ giúp nhà sản xuất đã mô tả rất nhiều về hằng, biến, chỉ thị tiền xủa lý, cấu trúc các câu lệnh trong chương trình, các hàm tạo sẵn cho người sử dụng…
2. Tạo PROJECT đầu tiên trong CCS
Để tạo một Project trong CCS có nhiều cách, có thể dùng Project Wizard, Manual Creat, hay đơn giản là tạo một Files mới và thêm vào đó các khai báo ban đầu cần thiết và “bắt buộc”.
Dưới đây sẽ trình bày cách tạo một project hợp lệ theo cả 3 phương pháp. Một điều ta cần chú ý khi tạo một Project đó là: khi tạo bắt cứ một Project nào mới thì ta nên tạo một thư mục mới với tên liên quan đến Project ta định làm, rồi lưu các files vào đó. Khi lập trình và biên dịch, CCS sẽ tạo ra rất nhiều files khác nhau, do đó nếu để chung các Project trogn một thư mục sẽ rất mất thời gian trong việc tìm kiếm sau này. Đây cũng là quy tắc chung khi ta làm việc với bất kỳ phần mềm nào, thiết kế mạch hay lập trình.
Việc đầu tiên bạn cần làm là khởi động máy tính và bật chương trình PIC C Compiler.
2.1. Tạo một PROJECT sử dụng PIC Wizard
Trước hết bạn khởi động chương trình làm việc PIC C Compiler. Từ giao diện chương trình bạn di chuột chọn Project ‐> New ‐> PIC Wizard nhấn nút trái chuột chọn.











Sau khi nhấn chuột, một cửa sổ hiện ra yêu cầu ban nhập tên Files cần tạo. Bạn tạo một
thư mục mới, vào thư mục đó và lưu tên files cần tạo tại đây.













 
Cửa sổ Save As
Như vậy là xong bước đầu tiên. Sau khi nhấn nút Save, một cửa sổ New Project hiện ra. Trong của sổ này bao gồm rất nhiều Tab, mỗi Tab mô tả về một vài tính năng của con PIC. Ta sẽ chọn tính năng sử dụng tại các Tab tương ứng.
Dưới đây sẽ trình bày ý nghĩa từng mục chọn trong mỗi Tab. Các mục chọn này chính là đề cập đến các tính năng của một con PIC, tùy theo từng loại mà sẽ có các Tab tương ứng. Đối với từng dự án khác nhau, khi ta cần sử dụng tính năng nào của con PIC thì ta sẽ chọn mục đó. Tổng cộng có 13 Tab đẻ ta lưa chọn. Tôi giới thiệu những Tab chính thường hay được sử dụng.

2.1.1. Tab General

Tab General cho phép ta lựa chọn loại PIC mà ta sử dụng và một số lựa chọn khác như chọn tần số thạch anh dao động, thiết lập các bit CONFIG nhằm thiết lập chế độ hoạt động cho PIC.

















 Tab General
‐ Device: Liệt kê danh sách các loại PIC 12F, 16F, 18F… Ta sẽ chọn tên Vi điều khiển PIC mà ta sử dụng trong dự án. Lấy ví dụ chọn PIC16F877A.
‐ Oscilator Frequency: Tần số thạch anh ta sử dụng, chọn 20 MHz (tùy từng loại)
‐ Fuses: Thiết lập các bit Config như: Chế độ dao động (HS, RC, Internal ), chế độ bảo vệ Code, Brownout detected…
‐ Chọn kiểu con trỏ RAM là 16‐bit hay 8‐bit.
2.1.2. Tab Communications
Tab Communications liệt kê các giao tiếp nối tiếp mà một con PIC hỗ trợ, thường là RS232 và I2C, cùng với các lựa chọn để thiết lập chế độ hoạt động cho từng loại giao tiếp.
Giao tiếp RS232
Mỗi một Vi điều khiển PIC hỗ trợ một cổng truyền thông RS232 chuẩn. Tab này cho phép ta lựa chọn chân Rx, Tx, tốc độ Baud, Data bit, Bit Parity…
Giao tiếp I2C
Để sử dụng I2C ta tích vào nút chọn Use I2C, khi đó ta có các lựa chọn: Chân SDA, SCL, Tốc độ truyền (Fast ‐ Slow), chế độ Master hay Slave, địa chỉ cho Salve.
















Tab Communications

2.1.3. Tab SPI and LCD

Tab này liệt kê cho người dùng các lựa chọn đối với giao tiếp nối tiếp SPI, chuẩn giao tiếp tốc độ cao mà PIC hỗ trợ về phần cứng. Chú ý khi ta dùng I2C thì không thể dùng SPI và ngược lại. Để có thể sử dụng cả hai giao tiếp này cùng một lúc thì buộc một trong 2 giao tiếp phải lập trình bằng phần mềm (giồng như khi dùng I2C cho các chip AT8051, không có hỗ trợ phần cứng SSP).
Phần cấu hình cho LCD dành cho các chíp dòng 18F và 30F.

















Tab SPI and LCD

2.1.4. Tab Timer
Liệt kê các bộ đếm/định thời mà các con PIC dòng Mid‐range có: Timer0, timer1, timer2, WDT…
Trong các lựa chọn cấu hình cho các bộ đếm /định thời có: chọn nguồn xung đồng hồ (trong/ngoài), khoảng thời gian xảy ra tràn…

















Tab Timer

2.1.5. Tab Analog

Liệt kê các lựa chọn cho bộ chuyển đổi tương tự/số (ADC) của PIC. Tùy vào từng IC cụ thể mà có các lựa chọn khác nhau, bao gồm:
‐ Lựa chọn cổng vào tương tự
‐ Chọn chân điện áp lấy mẫu (Vref)
‐ Chọn độ phân giải: 8‐bit = 0 ~ 255 hay 10‐bit = 0~1023
‐ Nguồn xung đồng hồ cho bộ ADC (trong hay ngoài), từ đó mà ta có được tốc độ lấy mẫu, thường ta chọn làinternal 2‐6 us.
‐ Khi không sử dụng bộ ADC ta chọn none

















Tab Analog
2.1.6. Tab Other
Tab này cho phép ta thiết lập các thông số cho các bộ Capture/Comparator/PWM.
Capture ‐ Bắt giữ
‐ Chọn bắt giữ xung theo sườn dương (rising edge) hay sườn âm (falling edge) của xung  vào
‐ Chọn bắt giữ sau 1, 4 hay 16 xung (copy giá trị của TimerX vào thanh ghi lưu trữ CCCPx  sau 1, 4 hay 16 xung).
Compare ‐ So sánh
‐ Ta có các lựa chọn thực hiện lệnh khi xayư ra bằng nhau giữa 2 đối tượng so sánh là giá  trị của Timer1 với giá trị lưu trong thanh ghi để so sánh. Bao gồm:
o Thực hiện ngắt và thiết lập mức 0
o Thực hiện ngắt và thiết lập mức 1
o Thực hiện ngắt nhưng không thay đổi trạng thái của chân PIC.
o Đưa Timer1 về 0 nhưng không thay đổi trạng thái chân.

PWM ‐ Điều chế độ rộng xung

‐ Lựa chọn về tần số xung ra và duty cycle. Ta có thể lựa chọn sẵn hay tự chọn tần số, tất  nhiên tần số ra phải nằm trong một khoảng nhất định.

Comparator ‐ So sánh điện áp

‐ Lựa chọn mức điện áp so sánh Vref. Có rất nhiều mức điện áp để ta lựa chọn. Ngoài ra ta  còn có thể lựa chọn cho đầu vào của các bộ so sánh.

















Tab Other

2.1.7. Tab Interrupts và Tab Driver

Tab Interrupts cho phép ta lựa chọn nguồn ngắt mà ta muốn sử dụng. Tùy vào từng loại PIC mà số lượng nguồn ngắt khác nhau, bao gồm: ngắt ngoài 0(INT0), ngắt RS232, ngắt Timer, ngắt I2C‐SPI, ngắt onchange PORTB.v.v…
Tab Drivers được dùng để lựa chọn những ngoại vi mà trình dịch đã hỗ trợ các hàm giao tiếp. Đây là nhưng ngoại vi mà ta sẽ kết nối với PIC, trong các IC mà CCS hỗ trợ, đáng chú ý là các loại EEPROM như 2404, 2416, 2432, 9346, 9356…Ngoài ra còn có IC RAM PCF8570, IC thời gian thực DS1302, Keypad 3x4, LCD, ADC… Chi tiết ta có thể xem trong thư mục Driver của chương trình: \...\PICC\Drivers
















Tab Interrupts

















Tab Driver

Sau các bước chọn trên, ta nhấn OK để kết thúc quả trình tạo một Project trong CCS, một Files ten_project.cđược tạo ra, chứa những khai báo cần thiết cho PIC trong một Files ten_project.h.
Sau đây là ví dụ về cấu trúc 1 chương trình trong CCS :

[alert title="Code Mẫu" icon="info-circle"]
#include < 16F877 .h >
#device PIC6f877 *=16 ADC=10
#use delay(clock=20000000)
 . . . . 
Int16 a,b;
 . . . .
Void xu_ly_ADC ( )
{ . . .
 . . . 
}

#INT_TIMER1
Void xu_ly_ngat_timer ( )
{ . . .
 . . .
}

Main ( )
{ . . .
 . . .
}

[/alert]
+ Đầu tiên là các chỉ thị tiền xử lý : # . . . có nhiệm vụ báo cho CCS cần sử dụng những gì trong chương trình C như dùng VXL gì , có dùng giao tiếp PC qua cổng COM không , có dùng  ADC không , có dùng DELAY không  , có biên dịch kèm các file hay không . . . 
+ Các khai báo biến . 
+ Các hàm con do ta viết : xu_ly_ADC ()  , . . .
+ Các hàm phục vụ ngắt theo sau bởi 1 chỉ thị tiền xử lý cho biết dùng ngắt nào.
+ Chương trình chính .
+ Một chương trình C có thể được viết luôn tuồn trong  hàm main () , nếu chúng rất ngắn và đơn giản. Nhưng khi chương trình bắt đầu dài ra , phức tạp lên 1 chút thì phải phân chia trong các hàm con .

Các hàm này có thể là :

1/ Hàm không trả về giá trị.
Ví dụ :
Void xu_ly( )
z= x+y ;
}
Hàm trên chỉ thực hiện các lệnh trong thân hàm , khi gọi hàm này chỉ đơn giản viết :

Xu_ly( ) ;

2/ Hàm có trả về trị
Ví dụ :
int  xu_ly ( int a , int b)
{
 . . . . . .
Return (a+b) ;
}
Hàm trên sẽ trả về tổng  (a+b) . Khi sử dụng , ví dụ tính tổng 2 biến e ,f , chương trình như sau (trong hàm main() ) :
Main()
{
Int e ,f  ,g ;
e=7 ;
f= 4;
g = xu_ly(e ,f );   // giá trị g=28
}
+ Mỗi hàm con nên được viết để thực hiện 1 chức năng chuyên biệt nào đó  . Bên trong 1  hàm con có thể gọi 1 hay nhiều hàm khác  . Cách thức hoạt động như  viết 1 chương trình C trên máy tính . 
+ Nếu chương trình lớn hơn nữa có thể làm file c rất dài và do đó rất khó kiểm soát , nên sẽ cần phân chia ra các file c . trong đó file chính chứa hàm main sẽ được biên dịch . Các file c khác chứa các hàm phục vụ chuyên biệt như : cho LCD , . . .Trong file chính chỉ cần thêm dòng #include < filex.c > là tất cả hàm cần dùng chứa trong file x sẽ được biên dịch vào file hex chung.  Các ví dụ trong thư mục của CCS nếu có sử dụng LCD sẽ chèn 1 dòng #include  và do đó sẽ gọi được các hàm trong file này mà không cần phải viết lại . điều này có nghĩa là ta có thể viết các file c chứa mã tổng quát có thể dùng chung cho nhiều project , tức là tái sử dụng mã , thay vì phải viết lại chuyên biệt cho từng project . Đây là cách làm chuyên nghiệp cho những project lớn .

Author Name

{picture https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjN0PUWA2genMqX3Sm26mBTX_30OJgDenoIi4K6BR-E1vl3nI7LALp0X759QZgzqrMcGBB7jEbdZnubJbp4n2ZZ22KT196CWCg9DLs3MfEivocdmkjZEPEn-A42hyphenhyphen9dmsca0VIDQr_LjqM/s512-Ic42/pham-van-ngoc-anh.jpg}

Tôi là Ngọc Anh. Tôi đến từ Nghệ An. Tôi tốt nghiệp một trường đại học tại Sài Gòn. Hiện tôi đang phát triển công ty riêng. Liên lạc với tôi qua:

{facebook https://www.facebook.com/phamvanngocanh}
{twitter https://twitter.com/nghiphong1993}
{google https://plus.google.com/+dientuchiase/posts}
{youtube https://www.youtube.com/channel/UCeJKhA_goBNFmDw6RKNtmYQ}

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.