Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
4,19 MB
Nội dung
Project mẫu AVR (phần 1) 1.Đèn LED nhấp nháy 1s Sơ đồ mạch điện: Sơ đồ mạch điện Chương trình mẫu: Chip type : ATmega16 Program type : Application AVR Core Clock frequency: 8.000000 MHz Memory model : Small External RAM size : Data Stack size : 256 *****************************************************/ #include "mega16.h" #include "delay.h" //khai bao thu vien ham tao tre #define LED PORTC.0 //dinh nghi LED la PORTC.0 void main(void) { // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=Out // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=1 PORTC=0x01; //LED duoc noi vao PORTC.0 vi vay chon trang thai led sau mach duoc cap nguon la LED tat DDRC=0x01; //chon trang thai cho phep xuat dieu khien led while (1) { LED = ~LED;//dao trang thai led ( 1-> va 0-> 1) delay_ms(500); //tre 500ms }; } 2.8 đèn LED nhấp nháy 1s Sơ đồ mạch điện: Sơ đồ mạch điện Chương trình mẫu: Chip type : ATmega16 Program type : Application AVR Core Clock frequency: 8.000000 MHz Memory model : Small External RAM size :0 Data Stack size : 256 *****************************************************/ #include "mega16.h" #include "delay.h" //khai bao thu vien ham tao tre #define LED PORTC //dinh nghia LED la PORTC void main(void) { // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=Out // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=1 PORTC=0xFF; //LED duoc noi vao PORTC vi vay chon trang thai led sau mach duoc cap nguon la LED tat DDRC=0xFF; //chon trang thai cho phep xuat dieu khien led while (1) { LED = ~LED;//dao trang thai led ( 1-> va 0-> 1) delay_ms(500); //tre 500ms }; } 3.4 LED sáng LED tắt luân phiên Sơ đồ mạch điện: Sơ đồ mạch điện Chương trình mẫu: Chip type : ATmega16 Program type : Application AVR Core Clock frequency: 8.000000 MHz Memory model : Small External RAM size :0 Data Stack size : 256 *****************************************************/ #include "mega16.h" #include "delay.h" //khai bao thu vien ham tao tre #define LED PORTC //dinh nghia LED la PORTC void main(void) { // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=Out // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=1 PORTC=0xFF; //LED duoc noi vao PORTC vi vay chon trang thai led sau mach duoc cap nguon la LED tat DDRC=0xFF; //chon trang thai cho phep xuat dieu khien led while (1) { LED = 0x0F;//dao trang thai led ( 1-> va 0-> 1) delay_ms(500); //tre 500ms LED = 0xF0; delay_ms(500); }; } LED sáng từ trái sang phải Sơ đồ mạch điện: Sơ đồ mạch điện Chương trình mẫu: Chip type : ATmega16 Program type : Application AVR Core Clock frequency: 8.000000 MHz Memory model : Small External RAM size :0 Data Stack size : 256 *****************************************************/ #include "mega16.h" #include "delay.h" //khai bao thu vien ham tao tre #define LED PORTC //dinh nghia LED la PORTC void main(void) { char i; //khai bao mot bien su dung de dem so lan dich bit // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=Out // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=1 PORTC=0xFF; //LED duoc noi vao PORTC vi vay chon trang thai led sau mach duoc cap nguon la LED tat DDRC=0xFF; //chon trang thai cho phep xuat dieu khien led while (1) { for(i=0;i { LED = ~(1 >i); //dich so 128 di i don vi ( bit cao nhat la 1)sau dao trang thai bit delay_ms(500); //tre 500ms } }; } 6.LED từ phải qua trái từ trái qua phải Sơ đồ mạch điện: Sơ đồ mạch điện Chương trình mẫu: Chip type : ATmega16 Program type : Application AVR Core Clock frequency: 8.000000 MHz Memory model : Small External RAM size :0 Data Stack size : 256 *****************************************************/ #include "mega16.h" #include "delay.h" //khai bao thu vien ham tao tre #define LED PORTC //dinh nghia LED la PORTC void main(void) { char i; //khai bao mot bien su dung de dem so lan dich bit // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=Out // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=1 PORTC=0xFF; //LED duoc noi vao PORTC vi vay chon trang thai led sau mach duoc cap nguon la LED tat DDRC=0xFF; //chon trang thai cho phep xuat dieu khien led while (1) { for(i=0;i { LED = (0x7f>>i); //dich so 128 di i don vi ( bit cao nhat la 1)sau dao trang thai bit delay_ms(500); //tre 500ms } for(i=0;i { LED = (0xfe< } delay_ms(500); //tre 500ms }; } 6.LED từ phải qua trái từ trái qua phải Sơ đồ mạch điện: Sơ đồ mạch điện Chương trình mẫu: Chip type : ATmega16 Program type : Application AVR Core Clock frequency: 8.000000 MHz Memory model : Small External RAM size :0 Data Stack size : 256 *****************************************************/ #include "mega16.h" #include "delay.h" //khai bao thu vien ham tao tre #define LED PORTC //dinh nghia LED la PORTC void main(void) { char i; //khai bao mot bien su dung de dem so lan dich bit // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=Out // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=1 PORTC=0xFF; //LED duoc noi vao PORTC vi vay chon trang thai led sau mach duoc cap nguon la LED tat DDRC=0xFF; //chon trang thai cho phep xuat dieu khien led while (1) { for(i=0;i { LED = (0x7f>>i); //dich so 128 di i don vi ( bit cao nhat la 1)sau dao trang thai bit delay_ms(500); //tre 500ms } for(i=0;i { LED = (0xfe< } }; } 7.INT_8Leds_1Button Sơ đồ mạch điện: delay_ms(500); //tre 500ms // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // Global enable interrupts #asm("sei") pin_state = 3; while (1) { switch (pin_state) { case 0: while(1){ LED = 0xFF; my_delay(DELAY_VALUE, 0); if (pin_state != 0) break; LED = 0x00; my_delay(DELAY_VALUE, 0); if (pin_state != 0) break; } break; case 1: while(1){ LED = 0b10101010; my_delay(DELAY_VALUE, 1); if (pin_state != 1) break; LED = 0b01010101; my_delay(DELAY_VALUE, 1); if (pin_state != 1) break; } break; case 2: LED = 0xFF; while(1){ if (LED == 0){ LED = 0xFF; my_delay(DELAY_VALUE, 2); } if (pin_state != 2) break; LED = (LED