Chương II: Tìm hiểu vi điều khiển AVR pps

30 1.2K 9
Chương II: Tìm hiểu vi điều khiển AVR pps

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương II: Tìm hiểu vi điều khiển AVR 2.1 Giới thiệu Tổng quan về AVR − AVR là một họ vi điều khiển do hãng Atmel sản xuất. Atmel cung cấp các vi điều khiển phổ biến như 8051, AT91 ARM7, Atmel AVR 8-bit RISC, và mới đây là DSP dual-CPU AT57. Atmel AVR32 là một vi điều khiển lai DSP với 7 tầng pipeline và khả năng thực thi song song AVR là chip vi điều khiển 8 bits với cấu trúc tập lệnh đơn giản hóa-RISC(Reduced Instruction Set Computer), một kiểu cấu trúc đang thể hiện ưu thế trong các bộ xử lí. Hình 1 ảnh một chip AVR 2.1.1 Ưu thế của MCU AVR: Kết nối phần cứng cho AVR đơn giản với những linh kiện thông dụng như điện trở, tụ điện, thạch anh. Dòng ra điều khiển Port lớn và không cần dùng điện trở kéo. Thiết kế mạch nạp cho AVR khá đơn giản giao tiếp qua cổng LPT, COM, USB. Hỗ trợ ISP lập trình trực tiếp trên mạch. Hỗ trợ lập trình trên nền ngôn ngữ ASM, C với nhiều công cụ hỗ trợ như CodeVision, AVR Studio. Hầu hết các chip AVR có những tính năng (features) sau: Xung External OSC lên đến 16Mhz và Internal OSC 8Mhz. Bộ nhớ chương trình Flash có thể lập trình lại rất nhiều lần và dung lượng lớn có thể ghi và xóa trên 1000 lần. Bên cạnh đó bộ nhớ EEPROM có thể lập trình được. 32 Port xuất nhập. 8 bits, 16 bits timer/counter tích hợp PWM. Các bộ chuyển đối Analog – Digital phân giải 10 bits Analog comparator. Giao diện nối tiếp USART (tương thích chuẩn nối tiếp RS-232). •Giao diện nối tiếp Two –Wire –Serial (tương thích chuẩn I2C) Master và Slaver. Giao diện nối tiếp Serial Peripheral Interface (SPI). 2. 1.2Một số dòng AVR: Nhìn chung AVR có các dòng chính sau: * tinyAVR — the ATtiny series - 1–8 kB program memory - 6–32-pin package - Limited peripheral set * megaAVR — the ATmega series - 4–256 kB program memory - 28–100-pin package - Extended instruction set (Multiply instructions and instructions for handling larger program memories) - Extensive peripheral set - XMEGA — the ATxmega series - 16–384 kB program memory - 44–64–100-pin package (A4, A3, A1) - Extended performance features, such as DMA, "Event System", and cryptography support. - Extensive peripheral set with DACs - Application specific AVR - megaAVRs with special features not found on the other members of the AVR family, such as LCD controller, USB controller, advanced PWM, CAN etc. Một số dòng AVR phổ biến như : AT90S1200 , AT90S2313 , AT90S2323 AT90S2343, AT90S2333, AT90S4433, AT90S4414, AT90S8515, AT90S4434, AT90S8535, AT90C8534, ATtiny10, ATtiny11, ATtiny12, ATtiny15, ATtiny22, ATtiny26, ATtiny28, ATmega16, ATmega8/8515/8535, ATmega161, ATmega162, ATmega163, ATmega169 ATmega32 ATmega323 ATmega103 ATmega64/128/2560/2561 2.2 Cấu trúc phần cứng của Atmega16 2.2.1 Cấu trúc vi điều khiển Atmega 16 Sơ đồ cấu trúc CPU của ATmega16 để tăng tối đa hiệu suất và tính tương thích, vi điều khiển AVR sử dụng kiến trúc Havard tức là bộ nhớ dữ liệu và bộ nhớ chương trình tách biệt nhau cả về vùng nhớ và đường bus. Bộ nhớ chương trình của AVR là bộ nhớ Flash có dung lượng 128 Kb. Bộ nhớ chương trình có độ rộng bus là 16 bit. Những địa chỉ đầu tiên của bộ nhớ chương trình được dùng cho bảng vecto ngắt. Bộ nhớ chương trình Flash được chia thành 2 phần, phần chương trình khởi động và phần chương trình ứng dụng. Cả hai phần đều dành những bit khóa cho việc bảo vệ ghi và đọc/ghi. Lệnh SPM dùng ghi vào phần bộ nhớ chương trình Flash ứng dụng phải ở một nơi nhất định trong phần bộ nhớ chương trình khởi động. Bộ nhớ dữ liệu của AVR chia làm 2 phần chính là bộ nhớ SRAM và bộ nhớ EEPROM. Tuy cùng là bộ nhớ dữ liệu nhưng hai bộ nhớ này lại nằm tách biệt nhau và được đánh địa chỉ riêng. Các câu lệnh trong bộ nhớ chương trình được thực hiện với một cấp ống dẫn riêng. Khi một lệnh được thực hiện thì lệnh tiếp theo được mang về sẵn từ bộ nhớ chương trình. Ý tưởng này cho phép mỗi lệnh được thực hiện trong chỉ một chu kỳ xung nhịp. Bộ nhớ chương trình trong hệ thống là bộ nhớ Flash có thể lập trình lại. Truy cập nhanh tệp thanh ghi chứa 32 thanh ghi 8 bit làm việc mục đích chung với thời gian truy cập trong một chu kỳ xung nhịp. Điều này cho phép đơn vị xử lý số học và logic (ALU) hoạt động trong một chu kỳ đơn. Một hoạt động điển hình của ALU là hai toán hạng được lấy ra từ tệp thanh ghi, hoạt động thực hiện tính toán giữa các toán hạng, sau đó kết quả lại được lưu vào tệp thanh ghi, tất cả các công việc đó được thực hiện trong một chu kỳ xung nhịp. Có 6 trong 32 thanh ghi có thể được sử dụng như 3 con trỏ thanh ghi địa chỉ gián tiếp 16 bit cho việc ghi địa chỉ vùng nhớ dữ liệu, cho phép có thể tính toán địa chỉ. Một trong số những con trỏ địa chỉ này có thể dược dùng nhưmột con trỏ địa chỉ để tra bảng trong bộ nhớ chương trình Flash. Các thanh ghi này là các thanh ghi 16 bit X, Y và Z. ALU hỗ trợ các phép tính số học và logic giữa các thanh ghi hoặc giữa hằng số với một thanh ghi. Các phép tính với 1 thanh ghi riêng lẻ có thể cũng được thực hiện trong ALU. Sau mỗi phép tính số học thanh ghi trạng thái được cập nhật để phản ánh thông tin về kết quả của phép tính. Dòng chương trình được qui định bởi các lênh nhảy có điều kiện và không điều kiện và các lệnh gọi, có thể trực tiếp địa chỉ trong toàn bộ không gian địa chỉ. Hầu hết các lệnh của AVR có dạng 1 từ 16 bit. Mỗi địa chỉ của bộ nhớ chương trình chứa một lệnh 16 hoặc 32 bit. Trong suốt thời gian phục vụ ngắt hoặc gọi chương trình con, địa chỉ của bộ đếm chương trình được cất vào ngăn xếp (stack). Ngăn xếp thực tế được đặt trong vùng dữ liệu chung SRAM, do đó kích thước của ngăn xếp chỉ bị giới hạn bởi tất cả kích thước SRAM và cách sử dụng SRAM. Tất cả người sử dụng chương trình phải khai báo vị trí ban đầu của SP (stack pointer: con trỏ ngăn xếp) trong chương trình reset (trước khi thực hiện các chương trình con hay thực hiện ngắt). Con trỏ ngăn xếp SP được đọc/ghi có thể truy nhập vào vùng nhớ I/O. Bộ nhớ dữ liệu SRAM có thể truy nhập dễ dàng thông qua 5 chế độ địa chỉ khác nhau được hỗ trợ trong kiến trúc của AVR. Đơn vị ngắt linh hoạt có các thanh ghi điều khiển riêng của nó trong vùng nhớ I/O với một bit cho phép ngắt toàn cục trong thanh ghi trạng thái. Tất cả các ngắt đều có các vector ngắt riêng biệt trong bảng vector ngắt. Các ngắt có quyền ưu tiên ngắt khác nhau tùy thuộc vào vị trí của vector ngắt. Vector ngắt có địa chỉ càng thấp có mức ưu tiên càng cao. Vùng nhớ I/O chứa 64 địa chỉ cho các chức năng ngoại vi như các thanh ghi điều khiển, SPI, và các chức năng I/O khác. Vùng nhớ I/O có thể truy cập trực tiếp hoặc như các vị trí trong vùng nhớ dữ liệu theo địa chỉ trong tệp thanh ghi từ $20 đến $5F 2.2.2 Tính năng vi điều khiển AVR Atmega16 Ngày nay công nghệ số đã và đang được ứng dụng rộng rãi trong mọi ngành của hoa học kỹ thuật. Ở các nước công nghiệp, truyền động điện đã ứng dụng rất thành công công nghệ này với những ưu việt hơn so với phương pháp điều khiển tương tự truyền thống như: - Mềm dẻo trong việc thay đổi cấu trúc và tham số của hệ thống tự động. - Độ chính xác cao. - Có khả năng chống nhiễu tốt. - Dễ dàng tự động hóa. Việc ứng dụng công nghệ số, sử dụng vi điều khiển trong việc thiết kế và chế tạo bộ khởi động mềm là hoàn toàn phù hợp với điều kiện thực tế và xu thế chung. Sử dụng công nghệ số trong thiết kế, chế tạo bộ khởi động mềm có thể giúp ta dễ dàng tạo dáng đường đặc tính khởi động theo ý muốn mà bằng mạch điều khiển tương tự để làm được việc này thì sẽ gặp nhiều khó khăn. Vi điều khiển ATmega16 là vi điều khiển thuộc họ AVR của hãng Atmel, là một dòng vi điều khiển tích hợp cao với những chức năng cơ bản nhưng rất cần thiết trong những ứng dụng cụ thể. Vi điều khiển ATmega16 cung cấp những tính năng sau: - 16K bytes bộ nhớ chương trình dạng flash có thể Read-While-Write . - 512 bytes EEPROM. - 1K byte RAM tĩnh (SRAM). - 32 đường kết nối I/O mục đích chung. - 32 thanh ghi làm việc mục đích chung được nối trực tiếp với đơn vị xử lý số học và logic (ALU). - Một giao diện JATG cho quét ngoại vi. - Lập trình và hỗ trợ gỡ rối trên chip. - 3 Timer/Counter linh hoạt với các chế độ so sánh. - Các ngắt ngoài và ngắt trong (21 nguyên nhân ngắt). - Chuẩn truyền dữ liệu nối tiếp USART có thể lập trình. - Một ADC 10 bit, 8 kênh với các kênh đầu vào ADC có thể lựa chọn bằng cách lập trình. - Một Watchdog Timer có thể lập trình với bộ tạo dao động bên trong. - Một cổng nối tiếp SPI ( serial peripheral interface). - 6 chế độ tiết kiệm năng lượng có thể lựa chọn bằng phần mềm. - Lựa chọn tần số hoạt động bằng phần mềm. - Đóng gói 40 chân kiểu PDIP. - Tần số tối đa 16MHz. - Điện thế 4,5– 5,5V 2.2.3 Mô tả hoạt động của cấu trúc Thanh ghi trạng thái là một thanh ghi có 8 bit lưu trữ trạng thái của ALU sau các phép tính số học và logic. Hình 5. Thanh ghi trạng thái SREG C: Carry Flag ;cờ nhớ (Nếu phép toán có nhớ cờ sẽ được thiết lập) Z: Zero Flag ;Cờ zero (Nếu kết quả phép toán bằng 0) N: Negative Flag (Nếu kết quả của phép toán là âm) V: Two’s complement overflow indicator (Cờ này được thiết lập khi tràn số bù 2) V, For signed tests (S=N XOR V) S: N H: Half Carry Flag (Được sử dụng trong một số toán hạng sẽ được chỉ rõ sau) T: Transfer bit used by BLD and BST instructions(Được sử dụng làm nơi chung gian trong các lệnh BLD,BST). I: Global Interrupt Enable/Disable Flag (Đây là bit cho phép toàn cục ngắt. Nếu bit này ở trạng thái logic 0 thì không có một ngắt nào được phục vụ.) Con trỏ ngăn xếp (SP)Là một thanh ghi 16 bit nhưng cũng có thể được xem như hai thanh ghi chức năng đặc biệt 8 bit. Có địa chỉ trong các thanh ghi chức năng đặc biệt là $3E (Trong bộ nhớ RAM là $5E). Có nhiệm vụ trỏ tới vùng nhớ trong RAM chứa ngăn xếp. Hình 6. Thanh ghi con trỏ ngăn xếp Khi chương trình phục vu ngắt hoặc chương trình con thì con trỏ PC được lưu vào ngăn xếp trong khi con trỏ ngăn xếp giảm hai vị trí. Và con trỏ ngăn xếp sẽ giảm 1 khi thực hiện lệnh push. Ngược lại khi thực hiện lệnh POP thì con trỏ ngăn xếp sẽ tăng 1 và khi thực hiện lệnh RET hoặc RETI thì con trỏ ngăn xếp sẽ tăng 2. Như vậy con trỏ ngăn xếp cần được chương trình đặt trước giá trị khởi tạo ngăn xếp trước khi một chương trình con được gọi hoặc các ngắt được cho phép phục vụ. Và giá trị ngăn xếp ít nhất cũng phải lơn hơn hoặc bằng 60H (0x60) vì 5FH trỏ lại là vùng các thanh ghi. Ngắt là một cơ chế cho phép thiết bị ngoại vi báo cho CPU biết về tình trạng sẵn xàng cho đổi dữ liệu của mình.Ví dụ:Khi bộ truyền nhận UART nhận được một byte nó sẽ báo cho CPU biết thông qua cờ RXC,hợc khi nó đã truyền được một byte thì cờ TX được thiết lập… Khi có tín hiệu báo ngắt CPU sẽ tạm dừng công việc đạng thực hiện lại và lưu vị trí đang thực hiên chương trình (con trỏ PC) vào ngăn xếp sau đó trỏ tới vector phuc vụ ngắt và thức hiện chương trình phục vụ ngắt đó chơ tới khi gặp lệnh RETI (return from interrup) thì CPU lại lấy PC từ ngăn xếp ra và tiếp tục thực hiện chương trình mà trước khi có ngăt nó đang thực hiện. Trong trường hợp mà có nhiều ngắt yêu cầu cùng một lúc thì CPU sẽ lưu các cờ báo ngắt đó lại và thực hiện lần lượt các ngắt theo mức ưu tiên .Trong khi đang thực hiện ngắt mà xuất hiện ngắt mới thì sẽ xảy ra hai trường hợp. Trường hớp ngắt này có mức ưu tiên cao hơn thì nó sẽ được phục vụ. Còn nó mà có mức ưu tiên thấp hơn thì nó sẽ bị bỏ qua. Bộ nhớ ngăn xếp là vùng bất kì trong SRAM từ địa chỉ 0x60 trở lên. Để truy nhập vào SRAM thông thường thì ta dùng con trỏ X,Y,Z và để truy nhập vào SRAM theo kiểu ngăn xếp thì ta dùng con trỏ SP. Con trỏ này là một thanh ghi 16 bit và được truy nhập như hai thanh ghi 8 bit chung có địa chỉ :SPL :0x3D/0x5D(IO/SRAM) và SPH:0x3E/0x5E. Khi chương trình phục vu ngắt hoặc chương trình con thì con trỏ PC được lưu vào ngăn xếp trong khi con trỏ ngăn xếp giảm hai vị trí.Và con trỏ ngăn xếp sẽ giảm 1 khi thực hiện lệnh push. Ngược lại khi thực hiện lệnh POP thì con trỏ ngăn xếp sẽ tăng 1 và khi thực hiện lệnh RET hoặc RETI thì con trỏ ngăn xếp sẽ tăng 2. Như vậy con trỏ ngăn xếp cần được chương trình đặt trước giá trị khởi tạo ngăn xếp trước khi một chương trình con được gọi hoặc các ngắt được cho phép phục vụ. Và giá trị ngăn xếp ít nhất cũng phải lớn hơn 60H (0x60) vì 5FH trỏ lại là vùng các thanh ghi. Ví dụ: char cSREG; cSREG = SREG; /* store SREG value */ /* disable interrupts during timed sequence */ CLI(); EECR |= (1<<EEMWE); /* start EEPROM write */ EECR |= (1<<EEWE); SREG = cSREG; /* restore SREG value (I-bit) */ 2.2.4 sơ đồ chân và chức năng của ATmega16 Hình 2 Sơ đồ chân ATmega 16 Vi điều khiển ATmega16 được hỗ trợ lập trình với ngôn ngữ lập trình bậc cao như ngôn ngữ lập trình C. Điều này giúp cho người sử dụng rất tiện lợi trong việc lập trình cho vi điều khiển Mô tả các chân vi điều khiển ATmega16 - VCC: chân cấp nguồn một chiều - GND: chân nối đất - Port A (PA7 PA0): Cổng A được dùng làm lối vào analog của bộ chuyển đổi A/D. Cổng A cũng được dùng như một cổng I/O 8 bit hai chiều trực tiếp nếu bộ chuyển đổi A/D không được sử dụng. Các chân của port được cung cấp điện trở kéo lên bên trong (được chọn cho từng bit). - Port B(PB7 PB0): Cổng B là một cổng I/O 8 bit hai chiều trực tiếp có các điện trở kéo lên bên trong (được chọn cho từng bit). Ngoài ra Port B còn được sử dụng cho các chức năng đặc biệt khác: - Port C(PC7 PC0): Port C cũng là một cổng I/O 8 bit hai chiều trực tiếp với các điện trở kéo lên bên trong (được chọn cho từng bit). Khi giao diện JTAG được phép hoạt động, các điện trở kéo lên của các chân PC5(TDI), PC3(TMS), và PC2(TCK) sẽ vẫn hoạt động cả khi xảy ra reset. Port C được sử dụng cho giao diện JTAG và các chức năng đặc biệt khác như trong bảng: - Port D(PD7 PD0): là một cổng I/O 8 bit hai chiều trực tiếp có các điện trở kéo lên bên trong (được chọn cho từng bit). Port D cũng được dùng cho các chức năng đặc biệt khác của ATmega16 như trong bảng: - RESET : Là đầu vào reset. Một tín hiệu mực thấp đặt vào chân này trong khoảng thời gian dài hơn độ dài xung nhỏ nhất sẽ phát ra một reset, ngay cả khi xung nhịp không hoạt động. Xung ngắn hơn thì không đảm bảo để phát ra một reset. [...]... trúc điều khiển (flow controls): Các cấu trúc điều khiển cho phép chương trình thực hiện đúng theo ý tưởng của người vi t chương trình Các cấu trúc điều khiển thường dùng trong lập trình C: - “If (điều kiện) câu lệnh;” Nếu điều kiện là đúng thì thực hiện câu lệnh tiếp theo sau, câu lệnh có thể được vi t cùng dòng hay dòng sau từ khóa if Điều kiện là một biểu thức bất kỳ có thể là sự kết hợp của nhiều điều. .. vi t chương trình cho vi điều khiển trong cửa sổ soạn thảo Vi t chương trình xong ta tiến hành biên dịch chương trình và lưu dưới dạng file *.hex bằng cách chọn make trong tab project hoặc ấn tổ hợp phím shift+F9 Khi đó cửa sổ thông tin sẽ hiện ra thông báo lỗi và các cảnh báo nếu có, nếu không có lỗi và cảnh báo thì ta hoàn toàn có thể nạp chương trình vào vi iều khiển 2.3.3 Nạp chương trình cho vi. .. cho vi điều khiển Dùng mạch nạp AVR9 10 USB Programmer, là mạch nạp ISP dùng để lập trình cho tất cả dòng vi iều khiển AVR Từ giao diện chính của CodeVision AVR, ta vào menu Setting → Programmer, xuất hiện hộp thoại Programmer Settings: Lựa chọn các thông số như hình trên, lưu ý cổng COM được chọn phải là cổng đã được gán tương ứng với mạch nạp (Sau khi cài đặt driver cho AVR9 10 USB Programmer thì AVR9 10... cài đặt xong ta chạy chương trình bằng file cvavr.exe trong thư mục: C:/Cvavr/bin Tạo một project mới bằng cách chọn File/New trong bảng chọn (menu option), cửa sổ trong hình vẽ hiện ra: Chọn “Project” sau đó ấn “OK” Cửa số sau hiện ra: Ấn “yes” để sử dụng CodeWizardAVR vi t chương trình tự động 2.3.2 Cách sử dụng CodeWizardAVR lập trình tự động : CodeWizardAVR làm đơn giản hóa vi c vi t những đoạn code... về cách vi t chương trình cho AVR sử dụng ngôn ngữ C Một chương trình C cho AVR thường bao gồm những thàn phần cơ bản như: chú thích (comments), biểu thức (expressions), câu lệnh (statements), khối (blocks), các toán tử, cấu trúc điều khiển (flow controls), hàm (function)… Chú thích (comments): Chú thích là những đoạn trong chương trình dùng để giải thích hay bình phẩm những gì ta làm trong chương trình,... toán tử quan hệ AND(&&), OR(||), … Điều kiện được cho là đúng khi nó khác 0 Trong trường hợp cần thực thi nhiều câu lệnh khi một điều kiện nào đó thỏa mãn ta có thể đặt các câu lệnh đó trong một khối: If (điều kiện) { Ccâu lệnh ; … } - “If (điều kiện) câu lệnh 1; else câu lệnh 2;”: Nếu điều kiện đúng thì thực hiện câu lệnh 1, nếu không đúng thì thực hiện câu lệnh 2 Vi c đặt else và các câu lệnh trên... động 2.3.2 Cách sử dụng CodeWizardAVR lập trình tự động : CodeWizardAVR làm đơn giản hóa vi c vi t những đoạn code mở đầu cho những loại vi điều khiển AVR khác nhau Sau khi ấn “yes” trong cửa số “confirm” ở trên sẽ hiện ra cửa sổ để chọn lựa: Trong bài toán điều khiển bộ khởi động mềm này ta chọn chip ATmega16 với tần số xung nhịp là 16MHz Định dạng các cổng vào/ra phù hợp với mục đích sử dụng bằng... thành phần quan trọng khác là hộp thoại chọn chíp, cần chọn đúng loại AVR trong danh sách trước khi tiến hành các thao tác nạp Phía bên phải là phần Fuse bits, liệt kê danh sách các Fuse tương ứng với loại AVR đã chọn (tên và số lượng các fuse này khác nhau với từng dòng AVR) Mặc định CodeVisionAVR để trống các bit này ( giá trị 1), điều đó không có nghĩa rằng các Fuse bits thực tế trên Chip cũng có... khóa (key words): Từ khóa là những từ quy định của ngôn ngữ C như tên các kiểu dữ liệu (char, int, unsigned int, …); tên các cấu trúc điều khiển (if, while, for,…) Cần chú ý không được đặt tên biến trùng với từ khóa Các kiểu dữ liệu thường dùng khi lập trình C cho vi iều khiển: Tên kiểu dữ liệu Char Unsigned char Signed char Int Unsigned int Singed int Short int Unsigned short int Singed short int Long... (264 – 1 ) 8 - (263 –1) đến (263 –1) 2.3.1 Hướng dẫn cài đặt và tạo một project mới Cài đặt trình biên dịch CoddeVision AVR C trong thư mục mặc định : C:/Cvavr Theo các bước sau Chạy file cài đặt trong thư mục chứa Lựa chọn ngôn ngữ cho giao diện chương trình =>chọn ngôn ngữ và ấn phím ok Chương trình trình yêu cầu đọc hướng dẫn sử dụng và chọn thư mục mặc định sau khi chọn xong thư mục chứa ta ấn next . Chương II: Tìm hiểu vi điều khiển AVR 2.1 Giới thiệu Tổng quan về AVR − AVR là một họ vi điều khiển do hãng Atmel sản xuất. Atmel cung cấp các vi điều khiển phổ biến như 8051,. muốn mà bằng mạch điều khiển tương tự để làm được vi c này thì sẽ gặp nhiều khó khăn. Vi điều khiển ATmega16 là vi điều khiển thuộc họ AVR của hãng Atmel, là một dòng vi điều khiển tích hợp cao. CodeWizardAVR vi t chương trình tự động. 2.3.2 Cách sử dụng CodeWizardAVR lập trình tự động : CodeWizardAVR làm đơn giản hóa vi c vi t những đoạn code mở đầu cho những loại vi điều khiển AVR khác

Ngày đăng: 29/07/2014, 12:20

Mục lục

  • 2.2 Cấu trúc phần cứng của Atmega16

    • 2.2.3 Mô tả hoạt động của cấu trúc

    • 2.3.ngôn ngữ lập trình

      • 2.3.1 Hướng dẫn cài đặt và tạo một project mới

      • 2.3.2 Cách sử dụng CodeWizardAVR lập trình tự động :

      • 2.3.3 Nạp chương trình cho vi điều khiển

      • 2.4.2 Hướng dẫn cài đặt

      • 2.4.3 Hướng dẫn sử dụng proteus

Tài liệu cùng người dùng

Tài liệu liên quan