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:
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);
}
}
Nhận xét