AVR | Đếm Sự Kiện - Timer/Counter, CodeVisionAVR

Chương trình đếm sự kiện (timer0) hiển thi lên LCD sử dụng Atmega 16 với phần mềm CodeVisionAVR 

Sơ đồ mô phỏng:

Thanh ghi TCCR0: Thanh ghi điều khiển hoạt động của Timer/Counter0.


Lựa chọn tác động cạnh lên hoặc cạnh xuống

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>
#include <alcd.h>
unsigned char i;
void main(void)
{
DDRC=0xff;  // output
TCCR0 |= (1<<CS02)|(1<<CS01); //T0 Pin Falling Edge
TCNT0=0; //Gán TCNT0=0
lcd_init(16);

while (1)
      { 
//        if(TCNT0==9)
//        {
//            TCNT0=0;
//        }
        PORTC = TCNT0; //Xuất giá trị TCNT0 => PORTC
        i=TCNT0; 
        lcd_gotoxy(3,0);
        lcd_puts("Dem su kien");
        lcd_gotoxy(3,1);
        lcd_puts("TCNT0= "); 
        lcd_putchar(0x30+i/100);
        lcd_putchar(0x30+i/10%10);
        lcd_putchar(0x30+i%10);
      }
}

Demo:

Nhận xét

Mới hơn Cũ hơn