Trang chủ Chưa phân loại(AVR) 1 Nút Nhấn Nhiều Chức Năng – CodeVisionAVR

(AVR) 1 Nút Nhấn Nhiều Chức Năng – CodeVisionAVR

bởi Admin
5 lượt xem 1 Phút đọc

Trong bài viết này mình sẽ viết chương trình sử dụng 1 nút nhấn 2 chúc năng với ATMEGA16

Sơ đồ mô phỏng

Sơ đồ giải thuật

Code

/*******************************************************
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> #define BT PINA.0 #define LED1 PORTB.0 #define LED2 PORTB.1 unsigned char count_T0,count; interrupt [TIM0_OVF] void timer0_ovf_isr(void) { TCNT0 = 130; // luu gia tri dem count_T0++; } void main(void) { DDRA = 0x00; PORTA = 0xff; DDRB = 0xff; PORTB = 0x00; TCCR0 = (1<<CS01)|(1<<CS00); //prescaler = 64 TCNT0 = 130; // x= 0.001(1ms) * 8000000 / 64 = 125 // TCNT0 = 255 - 125 = 130 TIMSK |= (1<<TOIE0); // mode Normal, cho phép ngat #asm ("sei") while (1) { if (!BT) { count = 0; do { if (count_T0 > 200) { count++; count_T0 = 0; } } while ((count < 5) && (!BT)); if (count == 5) { LED1 = ~LED1; while(!BT); } else { LED2 = ~LED2; } } } }

Demo

Để lại bình luận

Focus Mode

Đã phát hiện trình chặn quảng cáo

Vui lòng hỗ trợ chúng tôi bằng cách tắt tiện ích chặn quảng cáo (AdBlocker) trên trình duyệt của bạn khi truy cập trang web của chúng tôi.